#include #include "initactorpropstuff.h" #include "chr.h" #include "gun.h" #include "math_floor.h" /** * Gets the number of currently allocated heads and bodies * Note: Compile-time static? why bother with a function? */ void reset_counter_rand_body_head(void) { num_bodies = 0; while (list_of_bodies[num_bodies] >= 0) { num_bodies++; } #ifdef ISGOLDFINGER return; //return early as we have a new function for heads #endif num_male_heads = 0; while (random_male_heads[num_male_heads] >= 0) { num_male_heads++; } num_female_heads = 0; while (random_female_heads[num_female_heads] >= 0) { num_female_heads++; } } u32 sub_GAME_7F0001F0(void *ani,int aniid,int param_3) { short asStack8 [4]; u32 uVar1; u32 i; i = 0; while (aniid < param_3) { uVar1 = sub_GAME_7F06D2E4(0,0,&skeleton_guard,ani,aniid,asStack8); i = i + uVar1 & 0xffff; aniid=1+aniid; } return i; } #ifdef NONMATCHING void sub_GAME_7F000290(void) { } #else GLOBAL_ASM( .text glabel sub_GAME_7F000290 /* 034DC0 7F000290 27BDFFB8 */ addiu $sp, $sp, -0x48 /* 034DC4 7F000294 AFB30028 */ sw $s3, 0x28($sp) /* 034DC8 7F000298 AFB20024 */ sw $s2, 0x24($sp) /* 034DCC 7F00029C AFB10020 */ sw $s1, 0x20($sp) /* 034DD0 7F0002A0 AFB0001C */ sw $s0, 0x1c($sp) /* 034DD4 7F0002A4 00A6082A */ slt $at, $a1, $a2 /* 034DD8 7F0002A8 00A08025 */ move $s0, $a1 /* 034DDC 7F0002AC 00C09025 */ move $s2, $a2 /* 034DE0 7F0002B0 00809825 */ move $s3, $a0 /* 034DE4 7F0002B4 AFBF0034 */ sw $ra, 0x34($sp) /* 034DE8 7F0002B8 AFB50030 */ sw $s5, 0x30($sp) /* 034DEC 7F0002BC AFB4002C */ sw $s4, 0x2c($sp) /* 034DF0 7F0002C0 10200010 */ beqz $at, .L7F000304 /* 034DF4 7F0002C4 00008825 */ move $s1, $zero /* 034DF8 7F0002C8 3C148004 */ lui $s4, %hi(skeleton_guard) /* 034DFC 7F0002CC 2694D400 */ addiu $s4, %lo(skeleton_guard) # addiu $s4, $s4, -0x2c00 /* 034E00 7F0002D0 27B5003C */ addiu $s5, $sp, 0x3c .L7F0002D4: /* 034E04 7F0002D4 00002025 */ move $a0, $zero /* 034E08 7F0002D8 00002825 */ move $a1, $zero /* 034E0C 7F0002DC 02803025 */ move $a2, $s4 /* 034E10 7F0002E0 02603825 */ move $a3, $s3 /* 034E14 7F0002E4 AFB00010 */ sw $s0, 0x10($sp) /* 034E18 7F0002E8 0FC1B4B9 */ jal sub_GAME_7F06D2E4 /* 034E1C 7F0002EC AFB50014 */ sw $s5, 0x14($sp) /* 034E20 7F0002F0 87AE0040 */ lh $t6, 0x40($sp) /* 034E24 7F0002F4 26100001 */ addiu $s0, $s0, 1 /* 034E28 7F0002F8 0212082A */ slt $at, $s0, $s2 /* 034E2C 7F0002FC 1420FFF5 */ bnez $at, .L7F0002D4 /* 034E30 7F000300 022E8821 */ addu $s1, $s1, $t6 .L7F000304: /* 034E34 7F000304 8FBF0034 */ lw $ra, 0x34($sp) /* 034E38 7F000308 02201025 */ move $v0, $s1 /* 034E3C 7F00030C 8FB10020 */ lw $s1, 0x20($sp) /* 034E40 7F000310 8FB0001C */ lw $s0, 0x1c($sp) /* 034E44 7F000314 8FB20024 */ lw $s2, 0x24($sp) /* 034E48 7F000318 8FB30028 */ lw $s3, 0x28($sp) /* 034E4C 7F00031C 8FB4002C */ lw $s4, 0x2c($sp) /* 034E50 7F000320 8FB50030 */ lw $s5, 0x30($sp) /* 034E54 7F000324 03E00008 */ jr $ra /* 034E58 7F000328 27BD0048 */ addiu $sp, $sp, 0x48 ) #endif #ifdef NONMATCHING //pd is raceInitAnimGroup void sub_GAME_7F00032C(void) { } #else GLOBAL_ASM( .late_rodata glabel F32_8004ED70 .word 0x40c90fdb glabel F32_8004ED74 .word 0x38c90fdb .text glabel sub_GAME_7F00032C /* 034E5C 7F00032C 27BDFFC0 */ addiu $sp, $sp, -0x40 /* 034E60 7F000330 AFBF003C */ sw $ra, 0x3c($sp) /* 034E64 7F000334 AFB30038 */ sw $s3, 0x38($sp) /* 034E68 7F000338 AFB20034 */ sw $s2, 0x34($sp) /* 034E6C 7F00033C AFB10030 */ sw $s1, 0x30($sp) /* 034E70 7F000340 AFB0002C */ sw $s0, 0x2c($sp) /* 034E74 7F000344 F7B80020 */ sdc1 $f24, 0x20($sp) /* 034E78 7F000348 F7B60018 */ sdc1 $f22, 0x18($sp) /* 034E7C 7F00034C F7B40010 */ sdc1 $f20, 0x10($sp) /* 034E80 7F000350 8C8E0000 */ lw $t6, ($a0) /* 034E84 7F000354 00008825 */ move $s1, $zero /* 034E88 7F000358 00808025 */ move $s0, $a0 /* 034E8C 7F00035C 11C00038 */ beqz $t6, .L7F000440 /* 034E90 7F000360 01C01025 */ move $v0, $t6 /* 034E94 7F000364 3C018005 */ lui $at, %hi(F32_8004ED70) /* 034E98 7F000368 C438ED70 */ lwc1 $f24, %lo(F32_8004ED70)($at) /* 034E9C 7F00036C 3C018005 */ lui $at, %hi(F32_8004ED74) /* 034EA0 7F000370 3C128007 */ lui $s2, %hi(ptr_animation_table) /* 034EA4 7F000374 4480A000 */ mtc1 $zero, $f20 /* 034EA8 7F000378 26529538 */ addiu $s2, %lo(ptr_animation_table) # addiu $s2, $s2, -0x6ac8 /* 034EAC 7F00037C C436ED74 */ lwc1 $f22, %lo(F32_8004ED74)($at) /* 034EB0 7F000380 34138000 */ li $s3, 32768 /* 034EB4 7F000384 8E4F0000 */ lw $t7, ($s2) .L7F000388: /* 034EB8 7F000388 C60C0004 */ lwc1 $f12, 4($s0) /* 034EBC 7F00038C 004FC021 */ addu $t8, $v0, $t7 /* 034EC0 7F000390 0FC170F6 */ jal floorFloatToInt /* 034EC4 7F000394 AE180000 */ sw $t8, ($s0) /* 034EC8 7F000398 8E040000 */ lw $a0, ($s0) /* 034ECC 7F00039C 00002825 */ move $a1, $zero /* 034ED0 7F0003A0 0FC0007C */ jal sub_GAME_7F0001F0 /* 034ED4 7F0003A4 00403025 */ move $a2, $v0 /* 034ED8 7F0003A8 C6000004 */ lwc1 $f0, 4($s0) /* 034EDC 7F0003AC 3043FFFF */ andi $v1, $v0, 0xffff /* 034EE0 7F0003B0 0073082A */ slt $at, $v1, $s3 /* 034EE4 7F0003B4 4600A03C */ c.lt.s $f20, $f0 /* 034EE8 7F0003B8 00000000 */ nop /* 034EEC 7F0003BC 4502001B */ bc1fl .L7F00042C /* 034EF0 7F0003C0 E6140008 */ swc1 $f20, 8($s0) /* 034EF4 7F0003C4 5020000D */ beql $at, $zero, .L7F0003FC /* 034EF8 7F0003C8 44839000 */ mtc1 $v1, $f18 /* 034EFC 7F0003CC 44832000 */ mtc1 $v1, $f4 /* 034F00 7F0003D0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 034F04 7F0003D4 04610004 */ bgez $v1, .L7F0003E8 /* 034F08 7F0003D8 468021A0 */ cvt.s.w $f6, $f4 /* 034F0C 7F0003DC 44814000 */ mtc1 $at, $f8 /* 034F10 7F0003E0 00000000 */ nop /* 034F14 7F0003E4 46083180 */ add.s $f6, $f6, $f8 .L7F0003E8: /* 034F18 7F0003E8 46163282 */ mul.s $f10, $f6, $f22 /* 034F1C 7F0003EC 46005403 */ div.s $f16, $f10, $f0 /* 034F20 7F0003F0 1000000E */ b .L7F00042C /* 034F24 7F0003F4 E6100008 */ swc1 $f16, 8($s0) /* 034F28 7F0003F8 44839000 */ mtc1 $v1, $f18 .L7F0003FC: /* 034F2C 7F0003FC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 034F30 7F000400 04610004 */ bgez $v1, .L7F000414 /* 034F34 7F000404 46809120 */ cvt.s.w $f4, $f18 /* 034F38 7F000408 44814000 */ mtc1 $at, $f8 /* 034F3C 7F00040C 00000000 */ nop /* 034F40 7F000410 46082100 */ add.s $f4, $f4, $f8 .L7F000414: /* 034F44 7F000414 46162182 */ mul.s $f6, $f4, $f22 /* 034F48 7F000418 46183281 */ sub.s $f10, $f6, $f24 /* 034F4C 7F00041C 46005403 */ div.s $f16, $f10, $f0 /* 034F50 7F000420 10000002 */ b .L7F00042C /* 034F54 7F000424 E6100008 */ swc1 $f16, 8($s0) /* 034F58 7F000428 E6140008 */ swc1 $f20, 8($s0) .L7F00042C: /* 034F5C 7F00042C 8E020048 */ lw $v0, 0x48($s0) /* 034F60 7F000430 26100048 */ addiu $s0, $s0, 0x48 /* 034F64 7F000434 26310001 */ addiu $s1, $s1, 1 /* 034F68 7F000438 5440FFD3 */ bnezl $v0, .L7F000388 /* 034F6C 7F00043C 8E4F0000 */ lw $t7, ($s2) .L7F000440: /* 034F70 7F000440 8FBF003C */ lw $ra, 0x3c($sp) /* 034F74 7F000444 02201025 */ move $v0, $s1 /* 034F78 7F000448 8FB10030 */ lw $s1, 0x30($sp) /* 034F7C 7F00044C D7B40010 */ ldc1 $f20, 0x10($sp) /* 034F80 7F000450 D7B60018 */ ldc1 $f22, 0x18($sp) /* 034F84 7F000454 D7B80020 */ ldc1 $f24, 0x20($sp) /* 034F88 7F000458 8FB0002C */ lw $s0, 0x2c($sp) /* 034F8C 7F00045C 8FB20034 */ lw $s2, 0x34($sp) /* 034F90 7F000460 8FB30038 */ lw $s3, 0x38($sp) /* 034F94 7F000464 03E00008 */ jr $ra /* 034F98 7F000468 27BD0040 */ addiu $sp, $sp, 0x40 ) #endif //pd is raceInitAnimGroups void sub_GAME_7F00046C(struct attackanimgroup **groups) { s32 i; for (i = 0; i < 32; i++) { if (groups[i]->len < 0) { groups[i]->len = sub_GAME_7F00032C(groups[i]->animcfg); } } } #ifdef NONMATCHING void sub_GAME_7F0004D0(void) { } #else GLOBAL_ASM( .text glabel sub_GAME_7F0004D0 /* 035000 7F0004D0 8C8E0000 */ lw $t6, ($a0) /* 035004 7F0004D4 00001825 */ move $v1, $zero /* 035008 7F0004D8 00801025 */ move $v0, $a0 /* 03500C 7F0004DC 11C0000C */ beqz $t6, .L7F000510 /* 035010 7F0004E0 00000000 */ nop /* 035014 7F0004E4 8C850000 */ lw $a1, ($a0) /* 035018 7F0004E8 3C048007 */ lui $a0, %hi(ptr_animation_table) /* 03501C 7F0004EC 24849538 */ addiu $a0, %lo(ptr_animation_table) # addiu $a0, $a0, -0x6ac8 /* 035020 7F0004F0 8C8F0000 */ lw $t7, ($a0) .L7F0004F4: /* 035024 7F0004F4 24630001 */ addiu $v1, $v1, 1 /* 035028 7F0004F8 2442001C */ addiu $v0, $v0, 0x1c /* 03502C 7F0004FC 00AFC021 */ addu $t8, $a1, $t7 /* 035030 7F000500 8C450000 */ lw $a1, ($v0) /* 035034 7F000504 AC58FFE4 */ sw $t8, -0x1c($v0) /* 035038 7F000508 54A0FFFA */ bnezl $a1, .L7F0004F4 /* 03503C 7F00050C 8C8F0000 */ lw $t7, ($a0) .L7F000510: /* 035040 7F000510 03E00008 */ jr $ra /* 035044 7F000514 00601025 */ move $v0, $v1 ) #endif #ifdef NONMATCHING void somethingwith_weapon_animation_groups(void) { } #else GLOBAL_ASM( .late_rodata glabel F32_8004ED78 .word 0x3dccccce .text glabel somethingwith_weapon_animation_groups /* 035048 7F000518 27BDFFC0 */ addiu $sp, $sp, -0x40 /* 03504C 7F00051C 3C0E8003 */ lui $t6, %hi(D_8002C914) /* 035050 7F000520 8DCEC914 */ lw $t6, %lo(D_8002C914)($t6) /* 035054 7F000524 AFB10024 */ sw $s1, 0x24($sp) /* 035058 7F000528 2411FFFF */ li $s1, -1 /* 03505C 7F00052C AFBF002C */ sw $ra, 0x2c($sp) /* 035060 7F000530 AFB20028 */ sw $s2, 0x28($sp) /* 035064 7F000534 AFB00020 */ sw $s0, 0x20($sp) /* 035068 7F000538 122E0013 */ beq $s1, $t6, .L7F000588 /* 03506C 7F00053C F7B40018 */ sdc1 $f20, 0x18($sp) /* 035070 7F000540 3C108003 */ lui $s0, %hi(D_8002C914) /* 035074 7F000544 2610C914 */ addiu $s0, %lo(D_8002C914) # addiu $s0, $s0, -0x36ec /* 035078 7F000548 8E04001C */ lw $a0, 0x1c($s0) .L7F00054C: /* 03507C 7F00054C 50800005 */ beql $a0, $zero, .L7F000564 /* 035080 7F000550 8E040024 */ lw $a0, 0x24($s0) /* 035084 7F000554 0FC00134 */ jal sub_GAME_7F0004D0 /* 035088 7F000558 00000000 */ nop /* 03508C 7F00055C AE020020 */ sw $v0, 0x20($s0) /* 035090 7F000560 8E040024 */ lw $a0, 0x24($s0) .L7F000564: /* 035094 7F000564 50800005 */ beql $a0, $zero, .L7F00057C /* 035098 7F000568 8E0F002C */ lw $t7, 0x2c($s0) /* 03509C 7F00056C 0FC00134 */ jal sub_GAME_7F0004D0 /* 0350A0 7F000570 00000000 */ nop /* 0350A4 7F000574 AE020028 */ sw $v0, 0x28($s0) /* 0350A8 7F000578 8E0F002C */ lw $t7, 0x2c($s0) .L7F00057C: /* 0350AC 7F00057C 2610002C */ addiu $s0, $s0, 0x2c /* 0350B0 7F000580 562FFFF2 */ bnel $s1, $t7, .L7F00054C /* 0350B4 7F000584 8E04001C */ lw $a0, 0x1c($s0) .L7F000588: /* 0350B8 7F000588 3C048003 */ lui $a0, %hi(D_8002DEBC) /* 0350BC 7F00058C 0FC00134 */ jal sub_GAME_7F0004D0 /* 0350C0 7F000590 2484DEBC */ addiu $a0, %lo(D_8002DEBC) # addiu $a0, $a0, -0x2144 /* 0350C4 7F000594 3C048003 */ lui $a0, %hi(ptr_rifle_firing_animation_groups) /* 0350C8 7F000598 0FC0011B */ jal sub_GAME_7F00046C /* 0350CC 7F00059C 2484ED28 */ addiu $a0, %lo(ptr_rifle_firing_animation_groups) # addiu $a0, $a0, -0x12d8 /* 0350D0 7F0005A0 3C048003 */ lui $a0, %hi(ptr_pistol_firing_animation_groups) /* 0350D4 7F0005A4 0FC0011B */ jal sub_GAME_7F00046C /* 0350D8 7F0005A8 2484F408 */ addiu $a0, %lo(ptr_pistol_firing_animation_groups) # addiu $a0, $a0, -0xbf8 /* 0350DC 7F0005AC 3C048003 */ lui $a0, %hi(ptr_doubles_firing_animation_groups) /* 0350E0 7F0005B0 0FC0011B */ jal sub_GAME_7F00046C /* 0350E4 7F0005B4 2484F6E0 */ addiu $a0, %lo(ptr_doubles_firing_animation_groups) # addiu $a0, $a0, -0x920 /* 0350E8 7F0005B8 3C048003 */ lui $a0, %hi(ptr_crouched_rifle_firing_animation_groups) /* 0350EC 7F0005BC 0FC0011B */ jal sub_GAME_7F00046C /* 0350F0 7F0005C0 2484F970 */ addiu $a0, %lo(ptr_crouched_rifle_firing_animation_groups) # addiu $a0, $a0, -0x690 /* 0350F4 7F0005C4 3C048003 */ lui $a0, %hi(ptr_crouched_pistol_firing_animation_groups) /* 0350F8 7F0005C8 0FC0011B */ jal sub_GAME_7F00046C /* 0350FC 7F0005CC 2484FCD8 */ addiu $a0, %lo(ptr_crouched_pistol_firing_animation_groups) # addiu $a0, $a0, -0x328 /* 035100 7F0005D0 3C048003 */ lui $a0, %hi(ptr_crouched_doubles_firing_animation_groups) /* 035104 7F0005D4 0FC0011B */ jal sub_GAME_7F00046C /* 035108 7F0005D8 2484FFF8 */ addiu $a0, %lo(ptr_crouched_doubles_firing_animation_groups) # addiu $a0, $a0, -8 /* 03510C 7F0005DC 3C048003 */ lui $a0, %hi(D_80030078) /* 035110 7F0005E0 0FC000CB */ jal sub_GAME_7F00032C /* 035114 7F0005E4 24840078 */ addiu $a0, %lo(D_80030078) # addiu $a0, $a0, 0x78 /* 035118 7F0005E8 3C048003 */ lui $a0, %hi(D_80030660) /* 03511C 7F0005EC 0FC000CB */ jal sub_GAME_7F00032C /* 035120 7F0005F0 24840660 */ addiu $a0, %lo(D_80030660) # addiu $a0, $a0, 0x660 /* 035124 7F0005F4 3C128007 */ lui $s2, %hi(ptr_animation_table) /* 035128 7F0005F8 26529538 */ addiu $s2, %lo(ptr_animation_table) # addiu $s2, $s2, -0x6ac8 /* 03512C 7F0005FC 8E580000 */ lw $t8, ($s2) /* 035130 7F000600 3C110000 */ lui $s1, %hi(0x00004018) # $s1, 0 /* 035134 7F000604 26314018 */ addiu $s1, %lo(0x00004018) # addiu $s1, $s1, 0x4018 /* 035138 7F000608 02382021 */ addu $a0, $s1, $t8 /* 03513C 7F00060C 94860004 */ lhu $a2, 4($a0) /* 035140 7F000610 00002825 */ move $a1, $zero /* 035144 7F000614 0FC000A4 */ jal sub_GAME_7F000290 /* 035148 7F000618 24C6FFFF */ addiu $a2, $a2, -1 /* 03514C 7F00061C 44822000 */ mtc1 $v0, $f4 /* 035150 7F000620 8E500000 */ lw $s0, ($s2) /* 035154 7F000624 3C018005 */ lui $at, %hi(F32_8004ED78) /* 035158 7F000628 468021A0 */ cvt.s.w $f6, $f4 /* 03515C 7F00062C 0230C821 */ addu $t9, $s1, $s0 /* 035160 7F000630 97280004 */ lhu $t0, 4($t9) /* 035164 7F000634 C434ED78 */ lwc1 $f20, %lo(F32_8004ED78)($at) /* 035168 7F000638 44885000 */ mtc1 $t0, $f10 /* 03516C 7F00063C 46143202 */ mul.s $f8, $f6, $f20 /* 035170 7F000640 05010005 */ bgez $t0, .L7F000658 /* 035174 7F000644 46805420 */ cvt.s.w $f16, $f10 /* 035178 7F000648 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 03517C 7F00064C 44819000 */ mtc1 $at, $f18 /* 035180 7F000650 00000000 */ nop /* 035184 7F000654 46128400 */ add.s $f16, $f16, $f18 .L7F000658: /* 035188 7F000658 46104103 */ div.s $f4, $f8, $f16 /* 03518C 7F00065C 3C030000 */ lui $v1, %hi(0x000040D4) # $v1, 0 /* 035190 7F000660 3C018003 */ lui $at, %hi(D_80030984) /* 035194 7F000664 246340D4 */ addiu $v1, %lo(0x000040D4) # addiu $v1, $v1, 0x40d4 /* 035198 7F000668 00702021 */ addu $a0, $v1, $s0 /* 03519C 7F00066C 00002825 */ move $a1, $zero /* 0351A0 7F000670 E4240984 */ swc1 $f4, %lo(D_80030984)($at) /* 0351A4 7F000674 94860004 */ lhu $a2, 4($a0) /* 0351A8 7F000678 AFA30034 */ sw $v1, 0x34($sp) /* 0351AC 7F00067C 0FC000A4 */ jal sub_GAME_7F000290 /* 0351B0 7F000680 24C6FFFF */ addiu $a2, $a2, -1 /* 0351B4 7F000684 44823000 */ mtc1 $v0, $f6 /* 0351B8 7F000688 8FA30034 */ lw $v1, 0x34($sp) /* 0351BC 7F00068C 8E500000 */ lw $s0, ($s2) /* 0351C0 7F000690 468032A0 */ cvt.s.w $f10, $f6 /* 0351C4 7F000694 00704821 */ addu $t1, $v1, $s0 /* 0351C8 7F000698 952A0004 */ lhu $t2, 4($t1) /* 0351CC 7F00069C 448A4000 */ mtc1 $t2, $f8 /* 0351D0 7F0006A0 46145482 */ mul.s $f18, $f10, $f20 /* 0351D4 7F0006A4 05410005 */ bgez $t2, .L7F0006BC /* 0351D8 7F0006A8 46804420 */ cvt.s.w $f16, $f8 /* 0351DC 7F0006AC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 0351E0 7F0006B0 44812000 */ mtc1 $at, $f4 /* 0351E4 7F0006B4 00000000 */ nop /* 0351E8 7F0006B8 46048400 */ add.s $f16, $f16, $f4 .L7F0006BC: /* 0351EC 7F0006BC 46109183 */ div.s $f6, $f18, $f16 /* 0351F0 7F0006C0 3C110000 */ lui $s1, %hi(0x00004070) # $s1, 0 /* 0351F4 7F0006C4 3C018003 */ lui $at, %hi(D_80030988) /* 0351F8 7F0006C8 26314070 */ addiu $s1, %lo(0x00004070) # addiu $s1, $s1, 0x4070 /* 0351FC 7F0006CC 02302021 */ addu $a0, $s1, $s0 /* 035200 7F0006D0 00002825 */ move $a1, $zero /* 035204 7F0006D4 E4260988 */ swc1 $f6, %lo(D_80030988)($at) /* 035208 7F0006D8 94860004 */ lhu $a2, 4($a0) /* 03520C 7F0006DC 0FC000A4 */ jal sub_GAME_7F000290 /* 035210 7F0006E0 24C6FFFF */ addiu $a2, $a2, -1 /* 035214 7F0006E4 44825000 */ mtc1 $v0, $f10 /* 035218 7F0006E8 8E500000 */ lw $s0, ($s2) /* 03521C 7F0006EC 46805220 */ cvt.s.w $f8, $f10 /* 035220 7F0006F0 02305821 */ addu $t3, $s1, $s0 /* 035224 7F0006F4 956C0004 */ lhu $t4, 4($t3) /* 035228 7F0006F8 448C9000 */ mtc1 $t4, $f18 /* 03522C 7F0006FC 46144102 */ mul.s $f4, $f8, $f20 /* 035230 7F000700 05810005 */ bgez $t4, .L7F000718 /* 035234 7F000704 46809420 */ cvt.s.w $f16, $f18 /* 035238 7F000708 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 03523C 7F00070C 44813000 */ mtc1 $at, $f6 /* 035240 7F000710 00000000 */ nop /* 035244 7F000714 46068400 */ add.s $f16, $f16, $f6 .L7F000718: /* 035248 7F000718 46102283 */ div.s $f10, $f4, $f16 /* 03524C 7F00071C 3C030001 */ lui $v1, %hi(0x00008204) # $v1, 1 /* 035250 7F000720 3C018003 */ lui $at, %hi(D_8003098C) /* 035254 7F000724 24638204 */ addiu $v1, %lo(0x00008204) # addiu $v1, $v1, -0x7dfc /* 035258 7F000728 00702021 */ addu $a0, $v1, $s0 /* 03525C 7F00072C 00002825 */ move $a1, $zero /* 035260 7F000730 E42A098C */ swc1 $f10, %lo(D_8003098C)($at) /* 035264 7F000734 94860004 */ lhu $a2, 4($a0) /* 035268 7F000738 AFA30034 */ sw $v1, 0x34($sp) /* 03526C 7F00073C 0FC000A4 */ jal sub_GAME_7F000290 /* 035270 7F000740 24C6FFFF */ addiu $a2, $a2, -1 /* 035274 7F000744 44824000 */ mtc1 $v0, $f8 /* 035278 7F000748 8FA30034 */ lw $v1, 0x34($sp) /* 03527C 7F00074C 8E500000 */ lw $s0, ($s2) /* 035280 7F000750 468044A0 */ cvt.s.w $f18, $f8 /* 035284 7F000754 00706821 */ addu $t5, $v1, $s0 /* 035288 7F000758 95AE0004 */ lhu $t6, 4($t5) /* 03528C 7F00075C 448E2000 */ mtc1 $t6, $f4 /* 035290 7F000760 46149182 */ mul.s $f6, $f18, $f20 /* 035294 7F000764 05C10005 */ bgez $t6, .L7F00077C /* 035298 7F000768 46802420 */ cvt.s.w $f16, $f4 /* 03529C 7F00076C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 0352A0 7F000770 44815000 */ mtc1 $at, $f10 /* 0352A4 7F000774 00000000 */ nop /* 0352A8 7F000778 460A8400 */ add.s $f16, $f16, $f10 .L7F00077C: /* 0352AC 7F00077C 46103203 */ div.s $f8, $f6, $f16 /* 0352B0 7F000780 3C070000 */ lui $a3, %hi(0x0000777C) # $a3, 0 /* 0352B4 7F000784 3C018003 */ lui $at, %hi(D_80030990) /* 0352B8 7F000788 24E7777C */ addiu $a3, %lo(0x0000777C) # addiu $a3, $a3, 0x777c /* 0352BC 7F00078C 00F02021 */ addu $a0, $a3, $s0 /* 0352C0 7F000790 00002825 */ move $a1, $zero /* 0352C4 7F000794 E4280990 */ swc1 $f8, %lo(D_80030990)($at) /* 0352C8 7F000798 94860004 */ lhu $a2, 4($a0) /* 0352CC 7F00079C AFA70038 */ sw $a3, 0x38($sp) /* 0352D0 7F0007A0 0FC000A4 */ jal sub_GAME_7F000290 /* 0352D4 7F0007A4 24C6FFFF */ addiu $a2, $a2, -1 /* 0352D8 7F0007A8 44829000 */ mtc1 $v0, $f18 /* 0352DC 7F0007AC 8FA70038 */ lw $a3, 0x38($sp) /* 0352E0 7F0007B0 8E500000 */ lw $s0, ($s2) /* 0352E4 7F0007B4 46809120 */ cvt.s.w $f4, $f18 /* 0352E8 7F0007B8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 0352EC 7F0007BC 00F07821 */ addu $t7, $a3, $s0 /* 0352F0 7F0007C0 95F80004 */ lhu $t8, 4($t7) /* 0352F4 7F0007C4 44983000 */ mtc1 $t8, $f6 /* 0352F8 7F0007C8 46142282 */ mul.s $f10, $f4, $f20 /* 0352FC 7F0007CC 07010004 */ bgez $t8, .L7F0007E0 /* 035300 7F0007D0 46803420 */ cvt.s.w $f16, $f6 /* 035304 7F0007D4 44814000 */ mtc1 $at, $f8 /* 035308 7F0007D8 00000000 */ nop /* 03530C 7F0007DC 46088400 */ add.s $f16, $f16, $f8 .L7F0007E0: /* 035310 7F0007E0 46105483 */ div.s $f18, $f10, $f16 /* 035314 7F0007E4 3C110000 */ lui $s1, %hi(0x000077D4) # $s1, 0 /* 035318 7F0007E8 3C018003 */ lui $at, %hi(D_80030994) /* 03531C 7F0007EC 263177D4 */ addiu $s1, %lo(0x000077D4) # addiu $s1, $s1, 0x77d4 /* 035320 7F0007F0 02302021 */ addu $a0, $s1, $s0 /* 035324 7F0007F4 00002825 */ move $a1, $zero /* 035328 7F0007F8 E4320994 */ swc1 $f18, %lo(D_80030994)($at) /* 03532C 7F0007FC 94860004 */ lhu $a2, 4($a0) /* 035330 7F000800 0FC000A4 */ jal sub_GAME_7F000290 /* 035334 7F000804 24C6FFFF */ addiu $a2, $a2, -1 /* 035338 7F000808 44822000 */ mtc1 $v0, $f4 /* 03533C 7F00080C 8E500000 */ lw $s0, ($s2) /* 035340 7F000810 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 035344 7F000814 468021A0 */ cvt.s.w $f6, $f4 /* 035348 7F000818 0230C821 */ addu $t9, $s1, $s0 /* 03534C 7F00081C 97280004 */ lhu $t0, 4($t9) /* 035350 7F000820 44885000 */ mtc1 $t0, $f10 /* 035354 7F000824 46143202 */ mul.s $f8, $f6, $f20 /* 035358 7F000828 05010004 */ bgez $t0, .L7F00083C /* 03535C 7F00082C 46805420 */ cvt.s.w $f16, $f10 /* 035360 7F000830 44819000 */ mtc1 $at, $f18 /* 035364 7F000834 00000000 */ nop /* 035368 7F000838 46128400 */ add.s $f16, $f16, $f18 .L7F00083C: /* 03536C 7F00083C 46104103 */ div.s $f4, $f8, $f16 /* 035370 7F000840 3C030001 */ lui $v1, %hi(0x000084C4) # $v1, 1 /* 035374 7F000844 3C018003 */ lui $at, %hi(D_80030998) /* 035378 7F000848 246384C4 */ addiu $v1, %lo(0x000084C4) # addiu $v1, $v1, -0x7b3c /* 03537C 7F00084C 00702021 */ addu $a0, $v1, $s0 /* 035380 7F000850 00002825 */ move $a1, $zero /* 035384 7F000854 E4240998 */ swc1 $f4, %lo(D_80030998)($at) /* 035388 7F000858 94860004 */ lhu $a2, 4($a0) /* 03538C 7F00085C AFA30038 */ sw $v1, 0x38($sp) /* 035390 7F000860 0FC000A4 */ jal sub_GAME_7F000290 /* 035394 7F000864 24C6FFFF */ addiu $a2, $a2, -1 /* 035398 7F000868 44823000 */ mtc1 $v0, $f6 /* 03539C 7F00086C 8FA30038 */ lw $v1, 0x38($sp) /* 0353A0 7F000870 8E500000 */ lw $s0, ($s2) /* 0353A4 7F000874 468032A0 */ cvt.s.w $f10, $f6 /* 0353A8 7F000878 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 0353AC 7F00087C 00704821 */ addu $t1, $v1, $s0 /* 0353B0 7F000880 952A0004 */ lhu $t2, 4($t1) /* 0353B4 7F000884 448A4000 */ mtc1 $t2, $f8 /* 0353B8 7F000888 46145482 */ mul.s $f18, $f10, $f20 /* 0353BC 7F00088C 05410004 */ bgez $t2, .L7F0008A0 /* 0353C0 7F000890 46804420 */ cvt.s.w $f16, $f8 /* 0353C4 7F000894 44812000 */ mtc1 $at, $f4 /* 0353C8 7F000898 00000000 */ nop /* 0353CC 7F00089C 46048400 */ add.s $f16, $f16, $f4 .L7F0008A0: /* 0353D0 7F0008A0 46109183 */ div.s $f6, $f18, $f16 /* 0353D4 7F0008A4 3C070001 */ lui $a3, %hi(0x00008520) # $a3, 1 /* 0353D8 7F0008A8 3C018003 */ lui $at, %hi(D_8003099C) /* 0353DC 7F0008AC 24E78520 */ addiu $a3, %lo(0x00008520) # addiu $a3, $a3, -0x7ae0 /* 0353E0 7F0008B0 00F02021 */ addu $a0, $a3, $s0 /* 0353E4 7F0008B4 00002825 */ move $a1, $zero /* 0353E8 7F0008B8 E426099C */ swc1 $f6, %lo(D_8003099C)($at) /* 0353EC 7F0008BC 94860004 */ lhu $a2, 4($a0) /* 0353F0 7F0008C0 AFA70030 */ sw $a3, 0x30($sp) /* 0353F4 7F0008C4 0FC000A4 */ jal sub_GAME_7F000290 /* 0353F8 7F0008C8 24C6FFFF */ addiu $a2, $a2, -1 /* 0353FC 7F0008CC 44825000 */ mtc1 $v0, $f10 /* 035400 7F0008D0 8FA70030 */ lw $a3, 0x30($sp) /* 035404 7F0008D4 8E500000 */ lw $s0, ($s2) /* 035408 7F0008D8 46805220 */ cvt.s.w $f8, $f10 /* 03540C 7F0008DC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 035410 7F0008E0 00F05821 */ addu $t3, $a3, $s0 /* 035414 7F0008E4 956C0004 */ lhu $t4, 4($t3) /* 035418 7F0008E8 448C9000 */ mtc1 $t4, $f18 /* 03541C 7F0008EC 46144102 */ mul.s $f4, $f8, $f20 /* 035420 7F0008F0 05810004 */ bgez $t4, .L7F000904 /* 035424 7F0008F4 46809420 */ cvt.s.w $f16, $f18 /* 035428 7F0008F8 44813000 */ mtc1 $at, $f6 /* 03542C 7F0008FC 00000000 */ nop /* 035430 7F000900 46068400 */ add.s $f16, $f16, $f6 .L7F000904: /* 035434 7F000904 46102283 */ div.s $f10, $f4, $f16 /* 035438 7F000908 3C018003 */ lui $at, %hi(D_800309A0) /* 03543C 7F00090C 02302021 */ addu $a0, $s1, $s0 /* 035440 7F000910 00002825 */ move $a1, $zero /* 035444 7F000914 E42A09A0 */ swc1 $f10, %lo(D_800309A0)($at) /* 035448 7F000918 94860004 */ lhu $a2, 4($a0) /* 03544C 7F00091C 0FC000A4 */ jal sub_GAME_7F000290 /* 035450 7F000920 24C6FFFF */ addiu $a2, $a2, -1 /* 035454 7F000924 44824000 */ mtc1 $v0, $f8 /* 035458 7F000928 8E4D0000 */ lw $t5, ($s2) /* 03545C 7F00092C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 035460 7F000930 468044A0 */ cvt.s.w $f18, $f8 /* 035464 7F000934 022D7021 */ addu $t6, $s1, $t5 /* 035468 7F000938 95CF0004 */ lhu $t7, 4($t6) /* 03546C 7F00093C 448F2000 */ mtc1 $t7, $f4 /* 035470 7F000940 46149182 */ mul.s $f6, $f18, $f20 /* 035474 7F000944 05E10004 */ bgez $t7, .L7F000958 /* 035478 7F000948 46802420 */ cvt.s.w $f16, $f4 /* 03547C 7F00094C 44815000 */ mtc1 $at, $f10 /* 035480 7F000950 00000000 */ nop /* 035484 7F000954 460A8400 */ add.s $f16, $f16, $f10 .L7F000958: /* 035488 7F000958 46103203 */ div.s $f8, $f6, $f16 /* 03548C 7F00095C 8FBF002C */ lw $ra, 0x2c($sp) /* 035490 7F000960 3C018003 */ lui $at, %hi(D_800309A4) /* 035494 7F000964 D7B40018 */ ldc1 $f20, 0x18($sp) /* 035498 7F000968 8FB00020 */ lw $s0, 0x20($sp) /* 03549C 7F00096C 8FB10024 */ lw $s1, 0x24($sp) /* 0354A0 7F000970 8FB20028 */ lw $s2, 0x28($sp) /* 0354A4 7F000974 27BD0040 */ addiu $sp, $sp, 0x40 /* 0354A8 7F000978 03E00008 */ jr $ra /* 0354AC 7F00097C E42809A4 */ swc1 $f8, %lo(D_800309A4)($at) ) #endif void sub_GAME_7F000980(void) { sub_GAME_7F0009A0(); } #if defined (VERSION_EU) #define POS 0x19 #else #define POS 0x27 #endif void sub_GAME_7F0009A0(void) { u32 *end = &g_Casings[20]; u32 *ptr = &g_Casings[0]; while(end > ptr) { ptr[POS] = 0; ptr += POS+1; } }