Decompile bullettailTick
This commit is contained in:
parent
80eef9c7fd
commit
25767b71a0
|
|
@ -4551,11 +4551,11 @@ bool propchrDoFireslotThing(struct prop *prop)
|
|||
struct chrdata *chr = prop->chr;
|
||||
|
||||
if (chr->fireslot[0] >= 0) {
|
||||
func0f0adbbc(&g_Fireslots[chr->fireslot[0]].unk04);
|
||||
bullettailTick(&g_Fireslots[chr->fireslot[0]].bullettail);
|
||||
}
|
||||
|
||||
if (chr->fireslot[1] >= 0) {
|
||||
func0f0adbbc(&g_Fireslots[chr->fireslot[1]].unk04);
|
||||
bullettailTick(&g_Fireslots[chr->fireslot[1]].bullettail);
|
||||
}
|
||||
|
||||
if (chr->aibot && chr->aibot->unk058 > 0) {
|
||||
|
|
|
|||
|
|
@ -17815,10 +17815,10 @@ glabel func0f041a74
|
|||
/* f041b78: a058003f */ sb $t8,0x3f($v0)
|
||||
.L0f041b7c:
|
||||
/* f041b7c: 8e190348 */ lw $t9,0x348($s0)
|
||||
/* f041b80: 0fc2b6ef */ jal func0f0adbbc
|
||||
/* f041b80: 0fc2b6ef */ jal bullettailTick
|
||||
/* f041b84: 8f240004 */ lw $a0,0x4($t9)
|
||||
/* f041b88: 8e08034c */ lw $t0,0x34c($s0)
|
||||
/* f041b8c: 0fc2b6ef */ jal func0f0adbbc
|
||||
/* f041b8c: 0fc2b6ef */ jal bullettailTick
|
||||
/* f041b90: 8d040004 */ lw $a0,0x4($t0)
|
||||
/* f041b94: 10000027 */ b .L0f041c34
|
||||
/* f041b98: 8fbf0024 */ lw $ra,0x24($sp)
|
||||
|
|
|
|||
|
|
@ -2090,82 +2090,30 @@ glabel var7f1accf4
|
|||
/* f0adbb8: 27bd0190 */ addiu $sp,$sp,0x190
|
||||
);
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f0adbbc
|
||||
/* f0adbbc: 27bdffe8 */ addiu $sp,$sp,-24
|
||||
/* f0adbc0: afbf0014 */ sw $ra,0x14($sp)
|
||||
/* f0adbc4: 80820000 */ lb $v0,0x0($a0)
|
||||
/* f0adbc8: 0442003c */ bltzl $v0,.L0f0adcbc
|
||||
/* f0adbcc: 8fbf0014 */ lw $ra,0x14($sp)
|
||||
/* f0adbd0: 808e0001 */ lb $t6,0x1($a0)
|
||||
/* f0adbd4: 2401fffe */ addiu $at,$zero,-2
|
||||
/* f0adbd8: 244f0001 */ addiu $t7,$v0,0x1
|
||||
/* f0adbdc: 15c10009 */ bne $t6,$at,.L0f0adc04
|
||||
/* f0adbe0: 00000000 */ nop
|
||||
/* f0adbe4: a08f0000 */ sb $t7,0x0($a0)
|
||||
/* f0adbe8: 80980000 */ lb $t8,0x0($a0)
|
||||
/* f0adbec: 2419ffff */ addiu $t9,$zero,-1
|
||||
/* f0adbf0: 2b010002 */ slti $at,$t8,0x2
|
||||
/* f0adbf4: 54200031 */ bnezl $at,.L0f0adcbc
|
||||
/* f0adbf8: 8fbf0014 */ lw $ra,0x14($sp)
|
||||
/* f0adbfc: 1000002e */ b .L0f0adcb8
|
||||
/* f0adc00: a0990000 */ sb $t9,0x0($a0)
|
||||
.L0f0adc04:
|
||||
/* f0adc04: 3c02800a */ lui $v0,%hi(g_Vars)
|
||||
/* f0adc08: 24429fc0 */ addiu $v0,$v0,%lo(g_Vars)
|
||||
/* f0adc0c: 8c480034 */ lw $t0,0x34($v0)
|
||||
/* f0adc10: 29010009 */ slti $at,$t0,0x9
|
||||
/* f0adc14: 10200008 */ beqz $at,.L0f0adc38
|
||||
/* f0adc18: 00000000 */ nop
|
||||
/* f0adc1c: c4840020 */ lwc1 $f4,0x20($a0)
|
||||
/* f0adc20: c4460044 */ lwc1 $f6,0x44($v0)
|
||||
/* f0adc24: c48a0028 */ lwc1 $f10,0x28($a0)
|
||||
/* f0adc28: 46062202 */ mul.s $f8,$f4,$f6
|
||||
/* f0adc2c: 46085400 */ add.s $f16,$f10,$f8
|
||||
/* f0adc30: 10000019 */ b .L0f0adc98
|
||||
/* f0adc34: e4900028 */ swc1 $f16,0x28($a0)
|
||||
.L0f0adc38:
|
||||
/* f0adc38: 0c004b70 */ jal random
|
||||
/* f0adc3c: afa40018 */ sw $a0,0x18($sp)
|
||||
/* f0adc40: 44829000 */ mtc1 $v0,$f18
|
||||
/* f0adc44: 8fa40018 */ lw $a0,0x18($sp)
|
||||
/* f0adc48: 04410005 */ bgez $v0,.L0f0adc60
|
||||
/* f0adc4c: 46809120 */ cvt.s.w $f4,$f18
|
||||
/* f0adc50: 3c014f80 */ lui $at,0x4f80
|
||||
/* f0adc54: 44813000 */ mtc1 $at,$f6
|
||||
/* f0adc58: 00000000 */ nop
|
||||
/* f0adc5c: 46062100 */ add.s $f4,$f4,$f6
|
||||
.L0f0adc60:
|
||||
/* f0adc60: 3c012f80 */ lui $at,0x2f80
|
||||
/* f0adc64: 44815000 */ mtc1 $at,$f10
|
||||
/* f0adc68: 3c013f00 */ lui $at,0x3f00
|
||||
/* f0adc6c: 44818000 */ mtc1 $at,$f16
|
||||
/* f0adc70: 460a2202 */ mul.s $f8,$f4,$f10
|
||||
/* f0adc74: 3c014000 */ lui $at,0x4000
|
||||
/* f0adc78: 44813000 */ mtc1 $at,$f6
|
||||
/* f0adc7c: c48a0020 */ lwc1 $f10,0x20($a0)
|
||||
/* f0adc80: 46104482 */ mul.s $f18,$f8,$f16
|
||||
/* f0adc84: c4900028 */ lwc1 $f16,0x28($a0)
|
||||
/* f0adc88: 46123100 */ add.s $f4,$f6,$f18
|
||||
/* f0adc8c: 46045202 */ mul.s $f8,$f10,$f4
|
||||
/* f0adc90: 46088180 */ add.s $f6,$f16,$f8
|
||||
/* f0adc94: e4860028 */ swc1 $f6,0x28($a0)
|
||||
.L0f0adc98:
|
||||
/* f0adc98: c4920028 */ lwc1 $f18,0x28($a0)
|
||||
/* f0adc9c: c48a001c */ lwc1 $f10,0x1c($a0)
|
||||
/* f0adca0: 2409ffff */ addiu $t1,$zero,-1
|
||||
/* f0adca4: 4612503e */ c.le.s $f10,$f18
|
||||
/* f0adca8: 00000000 */ nop
|
||||
/* f0adcac: 45020003 */ bc1fl .L0f0adcbc
|
||||
/* f0adcb0: 8fbf0014 */ lw $ra,0x14($sp)
|
||||
/* f0adcb4: a0890000 */ sb $t1,0x0($a0)
|
||||
.L0f0adcb8:
|
||||
/* f0adcb8: 8fbf0014 */ lw $ra,0x14($sp)
|
||||
.L0f0adcbc:
|
||||
/* f0adcbc: 27bd0018 */ addiu $sp,$sp,0x18
|
||||
/* f0adcc0: 03e00008 */ jr $ra
|
||||
/* f0adcc4: 00000000 */ nop
|
||||
);
|
||||
void bullettailTick(struct bullettail *tail)
|
||||
{
|
||||
if (tail->age >= 0) {
|
||||
if (tail->unk01 == -2) {
|
||||
tail->age++;
|
||||
|
||||
if (tail->age > 1) {
|
||||
tail->age = -1;
|
||||
}
|
||||
} else {
|
||||
if (g_Vars.lvupdate240 <= 8) {
|
||||
// Not lagging
|
||||
tail->dist += tail->speed * g_Vars.lvupdate240f;
|
||||
} else {
|
||||
// Lagging
|
||||
tail->dist += tail->speed * (2 + random() * (1.0f / U32_MAX) * 0.5f);
|
||||
}
|
||||
|
||||
if (tail->dist >= tail->maxdist) {
|
||||
tail->age = -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f0adcc8
|
||||
|
|
|
|||
|
|
@ -13910,7 +13910,7 @@ glabel func0f0c228c
|
|||
/* f0c22a0: 3c04800a */ lui $a0,%hi(g_Vars+0x64)
|
||||
/* f0c22a4: 008e2021 */ addu $a0,$a0,$t6
|
||||
/* f0c22a8: 8c84a024 */ lw $a0,%lo(g_Vars+0x64)($a0)
|
||||
/* f0c22ac: 0fc2b6ef */ jal func0f0adbbc
|
||||
/* f0c22ac: 0fc2b6ef */ jal bullettailTick
|
||||
/* f0c22b0: 24840814 */ addiu $a0,$a0,2068
|
||||
/* f0c22b4: 0fc4a25f */ jal propGetPlayerNum
|
||||
/* f0c22b8: 8fa40020 */ lw $a0,0x20($sp)
|
||||
|
|
@ -13918,7 +13918,7 @@ glabel func0f0c228c
|
|||
/* f0c22c0: 3c04800a */ lui $a0,%hi(g_Vars+0x64)
|
||||
/* f0c22c4: 008f2021 */ addu $a0,$a0,$t7
|
||||
/* f0c22c8: 8c84a024 */ lw $a0,%lo(g_Vars+0x64)($a0)
|
||||
/* f0c22cc: 0fc2b6ef */ jal func0f0adbbc
|
||||
/* f0c22cc: 0fc2b6ef */ jal bullettailTick
|
||||
/* f0c22d0: 24840fb8 */ addiu $a0,$a0,4024
|
||||
/* f0c22d4: 8fb80020 */ lw $t8,0x20($sp)
|
||||
/* f0c22d8: 3c19800a */ lui $t9,%hi(g_Vars+0x314)
|
||||
|
|
@ -13938,7 +13938,7 @@ glabel func0f0c228c
|
|||
/* f0c2310: 25090004 */ addiu $t1,$t0,0x4
|
||||
/* f0c2314: 254ad150 */ addiu $t2,$t2,%lo(g_Fireslots)
|
||||
/* f0c2318: 012a2021 */ addu $a0,$t1,$t2
|
||||
/* f0c231c: 0fc2b6ef */ jal func0f0adbbc
|
||||
/* f0c231c: 0fc2b6ef */ jal bullettailTick
|
||||
/* f0c2320: afa2001c */ sw $v0,0x1c($sp)
|
||||
/* f0c2324: 8fa3001c */ lw $v1,0x1c($sp)
|
||||
.L0f0c2328:
|
||||
|
|
@ -13950,7 +13950,7 @@ glabel func0f0c228c
|
|||
/* f0c233c: 01625823 */ subu $t3,$t3,$v0
|
||||
/* f0c2340: 000b5900 */ sll $t3,$t3,0x4
|
||||
/* f0c2344: 256c0004 */ addiu $t4,$t3,0x4
|
||||
/* f0c2348: 0fc2b6ef */ jal func0f0adbbc
|
||||
/* f0c2348: 0fc2b6ef */ jal bullettailTick
|
||||
/* f0c234c: 018d2021 */ addu $a0,$t4,$t5
|
||||
.L0f0c2350:
|
||||
/* f0c2350: 8fbf0014 */ lw $ra,0x14($sp)
|
||||
|
|
|
|||
|
|
@ -28122,12 +28122,12 @@ u32 func0f07e474(struct prop *prop)
|
|||
if (obj->type == OBJTYPE_AUTOGUN) {
|
||||
struct autogunobj *autogun = (struct autogunobj *)prop->obj;
|
||||
|
||||
if (autogun->unk9c) {
|
||||
func0f0adbbc(autogun->unk9c);
|
||||
if (autogun->bullettail) {
|
||||
bullettailTick(autogun->bullettail);
|
||||
}
|
||||
} else if (obj->type == OBJTYPE_CHOPPER) {
|
||||
struct chopperobj *chopper = (struct chopperobj *)prop->obj;
|
||||
func0f0adbbc(chopper->fireslotthing->unk04);
|
||||
bullettailTick(chopper->fireslotthing->bullettail);
|
||||
} else if (obj->type == OBJTYPE_LIFT) {
|
||||
liftTick(prop);
|
||||
} else if (obj->type == OBJTYPE_ESCALATOR) {
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ u32 func0f0abe70(void);
|
|||
u32 func0f0ac138(void);
|
||||
u32 func0f0ac4b8(void);
|
||||
u32 func0f0acb90(void);
|
||||
void func0f0adbbc(struct fireslot04 *fireslot04);
|
||||
void bullettailTick(struct bullettail *bullettail);
|
||||
u32 func0f0adcc8(void);
|
||||
u32 func0f0ade00(void);
|
||||
u32 func0f0ae964(void);
|
||||
|
|
|
|||
|
|
@ -1135,7 +1135,7 @@ struct autogunobj { // objtype 0d
|
|||
/*0x90*/ u32 unk90;
|
||||
/*0x94*/ u32 unk94;
|
||||
/*0x98*/ u32 unk98;
|
||||
/*0x9c*/ struct fireslot04 *unk9c;
|
||||
/*0x9c*/ struct bullettail *bullettail;
|
||||
/*0xa0*/ u32 unka0;
|
||||
/*0xa4*/ u32 unka4;
|
||||
/*0xa8*/ u8 autogun_type;
|
||||
|
|
@ -3271,8 +3271,8 @@ struct room {
|
|||
/*0x88*/ u32 unk88;
|
||||
};
|
||||
|
||||
struct fireslot04 {
|
||||
s8 unk00;
|
||||
struct bullettail {
|
||||
s8 age;
|
||||
s8 unk01;
|
||||
u32 unk04;
|
||||
u32 unk08;
|
||||
|
|
@ -3280,20 +3280,20 @@ struct fireslot04 {
|
|||
u32 unk10;
|
||||
u32 unk14;
|
||||
u32 unk18;
|
||||
f32 unk1c;
|
||||
f32 unk20;
|
||||
f32 maxdist;
|
||||
f32 speed;
|
||||
u32 unk24;
|
||||
f32 unk28;
|
||||
f32 dist;
|
||||
};
|
||||
|
||||
struct fireslotthing {
|
||||
/*0x00*/ u32 unk00;
|
||||
/*0x04*/ struct fireslot04 *unk04;
|
||||
/*0x04*/ struct bullettail *bullettail;
|
||||
};
|
||||
|
||||
struct fireslot {
|
||||
/*0x00*/ s32 unk00;
|
||||
/*0x04*/ struct fireslot04 unk04;
|
||||
/*0x04*/ struct bullettail bullettail;
|
||||
};
|
||||
|
||||
struct menulayer {
|
||||
|
|
|
|||
Loading…
Reference in New Issue