diff --git a/src/game/propobj.c b/src/game/propobj.c index 8cc98481d..6aba85732 100644 --- a/src/game/propobj.c +++ b/src/game/propobj.c @@ -19970,2101 +19970,178 @@ void chopperIncrementMovement(struct prop *prop, f32 goalroty, f32 goalrotx, str } } +#define NEXTSTEP() (chopper->cw ? i : (i + 1) % chopper->path->len) +#define PREVSTEP() (chopper->cw ? (i + 1) % chopper->path->len : i) + +void chopperTickFall(struct prop *chopperprop) +{ + struct defaultobj *obj = chopperprop->obj; + struct chopperobj *chopper = (struct chopperobj *) obj; + f32 goalroty; + f32 *x = &chopper->fall.x; + f32 *y = &chopper->fall.y; + f32 *z = &chopper->fall.z; + struct coord speed; + s32 i; + struct pad prevpad; + struct pad nextpad; + f32 xdiff; + f32 zdiff; + f32 tmp; + struct coord newpos; + struct coord newspeed; + + // The timer is set explicitly to 2 when the chopper is destroyed + if (chopper->timer60 == 2) { + // Figure out what direction to fall in + xdiff = 0; + zdiff = 0; + + chopper->timer60 -= g_Vars.lvupdate240_60; + + if (chopper->path) { + for (i = 0; i < chopper->path->len; i++) { + if (NEXTSTEP() == chopper->nextstep) { + break; + } + } + + padUnpack(chopper->path->pads[PREVSTEP()], PADFIELD_POS, &prevpad); + padUnpack(chopper->path->pads[NEXTSTEP()], PADFIELD_POS, &nextpad); + + xdiff = prevpad.pos.f[0] - nextpad.pos.f[0]; + zdiff = prevpad.pos.f[2] - nextpad.pos.f[2]; + + tmp = 0.25f / sqrtf(xdiff * xdiff + zdiff * zdiff); + + xdiff *= tmp; + zdiff *= tmp; + } + + *x = -zdiff; + *y = 0; + *z = xdiff; + } else if (chopper->timer60 >= 0) { + // Haven't started falling yet + chopper->timer60 -= g_Vars.lvupdate240_60; + } else { +#if VERSION >= VERSION_NTSC_1_0 + if (*y > -0.7f) +#else + // NTSC beta reads from an uninitialised variable + if (speed.y > -0.7f) +#endif + { + // Increase fall speed + *y -= 0.009f * g_Vars.lvupdate240f; + } + } + + speed.x = *x; + speed.y = *y; + speed.z = *z; + + goalroty = chopper->roty + *x + *z; + + if (stageGetIndex(g_Vars.stagenum) == STAGEINDEX_EXTRACTION) { + // The Extraction chopper falls without any collision checks and is + // reaped once it reaches the lower barrier + if (chopperprop->pos.y < -30000) { + func0f0926bc(chopperprop, 1, 0xffff); + obj->hidden |= OBJHFLAG_REAPABLE; + } else { + chopperIncrementMovement(chopperprop, goalroty, chopper->rotx < 0 ? M_PI : -M_PI, &speed, false); + } + } else { + // Area 51 interceptors do collision checks + // and explode once they hit the ground. + f32 mult = 1.0f - PALUPF(0.02f); + f32 bob; + s32 i; + + for (i = 1; i < g_Vars.lvupdate240_60; i++) { + mult *= 1.0f - PALUPF(0.02f); + } + + bob = chopper->bob + 0.052358999848366f; + + if (bob > M_BADTAU) { + bob = 0; + + chopper->bobstrength = (random() % 8 + 2) * 0.01f; + + if (obj->flags & OBJFLAG_80000000) { + chopper->bobstrength *= 0.15f; + } + } + + speed.y += chopper->bobstrength * sinf(bob); + + newspeed.x = mult * (speed.f[0] * chopper->power + chopper->vx); + newspeed.y = mult * (speed.f[1] * chopper->power + chopper->vy); + newspeed.z = mult * (speed.f[2] * chopper->power + chopper->vz); + + newpos.x = chopperprop->pos.x + newspeed.f[0] * g_Vars.lvupdate240freal; + newpos.y = chopperprop->pos.y + newspeed.f[1] * g_Vars.lvupdate240freal; + newpos.z = chopperprop->pos.z + newspeed.f[2] * g_Vars.lvupdate240freal; + + if (cd0002de10(&chopperprop->pos, chopperprop->rooms, &newpos, CDTYPE_BG) == CDRESULT_COLLISION) { + struct coord sp74; + s16 room; + struct coord sp64; + f32 ground; + s16 newrooms[8]; + + chopperprop->pos.y += 100; + ground = cdFindGroundYSimple(&chopperprop->pos, 5, chopperprop->rooms, NULL, NULL); + chopperprop->pos.y -= 100; + #if VERSION >= VERSION_PAL_FINAL -const char var7f1aa044[] = "prop/propobj.c"; -#else -const char var7f1aa044[] = "propobj.c"; -#endif - -const char var7f1aa050[] = "HC: %x - visible\n"; - -#if VERSION >= VERSION_JPN_FINAL -GLOBAL_ASM( -glabel chopperTickFall -.late_rodata -glabel var7f1aa66c -.word 0xbf333333 -glabel var7f1aa670 -.word 0x3c1374bc -glabel var7f1aa674 -.word 0xc6ea6000 -glabel var7f1aa678 -.word 0x40490fdb -glabel var7f1aa67c -.word 0xc0490fdb -glabel var7f1aa680 -.word 0x3f7ae148 -glabel var7f1aa684 -.word 0x3d567664 -glabel var7f1aa688 -.word 0x40c907a9 -glabel var7f1aa68c -.word 0x3c23d70a -glabel var7f1aa690 -.word 0x3e19999a -glabel var7f1aa694 -.word 0x40490fdb -glabel var7f1aa698 -.word 0xc0490fdb -.text -/* f07c12c: 27bdfe80 */ addiu $sp,$sp,-384 -/* f07c130: afbf0034 */ sw $ra,0x34($sp) -/* f07c134: afb10030 */ sw $s1,0x30($sp) -/* f07c138: afb0002c */ sw $s0,0x2c($sp) -/* f07c13c: 8c900004 */ lw $s0,0x4($a0) -/* f07c140: 24010002 */ addiu $at,$zero,0x2 -/* f07c144: 00808825 */ or $s1,$a0,$zero -/* f07c148: 8e0300c0 */ lw $v1,0xc0($s0) -/* f07c14c: 3c0e800a */ lui $t6,%hi(g_Vars+0x38) -/* f07c150: 02002825 */ or $a1,$s0,$zero -/* f07c154: 14610078 */ bne $v1,$at,.L0f07c338 -/* f07c158: 00000000 */ nop -/* f07c15c: 8dce9ff8 */ lw $t6,%lo(g_Vars+0x38)($t6) -/* f07c160: 8e080088 */ lw $t0,0x88($s0) -/* f07c164: 44801000 */ mtc1 $zero,$f2 -/* f07c168: 44807000 */ mtc1 $zero,$f14 -/* f07c16c: 006e7823 */ subu $t7,$v1,$t6 -/* f07c170: 1100006a */ beqz $t0,.L0f07c31c -/* f07c174: ae0f00c0 */ sw $t7,0xc0($s0) -/* f07c178: 95070006 */ lhu $a3,0x6($t0) -/* f07c17c: 00001825 */ or $v1,$zero,$zero -/* f07c180: 58e0001c */ blezl $a3,.L0f07c1f4 -/* f07c184: 920a0097 */ lbu $t2,0x97($s0) -/* f07c188: 92040097 */ lbu $a0,0x97($s0) -/* f07c18c: 8e06008c */ lw $a2,0x8c($s0) -.L0f07c190: -/* f07c190: 50800004 */ beqzl $a0,.L0f07c1a4 -/* f07c194: 24780001 */ addiu $t8,$v1,0x1 -/* f07c198: 1000000d */ b .L0f07c1d0 -/* f07c19c: 00601025 */ or $v0,$v1,$zero -/* f07c1a0: 24780001 */ addiu $t8,$v1,0x1 -.L0f07c1a4: -/* f07c1a4: 0307001a */ div $zero,$t8,$a3 -/* f07c1a8: 00001010 */ mfhi $v0 -/* f07c1ac: 14e00002 */ bnez $a3,.L0f07c1b8 -/* f07c1b0: 00000000 */ nop -/* f07c1b4: 0007000d */ break 0x7 -.L0f07c1b8: -/* f07c1b8: 2401ffff */ addiu $at,$zero,-1 -/* f07c1bc: 14e10004 */ bne $a3,$at,.L0f07c1d0 -/* f07c1c0: 3c018000 */ lui $at,0x8000 -/* f07c1c4: 17010002 */ bne $t8,$at,.L0f07c1d0 -/* f07c1c8: 00000000 */ nop -/* f07c1cc: 0006000d */ break 0x6 -.L0f07c1d0: -/* f07c1d0: 50460008 */ beql $v0,$a2,.L0f07c1f4 -/* f07c1d4: 920a0097 */ lbu $t2,0x97($s0) -/* f07c1d8: 8cb90088 */ lw $t9,0x88($a1) -/* f07c1dc: 24630001 */ addiu $v1,$v1,0x1 -/* f07c1e0: 97290006 */ lhu $t1,0x6($t9) -/* f07c1e4: 0069082a */ slt $at,$v1,$t1 -/* f07c1e8: 1420ffe9 */ bnez $at,.L0f07c190 -/* f07c1ec: 00000000 */ nop -/* f07c1f0: 920a0097 */ lbu $t2,0x97($s0) -.L0f07c1f4: -/* f07c1f4: 24050002 */ addiu $a1,$zero,0x2 -/* f07c1f8: 246b0001 */ addiu $t3,$v1,0x1 -/* f07c1fc: 5140000f */ beqzl $t2,.L0f07c23c -/* f07c200: 00601025 */ or $v0,$v1,$zero -/* f07c204: 0167001a */ div $zero,$t3,$a3 -/* f07c208: 00001010 */ mfhi $v0 -/* f07c20c: 14e00002 */ bnez $a3,.L0f07c218 -/* f07c210: 00000000 */ nop -/* f07c214: 0007000d */ break 0x7 -.L0f07c218: -/* f07c218: 2401ffff */ addiu $at,$zero,-1 -/* f07c21c: 14e10004 */ bne $a3,$at,.L0f07c230 -/* f07c220: 3c018000 */ lui $at,0x8000 -/* f07c224: 15610002 */ bne $t3,$at,.L0f07c230 -/* f07c228: 00000000 */ nop -/* f07c22c: 0006000d */ break 0x6 -.L0f07c230: -/* f07c230: 10000003 */ b .L0f07c240 -/* f07c234: 8d0c0000 */ lw $t4,0x0($t0) -/* f07c238: 00601025 */ or $v0,$v1,$zero -.L0f07c23c: -/* f07c23c: 8d0c0000 */ lw $t4,0x0($t0) -.L0f07c240: -/* f07c240: 00026880 */ sll $t5,$v0,0x2 -/* f07c244: 27a60104 */ addiu $a2,$sp,0x104 -/* f07c248: 018d7021 */ addu $t6,$t4,$t5 -/* f07c24c: 8dc40000 */ lw $a0,0x0($t6) -/* f07c250: 0fc456ac */ jal padUnpack -/* f07c254: afa30158 */ sw $v1,0x158($sp) -/* f07c258: 920f0097 */ lbu $t7,0x97($s0) -/* f07c25c: 8fa30158 */ lw $v1,0x158($sp) -/* f07c260: 24050002 */ addiu $a1,$zero,0x2 -/* f07c264: 51e00005 */ beqzl $t7,.L0f07c27c -/* f07c268: 8e080088 */ lw $t0,0x88($s0) -/* f07c26c: 00601025 */ or $v0,$v1,$zero -/* f07c270: 1000000f */ b .L0f07c2b0 -/* f07c274: 8e080088 */ lw $t0,0x88($s0) -/* f07c278: 8e080088 */ lw $t0,0x88($s0) -.L0f07c27c: -/* f07c27c: 24780001 */ addiu $t8,$v1,0x1 -/* f07c280: 95190006 */ lhu $t9,0x6($t0) -/* f07c284: 0319001a */ div $zero,$t8,$t9 -/* f07c288: 00001010 */ mfhi $v0 -/* f07c28c: 17200002 */ bnez $t9,.L0f07c298 -/* f07c290: 00000000 */ nop -/* f07c294: 0007000d */ break 0x7 -.L0f07c298: -/* f07c298: 2401ffff */ addiu $at,$zero,-1 -/* f07c29c: 17210004 */ bne $t9,$at,.L0f07c2b0 -/* f07c2a0: 3c018000 */ lui $at,0x8000 -/* f07c2a4: 17010002 */ bne $t8,$at,.L0f07c2b0 -/* f07c2a8: 00000000 */ nop -/* f07c2ac: 0006000d */ break 0x6 -.L0f07c2b0: -/* f07c2b0: 8d090000 */ lw $t1,0x0($t0) -/* f07c2b4: 00025080 */ sll $t2,$v0,0x2 -/* f07c2b8: 27a600b0 */ addiu $a2,$sp,0xb0 -/* f07c2bc: 012a5821 */ addu $t3,$t1,$t2 -/* f07c2c0: 0fc456ac */ jal padUnpack -/* f07c2c4: 8d640000 */ lw $a0,0x0($t3) -/* f07c2c8: c7a40104 */ lwc1 $f4,0x104($sp) -/* f07c2cc: c7a600b0 */ lwc1 $f6,0xb0($sp) -/* f07c2d0: c7a8010c */ lwc1 $f8,0x10c($sp) -/* f07c2d4: c7aa00b8 */ lwc1 $f10,0xb8($sp) -/* f07c2d8: 46062081 */ sub.s $f2,$f4,$f6 -/* f07c2dc: 460a4381 */ sub.s $f14,$f8,$f10 -/* f07c2e0: 46021402 */ mul.s $f16,$f2,$f2 -/* f07c2e4: e7a200ac */ swc1 $f2,0xac($sp) -/* f07c2e8: 460e7482 */ mul.s $f18,$f14,$f14 -/* f07c2ec: e7ae00a8 */ swc1 $f14,0xa8($sp) -/* f07c2f0: 0c012974 */ jal sqrtf -/* f07c2f4: 46128300 */ add.s $f12,$f16,$f18 -/* f07c2f8: 3c013e80 */ lui $at,0x3e80 -/* f07c2fc: 44812000 */ mtc1 $at,$f4 -/* f07c300: c7a200ac */ lwc1 $f2,0xac($sp) -/* f07c304: c7ae00a8 */ lwc1 $f14,0xa8($sp) -/* f07c308: 46002303 */ div.s $f12,$f4,$f0 -/* f07c30c: 460c1082 */ mul.s $f2,$f2,$f12 -/* f07c310: 00000000 */ nop -/* f07c314: 460c7382 */ mul.s $f14,$f14,$f12 -/* f07c318: 00000000 */ nop -.L0f07c31c: -/* f07c31c: 44804000 */ mtc1 $zero,$f8 -/* f07c320: 46007187 */ neg.s $f6,$f14 -/* f07c324: 26020068 */ addiu $v0,$s0,0x68 -/* f07c328: e6060064 */ swc1 $f6,0x64($s0) -/* f07c32c: e4480000 */ swc1 $f8,0x0($v0) -/* f07c330: 10000017 */ b .L0f07c390 -/* f07c334: e602006c */ swc1 $f2,0x6c($s0) -.L0f07c338: -/* f07c338: 04600007 */ bltz $v1,.L0f07c358 -/* f07c33c: 26020068 */ addiu $v0,$s0,0x68 -/* f07c340: 3c0c800a */ lui $t4,%hi(g_Vars+0x38) -/* f07c344: 8d8c9ff8 */ lw $t4,%lo(g_Vars+0x38)($t4) -/* f07c348: 26020068 */ addiu $v0,$s0,0x68 -/* f07c34c: 006c6823 */ subu $t5,$v1,$t4 -/* f07c350: 1000000f */ b .L0f07c390 -/* f07c354: ae0d00c0 */ sw $t5,0xc0($s0) -.L0f07c358: -/* f07c358: 3c017f1b */ lui $at,%hi(var7f1aa66c) -/* f07c35c: c42aa66c */ lwc1 $f10,%lo(var7f1aa66c)($at) -/* f07c360: c4400000 */ lwc1 $f0,0x0($v0) -/* f07c364: 3c017f1b */ lui $at,%hi(var7f1aa670) -/* f07c368: 4600503c */ c.lt.s $f10,$f0 -/* f07c36c: 00000000 */ nop -/* f07c370: 45020008 */ bc1fl .L0f07c394 -/* f07c374: 26030064 */ addiu $v1,$s0,0x64 -/* f07c378: c430a670 */ lwc1 $f16,%lo(var7f1aa670)($at) -/* f07c37c: 3c01800a */ lui $at,%hi(g_Vars+0x44) -/* f07c380: c432a004 */ lwc1 $f18,%lo(g_Vars+0x44)($at) -/* f07c384: 46128102 */ mul.s $f4,$f16,$f18 -/* f07c388: 46040181 */ sub.s $f6,$f0,$f4 -/* f07c38c: e4460000 */ swc1 $f6,0x0($v0) -.L0f07c390: -/* f07c390: 26030064 */ addiu $v1,$s0,0x64 -.L0f07c394: -/* f07c394: c4680000 */ lwc1 $f8,0x0($v1) -/* f07c398: 2605006c */ addiu $a1,$s0,0x6c -/* f07c39c: 3c04800a */ lui $a0,%hi(g_Vars+0x4b4) -/* f07c3a0: e7a8015c */ swc1 $f8,0x15c($sp) -/* f07c3a4: c44a0000 */ lwc1 $f10,0x0($v0) -/* f07c3a8: 8c84a474 */ lw $a0,%lo(g_Vars+0x4b4)($a0) -/* f07c3ac: e7aa0160 */ swc1 $f10,0x160($sp) -/* f07c3b0: c4b00000 */ lwc1 $f16,0x0($a1) -/* f07c3b4: e7b00164 */ swc1 $f16,0x164($sp) -/* f07c3b8: c4640000 */ lwc1 $f4,0x0($v1) -/* f07c3bc: c612007c */ lwc1 $f18,0x7c($s0) -/* f07c3c0: c4a80000 */ lwc1 $f8,0x0($a1) -/* f07c3c4: 46049180 */ add.s $f6,$f18,$f4 -/* f07c3c8: 46064280 */ add.s $f10,$f8,$f6 -/* f07c3cc: 0fc59585 */ jal stageGetIndex -/* f07c3d0: e7aa0174 */ swc1 $f10,0x174($sp) -/* f07c3d4: 2401000e */ addiu $at,$zero,0xe -/* f07c3d8: 14410022 */ bne $v0,$at,.L0f07c464 -/* f07c3dc: 3c03800a */ lui $v1,%hi(g_Vars+0x38) -/* f07c3e0: 3c017f1b */ lui $at,%hi(var7f1aa674) -/* f07c3e4: c432a674 */ lwc1 $f18,%lo(var7f1aa674)($at) -/* f07c3e8: c630000c */ lwc1 $f16,0xc($s1) -/* f07c3ec: 3406ffff */ dli $a2,0xffff -/* f07c3f0: 02202025 */ or $a0,$s1,$zero -/* f07c3f4: 4612803c */ c.lt.s $f16,$f18 -/* f07c3f8: 8fa50174 */ lw $a1,0x174($sp) -/* f07c3fc: 27a7015c */ addiu $a3,$sp,0x15c -/* f07c400: 45020009 */ bc1fl .L0f07c428 -/* f07c404: c6040080 */ lwc1 $f4,0x80($s0) -/* f07c408: 02202025 */ or $a0,$s1,$zero -/* f07c40c: 0fc249af */ jal func0f0926bc -/* f07c410: 24050001 */ addiu $a1,$zero,0x1 -/* f07c414: 8e0e0040 */ lw $t6,0x40($s0) -/* f07c418: 35cf0004 */ ori $t7,$t6,0x4 -/* f07c41c: 100000df */ b .L0f07c79c -/* f07c420: ae0f0040 */ sw $t7,0x40($s0) -/* f07c424: c6040080 */ lwc1 $f4,0x80($s0) -.L0f07c428: -/* f07c428: 44804000 */ mtc1 $zero,$f8 -/* f07c42c: 3c017f1b */ lui $at,%hi(var7f1aa678) -/* f07c430: 4608203c */ c.lt.s $f4,$f8 -/* f07c434: 00000000 */ nop -/* f07c438: 45000004 */ bc1f .L0f07c44c -/* f07c43c: 00000000 */ nop -/* f07c440: 3c017f1b */ lui $at,%hi(var7f1aa67c) -/* f07c444: 10000002 */ b .L0f07c450 -/* f07c448: c420a678 */ lwc1 $f0,%lo(var7f1aa678)($at) -.L0f07c44c: -/* f07c44c: c420a67c */ lwc1 $f0,%lo(var7f1aa67c)($at) -.L0f07c450: -/* f07c450: 44060000 */ mfc1 $a2,$f0 -/* f07c454: 0fc1ee8e */ jal chopperIncrementMovement -/* f07c458: afa00010 */ sw $zero,0x10($sp) -/* f07c45c: 100000d0 */ b .L0f07c7a0 -/* f07c460: 8fbf0034 */ lw $ra,0x34($sp) -.L0f07c464: -/* f07c464: 8c639ff8 */ lw $v1,%lo(g_Vars+0x38)($v1) -/* f07c468: 3c017f1b */ lui $at,%hi(var7f1aa680) -/* f07c46c: c420a680 */ lwc1 $f0,%lo(var7f1aa680)($at) -/* f07c470: 28610002 */ slti $at,$v1,0x2 -/* f07c474: 24020001 */ addiu $v0,$zero,0x1 -/* f07c478: 14200006 */ bnez $at,.L0f07c494 -/* f07c47c: 46000086 */ mov.s $f2,$f0 -/* f07c480: 24420001 */ addiu $v0,$v0,0x1 -.L0f07c484: -/* f07c484: 0043082a */ slt $at,$v0,$v1 -/* f07c488: 46001082 */ mul.s $f2,$f2,$f0 -/* f07c48c: 5420fffd */ bnezl $at,.L0f07c484 -/* f07c490: 24420001 */ addiu $v0,$v0,0x1 -.L0f07c494: -/* f07c494: 3c017f1b */ lui $at,%hi(var7f1aa684) -/* f07c498: c42aa684 */ lwc1 $f10,%lo(var7f1aa684)($at) -/* f07c49c: c60600b4 */ lwc1 $f6,0xb4($s0) -/* f07c4a0: 3c017f1b */ lui $at,%hi(var7f1aa688) -/* f07c4a4: c430a688 */ lwc1 $f16,%lo(var7f1aa688)($at) -/* f07c4a8: 460a3300 */ add.s $f12,$f6,$f10 -/* f07c4ac: 460c803c */ c.lt.s $f16,$f12 -/* f07c4b0: 00000000 */ nop -/* f07c4b4: 4500001c */ bc1f .L0f07c528 -/* f07c4b8: 00000000 */ nop -/* f07c4bc: 44806000 */ mtc1 $zero,$f12 -/* f07c4c0: e7a20088 */ swc1 $f2,0x88($sp) -/* f07c4c4: 0c004b70 */ jal random -/* f07c4c8: e7ac0084 */ swc1 $f12,0x84($sp) -/* f07c4cc: 30580007 */ andi $t8,$v0,0x7 -/* f07c4d0: 27190002 */ addiu $t9,$t8,0x2 -/* f07c4d4: 44999000 */ mtc1 $t9,$f18 -/* f07c4d8: c7a20088 */ lwc1 $f2,0x88($sp) -/* f07c4dc: c7ac0084 */ lwc1 $f12,0x84($sp) -/* f07c4e0: 07210005 */ bgez $t9,.L0f07c4f8 -/* f07c4e4: 46809120 */ cvt.s.w $f4,$f18 -/* f07c4e8: 3c014f80 */ lui $at,0x4f80 -/* f07c4ec: 44814000 */ mtc1 $at,$f8 -/* f07c4f0: 00000000 */ nop -/* f07c4f4: 46082100 */ add.s $f4,$f4,$f8 -.L0f07c4f8: -/* f07c4f8: 3c017f1b */ lui $at,%hi(var7f1aa68c) -/* f07c4fc: c426a68c */ lwc1 $f6,%lo(var7f1aa68c)($at) -/* f07c500: 8e090008 */ lw $t1,0x8($s0) -/* f07c504: 3c017f1b */ lui $at,%hi(var7f1aa690) -/* f07c508: 46062282 */ mul.s $f10,$f4,$f6 -/* f07c50c: 00095000 */ sll $t2,$t1,0x0 -/* f07c510: 05410005 */ bgez $t2,.L0f07c528 -/* f07c514: e60a00b8 */ swc1 $f10,0xb8($s0) -/* f07c518: c61000b8 */ lwc1 $f16,0xb8($s0) -/* f07c51c: c432a690 */ lwc1 $f18,%lo(var7f1aa690)($at) -/* f07c520: 46128202 */ mul.s $f8,$f16,$f18 -/* f07c524: e60800b8 */ swc1 $f8,0xb8($s0) -.L0f07c528: -/* f07c528: 0c0068f7 */ jal sinf -/* f07c52c: e7a20088 */ swc1 $f2,0x88($sp) -/* f07c530: c60600b8 */ lwc1 $f6,0xb8($s0) -/* f07c534: c7a40160 */ lwc1 $f4,0x160($sp) -/* f07c538: c7b2015c */ lwc1 $f18,0x15c($sp) -/* f07c53c: 46003282 */ mul.s $f10,$f6,$f0 -/* f07c540: c7a20088 */ lwc1 $f2,0x88($sp) -/* f07c544: 3c01800a */ lui $at,%hi(g_Vars+0x4c) -/* f07c548: c42ca00c */ lwc1 $f12,%lo(g_Vars+0x4c)($at) -/* f07c54c: 26240008 */ addiu $a0,$s1,0x8 -/* f07c550: 26250028 */ addiu $a1,$s1,0x28 -/* f07c554: 27a60098 */ addiu $a2,$sp,0x98 -/* f07c558: 460a2400 */ add.s $f16,$f4,$f10 -/* f07c55c: 24070020 */ addiu $a3,$zero,0x20 -/* f07c560: e7b00160 */ swc1 $f16,0x160($sp) -/* f07c564: c60800a4 */ lwc1 $f8,0xa4($s0) -/* f07c568: c6040098 */ lwc1 $f4,0x98($s0) -/* f07c56c: 46089182 */ mul.s $f6,$f18,$f8 -/* f07c570: 46043280 */ add.s $f10,$f6,$f4 -/* f07c574: 46025482 */ mul.s $f18,$f10,$f2 -/* f07c578: e7b2008c */ swc1 $f18,0x8c($sp) -/* f07c57c: c60800a4 */ lwc1 $f8,0xa4($s0) -/* f07c580: c604009c */ lwc1 $f4,0x9c($s0) -/* f07c584: 46088182 */ mul.s $f6,$f16,$f8 -/* f07c588: c7a80164 */ lwc1 $f8,0x164($sp) -/* f07c58c: 46043280 */ add.s $f10,$f6,$f4 -/* f07c590: 46025402 */ mul.s $f16,$f10,$f2 -/* f07c594: e7b00090 */ swc1 $f16,0x90($sp) -/* f07c598: c60600a4 */ lwc1 $f6,0xa4($s0) -/* f07c59c: c60a00a0 */ lwc1 $f10,0xa0($s0) -/* f07c5a0: 46064102 */ mul.s $f4,$f8,$f6 -/* f07c5a4: 460a2200 */ add.s $f8,$f4,$f10 -/* f07c5a8: 46024182 */ mul.s $f6,$f8,$f2 -/* f07c5ac: e7a60094 */ swc1 $f6,0x94($sp) -/* f07c5b0: 460c9102 */ mul.s $f4,$f18,$f12 -/* f07c5b4: c62a0008 */ lwc1 $f10,0x8($s1) -/* f07c5b8: 460c8482 */ mul.s $f18,$f16,$f12 -/* f07c5bc: 460a2200 */ add.s $f8,$f4,$f10 -/* f07c5c0: e7a80098 */ swc1 $f8,0x98($sp) -/* f07c5c4: c624000c */ lwc1 $f4,0xc($s1) -/* f07c5c8: 460c3202 */ mul.s $f8,$f6,$f12 -/* f07c5cc: 46049280 */ add.s $f10,$f18,$f4 -/* f07c5d0: e7aa009c */ swc1 $f10,0x9c($sp) -/* f07c5d4: c6300010 */ lwc1 $f16,0x10($s1) -/* f07c5d8: afa50040 */ sw $a1,0x40($sp) -/* f07c5dc: afa40044 */ sw $a0,0x44($sp) -/* f07c5e0: 46104480 */ add.s $f18,$f8,$f16 -/* f07c5e4: 0c00b784 */ jal cd0002de10 -/* f07c5e8: e7b200a0 */ swc1 $f18,0xa0($sp) -/* f07c5ec: 14400058 */ bnez $v0,.L0f07c750 -/* f07c5f0: 8fa40044 */ lw $a0,0x44($sp) -/* f07c5f4: 3c0142c8 */ lui $at,0x42c8 -/* f07c5f8: 44815000 */ mtc1 $at,$f10 -/* f07c5fc: c624000c */ lwc1 $f4,0xc($s1) -/* f07c600: 3c0540a0 */ lui $a1,0x40a0 -/* f07c604: 00003825 */ or $a3,$zero,$zero -/* f07c608: 460a2180 */ add.s $f6,$f4,$f10 -/* f07c60c: e626000c */ swc1 $f6,0xc($s1) -/* f07c610: afa00010 */ sw $zero,0x10($sp) -/* f07c614: 8fa60040 */ lw $a2,0x40($sp) -/* f07c618: 0c00a8cc */ jal cdFindGroundYSimple -/* f07c61c: 8fa40044 */ lw $a0,0x44($sp) -/* f07c620: e7a00060 */ swc1 $f0,0x60($sp) -/* f07c624: 3c0142c8 */ lui $at,0x42c8 -/* f07c628: 44818000 */ mtc1 $at,$f16 -/* f07c62c: c628000c */ lwc1 $f8,0xc($s1) -/* f07c630: 3c067f1b */ lui $a2,%hi(var7f1aa044) -/* f07c634: 24c6a044 */ addiu $a2,$a2,%lo(var7f1aa044) -/* f07c638: 46104481 */ sub.s $f18,$f8,$f16 -/* f07c63c: 27a40064 */ addiu $a0,$sp,0x64 -/* f07c640: 240530a1 */ addiu $a1,$zero,0x30bc -/* f07c644: 0c0093af */ jal cdGetPos -/* f07c648: e632000c */ swc1 $f18,0xc($s1) -/* f07c64c: 3c0141a0 */ lui $at,0x41a0 -/* f07c650: 44813000 */ mtc1 $at,$f6 -/* f07c654: c7aa0060 */ lwc1 $f10,0x60($sp) -/* f07c658: c7a40064 */ lwc1 $f4,0x64($sp) -/* f07c65c: c7b0006c */ lwc1 $f16,0x6c($sp) -/* f07c660: 46065200 */ add.s $f8,$f10,$f6 -/* f07c664: 8fa40044 */ lw $a0,0x44($sp) -/* f07c668: 8fa50040 */ lw $a1,0x40($sp) -/* f07c66c: 27a60098 */ addiu $a2,$sp,0x98 -/* f07c670: e7a8009c */ swc1 $f8,0x9c($sp) -/* f07c674: 27a70050 */ addiu $a3,$sp,0x50 -/* f07c678: e7a40098 */ swc1 $f4,0x98($sp) -/* f07c67c: 0fc1979d */ jal func0f065e74 -/* f07c680: e7b000a0 */ swc1 $f16,0xa0($sp) -/* f07c684: c7b20098 */ lwc1 $f18,0x98($sp) -/* f07c688: 02202025 */ or $a0,$s1,$zero -/* f07c68c: e6320008 */ swc1 $f18,0x8($s1) -/* f07c690: c7a4009c */ lwc1 $f4,0x9c($sp) -/* f07c694: e624000c */ swc1 $f4,0xc($s1) -/* f07c698: c7aa00a0 */ lwc1 $f10,0xa0($sp) -/* f07c69c: 0fc19711 */ jal propDeregisterRooms -/* f07c6a0: e62a0010 */ swc1 $f10,0x10($s1) -/* f07c6a4: 27a40050 */ addiu $a0,$sp,0x50 -/* f07c6a8: 0fc195e9 */ jal roomsCopy -/* f07c6ac: 8fa50040 */ lw $a1,0x40($sp) -/* f07c6b0: 02002025 */ or $a0,$s0,$zero -/* f07c6b4: 00002825 */ or $a1,$zero,$zero -/* f07c6b8: 0fc1a71c */ jal func0f069c70 -/* f07c6bc: 24060001 */ addiu $a2,$zero,0x1 -/* f07c6c0: 920b0096 */ lbu $t3,0x96($s0) -/* f07c6c4: 02002025 */ or $a0,$s0,$zero -/* f07c6c8: 24050008 */ addiu $a1,$zero,0x8 -/* f07c6cc: 256c0001 */ addiu $t4,$t3,0x1 -/* f07c6d0: 0fc20733 */ jal objDeform -/* f07c6d4: a20c0096 */ sb $t4,0x96($s0) -/* f07c6d8: 862d0028 */ lh $t5,0x28($s1) -/* f07c6dc: 3c013f80 */ lui $at,0x3f80 -/* f07c6e0: 44803000 */ mtc1 $zero,$f6 -/* f07c6e4: 44814000 */ mtc1 $at,$f8 -/* f07c6e8: 44808000 */ mtc1 $zero,$f16 -/* f07c6ec: 02202025 */ or $a0,$s1,$zero -/* f07c6f0: 24050001 */ addiu $a1,$zero,0x1 -/* f07c6f4: 3406ffff */ dli $a2,0xffff -/* f07c6f8: a7ad0072 */ sh $t5,0x72($sp) -/* f07c6fc: e7a60074 */ swc1 $f6,0x74($sp) -/* f07c700: e7a80078 */ swc1 $f8,0x78($sp) -/* f07c704: 0fc249af */ jal func0f0926bc -/* f07c708: e7b0007c */ swc1 $f16,0x7c($sp) -/* f07c70c: 87b80072 */ lh $t8,0x72($sp) -/* f07c710: 240e0001 */ addiu $t6,$zero,0x1 -/* f07c714: 27af0098 */ addiu $t7,$sp,0x98 -/* f07c718: 27b90074 */ addiu $t9,$sp,0x74 -/* f07c71c: afb90020 */ sw $t9,0x20($sp) -/* f07c720: afaf0018 */ sw $t7,0x18($sp) -/* f07c724: afae0014 */ sw $t6,0x14($sp) -/* f07c728: 00002025 */ or $a0,$zero,$zero -/* f07c72c: 8fa50044 */ lw $a1,0x44($sp) -/* f07c730: 8fa60040 */ lw $a2,0x40($sp) -/* f07c734: 2407000d */ addiu $a3,$zero,0xd -/* f07c738: afa00010 */ sw $zero,0x10($sp) -/* f07c73c: 0fc4a7d5 */ jal explosionCreate -/* f07c740: afb8001c */ sw $t8,0x1c($sp) -/* f07c744: 24090001 */ addiu $t1,$zero,0x1 -/* f07c748: 10000014 */ b .L0f07c79c -/* f07c74c: ae0900e4 */ sw $t1,0xe4($s0) -.L0f07c750: -/* f07c750: 8fa50040 */ lw $a1,0x40($sp) -/* f07c754: 0fc4ba08 */ jal smokeCreateSimple -/* f07c758: 24060003 */ addiu $a2,$zero,0x3 -/* f07c75c: c6120080 */ lwc1 $f18,0x80($s0) -/* f07c760: 44802000 */ mtc1 $zero,$f4 -/* f07c764: 02202025 */ or $a0,$s1,$zero -/* f07c768: 8fa50174 */ lw $a1,0x174($sp) -/* f07c76c: 4604903c */ c.lt.s $f18,$f4 -/* f07c770: 27a7015c */ addiu $a3,$sp,0x15c -/* f07c774: 3c017f1b */ lui $at,%hi(var7f1aa694) -/* f07c778: 45000004 */ bc1f .L0f07c78c -/* f07c77c: 00000000 */ nop -/* f07c780: 3c017f1b */ lui $at,%hi(var7f1aa698) -/* f07c784: 10000002 */ b .L0f07c790 -/* f07c788: c420a694 */ lwc1 $f0,%lo(var7f1aa694)($at) -.L0f07c78c: -/* f07c78c: c420a698 */ lwc1 $f0,%lo(var7f1aa698)($at) -.L0f07c790: -/* f07c790: 44060000 */ mfc1 $a2,$f0 -/* f07c794: 0fc1ee8e */ jal chopperIncrementMovement -/* f07c798: afa00010 */ sw $zero,0x10($sp) -.L0f07c79c: -/* f07c79c: 8fbf0034 */ lw $ra,0x34($sp) -.L0f07c7a0: -/* f07c7a0: 8fb0002c */ lw $s0,0x2c($sp) -/* f07c7a4: 8fb10030 */ lw $s1,0x30($sp) -/* f07c7a8: 03e00008 */ jr $ra -/* f07c7ac: 27bd0180 */ addiu $sp,$sp,0x180 -); -#elif PAL -GLOBAL_ASM( -glabel chopperTickFall -.late_rodata -glabel var7f1aa66c -.word 0xbf333333 -glabel var7f1aa670 -.word 0x3c1374bc -glabel var7f1aa674 -.word 0xc6ea6000 -glabel var7f1aa678 -.word 0x40490fdb -glabel var7f1aa67c -.word 0xc0490fdb -glabel var7f1aa680 -.word 0x3f79db23 -glabel var7f1aa684 -.word 0x3d567664 -glabel var7f1aa688 -.word 0x40c907a9 -glabel var7f1aa68c -.word 0x3c23d70a -glabel var7f1aa690 -.word 0x3e19999a -glabel var7f1aa694 -.word 0x40490fdb -glabel var7f1aa698 -.word 0xc0490fdb -.text -/* f07c12c: 27bdfe80 */ addiu $sp,$sp,-384 -/* f07c130: afbf0034 */ sw $ra,0x34($sp) -/* f07c134: afb10030 */ sw $s1,0x30($sp) -/* f07c138: afb0002c */ sw $s0,0x2c($sp) -/* f07c13c: 8c900004 */ lw $s0,0x4($a0) -/* f07c140: 24010002 */ addiu $at,$zero,0x2 -/* f07c144: 00808825 */ or $s1,$a0,$zero -/* f07c148: 8e0300c0 */ lw $v1,0xc0($s0) -/* f07c14c: 3c0e800a */ lui $t6,%hi(g_Vars+0x38) -/* f07c150: 02002825 */ or $a1,$s0,$zero -/* f07c154: 14610078 */ bne $v1,$at,.L0f07c338 -/* f07c158: 00000000 */ nop -/* f07c15c: 8dce9ff8 */ lw $t6,%lo(g_Vars+0x38)($t6) -/* f07c160: 8e080088 */ lw $t0,0x88($s0) -/* f07c164: 44801000 */ mtc1 $zero,$f2 -/* f07c168: 44807000 */ mtc1 $zero,$f14 -/* f07c16c: 006e7823 */ subu $t7,$v1,$t6 -/* f07c170: 1100006a */ beqz $t0,.L0f07c31c -/* f07c174: ae0f00c0 */ sw $t7,0xc0($s0) -/* f07c178: 95070006 */ lhu $a3,0x6($t0) -/* f07c17c: 00001825 */ or $v1,$zero,$zero -/* f07c180: 58e0001c */ blezl $a3,.L0f07c1f4 -/* f07c184: 920a0097 */ lbu $t2,0x97($s0) -/* f07c188: 92040097 */ lbu $a0,0x97($s0) -/* f07c18c: 8e06008c */ lw $a2,0x8c($s0) -.L0f07c190: -/* f07c190: 50800004 */ beqzl $a0,.L0f07c1a4 -/* f07c194: 24780001 */ addiu $t8,$v1,0x1 -/* f07c198: 1000000d */ b .L0f07c1d0 -/* f07c19c: 00601025 */ or $v0,$v1,$zero -/* f07c1a0: 24780001 */ addiu $t8,$v1,0x1 -.L0f07c1a4: -/* f07c1a4: 0307001a */ div $zero,$t8,$a3 -/* f07c1a8: 00001010 */ mfhi $v0 -/* f07c1ac: 14e00002 */ bnez $a3,.L0f07c1b8 -/* f07c1b0: 00000000 */ nop -/* f07c1b4: 0007000d */ break 0x7 -.L0f07c1b8: -/* f07c1b8: 2401ffff */ addiu $at,$zero,-1 -/* f07c1bc: 14e10004 */ bne $a3,$at,.L0f07c1d0 -/* f07c1c0: 3c018000 */ lui $at,0x8000 -/* f07c1c4: 17010002 */ bne $t8,$at,.L0f07c1d0 -/* f07c1c8: 00000000 */ nop -/* f07c1cc: 0006000d */ break 0x6 -.L0f07c1d0: -/* f07c1d0: 50460008 */ beql $v0,$a2,.L0f07c1f4 -/* f07c1d4: 920a0097 */ lbu $t2,0x97($s0) -/* f07c1d8: 8cb90088 */ lw $t9,0x88($a1) -/* f07c1dc: 24630001 */ addiu $v1,$v1,0x1 -/* f07c1e0: 97290006 */ lhu $t1,0x6($t9) -/* f07c1e4: 0069082a */ slt $at,$v1,$t1 -/* f07c1e8: 1420ffe9 */ bnez $at,.L0f07c190 -/* f07c1ec: 00000000 */ nop -/* f07c1f0: 920a0097 */ lbu $t2,0x97($s0) -.L0f07c1f4: -/* f07c1f4: 24050002 */ addiu $a1,$zero,0x2 -/* f07c1f8: 246b0001 */ addiu $t3,$v1,0x1 -/* f07c1fc: 5140000f */ beqzl $t2,.L0f07c23c -/* f07c200: 00601025 */ or $v0,$v1,$zero -/* f07c204: 0167001a */ div $zero,$t3,$a3 -/* f07c208: 00001010 */ mfhi $v0 -/* f07c20c: 14e00002 */ bnez $a3,.L0f07c218 -/* f07c210: 00000000 */ nop -/* f07c214: 0007000d */ break 0x7 -.L0f07c218: -/* f07c218: 2401ffff */ addiu $at,$zero,-1 -/* f07c21c: 14e10004 */ bne $a3,$at,.L0f07c230 -/* f07c220: 3c018000 */ lui $at,0x8000 -/* f07c224: 15610002 */ bne $t3,$at,.L0f07c230 -/* f07c228: 00000000 */ nop -/* f07c22c: 0006000d */ break 0x6 -.L0f07c230: -/* f07c230: 10000003 */ b .L0f07c240 -/* f07c234: 8d0c0000 */ lw $t4,0x0($t0) -/* f07c238: 00601025 */ or $v0,$v1,$zero -.L0f07c23c: -/* f07c23c: 8d0c0000 */ lw $t4,0x0($t0) -.L0f07c240: -/* f07c240: 00026880 */ sll $t5,$v0,0x2 -/* f07c244: 27a60104 */ addiu $a2,$sp,0x104 -/* f07c248: 018d7021 */ addu $t6,$t4,$t5 -/* f07c24c: 8dc40000 */ lw $a0,0x0($t6) -/* f07c250: 0fc456ac */ jal padUnpack -/* f07c254: afa30158 */ sw $v1,0x158($sp) -/* f07c258: 920f0097 */ lbu $t7,0x97($s0) -/* f07c25c: 8fa30158 */ lw $v1,0x158($sp) -/* f07c260: 24050002 */ addiu $a1,$zero,0x2 -/* f07c264: 51e00005 */ beqzl $t7,.L0f07c27c -/* f07c268: 8e080088 */ lw $t0,0x88($s0) -/* f07c26c: 00601025 */ or $v0,$v1,$zero -/* f07c270: 1000000f */ b .L0f07c2b0 -/* f07c274: 8e080088 */ lw $t0,0x88($s0) -/* f07c278: 8e080088 */ lw $t0,0x88($s0) -.L0f07c27c: -/* f07c27c: 24780001 */ addiu $t8,$v1,0x1 -/* f07c280: 95190006 */ lhu $t9,0x6($t0) -/* f07c284: 0319001a */ div $zero,$t8,$t9 -/* f07c288: 00001010 */ mfhi $v0 -/* f07c28c: 17200002 */ bnez $t9,.L0f07c298 -/* f07c290: 00000000 */ nop -/* f07c294: 0007000d */ break 0x7 -.L0f07c298: -/* f07c298: 2401ffff */ addiu $at,$zero,-1 -/* f07c29c: 17210004 */ bne $t9,$at,.L0f07c2b0 -/* f07c2a0: 3c018000 */ lui $at,0x8000 -/* f07c2a4: 17010002 */ bne $t8,$at,.L0f07c2b0 -/* f07c2a8: 00000000 */ nop -/* f07c2ac: 0006000d */ break 0x6 -.L0f07c2b0: -/* f07c2b0: 8d090000 */ lw $t1,0x0($t0) -/* f07c2b4: 00025080 */ sll $t2,$v0,0x2 -/* f07c2b8: 27a600b0 */ addiu $a2,$sp,0xb0 -/* f07c2bc: 012a5821 */ addu $t3,$t1,$t2 -/* f07c2c0: 0fc456ac */ jal padUnpack -/* f07c2c4: 8d640000 */ lw $a0,0x0($t3) -/* f07c2c8: c7a40104 */ lwc1 $f4,0x104($sp) -/* f07c2cc: c7a600b0 */ lwc1 $f6,0xb0($sp) -/* f07c2d0: c7a8010c */ lwc1 $f8,0x10c($sp) -/* f07c2d4: c7aa00b8 */ lwc1 $f10,0xb8($sp) -/* f07c2d8: 46062081 */ sub.s $f2,$f4,$f6 -/* f07c2dc: 460a4381 */ sub.s $f14,$f8,$f10 -/* f07c2e0: 46021402 */ mul.s $f16,$f2,$f2 -/* f07c2e4: e7a200ac */ swc1 $f2,0xac($sp) -/* f07c2e8: 460e7482 */ mul.s $f18,$f14,$f14 -/* f07c2ec: e7ae00a8 */ swc1 $f14,0xa8($sp) -/* f07c2f0: 0c012974 */ jal sqrtf -/* f07c2f4: 46128300 */ add.s $f12,$f16,$f18 -/* f07c2f8: 3c013e80 */ lui $at,0x3e80 -/* f07c2fc: 44812000 */ mtc1 $at,$f4 -/* f07c300: c7a200ac */ lwc1 $f2,0xac($sp) -/* f07c304: c7ae00a8 */ lwc1 $f14,0xa8($sp) -/* f07c308: 46002303 */ div.s $f12,$f4,$f0 -/* f07c30c: 460c1082 */ mul.s $f2,$f2,$f12 -/* f07c310: 00000000 */ nop -/* f07c314: 460c7382 */ mul.s $f14,$f14,$f12 -/* f07c318: 00000000 */ nop -.L0f07c31c: -/* f07c31c: 44804000 */ mtc1 $zero,$f8 -/* f07c320: 46007187 */ neg.s $f6,$f14 -/* f07c324: 26020068 */ addiu $v0,$s0,0x68 -/* f07c328: e6060064 */ swc1 $f6,0x64($s0) -/* f07c32c: e4480000 */ swc1 $f8,0x0($v0) -/* f07c330: 10000017 */ b .L0f07c390 -/* f07c334: e602006c */ swc1 $f2,0x6c($s0) -.L0f07c338: -/* f07c338: 04600007 */ bltz $v1,.L0f07c358 -/* f07c33c: 26020068 */ addiu $v0,$s0,0x68 -/* f07c340: 3c0c800a */ lui $t4,%hi(g_Vars+0x38) -/* f07c344: 8d8c9ff8 */ lw $t4,%lo(g_Vars+0x38)($t4) -/* f07c348: 26020068 */ addiu $v0,$s0,0x68 -/* f07c34c: 006c6823 */ subu $t5,$v1,$t4 -/* f07c350: 1000000f */ b .L0f07c390 -/* f07c354: ae0d00c0 */ sw $t5,0xc0($s0) -.L0f07c358: -/* f07c358: 3c017f1b */ lui $at,%hi(var7f1aa66c) -/* f07c35c: c42aa66c */ lwc1 $f10,%lo(var7f1aa66c)($at) -/* f07c360: c4400000 */ lwc1 $f0,0x0($v0) -/* f07c364: 3c017f1b */ lui $at,%hi(var7f1aa670) -/* f07c368: 4600503c */ c.lt.s $f10,$f0 -/* f07c36c: 00000000 */ nop -/* f07c370: 45020008 */ bc1fl .L0f07c394 -/* f07c374: 26030064 */ addiu $v1,$s0,0x64 -/* f07c378: c430a670 */ lwc1 $f16,%lo(var7f1aa670)($at) -/* f07c37c: 3c01800a */ lui $at,%hi(g_Vars+0x44) -/* f07c380: c432a004 */ lwc1 $f18,%lo(g_Vars+0x44)($at) -/* f07c384: 46128102 */ mul.s $f4,$f16,$f18 -/* f07c388: 46040181 */ sub.s $f6,$f0,$f4 -/* f07c38c: e4460000 */ swc1 $f6,0x0($v0) -.L0f07c390: -/* f07c390: 26030064 */ addiu $v1,$s0,0x64 -.L0f07c394: -/* f07c394: c4680000 */ lwc1 $f8,0x0($v1) -/* f07c398: 2605006c */ addiu $a1,$s0,0x6c -/* f07c39c: 3c04800a */ lui $a0,%hi(g_Vars+0x4b4) -/* f07c3a0: e7a8015c */ swc1 $f8,0x15c($sp) -/* f07c3a4: c44a0000 */ lwc1 $f10,0x0($v0) -/* f07c3a8: 8c84a474 */ lw $a0,%lo(g_Vars+0x4b4)($a0) -/* f07c3ac: e7aa0160 */ swc1 $f10,0x160($sp) -/* f07c3b0: c4b00000 */ lwc1 $f16,0x0($a1) -/* f07c3b4: e7b00164 */ swc1 $f16,0x164($sp) -/* f07c3b8: c4640000 */ lwc1 $f4,0x0($v1) -/* f07c3bc: c612007c */ lwc1 $f18,0x7c($s0) -/* f07c3c0: c4a80000 */ lwc1 $f8,0x0($a1) -/* f07c3c4: 46049180 */ add.s $f6,$f18,$f4 -/* f07c3c8: 46064280 */ add.s $f10,$f8,$f6 -/* f07c3cc: 0fc59585 */ jal stageGetIndex -/* f07c3d0: e7aa0174 */ swc1 $f10,0x174($sp) -/* f07c3d4: 2401000e */ addiu $at,$zero,0xe -/* f07c3d8: 14410022 */ bne $v0,$at,.L0f07c464 -/* f07c3dc: 3c03800a */ lui $v1,%hi(g_Vars+0x38) -/* f07c3e0: 3c017f1b */ lui $at,%hi(var7f1aa674) -/* f07c3e4: c432a674 */ lwc1 $f18,%lo(var7f1aa674)($at) -/* f07c3e8: c630000c */ lwc1 $f16,0xc($s1) -/* f07c3ec: 3406ffff */ dli $a2,0xffff -/* f07c3f0: 02202025 */ or $a0,$s1,$zero -/* f07c3f4: 4612803c */ c.lt.s $f16,$f18 -/* f07c3f8: 8fa50174 */ lw $a1,0x174($sp) -/* f07c3fc: 27a7015c */ addiu $a3,$sp,0x15c -/* f07c400: 45020009 */ bc1fl .L0f07c428 -/* f07c404: c6040080 */ lwc1 $f4,0x80($s0) -/* f07c408: 02202025 */ or $a0,$s1,$zero -/* f07c40c: 0fc249af */ jal func0f0926bc -/* f07c410: 24050001 */ addiu $a1,$zero,0x1 -/* f07c414: 8e0e0040 */ lw $t6,0x40($s0) -/* f07c418: 35cf0004 */ ori $t7,$t6,0x4 -/* f07c41c: 100000df */ b .L0f07c79c -/* f07c420: ae0f0040 */ sw $t7,0x40($s0) -/* f07c424: c6040080 */ lwc1 $f4,0x80($s0) -.L0f07c428: -/* f07c428: 44804000 */ mtc1 $zero,$f8 -/* f07c42c: 3c017f1b */ lui $at,%hi(var7f1aa678) -/* f07c430: 4608203c */ c.lt.s $f4,$f8 -/* f07c434: 00000000 */ nop -/* f07c438: 45000004 */ bc1f .L0f07c44c -/* f07c43c: 00000000 */ nop -/* f07c440: 3c017f1b */ lui $at,%hi(var7f1aa67c) -/* f07c444: 10000002 */ b .L0f07c450 -/* f07c448: c420a678 */ lwc1 $f0,%lo(var7f1aa678)($at) -.L0f07c44c: -/* f07c44c: c420a67c */ lwc1 $f0,%lo(var7f1aa67c)($at) -.L0f07c450: -/* f07c450: 44060000 */ mfc1 $a2,$f0 -/* f07c454: 0fc1ee8e */ jal chopperIncrementMovement -/* f07c458: afa00010 */ sw $zero,0x10($sp) -/* f07c45c: 100000d0 */ b .L0f07c7a0 -/* f07c460: 8fbf0034 */ lw $ra,0x34($sp) -.L0f07c464: -/* f07c464: 8c639ff8 */ lw $v1,%lo(g_Vars+0x38)($v1) -/* f07c468: 3c017f1b */ lui $at,%hi(var7f1aa680) -/* f07c46c: c420a680 */ lwc1 $f0,%lo(var7f1aa680)($at) -/* f07c470: 28610002 */ slti $at,$v1,0x2 -/* f07c474: 24020001 */ addiu $v0,$zero,0x1 -/* f07c478: 14200006 */ bnez $at,.L0f07c494 -/* f07c47c: 46000086 */ mov.s $f2,$f0 -/* f07c480: 24420001 */ addiu $v0,$v0,0x1 -.L0f07c484: -/* f07c484: 0043082a */ slt $at,$v0,$v1 -/* f07c488: 46001082 */ mul.s $f2,$f2,$f0 -/* f07c48c: 5420fffd */ bnezl $at,.L0f07c484 -/* f07c490: 24420001 */ addiu $v0,$v0,0x1 -.L0f07c494: -/* f07c494: 3c017f1b */ lui $at,%hi(var7f1aa684) -/* f07c498: c42aa684 */ lwc1 $f10,%lo(var7f1aa684)($at) -/* f07c49c: c60600b4 */ lwc1 $f6,0xb4($s0) -/* f07c4a0: 3c017f1b */ lui $at,%hi(var7f1aa688) -/* f07c4a4: c430a688 */ lwc1 $f16,%lo(var7f1aa688)($at) -/* f07c4a8: 460a3300 */ add.s $f12,$f6,$f10 -/* f07c4ac: 460c803c */ c.lt.s $f16,$f12 -/* f07c4b0: 00000000 */ nop -/* f07c4b4: 4500001c */ bc1f .L0f07c528 -/* f07c4b8: 00000000 */ nop -/* f07c4bc: 44806000 */ mtc1 $zero,$f12 -/* f07c4c0: e7a20088 */ swc1 $f2,0x88($sp) -/* f07c4c4: 0c004b70 */ jal random -/* f07c4c8: e7ac0084 */ swc1 $f12,0x84($sp) -/* f07c4cc: 30580007 */ andi $t8,$v0,0x7 -/* f07c4d0: 27190002 */ addiu $t9,$t8,0x2 -/* f07c4d4: 44999000 */ mtc1 $t9,$f18 -/* f07c4d8: c7a20088 */ lwc1 $f2,0x88($sp) -/* f07c4dc: c7ac0084 */ lwc1 $f12,0x84($sp) -/* f07c4e0: 07210005 */ bgez $t9,.L0f07c4f8 -/* f07c4e4: 46809120 */ cvt.s.w $f4,$f18 -/* f07c4e8: 3c014f80 */ lui $at,0x4f80 -/* f07c4ec: 44814000 */ mtc1 $at,$f8 -/* f07c4f0: 00000000 */ nop -/* f07c4f4: 46082100 */ add.s $f4,$f4,$f8 -.L0f07c4f8: -/* f07c4f8: 3c017f1b */ lui $at,%hi(var7f1aa68c) -/* f07c4fc: c426a68c */ lwc1 $f6,%lo(var7f1aa68c)($at) -/* f07c500: 8e090008 */ lw $t1,0x8($s0) -/* f07c504: 3c017f1b */ lui $at,%hi(var7f1aa690) -/* f07c508: 46062282 */ mul.s $f10,$f4,$f6 -/* f07c50c: 00095000 */ sll $t2,$t1,0x0 -/* f07c510: 05410005 */ bgez $t2,.L0f07c528 -/* f07c514: e60a00b8 */ swc1 $f10,0xb8($s0) -/* f07c518: c61000b8 */ lwc1 $f16,0xb8($s0) -/* f07c51c: c432a690 */ lwc1 $f18,%lo(var7f1aa690)($at) -/* f07c520: 46128202 */ mul.s $f8,$f16,$f18 -/* f07c524: e60800b8 */ swc1 $f8,0xb8($s0) -.L0f07c528: -/* f07c528: 0c0068f7 */ jal sinf -/* f07c52c: e7a20088 */ swc1 $f2,0x88($sp) -/* f07c530: c60600b8 */ lwc1 $f6,0xb8($s0) -/* f07c534: c7a40160 */ lwc1 $f4,0x160($sp) -/* f07c538: c7b2015c */ lwc1 $f18,0x15c($sp) -/* f07c53c: 46003282 */ mul.s $f10,$f6,$f0 -/* f07c540: c7a20088 */ lwc1 $f2,0x88($sp) -/* f07c544: 3c01800a */ lui $at,%hi(g_Vars+0x4c) -/* f07c548: c42ca00c */ lwc1 $f12,%lo(g_Vars+0x4c)($at) -/* f07c54c: 26240008 */ addiu $a0,$s1,0x8 -/* f07c550: 26250028 */ addiu $a1,$s1,0x28 -/* f07c554: 27a60098 */ addiu $a2,$sp,0x98 -/* f07c558: 460a2400 */ add.s $f16,$f4,$f10 -/* f07c55c: 24070020 */ addiu $a3,$zero,0x20 -/* f07c560: e7b00160 */ swc1 $f16,0x160($sp) -/* f07c564: c60800a4 */ lwc1 $f8,0xa4($s0) -/* f07c568: c6040098 */ lwc1 $f4,0x98($s0) -/* f07c56c: 46089182 */ mul.s $f6,$f18,$f8 -/* f07c570: 46043280 */ add.s $f10,$f6,$f4 -/* f07c574: 46025482 */ mul.s $f18,$f10,$f2 -/* f07c578: e7b2008c */ swc1 $f18,0x8c($sp) -/* f07c57c: c60800a4 */ lwc1 $f8,0xa4($s0) -/* f07c580: c604009c */ lwc1 $f4,0x9c($s0) -/* f07c584: 46088182 */ mul.s $f6,$f16,$f8 -/* f07c588: c7a80164 */ lwc1 $f8,0x164($sp) -/* f07c58c: 46043280 */ add.s $f10,$f6,$f4 -/* f07c590: 46025402 */ mul.s $f16,$f10,$f2 -/* f07c594: e7b00090 */ swc1 $f16,0x90($sp) -/* f07c598: c60600a4 */ lwc1 $f6,0xa4($s0) -/* f07c59c: c60a00a0 */ lwc1 $f10,0xa0($s0) -/* f07c5a0: 46064102 */ mul.s $f4,$f8,$f6 -/* f07c5a4: 460a2200 */ add.s $f8,$f4,$f10 -/* f07c5a8: 46024182 */ mul.s $f6,$f8,$f2 -/* f07c5ac: e7a60094 */ swc1 $f6,0x94($sp) -/* f07c5b0: 460c9102 */ mul.s $f4,$f18,$f12 -/* f07c5b4: c62a0008 */ lwc1 $f10,0x8($s1) -/* f07c5b8: 460c8482 */ mul.s $f18,$f16,$f12 -/* f07c5bc: 460a2200 */ add.s $f8,$f4,$f10 -/* f07c5c0: e7a80098 */ swc1 $f8,0x98($sp) -/* f07c5c4: c624000c */ lwc1 $f4,0xc($s1) -/* f07c5c8: 460c3202 */ mul.s $f8,$f6,$f12 -/* f07c5cc: 46049280 */ add.s $f10,$f18,$f4 -/* f07c5d0: e7aa009c */ swc1 $f10,0x9c($sp) -/* f07c5d4: c6300010 */ lwc1 $f16,0x10($s1) -/* f07c5d8: afa50040 */ sw $a1,0x40($sp) -/* f07c5dc: afa40044 */ sw $a0,0x44($sp) -/* f07c5e0: 46104480 */ add.s $f18,$f8,$f16 -/* f07c5e4: 0c00b784 */ jal cd0002de10 -/* f07c5e8: e7b200a0 */ swc1 $f18,0xa0($sp) -/* f07c5ec: 14400058 */ bnez $v0,.L0f07c750 -/* f07c5f0: 8fa40044 */ lw $a0,0x44($sp) -/* f07c5f4: 3c0142c8 */ lui $at,0x42c8 -/* f07c5f8: 44815000 */ mtc1 $at,$f10 -/* f07c5fc: c624000c */ lwc1 $f4,0xc($s1) -/* f07c600: 3c0540a0 */ lui $a1,0x40a0 -/* f07c604: 00003825 */ or $a3,$zero,$zero -/* f07c608: 460a2180 */ add.s $f6,$f4,$f10 -/* f07c60c: e626000c */ swc1 $f6,0xc($s1) -/* f07c610: afa00010 */ sw $zero,0x10($sp) -/* f07c614: 8fa60040 */ lw $a2,0x40($sp) -/* f07c618: 0c00a8cc */ jal cdFindGroundYSimple -/* f07c61c: 8fa40044 */ lw $a0,0x44($sp) -/* f07c620: e7a00060 */ swc1 $f0,0x60($sp) -/* f07c624: 3c0142c8 */ lui $at,0x42c8 -/* f07c628: 44818000 */ mtc1 $at,$f16 -/* f07c62c: c628000c */ lwc1 $f8,0xc($s1) -/* f07c630: 3c067f1b */ lui $a2,%hi(var7f1aa044) -/* f07c634: 24c6a044 */ addiu $a2,$a2,%lo(var7f1aa044) -/* f07c638: 46104481 */ sub.s $f18,$f8,$f16 -/* f07c63c: 27a40064 */ addiu $a0,$sp,0x64 -/* f07c640: 240530a1 */ addiu $a1,$zero,0x30bc -/* f07c644: 0c0093af */ jal cdGetPos -/* f07c648: e632000c */ swc1 $f18,0xc($s1) -/* f07c64c: 3c0141a0 */ lui $at,0x41a0 -/* f07c650: 44813000 */ mtc1 $at,$f6 -/* f07c654: c7aa0060 */ lwc1 $f10,0x60($sp) -/* f07c658: c7a40064 */ lwc1 $f4,0x64($sp) -/* f07c65c: c7b0006c */ lwc1 $f16,0x6c($sp) -/* f07c660: 46065200 */ add.s $f8,$f10,$f6 -/* f07c664: 8fa40044 */ lw $a0,0x44($sp) -/* f07c668: 8fa50040 */ lw $a1,0x40($sp) -/* f07c66c: 27a60098 */ addiu $a2,$sp,0x98 -/* f07c670: e7a8009c */ swc1 $f8,0x9c($sp) -/* f07c674: 27a70050 */ addiu $a3,$sp,0x50 -/* f07c678: e7a40098 */ swc1 $f4,0x98($sp) -/* f07c67c: 0fc1979d */ jal func0f065e74 -/* f07c680: e7b000a0 */ swc1 $f16,0xa0($sp) -/* f07c684: c7b20098 */ lwc1 $f18,0x98($sp) -/* f07c688: 02202025 */ or $a0,$s1,$zero -/* f07c68c: e6320008 */ swc1 $f18,0x8($s1) -/* f07c690: c7a4009c */ lwc1 $f4,0x9c($sp) -/* f07c694: e624000c */ swc1 $f4,0xc($s1) -/* f07c698: c7aa00a0 */ lwc1 $f10,0xa0($sp) -/* f07c69c: 0fc19711 */ jal propDeregisterRooms -/* f07c6a0: e62a0010 */ swc1 $f10,0x10($s1) -/* f07c6a4: 27a40050 */ addiu $a0,$sp,0x50 -/* f07c6a8: 0fc195e9 */ jal roomsCopy -/* f07c6ac: 8fa50040 */ lw $a1,0x40($sp) -/* f07c6b0: 02002025 */ or $a0,$s0,$zero -/* f07c6b4: 00002825 */ or $a1,$zero,$zero -/* f07c6b8: 0fc1a71c */ jal func0f069c70 -/* f07c6bc: 24060001 */ addiu $a2,$zero,0x1 -/* f07c6c0: 920b0096 */ lbu $t3,0x96($s0) -/* f07c6c4: 02002025 */ or $a0,$s0,$zero -/* f07c6c8: 24050008 */ addiu $a1,$zero,0x8 -/* f07c6cc: 256c0001 */ addiu $t4,$t3,0x1 -/* f07c6d0: 0fc20733 */ jal objDeform -/* f07c6d4: a20c0096 */ sb $t4,0x96($s0) -/* f07c6d8: 862d0028 */ lh $t5,0x28($s1) -/* f07c6dc: 3c013f80 */ lui $at,0x3f80 -/* f07c6e0: 44803000 */ mtc1 $zero,$f6 -/* f07c6e4: 44814000 */ mtc1 $at,$f8 -/* f07c6e8: 44808000 */ mtc1 $zero,$f16 -/* f07c6ec: 02202025 */ or $a0,$s1,$zero -/* f07c6f0: 24050001 */ addiu $a1,$zero,0x1 -/* f07c6f4: 3406ffff */ dli $a2,0xffff -/* f07c6f8: a7ad0072 */ sh $t5,0x72($sp) -/* f07c6fc: e7a60074 */ swc1 $f6,0x74($sp) -/* f07c700: e7a80078 */ swc1 $f8,0x78($sp) -/* f07c704: 0fc249af */ jal func0f0926bc -/* f07c708: e7b0007c */ swc1 $f16,0x7c($sp) -/* f07c70c: 87b80072 */ lh $t8,0x72($sp) -/* f07c710: 240e0001 */ addiu $t6,$zero,0x1 -/* f07c714: 27af0098 */ addiu $t7,$sp,0x98 -/* f07c718: 27b90074 */ addiu $t9,$sp,0x74 -/* f07c71c: afb90020 */ sw $t9,0x20($sp) -/* f07c720: afaf0018 */ sw $t7,0x18($sp) -/* f07c724: afae0014 */ sw $t6,0x14($sp) -/* f07c728: 00002025 */ or $a0,$zero,$zero -/* f07c72c: 8fa50044 */ lw $a1,0x44($sp) -/* f07c730: 8fa60040 */ lw $a2,0x40($sp) -/* f07c734: 2407000d */ addiu $a3,$zero,0xd -/* f07c738: afa00010 */ sw $zero,0x10($sp) -/* f07c73c: 0fc4a7d5 */ jal explosionCreate -/* f07c740: afb8001c */ sw $t8,0x1c($sp) -/* f07c744: 24090001 */ addiu $t1,$zero,0x1 -/* f07c748: 10000014 */ b .L0f07c79c -/* f07c74c: ae0900e4 */ sw $t1,0xe4($s0) -.L0f07c750: -/* f07c750: 8fa50040 */ lw $a1,0x40($sp) -/* f07c754: 0fc4ba08 */ jal smokeCreateSimple -/* f07c758: 24060003 */ addiu $a2,$zero,0x3 -/* f07c75c: c6120080 */ lwc1 $f18,0x80($s0) -/* f07c760: 44802000 */ mtc1 $zero,$f4 -/* f07c764: 02202025 */ or $a0,$s1,$zero -/* f07c768: 8fa50174 */ lw $a1,0x174($sp) -/* f07c76c: 4604903c */ c.lt.s $f18,$f4 -/* f07c770: 27a7015c */ addiu $a3,$sp,0x15c -/* f07c774: 3c017f1b */ lui $at,%hi(var7f1aa694) -/* f07c778: 45000004 */ bc1f .L0f07c78c -/* f07c77c: 00000000 */ nop -/* f07c780: 3c017f1b */ lui $at,%hi(var7f1aa698) -/* f07c784: 10000002 */ b .L0f07c790 -/* f07c788: c420a694 */ lwc1 $f0,%lo(var7f1aa694)($at) -.L0f07c78c: -/* f07c78c: c420a698 */ lwc1 $f0,%lo(var7f1aa698)($at) -.L0f07c790: -/* f07c790: 44060000 */ mfc1 $a2,$f0 -/* f07c794: 0fc1ee8e */ jal chopperIncrementMovement -/* f07c798: afa00010 */ sw $zero,0x10($sp) -.L0f07c79c: -/* f07c79c: 8fbf0034 */ lw $ra,0x34($sp) -.L0f07c7a0: -/* f07c7a0: 8fb0002c */ lw $s0,0x2c($sp) -/* f07c7a4: 8fb10030 */ lw $s1,0x30($sp) -/* f07c7a8: 03e00008 */ jr $ra -/* f07c7ac: 27bd0180 */ addiu $sp,$sp,0x180 -); + cdGetPos(&sp64, 12476, "prop/propobj.c"); +#elif VERSION >= VERSION_PAL_BETA + cdGetPos(&sp64, 12476, "propobj.c"); #elif VERSION >= VERSION_NTSC_1_0 -GLOBAL_ASM( -glabel chopperTickFall -.late_rodata -glabel var7f1aa66c -.word 0xbf333333 -glabel var7f1aa670 -.word 0x3c1374bc -glabel var7f1aa674 -.word 0xc6ea6000 -glabel var7f1aa678 -.word 0x40490fdb -glabel var7f1aa67c -.word 0xc0490fdb -glabel var7f1aa680 -.word 0x3f7ae148 -glabel var7f1aa684 -.word 0x3d567664 -glabel var7f1aa688 -.word 0x40c907a9 -glabel var7f1aa68c -.word 0x3c23d70a -glabel var7f1aa690 -.word 0x3e19999a -glabel var7f1aa694 -.word 0x40490fdb -glabel var7f1aa698 -.word 0xc0490fdb -.text -/* f07c12c: 27bdfe80 */ addiu $sp,$sp,-384 -/* f07c130: afbf0034 */ sw $ra,0x34($sp) -/* f07c134: afb10030 */ sw $s1,0x30($sp) -/* f07c138: afb0002c */ sw $s0,0x2c($sp) -/* f07c13c: 8c900004 */ lw $s0,0x4($a0) -/* f07c140: 24010002 */ addiu $at,$zero,0x2 -/* f07c144: 00808825 */ or $s1,$a0,$zero -/* f07c148: 8e0300c0 */ lw $v1,0xc0($s0) -/* f07c14c: 3c0e800a */ lui $t6,%hi(g_Vars+0x38) -/* f07c150: 02002825 */ or $a1,$s0,$zero -/* f07c154: 14610078 */ bne $v1,$at,.L0f07c338 -/* f07c158: 00000000 */ nop -/* f07c15c: 8dce9ff8 */ lw $t6,%lo(g_Vars+0x38)($t6) -/* f07c160: 8e080088 */ lw $t0,0x88($s0) -/* f07c164: 44801000 */ mtc1 $zero,$f2 -/* f07c168: 44807000 */ mtc1 $zero,$f14 -/* f07c16c: 006e7823 */ subu $t7,$v1,$t6 -/* f07c170: 1100006a */ beqz $t0,.L0f07c31c -/* f07c174: ae0f00c0 */ sw $t7,0xc0($s0) -/* f07c178: 95070006 */ lhu $a3,0x6($t0) -/* f07c17c: 00001825 */ or $v1,$zero,$zero -/* f07c180: 58e0001c */ blezl $a3,.L0f07c1f4 -/* f07c184: 920a0097 */ lbu $t2,0x97($s0) -/* f07c188: 92040097 */ lbu $a0,0x97($s0) -/* f07c18c: 8e06008c */ lw $a2,0x8c($s0) -.L0f07c190: -/* f07c190: 50800004 */ beqzl $a0,.L0f07c1a4 -/* f07c194: 24780001 */ addiu $t8,$v1,0x1 -/* f07c198: 1000000d */ b .L0f07c1d0 -/* f07c19c: 00601025 */ or $v0,$v1,$zero -/* f07c1a0: 24780001 */ addiu $t8,$v1,0x1 -.L0f07c1a4: -/* f07c1a4: 0307001a */ div $zero,$t8,$a3 -/* f07c1a8: 00001010 */ mfhi $v0 -/* f07c1ac: 14e00002 */ bnez $a3,.L0f07c1b8 -/* f07c1b0: 00000000 */ nop -/* f07c1b4: 0007000d */ break 0x7 -.L0f07c1b8: -/* f07c1b8: 2401ffff */ addiu $at,$zero,-1 -/* f07c1bc: 14e10004 */ bne $a3,$at,.L0f07c1d0 -/* f07c1c0: 3c018000 */ lui $at,0x8000 -/* f07c1c4: 17010002 */ bne $t8,$at,.L0f07c1d0 -/* f07c1c8: 00000000 */ nop -/* f07c1cc: 0006000d */ break 0x6 -.L0f07c1d0: -/* f07c1d0: 50460008 */ beql $v0,$a2,.L0f07c1f4 -/* f07c1d4: 920a0097 */ lbu $t2,0x97($s0) -/* f07c1d8: 8cb90088 */ lw $t9,0x88($a1) -/* f07c1dc: 24630001 */ addiu $v1,$v1,0x1 -/* f07c1e0: 97290006 */ lhu $t1,0x6($t9) -/* f07c1e4: 0069082a */ slt $at,$v1,$t1 -/* f07c1e8: 1420ffe9 */ bnez $at,.L0f07c190 -/* f07c1ec: 00000000 */ nop -/* f07c1f0: 920a0097 */ lbu $t2,0x97($s0) -.L0f07c1f4: -/* f07c1f4: 24050002 */ addiu $a1,$zero,0x2 -/* f07c1f8: 246b0001 */ addiu $t3,$v1,0x1 -/* f07c1fc: 5140000f */ beqzl $t2,.L0f07c23c -/* f07c200: 00601025 */ or $v0,$v1,$zero -/* f07c204: 0167001a */ div $zero,$t3,$a3 -/* f07c208: 00001010 */ mfhi $v0 -/* f07c20c: 14e00002 */ bnez $a3,.L0f07c218 -/* f07c210: 00000000 */ nop -/* f07c214: 0007000d */ break 0x7 -.L0f07c218: -/* f07c218: 2401ffff */ addiu $at,$zero,-1 -/* f07c21c: 14e10004 */ bne $a3,$at,.L0f07c230 -/* f07c220: 3c018000 */ lui $at,0x8000 -/* f07c224: 15610002 */ bne $t3,$at,.L0f07c230 -/* f07c228: 00000000 */ nop -/* f07c22c: 0006000d */ break 0x6 -.L0f07c230: -/* f07c230: 10000003 */ b .L0f07c240 -/* f07c234: 8d0c0000 */ lw $t4,0x0($t0) -/* f07c238: 00601025 */ or $v0,$v1,$zero -.L0f07c23c: -/* f07c23c: 8d0c0000 */ lw $t4,0x0($t0) -.L0f07c240: -/* f07c240: 00026880 */ sll $t5,$v0,0x2 -/* f07c244: 27a60104 */ addiu $a2,$sp,0x104 -/* f07c248: 018d7021 */ addu $t6,$t4,$t5 -/* f07c24c: 8dc40000 */ lw $a0,0x0($t6) -/* f07c250: 0fc456ac */ jal padUnpack -/* f07c254: afa30158 */ sw $v1,0x158($sp) -/* f07c258: 920f0097 */ lbu $t7,0x97($s0) -/* f07c25c: 8fa30158 */ lw $v1,0x158($sp) -/* f07c260: 24050002 */ addiu $a1,$zero,0x2 -/* f07c264: 51e00005 */ beqzl $t7,.L0f07c27c -/* f07c268: 8e080088 */ lw $t0,0x88($s0) -/* f07c26c: 00601025 */ or $v0,$v1,$zero -/* f07c270: 1000000f */ b .L0f07c2b0 -/* f07c274: 8e080088 */ lw $t0,0x88($s0) -/* f07c278: 8e080088 */ lw $t0,0x88($s0) -.L0f07c27c: -/* f07c27c: 24780001 */ addiu $t8,$v1,0x1 -/* f07c280: 95190006 */ lhu $t9,0x6($t0) -/* f07c284: 0319001a */ div $zero,$t8,$t9 -/* f07c288: 00001010 */ mfhi $v0 -/* f07c28c: 17200002 */ bnez $t9,.L0f07c298 -/* f07c290: 00000000 */ nop -/* f07c294: 0007000d */ break 0x7 -.L0f07c298: -/* f07c298: 2401ffff */ addiu $at,$zero,-1 -/* f07c29c: 17210004 */ bne $t9,$at,.L0f07c2b0 -/* f07c2a0: 3c018000 */ lui $at,0x8000 -/* f07c2a4: 17010002 */ bne $t8,$at,.L0f07c2b0 -/* f07c2a8: 00000000 */ nop -/* f07c2ac: 0006000d */ break 0x6 -.L0f07c2b0: -/* f07c2b0: 8d090000 */ lw $t1,0x0($t0) -/* f07c2b4: 00025080 */ sll $t2,$v0,0x2 -/* f07c2b8: 27a600b0 */ addiu $a2,$sp,0xb0 -/* f07c2bc: 012a5821 */ addu $t3,$t1,$t2 -/* f07c2c0: 0fc456ac */ jal padUnpack -/* f07c2c4: 8d640000 */ lw $a0,0x0($t3) -/* f07c2c8: c7a40104 */ lwc1 $f4,0x104($sp) -/* f07c2cc: c7a600b0 */ lwc1 $f6,0xb0($sp) -/* f07c2d0: c7a8010c */ lwc1 $f8,0x10c($sp) -/* f07c2d4: c7aa00b8 */ lwc1 $f10,0xb8($sp) -/* f07c2d8: 46062081 */ sub.s $f2,$f4,$f6 -/* f07c2dc: 460a4381 */ sub.s $f14,$f8,$f10 -/* f07c2e0: 46021402 */ mul.s $f16,$f2,$f2 -/* f07c2e4: e7a200ac */ swc1 $f2,0xac($sp) -/* f07c2e8: 460e7482 */ mul.s $f18,$f14,$f14 -/* f07c2ec: e7ae00a8 */ swc1 $f14,0xa8($sp) -/* f07c2f0: 0c012974 */ jal sqrtf -/* f07c2f4: 46128300 */ add.s $f12,$f16,$f18 -/* f07c2f8: 3c013e80 */ lui $at,0x3e80 -/* f07c2fc: 44812000 */ mtc1 $at,$f4 -/* f07c300: c7a200ac */ lwc1 $f2,0xac($sp) -/* f07c304: c7ae00a8 */ lwc1 $f14,0xa8($sp) -/* f07c308: 46002303 */ div.s $f12,$f4,$f0 -/* f07c30c: 460c1082 */ mul.s $f2,$f2,$f12 -/* f07c310: 00000000 */ nop -/* f07c314: 460c7382 */ mul.s $f14,$f14,$f12 -/* f07c318: 00000000 */ nop -.L0f07c31c: -/* f07c31c: 44804000 */ mtc1 $zero,$f8 -/* f07c320: 46007187 */ neg.s $f6,$f14 -/* f07c324: 26020068 */ addiu $v0,$s0,0x68 -/* f07c328: e6060064 */ swc1 $f6,0x64($s0) -/* f07c32c: e4480000 */ swc1 $f8,0x0($v0) -/* f07c330: 10000017 */ b .L0f07c390 -/* f07c334: e602006c */ swc1 $f2,0x6c($s0) -.L0f07c338: -/* f07c338: 04600007 */ bltz $v1,.L0f07c358 -/* f07c33c: 26020068 */ addiu $v0,$s0,0x68 -/* f07c340: 3c0c800a */ lui $t4,%hi(g_Vars+0x38) -/* f07c344: 8d8c9ff8 */ lw $t4,%lo(g_Vars+0x38)($t4) -/* f07c348: 26020068 */ addiu $v0,$s0,0x68 -/* f07c34c: 006c6823 */ subu $t5,$v1,$t4 -/* f07c350: 1000000f */ b .L0f07c390 -/* f07c354: ae0d00c0 */ sw $t5,0xc0($s0) -.L0f07c358: -/* f07c358: 3c017f1b */ lui $at,%hi(var7f1aa66c) -/* f07c35c: c42aa66c */ lwc1 $f10,%lo(var7f1aa66c)($at) -/* f07c360: c4400000 */ lwc1 $f0,0x0($v0) -/* f07c364: 3c017f1b */ lui $at,%hi(var7f1aa670) -/* f07c368: 4600503c */ c.lt.s $f10,$f0 -/* f07c36c: 00000000 */ nop -/* f07c370: 45020008 */ bc1fl .L0f07c394 -/* f07c374: 26030064 */ addiu $v1,$s0,0x64 -/* f07c378: c430a670 */ lwc1 $f16,%lo(var7f1aa670)($at) -/* f07c37c: 3c01800a */ lui $at,%hi(g_Vars+0x44) -/* f07c380: c432a004 */ lwc1 $f18,%lo(g_Vars+0x44)($at) -/* f07c384: 46128102 */ mul.s $f4,$f16,$f18 -/* f07c388: 46040181 */ sub.s $f6,$f0,$f4 -/* f07c38c: e4460000 */ swc1 $f6,0x0($v0) -.L0f07c390: -/* f07c390: 26030064 */ addiu $v1,$s0,0x64 -.L0f07c394: -/* f07c394: c4680000 */ lwc1 $f8,0x0($v1) -/* f07c398: 2605006c */ addiu $a1,$s0,0x6c -/* f07c39c: 3c04800a */ lui $a0,%hi(g_Vars+0x4b4) -/* f07c3a0: e7a8015c */ swc1 $f8,0x15c($sp) -/* f07c3a4: c44a0000 */ lwc1 $f10,0x0($v0) -/* f07c3a8: 8c84a474 */ lw $a0,%lo(g_Vars+0x4b4)($a0) -/* f07c3ac: e7aa0160 */ swc1 $f10,0x160($sp) -/* f07c3b0: c4b00000 */ lwc1 $f16,0x0($a1) -/* f07c3b4: e7b00164 */ swc1 $f16,0x164($sp) -/* f07c3b8: c4640000 */ lwc1 $f4,0x0($v1) -/* f07c3bc: c612007c */ lwc1 $f18,0x7c($s0) -/* f07c3c0: c4a80000 */ lwc1 $f8,0x0($a1) -/* f07c3c4: 46049180 */ add.s $f6,$f18,$f4 -/* f07c3c8: 46064280 */ add.s $f10,$f8,$f6 -/* f07c3cc: 0fc59585 */ jal stageGetIndex -/* f07c3d0: e7aa0174 */ swc1 $f10,0x174($sp) -/* f07c3d4: 2401000e */ addiu $at,$zero,0xe -/* f07c3d8: 14410022 */ bne $v0,$at,.L0f07c464 -/* f07c3dc: 3c03800a */ lui $v1,%hi(g_Vars+0x38) -/* f07c3e0: 3c017f1b */ lui $at,%hi(var7f1aa674) -/* f07c3e4: c432a674 */ lwc1 $f18,%lo(var7f1aa674)($at) -/* f07c3e8: c630000c */ lwc1 $f16,0xc($s1) -/* f07c3ec: 3406ffff */ dli $a2,0xffff -/* f07c3f0: 02202025 */ or $a0,$s1,$zero -/* f07c3f4: 4612803c */ c.lt.s $f16,$f18 -/* f07c3f8: 8fa50174 */ lw $a1,0x174($sp) -/* f07c3fc: 27a7015c */ addiu $a3,$sp,0x15c -/* f07c400: 45020009 */ bc1fl .L0f07c428 -/* f07c404: c6040080 */ lwc1 $f4,0x80($s0) -/* f07c408: 02202025 */ or $a0,$s1,$zero -/* f07c40c: 0fc249af */ jal func0f0926bc -/* f07c410: 24050001 */ addiu $a1,$zero,0x1 -/* f07c414: 8e0e0040 */ lw $t6,0x40($s0) -/* f07c418: 35cf0004 */ ori $t7,$t6,0x4 -/* f07c41c: 100000df */ b .L0f07c79c -/* f07c420: ae0f0040 */ sw $t7,0x40($s0) -/* f07c424: c6040080 */ lwc1 $f4,0x80($s0) -.L0f07c428: -/* f07c428: 44804000 */ mtc1 $zero,$f8 -/* f07c42c: 3c017f1b */ lui $at,%hi(var7f1aa678) -/* f07c430: 4608203c */ c.lt.s $f4,$f8 -/* f07c434: 00000000 */ nop -/* f07c438: 45000004 */ bc1f .L0f07c44c -/* f07c43c: 00000000 */ nop -/* f07c440: 3c017f1b */ lui $at,%hi(var7f1aa67c) -/* f07c444: 10000002 */ b .L0f07c450 -/* f07c448: c420a678 */ lwc1 $f0,%lo(var7f1aa678)($at) -.L0f07c44c: -/* f07c44c: c420a67c */ lwc1 $f0,%lo(var7f1aa67c)($at) -.L0f07c450: -/* f07c450: 44060000 */ mfc1 $a2,$f0 -/* f07c454: 0fc1ee8e */ jal chopperIncrementMovement -/* f07c458: afa00010 */ sw $zero,0x10($sp) -/* f07c45c: 100000d0 */ b .L0f07c7a0 -/* f07c460: 8fbf0034 */ lw $ra,0x34($sp) -.L0f07c464: -/* f07c464: 8c639ff8 */ lw $v1,%lo(g_Vars+0x38)($v1) -/* f07c468: 3c017f1b */ lui $at,%hi(var7f1aa680) -/* f07c46c: c420a680 */ lwc1 $f0,%lo(var7f1aa680)($at) -/* f07c470: 28610002 */ slti $at,$v1,0x2 -/* f07c474: 24020001 */ addiu $v0,$zero,0x1 -/* f07c478: 14200006 */ bnez $at,.L0f07c494 -/* f07c47c: 46000086 */ mov.s $f2,$f0 -/* f07c480: 24420001 */ addiu $v0,$v0,0x1 -.L0f07c484: -/* f07c484: 0043082a */ slt $at,$v0,$v1 -/* f07c488: 46001082 */ mul.s $f2,$f2,$f0 -/* f07c48c: 5420fffd */ bnezl $at,.L0f07c484 -/* f07c490: 24420001 */ addiu $v0,$v0,0x1 -.L0f07c494: -/* f07c494: 3c017f1b */ lui $at,%hi(var7f1aa684) -/* f07c498: c42aa684 */ lwc1 $f10,%lo(var7f1aa684)($at) -/* f07c49c: c60600b4 */ lwc1 $f6,0xb4($s0) -/* f07c4a0: 3c017f1b */ lui $at,%hi(var7f1aa688) -/* f07c4a4: c430a688 */ lwc1 $f16,%lo(var7f1aa688)($at) -/* f07c4a8: 460a3300 */ add.s $f12,$f6,$f10 -/* f07c4ac: 460c803c */ c.lt.s $f16,$f12 -/* f07c4b0: 00000000 */ nop -/* f07c4b4: 4500001c */ bc1f .L0f07c528 -/* f07c4b8: 00000000 */ nop -/* f07c4bc: 44806000 */ mtc1 $zero,$f12 -/* f07c4c0: e7a20088 */ swc1 $f2,0x88($sp) -/* f07c4c4: 0c004b70 */ jal random -/* f07c4c8: e7ac0084 */ swc1 $f12,0x84($sp) -/* f07c4cc: 30580007 */ andi $t8,$v0,0x7 -/* f07c4d0: 27190002 */ addiu $t9,$t8,0x2 -/* f07c4d4: 44999000 */ mtc1 $t9,$f18 -/* f07c4d8: c7a20088 */ lwc1 $f2,0x88($sp) -/* f07c4dc: c7ac0084 */ lwc1 $f12,0x84($sp) -/* f07c4e0: 07210005 */ bgez $t9,.L0f07c4f8 -/* f07c4e4: 46809120 */ cvt.s.w $f4,$f18 -/* f07c4e8: 3c014f80 */ lui $at,0x4f80 -/* f07c4ec: 44814000 */ mtc1 $at,$f8 -/* f07c4f0: 00000000 */ nop -/* f07c4f4: 46082100 */ add.s $f4,$f4,$f8 -.L0f07c4f8: -/* f07c4f8: 3c017f1b */ lui $at,%hi(var7f1aa68c) -/* f07c4fc: c426a68c */ lwc1 $f6,%lo(var7f1aa68c)($at) -/* f07c500: 8e090008 */ lw $t1,0x8($s0) -/* f07c504: 3c017f1b */ lui $at,%hi(var7f1aa690) -/* f07c508: 46062282 */ mul.s $f10,$f4,$f6 -/* f07c50c: 00095000 */ sll $t2,$t1,0x0 -/* f07c510: 05410005 */ bgez $t2,.L0f07c528 -/* f07c514: e60a00b8 */ swc1 $f10,0xb8($s0) -/* f07c518: c61000b8 */ lwc1 $f16,0xb8($s0) -/* f07c51c: c432a690 */ lwc1 $f18,%lo(var7f1aa690)($at) -/* f07c520: 46128202 */ mul.s $f8,$f16,$f18 -/* f07c524: e60800b8 */ swc1 $f8,0xb8($s0) -.L0f07c528: -/* f07c528: 0c0068f7 */ jal sinf -/* f07c52c: e7a20088 */ swc1 $f2,0x88($sp) -/* f07c530: c60600b8 */ lwc1 $f6,0xb8($s0) -/* f07c534: c7a40160 */ lwc1 $f4,0x160($sp) -/* f07c538: c7b2015c */ lwc1 $f18,0x15c($sp) -/* f07c53c: 46003282 */ mul.s $f10,$f6,$f0 -/* f07c540: c7a20088 */ lwc1 $f2,0x88($sp) -/* f07c544: 3c01800a */ lui $at,%hi(g_Vars+0x4c) -/* f07c548: c42ca00c */ lwc1 $f12,%lo(g_Vars+0x4c)($at) -/* f07c54c: 26240008 */ addiu $a0,$s1,0x8 -/* f07c550: 26250028 */ addiu $a1,$s1,0x28 -/* f07c554: 27a60098 */ addiu $a2,$sp,0x98 -/* f07c558: 460a2400 */ add.s $f16,$f4,$f10 -/* f07c55c: 24070020 */ addiu $a3,$zero,0x20 -/* f07c560: e7b00160 */ swc1 $f16,0x160($sp) -/* f07c564: c60800a4 */ lwc1 $f8,0xa4($s0) -/* f07c568: c6040098 */ lwc1 $f4,0x98($s0) -/* f07c56c: 46089182 */ mul.s $f6,$f18,$f8 -/* f07c570: 46043280 */ add.s $f10,$f6,$f4 -/* f07c574: 46025482 */ mul.s $f18,$f10,$f2 -/* f07c578: e7b2008c */ swc1 $f18,0x8c($sp) -/* f07c57c: c60800a4 */ lwc1 $f8,0xa4($s0) -/* f07c580: c604009c */ lwc1 $f4,0x9c($s0) -/* f07c584: 46088182 */ mul.s $f6,$f16,$f8 -/* f07c588: c7a80164 */ lwc1 $f8,0x164($sp) -/* f07c58c: 46043280 */ add.s $f10,$f6,$f4 -/* f07c590: 46025402 */ mul.s $f16,$f10,$f2 -/* f07c594: e7b00090 */ swc1 $f16,0x90($sp) -/* f07c598: c60600a4 */ lwc1 $f6,0xa4($s0) -/* f07c59c: c60a00a0 */ lwc1 $f10,0xa0($s0) -/* f07c5a0: 46064102 */ mul.s $f4,$f8,$f6 -/* f07c5a4: 460a2200 */ add.s $f8,$f4,$f10 -/* f07c5a8: 46024182 */ mul.s $f6,$f8,$f2 -/* f07c5ac: e7a60094 */ swc1 $f6,0x94($sp) -/* f07c5b0: 460c9102 */ mul.s $f4,$f18,$f12 -/* f07c5b4: c62a0008 */ lwc1 $f10,0x8($s1) -/* f07c5b8: 460c8482 */ mul.s $f18,$f16,$f12 -/* f07c5bc: 460a2200 */ add.s $f8,$f4,$f10 -/* f07c5c0: e7a80098 */ swc1 $f8,0x98($sp) -/* f07c5c4: c624000c */ lwc1 $f4,0xc($s1) -/* f07c5c8: 460c3202 */ mul.s $f8,$f6,$f12 -/* f07c5cc: 46049280 */ add.s $f10,$f18,$f4 -/* f07c5d0: e7aa009c */ swc1 $f10,0x9c($sp) -/* f07c5d4: c6300010 */ lwc1 $f16,0x10($s1) -/* f07c5d8: afa50040 */ sw $a1,0x40($sp) -/* f07c5dc: afa40044 */ sw $a0,0x44($sp) -/* f07c5e0: 46104480 */ add.s $f18,$f8,$f16 -/* f07c5e4: 0c00b784 */ jal cd0002de10 -/* f07c5e8: e7b200a0 */ swc1 $f18,0xa0($sp) -/* f07c5ec: 14400058 */ bnez $v0,.L0f07c750 -/* f07c5f0: 8fa40044 */ lw $a0,0x44($sp) -/* f07c5f4: 3c0142c8 */ lui $at,0x42c8 -/* f07c5f8: 44815000 */ mtc1 $at,$f10 -/* f07c5fc: c624000c */ lwc1 $f4,0xc($s1) -/* f07c600: 3c0540a0 */ lui $a1,0x40a0 -/* f07c604: 00003825 */ or $a3,$zero,$zero -/* f07c608: 460a2180 */ add.s $f6,$f4,$f10 -/* f07c60c: e626000c */ swc1 $f6,0xc($s1) -/* f07c610: afa00010 */ sw $zero,0x10($sp) -/* f07c614: 8fa60040 */ lw $a2,0x40($sp) -/* f07c618: 0c00a8cc */ jal cdFindGroundYSimple -/* f07c61c: 8fa40044 */ lw $a0,0x44($sp) -/* f07c620: e7a00060 */ swc1 $f0,0x60($sp) -/* f07c624: 3c0142c8 */ lui $at,0x42c8 -/* f07c628: 44818000 */ mtc1 $at,$f16 -/* f07c62c: c628000c */ lwc1 $f8,0xc($s1) -/* f07c630: 3c067f1b */ lui $a2,%hi(var7f1aa044) -/* f07c634: 24c6a044 */ addiu $a2,$a2,%lo(var7f1aa044) -/* f07c638: 46104481 */ sub.s $f18,$f8,$f16 -/* f07c63c: 27a40064 */ addiu $a0,$sp,0x64 -/* f07c640: 240530a1 */ addiu $a1,$zero,0x30a1 -/* f07c644: 0c0093af */ jal cdGetPos -/* f07c648: e632000c */ swc1 $f18,0xc($s1) -/* f07c64c: 3c0141a0 */ lui $at,0x41a0 -/* f07c650: 44813000 */ mtc1 $at,$f6 -/* f07c654: c7aa0060 */ lwc1 $f10,0x60($sp) -/* f07c658: c7a40064 */ lwc1 $f4,0x64($sp) -/* f07c65c: c7b0006c */ lwc1 $f16,0x6c($sp) -/* f07c660: 46065200 */ add.s $f8,$f10,$f6 -/* f07c664: 8fa40044 */ lw $a0,0x44($sp) -/* f07c668: 8fa50040 */ lw $a1,0x40($sp) -/* f07c66c: 27a60098 */ addiu $a2,$sp,0x98 -/* f07c670: e7a8009c */ swc1 $f8,0x9c($sp) -/* f07c674: 27a70050 */ addiu $a3,$sp,0x50 -/* f07c678: e7a40098 */ swc1 $f4,0x98($sp) -/* f07c67c: 0fc1979d */ jal func0f065e74 -/* f07c680: e7b000a0 */ swc1 $f16,0xa0($sp) -/* f07c684: c7b20098 */ lwc1 $f18,0x98($sp) -/* f07c688: 02202025 */ or $a0,$s1,$zero -/* f07c68c: e6320008 */ swc1 $f18,0x8($s1) -/* f07c690: c7a4009c */ lwc1 $f4,0x9c($sp) -/* f07c694: e624000c */ swc1 $f4,0xc($s1) -/* f07c698: c7aa00a0 */ lwc1 $f10,0xa0($sp) -/* f07c69c: 0fc19711 */ jal propDeregisterRooms -/* f07c6a0: e62a0010 */ swc1 $f10,0x10($s1) -/* f07c6a4: 27a40050 */ addiu $a0,$sp,0x50 -/* f07c6a8: 0fc195e9 */ jal roomsCopy -/* f07c6ac: 8fa50040 */ lw $a1,0x40($sp) -/* f07c6b0: 02002025 */ or $a0,$s0,$zero -/* f07c6b4: 00002825 */ or $a1,$zero,$zero -/* f07c6b8: 0fc1a71c */ jal func0f069c70 -/* f07c6bc: 24060001 */ addiu $a2,$zero,0x1 -/* f07c6c0: 920b0096 */ lbu $t3,0x96($s0) -/* f07c6c4: 02002025 */ or $a0,$s0,$zero -/* f07c6c8: 24050008 */ addiu $a1,$zero,0x8 -/* f07c6cc: 256c0001 */ addiu $t4,$t3,0x1 -/* f07c6d0: 0fc20733 */ jal objDeform -/* f07c6d4: a20c0096 */ sb $t4,0x96($s0) -/* f07c6d8: 862d0028 */ lh $t5,0x28($s1) -/* f07c6dc: 3c013f80 */ lui $at,0x3f80 -/* f07c6e0: 44803000 */ mtc1 $zero,$f6 -/* f07c6e4: 44814000 */ mtc1 $at,$f8 -/* f07c6e8: 44808000 */ mtc1 $zero,$f16 -/* f07c6ec: 02202025 */ or $a0,$s1,$zero -/* f07c6f0: 24050001 */ addiu $a1,$zero,0x1 -/* f07c6f4: 3406ffff */ dli $a2,0xffff -/* f07c6f8: a7ad0072 */ sh $t5,0x72($sp) -/* f07c6fc: e7a60074 */ swc1 $f6,0x74($sp) -/* f07c700: e7a80078 */ swc1 $f8,0x78($sp) -/* f07c704: 0fc249af */ jal func0f0926bc -/* f07c708: e7b0007c */ swc1 $f16,0x7c($sp) -/* f07c70c: 87b80072 */ lh $t8,0x72($sp) -/* f07c710: 240e0001 */ addiu $t6,$zero,0x1 -/* f07c714: 27af0098 */ addiu $t7,$sp,0x98 -/* f07c718: 27b90074 */ addiu $t9,$sp,0x74 -/* f07c71c: afb90020 */ sw $t9,0x20($sp) -/* f07c720: afaf0018 */ sw $t7,0x18($sp) -/* f07c724: afae0014 */ sw $t6,0x14($sp) -/* f07c728: 00002025 */ or $a0,$zero,$zero -/* f07c72c: 8fa50044 */ lw $a1,0x44($sp) -/* f07c730: 8fa60040 */ lw $a2,0x40($sp) -/* f07c734: 2407000d */ addiu $a3,$zero,0xd -/* f07c738: afa00010 */ sw $zero,0x10($sp) -/* f07c73c: 0fc4a7d5 */ jal explosionCreate -/* f07c740: afb8001c */ sw $t8,0x1c($sp) -/* f07c744: 24090001 */ addiu $t1,$zero,0x1 -/* f07c748: 10000014 */ b .L0f07c79c -/* f07c74c: ae0900e4 */ sw $t1,0xe4($s0) -.L0f07c750: -/* f07c750: 8fa50040 */ lw $a1,0x40($sp) -/* f07c754: 0fc4ba08 */ jal smokeCreateSimple -/* f07c758: 24060003 */ addiu $a2,$zero,0x3 -/* f07c75c: c6120080 */ lwc1 $f18,0x80($s0) -/* f07c760: 44802000 */ mtc1 $zero,$f4 -/* f07c764: 02202025 */ or $a0,$s1,$zero -/* f07c768: 8fa50174 */ lw $a1,0x174($sp) -/* f07c76c: 4604903c */ c.lt.s $f18,$f4 -/* f07c770: 27a7015c */ addiu $a3,$sp,0x15c -/* f07c774: 3c017f1b */ lui $at,%hi(var7f1aa694) -/* f07c778: 45000004 */ bc1f .L0f07c78c -/* f07c77c: 00000000 */ nop -/* f07c780: 3c017f1b */ lui $at,%hi(var7f1aa698) -/* f07c784: 10000002 */ b .L0f07c790 -/* f07c788: c420a694 */ lwc1 $f0,%lo(var7f1aa694)($at) -.L0f07c78c: -/* f07c78c: c420a698 */ lwc1 $f0,%lo(var7f1aa698)($at) -.L0f07c790: -/* f07c790: 44060000 */ mfc1 $a2,$f0 -/* f07c794: 0fc1ee8e */ jal chopperIncrementMovement -/* f07c798: afa00010 */ sw $zero,0x10($sp) -.L0f07c79c: -/* f07c79c: 8fbf0034 */ lw $ra,0x34($sp) -.L0f07c7a0: -/* f07c7a0: 8fb0002c */ lw $s0,0x2c($sp) -/* f07c7a4: 8fb10030 */ lw $s1,0x30($sp) -/* f07c7a8: 03e00008 */ jr $ra -/* f07c7ac: 27bd0180 */ addiu $sp,$sp,0x180 -); + cdGetPos(&sp64, 12449, "propobj.c"); #else -GLOBAL_ASM( -glabel chopperTickFall -.late_rodata -glabel var7f1aa66c -.word 0xbf333333 -glabel var7f1aa670 -.word 0x3c1374bc -glabel var7f1aa674 -.word 0xc6ea6000 -glabel var7f1aa678 -.word 0x40490fdb -glabel var7f1aa67c -.word 0xc0490fdb -glabel var7f1aa680 -.word 0x3f7ae148 -glabel var7f1aa684 -.word 0x3d567664 -glabel var7f1aa688 -.word 0x40c907a9 -glabel var7f1aa68c -.word 0x3c23d70a -glabel var7f1aa690 -.word 0x3e19999a -glabel var7f1aa694 -.word 0x40490fdb -glabel var7f1aa698 -.word 0xc0490fdb -.text -/* f07abdc: 27bdfe80 */ addiu $sp,$sp,-384 -/* f07abe0: afbf0034 */ sw $ra,0x34($sp) -/* f07abe4: afb10030 */ sw $s1,0x30($sp) -/* f07abe8: afb0002c */ sw $s0,0x2c($sp) -/* f07abec: 8c900004 */ lw $s0,0x4($a0) -/* f07abf0: 24010002 */ addiu $at,$zero,0x2 -/* f07abf4: 00808825 */ or $s1,$a0,$zero -/* f07abf8: 8e0200c0 */ lw $v0,0xc0($s0) -/* f07abfc: 3c0e800a */ lui $t6,0x800a -/* f07ac00: 02002825 */ or $a1,$s0,$zero -/* f07ac04: 14410077 */ bne $v0,$at,.NB0f07ade4 -/* f07ac08: 00000000 */ sll $zero,$zero,0x0 -/* f07ac0c: 8dcee6f8 */ lw $t6,-0x1908($t6) -/* f07ac10: 8e080088 */ lw $t0,0x88($s0) -/* f07ac14: 44801000 */ mtc1 $zero,$f2 -/* f07ac18: 44807000 */ mtc1 $zero,$f14 -/* f07ac1c: 004e7823 */ subu $t7,$v0,$t6 -/* f07ac20: 1100006a */ beqz $t0,.NB0f07adcc -/* f07ac24: ae0f00c0 */ sw $t7,0xc0($s0) -/* f07ac28: 95070006 */ lhu $a3,0x6($t0) -/* f07ac2c: 00001825 */ or $v1,$zero,$zero -/* f07ac30: 58e0001c */ blezl $a3,.NB0f07aca4 -/* f07ac34: 920a0097 */ lbu $t2,0x97($s0) -/* f07ac38: 92040097 */ lbu $a0,0x97($s0) -/* f07ac3c: 8e06008c */ lw $a2,0x8c($s0) -.NB0f07ac40: -/* f07ac40: 50800004 */ beqzl $a0,.NB0f07ac54 -/* f07ac44: 24780001 */ addiu $t8,$v1,0x1 -/* f07ac48: 1000000d */ beqz $zero,.NB0f07ac80 -/* f07ac4c: 00601025 */ or $v0,$v1,$zero -/* f07ac50: 24780001 */ addiu $t8,$v1,0x1 -.NB0f07ac54: -/* f07ac54: 0307001a */ div $zero,$t8,$a3 -/* f07ac58: 00001010 */ mfhi $v0 -/* f07ac5c: 14e00002 */ bnez $a3,.NB0f07ac68 -/* f07ac60: 00000000 */ sll $zero,$zero,0x0 -/* f07ac64: 0007000d */ break 0x7 -.NB0f07ac68: -/* f07ac68: 2401ffff */ addiu $at,$zero,-1 -/* f07ac6c: 14e10004 */ bne $a3,$at,.NB0f07ac80 -/* f07ac70: 3c018000 */ lui $at,0x8000 -/* f07ac74: 17010002 */ bne $t8,$at,.NB0f07ac80 -/* f07ac78: 00000000 */ sll $zero,$zero,0x0 -/* f07ac7c: 0006000d */ break 0x6 -.NB0f07ac80: -/* f07ac80: 50460008 */ beql $v0,$a2,.NB0f07aca4 -/* f07ac84: 920a0097 */ lbu $t2,0x97($s0) -/* f07ac88: 8cb90088 */ lw $t9,0x88($a1) -/* f07ac8c: 24630001 */ addiu $v1,$v1,0x1 -/* f07ac90: 97290006 */ lhu $t1,0x6($t9) -/* f07ac94: 0069082a */ slt $at,$v1,$t1 -/* f07ac98: 1420ffe9 */ bnez $at,.NB0f07ac40 -/* f07ac9c: 00000000 */ sll $zero,$zero,0x0 -/* f07aca0: 920a0097 */ lbu $t2,0x97($s0) -.NB0f07aca4: -/* f07aca4: 24050002 */ addiu $a1,$zero,0x2 -/* f07aca8: 246b0001 */ addiu $t3,$v1,0x1 -/* f07acac: 5140000f */ beqzl $t2,.NB0f07acec -/* f07acb0: 00601025 */ or $v0,$v1,$zero -/* f07acb4: 0167001a */ div $zero,$t3,$a3 -/* f07acb8: 00001010 */ mfhi $v0 -/* f07acbc: 14e00002 */ bnez $a3,.NB0f07acc8 -/* f07acc0: 00000000 */ sll $zero,$zero,0x0 -/* f07acc4: 0007000d */ break 0x7 -.NB0f07acc8: -/* f07acc8: 2401ffff */ addiu $at,$zero,-1 -/* f07accc: 14e10004 */ bne $a3,$at,.NB0f07ace0 -/* f07acd0: 3c018000 */ lui $at,0x8000 -/* f07acd4: 15610002 */ bne $t3,$at,.NB0f07ace0 -/* f07acd8: 00000000 */ sll $zero,$zero,0x0 -/* f07acdc: 0006000d */ break 0x6 -.NB0f07ace0: -/* f07ace0: 10000003 */ beqz $zero,.NB0f07acf0 -/* f07ace4: 8d0c0000 */ lw $t4,0x0($t0) -/* f07ace8: 00601025 */ or $v0,$v1,$zero -.NB0f07acec: -/* f07acec: 8d0c0000 */ lw $t4,0x0($t0) -.NB0f07acf0: -/* f07acf0: 00026880 */ sll $t5,$v0,0x2 -/* f07acf4: 27a60104 */ addiu $a2,$sp,0x104 -/* f07acf8: 018d7021 */ addu $t6,$t4,$t5 -/* f07acfc: 8dc40000 */ lw $a0,0x0($t6) -/* f07ad00: 0fc43fc4 */ jal padUnpack -/* f07ad04: afa30158 */ sw $v1,0x158($sp) -/* f07ad08: 920f0097 */ lbu $t7,0x97($s0) -/* f07ad0c: 8fa30158 */ lw $v1,0x158($sp) -/* f07ad10: 24050002 */ addiu $a1,$zero,0x2 -/* f07ad14: 51e00005 */ beqzl $t7,.NB0f07ad2c -/* f07ad18: 8e080088 */ lw $t0,0x88($s0) -/* f07ad1c: 00601025 */ or $v0,$v1,$zero -/* f07ad20: 1000000f */ beqz $zero,.NB0f07ad60 -/* f07ad24: 8e080088 */ lw $t0,0x88($s0) -/* f07ad28: 8e080088 */ lw $t0,0x88($s0) -.NB0f07ad2c: -/* f07ad2c: 24780001 */ addiu $t8,$v1,0x1 -/* f07ad30: 95190006 */ lhu $t9,0x6($t0) -/* f07ad34: 0319001a */ div $zero,$t8,$t9 -/* f07ad38: 00001010 */ mfhi $v0 -/* f07ad3c: 17200002 */ bnez $t9,.NB0f07ad48 -/* f07ad40: 00000000 */ sll $zero,$zero,0x0 -/* f07ad44: 0007000d */ break 0x7 -.NB0f07ad48: -/* f07ad48: 2401ffff */ addiu $at,$zero,-1 -/* f07ad4c: 17210004 */ bne $t9,$at,.NB0f07ad60 -/* f07ad50: 3c018000 */ lui $at,0x8000 -/* f07ad54: 17010002 */ bne $t8,$at,.NB0f07ad60 -/* f07ad58: 00000000 */ sll $zero,$zero,0x0 -/* f07ad5c: 0006000d */ break 0x6 -.NB0f07ad60: -/* f07ad60: 8d090000 */ lw $t1,0x0($t0) -/* f07ad64: 00025080 */ sll $t2,$v0,0x2 -/* f07ad68: 27a600b0 */ addiu $a2,$sp,0xb0 -/* f07ad6c: 012a5821 */ addu $t3,$t1,$t2 -/* f07ad70: 0fc43fc4 */ jal padUnpack -/* f07ad74: 8d640000 */ lw $a0,0x0($t3) -/* f07ad78: c7a40104 */ lwc1 $f4,0x104($sp) -/* f07ad7c: c7a600b0 */ lwc1 $f6,0xb0($sp) -/* f07ad80: c7a8010c */ lwc1 $f8,0x10c($sp) -/* f07ad84: c7aa00b8 */ lwc1 $f10,0xb8($sp) -/* f07ad88: 46062081 */ sub.s $f2,$f4,$f6 -/* f07ad8c: 460a4381 */ sub.s $f14,$f8,$f10 -/* f07ad90: 46021402 */ mul.s $f16,$f2,$f2 -/* f07ad94: e7a200ac */ swc1 $f2,0xac($sp) -/* f07ad98: 460e7482 */ mul.s $f18,$f14,$f14 -/* f07ad9c: e7ae00a8 */ swc1 $f14,0xa8($sp) -/* f07ada0: 0c012e84 */ jal sqrtf -/* f07ada4: 46128300 */ add.s $f12,$f16,$f18 -/* f07ada8: 3c013e80 */ lui $at,0x3e80 -/* f07adac: 44812000 */ mtc1 $at,$f4 -/* f07adb0: c7a200ac */ lwc1 $f2,0xac($sp) -/* f07adb4: c7ae00a8 */ lwc1 $f14,0xa8($sp) -/* f07adb8: 46002303 */ div.s $f12,$f4,$f0 -/* f07adbc: 460c1082 */ mul.s $f2,$f2,$f12 -/* f07adc0: 00000000 */ sll $zero,$zero,0x0 -/* f07adc4: 460c7382 */ mul.s $f14,$f14,$f12 -/* f07adc8: 00000000 */ sll $zero,$zero,0x0 -.NB0f07adcc: -/* f07adcc: 44804000 */ mtc1 $zero,$f8 -/* f07add0: 46007187 */ neg.s $f6,$f14 -/* f07add4: e602006c */ swc1 $f2,0x6c($s0) -/* f07add8: e6060064 */ swc1 $f6,0x64($s0) -/* f07addc: 10000017 */ beqz $zero,.NB0f07ae3c -/* f07ade0: e6080068 */ swc1 $f8,0x68($s0) -.NB0f07ade4: -/* f07ade4: 04400006 */ bltz $v0,.NB0f07ae00 -/* f07ade8: 3c017f1a */ lui $at,0x7f1a -/* f07adec: 3c0c800a */ lui $t4,0x800a -/* f07adf0: 8d8ce6f8 */ lw $t4,-0x1908($t4) -/* f07adf4: 004c6823 */ subu $t5,$v0,$t4 -/* f07adf8: 10000010 */ beqz $zero,.NB0f07ae3c -/* f07adfc: ae0d00c0 */ sw $t5,0xc0($s0) -.NB0f07ae00: -/* f07ae00: c42a498c */ lwc1 $f10,0x498c($at) -/* f07ae04: c7b00160 */ lwc1 $f16,0x160($sp) -/* f07ae08: 3c017f1a */ lui $at,0x7f1a -/* f07ae0c: 4610503c */ c.lt.s $f10,$f16 -/* f07ae10: 00000000 */ sll $zero,$zero,0x0 -/* f07ae14: 4502000a */ bc1fl .NB0f07ae40 -/* f07ae18: 26020064 */ addiu $v0,$s0,0x64 -/* f07ae1c: c4324990 */ lwc1 $f18,0x4990($at) -/* f07ae20: 3c01800a */ lui $at,0x800a -/* f07ae24: c424e704 */ lwc1 $f4,-0x18fc($at) -/* f07ae28: 26020068 */ addiu $v0,$s0,0x68 -/* f07ae2c: c4480000 */ lwc1 $f8,0x0($v0) -/* f07ae30: 46049182 */ mul.s $f6,$f18,$f4 -/* f07ae34: 46064281 */ sub.s $f10,$f8,$f6 -/* f07ae38: e44a0000 */ swc1 $f10,0x0($v0) -.NB0f07ae3c: -/* f07ae3c: 26020064 */ addiu $v0,$s0,0x64 -.NB0f07ae40: -/* f07ae40: c4500000 */ lwc1 $f16,0x0($v0) -/* f07ae44: 2603006c */ addiu $v1,$s0,0x6c -/* f07ae48: 3c04800a */ lui $a0,0x800a -/* f07ae4c: e7b0015c */ swc1 $f16,0x15c($sp) -/* f07ae50: c6120068 */ lwc1 $f18,0x68($s0) -/* f07ae54: 8c84eb74 */ lw $a0,-0x148c($a0) -/* f07ae58: e7b20160 */ swc1 $f18,0x160($sp) -/* f07ae5c: c4640000 */ lwc1 $f4,0x0($v1) -/* f07ae60: e7a40164 */ swc1 $f4,0x164($sp) -/* f07ae64: c4460000 */ lwc1 $f6,0x0($v0) -/* f07ae68: c608007c */ lwc1 $f8,0x7c($s0) -/* f07ae6c: c4700000 */ lwc1 $f16,0x0($v1) -/* f07ae70: 46064280 */ add.s $f10,$f8,$f6 -/* f07ae74: 460a8480 */ add.s $f18,$f16,$f10 -/* f07ae78: 0fc57f85 */ jal stageGetIndex -/* f07ae7c: e7b20174 */ swc1 $f18,0x174($sp) -/* f07ae80: 2401000e */ addiu $at,$zero,0xe -/* f07ae84: 14410022 */ bne $v0,$at,.NB0f07af10 -/* f07ae88: 3c03800a */ lui $v1,0x800a -/* f07ae8c: 3c017f1a */ lui $at,0x7f1a -/* f07ae90: c4284994 */ lwc1 $f8,0x4994($at) -/* f07ae94: c624000c */ lwc1 $f4,0xc($s1) -/* f07ae98: 3406ffff */ dli $a2,0xffff -/* f07ae9c: 02202025 */ or $a0,$s1,$zero -/* f07aea0: 4608203c */ c.lt.s $f4,$f8 -/* f07aea4: 8fa50174 */ lw $a1,0x174($sp) -/* f07aea8: 27a7015c */ addiu $a3,$sp,0x15c -/* f07aeac: 45020009 */ bc1fl .NB0f07aed4 -/* f07aeb0: c6060080 */ lwc1 $f6,0x80($s0) -/* f07aeb4: 02202025 */ or $a0,$s1,$zero -/* f07aeb8: 0fc2433d */ jal func0f0926bc -/* f07aebc: 24050001 */ addiu $a1,$zero,0x1 -/* f07aec0: 8e0e0040 */ lw $t6,0x40($s0) -/* f07aec4: 35cf0004 */ ori $t7,$t6,0x4 -/* f07aec8: 100000df */ beqz $zero,.NB0f07b248 -/* f07aecc: ae0f0040 */ sw $t7,0x40($s0) -/* f07aed0: c6060080 */ lwc1 $f6,0x80($s0) -.NB0f07aed4: -/* f07aed4: 44808000 */ mtc1 $zero,$f16 -/* f07aed8: 3c017f1a */ lui $at,0x7f1a -/* f07aedc: 4610303c */ c.lt.s $f6,$f16 -/* f07aee0: 00000000 */ sll $zero,$zero,0x0 -/* f07aee4: 45000004 */ bc1f .NB0f07aef8 -/* f07aee8: 00000000 */ sll $zero,$zero,0x0 -/* f07aeec: 3c017f1a */ lui $at,0x7f1a -/* f07aef0: 10000002 */ beqz $zero,.NB0f07aefc -/* f07aef4: c4204998 */ lwc1 $f0,0x4998($at) -.NB0f07aef8: -/* f07aef8: c420499c */ lwc1 $f0,0x499c($at) -.NB0f07aefc: -/* f07aefc: 44060000 */ mfc1 $a2,$f0 -/* f07af00: 0fc1e93a */ jal chopperIncrementMovement -/* f07af04: afa00010 */ sw $zero,0x10($sp) -/* f07af08: 100000d0 */ beqz $zero,.NB0f07b24c -/* f07af0c: 8fbf0034 */ lw $ra,0x34($sp) -.NB0f07af10: -/* f07af10: 8c63e6f8 */ lw $v1,-0x1908($v1) -/* f07af14: 3c017f1a */ lui $at,0x7f1a -/* f07af18: c42049a0 */ lwc1 $f0,0x49a0($at) -/* f07af1c: 28610002 */ slti $at,$v1,0x2 -/* f07af20: 24020001 */ addiu $v0,$zero,0x1 -/* f07af24: 14200006 */ bnez $at,.NB0f07af40 -/* f07af28: 46000086 */ mov.s $f2,$f0 -/* f07af2c: 24420001 */ addiu $v0,$v0,0x1 -.NB0f07af30: -/* f07af30: 0043082a */ slt $at,$v0,$v1 -/* f07af34: 46001082 */ mul.s $f2,$f2,$f0 -/* f07af38: 5420fffd */ bnezl $at,.NB0f07af30 -/* f07af3c: 24420001 */ addiu $v0,$v0,0x1 -.NB0f07af40: -/* f07af40: 3c017f1a */ lui $at,0x7f1a -/* f07af44: c43249a4 */ lwc1 $f18,0x49a4($at) -/* f07af48: c60a00b4 */ lwc1 $f10,0xb4($s0) -/* f07af4c: 3c017f1a */ lui $at,0x7f1a -/* f07af50: c42449a8 */ lwc1 $f4,0x49a8($at) -/* f07af54: 46125300 */ add.s $f12,$f10,$f18 -/* f07af58: 460c203c */ c.lt.s $f4,$f12 -/* f07af5c: 00000000 */ sll $zero,$zero,0x0 -/* f07af60: 4500001c */ bc1f .NB0f07afd4 -/* f07af64: 00000000 */ sll $zero,$zero,0x0 -/* f07af68: 44806000 */ mtc1 $zero,$f12 -/* f07af6c: e7a20088 */ swc1 $f2,0x88($sp) -/* f07af70: 0c004d84 */ jal random -/* f07af74: e7ac0084 */ swc1 $f12,0x84($sp) -/* f07af78: 30580007 */ andi $t8,$v0,0x7 -/* f07af7c: 27190002 */ addiu $t9,$t8,0x2 -/* f07af80: 44994000 */ mtc1 $t9,$f8 -/* f07af84: c7a20088 */ lwc1 $f2,0x88($sp) -/* f07af88: c7ac0084 */ lwc1 $f12,0x84($sp) -/* f07af8c: 07210005 */ bgez $t9,.NB0f07afa4 -/* f07af90: 468041a0 */ cvt.s.w $f6,$f8 -/* f07af94: 3c014f80 */ lui $at,0x4f80 -/* f07af98: 44818000 */ mtc1 $at,$f16 -/* f07af9c: 00000000 */ sll $zero,$zero,0x0 -/* f07afa0: 46103180 */ add.s $f6,$f6,$f16 -.NB0f07afa4: -/* f07afa4: 3c017f1a */ lui $at,0x7f1a -/* f07afa8: c42a49ac */ lwc1 $f10,0x49ac($at) -/* f07afac: 8e090008 */ lw $t1,0x8($s0) -/* f07afb0: 3c017f1a */ lui $at,0x7f1a -/* f07afb4: 460a3482 */ mul.s $f18,$f6,$f10 -/* f07afb8: 00095000 */ sll $t2,$t1,0x0 -/* f07afbc: 05410005 */ bgez $t2,.NB0f07afd4 -/* f07afc0: e61200b8 */ swc1 $f18,0xb8($s0) -/* f07afc4: c60400b8 */ lwc1 $f4,0xb8($s0) -/* f07afc8: c42849b0 */ lwc1 $f8,0x49b0($at) -/* f07afcc: 46082402 */ mul.s $f16,$f4,$f8 -/* f07afd0: e61000b8 */ swc1 $f16,0xb8($s0) -.NB0f07afd4: -/* f07afd4: 0c006d55 */ jal sinf -/* f07afd8: e7a20088 */ swc1 $f2,0x88($sp) -/* f07afdc: c60a00b8 */ lwc1 $f10,0xb8($s0) -/* f07afe0: c7a60160 */ lwc1 $f6,0x160($sp) -/* f07afe4: c7a8015c */ lwc1 $f8,0x15c($sp) -/* f07afe8: 46005482 */ mul.s $f18,$f10,$f0 -/* f07afec: c7a20088 */ lwc1 $f2,0x88($sp) -/* f07aff0: 3c01800a */ lui $at,0x800a -/* f07aff4: c42ce70c */ lwc1 $f12,-0x18f4($at) -/* f07aff8: 26240008 */ addiu $a0,$s1,0x8 -/* f07affc: 26250028 */ addiu $a1,$s1,0x28 -/* f07b000: 27a60098 */ addiu $a2,$sp,0x98 -/* f07b004: 46123100 */ add.s $f4,$f6,$f18 -/* f07b008: 24070020 */ addiu $a3,$zero,0x20 -/* f07b00c: e7a40160 */ swc1 $f4,0x160($sp) -/* f07b010: c61000a4 */ lwc1 $f16,0xa4($s0) -/* f07b014: c6060098 */ lwc1 $f6,0x98($s0) -/* f07b018: 46104282 */ mul.s $f10,$f8,$f16 -/* f07b01c: 46065480 */ add.s $f18,$f10,$f6 -/* f07b020: 46029202 */ mul.s $f8,$f18,$f2 -/* f07b024: e7a8008c */ swc1 $f8,0x8c($sp) -/* f07b028: c61000a4 */ lwc1 $f16,0xa4($s0) -/* f07b02c: c606009c */ lwc1 $f6,0x9c($s0) -/* f07b030: 46102282 */ mul.s $f10,$f4,$f16 -/* f07b034: c7b00164 */ lwc1 $f16,0x164($sp) -/* f07b038: 46065480 */ add.s $f18,$f10,$f6 -/* f07b03c: 46029102 */ mul.s $f4,$f18,$f2 -/* f07b040: e7a40090 */ swc1 $f4,0x90($sp) -/* f07b044: c60a00a4 */ lwc1 $f10,0xa4($s0) -/* f07b048: c61200a0 */ lwc1 $f18,0xa0($s0) -/* f07b04c: 460a8182 */ mul.s $f6,$f16,$f10 -/* f07b050: 46123400 */ add.s $f16,$f6,$f18 -/* f07b054: 46028282 */ mul.s $f10,$f16,$f2 -/* f07b058: e7aa0094 */ swc1 $f10,0x94($sp) -/* f07b05c: 460c4182 */ mul.s $f6,$f8,$f12 -/* f07b060: c6320008 */ lwc1 $f18,0x8($s1) -/* f07b064: 460c2202 */ mul.s $f8,$f4,$f12 -/* f07b068: 46123400 */ add.s $f16,$f6,$f18 -/* f07b06c: e7b00098 */ swc1 $f16,0x98($sp) -/* f07b070: c626000c */ lwc1 $f6,0xc($s1) -/* f07b074: 460c5402 */ mul.s $f16,$f10,$f12 -/* f07b078: 46064480 */ add.s $f18,$f8,$f6 -/* f07b07c: e7b2009c */ swc1 $f18,0x9c($sp) -/* f07b080: c6240010 */ lwc1 $f4,0x10($s1) -/* f07b084: afa50040 */ sw $a1,0x40($sp) -/* f07b088: afa40044 */ sw $a0,0x44($sp) -/* f07b08c: 46048200 */ add.s $f8,$f16,$f4 -/* f07b090: 0c00bc86 */ jal cd0002de10 -/* f07b094: e7a800a0 */ swc1 $f8,0xa0($sp) -/* f07b098: 14400058 */ bnez $v0,.NB0f07b1fc -/* f07b09c: 8fa40044 */ lw $a0,0x44($sp) -/* f07b0a0: 3c0142c8 */ lui $at,0x42c8 -/* f07b0a4: 44819000 */ mtc1 $at,$f18 -/* f07b0a8: c626000c */ lwc1 $f6,0xc($s1) -/* f07b0ac: 3c0540a0 */ lui $a1,0x40a0 -/* f07b0b0: 00003825 */ or $a3,$zero,$zero -/* f07b0b4: 46123280 */ add.s $f10,$f6,$f18 -/* f07b0b8: e62a000c */ swc1 $f10,0xc($s1) -/* f07b0bc: afa00010 */ sw $zero,0x10($sp) -/* f07b0c0: 8fa60040 */ lw $a2,0x40($sp) -/* f07b0c4: 0c00adde */ jal cdFindGroundYSimple -/* f07b0c8: 8fa40044 */ lw $a0,0x44($sp) -/* f07b0cc: e7a00060 */ swc1 $f0,0x60($sp) -/* f07b0d0: 3c0142c8 */ lui $at,0x42c8 -/* f07b0d4: 44812000 */ mtc1 $at,$f4 -/* f07b0d8: c630000c */ lwc1 $f16,0xc($s1) -/* f07b0dc: 3c067f1a */ lui $a2,0x7f1a -/* f07b0e0: 24c64364 */ addiu $a2,$a2,0x4364 -/* f07b0e4: 46048201 */ sub.s $f8,$f16,$f4 -/* f07b0e8: 27a40064 */ addiu $a0,$sp,0x64 -/* f07b0ec: 24052ffe */ addiu $a1,$zero,0x2ffe -/* f07b0f0: 0c0098a7 */ jal cdGetPos -/* f07b0f4: e628000c */ swc1 $f8,0xc($s1) -/* f07b0f8: 3c0141a0 */ lui $at,0x41a0 -/* f07b0fc: 44815000 */ mtc1 $at,$f10 -/* f07b100: c7b20060 */ lwc1 $f18,0x60($sp) -/* f07b104: c7a60064 */ lwc1 $f6,0x64($sp) -/* f07b108: c7a4006c */ lwc1 $f4,0x6c($sp) -/* f07b10c: 460a9400 */ add.s $f16,$f18,$f10 -/* f07b110: 8fa40044 */ lw $a0,0x44($sp) -/* f07b114: 8fa50040 */ lw $a1,0x40($sp) -/* f07b118: 27a60098 */ addiu $a2,$sp,0x98 -/* f07b11c: e7b0009c */ swc1 $f16,0x9c($sp) -/* f07b120: 27a70050 */ addiu $a3,$sp,0x50 -/* f07b124: e7a60098 */ swc1 $f6,0x98($sp) -/* f07b128: 0fc19437 */ jal func0f065e74 -/* f07b12c: e7a400a0 */ swc1 $f4,0xa0($sp) -/* f07b130: c7a80098 */ lwc1 $f8,0x98($sp) -/* f07b134: 02202025 */ or $a0,$s1,$zero -/* f07b138: e6280008 */ swc1 $f8,0x8($s1) -/* f07b13c: c7a6009c */ lwc1 $f6,0x9c($sp) -/* f07b140: e626000c */ swc1 $f6,0xc($s1) -/* f07b144: c7b200a0 */ lwc1 $f18,0xa0($sp) -/* f07b148: 0fc193ab */ jal propDeregisterRooms -/* f07b14c: e6320010 */ swc1 $f18,0x10($s1) -/* f07b150: 27a40050 */ addiu $a0,$sp,0x50 -/* f07b154: 0fc19283 */ jal roomsCopy -/* f07b158: 8fa50040 */ lw $a1,0x40($sp) -/* f07b15c: 02002025 */ or $a0,$s0,$zero -/* f07b160: 00002825 */ or $a1,$zero,$zero -/* f07b164: 0fc1a3b7 */ jal func0f069c70 -/* f07b168: 24060001 */ addiu $a2,$zero,0x1 -/* f07b16c: 920b0096 */ lbu $t3,0x96($s0) -/* f07b170: 02002025 */ or $a0,$s0,$zero -/* f07b174: 24050008 */ addiu $a1,$zero,0x8 -/* f07b178: 256c0001 */ addiu $t4,$t3,0x1 -/* f07b17c: 0fc201d0 */ jal objDeform -/* f07b180: a20c0096 */ sb $t4,0x96($s0) -/* f07b184: 862d0028 */ lh $t5,0x28($s1) -/* f07b188: 3c013f80 */ lui $at,0x3f80 -/* f07b18c: 44805000 */ mtc1 $zero,$f10 -/* f07b190: 44818000 */ mtc1 $at,$f16 -/* f07b194: 44802000 */ mtc1 $zero,$f4 -/* f07b198: 02202025 */ or $a0,$s1,$zero -/* f07b19c: 24050001 */ addiu $a1,$zero,0x1 -/* f07b1a0: 3406ffff */ dli $a2,0xffff -/* f07b1a4: a7ad0072 */ sh $t5,0x72($sp) -/* f07b1a8: e7aa0074 */ swc1 $f10,0x74($sp) -/* f07b1ac: e7b00078 */ swc1 $f16,0x78($sp) -/* f07b1b0: 0fc2433d */ jal func0f0926bc -/* f07b1b4: e7a4007c */ swc1 $f4,0x7c($sp) -/* f07b1b8: 87b80072 */ lh $t8,0x72($sp) -/* f07b1bc: 240e0001 */ addiu $t6,$zero,0x1 -/* f07b1c0: 27af0098 */ addiu $t7,$sp,0x98 -/* f07b1c4: 27b90074 */ addiu $t9,$sp,0x74 -/* f07b1c8: afb90020 */ sw $t9,0x20($sp) -/* f07b1cc: afaf0018 */ sw $t7,0x18($sp) -/* f07b1d0: afae0014 */ sw $t6,0x14($sp) -/* f07b1d4: 00002025 */ or $a0,$zero,$zero -/* f07b1d8: 8fa50044 */ lw $a1,0x44($sp) -/* f07b1dc: 8fa60040 */ lw $a2,0x40($sp) -/* f07b1e0: 2407000d */ addiu $a3,$zero,0xd -/* f07b1e4: afa00010 */ sw $zero,0x10($sp) -/* f07b1e8: 0fc492bc */ jal explosionCreate -/* f07b1ec: afb8001c */ sw $t8,0x1c($sp) -/* f07b1f0: 24090001 */ addiu $t1,$zero,0x1 -/* f07b1f4: 10000014 */ beqz $zero,.NB0f07b248 -/* f07b1f8: ae0900e4 */ sw $t1,0xe4($s0) -.NB0f07b1fc: -/* f07b1fc: 8fa50040 */ lw $a1,0x40($sp) -/* f07b200: 0fc4a4ec */ jal smokeCreateSimple -/* f07b204: 24060003 */ addiu $a2,$zero,0x3 -/* f07b208: c6080080 */ lwc1 $f8,0x80($s0) -/* f07b20c: 44803000 */ mtc1 $zero,$f6 -/* f07b210: 02202025 */ or $a0,$s1,$zero -/* f07b214: 8fa50174 */ lw $a1,0x174($sp) -/* f07b218: 4606403c */ c.lt.s $f8,$f6 -/* f07b21c: 27a7015c */ addiu $a3,$sp,0x15c -/* f07b220: 3c017f1a */ lui $at,0x7f1a -/* f07b224: 45000004 */ bc1f .NB0f07b238 -/* f07b228: 00000000 */ sll $zero,$zero,0x0 -/* f07b22c: 3c017f1a */ lui $at,0x7f1a -/* f07b230: 10000002 */ beqz $zero,.NB0f07b23c -/* f07b234: c42049b4 */ lwc1 $f0,0x49b4($at) -.NB0f07b238: -/* f07b238: c42049b8 */ lwc1 $f0,0x49b8($at) -.NB0f07b23c: -/* f07b23c: 44060000 */ mfc1 $a2,$f0 -/* f07b240: 0fc1e93a */ jal chopperIncrementMovement -/* f07b244: afa00010 */ sw $zero,0x10($sp) -.NB0f07b248: -/* f07b248: 8fbf0034 */ lw $ra,0x34($sp) -.NB0f07b24c: -/* f07b24c: 8fb0002c */ lw $s0,0x2c($sp) -/* f07b250: 8fb10030 */ lw $s1,0x30($sp) -/* f07b254: 03e00008 */ jr $ra -/* f07b258: 27bd0180 */ addiu $sp,$sp,0x180 -); + cdGetPos(&sp64, 12286, "propobj.c"); #endif -// Mismatch: Something weird with the chopper->fall property. -// Might be the start of a new struct using a union -//void chopperTickFall(struct prop *chopperprop) -//{ -// struct defaultobj *obj = chopperprop->obj; -// struct chopperobj *chopper = (struct chopperobj *) obj; -// f32 sp174; -// f32 sp164; -// f32 sp160; -// struct coord sp15c; -// struct pad nextpad; -// struct pad prevpad; -// s32 i; -// struct coord sp98; -// struct coord sp8c; -// -// // I guess the timer is set explicitly to 2 when the chopper is destroyed, -// // otherwise there's no guarantee that the timer will land on this value -// // when ticking down normally. So this code is run once when entering -// // fall mode. -// if (chopper->timer60 == 2) { -// // Figure out what direction to fall in -// f32 spac = 0; -// f32 spa8 = 0; -// s32 nextstep; -// f32 tmp; -// -// chopper->timer60 -= g_Vars.lvupdate240_60; -// -// if (chopper->path) { -// for (i = 0; i < chopper->path->len; i++) { -// if (chopper->cw) { -// nextstep = i; -// } else { -// nextstep = (i + 1) % chopper->path->len; -// } -// -// if (nextstep == chopper->nextstep) { -// break; -// } -// } -// -// if (chopper->cw) { -// nextstep = (i + 1) % chopper->path->len; -// } else { -// nextstep = i; -// } -// -// padUnpack(chopper->path->pads[nextstep], PADFIELD_POS, &nextpad); -// -// if (chopper->cw) { -// nextstep = i; -// } else { -// nextstep = (i + 1) % chopper->path->len; -// } -// -// padUnpack(chopper->path->pads[nextstep], PADFIELD_POS, &prevpad); -// -// spac = nextpad.pos.x - prevpad.pos.x; -// spa8 = nextpad.pos.z - prevpad.pos.z; -// -// tmp = 0.25f / sqrtf(spac * spac + spa8 * spa8); -// -// spac *= tmp; -// spa8 *= tmp; -// } -// -// chopper->fall.f[0] = -spa8; -// chopper->fall.f[1] = 0; -// chopper->fall.f[2] = spac; -// } else if (chopper->timer60 >= 0) { -// // Haven't started falling yet -// chopper->timer60 -= g_Vars.lvupdate240_60; -// } else if (chopper->fall.f[1] > -0.7f) { -// // Increase fall speed -// chopper->fall.f[1] -= 0.009f * g_Vars.lvupdate240f; -// } -// -// sp15c.x = chopper->fall.f[0]; -// sp15c.y = chopper->fall.f[1]; -// sp15c.z = chopper->fall.f[2]; -// sp174 = chopper->roty + sp15c.x + sp15c.z; -// -// if (stageGetIndex(g_Vars.stagenum) == STAGEINDEX_EXTRACTION) { -// // The Extraction chopper falls without any collision checks and is -// // reaped once it reaches the lower barrier -// if (chopperprop->pos.y < -30000) { -// func0f0926bc(chopperprop, 1, 0xffff); -// obj->hidden |= OBJHFLAG_REAPABLE; -// } else { -// chopperIncrementMovement(chopperprop, sp174, chopper->rotx < 0 ? M_PI : -M_PI, &sp15c, false); -// } -// } else { -// // Area 51 interceptors do collision checks -// // and explode once they hit the ground. -// f32 mult = 0.98f; -// f32 bob; -// s32 i; -// -// for (i = 1; i < g_Vars.lvupdate240_60; i++) { -// mult *= 0.98f; -// } -// -// bob = chopper->bob + 0.052358999848366f; -// -// if (bob > M_BADTAU) { -// bob = 0; -// -// chopper->bobstrength = (random() % 8 + 2) * 0.01f; -// -// if (obj->flags & OBJFLAG_80000000) { -// chopper->bobstrength *= 0.15f; -// } -// } -// -// sp160 += chopper->bobstrength * sinf(bob); -// -// sp8c.f[0] = mult * (sp15c.f[0] * chopper->power + chopper->vx); -// sp8c.f[1] = mult * (sp15c.f[1] * chopper->power + chopper->vy); -// sp8c.f[2] = mult * (sp15c.f[2] * chopper->power + chopper->vz); -// -// sp98.f[0] = sp8c.f[0] * g_Vars.lvupdate240freal + chopperprop->pos.x; -// sp98.f[1] = sp8c.f[1] * g_Vars.lvupdate240freal + chopperprop->pos.y; -// sp98.f[2] = sp8c.f[2] * g_Vars.lvupdate240freal + chopperprop->pos.z; -// -// if (cd0002de10(&chopperprop->pos, chopperprop->rooms, &sp98, CDTYPE_BG) == CDRESULT_COLLISION) { -// struct coord sp74; -// s16 room; -// struct coord sp64; -// f32 sp60; -// s16 sp50[8]; -// -// chopperprop->pos.y += 100; -// sp60 = cdFindGroundYSimple(&chopperprop->pos, 5, chopperprop->rooms, NULL, NULL); -// chopperprop->pos.y -= 100; -// -//#if VERSION >= VERSION_PAL_FINAL -// cdGetPos(&sp64, 12449, "prop/propobj.c"); -//#else -// cdGetPos(&sp64, 12449, "propobj.c"); -//#endif -// -// sp98.x = sp64.x; -// sp98.y = sp60 + 20; -// sp98.z = sp64.z; -// -// func0f065e74(&chopperprop->pos, chopperprop->rooms, &sp98, sp50); -// -// chopperprop->pos.x = sp98.x; -// chopperprop->pos.y = sp98.y; -// chopperprop->pos.z = sp98.z; -// -// propDeregisterRooms(chopperprop); -// roomsCopy(sp50, chopperprop->rooms); -// func0f069c70(obj, false, true); -// -// // Move to CHOPPERMODE_DEAD -// chopper->attackmode++; -// -// objDeform(chopper, 8); -// -// room = chopperprop->rooms[0]; -// sp74.x = 0; -// sp74.y = 1; -// sp74.z = 0; -// -// func0f0926bc(chopperprop, 1, 0xffff); -// -// explosionCreate(NULL, &chopperprop->pos, chopperprop->rooms, EXPLOSIONTYPE_ROCKET, -// 0, true, &sp98, room, &sp74); -// -// chopper->dead = true; -// } else { -// smokeCreateSimple(&chopperprop->pos, chopperprop->rooms, SMOKETYPE_3); -// chopperIncrementMovement(chopperprop, sp174, chopper->rotx < 0 ? M_PI : -M_PI, &sp15c, false); -// } -// } -//} + newpos.x = sp64.x; + newpos.y = ground + 20; + newpos.z = sp64.z; + + func0f065e74(&chopperprop->pos, chopperprop->rooms, &newpos, newrooms); + + chopperprop->pos.x = newpos.x; + chopperprop->pos.y = newpos.y; + chopperprop->pos.z = newpos.z; + + propDeregisterRooms(chopperprop); + roomsCopy(newrooms, chopperprop->rooms); + func0f069c70(obj, false, true); + + // Move to CHOPPERMODE_DEAD + chopper->attackmode++; + + objDeform(&chopper->base, 8); + + room = chopperprop->rooms[0]; + + sp74.x = 0; + sp74.y = 1; + sp74.z = 0; + + func0f0926bc(chopperprop, 1, 0xffff); + + explosionCreate(NULL, &chopperprop->pos, chopperprop->rooms, EXPLOSIONTYPE_ROCKET, 0, true, &newpos, room, &sp74); + + chopper->dead = true; + } else { + smokeCreateSimple(&chopperprop->pos, chopperprop->rooms, SMOKETYPE_3); + chopperIncrementMovement(chopperprop, goalroty, chopper->rotx < 0 ? M_PI : -M_PI, &speed, false); + } + } +} void chopperTickIdle(struct prop *prop) { @@ -22183,6 +20260,8 @@ void chopperTickCombat(struct prop *chopperprop) if ((chopper->targetvisible && dist < 2000000.0f) || chopper->path == NULL) { // Stay put + osSyncPrintf("HC: %x - visible\n", chopper); + goalpos.x = chopperprop->pos.x; goalpos.y = chopperprop->pos.y; goalpos.z = chopperprop->pos.z;