From 332b627779753fc806839f1005ce8e54f880eb4f Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 24 Apr 2021 13:44:55 +1000 Subject: [PATCH] Decompile chrYeetFromPos --- src/game/chr/chraction.c | 1303 ++++++-------------------------------- 1 file changed, 184 insertions(+), 1119 deletions(-) diff --git a/src/game/chr/chraction.c b/src/game/chr/chraction.c index cd4f94f81..674facab2 100644 --- a/src/game/chr/chraction.c +++ b/src/game/chr/chraction.c @@ -812,259 +812,102 @@ struct animtable *g_AnimTablesByRace[NUM_RACES] = { g_AnimTablesRobot, }; -u32 var800652cc = 0x00820000; -u32 var800652d0 = 0x00000000; -u32 var800652d4 = 0x3f000000; -u32 var800652d8 = 0x41100000; -u32 var800652dc = 0x41e80000; -u32 var800652e0 = 0xbf800000; -u32 var800652e4 = 0x00820000; -u32 var800652e8 = 0x00000001; -u32 var800652ec = 0x3f000000; -u32 var800652f0 = 0x41100000; -u32 var800652f4 = 0x41e80000; -u32 var800652f8 = 0xbf800000; -u32 var800652fc = 0x008a0000; -u32 var80065300 = 0x00000000; -u32 var80065304 = 0x3f000000; -u32 var80065308 = 0x41300000; -u32 var8006530c = 0x41f80000; -u32 var80065310 = 0xbf800000; -u32 var80065314 = 0x008a0000; -u32 var80065318 = 0x00000001; -u32 var8006531c = 0x3f000000; -u32 var80065320 = 0x41300000; -u32 var80065324 = 0x41f80000; -u32 var80065328 = 0xbf800000; -u32 var8006532c = 0x00890000; -u32 var80065330 = 0x00000000; -u32 var80065334 = 0x3f000000; -u32 var80065338 = 0x40c00000; -u32 var8006533c = 0x41d80000; -u32 var80065340 = 0xbf800000; -u32 var80065344 = 0x00890000; -u32 var80065348 = 0x00000001; -u32 var8006534c = 0x3f000000; -u32 var80065350 = 0x40c00000; -u32 var80065354 = 0x41d80000; -u32 var80065358 = 0xbf800000; -u32 var8006535c = 0x008c0000; -u32 var80065360 = 0x00000000; -u32 var80065364 = 0x3f000000; -u32 var80065368 = 0x41e80000; -u32 var8006536c = 0x42400000; -u32 var80065370 = 0xbf800000; -u32 var80065374 = 0x008c0000; -u32 var80065378 = 0x00000001; -u32 var8006537c = 0x3f000000; -u32 var80065380 = 0x41e80000; -u32 var80065384 = 0x42400000; -u32 var80065388 = 0xbf800000; -u32 var8006538c = 0x008d0000; -u32 var80065390 = 0x00000000; -u32 var80065394 = 0x3f000000; -u32 var80065398 = 0x41e80000; -u32 var8006539c = 0x42440000; -u32 var800653a0 = 0xbf800000; -u32 var800653a4 = 0x008d0000; -u32 var800653a8 = 0x00000001; -u32 var800653ac = 0x3f000000; -u32 var800653b0 = 0x41e80000; -u32 var800653b4 = 0x42440000; -u32 var800653b8 = 0xbf800000; -u32 var800653bc = 0x008e0000; -u32 var800653c0 = 0x00000000; -u32 var800653c4 = 0x3f000000; -u32 var800653c8 = 0x41980000; -u32 var800653cc = 0x42280000; -u32 var800653d0 = 0xbf800000; -u32 var800653d4 = 0x008e0000; -u32 var800653d8 = 0x00000001; -u32 var800653dc = 0x3f000000; -u32 var800653e0 = 0x41980000; -u32 var800653e4 = 0x42280000; -u32 var800653e8 = 0xbf800000; -u32 var800653ec = 0x00860000; -u32 var800653f0 = 0x00000000; -u32 var800653f4 = 0x3f000000; -u32 var800653f8 = 0x00000000; -u32 var800653fc = 0x42700000; -u32 var80065400 = 0xbf800000; -u32 var80065404 = 0x00860000; -u32 var80065408 = 0x00000001; -u32 var8006540c = 0x3f000000; -u32 var80065410 = 0x00000000; -u32 var80065414 = 0x42700000; -u32 var80065418 = 0xbf800000; -u32 var8006541c = 0x00870000; -u32 var80065420 = 0x00000000; -u32 var80065424 = 0x3f000000; -u32 var80065428 = 0x40c00000; -u32 var8006542c = 0x41e80000; -u32 var80065430 = 0xbf800000; -u32 var80065434 = 0x00870000; -u32 var80065438 = 0x00000001; -u32 var8006543c = 0x3f000000; -u32 var80065440 = 0x40c00000; -u32 var80065444 = 0x41e80000; -u32 var80065448 = 0xbf800000; -u32 var8006544c = 0x00840000; -u32 var80065450 = 0x00000000; -u32 var80065454 = 0x3f000000; -u32 var80065458 = 0x41000000; -u32 var8006545c = 0x41c80000; -u32 var80065460 = 0xbf800000; -u32 var80065464 = 0x00840000; -u32 var80065468 = 0x00000001; -u32 var8006546c = 0x3f000000; -u32 var80065470 = 0x41000000; -u32 var80065474 = 0x41c80000; -u32 var80065478 = 0xbf800000; -u32 var8006547c = 0x00850000; -u32 var80065480 = 0x00000000; -u32 var80065484 = 0x3f000000; -u32 var80065488 = 0x41000000; -u32 var8006548c = 0x41c80000; -u32 var80065490 = 0xbf800000; -u32 var80065494 = 0x00850000; -u32 var80065498 = 0x00000001; -u32 var8006549c = 0x3f000000; -u32 var800654a0 = 0x41000000; -u32 var800654a4 = 0x41c80000; -u32 var800654a8 = 0xbf800000; -u32 var800654ac = 0x00880000; -u32 var800654b0 = 0x00000000; -u32 var800654b4 = 0x3f000000; -u32 var800654b8 = 0x41400000; -u32 var800654bc = 0x41e80000; -u32 var800654c0 = 0xbf800000; -u32 var800654c4 = 0x00880000; -u32 var800654c8 = 0x00000001; -u32 var800654cc = 0x3f000000; -u32 var800654d0 = 0x41400000; -u32 var800654d4 = 0x41e80000; -u32 var800654d8 = 0xbf800000; -u32 var800654dc = 0x008b0000; -u32 var800654e0 = 0x00000000; -u32 var800654e4 = 0x3f000000; -u32 var800654e8 = 0x41b00000; -u32 var800654ec = 0x42240000; -u32 var800654f0 = 0xbf800000; -u32 var800654f4 = 0x008b0000; -u32 var800654f8 = 0x00000001; -u32 var800654fc = 0x3f000000; -u32 var80065500 = 0x41b00000; -u32 var80065504 = 0x42240000; -u32 var80065508 = 0xbf800000; -u32 var8006550c = 0x00000000; -u32 var80065510 = 0x00000000; -u32 var80065514 = 0x3f000000; -u32 var80065518 = 0x00000000; -u32 var8006551c = 0x00000000; -u32 var80065520 = 0xbf800000; -u32 var80065524 = 0x00010203; -u32 var80065528 = 0x04050000; -u32 var8006552c = 0x07090b00; -u32 var80065530 = 0x06080a00; -u32 var80065534 = 0x0c0f0000; -u32 var80065538 = 0x0d0e0000; -u32 var8006553c = 0x12131415; -u32 var80065540 = 0x10160000; -u32 var80065544 = 0x11170000; -u32 var80065548 = 0x033f0000; -u32 var8006554c = 0x00000000; -u32 var80065550 = 0x3f000000; -u32 var80065554 = 0x00000000; -u32 var80065558 = 0xbf800000; -u32 var8006555c = 0xbf800000; -u32 var80065560 = 0x033f0000; -u32 var80065564 = 0x00000000; -u32 var80065568 = 0x3f000000; -u32 var8006556c = 0x00000000; -u32 var80065570 = 0xbf800000; -u32 var80065574 = 0xbf800000; -u32 var80065578 = 0x033f0000; -u32 var8006557c = 0x00000000; -u32 var80065580 = 0x3f000000; -u32 var80065584 = 0x00000000; -u32 var80065588 = 0xbf800000; -u32 var8006558c = 0xbf800000; -u32 var80065590 = 0x033f0000; -u32 var80065594 = 0x00000000; -u32 var80065598 = 0x3f000000; -u32 var8006559c = 0x00000000; -u32 var800655a0 = 0xbf800000; -u32 var800655a4 = 0xbf800000; -u32 var800655a8 = 0x033f0000; -u32 var800655ac = 0x00000000; -u32 var800655b0 = 0x3f000000; -u32 var800655b4 = 0x00000000; -u32 var800655b8 = 0xbf800000; -u32 var800655bc = 0xbf800000; -u32 var800655c0 = 0x033f0000; -u32 var800655c4 = 0x00000000; -u32 var800655c8 = 0x3f000000; -u32 var800655cc = 0x00000000; -u32 var800655d0 = 0xbf800000; -u32 var800655d4 = 0xbf800000; -u32 var800655d8 = 0x033f0000; -u32 var800655dc = 0x00000000; -u32 var800655e0 = 0x3f000000; -u32 var800655e4 = 0x00000000; -u32 var800655e8 = 0xbf800000; -u32 var800655ec = 0xbf800000; -u32 var800655f0 = 0x033f0000; -u32 var800655f4 = 0x00000000; -u32 var800655f8 = 0x3f000000; -u32 var800655fc = 0x00000000; -u32 var80065600 = 0xbf800000; -u32 var80065604 = 0xbf800000; -u32 var80065608 = 0x00000000; -u32 var8006560c = 0x00000000; -u32 var80065610 = 0x3f000000; -u32 var80065614 = 0x00000000; -u32 var80065618 = 0x00000000; -u32 var8006561c = 0xbf800000; -u32 var80065620 = 0x00000000; -u32 var80065624 = 0x01000000; -u32 var80065628 = 0x02000000; -u32 var8006562c = 0x03000000; -u32 var80065630 = 0x04000000; -u32 var80065634 = 0x07000000; -u32 var80065638 = 0x05000000; -u32 var8006563c = 0x06000000; -u32 var80065640 = (u32) &var80065524; -u32 var80065644 = 0x00000006; -u32 var80065648 = (u32) &var8006552c; -u32 var8006564c = 0x00000003; -u32 var80065650 = (u32) &var80065534; -u32 var80065654 = 0x00000003; -u32 var80065658 = (u32) &var80065540; -u32 var8006565c = 0x00000002; -u32 var80065660 = (u32) &var8006553c; -u32 var80065664 = 0x00000004; -u32 var80065668 = (u32) &var80065544; -u32 var8006566c = 0x00000002; -u32 var80065670 = (u32) &var80065538; -u32 var80065674 = 0x00000003; -u32 var80065678 = (u32) &var80065530; -u32 var8006567c = 0x00000003; -u32 var80065680 = (u32) &var80065620; -u32 var80065684 = 0x00000001; -u32 var80065688 = (u32) &var80065624; -u32 var8006568c = 0x00000001; -u32 var80065690 = (u32) &var8006562c; -u32 var80065694 = 0x00000001; -u32 var80065698 = (u32) &var80065638; -u32 var8006569c = 0x00000001; -u32 var800656a0 = (u32) &var80065634; -u32 var800656a4 = 0x00000001; -u32 var800656a8 = (u32) &var8006563c; -u32 var800656ac = 0x00000001; -u32 var800656b0 = (u32) &var80065630; -u32 var800656b4 = 0x00000001; -u32 var800656b8 = (u32) &var80065628; -u32 var800656bc = 0x00000001; +/** + * A yeet anim is an animation config for a chr being launched by an explosion. + */ +struct yeetanim { + s16 animnum; + bool flip; + f32 speed; + f32 startframe; + f32 thudframe; + f32 endframe; +}; + +struct yeetanim g_YeetAnimsHuman[] = { + /* 0*/ { 0x0082, 0, 0.5, 9, 29, -1 }, + /* 1*/ { 0x0082, 1, 0.5, 9, 29, -1 }, + /* 2*/ { 0x008a, 0, 0.5, 11, 31, -1 }, + /* 3*/ { 0x008a, 1, 0.5, 11, 31, -1 }, + /* 4*/ { 0x0089, 0, 0.5, 6, 27, -1 }, + /* 5*/ { 0x0089, 1, 0.5, 6, 27, -1 }, + /* 6*/ { 0x008c, 0, 0.5, 29, 48, -1 }, + /* 7*/ { 0x008c, 1, 0.5, 29, 48, -1 }, + /* 8*/ { 0x008d, 0, 0.5, 29, 49, -1 }, + /* 9*/ { 0x008d, 1, 0.5, 29, 49, -1 }, + /*10*/ { 0x008e, 0, 0.5, 19, 42, -1 }, + /*11*/ { 0x008e, 1, 0.5, 19, 42, -1 }, + /*12*/ { 0x0086, 0, 0.5, 0, 60, -1 }, + /*13*/ { 0x0086, 1, 0.5, 0, 60, -1 }, + /*14*/ { 0x0087, 0, 0.5, 6, 29, -1 }, + /*15*/ { 0x0087, 1, 0.5, 6, 29, -1 }, + /*16*/ { 0x0084, 0, 0.5, 8, 25, -1 }, + /*17*/ { 0x0084, 1, 0.5, 8, 25, -1 }, + /*18*/ { 0x0085, 0, 0.5, 8, 25, -1 }, + /*19*/ { 0x0085, 1, 0.5, 8, 25, -1 }, + /*20*/ { 0x0088, 0, 0.5, 12, 29, -1 }, + /*21*/ { 0x0088, 1, 0.5, 12, 29, -1 }, + /*22*/ { 0x008b, 0, 0.5, 22, 41, -1 }, + /*23*/ { 0x008b, 1, 0.5, 22, 41, -1 }, + /*24*/ { 0x0000, 0, 0.5, 0, 0, -1 }, +}; + +s8 g_YeetAnimIndexesHumanAngle0[] = { 0, 1, 2, 3, 4, 5 }; +s8 g_YeetAnimIndexesHumanAngle1[] = { 7, 9, 11 }; +s8 g_YeetAnimIndexesHumanAngle2[] = { 6, 8, 10 }; +s8 g_YeetAnimIndexesHumanAngle3[] = { 12, 15, 0 }; +s8 g_YeetAnimIndexesHumanAngle4[] = { 13, 14, 0 }; +s8 g_YeetAnimIndexesHumanAngle5[] = { 18, 19, 20, 21 }; +s8 g_YeetAnimIndexesHumanAngle6[] = { 16, 22 }; +s8 g_YeetAnimIndexesHumanAngle7[] = { 17, 23 }; + +struct yeetanim g_YeetAnimsSkedar[] = { + /* 0*/ { 0x033f, 0, 0.5, 0, -1, -1 }, + /* 1*/ { 0x033f, 0, 0.5, 0, -1, -1 }, + /* 2*/ { 0x033f, 0, 0.5, 0, -1, -1 }, + /* 3*/ { 0x033f, 0, 0.5, 0, -1, -1 }, + /* 4*/ { 0x033f, 0, 0.5, 0, -1, -1 }, + /* 5*/ { 0x033f, 0, 0.5, 0, -1, -1 }, + /* 6*/ { 0x033f, 0, 0.5, 0, -1, -1 }, + /* 7*/ { 0x033f, 0, 0.5, 0, -1, -1 }, + /* 8*/ { 0x0000, 0, 0.5, 0, 0, -1 }, +}; + +s8 g_YeetAnimIndexesSkedarAngle0[] = { 0 }; +s8 g_YeetAnimIndexesSkedarAngle1[] = { 1 }; +s8 g_YeetAnimIndexesSkedarAngle2[] = { 2 }; +s8 g_YeetAnimIndexesSkedarAngle3[] = { 3 }; +s8 g_YeetAnimIndexesSkedarAngle4[] = { 4 }; +s8 g_YeetAnimIndexesSkedarAngle5[] = { 7 }; +s8 g_YeetAnimIndexesSkedarAngle6[] = { 5 }; +s8 g_YeetAnimIndexesSkedarAngle7[] = { 6 }; + +struct yeetanimindexlist { + s8 *indexes; + s32 count; +}; + +struct yeetanimindexlist g_YeetAnimIndexesByRaceAngle[][8] = { + { + { g_YeetAnimIndexesHumanAngle0, 6 }, + { g_YeetAnimIndexesHumanAngle1, 3 }, + { g_YeetAnimIndexesHumanAngle3, 3 }, + { g_YeetAnimIndexesHumanAngle6, 2 }, + { g_YeetAnimIndexesHumanAngle5, 4 }, + { g_YeetAnimIndexesHumanAngle7, 2 }, + { g_YeetAnimIndexesHumanAngle4, 3 }, + { g_YeetAnimIndexesHumanAngle2, 3 }, + }, { + { g_YeetAnimIndexesSkedarAngle0, 1 }, + { g_YeetAnimIndexesSkedarAngle1, 1 }, + { g_YeetAnimIndexesSkedarAngle3, 1 }, + { g_YeetAnimIndexesSkedarAngle6, 1 }, + { g_YeetAnimIndexesSkedarAngle5, 1 }, + { g_YeetAnimIndexesSkedarAngle7, 1 }, + { g_YeetAnimIndexesSkedarAngle4, 1 }, + { g_YeetAnimIndexesSkedarAngle2, 1 }, + }, +}; struct animfloats var800656c0[] = { { 0x0002, 28, 0, 0, 0, -1, 23, 54, -1, -1, 18, 54, 0.87252569198608, -0.52351540327072, 1.0470308065414, -0.34901028871536, 1.6000000238419, 1.7999999523163 }, @@ -5736,874 +5579,96 @@ glabel func0f032fe4 ); #endif -#if VERSION >= VERSION_PAL_FINAL -GLOBAL_ASM( -glabel chrYeetFromPos -.late_rodata -glabel var7f1a8d50 -.word 0x40c907a9 -glabel var7f1a8d54 -.word 0x3fa30028 -glabel var7f1a8d58 -.word 0x3c23d70a -glabel var7f1a8d5c -.word 0x3c23d70a -.text -/* f03323c: 27bdffa0 */ addiu $sp,$sp,-96 -/* f033240: afbf0024 */ sw $ra,0x24($sp) -/* f033244: afb00020 */ sw $s0,0x20($sp) -/* f033248: afa60068 */ sw $a2,0x68($sp) -/* f03324c: 8c8e0020 */ lw $t6,0x20($a0) -/* f033250: 00808025 */ or $s0,$a0,$zero -/* f033254: 24010002 */ addiu $at,$zero,0x2 -/* f033258: afae005c */ sw $t6,0x5c($sp) -/* f03325c: 10800003 */ beqz $a0,.L0f03326c -/* f033260: 8c82001c */ lw $v0,0x1c($a0) -/* f033264: 10000002 */ b .L0f033270 -/* f033268: 908702fe */ lbu $a3,0x2fe($a0) -.L0f03326c: -/* f03326c: 00003825 */ or $a3,$zero,$zero -.L0f033270: -/* f033270: 10e100f3 */ beq $a3,$at,.L0f033640 -/* f033274: 24010003 */ addiu $at,$zero,0x3 -/* f033278: 10e100f1 */ beq $a3,$at,.L0f033640 -/* f03327c: 24010004 */ addiu $at,$zero,0x4 -/* f033280: 10e100ef */ beq $a3,$at,.L0f033640 -/* f033284: 02002025 */ or $a0,$s0,$zero -/* f033288: afa20058 */ sw $v0,0x58($sp) -/* f03328c: afa50064 */ sw $a1,0x64($sp) -/* f033290: 0fc0f917 */ jal chrGetInverseTheta -/* f033294: afa7002c */ sw $a3,0x2c($sp) -/* f033298: 8fa20058 */ lw $v0,0x58($sp) -/* f03329c: 8fa50064 */ lw $a1,0x64($sp) -/* f0332a0: e7a00054 */ swc1 $f0,0x54($sp) -/* f0332a4: c4480010 */ lwc1 $f8,0x10($v0) -/* f0332a8: c4440008 */ lwc1 $f4,0x8($v0) -/* f0332ac: c4aa0008 */ lwc1 $f10,0x8($a1) -/* f0332b0: c4a60000 */ lwc1 $f6,0x0($a1) -/* f0332b4: 460a4381 */ sub.s $f14,$f8,$f10 -/* f0332b8: 0fc259d4 */ jal atan2f -/* f0332bc: 46062301 */ sub.s $f12,$f4,$f6 -/* f0332c0: 8fa20058 */ lw $v0,0x58($sp) -/* f0332c4: 8fa50064 */ lw $a1,0x64($sp) -/* f0332c8: 44801000 */ mtc1 $zero,$f2 -/* f0332cc: c4440008 */ lwc1 $f4,0x8($v0) -/* f0332d0: c4a60000 */ lwc1 $f6,0x0($a1) -/* f0332d4: 8fa7002c */ lw $a3,0x2c($sp) -/* f0332d8: 46000406 */ mov.s $f16,$f0 -/* f0332dc: 46062201 */ sub.s $f8,$f4,$f6 -/* f0332e0: e7a80034 */ swc1 $f8,0x34($sp) -/* f0332e4: c44a000c */ lwc1 $f10,0xc($v0) -/* f0332e8: c4a40004 */ lwc1 $f4,0x4($a1) -/* f0332ec: 46045181 */ sub.s $f6,$f10,$f4 -/* f0332f0: e7a60038 */ swc1 $f6,0x38($sp) -/* f0332f4: c7a60034 */ lwc1 $f6,0x34($sp) -/* f0332f8: c4480010 */ lwc1 $f8,0x10($v0) -/* f0332fc: c4aa0008 */ lwc1 $f10,0x8($a1) -/* f033300: 46061032 */ c.eq.s $f2,$f6 -/* f033304: c7ae0038 */ lwc1 $f14,0x38($sp) -/* f033308: 460a4101 */ sub.s $f4,$f8,$f10 -/* f03330c: 4500000c */ bc1f .L0f033340 -/* f033310: e7a4003c */ swc1 $f4,0x3c($sp) -/* f033314: 460e1032 */ c.eq.s $f2,$f14 -/* f033318: c7b2003c */ lwc1 $f18,0x3c($sp) -/* f03331c: 45020009 */ bc1fl .L0f033344 -/* f033320: c7a00034 */ lwc1 $f0,0x34($sp) -/* f033324: 46121032 */ c.eq.s $f2,$f18 -/* f033328: 3c013f80 */ lui $at,0x3f80 -/* f03332c: 45020005 */ bc1fl .L0f033344 -/* f033330: c7a00034 */ lwc1 $f0,0x34($sp) -/* f033334: 44819000 */ mtc1 $at,$f18 -/* f033338: 00000000 */ nop -/* f03333c: e7b2003c */ swc1 $f18,0x3c($sp) -.L0f033340: -/* f033340: c7a00034 */ lwc1 $f0,0x34($sp) -.L0f033344: -/* f033344: c7ae0038 */ lwc1 $f14,0x38($sp) -/* f033348: c7b2003c */ lwc1 $f18,0x3c($sp) -/* f03334c: 46000202 */ mul.s $f8,$f0,$f0 -/* f033350: afa7002c */ sw $a3,0x2c($sp) -/* f033354: e7b00050 */ swc1 $f16,0x50($sp) -/* f033358: 460e7282 */ mul.s $f10,$f14,$f14 -/* f03335c: 460a4100 */ add.s $f4,$f8,$f10 -/* f033360: 46129182 */ mul.s $f6,$f18,$f18 -/* f033364: 0c012974 */ jal sqrtf -/* f033368: 46043300 */ add.s $f12,$f6,$f4 -/* f03336c: 3c013f20 */ lui $at,0x3f20 -/* f033370: 44814000 */ mtc1 $at,$f8 -/* f033374: c7aa0068 */ lwc1 $f10,0x68($sp) -/* f033378: c7a40034 */ lwc1 $f4,0x34($sp) -/* f03337c: c7b00050 */ lwc1 $f16,0x50($sp) -/* f033380: 460a4182 */ mul.s $f6,$f8,$f10 -/* f033384: c7aa0038 */ lwc1 $f10,0x38($sp) -/* f033388: c7b20054 */ lwc1 $f18,0x54($sp) -/* f03338c: 8fa7002c */ lw $a3,0x2c($sp) -/* f033390: 3c017f1b */ lui $at,%hi(var7f1a8d50) -/* f033394: 4612803c */ c.lt.s $f16,$f18 -/* f033398: 46003083 */ div.s $f2,$f6,$f0 -/* f03339c: 46128381 */ sub.s $f14,$f16,$f18 -/* f0333a0: 46007306 */ mov.s $f12,$f14 -/* f0333a4: 46022202 */ mul.s $f8,$f4,$f2 -/* f0333a8: c7a4003c */ lwc1 $f4,0x3c($sp) -/* f0333ac: 46025182 */ mul.s $f6,$f10,$f2 -/* f0333b0: 00000000 */ nop -/* f0333b4: 46022282 */ mul.s $f10,$f4,$f2 -/* f0333b8: e7a80034 */ swc1 $f8,0x34($sp) -/* f0333bc: e7a60038 */ swc1 $f6,0x38($sp) -/* f0333c0: e7aa003c */ swc1 $f10,0x3c($sp) -/* f0333c4: e60800bc */ swc1 $f8,0xbc($s0) -/* f0333c8: c7a60038 */ lwc1 $f6,0x38($sp) -/* f0333cc: e60600c0 */ swc1 $f6,0xc0($s0) -/* f0333d0: c7a4003c */ lwc1 $f4,0x3c($sp) -/* f0333d4: 45000003 */ bc1f .L0f0333e4 -/* f0333d8: e60400c4 */ swc1 $f4,0xc4($s0) -/* f0333dc: c42a8d50 */ lwc1 $f10,%lo(var7f1a8d50)($at) -/* f0333e0: 460a7300 */ add.s $f12,$f14,$f10 -.L0f0333e4: -/* f0333e4: 3c017f1b */ lui $at,%hi(var7f1a8d54) -/* f0333e8: c4288d54 */ lwc1 $f8,%lo(var7f1a8d54)($at) -/* f0333ec: 3c013f00 */ lui $at,0x3f00 -/* f0333f0: 44812000 */ mtc1 $at,$f4 -/* f0333f4: 46086182 */ mul.s $f6,$f12,$f8 -/* f0333f8: 46043280 */ add.s $f10,$f6,$f4 -/* f0333fc: 4600520d */ trunc.w.s $f8,$f10 -/* f033400: 44044000 */ mfc1 $a0,$f8 -/* f033404: 00000000 */ nop -/* f033408: 28810008 */ slti $at,$a0,0x8 -/* f03340c: 54200003 */ bnezl $at,.L0f03341c -/* f033410: afa40048 */ sw $a0,0x48($sp) -/* f033414: 00002025 */ or $a0,$zero,$zero -/* f033418: afa40048 */ sw $a0,0x48($sp) -.L0f03341c: -/* f03341c: 0c004b70 */ jal random -/* f033420: afa7002c */ sw $a3,0x2c($sp) -/* f033424: 8fa7002c */ lw $a3,0x2c($sp) -/* f033428: 8fa40048 */ lw $a0,0x48($sp) -/* f03342c: 3c198006 */ lui $t9,%hi(var80065640) -/* f033430: 27395640 */ addiu $t9,$t9,%lo(var80065640) -/* f033434: 0007c180 */ sll $t8,$a3,0x6 -/* f033438: 03193021 */ addu $a2,$t8,$t9 -/* f03343c: 000440c0 */ sll $t0,$a0,0x3 -/* f033440: 00c81821 */ addu $v1,$a2,$t0 -/* f033444: 8c690004 */ lw $t1,0x4($v1) -/* f033448: 3c188006 */ lui $t8,%hi(var80065680) -/* f03344c: 27185680 */ addiu $t8,$t8,%lo(var80065680) -/* f033450: 0049001b */ divu $zero,$v0,$t1 -/* f033454: 00002810 */ mfhi $a1 -/* f033458: 15200002 */ bnez $t1,.L0f033464 -/* f03345c: 00000000 */ nop -/* f033460: 0007000d */ break 0x7 -.L0f033464: -/* f033464: 14e0000c */ bnez $a3,.L0f033498 -/* f033468: 00000000 */ nop -/* f03346c: 8c6a0000 */ lw $t2,0x0($v1) -/* f033470: 3c0e8006 */ lui $t6,%hi(var800652cc) -/* f033474: 25ce52cc */ addiu $t6,$t6,%lo(var800652cc) -/* f033478: 01455821 */ addu $t3,$t2,$a1 -/* f03347c: 816c0000 */ lb $t4,0x0($t3) -/* f033480: 000c6880 */ sll $t5,$t4,0x2 -/* f033484: 01ac6823 */ subu $t5,$t5,$t4 -/* f033488: 000d68c0 */ sll $t5,$t5,0x3 -/* f03348c: 01ae7821 */ addu $t7,$t5,$t6 -/* f033490: 1000000d */ b .L0f0334c8 -/* f033494: afaf0040 */ sw $t7,0x40($sp) -.L0f033498: -/* f033498: 14d8000b */ bne $a2,$t8,.L0f0334c8 -/* f03349c: 00000000 */ nop -/* f0334a0: 8c790000 */ lw $t9,0x0($v1) -/* f0334a4: 3c0b8006 */ lui $t3,%hi(var80065548) -/* f0334a8: 256b5548 */ addiu $t3,$t3,%lo(var80065548) -/* f0334ac: 03254021 */ addu $t0,$t9,$a1 -/* f0334b0: 81090000 */ lb $t1,0x0($t0) -/* f0334b4: 00095080 */ sll $t2,$t1,0x2 -/* f0334b8: 01495023 */ subu $t2,$t2,$t1 -/* f0334bc: 000a50c0 */ sll $t2,$t2,0x3 -/* f0334c0: 014b6021 */ addu $t4,$t2,$t3 -/* f0334c4: afac0040 */ sw $t4,0x40($sp) -.L0f0334c8: -/* f0334c8: 0fc0fe3d */ jal chrStopFiring -/* f0334cc: 02002025 */ or $a0,$s0,$zero -/* f0334d0: 02002025 */ or $a0,$s0,$zero -/* f0334d4: 0fc08946 */ jal chrUncloak -/* f0334d8: 24050001 */ addiu $a1,$zero,0x1 -/* f0334dc: 8e0d0018 */ lw $t5,0x18($s0) -/* f0334e0: 8fa20040 */ lw $v0,0x40($sp) -/* f0334e4: 2401fbff */ addiu $at,$zero,-1025 -/* f0334e8: 01a17024 */ and $t6,$t5,$at -/* f0334ec: 240f0004 */ addiu $t7,$zero,0x4 -/* f0334f0: ae0e0018 */ sw $t6,0x18($s0) -/* f0334f4: a20f0007 */ sb $t7,0x7($s0) -/* f0334f8: ae00002c */ sw $zero,0x2c($s0) -/* f0334fc: 3c01bf80 */ lui $at,0xbf80 -/* f033500: 44812000 */ mtc1 $at,$f4 -/* f033504: 921902fe */ lbu $t9,0x2fe($s0) -/* f033508: c4460010 */ lwc1 $f6,0x10($v0) -/* f03350c: 44805000 */ mtc1 $zero,$f10 -/* f033510: 2418002d */ addiu $t8,$zero,0x25 -/* f033514: 24010002 */ addiu $at,$zero,0x2 -/* f033518: a618004c */ sh $t8,0x4c($s0) -/* f03351c: e6040034 */ swc1 $f4,0x34($s0) -/* f033520: e6060030 */ swc1 $f6,0x30($s0) -/* f033524: 17210031 */ bne $t9,$at,.L0f0335ec -/* f033528: e60a0038 */ swc1 $f10,0x38($s0) -/* f03352c: 0c004b70 */ jal random -/* f033530: 00000000 */ nop -/* f033534: 24010190 */ addiu $at,$zero,0x190 -/* f033538: 0041001b */ divu $zero,$v0,$at -/* f03353c: 00004010 */ mfhi $t0 -/* f033540: 44884000 */ mtc1 $t0,$f8 -/* f033544: 3c014f80 */ lui $at,0x4f80 -/* f033548: 05010004 */ bgez $t0,.L0f03355c -/* f03354c: 468041a0 */ cvt.s.w $f6,$f8 -/* f033550: 44812000 */ mtc1 $at,$f4 -/* f033554: 00000000 */ nop -/* f033558: 46043180 */ add.s $f6,$f6,$f4 -.L0f03355c: -/* f03355c: 3c017f1b */ lui $at,%hi(var7f1a8d58) -/* f033560: c42a8d58 */ lwc1 $f10,%lo(var7f1a8d58)($at) -/* f033564: 920f0362 */ lbu $t7,0x362($s0) -/* f033568: 460a3202 */ mul.s $f8,$f6,$f10 -/* f03356c: 31f8ff0f */ andi $t8,$t7,0xff0f -/* f033570: 4600410d */ trunc.w.s $f4,$f8 -/* f033574: 440a2000 */ mfc1 $t2,$f4 -/* f033578: 00000000 */ nop -/* f03357c: 254c0001 */ addiu $t4,$t2,0x1 -/* f033580: 000c7100 */ sll $t6,$t4,0x4 -/* f033584: 01d8c825 */ or $t9,$t6,$t8 -/* f033588: 0c004b70 */ jal random -/* f03358c: a2190362 */ sb $t9,0x362($s0) -/* f033590: 24010190 */ addiu $at,$zero,0x190 -/* f033594: 0041001b */ divu $zero,$v0,$at -/* f033598: 00004010 */ mfhi $t0 -/* f03359c: 44883000 */ mtc1 $t0,$f6 -/* f0335a0: 3c014f80 */ lui $at,0x4f80 -/* f0335a4: 05010004 */ bgez $t0,.L0f0335b8 -/* f0335a8: 468032a0 */ cvt.s.w $f10,$f6 -/* f0335ac: 44814000 */ mtc1 $at,$f8 -/* f0335b0: 00000000 */ nop -/* f0335b4: 46085280 */ add.s $f10,$f10,$f8 -.L0f0335b8: -/* f0335b8: 3c017f1b */ lui $at,%hi(var7f1a8d5c) -/* f0335bc: c4248d5c */ lwc1 $f4,%lo(var7f1a8d5c)($at) -/* f0335c0: 920f0362 */ lbu $t7,0x362($s0) -/* f0335c4: 46045182 */ mul.s $f6,$f10,$f4 -/* f0335c8: 31eefff0 */ andi $t6,$t7,0xfff0 -/* f0335cc: 4600320d */ trunc.w.s $f8,$f6 -/* f0335d0: 440a4000 */ mfc1 $t2,$f8 -/* f0335d4: 00000000 */ nop -/* f0335d8: 254c0001 */ addiu $t4,$t2,0x1 -/* f0335dc: 318d000f */ andi $t5,$t4,0xf -/* f0335e0: 01aec025 */ or $t8,$t5,$t6 -/* f0335e4: a2180362 */ sb $t8,0x362($s0) -/* f0335e8: 8fa20040 */ lw $v0,0x40($sp) -.L0f0335ec: -/* f0335ec: a2000008 */ sb $zero,0x8($s0) -/* f0335f0: 3c014100 */ lui $at,0x4100 -/* f0335f4: 44812000 */ mtc1 $at,$f4 -/* f0335f8: c44a0008 */ lwc1 $f10,0x8($v0) -/* f0335fc: 8c47000c */ lw $a3,0xc($v0) -/* f033600: 8c460004 */ lw $a2,0x4($v0) -/* f033604: 84450000 */ lh $a1,0x0($v0) -/* f033608: 8fa4005c */ lw $a0,0x5c($sp) -/* f03360c: e7a40014 */ swc1 $f4,0x14($sp) -/* f033610: 0c007733 */ jal modelSetAnimation -/* f033614: e7aa0010 */ swc1 $f10,0x10($sp) -/* f033618: 8fb90040 */ lw $t9,0x40($sp) -/* f03361c: 44803000 */ mtc1 $zero,$f6 -/* f033620: c7200014 */ lwc1 $f0,0x14($t9) -/* f033624: 4600303e */ c.le.s $f6,$f0 -/* f033628: 00000000 */ nop -/* f03362c: 45020005 */ bc1fl .L0f033644 -/* f033630: 8fbf0024 */ lw $ra,0x24($sp) -/* f033634: 44050000 */ mfc1 $a1,$f0 -/* f033638: 0c007787 */ jal modelSetAnimEndFrame -/* f03363c: 8fa4005c */ lw $a0,0x5c($sp) -.L0f033640: -/* f033640: 8fbf0024 */ lw $ra,0x24($sp) -.L0f033644: -/* f033644: 8fb00020 */ lw $s0,0x20($sp) -/* f033648: 27bd0060 */ addiu $sp,$sp,0x60 -/* f03364c: 03e00008 */ jr $ra -/* f033650: 00000000 */ nop -); -#elif VERSION >= VERSION_NTSC_1_0 -GLOBAL_ASM( -glabel chrYeetFromPos -.late_rodata -glabel var7f1a8d50 -.word 0x40c907a9 -glabel var7f1a8d54 -.word 0x3fa30028 -glabel var7f1a8d58 -.word 0x3c23d70a -glabel var7f1a8d5c -.word 0x3c23d70a -.text -/* f03323c: 27bdffa0 */ addiu $sp,$sp,-96 -/* f033240: afbf0024 */ sw $ra,0x24($sp) -/* f033244: afb00020 */ sw $s0,0x20($sp) -/* f033248: afa60068 */ sw $a2,0x68($sp) -/* f03324c: 8c8e0020 */ lw $t6,0x20($a0) -/* f033250: 00808025 */ or $s0,$a0,$zero -/* f033254: 24010002 */ addiu $at,$zero,0x2 -/* f033258: afae005c */ sw $t6,0x5c($sp) -/* f03325c: 10800003 */ beqz $a0,.L0f03326c -/* f033260: 8c82001c */ lw $v0,0x1c($a0) -/* f033264: 10000002 */ b .L0f033270 -/* f033268: 908702fe */ lbu $a3,0x2fe($a0) -.L0f03326c: -/* f03326c: 00003825 */ or $a3,$zero,$zero -.L0f033270: -/* f033270: 10e100f3 */ beq $a3,$at,.L0f033640 -/* f033274: 24010003 */ addiu $at,$zero,0x3 -/* f033278: 10e100f1 */ beq $a3,$at,.L0f033640 -/* f03327c: 24010004 */ addiu $at,$zero,0x4 -/* f033280: 10e100ef */ beq $a3,$at,.L0f033640 -/* f033284: 02002025 */ or $a0,$s0,$zero -/* f033288: afa20058 */ sw $v0,0x58($sp) -/* f03328c: afa50064 */ sw $a1,0x64($sp) -/* f033290: 0fc0f917 */ jal chrGetInverseTheta -/* f033294: afa7002c */ sw $a3,0x2c($sp) -/* f033298: 8fa20058 */ lw $v0,0x58($sp) -/* f03329c: 8fa50064 */ lw $a1,0x64($sp) -/* f0332a0: e7a00054 */ swc1 $f0,0x54($sp) -/* f0332a4: c4480010 */ lwc1 $f8,0x10($v0) -/* f0332a8: c4440008 */ lwc1 $f4,0x8($v0) -/* f0332ac: c4aa0008 */ lwc1 $f10,0x8($a1) -/* f0332b0: c4a60000 */ lwc1 $f6,0x0($a1) -/* f0332b4: 460a4381 */ sub.s $f14,$f8,$f10 -/* f0332b8: 0fc259d4 */ jal atan2f -/* f0332bc: 46062301 */ sub.s $f12,$f4,$f6 -/* f0332c0: 8fa20058 */ lw $v0,0x58($sp) -/* f0332c4: 8fa50064 */ lw $a1,0x64($sp) -/* f0332c8: 44801000 */ mtc1 $zero,$f2 -/* f0332cc: c4440008 */ lwc1 $f4,0x8($v0) -/* f0332d0: c4a60000 */ lwc1 $f6,0x0($a1) -/* f0332d4: 8fa7002c */ lw $a3,0x2c($sp) -/* f0332d8: 46000406 */ mov.s $f16,$f0 -/* f0332dc: 46062201 */ sub.s $f8,$f4,$f6 -/* f0332e0: e7a80034 */ swc1 $f8,0x34($sp) -/* f0332e4: c44a000c */ lwc1 $f10,0xc($v0) -/* f0332e8: c4a40004 */ lwc1 $f4,0x4($a1) -/* f0332ec: 46045181 */ sub.s $f6,$f10,$f4 -/* f0332f0: e7a60038 */ swc1 $f6,0x38($sp) -/* f0332f4: c7a60034 */ lwc1 $f6,0x34($sp) -/* f0332f8: c4480010 */ lwc1 $f8,0x10($v0) -/* f0332fc: c4aa0008 */ lwc1 $f10,0x8($a1) -/* f033300: 46061032 */ c.eq.s $f2,$f6 -/* f033304: c7ae0038 */ lwc1 $f14,0x38($sp) -/* f033308: 460a4101 */ sub.s $f4,$f8,$f10 -/* f03330c: 4500000c */ bc1f .L0f033340 -/* f033310: e7a4003c */ swc1 $f4,0x3c($sp) -/* f033314: 460e1032 */ c.eq.s $f2,$f14 -/* f033318: c7b2003c */ lwc1 $f18,0x3c($sp) -/* f03331c: 45020009 */ bc1fl .L0f033344 -/* f033320: c7a00034 */ lwc1 $f0,0x34($sp) -/* f033324: 46121032 */ c.eq.s $f2,$f18 -/* f033328: 3c013f80 */ lui $at,0x3f80 -/* f03332c: 45020005 */ bc1fl .L0f033344 -/* f033330: c7a00034 */ lwc1 $f0,0x34($sp) -/* f033334: 44819000 */ mtc1 $at,$f18 -/* f033338: 00000000 */ nop -/* f03333c: e7b2003c */ swc1 $f18,0x3c($sp) -.L0f033340: -/* f033340: c7a00034 */ lwc1 $f0,0x34($sp) -.L0f033344: -/* f033344: c7ae0038 */ lwc1 $f14,0x38($sp) -/* f033348: c7b2003c */ lwc1 $f18,0x3c($sp) -/* f03334c: 46000202 */ mul.s $f8,$f0,$f0 -/* f033350: afa7002c */ sw $a3,0x2c($sp) -/* f033354: e7b00050 */ swc1 $f16,0x50($sp) -/* f033358: 460e7282 */ mul.s $f10,$f14,$f14 -/* f03335c: 460a4100 */ add.s $f4,$f8,$f10 -/* f033360: 46129182 */ mul.s $f6,$f18,$f18 -/* f033364: 0c012974 */ jal sqrtf -/* f033368: 46043300 */ add.s $f12,$f6,$f4 -/* f03336c: 3c013f20 */ lui $at,0x3f20 -/* f033370: 44814000 */ mtc1 $at,$f8 -/* f033374: c7aa0068 */ lwc1 $f10,0x68($sp) -/* f033378: c7a40034 */ lwc1 $f4,0x34($sp) -/* f03337c: c7b00050 */ lwc1 $f16,0x50($sp) -/* f033380: 460a4182 */ mul.s $f6,$f8,$f10 -/* f033384: c7aa0038 */ lwc1 $f10,0x38($sp) -/* f033388: c7b20054 */ lwc1 $f18,0x54($sp) -/* f03338c: 8fa7002c */ lw $a3,0x2c($sp) -/* f033390: 3c017f1b */ lui $at,%hi(var7f1a8d50) -/* f033394: 4612803c */ c.lt.s $f16,$f18 -/* f033398: 46003083 */ div.s $f2,$f6,$f0 -/* f03339c: 46128381 */ sub.s $f14,$f16,$f18 -/* f0333a0: 46007306 */ mov.s $f12,$f14 -/* f0333a4: 46022202 */ mul.s $f8,$f4,$f2 -/* f0333a8: c7a4003c */ lwc1 $f4,0x3c($sp) -/* f0333ac: 46025182 */ mul.s $f6,$f10,$f2 -/* f0333b0: 00000000 */ nop -/* f0333b4: 46022282 */ mul.s $f10,$f4,$f2 -/* f0333b8: e7a80034 */ swc1 $f8,0x34($sp) -/* f0333bc: e7a60038 */ swc1 $f6,0x38($sp) -/* f0333c0: e7aa003c */ swc1 $f10,0x3c($sp) -/* f0333c4: e60800bc */ swc1 $f8,0xbc($s0) -/* f0333c8: c7a60038 */ lwc1 $f6,0x38($sp) -/* f0333cc: e60600c0 */ swc1 $f6,0xc0($s0) -/* f0333d0: c7a4003c */ lwc1 $f4,0x3c($sp) -/* f0333d4: 45000003 */ bc1f .L0f0333e4 -/* f0333d8: e60400c4 */ swc1 $f4,0xc4($s0) -/* f0333dc: c42a8d50 */ lwc1 $f10,%lo(var7f1a8d50)($at) -/* f0333e0: 460a7300 */ add.s $f12,$f14,$f10 -.L0f0333e4: -/* f0333e4: 3c017f1b */ lui $at,%hi(var7f1a8d54) -/* f0333e8: c4288d54 */ lwc1 $f8,%lo(var7f1a8d54)($at) -/* f0333ec: 3c013f00 */ lui $at,0x3f00 -/* f0333f0: 44812000 */ mtc1 $at,$f4 -/* f0333f4: 46086182 */ mul.s $f6,$f12,$f8 -/* f0333f8: 46043280 */ add.s $f10,$f6,$f4 -/* f0333fc: 4600520d */ trunc.w.s $f8,$f10 -/* f033400: 44044000 */ mfc1 $a0,$f8 -/* f033404: 00000000 */ nop -/* f033408: 28810008 */ slti $at,$a0,0x8 -/* f03340c: 54200003 */ bnezl $at,.L0f03341c -/* f033410: afa40048 */ sw $a0,0x48($sp) -/* f033414: 00002025 */ or $a0,$zero,$zero -/* f033418: afa40048 */ sw $a0,0x48($sp) -.L0f03341c: -/* f03341c: 0c004b70 */ jal random -/* f033420: afa7002c */ sw $a3,0x2c($sp) -/* f033424: 8fa7002c */ lw $a3,0x2c($sp) -/* f033428: 8fa40048 */ lw $a0,0x48($sp) -/* f03342c: 3c198006 */ lui $t9,%hi(var80065640) -/* f033430: 27395640 */ addiu $t9,$t9,%lo(var80065640) -/* f033434: 0007c180 */ sll $t8,$a3,0x6 -/* f033438: 03193021 */ addu $a2,$t8,$t9 -/* f03343c: 000440c0 */ sll $t0,$a0,0x3 -/* f033440: 00c81821 */ addu $v1,$a2,$t0 -/* f033444: 8c690004 */ lw $t1,0x4($v1) -/* f033448: 3c188006 */ lui $t8,%hi(var80065680) -/* f03344c: 27185680 */ addiu $t8,$t8,%lo(var80065680) -/* f033450: 0049001b */ divu $zero,$v0,$t1 -/* f033454: 00002810 */ mfhi $a1 -/* f033458: 15200002 */ bnez $t1,.L0f033464 -/* f03345c: 00000000 */ nop -/* f033460: 0007000d */ break 0x7 -.L0f033464: -/* f033464: 14e0000c */ bnez $a3,.L0f033498 -/* f033468: 00000000 */ nop -/* f03346c: 8c6a0000 */ lw $t2,0x0($v1) -/* f033470: 3c0e8006 */ lui $t6,%hi(var800652cc) -/* f033474: 25ce52cc */ addiu $t6,$t6,%lo(var800652cc) -/* f033478: 01455821 */ addu $t3,$t2,$a1 -/* f03347c: 816c0000 */ lb $t4,0x0($t3) -/* f033480: 000c6880 */ sll $t5,$t4,0x2 -/* f033484: 01ac6823 */ subu $t5,$t5,$t4 -/* f033488: 000d68c0 */ sll $t5,$t5,0x3 -/* f03348c: 01ae7821 */ addu $t7,$t5,$t6 -/* f033490: 1000000d */ b .L0f0334c8 -/* f033494: afaf0040 */ sw $t7,0x40($sp) -.L0f033498: -/* f033498: 14d8000b */ bne $a2,$t8,.L0f0334c8 -/* f03349c: 00000000 */ nop -/* f0334a0: 8c790000 */ lw $t9,0x0($v1) -/* f0334a4: 3c0b8006 */ lui $t3,%hi(var80065548) -/* f0334a8: 256b5548 */ addiu $t3,$t3,%lo(var80065548) -/* f0334ac: 03254021 */ addu $t0,$t9,$a1 -/* f0334b0: 81090000 */ lb $t1,0x0($t0) -/* f0334b4: 00095080 */ sll $t2,$t1,0x2 -/* f0334b8: 01495023 */ subu $t2,$t2,$t1 -/* f0334bc: 000a50c0 */ sll $t2,$t2,0x3 -/* f0334c0: 014b6021 */ addu $t4,$t2,$t3 -/* f0334c4: afac0040 */ sw $t4,0x40($sp) -.L0f0334c8: -/* f0334c8: 0fc0fe3d */ jal chrStopFiring -/* f0334cc: 02002025 */ or $a0,$s0,$zero -/* f0334d0: 02002025 */ or $a0,$s0,$zero -/* f0334d4: 0fc08946 */ jal chrUncloak -/* f0334d8: 24050001 */ addiu $a1,$zero,0x1 -/* f0334dc: 8e0d0018 */ lw $t5,0x18($s0) -/* f0334e0: 8fa20040 */ lw $v0,0x40($sp) -/* f0334e4: 2401fbff */ addiu $at,$zero,-1025 -/* f0334e8: 01a17024 */ and $t6,$t5,$at -/* f0334ec: 240f0004 */ addiu $t7,$zero,0x4 -/* f0334f0: ae0e0018 */ sw $t6,0x18($s0) -/* f0334f4: a20f0007 */ sb $t7,0x7($s0) -/* f0334f8: ae00002c */ sw $zero,0x2c($s0) -/* f0334fc: 3c01bf80 */ lui $at,0xbf80 -/* f033500: 44812000 */ mtc1 $at,$f4 -/* f033504: 921902fe */ lbu $t9,0x2fe($s0) -/* f033508: c4460010 */ lwc1 $f6,0x10($v0) -/* f03350c: 44805000 */ mtc1 $zero,$f10 -/* f033510: 2418002d */ addiu $t8,$zero,0x2d -/* f033514: 24010002 */ addiu $at,$zero,0x2 -/* f033518: a618004c */ sh $t8,0x4c($s0) -/* f03351c: e6040034 */ swc1 $f4,0x34($s0) -/* f033520: e6060030 */ swc1 $f6,0x30($s0) -/* f033524: 17210031 */ bne $t9,$at,.L0f0335ec -/* f033528: e60a0038 */ swc1 $f10,0x38($s0) -/* f03352c: 0c004b70 */ jal random -/* f033530: 00000000 */ nop -/* f033534: 24010190 */ addiu $at,$zero,0x190 -/* f033538: 0041001b */ divu $zero,$v0,$at -/* f03353c: 00004010 */ mfhi $t0 -/* f033540: 44884000 */ mtc1 $t0,$f8 -/* f033544: 3c014f80 */ lui $at,0x4f80 -/* f033548: 05010004 */ bgez $t0,.L0f03355c -/* f03354c: 468041a0 */ cvt.s.w $f6,$f8 -/* f033550: 44812000 */ mtc1 $at,$f4 -/* f033554: 00000000 */ nop -/* f033558: 46043180 */ add.s $f6,$f6,$f4 -.L0f03355c: -/* f03355c: 3c017f1b */ lui $at,%hi(var7f1a8d58) -/* f033560: c42a8d58 */ lwc1 $f10,%lo(var7f1a8d58)($at) -/* f033564: 920f0362 */ lbu $t7,0x362($s0) -/* f033568: 460a3202 */ mul.s $f8,$f6,$f10 -/* f03356c: 31f8ff0f */ andi $t8,$t7,0xff0f -/* f033570: 4600410d */ trunc.w.s $f4,$f8 -/* f033574: 440a2000 */ mfc1 $t2,$f4 -/* f033578: 00000000 */ nop -/* f03357c: 254c0001 */ addiu $t4,$t2,0x1 -/* f033580: 000c7100 */ sll $t6,$t4,0x4 -/* f033584: 01d8c825 */ or $t9,$t6,$t8 -/* f033588: 0c004b70 */ jal random -/* f03358c: a2190362 */ sb $t9,0x362($s0) -/* f033590: 24010190 */ addiu $at,$zero,0x190 -/* f033594: 0041001b */ divu $zero,$v0,$at -/* f033598: 00004010 */ mfhi $t0 -/* f03359c: 44883000 */ mtc1 $t0,$f6 -/* f0335a0: 3c014f80 */ lui $at,0x4f80 -/* f0335a4: 05010004 */ bgez $t0,.L0f0335b8 -/* f0335a8: 468032a0 */ cvt.s.w $f10,$f6 -/* f0335ac: 44814000 */ mtc1 $at,$f8 -/* f0335b0: 00000000 */ nop -/* f0335b4: 46085280 */ add.s $f10,$f10,$f8 -.L0f0335b8: -/* f0335b8: 3c017f1b */ lui $at,%hi(var7f1a8d5c) -/* f0335bc: c4248d5c */ lwc1 $f4,%lo(var7f1a8d5c)($at) -/* f0335c0: 920f0362 */ lbu $t7,0x362($s0) -/* f0335c4: 46045182 */ mul.s $f6,$f10,$f4 -/* f0335c8: 31eefff0 */ andi $t6,$t7,0xfff0 -/* f0335cc: 4600320d */ trunc.w.s $f8,$f6 -/* f0335d0: 440a4000 */ mfc1 $t2,$f8 -/* f0335d4: 00000000 */ nop -/* f0335d8: 254c0001 */ addiu $t4,$t2,0x1 -/* f0335dc: 318d000f */ andi $t5,$t4,0xf -/* f0335e0: 01aec025 */ or $t8,$t5,$t6 -/* f0335e4: a2180362 */ sb $t8,0x362($s0) -/* f0335e8: 8fa20040 */ lw $v0,0x40($sp) -.L0f0335ec: -/* f0335ec: a2000008 */ sb $zero,0x8($s0) -/* f0335f0: 3c014100 */ lui $at,0x4100 -/* f0335f4: 44812000 */ mtc1 $at,$f4 -/* f0335f8: c44a0008 */ lwc1 $f10,0x8($v0) -/* f0335fc: 8c47000c */ lw $a3,0xc($v0) -/* f033600: 8c460004 */ lw $a2,0x4($v0) -/* f033604: 84450000 */ lh $a1,0x0($v0) -/* f033608: 8fa4005c */ lw $a0,0x5c($sp) -/* f03360c: e7a40014 */ swc1 $f4,0x14($sp) -/* f033610: 0c007733 */ jal modelSetAnimation -/* f033614: e7aa0010 */ swc1 $f10,0x10($sp) -/* f033618: 8fb90040 */ lw $t9,0x40($sp) -/* f03361c: 44803000 */ mtc1 $zero,$f6 -/* f033620: c7200014 */ lwc1 $f0,0x14($t9) -/* f033624: 4600303e */ c.le.s $f6,$f0 -/* f033628: 00000000 */ nop -/* f03362c: 45020005 */ bc1fl .L0f033644 -/* f033630: 8fbf0024 */ lw $ra,0x24($sp) -/* f033634: 44050000 */ mfc1 $a1,$f0 -/* f033638: 0c007787 */ jal modelSetAnimEndFrame -/* f03363c: 8fa4005c */ lw $a0,0x5c($sp) -.L0f033640: -/* f033640: 8fbf0024 */ lw $ra,0x24($sp) -.L0f033644: -/* f033644: 8fb00020 */ lw $s0,0x20($sp) -/* f033648: 27bd0060 */ addiu $sp,$sp,0x60 -/* f03364c: 03e00008 */ jr $ra -/* f033650: 00000000 */ nop -); -#else -GLOBAL_ASM( -glabel chrYeetFromPos -.late_rodata -glabel var7f1a8d50 -.word 0x40c907a9 -glabel var7f1a8d54 -.word 0x3fa30028 -glabel var7f1a8d58 -.word 0x3c23d70a -glabel var7f1a8d5c -.word 0x3c23d70a -.text -/* f032b78: 27bdffa0 */ addiu $sp,$sp,-96 -/* f032b7c: afbf0024 */ sw $ra,0x24($sp) -/* f032b80: afb00020 */ sw $s0,0x20($sp) -/* f032b84: afa60068 */ sw $a2,0x68($sp) -/* f032b88: 8c8e0020 */ lw $t6,0x20($a0) -/* f032b8c: 00808025 */ or $s0,$a0,$zero -/* f032b90: 24010002 */ addiu $at,$zero,0x2 -/* f032b94: afae005c */ sw $t6,0x5c($sp) -/* f032b98: 10800003 */ beqz $a0,.NB0f032ba8 -/* f032b9c: 8c82001c */ lw $v0,0x1c($a0) -/* f032ba0: 10000002 */ beqz $zero,.NB0f032bac -/* f032ba4: 908702fe */ lbu $a3,0x2fe($a0) -.NB0f032ba8: -/* f032ba8: 00003825 */ or $a3,$zero,$zero -.NB0f032bac: -/* f032bac: 10e100ef */ beq $a3,$at,.NB0f032f6c -/* f032bb0: 24010003 */ addiu $at,$zero,0x3 -/* f032bb4: 10e100ed */ beq $a3,$at,.NB0f032f6c -/* f032bb8: 24010004 */ addiu $at,$zero,0x4 -/* f032bbc: 10e100eb */ beq $a3,$at,.NB0f032f6c -/* f032bc0: 02002025 */ or $a0,$s0,$zero -/* f032bc4: afa20058 */ sw $v0,0x58($sp) -/* f032bc8: afa50064 */ sw $a1,0x64($sp) -/* f032bcc: 0fc0f714 */ jal chrGetInverseTheta -/* f032bd0: afa7002c */ sw $a3,0x2c($sp) -/* f032bd4: 8fa20058 */ lw $v0,0x58($sp) -/* f032bd8: 8fa50064 */ lw $a1,0x64($sp) -/* f032bdc: e7a00054 */ swc1 $f0,0x54($sp) -/* f032be0: c4480010 */ lwc1 $f8,0x10($v0) -/* f032be4: c4440008 */ lwc1 $f4,0x8($v0) -/* f032be8: c4aa0008 */ lwc1 $f10,0x8($a1) -/* f032bec: c4a60000 */ lwc1 $f6,0x0($a1) -/* f032bf0: 460a4381 */ sub.s $f14,$f8,$f10 -/* f032bf4: 0fc251b8 */ jal atan2f -/* f032bf8: 46062301 */ sub.s $f12,$f4,$f6 -/* f032bfc: 8fa20058 */ lw $v0,0x58($sp) -/* f032c00: 8fa50064 */ lw $a1,0x64($sp) -/* f032c04: 44801000 */ mtc1 $zero,$f2 -/* f032c08: c4440008 */ lwc1 $f4,0x8($v0) -/* f032c0c: c4a60000 */ lwc1 $f6,0x0($a1) -/* f032c10: 8fa7002c */ lw $a3,0x2c($sp) -/* f032c14: 46000406 */ mov.s $f16,$f0 -/* f032c18: 46062201 */ sub.s $f8,$f4,$f6 -/* f032c1c: e7a80034 */ swc1 $f8,0x34($sp) -/* f032c20: c44a000c */ lwc1 $f10,0xc($v0) -/* f032c24: c4a40004 */ lwc1 $f4,0x4($a1) -/* f032c28: 46045181 */ sub.s $f6,$f10,$f4 -/* f032c2c: e7a60038 */ swc1 $f6,0x38($sp) -/* f032c30: c7a60034 */ lwc1 $f6,0x34($sp) -/* f032c34: c4480010 */ lwc1 $f8,0x10($v0) -/* f032c38: c4aa0008 */ lwc1 $f10,0x8($a1) -/* f032c3c: 46061032 */ c.eq.s $f2,$f6 -/* f032c40: c7ae0038 */ lwc1 $f14,0x38($sp) -/* f032c44: 460a4101 */ sub.s $f4,$f8,$f10 -/* f032c48: 4500000c */ bc1f .NB0f032c7c -/* f032c4c: e7a4003c */ swc1 $f4,0x3c($sp) -/* f032c50: 460e1032 */ c.eq.s $f2,$f14 -/* f032c54: c7b2003c */ lwc1 $f18,0x3c($sp) -/* f032c58: 45020009 */ bc1fl .NB0f032c80 -/* f032c5c: c7a00034 */ lwc1 $f0,0x34($sp) -/* f032c60: 46121032 */ c.eq.s $f2,$f18 -/* f032c64: 3c013f80 */ lui $at,0x3f80 -/* f032c68: 45020005 */ bc1fl .NB0f032c80 -/* f032c6c: c7a00034 */ lwc1 $f0,0x34($sp) -/* f032c70: 44819000 */ mtc1 $at,$f18 -/* f032c74: 00000000 */ sll $zero,$zero,0x0 -/* f032c78: e7b2003c */ swc1 $f18,0x3c($sp) -.NB0f032c7c: -/* f032c7c: c7a00034 */ lwc1 $f0,0x34($sp) -.NB0f032c80: -/* f032c80: c7ae0038 */ lwc1 $f14,0x38($sp) -/* f032c84: c7b2003c */ lwc1 $f18,0x3c($sp) -/* f032c88: 46000202 */ mul.s $f8,$f0,$f0 -/* f032c8c: afa7002c */ sw $a3,0x2c($sp) -/* f032c90: e7b00050 */ swc1 $f16,0x50($sp) -/* f032c94: 460e7282 */ mul.s $f10,$f14,$f14 -/* f032c98: 460a4100 */ add.s $f4,$f8,$f10 -/* f032c9c: 46129182 */ mul.s $f6,$f18,$f18 -/* f032ca0: 0c012e84 */ jal sqrtf -/* f032ca4: 46043300 */ add.s $f12,$f6,$f4 -/* f032ca8: 3c013f20 */ lui $at,0x3f20 -/* f032cac: 44814000 */ mtc1 $at,$f8 -/* f032cb0: c7aa0068 */ lwc1 $f10,0x68($sp) -/* f032cb4: c7a40034 */ lwc1 $f4,0x34($sp) -/* f032cb8: c7b00050 */ lwc1 $f16,0x50($sp) -/* f032cbc: 460a4182 */ mul.s $f6,$f8,$f10 -/* f032cc0: c7aa0038 */ lwc1 $f10,0x38($sp) -/* f032cc4: c7b20054 */ lwc1 $f18,0x54($sp) -/* f032cc8: 8fa7002c */ lw $a3,0x2c($sp) -/* f032ccc: 3c017f1a */ lui $at,0x7f1a -/* f032cd0: 4612803c */ c.lt.s $f16,$f18 -/* f032cd4: 46003083 */ div.s $f2,$f6,$f0 -/* f032cd8: 46128381 */ sub.s $f14,$f16,$f18 -/* f032cdc: 46007306 */ mov.s $f12,$f14 -/* f032ce0: 46022202 */ mul.s $f8,$f4,$f2 -/* f032ce4: c7a4003c */ lwc1 $f4,0x3c($sp) -/* f032ce8: 46025182 */ mul.s $f6,$f10,$f2 -/* f032cec: 00000000 */ sll $zero,$zero,0x0 -/* f032cf0: 46022282 */ mul.s $f10,$f4,$f2 -/* f032cf4: e7a80034 */ swc1 $f8,0x34($sp) -/* f032cf8: e7a60038 */ swc1 $f6,0x38($sp) -/* f032cfc: e7aa003c */ swc1 $f10,0x3c($sp) -/* f032d00: e60800bc */ swc1 $f8,0xbc($s0) -/* f032d04: c7a60038 */ lwc1 $f6,0x38($sp) -/* f032d08: e60600c0 */ swc1 $f6,0xc0($s0) -/* f032d0c: c7a4003c */ lwc1 $f4,0x3c($sp) -/* f032d10: 45000003 */ bc1f .NB0f032d20 -/* f032d14: e60400c4 */ swc1 $f4,0xc4($s0) -/* f032d18: c42a3084 */ lwc1 $f10,0x3084($at) -/* f032d1c: 460a7300 */ add.s $f12,$f14,$f10 -.NB0f032d20: -/* f032d20: 3c017f1a */ lui $at,0x7f1a -/* f032d24: c4283088 */ lwc1 $f8,0x3088($at) -/* f032d28: 3c013f00 */ lui $at,0x3f00 -/* f032d2c: 44812000 */ mtc1 $at,$f4 -/* f032d30: 46086182 */ mul.s $f6,$f12,$f8 -/* f032d34: 46043280 */ add.s $f10,$f6,$f4 -/* f032d38: 4600520d */ trunc.w.s $f8,$f10 -/* f032d3c: 44044000 */ mfc1 $a0,$f8 -/* f032d40: 00000000 */ sll $zero,$zero,0x0 -/* f032d44: 28810008 */ slti $at,$a0,0x8 -/* f032d48: 54200003 */ bnezl $at,.NB0f032d58 -/* f032d4c: afa40048 */ sw $a0,0x48($sp) -/* f032d50: 00002025 */ or $a0,$zero,$zero -/* f032d54: afa40048 */ sw $a0,0x48($sp) -.NB0f032d58: -/* f032d58: 0c004d84 */ jal random -/* f032d5c: afa7002c */ sw $a3,0x2c($sp) -/* f032d60: 8fa7002c */ lw $a3,0x2c($sp) -/* f032d64: 8fa40048 */ lw $a0,0x48($sp) -/* f032d68: 3c198006 */ lui $t9,0x8006 -/* f032d6c: 27397d58 */ addiu $t9,$t9,0x7d58 -/* f032d70: 0007c180 */ sll $t8,$a3,0x6 -/* f032d74: 03193021 */ addu $a2,$t8,$t9 -/* f032d78: 000440c0 */ sll $t0,$a0,0x3 -/* f032d7c: 00c81821 */ addu $v1,$a2,$t0 -/* f032d80: 8c690004 */ lw $t1,0x4($v1) -/* f032d84: 3c188006 */ lui $t8,0x8006 -/* f032d88: 27187d98 */ addiu $t8,$t8,0x7d98 -/* f032d8c: 0049001b */ divu $zero,$v0,$t1 -/* f032d90: 00002810 */ mfhi $a1 -/* f032d94: 15200002 */ bnez $t1,.NB0f032da0 -/* f032d98: 00000000 */ sll $zero,$zero,0x0 -/* f032d9c: 0007000d */ break 0x7 -.NB0f032da0: -/* f032da0: 14e0000c */ bnez $a3,.NB0f032dd4 -/* f032da4: 00000000 */ sll $zero,$zero,0x0 -/* f032da8: 8c6a0000 */ lw $t2,0x0($v1) -/* f032dac: 3c0e8006 */ lui $t6,0x8006 -/* f032db0: 25ce79e4 */ addiu $t6,$t6,0x79e4 -/* f032db4: 01455821 */ addu $t3,$t2,$a1 -/* f032db8: 816c0000 */ lb $t4,0x0($t3) -/* f032dbc: 000c6880 */ sll $t5,$t4,0x2 -/* f032dc0: 01ac6823 */ subu $t5,$t5,$t4 -/* f032dc4: 000d68c0 */ sll $t5,$t5,0x3 -/* f032dc8: 01ae7821 */ addu $t7,$t5,$t6 -/* f032dcc: 1000000d */ beqz $zero,.NB0f032e04 -/* f032dd0: afaf0040 */ sw $t7,0x40($sp) -.NB0f032dd4: -/* f032dd4: 14d8000b */ bne $a2,$t8,.NB0f032e04 -/* f032dd8: 00000000 */ sll $zero,$zero,0x0 -/* f032ddc: 8c790000 */ lw $t9,0x0($v1) -/* f032de0: 3c0b8006 */ lui $t3,0x8006 -/* f032de4: 256b7c60 */ addiu $t3,$t3,0x7c60 -/* f032de8: 03254021 */ addu $t0,$t9,$a1 -/* f032dec: 81090000 */ lb $t1,0x0($t0) -/* f032df0: 00095080 */ sll $t2,$t1,0x2 -/* f032df4: 01495023 */ subu $t2,$t2,$t1 -/* f032df8: 000a50c0 */ sll $t2,$t2,0x3 -/* f032dfc: 014b6021 */ addu $t4,$t2,$t3 -/* f032e00: afac0040 */ sw $t4,0x40($sp) -.NB0f032e04: -/* f032e04: 0fc0fc3a */ jal chrStopFiring -/* f032e08: 02002025 */ or $a0,$s0,$zero -/* f032e0c: 02002025 */ or $a0,$s0,$zero -/* f032e10: 0fc08814 */ jal chrUncloak -/* f032e14: 24050001 */ addiu $a1,$zero,0x1 -/* f032e18: 8fa20040 */ lw $v0,0x40($sp) -/* f032e1c: 240d0004 */ addiu $t5,$zero,0x4 -/* f032e20: a20d0007 */ sb $t5,0x7($s0) -/* f032e24: ae00002c */ sw $zero,0x2c($s0) -/* f032e28: 3c01bf80 */ lui $at,0xbf80 -/* f032e2c: 44812000 */ mtc1 $at,$f4 -/* f032e30: 920f02fe */ lbu $t7,0x2fe($s0) -/* f032e34: c4460010 */ lwc1 $f6,0x10($v0) -/* f032e38: 44805000 */ mtc1 $zero,$f10 -/* f032e3c: 240e002d */ addiu $t6,$zero,0x2d -/* f032e40: 24010002 */ addiu $at,$zero,0x2 -/* f032e44: a60e004c */ sh $t6,0x4c($s0) -/* f032e48: e6040034 */ swc1 $f4,0x34($s0) -/* f032e4c: e6060030 */ swc1 $f6,0x30($s0) -/* f032e50: 15e10031 */ bne $t7,$at,.NB0f032f18 -/* f032e54: e60a0038 */ swc1 $f10,0x38($s0) -/* f032e58: 0c004d84 */ jal random -/* f032e5c: 00000000 */ sll $zero,$zero,0x0 -/* f032e60: 24010190 */ addiu $at,$zero,0x190 -/* f032e64: 0041001b */ divu $zero,$v0,$at -/* f032e68: 0000c010 */ mfhi $t8 -/* f032e6c: 44984000 */ mtc1 $t8,$f8 -/* f032e70: 3c014f80 */ lui $at,0x4f80 -/* f032e74: 07010004 */ bgez $t8,.NB0f032e88 -/* f032e78: 468041a0 */ cvt.s.w $f6,$f8 -/* f032e7c: 44812000 */ mtc1 $at,$f4 -/* f032e80: 00000000 */ sll $zero,$zero,0x0 -/* f032e84: 46043180 */ add.s $f6,$f6,$f4 -.NB0f032e88: -/* f032e88: 3c017f1a */ lui $at,0x7f1a -/* f032e8c: c42a308c */ lwc1 $f10,0x308c($at) -/* f032e90: 920d0362 */ lbu $t5,0x362($s0) -/* f032e94: 460a3202 */ mul.s $f8,$f6,$f10 -/* f032e98: 31aeff0f */ andi $t6,$t5,0xff0f -/* f032e9c: 4600410d */ trunc.w.s $f4,$f8 -/* f032ea0: 44082000 */ mfc1 $t0,$f4 -/* f032ea4: 00000000 */ sll $zero,$zero,0x0 -/* f032ea8: 250a0001 */ addiu $t2,$t0,0x1 -/* f032eac: 000a6100 */ sll $t4,$t2,0x4 -/* f032eb0: 018e7825 */ or $t7,$t4,$t6 -/* f032eb4: 0c004d84 */ jal random -/* f032eb8: a20f0362 */ sb $t7,0x362($s0) -/* f032ebc: 24010190 */ addiu $at,$zero,0x190 -/* f032ec0: 0041001b */ divu $zero,$v0,$at -/* f032ec4: 0000c010 */ mfhi $t8 -/* f032ec8: 44983000 */ mtc1 $t8,$f6 -/* f032ecc: 3c014f80 */ lui $at,0x4f80 -/* f032ed0: 07010004 */ bgez $t8,.NB0f032ee4 -/* f032ed4: 468032a0 */ cvt.s.w $f10,$f6 -/* f032ed8: 44814000 */ mtc1 $at,$f8 -/* f032edc: 00000000 */ sll $zero,$zero,0x0 -/* f032ee0: 46085280 */ add.s $f10,$f10,$f8 -.NB0f032ee4: -/* f032ee4: 3c017f1a */ lui $at,0x7f1a -/* f032ee8: c4243090 */ lwc1 $f4,0x3090($at) -/* f032eec: 920d0362 */ lbu $t5,0x362($s0) -/* f032ef0: 46045182 */ mul.s $f6,$f10,$f4 -/* f032ef4: 31acfff0 */ andi $t4,$t5,0xfff0 -/* f032ef8: 4600320d */ trunc.w.s $f8,$f6 -/* f032efc: 44084000 */ mfc1 $t0,$f8 -/* f032f00: 00000000 */ sll $zero,$zero,0x0 -/* f032f04: 250a0001 */ addiu $t2,$t0,0x1 -/* f032f08: 314b000f */ andi $t3,$t2,0xf -/* f032f0c: 016c7025 */ or $t6,$t3,$t4 -/* f032f10: a20e0362 */ sb $t6,0x362($s0) -/* f032f14: 8fa20040 */ lw $v0,0x40($sp) -.NB0f032f18: -/* f032f18: a2000008 */ sb $zero,0x8($s0) -/* f032f1c: 3c014100 */ lui $at,0x4100 -/* f032f20: 44812000 */ mtc1 $at,$f4 -/* f032f24: c44a0008 */ lwc1 $f10,0x8($v0) -/* f032f28: 8c47000c */ lw $a3,0xc($v0) -/* f032f2c: 8c460004 */ lw $a2,0x4($v0) -/* f032f30: 84450000 */ lh $a1,0x0($v0) -/* f032f34: 8fa4005c */ lw $a0,0x5c($sp) -/* f032f38: e7a40014 */ swc1 $f4,0x14($sp) -/* f032f3c: 0c007b53 */ jal modelSetAnimation -/* f032f40: e7aa0010 */ swc1 $f10,0x10($sp) -/* f032f44: 8faf0040 */ lw $t7,0x40($sp) -/* f032f48: 44803000 */ mtc1 $zero,$f6 -/* f032f4c: c5e00014 */ lwc1 $f0,0x14($t7) -/* f032f50: 4600303e */ c.le.s $f6,$f0 -/* f032f54: 00000000 */ sll $zero,$zero,0x0 -/* f032f58: 45020005 */ bc1fl .NB0f032f70 -/* f032f5c: 8fbf0024 */ lw $ra,0x24($sp) -/* f032f60: 44050000 */ mfc1 $a1,$f0 -/* f032f64: 0c007ba7 */ jal modelSetAnimEndFrame -/* f032f68: 8fa4005c */ lw $a0,0x5c($sp) -.NB0f032f6c: -/* f032f6c: 8fbf0024 */ lw $ra,0x24($sp) -.NB0f032f70: -/* f032f70: 8fb00020 */ lw $s0,0x20($sp) -/* f032f74: 27bd0060 */ addiu $sp,$sp,0x60 -/* f032f78: 03e00008 */ jr $ra -/* f032f7c: 00000000 */ sll $zero,$zero,0x0 -); +/** + * Launch a chr away from the given pos (for explosions). + */ +void chrYeetFromPos(struct chrdata *chr, struct coord *exppos, f32 force) +{ + struct model *model = chr->model; + struct prop *prop = chr->prop; + f32 faceangle; + f32 latangle; + u32 stack1; + s32 angleindex; + u32 stack2; + struct yeetanim *row; + struct coord dist; + u32 stack3; + s32 race = CHRRACE(chr); + f32 speed; + s32 subindex; + f32 angletoexplosion; + + if (race != RACE_DRCAROLL && race != RACE_EYESPY && race != RACE_ROBOT) { + faceangle = chrGetInverseTheta(chr); + latangle = atan2f(prop->pos.x - exppos->x, prop->pos.z - exppos->z); + + dist.x = prop->pos.x - exppos->x; + dist.y = prop->pos.y - exppos->y; + dist.z = prop->pos.z - exppos->z; + + if (dist.f[0] == 0 && dist.f[1] == 0 && dist.f[2] == 0) { + dist.z = 1; + } + + speed = 0.625f * force / sqrtf(dist.f[0] * dist.f[0] + dist.f[1] * dist.f[1] + dist.f[2] * dist.f[2]); + angletoexplosion = latangle - faceangle; + + dist.x *= speed; + dist.y *= speed; + dist.z *= speed; + + chr->fallspeed.x = dist.x; + chr->fallspeed.y = dist.y; + chr->fallspeed.z = dist.z; + + if (latangle < faceangle) { + angletoexplosion += M_BADTAU; + } + + angleindex = angletoexplosion * 1.2734422683716f + 0.5f; + + if (angleindex >= 8) { + angleindex = 0; + } + + subindex = random() % g_YeetAnimIndexesByRaceAngle[race][angleindex].count; + + if (race == RACE_HUMAN) { + row = &g_YeetAnimsHuman[g_YeetAnimIndexesByRaceAngle[race][angleindex].indexes[subindex]]; + } else if (race == RACE_SKEDAR) { + row = &g_YeetAnimsSkedar[g_YeetAnimIndexesByRaceAngle[race][angleindex].indexes[subindex]]; + } + + chrStopFiring(chr); + chrUncloak(chr, true); + +#if VERSION >= VERSION_NTSC_1_0 + chr->chrflags &= ~CHRCFLAG_HIDDEN; #endif + chr->actiontype = ACT_DIE; + + chr->act_die.notifychrindex = 0; + chr->act_die.thudframe1 = row->thudframe; + chr->act_die.thudframe2 = -1; + chr->act_die.timeextra = 0; + chr->act_die.drcarollimagedelay = PALDOWN(45); + + if (chr->race == RACE_DRCAROLL) { + chr->drcarollimage_left = 1 + (s32)((random() % 400) * 0.01f); + chr->drcarollimage_right = 1 + (s32)((random() % 400) * 0.01f); + } + + chr->sleep = 0; + modelSetAnimation(model, row->animnum, row->flip, row->startframe, row->speed, 8); + + if (row->endframe >= 0.0f) { + modelSetAnimEndFrame(model, row->endframe); + } + } +} + s32 handGetBlurAmount(struct shorthand *hand) { s32 amount = PALDOWN(1000);