diff --git a/asm/non_matchings/code_8006E9C0/func_80070190.s b/asm/non_matchings/code_8006E9C0/func_80070190.s deleted file mode 100644 index 78b2a606b..000000000 --- a/asm/non_matchings/code_8006E9C0/func_80070190.s +++ /dev/null @@ -1,51 +0,0 @@ -glabel func_80070190 -/* 070D90 80070190 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 070D94 80070194 AFB40028 */ sw $s4, 0x28($sp) -/* 070D98 80070198 AFB30024 */ sw $s3, 0x24($sp) -/* 070D9C 8007019C AFB20020 */ sw $s2, 0x20($sp) -/* 070DA0 800701A0 AFB1001C */ sw $s1, 0x1c($sp) -/* 070DA4 800701A4 AFB00018 */ sw $s0, 0x18($sp) -/* 070DA8 800701A8 3C108019 */ lui $s0, %hi(D_8018C030) # $s0, 0x8019 -/* 070DAC 800701AC 3C118018 */ lui $s1, %hi(D_80183EA0) # $s1, 0x8018 -/* 070DB0 800701B0 3C128018 */ lui $s2, %hi(D_80183F28) # $s2, 0x8018 -/* 070DB4 800701B4 3C138019 */ lui $s3, %hi(D_8018BFA8) # $s3, 0x8019 -/* 070DB8 800701B8 3C148019 */ lui $s4, %hi(D_8018C0B0) # $s4, 0x8019 -/* 070DBC 800701BC AFBF002C */ sw $ra, 0x2c($sp) -/* 070DC0 800701C0 2694C0B0 */ addiu $s4, %lo(D_8018C0B0) # addiu $s4, $s4, -0x3f50 -/* 070DC4 800701C4 2673BFA8 */ addiu $s3, %lo(D_8018BFA8) # addiu $s3, $s3, -0x4058 -/* 070DC8 800701C8 26523F28 */ addiu $s2, %lo(D_80183F28) # addiu $s2, $s2, 0x3f28 -/* 070DCC 800701CC 26313EA0 */ addiu $s1, %lo(D_80183EA0) # addiu $s1, $s1, 0x3ea0 -/* 070DD0 800701D0 2610C030 */ addiu $s0, %lo(D_8018C030) # addiu $s0, $s0, -0x3fd0 -.L800701D4: -/* 070DD4 800701D4 0C01C7C0 */ jal find_unused_obj_index -/* 070DD8 800701D8 02202025 */ move $a0, $s1 -/* 070DDC 800701DC 0C01C7C0 */ jal find_unused_obj_index -/* 070DE0 800701E0 02402025 */ move $a0, $s2 -/* 070DE4 800701E4 0C01C7C0 */ jal find_unused_obj_index -/* 070DE8 800701E8 02602025 */ move $a0, $s3 -/* 070DEC 800701EC 0C01C7C0 */ jal find_unused_obj_index -/* 070DF0 800701F0 02002025 */ move $a0, $s0 -/* 070DF4 800701F4 26100004 */ addiu $s0, $s0, 4 -/* 070DF8 800701F8 0214082B */ sltu $at, $s0, $s4 -/* 070DFC 800701FC 26310004 */ addiu $s1, $s1, 4 -/* 070E00 80070200 26520004 */ addiu $s2, $s2, 4 -/* 070E04 80070204 1420FFF3 */ bnez $at, .L800701D4 -/* 070E08 80070208 26730004 */ addiu $s3, $s3, 4 -/* 070E0C 8007020C 3C108018 */ lui $s0, %hi(D_80183DD8) # $s0, 0x8018 -/* 070E10 80070210 3C118018 */ lui $s1, %hi(D_80183DF4) # $s1, 0x8018 -/* 070E14 80070214 26313DF4 */ addiu $s1, %lo(D_80183DF4) # addiu $s1, $s1, 0x3df4 -/* 070E18 80070218 26103DD8 */ addiu $s0, %lo(D_80183DD8) # addiu $s0, $s0, 0x3dd8 -.L8007021C: -/* 070E1C 8007021C 0C01C7C0 */ jal find_unused_obj_index -/* 070E20 80070220 02002025 */ move $a0, $s0 -/* 070E24 80070224 26100004 */ addiu $s0, $s0, 4 -/* 070E28 80070228 1611FFFC */ bne $s0, $s1, .L8007021C -/* 070E2C 8007022C 00000000 */ nop -/* 070E30 80070230 8FBF002C */ lw $ra, 0x2c($sp) -/* 070E34 80070234 8FB00018 */ lw $s0, 0x18($sp) -/* 070E38 80070238 8FB1001C */ lw $s1, 0x1c($sp) -/* 070E3C 8007023C 8FB20020 */ lw $s2, 0x20($sp) -/* 070E40 80070240 8FB30024 */ lw $s3, 0x24($sp) -/* 070E44 80070244 8FB40028 */ lw $s4, 0x28($sp) -/* 070E48 80070248 03E00008 */ jr $ra -/* 070E4C 8007024C 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/asm/non_matchings/code_80071F00/func_8007375C.s b/asm/non_matchings/code_80071F00/func_8007375C.s deleted file mode 100644 index 6eea22f7d..000000000 --- a/asm/non_matchings/code_80071F00/func_8007375C.s +++ /dev/null @@ -1,44 +0,0 @@ -glabel func_8007375C -/* 07435C 8007375C 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 074360 80073760 AFBF001C */ sw $ra, 0x1c($sp) -/* 074364 80073764 AFB00018 */ sw $s0, 0x18($sp) -/* 074368 80073768 AFA5002C */ sw $a1, 0x2c($sp) -/* 07436C 8007376C 00808025 */ move $s0, $a0 -/* 074370 80073770 AFA00024 */ sw $zero, 0x24($sp) -/* 074374 80073774 0C01C89C */ jal func_80072270 -/* 074378 80073778 34058000 */ li $a1, 32768 -/* 07437C 8007377C 1040000A */ beqz $v0, .L800737A8 -/* 074380 80073780 8FAE002C */ lw $t6, 0x2c($sp) -/* 074384 80073784 001078C0 */ sll $t7, $s0, 3 -/* 074388 80073788 01F07823 */ subu $t7, $t7, $s0 -/* 07438C 8007378C 000F7940 */ sll $t7, $t7, 5 -/* 074390 80073790 3C018016 */ lui $at, %hi(D_80165C64) # 0x8016 -/* 074394 80073794 002F0821 */ addu $at, $at, $t7 -/* 074398 80073798 AC2E5C64 */ sw $t6, %lo(D_80165C64)($at) # 0x5c64($at) -/* 07439C 8007379C 02002025 */ move $a0, $s0 -/* 0743A0 800737A0 0C01C870 */ jal func_800721C0 -/* 0743A4 800737A4 34058000 */ li $a1, 32768 -.L800737A8: -/* 0743A8 800737A8 0010C0C0 */ sll $t8, $s0, 3 -/* 0743AC 800737AC 0310C023 */ subu $t8, $t8, $s0 -/* 0743B0 800737B0 3C198016 */ lui $t9, %hi(D_80165C18) # $t9, 0x8016 -/* 0743B4 800737B4 27395C18 */ addiu $t9, %lo(D_80165C18) # addiu $t9, $t9, 0x5c18 -/* 0743B8 800737B8 0018C140 */ sll $t8, $t8, 5 -/* 0743BC 800737BC 03191021 */ addu $v0, $t8, $t9 -/* 0743C0 800737C0 8C48004C */ lw $t0, 0x4c($v0) -/* 0743C4 800737C4 02002025 */ move $a0, $s0 -/* 0743C8 800737C8 2509FFFF */ addiu $t1, $t0, -1 -/* 0743CC 800737CC 05210007 */ bgez $t1, .L800737EC -/* 0743D0 800737D0 AC49004C */ sw $t1, 0x4c($v0) -/* 0743D4 800737D4 0C01C87A */ jal func_800721E8 -/* 0743D8 800737D8 34058000 */ li $a1, 32768 -/* 0743DC 800737DC 0C01CD95 */ jal func_80073654 -/* 0743E0 800737E0 02002025 */ move $a0, $s0 -/* 0743E4 800737E4 240B0001 */ li $t3, 1 -/* 0743E8 800737E8 AFAB0024 */ sw $t3, 0x24($sp) -.L800737EC: -/* 0743EC 800737EC 8FBF001C */ lw $ra, 0x1c($sp) -/* 0743F0 800737F0 8FA20024 */ lw $v0, 0x24($sp) -/* 0743F4 800737F4 8FB00018 */ lw $s0, 0x18($sp) -/* 0743F8 800737F8 03E00008 */ jr $ra -/* 0743FC 800737FC 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/asm/non_matchings/code_80071F00/func_80075574.s b/asm/non_matchings/code_80071F00/func_80075574.s deleted file mode 100644 index da6fdce63..000000000 --- a/asm/non_matchings/code_80071F00/func_80075574.s +++ /dev/null @@ -1,35 +0,0 @@ -glabel func_80075574 -/* 076174 80075574 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 076178 80075578 AFA60030 */ sw $a2, 0x30($sp) -/* 07617C 8007557C 00A03025 */ move $a2, $a1 -/* 076180 80075580 AFBF0014 */ sw $ra, 0x14($sp) -/* 076184 80075584 AFA5002C */ sw $a1, 0x2c($sp) -/* 076188 80075588 AFA40028 */ sw $a0, 0x28($sp) -/* 07618C 8007558C AFA6002C */ sw $a2, 0x2c($sp) -/* 076190 80075590 0C01C8E9 */ jal func_800723A4 -/* 076194 80075594 00002825 */ move $a1, $zero -/* 076198 80075598 8FAE0028 */ lw $t6, 0x28($sp) -/* 07619C 8007559C 8FA6002C */ lw $a2, 0x2c($sp) -/* 0761A0 800755A0 3C188016 */ lui $t8, %hi(D_80165C18) # $t8, 0x8016 -/* 0761A4 800755A4 000E78C0 */ sll $t7, $t6, 3 -/* 0761A8 800755A8 C4C40000 */ lwc1 $f4, ($a2) -/* 0761AC 800755AC 01EE7823 */ subu $t7, $t7, $t6 -/* 0761B0 800755B0 000F7940 */ sll $t7, $t7, 5 -/* 0761B4 800755B4 27185C18 */ addiu $t8, %lo(D_80165C18) # addiu $t8, $t8, 0x5c18 -/* 0761B8 800755B8 01F81821 */ addu $v1, $t7, $t8 -/* 0761BC 800755BC E4640010 */ swc1 $f4, 0x10($v1) -/* 0761C0 800755C0 C4C60004 */ lwc1 $f6, 4($a2) -/* 0761C4 800755C4 C7AA0030 */ lwc1 $f10, 0x30($sp) -/* 0761C8 800755C8 24040064 */ li $a0, 100 -/* 0761CC 800755CC E4660014 */ swc1 $f6, 0x14($v1) -/* 0761D0 800755D0 C4C80008 */ lwc1 $f8, 8($a2) -/* 0761D4 800755D4 AFA30018 */ sw $v1, 0x18($sp) -/* 0761D8 800755D8 E46A003C */ swc1 $f10, 0x3c($v1) -/* 0761DC 800755DC 0C0ADF8D */ jal random_int -/* 0761E0 800755E0 E4680018 */ swc1 $f8, 0x18($v1) -/* 0761E4 800755E4 8FBF0014 */ lw $ra, 0x14($sp) -/* 0761E8 800755E8 8FA30018 */ lw $v1, 0x18($sp) -/* 0761EC 800755EC 2459001E */ addiu $t9, $v0, 0x1e -/* 0761F0 800755F0 27BD0028 */ addiu $sp, $sp, 0x28 -/* 0761F4 800755F4 03E00008 */ jr $ra -/* 0761F8 800755F8 A47900A4 */ sh $t9, 0xa4($v1) diff --git a/asm/non_matchings/code_80071F00/func_800759EC.s b/asm/non_matchings/code_80071F00/func_800759EC.s deleted file mode 100644 index f2bd9942b..000000000 --- a/asm/non_matchings/code_80071F00/func_800759EC.s +++ /dev/null @@ -1,33 +0,0 @@ -glabel func_800759EC -/* 0765EC 800759EC 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0765F0 800759F0 AFA60020 */ sw $a2, 0x20($sp) -/* 0765F4 800759F4 00A03025 */ move $a2, $a1 -/* 0765F8 800759F8 AFBF0014 */ sw $ra, 0x14($sp) -/* 0765FC 800759FC AFA5001C */ sw $a1, 0x1c($sp) -/* 076600 80075A00 AFA40018 */ sw $a0, 0x18($sp) -/* 076604 80075A04 AFA6001C */ sw $a2, 0x1c($sp) -/* 076608 80075A08 0C01C8E9 */ jal func_800723A4 -/* 07660C 80075A0C 00002825 */ move $a1, $zero -/* 076610 80075A10 8FAE0018 */ lw $t6, 0x18($sp) -/* 076614 80075A14 8FA6001C */ lw $a2, 0x1c($sp) -/* 076618 80075A18 3C188016 */ lui $t8, %hi(D_80165C18) # $t8, 0x8016 -/* 07661C 80075A1C 000E78C0 */ sll $t7, $t6, 3 -/* 076620 80075A20 C4C40000 */ lwc1 $f4, ($a2) -/* 076624 80075A24 01EE7823 */ subu $t7, $t7, $t6 -/* 076628 80075A28 000F7940 */ sll $t7, $t7, 5 -/* 07662C 80075A2C 27185C18 */ addiu $t8, %lo(D_80165C18) # addiu $t8, $t8, 0x5c18 -/* 076630 80075A30 01F81021 */ addu $v0, $t7, $t8 -/* 076634 80075A34 E4440010 */ swc1 $f4, 0x10($v0) -/* 076638 80075A38 C4C60004 */ lwc1 $f6, 4($a2) -/* 07663C 80075A3C 8FBF0014 */ lw $ra, 0x14($sp) -/* 076640 80075A40 C7AA0020 */ lwc1 $f10, 0x20($sp) -/* 076644 80075A44 E4460014 */ swc1 $f6, 0x14($v0) -/* 076648 80075A48 C4C80008 */ lwc1 $f8, 8($a2) -/* 07664C 80075A4C 241900FF */ li $t9, 255 -/* 076650 80075A50 24080096 */ li $t0, 150 -/* 076654 80075A54 A45900A4 */ sh $t9, 0xa4($v0) -/* 076658 80075A58 A44800A2 */ sh $t0, 0xa2($v0) -/* 07665C 80075A5C 27BD0018 */ addiu $sp, $sp, 0x18 -/* 076660 80075A60 E44A003C */ swc1 $f10, 0x3c($v0) -/* 076664 80075A64 03E00008 */ jr $ra -/* 076668 80075A68 E4480018 */ swc1 $f8, 0x18($v0) diff --git a/asm/non_matchings/code_80071F00/func_80075E5C.s b/asm/non_matchings/code_80071F00/func_80075E5C.s deleted file mode 100644 index 3fbfd4677..000000000 --- a/asm/non_matchings/code_80071F00/func_80075E5C.s +++ /dev/null @@ -1,52 +0,0 @@ -glabel func_80075E5C -/* 076A5C 80075E5C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 076A60 80075E60 AFA70024 */ sw $a3, 0x24($sp) -/* 076A64 80075E64 00A03825 */ move $a3, $a1 -/* 076A68 80075E68 AFBF0014 */ sw $ra, 0x14($sp) -/* 076A6C 80075E6C AFA5001C */ sw $a1, 0x1c($sp) -/* 076A70 80075E70 AFA40018 */ sw $a0, 0x18($sp) -/* 076A74 80075E74 AFA60020 */ sw $a2, 0x20($sp) -/* 076A78 80075E78 AFA7001C */ sw $a3, 0x1c($sp) -/* 076A7C 80075E7C 0C01C8E9 */ jal func_800723A4 -/* 076A80 80075E80 00002825 */ move $a1, $zero -/* 076A84 80075E84 8FAE0018 */ lw $t6, 0x18($sp) -/* 076A88 80075E88 3C188016 */ lui $t8, %hi(D_80165C18) # $t8, 0x8016 -/* 076A8C 80075E8C 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 076A90 80075E90 000E78C0 */ sll $t7, $t6, 3 -/* 076A94 80075E94 01EE7823 */ subu $t7, $t7, $t6 -/* 076A98 80075E98 44812000 */ mtc1 $at, $f4 -/* 076A9C 80075E9C 000F7940 */ sll $t7, $t7, 5 -/* 076AA0 80075EA0 27185C18 */ addiu $t8, %lo(D_80165C18) # addiu $t8, $t8, 0x5c18 -/* 076AA4 80075EA4 8FA7001C */ lw $a3, 0x1c($sp) -/* 076AA8 80075EA8 01F81021 */ addu $v0, $t7, $t8 -/* 076AAC 80075EAC 24190005 */ li $t9, 5 -/* 076AB0 80075EB0 A05900D5 */ sb $t9, 0xd5($v0) -/* 076AB4 80075EB4 E4440000 */ swc1 $f4, ($v0) -/* 076AB8 80075EB8 C7B00024 */ lwc1 $f16, 0x24($sp) -/* 076ABC 80075EBC C4E60000 */ lwc1 $f6, ($a3) -/* 076AC0 80075EC0 3C014010 */ li $at, 0x40100000 # 2.250000 -/* 076AC4 80075EC4 44812800 */ mtc1 $at, $f5 -/* 076AC8 80075EC8 44802000 */ mtc1 $zero, $f4 -/* 076ACC 80075ECC 460084A1 */ cvt.d.s $f18, $f16 -/* 076AD0 80075ED0 E4460010 */ swc1 $f6, 0x10($v0) -/* 076AD4 80075ED4 C4E80004 */ lwc1 $f8, 4($a3) -/* 076AD8 80075ED8 46249182 */ mul.d $f6, $f18, $f4 -/* 076ADC 80075EDC 8FAA0028 */ lw $t2, 0x28($sp) -/* 076AE0 80075EE0 E4480014 */ swc1 $f8, 0x14($v0) -/* 076AE4 80075EE4 C4EA0008 */ lwc1 $f10, 8($a3) -/* 076AE8 80075EE8 8FBF0014 */ lw $ra, 0x14($sp) -/* 076AEC 80075EEC 97A90022 */ lhu $t1, 0x22($sp) -/* 076AF0 80075EF0 240300FF */ li $v1, 255 -/* 076AF4 80075EF4 24080C00 */ li $t0, 3072 -/* 076AF8 80075EF8 46203220 */ cvt.s.d $f8, $f6 -/* 076AFC 80075EFC 000A5840 */ sll $t3, $t2, 1 -/* 076B00 80075F00 A44800BE */ sh $t0, 0xbe($v0) -/* 076B04 80075F04 A44000C2 */ sh $zero, 0xc2($v0) -/* 076B08 80075F08 E4480034 */ swc1 $f8, 0x34($v0) -/* 076B0C 80075F0C A44300A4 */ sh $v1, 0xa4($v0) -/* 076B10 80075F10 A44300A2 */ sh $v1, 0xa2($v0) -/* 076B14 80075F14 AC4B0048 */ sw $t3, 0x48($v0) -/* 076B18 80075F18 27BD0018 */ addiu $sp, $sp, 0x18 -/* 076B1C 80075F1C E44A0018 */ swc1 $f10, 0x18($v0) -/* 076B20 80075F20 03E00008 */ jr $ra -/* 076B24 80075F24 A44900C0 */ sh $t1, 0xc0($v0) diff --git a/asm/non_matchings/code_80071F00/func_80076194.s b/asm/non_matchings/code_80071F00/func_80076194.s deleted file mode 100644 index 6ae8f90e6..000000000 --- a/asm/non_matchings/code_80071F00/func_80076194.s +++ /dev/null @@ -1,59 +0,0 @@ -glabel func_80076194 -/* 076D94 80076194 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 076D98 80076198 AFA60020 */ sw $a2, 0x20($sp) -/* 076D9C 8007619C 00A03025 */ move $a2, $a1 -/* 076DA0 800761A0 AFBF0014 */ sw $ra, 0x14($sp) -/* 076DA4 800761A4 AFA5001C */ sw $a1, 0x1c($sp) -/* 076DA8 800761A8 AFA40018 */ sw $a0, 0x18($sp) -/* 076DAC 800761AC AFA70024 */ sw $a3, 0x24($sp) -/* 076DB0 800761B0 AFA6001C */ sw $a2, 0x1c($sp) -/* 076DB4 800761B4 0C01C8E9 */ jal func_800723A4 -/* 076DB8 800761B8 00002825 */ move $a1, $zero -/* 076DBC 800761BC 8FAE0018 */ lw $t6, 0x18($sp) -/* 076DC0 800761C0 3C188016 */ lui $t8, %hi(D_80165C18) # $t8, 0x8016 -/* 076DC4 800761C4 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 076DC8 800761C8 000E78C0 */ sll $t7, $t6, 3 -/* 076DCC 800761CC 01EE7823 */ subu $t7, $t7, $t6 -/* 076DD0 800761D0 44812000 */ mtc1 $at, $f4 -/* 076DD4 800761D4 000F7940 */ sll $t7, $t7, 5 -/* 076DD8 800761D8 27185C18 */ addiu $t8, %lo(D_80165C18) # addiu $t8, $t8, 0x5c18 -/* 076DDC 800761DC 8FA6001C */ lw $a2, 0x1c($sp) -/* 076DE0 800761E0 01F81021 */ addu $v0, $t7, $t8 -/* 076DE4 800761E4 24190004 */ li $t9, 4 -/* 076DE8 800761E8 A05900D5 */ sb $t9, 0xd5($v0) -/* 076DEC 800761EC E4440000 */ swc1 $f4, ($v0) -/* 076DF0 800761F0 C4C60000 */ lwc1 $f6, ($a2) -/* 076DF4 800761F4 24080C00 */ li $t0, 3072 -/* 076DF8 800761F8 24092100 */ li $t1, 8448 -/* 076DFC 800761FC E4460010 */ swc1 $f6, 0x10($v0) -/* 076E00 80076200 C4C80004 */ lwc1 $f8, 4($a2) -/* 076E04 80076204 3C0A800E */ lui $t2, %hi(gIsMirrorMode) # $t2, 0x800e -/* 076E08 80076208 252CC000 */ addiu $t4, $t1, -0x4000 -/* 076E0C 8007620C E4480014 */ swc1 $f8, 0x14($v0) -/* 076E10 80076210 C4CA0008 */ lwc1 $f10, 8($a2) -/* 076E14 80076214 A44800BE */ sh $t0, 0xbe($v0) -/* 076E18 80076218 A44000C2 */ sh $zero, 0xc2($v0) -/* 076E1C 8007621C A44900C0 */ sh $t1, 0xc0($v0) -/* 076E20 80076220 E44A0018 */ swc1 $f10, 0x18($v0) -/* 076E24 80076224 8D4AC604 */ lw $t2, %lo(gIsMirrorMode)($t2) -/* 076E28 80076228 3C014020 */ li $at, 0x40200000 # 2.500000 -/* 076E2C 8007622C 51400003 */ beql $t2, $zero, .L8007623C -/* 076E30 80076230 C7B00020 */ lwc1 $f16, 0x20($sp) -/* 076E34 80076234 A44C00C0 */ sh $t4, 0xc0($v0) -/* 076E38 80076238 C7B00020 */ lwc1 $f16, 0x20($sp) -.L8007623C: -/* 076E3C 8007623C 44812800 */ mtc1 $at, $f5 -/* 076E40 80076240 44802000 */ mtc1 $zero, $f4 -/* 076E44 80076244 460084A1 */ cvt.d.s $f18, $f16 -/* 076E48 80076248 8FAD0024 */ lw $t5, 0x24($sp) -/* 076E4C 8007624C 46249182 */ mul.d $f6, $f18, $f4 -/* 076E50 80076250 8FBF0014 */ lw $ra, 0x14($sp) -/* 076E54 80076254 240300FF */ li $v1, 255 -/* 076E58 80076258 000D7040 */ sll $t6, $t5, 1 -/* 076E5C 8007625C A44300A4 */ sh $v1, 0xa4($v0) -/* 076E60 80076260 A44300A2 */ sh $v1, 0xa2($v0) -/* 076E64 80076264 AC4E0048 */ sw $t6, 0x48($v0) -/* 076E68 80076268 27BD0018 */ addiu $sp, $sp, 0x18 -/* 076E6C 8007626C 46203220 */ cvt.s.d $f8, $f6 -/* 076E70 80076270 03E00008 */ jr $ra -/* 076E74 80076274 E4480034 */ swc1 $f8, 0x34($v0) diff --git a/asm/non_matchings/code_80071F00/func_80076538.s b/asm/non_matchings/code_80071F00/func_80076538.s deleted file mode 100644 index 69f5ff6b6..000000000 --- a/asm/non_matchings/code_80071F00/func_80076538.s +++ /dev/null @@ -1,64 +0,0 @@ -glabel func_80076538 -/* 077138 80076538 000470C0 */ sll $t6, $a0, 3 -/* 07713C 8007653C 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 077140 80076540 01C47023 */ subu $t6, $t6, $a0 -/* 077144 80076544 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 077148 80076548 AFB00014 */ sw $s0, 0x14($sp) -/* 07714C 8007654C 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 077150 80076550 000E7140 */ sll $t6, $t6, 5 -/* 077154 80076554 01CF8021 */ addu $s0, $t6, $t7 -/* 077158 80076558 860300AE */ lh $v1, 0xae($s0) -/* 07715C 8007655C AFB10018 */ sw $s1, 0x18($sp) -/* 077160 80076560 00808825 */ move $s1, $a0 -/* 077164 80076564 AFBF001C */ sw $ra, 0x1c($sp) -/* 077168 80076568 10600021 */ beqz $v1, .L800765F0 -/* 07716C 8007656C 00601025 */ move $v0, $v1 -/* 077170 80076570 24010001 */ li $at, 1 -/* 077174 80076574 10410005 */ beq $v0, $at, .L8007658C -/* 077178 80076578 24010002 */ li $at, 2 -/* 07717C 8007657C 10410018 */ beq $v0, $at, .L800765E0 -/* 077180 80076580 260400BE */ addiu $a0, $s0, 0xbe -/* 077184 80076584 1000001A */ b .L800765F0 -/* 077188 80076588 00000000 */ nop -.L8007658C: -/* 07718C 8007658C 921800D5 */ lbu $t8, 0xd5($s0) -/* 077190 80076590 24010004 */ li $at, 4 -/* 077194 80076594 2405000E */ li $a1, 14 -/* 077198 80076598 17010009 */ bne $t8, $at, .L800765C0 -/* 07719C 8007659C 02202025 */ move $a0, $s1 -/* 0771A0 800765A0 0C021C18 */ jal func_80087060 -/* 0771A4 800765A4 02202025 */ move $a0, $s1 -/* 0771A8 800765A8 1040000B */ beqz $v0, .L800765D8 -/* 0771AC 800765AC 00000000 */ nop -/* 0771B0 800765B0 0C021BF5 */ jal func_80086FD4 -/* 0771B4 800765B4 02202025 */ move $a0, $s1 -/* 0771B8 800765B8 10000007 */ b .L800765D8 -/* 0771BC 800765BC 00000000 */ nop -.L800765C0: -/* 0771C0 800765C0 0C021C18 */ jal func_80087060 -/* 0771C4 800765C4 24050002 */ li $a1, 2 -/* 0771C8 800765C8 10400003 */ beqz $v0, .L800765D8 -/* 0771CC 800765CC 00000000 */ nop -/* 0771D0 800765D0 0C021BF5 */ jal func_80086FD4 -/* 0771D4 800765D4 02202025 */ move $a0, $s1 -.L800765D8: -/* 0771D8 800765D8 10000005 */ b .L800765F0 -/* 0771DC 800765DC 860300AE */ lh $v1, 0xae($s0) -.L800765E0: -/* 0771E0 800765E0 00002825 */ move $a1, $zero -/* 0771E4 800765E4 0C01042F */ jal u16_step_down_towards -/* 0771E8 800765E8 24060400 */ li $a2, 1024 -/* 0771EC 800765EC 860300AE */ lh $v1, 0xae($s0) -.L800765F0: -/* 0771F0 800765F0 58600006 */ blezl $v1, .L8007660C -/* 0771F4 800765F4 8FBF001C */ lw $ra, 0x1c($sp) -/* 0771F8 800765F8 0C021E11 */ jal func_80087844 -/* 0771FC 800765FC 02202025 */ move $a0, $s1 -/* 077200 80076600 0C022FC6 */ jal func_8008BF18 -/* 077204 80076604 02202025 */ move $a0, $s1 -/* 077208 80076608 8FBF001C */ lw $ra, 0x1c($sp) -.L8007660C: -/* 07720C 8007660C 8FB00014 */ lw $s0, 0x14($sp) -/* 077210 80076610 8FB10018 */ lw $s1, 0x18($sp) -/* 077214 80076614 03E00008 */ jr $ra -/* 077218 80076618 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/non_matchings/code_80071F00/func_8007675C.s b/asm/non_matchings/code_80071F00/func_8007675C.s deleted file mode 100644 index 92d84673c..000000000 --- a/asm/non_matchings/code_80071F00/func_8007675C.s +++ /dev/null @@ -1,52 +0,0 @@ -glabel func_8007675C -/* 07735C 8007675C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 077360 80076760 AFBF0014 */ sw $ra, 0x14($sp) -/* 077364 80076764 00A03825 */ move $a3, $a1 -/* 077368 80076768 AFA40018 */ sw $a0, 0x18($sp) -/* 07736C 8007676C AFA60020 */ sw $a2, 0x20($sp) -/* 077370 80076770 AFA7001C */ sw $a3, 0x1c($sp) -/* 077374 80076774 0C01C8E9 */ jal func_800723A4 -/* 077378 80076778 00002825 */ move $a1, $zero -/* 07737C 8007677C 8FAE0018 */ lw $t6, 0x18($sp) -/* 077380 80076780 3C014100 */ li $at, 0x41000000 # 8.000000 -/* 077384 80076784 44810000 */ mtc1 $at, $f0 -/* 077388 80076788 000E78C0 */ sll $t7, $t6, 3 -/* 07738C 8007678C 3C188016 */ lui $t8, %hi(D_80165C18) # $t8, 0x8016 -/* 077390 80076790 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 077394 80076794 01EE7823 */ subu $t7, $t7, $t6 -/* 077398 80076798 44812000 */ mtc1 $at, $f4 -/* 07739C 8007679C 000F7940 */ sll $t7, $t7, 5 -/* 0773A0 800767A0 27185C18 */ addiu $t8, %lo(D_80165C18) # addiu $t8, $t8, 0x5c18 -/* 0773A4 800767A4 8FA7001C */ lw $a3, 0x1c($sp) -/* 0773A8 800767A8 01F81021 */ addu $v0, $t7, $t8 -/* 0773AC 800767AC 24190009 */ li $t9, 9 -/* 0773B0 800767B0 A05900D5 */ sb $t9, 0xd5($v0) -/* 0773B4 800767B4 E4440000 */ swc1 $f4, ($v0) -/* 0773B8 800767B8 84E80000 */ lh $t0, ($a3) -/* 0773BC 800767BC 8FBF0014 */ lw $ra, 0x14($sp) -/* 0773C0 800767C0 8FAD0020 */ lw $t5, 0x20($sp) -/* 0773C4 800767C4 44883000 */ mtc1 $t0, $f6 -/* 0773C8 800767C8 240300FF */ li $v1, 255 -/* 0773CC 800767CC 240B0C00 */ li $t3, 3072 -/* 0773D0 800767D0 46803220 */ cvt.s.w $f8, $f6 -/* 0773D4 800767D4 240C2100 */ li $t4, 8448 -/* 0773D8 800767D8 E4480010 */ swc1 $f8, 0x10($v0) -/* 0773DC 800767DC 84E90002 */ lh $t1, 2($a3) -/* 0773E0 800767E0 44895000 */ mtc1 $t1, $f10 -/* 0773E4 800767E4 00000000 */ nop -/* 0773E8 800767E8 46805420 */ cvt.s.w $f16, $f10 -/* 0773EC 800767EC E4500014 */ swc1 $f16, 0x14($v0) -/* 0773F0 800767F0 84EA0004 */ lh $t2, 4($a3) -/* 0773F4 800767F4 A44B00BE */ sh $t3, 0xbe($v0) -/* 0773F8 800767F8 A44C00C0 */ sh $t4, 0xc0($v0) -/* 0773FC 800767FC 448A9000 */ mtc1 $t2, $f18 -/* 077400 80076800 A44000C2 */ sh $zero, 0xc2($v0) -/* 077404 80076804 A44300A4 */ sh $v1, 0xa4($v0) -/* 077408 80076808 46809120 */ cvt.s.w $f4, $f18 -/* 07740C 8007680C A44300A2 */ sh $v1, 0xa2($v0) -/* 077410 80076810 27BD0018 */ addiu $sp, $sp, 0x18 -/* 077414 80076814 E4400034 */ swc1 $f0, 0x34($v0) -/* 077418 80076818 E440003C */ swc1 $f0, 0x3c($v0) -/* 07741C 8007681C AC4D0048 */ sw $t5, 0x48($v0) -/* 077420 80076820 03E00008 */ jr $ra -/* 077424 80076824 E4440018 */ swc1 $f4, 0x18($v0) diff --git a/asm/non_matchings/code_80071F00/func_80076DC4.s b/asm/non_matchings/code_80071F00/func_80076DC4.s deleted file mode 100644 index 5b731bafc..000000000 --- a/asm/non_matchings/code_80071F00/func_80076DC4.s +++ /dev/null @@ -1,22 +0,0 @@ -glabel func_80076DC4 -/* 0779C4 80076DC4 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0779C8 80076DC8 AFBF0014 */ sw $ra, 0x14($sp) -/* 0779CC 80076DCC 0C01C922 */ jal func_80072488 -/* 0779D0 80076DD0 AFA40018 */ sw $a0, 0x18($sp) -/* 0779D4 80076DD4 8FA40018 */ lw $a0, 0x18($sp) -/* 0779D8 80076DD8 3C0F8016 */ lui $t7, %hi(D_80165CED) # 0x8016 -/* 0779DC 80076DDC 2401000B */ li $at, 11 -/* 0779E0 80076DE0 000470C0 */ sll $t6, $a0, 3 -/* 0779E4 80076DE4 01C47023 */ subu $t6, $t6, $a0 -/* 0779E8 80076DE8 000E7140 */ sll $t6, $t6, 5 -/* 0779EC 80076DEC 01EE7821 */ addu $t7, $t7, $t6 -/* 0779F0 80076DF0 91EF5CED */ lbu $t7, %lo(D_80165CED)($t7) # 0x5ced($t7) -/* 0779F4 80076DF4 51E10004 */ beql $t7, $at, .L80076E08 -/* 0779F8 80076DF8 8FBF0014 */ lw $ra, 0x14($sp) -/* 0779FC 80076DFC 0C021B9C */ jal func_80086E70 -/* 077A00 80076E00 00000000 */ nop -/* 077A04 80076E04 8FBF0014 */ lw $ra, 0x14($sp) -.L80076E08: -/* 077A08 80076E08 27BD0018 */ addiu $sp, $sp, 0x18 -/* 077A0C 80076E0C 03E00008 */ jr $ra -/* 077A10 80076E10 00000000 */ nop diff --git a/asm/non_matchings/code_80071F00/func_80076E14.s b/asm/non_matchings/code_80071F00/func_80076E14.s deleted file mode 100644 index 7bf8492b5..000000000 --- a/asm/non_matchings/code_80071F00/func_80076E14.s +++ /dev/null @@ -1,55 +0,0 @@ -glabel func_80076E14 -/* 077A14 80076E14 000470C0 */ sll $t6, $a0, 3 -/* 077A18 80076E18 01C47023 */ subu $t6, $t6, $a0 -/* 077A1C 80076E1C 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 077A20 80076E20 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 077A24 80076E24 000E7140 */ sll $t6, $t6, 5 -/* 077A28 80076E28 01CF1821 */ addu $v1, $t6, $t7 -/* 077A2C 80076E2C 846200A6 */ lh $v0, 0xa6($v1) -/* 077A30 80076E30 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 077A34 80076E34 AFBF0024 */ sw $ra, 0x24($sp) -/* 077A38 80076E38 10400023 */ beqz $v0, .L80076EC8 -/* 077A3C 80076E3C 24010001 */ li $at, 1 -/* 077A40 80076E40 10410007 */ beq $v0, $at, .L80076E60 -/* 077A44 80076E44 24010002 */ li $at, 2 -/* 077A48 80076E48 10410009 */ beq $v0, $at, .L80076E70 -/* 077A4C 80076E4C 24010003 */ li $at, 3 -/* 077A50 80076E50 10410019 */ beq $v0, $at, .L80076EB8 -/* 077A54 80076E54 00000000 */ nop -/* 077A58 80076E58 1000001C */ b .L80076ECC -/* 077A5C 80076E5C 8FBF0024 */ lw $ra, 0x24($sp) -.L80076E60: -/* 077A60 80076E60 0C01DB71 */ jal func_80076DC4 -/* 077A64 80076E64 00000000 */ nop -/* 077A68 80076E68 10000018 */ b .L80076ECC -/* 077A6C 80076E6C 8FBF0024 */ lw $ra, 0x24($sp) -.L80076E70: -/* 077A70 80076E70 847800AE */ lh $t8, 0xae($v1) -/* 077A74 80076E74 246500A0 */ addiu $a1, $v1, 0xa0 -/* 077A78 80076E78 240600FF */ li $a2, 255 -/* 077A7C 80076E7C 2B010002 */ slti $at, $t8, 2 -/* 077A80 80076E80 14200011 */ bnez $at, .L80076EC8 -/* 077A84 80076E84 24070050 */ li $a3, 80 -/* 077A88 80076E88 24190020 */ li $t9, 32 -/* 077A8C 80076E8C AFB90010 */ sw $t9, 0x10($sp) -/* 077A90 80076E90 AFA00014 */ sw $zero, 0x14($sp) -/* 077A94 80076E94 AFA00018 */ sw $zero, 0x18($sp) -/* 077A98 80076E98 0C01CEC0 */ jal func_80073B00 -/* 077A9C 80076E9C AFA40028 */ sw $a0, 0x28($sp) -/* 077AA0 80076EA0 10400009 */ beqz $v0, .L80076EC8 -/* 077AA4 80076EA4 8FA40028 */ lw $a0, 0x28($sp) -/* 077AA8 80076EA8 0C01C922 */ jal func_80072488 -/* 077AAC 80076EAC 00000000 */ nop -/* 077AB0 80076EB0 10000006 */ b .L80076ECC -/* 077AB4 80076EB4 8FBF0024 */ lw $ra, 0x24($sp) -.L80076EB8: -/* 077AB8 80076EB8 0C01C90A */ jal func_80072428 -/* 077ABC 80076EBC AFA40028 */ sw $a0, 0x28($sp) -/* 077AC0 80076EC0 0C021BD8 */ jal func_80086F60 -/* 077AC4 80076EC4 8FA40028 */ lw $a0, 0x28($sp) -.L80076EC8: -/* 077AC8 80076EC8 8FBF0024 */ lw $ra, 0x24($sp) -.L80076ECC: -/* 077ACC 80076ECC 27BD0028 */ addiu $sp, $sp, 0x28 -/* 077AD0 80076ED0 03E00008 */ jr $ra -/* 077AD4 80076ED4 00000000 */ nop diff --git a/asm/non_matchings/code_80071F00/func_80077B3C.s b/asm/non_matchings/code_80071F00/func_80077B3C.s deleted file mode 100644 index 1434dae79..000000000 --- a/asm/non_matchings/code_80071F00/func_80077B3C.s +++ /dev/null @@ -1,42 +0,0 @@ -glabel func_80077B3C -/* 07873C 80077B3C 000470C0 */ sll $t6, $a0, 3 -/* 078740 80077B40 01C47023 */ subu $t6, $t6, $a0 -/* 078744 80077B44 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 078748 80077B48 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 07874C 80077B4C 000E7140 */ sll $t6, $t6, 5 -/* 078750 80077B50 01CF1821 */ addu $v1, $t6, $t7 -/* 078754 80077B54 846200A6 */ lh $v0, 0xa6($v1) -/* 078758 80077B58 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 07875C 80077B5C AFBF0014 */ sw $ra, 0x14($sp) -/* 078760 80077B60 10400016 */ beqz $v0, .L80077BBC -/* 078764 80077B64 24010001 */ li $at, 1 -/* 078768 80077B68 10410007 */ beq $v0, $at, .L80077B88 -/* 07876C 80077B6C 24010002 */ li $at, 2 -/* 078770 80077B70 10410009 */ beq $v0, $at, .L80077B98 -/* 078774 80077B74 24010003 */ li $at, 3 -/* 078778 80077B78 1041000E */ beq $v0, $at, .L80077BB4 -/* 07877C 80077B7C 00000000 */ nop -/* 078780 80077B80 1000000F */ b .L80077BC0 -/* 078784 80077B84 8FBF0014 */ lw $ra, 0x14($sp) -.L80077B88: -/* 078788 80077B88 0C01DEC5 */ jal func_80077B14 -/* 07878C 80077B8C 00000000 */ nop -/* 078790 80077B90 1000000B */ b .L80077BC0 -/* 078794 80077B94 8FBF0014 */ lw $ra, 0x14($sp) -.L80077B98: -/* 078798 80077B98 847800AE */ lh $t8, 0xae($v1) -/* 07879C 80077B9C 57000008 */ bnel $t8, $zero, .L80077BC0 -/* 0787A0 80077BA0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0787A4 80077BA4 0C01C922 */ jal func_80072488 -/* 0787A8 80077BA8 00000000 */ nop -/* 0787AC 80077BAC 10000004 */ b .L80077BC0 -/* 0787B0 80077BB0 8FBF0014 */ lw $ra, 0x14($sp) -.L80077BB4: -/* 0787B4 80077BB4 0C01C90A */ jal func_80072428 -/* 0787B8 80077BB8 00000000 */ nop -.L80077BBC: -/* 0787BC 80077BBC 8FBF0014 */ lw $ra, 0x14($sp) -.L80077BC0: -/* 0787C0 80077BC0 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0787C4 80077BC4 03E00008 */ jr $ra -/* 0787C8 80077BC8 00000000 */ nop diff --git a/asm/non_matchings/code_80071F00/func_8007993C.s b/asm/non_matchings/code_80071F00/func_8007993C.s deleted file mode 100644 index 75e21bc42..000000000 --- a/asm/non_matchings/code_80071F00/func_8007993C.s +++ /dev/null @@ -1,30 +0,0 @@ -glabel func_8007993C -/* 07A53C 8007993C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 07A540 80079940 AFBF0014 */ sw $ra, 0x14($sp) -/* 07A544 80079944 84AE00CA */ lh $t6, 0xca($a1) -/* 07A548 80079948 00A03025 */ move $a2, $a1 -/* 07A54C 8007994C 24050002 */ li $a1, 2 -/* 07A550 80079950 31CF0004 */ andi $t7, $t6, 4 -/* 07A554 80079954 11E0000E */ beqz $t7, .L80079990 -/* 07A558 80079958 00000000 */ nop -/* 07A55C 8007995C AFA40018 */ sw $a0, 0x18($sp) -/* 07A560 80079960 0C01C8A9 */ jal func_800722A4 -/* 07A564 80079964 AFA6001C */ sw $a2, 0x1c($sp) -/* 07A568 80079968 8FA40018 */ lw $a0, 0x18($sp) -/* 07A56C 8007996C 8FA6001C */ lw $a2, 0x1c($sp) -/* 07A570 80079970 3C018016 */ lui $at, %hi(D_80165CB8) # 0x8016 -/* 07A574 80079974 0004C8C0 */ sll $t9, $a0, 3 -/* 07A578 80079978 0324C823 */ subu $t9, $t9, $a0 -/* 07A57C 8007997C 84D800C6 */ lh $t8, 0xc6($a2) -/* 07A580 80079980 0019C940 */ sll $t9, $t9, 5 -/* 07A584 80079984 00390821 */ addu $at, $at, $t9 -/* 07A588 80079988 10000003 */ b .L80079998 -/* 07A58C 8007998C A4385CB8 */ sh $t8, %lo(D_80165CB8)($at) # 0x5cb8($at) -.L80079990: -/* 07A590 80079990 0C01C8B3 */ jal func_800722CC -/* 07A594 80079994 24050002 */ li $a1, 2 -.L80079998: -/* 07A598 80079998 8FBF0014 */ lw $ra, 0x14($sp) -/* 07A59C 8007999C 27BD0018 */ addiu $sp, $sp, 0x18 -/* 07A5A0 800799A0 03E00008 */ jr $ra -/* 07A5A4 800799A4 00000000 */ nop diff --git a/asm/non_matchings/code_80071F00/func_80079A5C.s b/asm/non_matchings/code_80071F00/func_80079A5C.s deleted file mode 100644 index 2a5bde658..000000000 --- a/asm/non_matchings/code_80071F00/func_80079A5C.s +++ /dev/null @@ -1,63 +0,0 @@ -glabel func_80079A5C -/* 07A65C 80079A5C 000470C0 */ sll $t6, $a0, 3 -/* 07A660 80079A60 01C47023 */ subu $t6, $t6, $a0 -/* 07A664 80079A64 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 07A668 80079A68 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 07A66C 80079A6C 000E7140 */ sll $t6, $t6, 5 -/* 07A670 80079A70 01CF1021 */ addu $v0, $t6, $t7 -/* 07A674 80079A74 844300AE */ lh $v1, 0xae($v0) -/* 07A678 80079A78 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 07A67C 80079A7C AFBF0014 */ sw $ra, 0x14($sp) -/* 07A680 80079A80 AFA5001C */ sw $a1, 0x1c($sp) -/* 07A684 80079A84 1060002A */ beqz $v1, .L80079B30 -/* 07A688 80079A88 00803825 */ move $a3, $a0 -/* 07A68C 80079A8C 24010001 */ li $at, 1 -/* 07A690 80079A90 10610009 */ beq $v1, $at, .L80079AB8 -/* 07A694 80079A94 00E02025 */ move $a0, $a3 -/* 07A698 80079A98 24010002 */ li $at, 2 -/* 07A69C 80079A9C 10610012 */ beq $v1, $at, .L80079AE8 -/* 07A6A0 80079AA0 2444002C */ addiu $a0, $v0, 0x2c -/* 07A6A4 80079AA4 24010003 */ li $at, 3 -/* 07A6A8 80079AA8 10610019 */ beq $v1, $at, .L80079B10 -/* 07A6AC 80079AAC 2444002C */ addiu $a0, $v0, 0x2c -/* 07A6B0 80079AB0 10000020 */ b .L80079B34 -/* 07A6B4 80079AB4 8FBF0014 */ lw $ra, 0x14($sp) -.L80079AB8: -/* 07A6B8 80079AB8 44800000 */ mtc1 $zero, $f0 -/* 07A6BC 80079ABC 3C0142A0 */ li $at, 0x42A00000 # 80.000000 -/* 07A6C0 80079AC0 44812000 */ mtc1 $at, $f4 -/* 07A6C4 80079AC4 E4400018 */ swc1 $f0, 0x18($v0) -/* 07A6C8 80079AC8 E4400014 */ swc1 $f0, 0x14($v0) -/* 07A6CC 80079ACC E4400010 */ swc1 $f0, 0x10($v0) -/* 07A6D0 80079AD0 E4400030 */ swc1 $f0, 0x30($v0) -/* 07A6D4 80079AD4 E4400028 */ swc1 $f0, 0x28($v0) -/* 07A6D8 80079AD8 0C021BF5 */ jal func_80086FD4 -/* 07A6DC 80079ADC E444002C */ swc1 $f4, 0x2c($v0) -/* 07A6E0 80079AE0 10000014 */ b .L80079B34 -/* 07A6E4 80079AE4 8FBF0014 */ lw $ra, 0x14($sp) -.L80079AE8: -/* 07A6E8 80079AE8 3C0540A0 */ lui $a1, 0x40a0 -/* 07A6EC 80079AEC 3C063F80 */ lui $a2, 0x3f80 -/* 07A6F0 80079AF0 0C0103CB */ jal f32_step_down_towards -/* 07A6F4 80079AF4 AFA70018 */ sw $a3, 0x18($sp) -/* 07A6F8 80079AF8 1040000D */ beqz $v0, .L80079B30 -/* 07A6FC 80079AFC 8FA70018 */ lw $a3, 0x18($sp) -/* 07A700 80079B00 0C021BD8 */ jal func_80086F60 -/* 07A704 80079B04 00E02025 */ move $a0, $a3 -/* 07A708 80079B08 1000000A */ b .L80079B34 -/* 07A70C 80079B0C 8FBF0014 */ lw $ra, 0x14($sp) -.L80079B10: -/* 07A710 80079B10 3C0542C8 */ lui $a1, 0x42c8 -/* 07A714 80079B14 3C063F80 */ lui $a2, 0x3f80 -/* 07A718 80079B18 0C0103B8 */ jal f32_step_up_towards -/* 07A71C 80079B1C AFA70018 */ sw $a3, 0x18($sp) -/* 07A720 80079B20 10400003 */ beqz $v0, .L80079B30 -/* 07A724 80079B24 8FA70018 */ lw $a3, 0x18($sp) -/* 07A728 80079B28 0C021BD8 */ jal func_80086F60 -/* 07A72C 80079B2C 00E02025 */ move $a0, $a3 -.L80079B30: -/* 07A730 80079B30 8FBF0014 */ lw $ra, 0x14($sp) -.L80079B34: -/* 07A734 80079B34 27BD0018 */ addiu $sp, $sp, 0x18 -/* 07A738 80079B38 03E00008 */ jr $ra -/* 07A73C 80079B3C 00000000 */ nop diff --git a/asm/non_matchings/code_80071F00/func_8007D804.s b/asm/non_matchings/code_80071F00/func_8007D804.s deleted file mode 100644 index 6856ab117..000000000 --- a/asm/non_matchings/code_80071F00/func_8007D804.s +++ /dev/null @@ -1,46 +0,0 @@ -glabel func_8007D804 -/* 07E404 8007D804 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 07E408 8007D808 AFB50028 */ sw $s5, 0x28($sp) -/* 07E40C 8007D80C 3C15800E */ lui $s5, %hi(gPlayerCountSelection1) # $s5, 0x800e -/* 07E410 8007D810 26B5C538 */ addiu $s5, %lo(gPlayerCountSelection1) # addiu $s5, $s5, -0x3ac8 -/* 07E414 8007D814 8EAE0000 */ lw $t6, ($s5) -/* 07E418 8007D818 AFB40024 */ sw $s4, 0x24($sp) -/* 07E41C 8007D81C AFB2001C */ sw $s2, 0x1c($sp) -/* 07E420 8007D820 AFB10018 */ sw $s1, 0x18($sp) -/* 07E424 8007D824 0080A025 */ move $s4, $a0 -/* 07E428 8007D828 AFBF002C */ sw $ra, 0x2c($sp) -/* 07E42C 8007D82C AFB30020 */ sw $s3, 0x20($sp) -/* 07E430 8007D830 AFB00014 */ sw $s0, 0x14($sp) -/* 07E434 8007D834 00009025 */ move $s2, $zero -/* 07E438 8007D838 19C00012 */ blez $t6, .L8007D884 -/* 07E43C 8007D83C 00008825 */ move $s1, $zero -/* 07E440 8007D840 3C13800E */ lui $s3, %hi(camera1) # $s3, 0x800e -/* 07E444 8007D844 2673DB40 */ addiu $s3, %lo(camera1) # addiu $s3, $s3, -0x24c0 -/* 07E448 8007D848 00008025 */ move $s0, $zero -/* 07E44C 8007D84C 8E6F0000 */ lw $t7, ($s3) -.L8007D850: -/* 07E450 8007D850 02802025 */ move $a0, $s4 -/* 07E454 8007D854 24064000 */ li $a2, 16384 -/* 07E458 8007D858 0C022850 */ jal func_8008A140 -/* 07E45C 8007D85C 020F2821 */ addu $a1, $s0, $t7 -/* 07E460 8007D860 50400003 */ beql $v0, $zero, .L8007D870 -/* 07E464 8007D864 8EB80000 */ lw $t8, ($s5) -/* 07E468 8007D868 26520001 */ addiu $s2, $s2, 1 -/* 07E46C 8007D86C 8EB80000 */ lw $t8, ($s5) -.L8007D870: -/* 07E470 8007D870 26310001 */ addiu $s1, $s1, 1 -/* 07E474 8007D874 261000B8 */ addiu $s0, $s0, 0xb8 -/* 07E478 8007D878 0238082A */ slt $at, $s1, $t8 -/* 07E47C 8007D87C 5420FFF4 */ bnel $at, $zero, .L8007D850 -/* 07E480 8007D880 8E6F0000 */ lw $t7, ($s3) -.L8007D884: -/* 07E484 8007D884 8FBF002C */ lw $ra, 0x2c($sp) -/* 07E488 8007D888 02401025 */ move $v0, $s2 -/* 07E48C 8007D88C 8FB2001C */ lw $s2, 0x1c($sp) -/* 07E490 8007D890 8FB00014 */ lw $s0, 0x14($sp) -/* 07E494 8007D894 8FB10018 */ lw $s1, 0x18($sp) -/* 07E498 8007D898 8FB30020 */ lw $s3, 0x20($sp) -/* 07E49C 8007D89C 8FB40024 */ lw $s4, 0x24($sp) -/* 07E4A0 8007D8A0 8FB50028 */ lw $s5, 0x28($sp) -/* 07E4A4 8007D8A4 03E00008 */ jr $ra -/* 07E4A8 8007D8A8 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/asm/non_matchings/code_80071F00/func_8007DA74.s b/asm/non_matchings/code_80071F00/func_8007DA74.s deleted file mode 100644 index d2b44d257..000000000 --- a/asm/non_matchings/code_80071F00/func_8007DA74.s +++ /dev/null @@ -1,35 +0,0 @@ -glabel func_8007DA74 -/* 07E674 8007DA74 000478C0 */ sll $t7, $a0, 3 -/* 07E678 8007DA78 01E47823 */ subu $t7, $t7, $a0 -/* 07E67C 8007DA7C 3C188016 */ lui $t8, %hi(D_80165C18) # $t8, 0x8016 -/* 07E680 8007DA80 27185C18 */ addiu $t8, %lo(D_80165C18) # addiu $t8, $t8, 0x5c18 -/* 07E684 8007DA84 000F7940 */ sll $t7, $t7, 5 -/* 07E688 8007DA88 01F81821 */ addu $v1, $t7, $t8 -/* 07E68C 8007DA8C 846200AE */ lh $v0, 0xae($v1) -/* 07E690 8007DA90 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 07E694 8007DA94 AFBF0014 */ sw $ra, 0x14($sp) -/* 07E698 8007DA98 10400009 */ beqz $v0, .L8007DAC0 -/* 07E69C 8007DA9C AFA40020 */ sw $a0, 0x20($sp) -/* 07E6A0 8007DAA0 24010001 */ li $at, 1 -/* 07E6A4 8007DAA4 14410006 */ bne $v0, $at, .L8007DAC0 -/* 07E6A8 8007DAA8 2405001E */ li $a1, 30 -/* 07E6AC 8007DAAC 0C021C18 */ jal func_80087060 -/* 07E6B0 8007DAB0 AFA30018 */ sw $v1, 0x18($sp) -/* 07E6B4 8007DAB4 10400002 */ beqz $v0, .L8007DAC0 -/* 07E6B8 8007DAB8 8FA30018 */ lw $v1, 0x18($sp) -/* 07E6BC 8007DABC A46000C6 */ sh $zero, 0xc6($v1) -.L8007DAC0: -/* 07E6C0 8007DAC0 946400BE */ lhu $a0, 0xbe($v1) -/* 07E6C4 8007DAC4 946500C6 */ lhu $a1, 0xc6($v1) -/* 07E6C8 8007DAC8 0C0105ED */ jal func_800417B4 -/* 07E6CC 8007DACC AFA30018 */ sw $v1, 0x18($sp) -/* 07E6D0 8007DAD0 8FA30018 */ lw $v1, 0x18($sp) -/* 07E6D4 8007DAD4 8FA40020 */ lw $a0, 0x20($sp) -/* 07E6D8 8007DAD8 0C021E11 */ jal func_80087844 -/* 07E6DC 8007DADC A46200BE */ sh $v0, 0xbe($v1) -/* 07E6E0 8007DAE0 0C022FC6 */ jal func_8008BF18 -/* 07E6E4 8007DAE4 8FA40020 */ lw $a0, 0x20($sp) -/* 07E6E8 8007DAE8 8FBF0014 */ lw $ra, 0x14($sp) -/* 07E6EC 8007DAEC 27BD0020 */ addiu $sp, $sp, 0x20 -/* 07E6F0 8007DAF0 03E00008 */ jr $ra -/* 07E6F4 8007DAF4 00000000 */ nop diff --git a/asm/non_matchings/code_80071F00/func_8007DAF8.s b/asm/non_matchings/code_80071F00/func_8007DAF8.s deleted file mode 100644 index 66a6dc3c1..000000000 --- a/asm/non_matchings/code_80071F00/func_8007DAF8.s +++ /dev/null @@ -1,23 +0,0 @@ -glabel func_8007DAF8 -/* 07E6F8 8007DAF8 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 07E6FC 8007DAFC 24010001 */ li $at, 1 -/* 07E700 8007DB00 10A10006 */ beq $a1, $at, .L8007DB1C -/* 07E704 8007DB04 AFBF0014 */ sw $ra, 0x14($sp) -/* 07E708 8007DB08 24010002 */ li $at, 2 -/* 07E70C 8007DB0C 10A10007 */ beq $a1, $at, .L8007DB2C -/* 07E710 8007DB10 00000000 */ nop -/* 07E714 8007DB14 10000008 */ b .L8007DB38 -/* 07E718 8007DB18 8FBF0014 */ lw $ra, 0x14($sp) -.L8007DB1C: -/* 07E71C 8007DB1C 0C01F69D */ jal func_8007DA74 -/* 07E720 8007DB20 00000000 */ nop -/* 07E724 8007DB24 10000004 */ b .L8007DB38 -/* 07E728 8007DB28 8FBF0014 */ lw $ra, 0x14($sp) -.L8007DB2C: -/* 07E72C 8007DB2C 0C01F693 */ jal func_8007DA4C -/* 07E730 8007DB30 00000000 */ nop -/* 07E734 8007DB34 8FBF0014 */ lw $ra, 0x14($sp) -.L8007DB38: -/* 07E738 8007DB38 27BD0018 */ addiu $sp, $sp, 0x18 -/* 07E73C 8007DB3C 03E00008 */ jr $ra -/* 07E740 8007DB40 00000000 */ nop diff --git a/asm/non_matchings/code_80071F00/func_8007E50C.s b/asm/non_matchings/code_80071F00/func_8007E50C.s deleted file mode 100644 index e2e14e8c7..000000000 --- a/asm/non_matchings/code_80071F00/func_8007E50C.s +++ /dev/null @@ -1,38 +0,0 @@ -glabel func_8007E50C -/* 07F10C 8007E50C 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 07F110 8007E510 AFBF001C */ sw $ra, 0x1c($sp) -/* 07F114 8007E514 AFB00018 */ sw $s0, 0x18($sp) -/* 07F118 8007E518 AFA5002C */ sw $a1, 0x2c($sp) -/* 07F11C 8007E51C 00808025 */ move $s0, $a0 -/* 07F120 8007E520 AFA60030 */ sw $a2, 0x30($sp) -/* 07F124 8007E524 AFA00024 */ sw $zero, 0x24($sp) -/* 07F128 8007E528 0C01C8D5 */ jal func_80072354 -/* 07F12C 8007E52C 24050004 */ li $a1, 4 -/* 07F130 8007E530 10400015 */ beqz $v0, .L8007E588 -/* 07F134 8007E534 02002025 */ move $a0, $s0 -/* 07F138 8007E538 8FA5002C */ lw $a1, 0x2c($sp) -/* 07F13C 8007E53C 0C022296 */ jal func_80088A58 -/* 07F140 8007E540 3C064396 */ lui $a2, 0x4396 -/* 07F144 8007E544 10400010 */ beqz $v0, .L8007E588 -/* 07F148 8007E548 02002025 */ move $a0, $s0 -/* 07F14C 8007E54C 8FA5002C */ lw $a1, 0x2c($sp) -/* 07F150 8007E550 8FA60030 */ lw $a2, 0x30($sp) -/* 07F154 8007E554 0C02282D */ jal func_8008A0B4 -/* 07F158 8007E558 24074000 */ li $a3, 16384 -/* 07F15C 8007E55C 1040000A */ beqz $v0, .L8007E588 -/* 07F160 8007E560 02002025 */ move $a0, $s0 -/* 07F164 8007E564 8FA50030 */ lw $a1, 0x30($sp) -/* 07F168 8007E568 0C022818 */ jal func_8008A060 -/* 07F16C 8007E56C 24061555 */ li $a2, 5461 -/* 07F170 8007E570 10400005 */ beqz $v0, .L8007E588 -/* 07F174 8007E574 02002025 */ move $a0, $s0 -/* 07F178 8007E578 0C01C8A9 */ jal func_800722A4 -/* 07F17C 8007E57C 24050004 */ li $a1, 4 -/* 07F180 8007E580 240E0001 */ li $t6, 1 -/* 07F184 8007E584 AFAE0024 */ sw $t6, 0x24($sp) -.L8007E588: -/* 07F188 8007E588 8FBF001C */ lw $ra, 0x1c($sp) -/* 07F18C 8007E58C 8FA20024 */ lw $v0, 0x24($sp) -/* 07F190 8007E590 8FB00018 */ lw $s0, 0x18($sp) -/* 07F194 8007E594 03E00008 */ jr $ra -/* 07F198 8007E598 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/asm/non_matchings/code_80071F00/func_8007F660.s b/asm/non_matchings/code_80071F00/func_8007F660.s deleted file mode 100644 index 885f8d5d6..000000000 --- a/asm/non_matchings/code_80071F00/func_8007F660.s +++ /dev/null @@ -1,26 +0,0 @@ -glabel func_8007F660 -/* 080260 8007F660 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 080264 8007F664 AFBF0014 */ sw $ra, 0x14($sp) -/* 080268 8007F668 AFA5001C */ sw $a1, 0x1c($sp) -/* 08026C 8007F66C AFA40018 */ sw $a0, 0x18($sp) -/* 080270 8007F670 AFA60020 */ sw $a2, 0x20($sp) -/* 080274 8007F674 0C01C8A9 */ jal func_800722A4 -/* 080278 8007F678 24050008 */ li $a1, 8 -/* 08027C 8007F67C 0C021B9C */ jal func_80086E70 -/* 080280 8007F680 8FA40018 */ lw $a0, 0x18($sp) -/* 080284 8007F684 8FAE0018 */ lw $t6, 0x18($sp) -/* 080288 8007F688 3C188016 */ lui $t8, %hi(D_80165C18) # $t8, 0x8016 -/* 08028C 8007F68C 8FBF0014 */ lw $ra, 0x14($sp) -/* 080290 8007F690 000E78C0 */ sll $t7, $t6, 3 -/* 080294 8007F694 01EE7823 */ subu $t7, $t7, $t6 -/* 080298 8007F698 000F7940 */ sll $t7, $t7, 5 -/* 08029C 8007F69C 27185C18 */ addiu $t8, %lo(D_80165C18) # addiu $t8, $t8, 0x5c18 -/* 0802A0 8007F6A0 8FA8001C */ lw $t0, 0x1c($sp) -/* 0802A4 8007F6A4 8FA90020 */ lw $t1, 0x20($sp) -/* 0802A8 8007F6A8 01F81021 */ addu $v0, $t7, $t8 -/* 0802AC 8007F6AC 24190001 */ li $t9, 1 -/* 0802B0 8007F6B0 A05900DD */ sb $t9, 0xdd($v0) -/* 0802B4 8007F6B4 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0802B8 8007F6B8 A04800D1 */ sb $t0, 0xd1($v0) -/* 0802BC 8007F6BC 03E00008 */ jr $ra -/* 0802C0 8007F6C0 AC490048 */ sw $t1, 0x48($v0) diff --git a/asm/non_matchings/code_80071F00/func_8007F6C4.s b/asm/non_matchings/code_80071F00/func_8007F6C4.s deleted file mode 100644 index 7bea3624d..000000000 --- a/asm/non_matchings/code_80071F00/func_8007F6C4.s +++ /dev/null @@ -1,39 +0,0 @@ -glabel func_8007F6C4 -/* 0802C4 8007F6C4 000578C0 */ sll $t7, $a1, 3 -/* 0802C8 8007F6C8 01E57823 */ subu $t7, $t7, $a1 -/* 0802CC 8007F6CC 000F7900 */ sll $t7, $t7, 4 -/* 0802D0 8007F6D0 01E57823 */ subu $t7, $t7, $a1 -/* 0802D4 8007F6D4 3C18800E */ lui $t8, %hi(gPlayerOne) # $t8, 0x800e -/* 0802D8 8007F6D8 8F18C4DC */ lw $t8, %lo(gPlayerOne)($t8) -/* 0802DC 8007F6DC 000F7880 */ sll $t7, $t7, 2 -/* 0802E0 8007F6E0 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0802E4 8007F6E4 01E57823 */ subu $t7, $t7, $a1 -/* 0802E8 8007F6E8 000F78C0 */ sll $t7, $t7, 3 -/* 0802EC 8007F6EC AFBF0014 */ sw $ra, 0x14($sp) -/* 0802F0 8007F6F0 AFA50024 */ sw $a1, 0x24($sp) -/* 0802F4 8007F6F4 01F8C821 */ addu $t9, $t7, $t8 -/* 0802F8 8007F6F8 AFA40020 */ sw $a0, 0x20($sp) -/* 0802FC 8007F6FC AFB9001C */ sw $t9, 0x1c($sp) -/* 080300 8007F700 0C01C8A9 */ jal func_800722A4 -/* 080304 8007F704 24050008 */ li $a1, 8 -/* 080308 8007F708 0C021B9C */ jal func_80086E70 -/* 08030C 8007F70C 8FA40020 */ lw $a0, 0x20($sp) -/* 080310 8007F710 8FA80020 */ lw $t0, 0x20($sp) -/* 080314 8007F714 3C0A8016 */ lui $t2, %hi(D_80165C18) # $t2, 0x8016 -/* 080318 8007F718 8FAC001C */ lw $t4, 0x1c($sp) -/* 08031C 8007F71C 000848C0 */ sll $t1, $t0, 3 -/* 080320 8007F720 01284823 */ subu $t1, $t1, $t0 -/* 080324 8007F724 00094940 */ sll $t1, $t1, 5 -/* 080328 8007F728 254A5C18 */ addiu $t2, %lo(D_80165C18) # addiu $t2, $t2, 0x5c18 -/* 08032C 8007F72C 012A1021 */ addu $v0, $t1, $t2 -/* 080330 8007F730 240B0002 */ li $t3, 2 -/* 080334 8007F734 A04B00DD */ sb $t3, 0xdd($v0) -/* 080338 8007F738 C4460010 */ lwc1 $f6, 0x10($v0) -/* 08033C 8007F73C C5840014 */ lwc1 $f4, 0x14($t4) -/* 080340 8007F740 8FBF0014 */ lw $ra, 0x14($sp) -/* 080344 8007F744 8FAD0024 */ lw $t5, 0x24($sp) -/* 080348 8007F748 46062201 */ sub.s $f8, $f4, $f6 -/* 08034C 8007F74C 27BD0020 */ addiu $sp, $sp, 0x20 -/* 080350 8007F750 A04D00D1 */ sb $t5, 0xd1($v0) -/* 080354 8007F754 03E00008 */ jr $ra -/* 080358 8007F758 E448001C */ swc1 $f8, 0x1c($v0) diff --git a/asm/non_matchings/code_80071F00/func_8007FEA4.s b/asm/non_matchings/code_80071F00/func_8007FEA4.s deleted file mode 100644 index ac3165a99..000000000 --- a/asm/non_matchings/code_80071F00/func_8007FEA4.s +++ /dev/null @@ -1,51 +0,0 @@ -glabel func_8007FEA4 -/* 080AA4 8007FEA4 000478C0 */ sll $t7, $a0, 3 -/* 080AA8 8007FEA8 01E47823 */ subu $t7, $t7, $a0 -/* 080AAC 8007FEAC 3C188016 */ lui $t8, %hi(D_80165C18) # $t8, 0x8016 -/* 080AB0 8007FEB0 27185C18 */ addiu $t8, %lo(D_80165C18) # addiu $t8, $t8, 0x5c18 -/* 080AB4 8007FEB4 000F7940 */ sll $t7, $t7, 5 -/* 080AB8 8007FEB8 01F81821 */ addu $v1, $t7, $t8 -/* 080ABC 8007FEBC 846200AE */ lh $v0, 0xae($v1) -/* 080AC0 8007FEC0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 080AC4 8007FEC4 AFBF0014 */ sw $ra, 0x14($sp) -/* 080AC8 8007FEC8 10400020 */ beqz $v0, .L8007FF4C -/* 080ACC 8007FECC AFA40018 */ sw $a0, 0x18($sp) -/* 080AD0 8007FED0 24010001 */ li $at, 1 -/* 080AD4 8007FED4 10410008 */ beq $v0, $at, .L8007FEF8 -/* 080AD8 8007FED8 24640028 */ addiu $a0, $v1, 0x28 -/* 080ADC 8007FEDC 24010002 */ li $at, 2 -/* 080AE0 8007FEE0 1041001A */ beq $v0, $at, .L8007FF4C -/* 080AE4 8007FEE4 24010003 */ li $at, 3 -/* 080AE8 8007FEE8 1041000E */ beq $v0, $at, .L8007FF24 -/* 080AEC 8007FEEC 24640028 */ addiu $a0, $v1, 0x28 -/* 080AF0 8007FEF0 10000017 */ b .L8007FF50 -/* 080AF4 8007FEF4 8FBF0014 */ lw $ra, 0x14($sp) -.L8007FEF8: -/* 080AF8 8007FEF8 8C65001C */ lw $a1, 0x1c($v1) -/* 080AFC 8007FEFC 0C0104EE */ jal f32_step_towards -/* 080B00 8007FF00 3C0640A0 */ lui $a2, 0x40a0 -/* 080B04 8007FF04 10400011 */ beqz $v0, .L8007FF4C -/* 080B08 8007FF08 8FA40018 */ lw $a0, 0x18($sp) -/* 080B0C 8007FF0C 0C01C9B3 */ jal func_800726CC -/* 080B10 8007FF10 24050003 */ li $a1, 3 -/* 080B14 8007FF14 0C021BF5 */ jal func_80086FD4 -/* 080B18 8007FF18 8FA40018 */ lw $a0, 0x18($sp) -/* 080B1C 8007FF1C 1000000C */ b .L8007FF50 -/* 080B20 8007FF20 8FBF0014 */ lw $ra, 0x14($sp) -.L8007FF24: -/* 080B24 8007FF24 24050000 */ li $a1, 0 -/* 080B28 8007FF28 0C0104EE */ jal f32_step_towards -/* 080B2C 8007FF2C 3C0640A0 */ lui $a2, 0x40a0 -/* 080B30 8007FF30 50400007 */ beql $v0, $zero, .L8007FF50 -/* 080B34 8007FF34 8FBF0014 */ lw $ra, 0x14($sp) -/* 080B38 8007FF38 0C021BF5 */ jal func_80086FD4 -/* 080B3C 8007FF3C 8FA40018 */ lw $a0, 0x18($sp) -/* 080B40 8007FF40 8FA40018 */ lw $a0, 0x18($sp) -/* 080B44 8007FF44 0C01C8B3 */ jal func_800722CC -/* 080B48 8007FF48 24050008 */ li $a1, 8 -.L8007FF4C: -/* 080B4C 8007FF4C 8FBF0014 */ lw $ra, 0x14($sp) -.L8007FF50: -/* 080B50 8007FF50 27BD0018 */ addiu $sp, $sp, 0x18 -/* 080B54 8007FF54 03E00008 */ jr $ra -/* 080B58 8007FF58 00000000 */ nop diff --git a/asm/non_matchings/code_80071F00/func_800806BC.s b/asm/non_matchings/code_80071F00/func_800806BC.s deleted file mode 100644 index b79eeaf69..000000000 --- a/asm/non_matchings/code_80071F00/func_800806BC.s +++ /dev/null @@ -1,57 +0,0 @@ -glabel func_800806BC -/* 0812BC 800806BC 000470C0 */ sll $t6, $a0, 3 -/* 0812C0 800806C0 01C47023 */ subu $t6, $t6, $a0 -/* 0812C4 800806C4 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 0812C8 800806C8 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 0812CC 800806CC 000E7140 */ sll $t6, $t6, 5 -/* 0812D0 800806D0 01CF1821 */ addu $v1, $t6, $t7 -/* 0812D4 800806D4 846200AE */ lh $v0, 0xae($v1) -/* 0812D8 800806D8 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0812DC 800806DC AFBF0014 */ sw $ra, 0x14($sp) -/* 0812E0 800806E0 10400026 */ beqz $v0, .L8008077C -/* 0812E4 800806E4 00803825 */ move $a3, $a0 -/* 0812E8 800806E8 24010001 */ li $at, 1 -/* 0812EC 800806EC 10410006 */ beq $v0, $at, .L80080708 -/* 0812F0 800806F0 24640030 */ addiu $a0, $v1, 0x30 -/* 0812F4 800806F4 24010002 */ li $at, 2 -/* 0812F8 800806F8 10410012 */ beq $v0, $at, .L80080744 -/* 0812FC 800806FC 24640030 */ addiu $a0, $v1, 0x30 -/* 081300 80080700 1000001F */ b .L80080780 -/* 081304 80080704 8FBF0014 */ lw $ra, 0x14($sp) -.L80080708: -/* 081308 80080708 3C05437A */ lui $a1, 0x437a -/* 08130C 8008070C 8C660040 */ lw $a2, 0x40($v1) -/* 081310 80080710 AFA30018 */ sw $v1, 0x18($sp) -/* 081314 80080714 0C0104EE */ jal f32_step_towards -/* 081318 80080718 AFA70020 */ sw $a3, 0x20($sp) -/* 08131C 8008071C 8FA30018 */ lw $v1, 0x18($sp) -/* 081320 80080720 10400016 */ beqz $v0, .L8008077C -/* 081324 80080724 8FA70020 */ lw $a3, 0x20($sp) -/* 081328 80080728 C4640040 */ lwc1 $f4, 0x40($v1) -/* 08132C 8008072C 00E02025 */ move $a0, $a3 -/* 081330 80080730 46002187 */ neg.s $f6, $f4 -/* 081334 80080734 0C021BF5 */ jal func_80086FD4 -/* 081338 80080738 E4660040 */ swc1 $f6, 0x40($v1) -/* 08133C 8008073C 10000010 */ b .L80080780 -/* 081340 80080740 8FBF0014 */ lw $ra, 0x14($sp) -.L80080744: -/* 081344 80080744 24050000 */ li $a1, 0 -/* 081348 80080748 8C660040 */ lw $a2, 0x40($v1) -/* 08134C 8008074C AFA30018 */ sw $v1, 0x18($sp) -/* 081350 80080750 0C0104EE */ jal f32_step_towards -/* 081354 80080754 AFA70020 */ sw $a3, 0x20($sp) -/* 081358 80080758 8FA30018 */ lw $v1, 0x18($sp) -/* 08135C 8008075C 10400007 */ beqz $v0, .L8008077C -/* 081360 80080760 8FA70020 */ lw $a3, 0x20($sp) -/* 081364 80080764 C4680040 */ lwc1 $f8, 0x40($v1) -/* 081368 80080768 00E02025 */ move $a0, $a3 -/* 08136C 8008076C 24050001 */ li $a1, 1 -/* 081370 80080770 46004287 */ neg.s $f10, $f8 -/* 081374 80080774 0C021C07 */ jal func_8008701C -/* 081378 80080778 E46A0040 */ swc1 $f10, 0x40($v1) -.L8008077C: -/* 08137C 8008077C 8FBF0014 */ lw $ra, 0x14($sp) -.L80080780: -/* 081380 80080780 27BD0020 */ addiu $sp, $sp, 0x20 -/* 081384 80080784 03E00008 */ jr $ra -/* 081388 80080788 00000000 */ nop diff --git a/asm/non_matchings/code_80071F00/func_8008085C.s b/asm/non_matchings/code_80071F00/func_8008085C.s deleted file mode 100644 index a9bcadd37..000000000 --- a/asm/non_matchings/code_80071F00/func_8008085C.s +++ /dev/null @@ -1,32 +0,0 @@ -glabel func_8008085C -/* 08145C 8008085C 000478C0 */ sll $t7, $a0, 3 -/* 081460 80080860 01E47823 */ subu $t7, $t7, $a0 -/* 081464 80080864 000F7940 */ sll $t7, $t7, 5 -/* 081468 80080868 3C028016 */ lui $v0, %hi(D_80165CF5) # 0x8016 -/* 08146C 8008086C 004F1021 */ addu $v0, $v0, $t7 -/* 081470 80080870 90425CF5 */ lbu $v0, %lo(D_80165CF5)($v0) # 0x5cf5($v0) -/* 081474 80080874 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 081478 80080878 24010001 */ li $at, 1 -/* 08147C 8008087C AFBF0014 */ sw $ra, 0x14($sp) -/* 081480 80080880 10410006 */ beq $v0, $at, .L8008089C -/* 081484 80080884 AFA40018 */ sw $a0, 0x18($sp) -/* 081488 80080888 24010002 */ li $at, 2 -/* 08148C 8008088C 10410007 */ beq $v0, $at, .L800808AC -/* 081490 80080890 00000000 */ nop -/* 081494 80080894 10000007 */ b .L800808B4 -/* 081498 80080898 00000000 */ nop -.L8008089C: -/* 08149C 8008089C 0C0201AF */ jal func_800806BC -/* 0814A0 800808A0 8FA40018 */ lw $a0, 0x18($sp) -/* 0814A4 800808A4 10000003 */ b .L800808B4 -/* 0814A8 800808A8 00000000 */ nop -.L800808AC: -/* 0814AC 800808AC 0C0201E3 */ jal func_8008078C -/* 0814B0 800808B0 8FA40018 */ lw $a0, 0x18($sp) -.L800808B4: -/* 0814B4 800808B4 0C022FC6 */ jal func_8008BF18 -/* 0814B8 800808B8 8FA40018 */ lw $a0, 0x18($sp) -/* 0814BC 800808BC 8FBF0014 */ lw $ra, 0x14($sp) -/* 0814C0 800808C0 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0814C4 800808C4 03E00008 */ jr $ra -/* 0814C8 800808C8 00000000 */ nop diff --git a/asm/non_matchings/code_80071F00/func_80080A14.s b/asm/non_matchings/code_80071F00/func_80080A14.s deleted file mode 100644 index 90fc83638..000000000 --- a/asm/non_matchings/code_80071F00/func_80080A14.s +++ /dev/null @@ -1,16 +0,0 @@ -glabel func_80080A14 -/* 081614 80080A14 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 081618 80080A18 AFBF0014 */ sw $ra, 0x14($sp) -/* 08161C 80080A1C AFA5001C */ sw $a1, 0x1c($sp) -/* 081620 80080A20 0C022296 */ jal func_80088A58 -/* 081624 80080A24 3C064140 */ lui $a2, 0x4140 -/* 081628 80080A28 10400004 */ beqz $v0, .L80080A3C -/* 08162C 80080A2C 8FA5001C */ lw $a1, 0x1c($sp) -/* 081630 80080A30 8CAE01AC */ lw $t6, 0x1ac($a1) -/* 081634 80080A34 35CF0003 */ ori $t7, $t6, 3 -/* 081638 80080A38 ACAF01AC */ sw $t7, 0x1ac($a1) -.L80080A3C: -/* 08163C 80080A3C 8FBF0014 */ lw $ra, 0x14($sp) -/* 081640 80080A40 27BD0018 */ addiu $sp, $sp, 0x18 -/* 081644 80080A44 03E00008 */ jr $ra -/* 081648 80080A48 00000000 */ nop diff --git a/asm/non_matchings/code_80071F00/func_8008379C.s b/asm/non_matchings/code_80071F00/func_8008379C.s deleted file mode 100644 index f1a1320b3..000000000 --- a/asm/non_matchings/code_80071F00/func_8008379C.s +++ /dev/null @@ -1,55 +0,0 @@ -glabel func_8008379C -/* 08439C 8008379C 000470C0 */ sll $t6, $a0, 3 -/* 0843A0 800837A0 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0843A4 800837A4 01C47023 */ subu $t6, $t6, $a0 -/* 0843A8 800837A8 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 0843AC 800837AC AFB0001C */ sw $s0, 0x1c($sp) -/* 0843B0 800837B0 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 0843B4 800837B4 000E7140 */ sll $t6, $t6, 5 -/* 0843B8 800837B8 01CF8021 */ addu $s0, $t6, $t7 -/* 0843BC 800837BC 860200A6 */ lh $v0, 0xa6($s0) -/* 0843C0 800837C0 AFB10020 */ sw $s1, 0x20($sp) -/* 0843C4 800837C4 00808825 */ move $s1, $a0 -/* 0843C8 800837C8 1040001C */ beqz $v0, .L8008383C -/* 0843CC 800837CC AFBF0024 */ sw $ra, 0x24($sp) -/* 0843D0 800837D0 24010001 */ li $at, 1 -/* 0843D4 800837D4 10410006 */ beq $v0, $at, .L800837F0 -/* 0843D8 800837D8 02202025 */ move $a0, $s1 -/* 0843DC 800837DC 24010002 */ li $at, 2 -/* 0843E0 800837E0 10410012 */ beq $v0, $at, .L8008382C -/* 0843E4 800837E4 00000000 */ nop -/* 0843E8 800837E8 10000014 */ b .L8008383C -/* 0843EC 800837EC 00000000 */ nop -.L800837F0: -/* 0843F0 800837F0 961800C0 */ lhu $t8, 0xc0($s0) -/* 0843F4 800837F4 3C063F3D */ lui $a2, (0x3F3D70A4 >> 16) # lui $a2, 0x3f3d -/* 0843F8 800837F8 24190064 */ li $t9, 100 -/* 0843FC 800837FC AFB90014 */ sw $t9, 0x14($sp) -/* 084400 80083800 34C670A4 */ ori $a2, (0x3F3D70A4 & 0xFFFF) # ori $a2, $a2, 0x70a4 -/* 084404 80083804 8E05003C */ lw $a1, 0x3c($s0) -/* 084408 80083808 8E070034 */ lw $a3, 0x34($s0) -/* 08440C 8008380C 0C021F82 */ jal func_80087E08 -/* 084410 80083810 AFB80010 */ sw $t8, 0x10($sp) -/* 084414 80083814 10400009 */ beqz $v0, .L8008383C -/* 084418 80083818 00000000 */ nop -/* 08441C 8008381C 0C01C922 */ jal func_80072488 -/* 084420 80083820 02202025 */ move $a0, $s1 -/* 084424 80083824 10000005 */ b .L8008383C -/* 084428 80083828 00000000 */ nop -.L8008382C: -/* 08442C 8008382C 0C021BD8 */ jal func_80086F60 -/* 084430 80083830 02202025 */ move $a0, $s1 -/* 084434 80083834 0C01C90A */ jal func_80072428 -/* 084438 80083838 02202025 */ move $a0, $s1 -.L8008383C: -/* 08443C 8008383C 0C022FC6 */ jal func_8008BF18 -/* 084440 80083840 02202025 */ move $a0, $s1 -/* 084444 80083844 960800B6 */ lhu $t0, 0xb6($s0) -/* 084448 80083848 860900A0 */ lh $t1, 0xa0($s0) -/* 08444C 8008384C 8FBF0024 */ lw $ra, 0x24($sp) -/* 084450 80083850 8FB10020 */ lw $s1, 0x20($sp) -/* 084454 80083854 01095021 */ addu $t2, $t0, $t1 -/* 084458 80083858 A60A00B6 */ sh $t2, 0xb6($s0) -/* 08445C 8008385C 8FB0001C */ lw $s0, 0x1c($sp) -/* 084460 80083860 03E00008 */ jr $ra -/* 084464 80083864 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/asm/non_matchings/code_80071F00/func_80083F18.s b/asm/non_matchings/code_80071F00/func_80083F18.s deleted file mode 100644 index 7c53740cf..000000000 --- a/asm/non_matchings/code_80071F00/func_80083F18.s +++ /dev/null @@ -1,52 +0,0 @@ -glabel func_80083F18 -/* 084B18 80083F18 000470C0 */ sll $t6, $a0, 3 -/* 084B1C 80083F1C 01C47023 */ subu $t6, $t6, $a0 -/* 084B20 80083F20 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 084B24 80083F24 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 084B28 80083F28 000E7140 */ sll $t6, $t6, 5 -/* 084B2C 80083F2C 01CF1021 */ addu $v0, $t6, $t7 -/* 084B30 80083F30 844300A6 */ lh $v1, 0xa6($v0) -/* 084B34 80083F34 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 084B38 80083F38 AFB00020 */ sw $s0, 0x20($sp) -/* 084B3C 80083F3C 00808025 */ move $s0, $a0 -/* 084B40 80083F40 1060001E */ beqz $v1, .L80083FBC -/* 084B44 80083F44 AFBF0024 */ sw $ra, 0x24($sp) -/* 084B48 80083F48 24010001 */ li $at, 1 -/* 084B4C 80083F4C 10610006 */ beq $v1, $at, .L80083F68 -/* 084B50 80083F50 02002025 */ move $a0, $s0 -/* 084B54 80083F54 24010002 */ li $at, 2 -/* 084B58 80083F58 10610014 */ beq $v1, $at, .L80083FAC -/* 084B5C 80083F5C 00000000 */ nop -/* 084B60 80083F60 10000017 */ b .L80083FC0 -/* 084B64 80083F64 8FBF0024 */ lw $ra, 0x24($sp) -.L80083F68: -/* 084B68 80083F68 945800C0 */ lhu $t8, 0xc0($v0) -/* 084B6C 80083F6C 3C063DF5 */ lui $a2, (0x3DF5C28F >> 16) # lui $a2, 0x3df5 -/* 084B70 80083F70 24190064 */ li $t9, 100 -/* 084B74 80083F74 AFB90014 */ sw $t9, 0x14($sp) -/* 084B78 80083F78 34C6C28F */ ori $a2, (0x3DF5C28F & 0xFFFF) # ori $a2, $a2, 0xc28f -/* 084B7C 80083F7C 8C45003C */ lw $a1, 0x3c($v0) -/* 084B80 80083F80 8C470034 */ lw $a3, 0x34($v0) -/* 084B84 80083F84 0C021F82 */ jal func_80087E08 -/* 084B88 80083F88 AFB80010 */ sw $t8, 0x10($sp) -/* 084B8C 80083F8C 10400003 */ beqz $v0, .L80083F9C -/* 084B90 80083F90 00000000 */ nop -/* 084B94 80083F94 0C01C922 */ jal func_80072488 -/* 084B98 80083F98 02002025 */ move $a0, $s0 -.L80083F9C: -/* 084B9C 80083F9C 0C022FC6 */ jal func_8008BF18 -/* 084BA0 80083FA0 02002025 */ move $a0, $s0 -/* 084BA4 80083FA4 10000006 */ b .L80083FC0 -/* 084BA8 80083FA8 8FBF0024 */ lw $ra, 0x24($sp) -.L80083FAC: -/* 084BAC 80083FAC 0C021BD8 */ jal func_80086F60 -/* 084BB0 80083FB0 02002025 */ move $a0, $s0 -/* 084BB4 80083FB4 0C01C90A */ jal func_80072428 -/* 084BB8 80083FB8 02002025 */ move $a0, $s0 -.L80083FBC: -/* 084BBC 80083FBC 8FBF0024 */ lw $ra, 0x24($sp) -.L80083FC0: -/* 084BC0 80083FC0 8FB00020 */ lw $s0, 0x20($sp) -/* 084BC4 80083FC4 27BD0028 */ addiu $sp, $sp, 0x28 -/* 084BC8 80083FC8 03E00008 */ jr $ra -/* 084BCC 80083FCC 00000000 */ nop diff --git a/asm/non_matchings/code_80071F00/func_80085BB4.s b/asm/non_matchings/code_80071F00/func_80085BB4.s deleted file mode 100644 index 700bb46d0..000000000 --- a/asm/non_matchings/code_80071F00/func_80085BB4.s +++ /dev/null @@ -1,28 +0,0 @@ -glabel func_80085BB4 -/* 0867B4 80085BB4 44800000 */ mtc1 $zero, $f0 -/* 0867B8 80085BB8 3C014100 */ li $at, 0x41000000 # 8.000000 -/* 0867BC 80085BBC 000470C0 */ sll $t6, $a0, 3 -/* 0867C0 80085BC0 44812000 */ mtc1 $at, $f4 -/* 0867C4 80085BC4 01C47023 */ subu $t6, $t6, $a0 -/* 0867C8 80085BC8 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0867CC 80085BCC 000E7140 */ sll $t6, $t6, 5 -/* 0867D0 80085BD0 3C018016 */ lui $at, %hi(D_80165C18) -/* 0867D4 80085BD4 AFBF0014 */ sw $ra, 0x14($sp) -/* 0867D8 80085BD8 002E0821 */ addu $at, $at, $t6 -/* 0867DC 80085BDC 44050000 */ mfc1 $a1, $f0 -/* 0867E0 80085BE0 44060000 */ mfc1 $a2, $f0 -/* 0867E4 80085BE4 44070000 */ mfc1 $a3, $f0 -/* 0867E8 80085BE8 AFA40018 */ sw $a0, 0x18($sp) -/* 0867EC 80085BEC 0C022E03 */ jal func_8008B80C -/* 0867F0 80085BF0 E4245C18 */ swc1 $f4, %lo(D_80165C18)($at) -/* 0867F4 80085BF4 8FA40018 */ lw $a0, 0x18($sp) -/* 0867F8 80085BF8 00002825 */ move $a1, $zero -/* 0867FC 80085BFC 00003025 */ move $a2, $zero -/* 086800 80085C00 0C022E2F */ jal func_8008B8BC -/* 086804 80085C04 34078000 */ li $a3, 32768 -/* 086808 80085C08 0C01C922 */ jal func_80072488 -/* 08680C 80085C0C 8FA40018 */ lw $a0, 0x18($sp) -/* 086810 80085C10 8FBF0014 */ lw $ra, 0x14($sp) -/* 086814 80085C14 27BD0018 */ addiu $sp, $sp, 0x18 -/* 086818 80085C18 03E00008 */ jr $ra -/* 08681C 80085C1C 00000000 */ nop diff --git a/asm/non_matchings/code_80086E70/func_80087060.s b/asm/non_matchings/code_80086E70/func_80087060.s deleted file mode 100644 index c9a01723d..000000000 --- a/asm/non_matchings/code_80086E70/func_80087060.s +++ /dev/null @@ -1,44 +0,0 @@ -glabel func_80087060 -/* 087C60 80087060 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 087C64 80087064 AFBF0014 */ sw $ra, 0x14($sp) -/* 087C68 80087068 AFA50024 */ sw $a1, 0x24($sp) -/* 087C6C 8008706C AFA0001C */ sw $zero, 0x1c($sp) -/* 087C70 80087070 24050008 */ li $a1, 8 -/* 087C74 80087074 0C01C89C */ jal func_80072270 -/* 087C78 80087078 AFA40020 */ sw $a0, 0x20($sp) -/* 087C7C 8008707C 1040000C */ beqz $v0, .L800870B0 -/* 087C80 80087080 8FA40020 */ lw $a0, 0x20($sp) -/* 087C84 80087084 24050008 */ li $a1, 8 -/* 087C88 80087088 0C01C870 */ jal func_800721C0 -/* 087C8C 8008708C AFA40020 */ sw $a0, 0x20($sp) -/* 087C90 80087090 8FA40020 */ lw $a0, 0x20($sp) -/* 087C94 80087094 8FAE0024 */ lw $t6, 0x24($sp) -/* 087C98 80087098 3C018016 */ lui $at, %hi(D_80165CC8) # 0x8016 -/* 087C9C 8008709C 000478C0 */ sll $t7, $a0, 3 -/* 087CA0 800870A0 01E47823 */ subu $t7, $t7, $a0 -/* 087CA4 800870A4 000F7940 */ sll $t7, $t7, 5 -/* 087CA8 800870A8 002F0821 */ addu $at, $at, $t7 -/* 087CAC 800870AC A42E5CC8 */ sh $t6, %lo(D_80165CC8)($at) # 0x5cc8($at) -.L800870B0: -/* 087CB0 800870B0 0004C0C0 */ sll $t8, $a0, 3 -/* 087CB4 800870B4 0304C023 */ subu $t8, $t8, $a0 -/* 087CB8 800870B8 3C198016 */ lui $t9, %hi(D_80165C18) # $t9, 0x8016 -/* 087CBC 800870BC 27395C18 */ addiu $t9, %lo(D_80165C18) # addiu $t9, $t9, 0x5c18 -/* 087CC0 800870C0 0018C140 */ sll $t8, $t8, 5 -/* 087CC4 800870C4 03191021 */ addu $v0, $t8, $t9 -/* 087CC8 800870C8 844800B0 */ lh $t0, 0xb0($v0) -/* 087CCC 800870CC 2509FFFF */ addiu $t1, $t0, -1 -/* 087CD0 800870D0 A44900B0 */ sh $t1, 0xb0($v0) -/* 087CD4 800870D4 844A00B0 */ lh $t2, 0xb0($v0) -/* 087CD8 800870D8 05430006 */ bgezl $t2, .L800870F4 -/* 087CDC 800870DC 8FBF0014 */ lw $ra, 0x14($sp) -/* 087CE0 800870E0 0C01C87A */ jal func_800721E8 -/* 087CE4 800870E4 24050008 */ li $a1, 8 -/* 087CE8 800870E8 240B0001 */ li $t3, 1 -/* 087CEC 800870EC AFAB001C */ sw $t3, 0x1c($sp) -/* 087CF0 800870F0 8FBF0014 */ lw $ra, 0x14($sp) -.L800870F4: -/* 087CF4 800870F4 8FA2001C */ lw $v0, 0x1c($sp) -/* 087CF8 800870F8 27BD0020 */ addiu $sp, $sp, 0x20 -/* 087CFC 800870FC 03E00008 */ jr $ra -/* 087D00 80087100 00000000 */ nop diff --git a/asm/non_matchings/code_80086E70/func_80087104.s b/asm/non_matchings/code_80086E70/func_80087104.s deleted file mode 100644 index acb24d563..000000000 --- a/asm/non_matchings/code_80086E70/func_80087104.s +++ /dev/null @@ -1,45 +0,0 @@ -glabel func_80087104 -/* 087D04 80087104 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 087D08 80087108 AFBF001C */ sw $ra, 0x1c($sp) -/* 087D0C 8008710C AFB00018 */ sw $s0, 0x18($sp) -/* 087D10 80087110 AFA5002C */ sw $a1, 0x2c($sp) -/* 087D14 80087114 00808025 */ move $s0, $a0 -/* 087D18 80087118 AFA00024 */ sw $zero, 0x24($sp) -/* 087D1C 8008711C 0C01C89C */ jal func_80072270 -/* 087D20 80087120 24050008 */ li $a1, 8 -/* 087D24 80087124 1040000B */ beqz $v0, .L80087154 -/* 087D28 80087128 02002025 */ move $a0, $s0 -/* 087D2C 8008712C 0C01C870 */ jal func_800721C0 -/* 087D30 80087130 24050008 */ li $a1, 8 -/* 087D34 80087134 0C0ADF8D */ jal random_int -/* 087D38 80087138 97A4002E */ lhu $a0, 0x2e($sp) -/* 087D3C 8008713C 001070C0 */ sll $t6, $s0, 3 -/* 087D40 80087140 01D07023 */ subu $t6, $t6, $s0 -/* 087D44 80087144 000E7140 */ sll $t6, $t6, 5 -/* 087D48 80087148 3C018016 */ lui $at, %hi(D_80165CC8) # 0x8016 -/* 087D4C 8008714C 002E0821 */ addu $at, $at, $t6 -/* 087D50 80087150 A4225CC8 */ sh $v0, %lo(D_80165CC8)($at) # 0x5cc8($at) -.L80087154: -/* 087D54 80087154 001078C0 */ sll $t7, $s0, 3 -/* 087D58 80087158 01F07823 */ subu $t7, $t7, $s0 -/* 087D5C 8008715C 3C188016 */ lui $t8, %hi(D_80165C18) # $t8, 0x8016 -/* 087D60 80087160 27185C18 */ addiu $t8, %lo(D_80165C18) # addiu $t8, $t8, 0x5c18 -/* 087D64 80087164 000F7940 */ sll $t7, $t7, 5 -/* 087D68 80087168 01F81021 */ addu $v0, $t7, $t8 -/* 087D6C 8008716C 845900B0 */ lh $t9, 0xb0($v0) -/* 087D70 80087170 02002025 */ move $a0, $s0 -/* 087D74 80087174 2728FFFF */ addiu $t0, $t9, -1 -/* 087D78 80087178 A44800B0 */ sh $t0, 0xb0($v0) -/* 087D7C 8008717C 844900B0 */ lh $t1, 0xb0($v0) -/* 087D80 80087180 05230006 */ bgezl $t1, .L8008719C -/* 087D84 80087184 8FBF001C */ lw $ra, 0x1c($sp) -/* 087D88 80087188 0C01C87A */ jal func_800721E8 -/* 087D8C 8008718C 24050008 */ li $a1, 8 -/* 087D90 80087190 240A0001 */ li $t2, 1 -/* 087D94 80087194 AFAA0024 */ sw $t2, 0x24($sp) -/* 087D98 80087198 8FBF001C */ lw $ra, 0x1c($sp) -.L8008719C: -/* 087D9C 8008719C 8FA20024 */ lw $v0, 0x24($sp) -/* 087DA0 800871A0 8FB00018 */ lw $s0, 0x18($sp) -/* 087DA4 800871A4 03E00008 */ jr $ra -/* 087DA8 800871A8 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/asm/non_matchings/code_80086E70/func_800871AC.s b/asm/non_matchings/code_80086E70/func_800871AC.s deleted file mode 100644 index 7b9329217..000000000 --- a/asm/non_matchings/code_80086E70/func_800871AC.s +++ /dev/null @@ -1,80 +0,0 @@ -glabel func_800871AC -/* 087DAC 800871AC 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 087DB0 800871B0 AFBF001C */ sw $ra, 0x1c($sp) -/* 087DB4 800871B4 AFB00018 */ sw $s0, 0x18($sp) -/* 087DB8 800871B8 AFA5002C */ sw $a1, 0x2c($sp) -/* 087DBC 800871BC 00808025 */ move $s0, $a0 -/* 087DC0 800871C0 AFA00024 */ sw $zero, 0x24($sp) -/* 087DC4 800871C4 0C01C89C */ jal func_80072270 -/* 087DC8 800871C8 24050008 */ li $a1, 8 -/* 087DCC 800871CC 1040000A */ beqz $v0, .L800871F8 -/* 087DD0 800871D0 02002025 */ move $a0, $s0 -/* 087DD4 800871D4 0C01C870 */ jal func_800721C0 -/* 087DD8 800871D8 24050008 */ li $a1, 8 -/* 087DDC 800871DC 001078C0 */ sll $t7, $s0, 3 -/* 087DE0 800871E0 8FAE002C */ lw $t6, 0x2c($sp) -/* 087DE4 800871E4 01F07823 */ subu $t7, $t7, $s0 -/* 087DE8 800871E8 000F7940 */ sll $t7, $t7, 5 -/* 087DEC 800871EC 3C018016 */ lui $at, %hi(D_80165CC8) # 0x8016 -/* 087DF0 800871F0 002F0821 */ addu $at, $at, $t7 -/* 087DF4 800871F4 A42E5CC8 */ sh $t6, %lo(D_80165CC8)($at) # 0x5cc8($at) -.L800871F8: -/* 087DF8 800871F8 0010C0C0 */ sll $t8, $s0, 3 -/* 087DFC 800871FC 0310C023 */ subu $t8, $t8, $s0 -/* 087E00 80087200 3C198016 */ lui $t9, %hi(D_80165C18) # $t9, 0x8016 -/* 087E04 80087204 27395C18 */ addiu $t9, %lo(D_80165C18) # addiu $t9, $t9, 0x5c18 -/* 087E08 80087208 0018C140 */ sll $t8, $t8, 5 -/* 087E0C 8008720C 03191021 */ addu $v0, $t8, $t9 -/* 087E10 80087210 844800B0 */ lh $t0, 0xb0($v0) -/* 087E14 80087214 02002025 */ move $a0, $s0 -/* 087E18 80087218 2509FFFF */ addiu $t1, $t0, -1 -/* 087E1C 8008721C A44900B0 */ sh $t1, 0xb0($v0) -/* 087E20 80087220 844A00B0 */ lh $t2, 0xb0($v0) -/* 087E24 80087224 05430008 */ bgezl $t2, .L80087248 -/* 087E28 80087228 8FBF001C */ lw $ra, 0x1c($sp) -/* 087E2C 8008722C 0C01C87A */ jal func_800721E8 -/* 087E30 80087230 24050008 */ li $a1, 8 -/* 087E34 80087234 0C021BF5 */ jal func_80086FD4 -/* 087E38 80087238 02002025 */ move $a0, $s0 -/* 087E3C 8008723C 240B0001 */ li $t3, 1 -/* 087E40 80087240 AFAB0024 */ sw $t3, 0x24($sp) -/* 087E44 80087244 8FBF001C */ lw $ra, 0x1c($sp) -.L80087248: -/* 087E48 80087248 8FA20024 */ lw $v0, 0x24($sp) -/* 087E4C 8008724C 8FB00018 */ lw $s0, 0x18($sp) -/* 087E50 80087250 03E00008 */ jr $ra -/* 087E54 80087254 27BD0028 */ addiu $sp, $sp, 0x28 - -/* 087E58 80087258 000470C0 */ sll $t6, $a0, 3 -/* 087E5C 8008725C 01C47023 */ subu $t6, $t6, $a0 -/* 087E60 80087260 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 087E64 80087264 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 087E68 80087268 000E7140 */ sll $t6, $t6, 5 -/* 087E6C 8008726C 01CF1021 */ addu $v0, $t6, $t7 -/* 087E70 80087270 44866000 */ mtc1 $a2, $f12 -/* 087E74 80087274 C444002C */ lwc1 $f4, 0x2c($v0) -/* 087E78 80087278 C4480030 */ lwc1 $f8, 0x30($v0) -/* 087E7C 8008727C AFA50004 */ sw $a1, 4($sp) -/* 087E80 80087280 460C2180 */ add.s $f6, $f4, $f12 -/* 087E84 80087284 460C4281 */ sub.s $f10, $f8, $f12 -/* 087E88 80087288 E446002C */ swc1 $f6, 0x2c($v0) -/* 087E8C 8008728C 03E00008 */ jr $ra -/* 087E90 80087290 E44A0030 */ swc1 $f10, 0x30($v0) - -/* 087E94 80087294 000470C0 */ sll $t6, $a0, 3 -/* 087E98 80087298 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 087E9C 8008729C 01C47023 */ subu $t6, $t6, $a0 -/* 087EA0 800872A0 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 087EA4 800872A4 AFBF0014 */ sw $ra, 0x14($sp) -/* 087EA8 800872A8 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 087EAC 800872AC 000E7140 */ sll $t6, $t6, 5 -/* 087EB0 800872B0 01CF1021 */ addu $v0, $t6, $t7 -/* 087EB4 800872B4 C44E0004 */ lwc1 $f14, 4($v0) -/* 087EB8 800872B8 8C47000C */ lw $a3, 0xc($v0) -/* 087EBC 800872BC 8CA6001C */ lw $a2, 0x1c($a1) -/* 087EC0 800872C0 0C0105DC */ jal func_80041770 -/* 087EC4 800872C4 C4AC0014 */ lwc1 $f12, 0x14($a1) -/* 087EC8 800872C8 8FBF0014 */ lw $ra, 0x14($sp) -/* 087ECC 800872CC 27BD0018 */ addiu $sp, $sp, 0x18 -/* 087ED0 800872D0 03E00008 */ jr $ra -/* 087ED4 800872D4 00000000 */ nop diff --git a/asm/non_matchings/code_80086E70/func_800872D8.s b/asm/non_matchings/code_80086E70/func_800872D8.s deleted file mode 100644 index 9f8ee6f77..000000000 --- a/asm/non_matchings/code_80086E70/func_800872D8.s +++ /dev/null @@ -1,20 +0,0 @@ -glabel func_800872D8 -/* 087ED8 800872D8 000470C0 */ sll $t6, $a0, 3 -/* 087EDC 800872DC 01C47023 */ subu $t6, $t6, $a0 -/* 087EE0 800872E0 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 087EE4 800872E4 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 087EE8 800872E8 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 087EEC 800872EC 000E7140 */ sll $t6, $t6, 5 -/* 087EF0 800872F0 AFBF0014 */ sw $ra, 0x14($sp) -/* 087EF4 800872F4 01CF1021 */ addu $v0, $t6, $t7 -/* 087EF8 800872F8 C4440004 */ lwc1 $f4, 4($v0) -/* 087EFC 800872FC C448000C */ lwc1 $f8, 0xc($v0) -/* 087F00 80087300 C4AA0008 */ lwc1 $f10, 8($a1) -/* 087F04 80087304 C4A60000 */ lwc1 $f6, ($a1) -/* 087F08 80087308 460A4381 */ sub.s $f14, $f8, $f10 -/* 087F0C 8008730C 0C0ADE0C */ jal atan2s -/* 087F10 80087310 46062301 */ sub.s $f12, $f4, $f6 -/* 087F14 80087314 8FBF0014 */ lw $ra, 0x14($sp) -/* 087F18 80087318 27BD0018 */ addiu $sp, $sp, 0x18 -/* 087F1C 8008731C 03E00008 */ jr $ra -/* 087F20 80087320 00000000 */ nop diff --git a/asm/non_matchings/code_80086E70/func_80087324.s b/asm/non_matchings/code_80086E70/func_80087324.s deleted file mode 100644 index 4351f97e0..000000000 --- a/asm/non_matchings/code_80086E70/func_80087324.s +++ /dev/null @@ -1,18 +0,0 @@ -glabel func_80087324 -/* 087F24 80087324 000470C0 */ sll $t6, $a0, 3 -/* 087F28 80087328 01C47023 */ subu $t6, $t6, $a0 -/* 087F2C 8008732C 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 087F30 80087330 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 087F34 80087334 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 087F38 80087338 000E7140 */ sll $t6, $t6, 5 -/* 087F3C 8008733C AFBF0014 */ sw $ra, 0x14($sp) -/* 087F40 80087340 01CF1021 */ addu $v0, $t6, $t7 -/* 087F44 80087344 C44C003C */ lwc1 $f12, 0x3c($v0) -/* 087F48 80087348 0C0ADE0C */ jal atan2s -/* 087F4C 8008734C C44E0040 */ lwc1 $f14, 0x40($v0) -/* 087F50 80087350 8FBF0014 */ lw $ra, 0x14($sp) -/* 087F54 80087354 00021023 */ negu $v0, $v0 -/* 087F58 80087358 3058FFFF */ andi $t8, $v0, 0xffff -/* 087F5C 8008735C 03001025 */ move $v0, $t8 -/* 087F60 80087360 03E00008 */ jr $ra -/* 087F64 80087364 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/non_matchings/code_80086E70/func_80087368.s b/asm/non_matchings/code_80086E70/func_80087368.s deleted file mode 100644 index 97ad4f994..000000000 --- a/asm/non_matchings/code_80086E70/func_80087368.s +++ /dev/null @@ -1,37 +0,0 @@ -glabel func_80087368 -/* 087F68 80087368 000470C0 */ sll $t6, $a0, 3 -/* 087F6C 8008736C 01C47023 */ subu $t6, $t6, $a0 -/* 087F70 80087370 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 087F74 80087374 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 087F78 80087378 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 087F7C 8008737C 000E7140 */ sll $t6, $t6, 5 -/* 087F80 80087380 AFBF0014 */ sw $ra, 0x14($sp) -/* 087F84 80087384 01CF1021 */ addu $v0, $t6, $t7 -/* 087F88 80087388 C44C0038 */ lwc1 $f12, 0x38($v0) -/* 087F8C 8008738C 0C0ADE0C */ jal atan2s -/* 087F90 80087390 C44E0040 */ lwc1 $f14, 0x40($v0) -/* 087F94 80087394 8FBF0014 */ lw $ra, 0x14($sp) -/* 087F98 80087398 27BD0018 */ addiu $sp, $sp, 0x18 -/* 087F9C 8008739C 03E00008 */ jr $ra -/* 087FA0 800873A0 00000000 */ nop - -/* 087FA4 800873A4 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 087FA8 800873A8 AFBF0014 */ sw $ra, 0x14($sp) -/* 087FAC 800873AC 0C021CC9 */ jal func_80087324 -/* 087FB0 800873B0 AFA40020 */ sw $a0, 0x20($sp) -/* 087FB4 800873B4 8FAE0020 */ lw $t6, 0x20($sp) -/* 087FB8 800873B8 3C188016 */ lui $t8, %hi(D_80165C18) # $t8, 0x8016 -/* 087FBC 800873BC 27185C18 */ addiu $t8, %lo(D_80165C18) # addiu $t8, $t8, 0x5c18 -/* 087FC0 800873C0 000E78C0 */ sll $t7, $t6, 3 -/* 087FC4 800873C4 01EE7823 */ subu $t7, $t7, $t6 -/* 087FC8 800873C8 000F7940 */ sll $t7, $t7, 5 -/* 087FCC 800873CC 01F81821 */ addu $v1, $t7, $t8 -/* 087FD0 800873D0 946400BE */ lhu $a0, 0xbe($v1) -/* 087FD4 800873D4 AFA30018 */ sw $v1, 0x18($sp) -/* 087FD8 800873D8 0C0105ED */ jal func_800417B4 -/* 087FDC 800873DC 3045FFFF */ andi $a1, $v0, 0xffff -/* 087FE0 800873E0 8FBF0014 */ lw $ra, 0x14($sp) -/* 087FE4 800873E4 8FA30018 */ lw $v1, 0x18($sp) -/* 087FE8 800873E8 27BD0020 */ addiu $sp, $sp, 0x20 -/* 087FEC 800873EC 03E00008 */ jr $ra -/* 087FF0 800873F0 A46200BE */ sh $v0, 0xbe($v1) diff --git a/asm/non_matchings/code_80086E70/func_800873F4.s b/asm/non_matchings/code_80086E70/func_800873F4.s deleted file mode 100644 index 3b561941c..000000000 --- a/asm/non_matchings/code_80086E70/func_800873F4.s +++ /dev/null @@ -1,78 +0,0 @@ -glabel func_800873F4 -/* 087FF4 800873F4 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 087FF8 800873F8 AFBF0014 */ sw $ra, 0x14($sp) -/* 087FFC 800873FC 0C021CDA */ jal func_80087368 -/* 088000 80087400 AFA40020 */ sw $a0, 0x20($sp) -/* 088004 80087404 8FAE0020 */ lw $t6, 0x20($sp) -/* 088008 80087408 3C188016 */ lui $t8, %hi(D_80165C18) # $t8, 0x8016 -/* 08800C 8008740C 27185C18 */ addiu $t8, %lo(D_80165C18) # addiu $t8, $t8, 0x5c18 -/* 088010 80087410 000E78C0 */ sll $t7, $t6, 3 -/* 088014 80087414 01EE7823 */ subu $t7, $t7, $t6 -/* 088018 80087418 000F7940 */ sll $t7, $t7, 5 -/* 08801C 8008741C 01F81821 */ addu $v1, $t7, $t8 -/* 088020 80087420 946400C0 */ lhu $a0, 0xc0($v1) -/* 088024 80087424 AFA30018 */ sw $v1, 0x18($sp) -/* 088028 80087428 0C0105ED */ jal func_800417B4 -/* 08802C 8008742C 3045FFFF */ andi $a1, $v0, 0xffff -/* 088030 80087430 8FBF0014 */ lw $ra, 0x14($sp) -/* 088034 80087434 8FA30018 */ lw $v1, 0x18($sp) -/* 088038 80087438 27BD0020 */ addiu $sp, $sp, 0x20 -/* 08803C 8008743C 03E00008 */ jr $ra -/* 088040 80087440 A46200C0 */ sh $v0, 0xc0($v1) - -/* 088044 80087444 000470C0 */ sll $t6, $a0, 3 -/* 088048 80087448 01C47023 */ subu $t6, $t6, $a0 -/* 08804C 8008744C 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 088050 80087450 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 088054 80087454 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 088058 80087458 000E7140 */ sll $t6, $t6, 5 -/* 08805C 8008745C AFBF0014 */ sw $ra, 0x14($sp) -/* 088060 80087460 01CF1021 */ addu $v0, $t6, $t7 -/* 088064 80087464 944400C0 */ lhu $a0, 0xc0($v0) -/* 088068 80087468 0C0AE006 */ jal sins -/* 08806C 8008746C AFA2001C */ sw $v0, 0x1c($sp) -/* 088070 80087470 8FA2001C */ lw $v0, 0x1c($sp) -/* 088074 80087474 8FBF0014 */ lw $ra, 0x14($sp) -/* 088078 80087478 C4440034 */ lwc1 $f4, 0x34($v0) -/* 08807C 8008747C 27BD0020 */ addiu $sp, $sp, 0x20 -/* 088080 80087480 46040182 */ mul.s $f6, $f0, $f4 -/* 088084 80087484 03E00008 */ jr $ra -/* 088088 80087488 E4460038 */ swc1 $f6, 0x38($v0) - -/* 08808C 8008748C 000470C0 */ sll $t6, $a0, 3 -/* 088090 80087490 01C47023 */ subu $t6, $t6, $a0 -/* 088094 80087494 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 088098 80087498 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 08809C 8008749C 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 0880A0 800874A0 000E7140 */ sll $t6, $t6, 5 -/* 0880A4 800874A4 AFBF0014 */ sw $ra, 0x14($sp) -/* 0880A8 800874A8 01CF1021 */ addu $v0, $t6, $t7 -/* 0880AC 800874AC 944400BE */ lhu $a0, 0xbe($v0) -/* 0880B0 800874B0 0C0AE00E */ jal coss -/* 0880B4 800874B4 AFA2001C */ sw $v0, 0x1c($sp) -/* 0880B8 800874B8 8FA2001C */ lw $v0, 0x1c($sp) -/* 0880BC 800874BC 8FBF0014 */ lw $ra, 0x14($sp) -/* 0880C0 800874C0 C4440034 */ lwc1 $f4, 0x34($v0) -/* 0880C4 800874C4 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0880C8 800874C8 46040182 */ mul.s $f6, $f0, $f4 -/* 0880CC 800874CC 03E00008 */ jr $ra -/* 0880D0 800874D0 E446003C */ swc1 $f6, 0x3c($v0) - -/* 0880D4 800874D4 000470C0 */ sll $t6, $a0, 3 -/* 0880D8 800874D8 01C47023 */ subu $t6, $t6, $a0 -/* 0880DC 800874DC 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 0880E0 800874E0 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0880E4 800874E4 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 0880E8 800874E8 000E7140 */ sll $t6, $t6, 5 -/* 0880EC 800874EC AFBF0014 */ sw $ra, 0x14($sp) -/* 0880F0 800874F0 01CF1021 */ addu $v0, $t6, $t7 -/* 0880F4 800874F4 944400C0 */ lhu $a0, 0xc0($v0) -/* 0880F8 800874F8 0C0AE00E */ jal coss -/* 0880FC 800874FC AFA2001C */ sw $v0, 0x1c($sp) -/* 088100 80087500 8FA2001C */ lw $v0, 0x1c($sp) -/* 088104 80087504 8FBF0014 */ lw $ra, 0x14($sp) -/* 088108 80087508 C4440034 */ lwc1 $f4, 0x34($v0) -/* 08810C 8008750C 27BD0020 */ addiu $sp, $sp, 0x20 -/* 088110 80087510 46040182 */ mul.s $f6, $f0, $f4 -/* 088114 80087514 03E00008 */ jr $ra -/* 088118 80087518 E4460040 */ swc1 $f6, 0x40($v0) diff --git a/asm/non_matchings/code_80086E70/func_8008751C.s b/asm/non_matchings/code_80086E70/func_8008751C.s deleted file mode 100644 index c4edfb127..000000000 --- a/asm/non_matchings/code_80086E70/func_8008751C.s +++ /dev/null @@ -1,25 +0,0 @@ -glabel func_8008751C -/* 08811C 8008751C 000470C0 */ sll $t6, $a0, 3 -/* 088120 80087520 01C47023 */ subu $t6, $t6, $a0 -/* 088124 80087524 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 088128 80087528 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 08812C 8008752C 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 088130 80087530 000E7140 */ sll $t6, $t6, 5 -/* 088134 80087534 AFBF0014 */ sw $ra, 0x14($sp) -/* 088138 80087538 01CF1021 */ addu $v0, $t6, $t7 -/* 08813C 8008753C 944400C0 */ lhu $a0, 0xc0($v0) -/* 088140 80087540 0C0AE006 */ jal sins -/* 088144 80087544 AFA2001C */ sw $v0, 0x1c($sp) -/* 088148 80087548 8FA2001C */ lw $v0, 0x1c($sp) -/* 08814C 8008754C C4440034 */ lwc1 $f4, 0x34($v0) -/* 088150 80087550 944400C0 */ lhu $a0, 0xc0($v0) -/* 088154 80087554 46040182 */ mul.s $f6, $f0, $f4 -/* 088158 80087558 0C0AE00E */ jal coss -/* 08815C 8008755C E4460038 */ swc1 $f6, 0x38($v0) -/* 088160 80087560 8FA2001C */ lw $v0, 0x1c($sp) -/* 088164 80087564 8FBF0014 */ lw $ra, 0x14($sp) -/* 088168 80087568 C4480034 */ lwc1 $f8, 0x34($v0) -/* 08816C 8008756C 27BD0020 */ addiu $sp, $sp, 0x20 -/* 088170 80087570 46080282 */ mul.s $f10, $f0, $f8 -/* 088174 80087574 03E00008 */ jr $ra -/* 088178 80087578 E44A0040 */ swc1 $f10, 0x40($v0) diff --git a/asm/non_matchings/code_80086E70/func_8008757C.s b/asm/non_matchings/code_80086E70/func_8008757C.s deleted file mode 100644 index 259b24641..000000000 --- a/asm/non_matchings/code_80086E70/func_8008757C.s +++ /dev/null @@ -1,42 +0,0 @@ -glabel func_8008757C -/* 08817C 8008757C 000470C0 */ sll $t6, $a0, 3 -/* 088180 80087580 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 088184 80087584 01C47023 */ subu $t6, $t6, $a0 -/* 088188 80087588 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 08818C 8008758C AFB00018 */ sw $s0, 0x18($sp) -/* 088190 80087590 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 088194 80087594 000E7140 */ sll $t6, $t6, 5 -/* 088198 80087598 AFBF001C */ sw $ra, 0x1c($sp) -/* 08819C 8008759C 01CF8021 */ addu $s0, $t6, $t7 -/* 0881A0 800875A0 0C0AE00E */ jal coss -/* 0881A4 800875A4 960400BE */ lhu $a0, 0xbe($s0) -/* 0881A8 800875A8 E7A00024 */ swc1 $f0, 0x24($sp) -/* 0881AC 800875AC 0C0AE006 */ jal sins -/* 0881B0 800875B0 960400C0 */ lhu $a0, 0xc0($s0) -/* 0881B4 800875B4 C6040034 */ lwc1 $f4, 0x34($s0) -/* 0881B8 800875B8 C7A60024 */ lwc1 $f6, 0x24($sp) -/* 0881BC 800875BC 960400BE */ lhu $a0, 0xbe($s0) -/* 0881C0 800875C0 46062202 */ mul.s $f8, $f4, $f6 -/* 0881C4 800875C4 00000000 */ nop -/* 0881C8 800875C8 46080282 */ mul.s $f10, $f0, $f8 -/* 0881CC 800875CC 0C0AE006 */ jal sins -/* 0881D0 800875D0 E60A0038 */ swc1 $f10, 0x38($s0) -/* 0881D4 800875D4 C6100034 */ lwc1 $f16, 0x34($s0) -/* 0881D8 800875D8 960400BE */ lhu $a0, 0xbe($s0) -/* 0881DC 800875DC 46008487 */ neg.s $f18, $f16 -/* 0881E0 800875E0 46120102 */ mul.s $f4, $f0, $f18 -/* 0881E4 800875E4 0C0AE00E */ jal coss -/* 0881E8 800875E8 E604003C */ swc1 $f4, 0x3c($s0) -/* 0881EC 800875EC E7A00024 */ swc1 $f0, 0x24($sp) -/* 0881F0 800875F0 0C0AE00E */ jal coss -/* 0881F4 800875F4 960400C0 */ lhu $a0, 0xc0($s0) -/* 0881F8 800875F8 C6060034 */ lwc1 $f6, 0x34($s0) -/* 0881FC 800875FC C7A80024 */ lwc1 $f8, 0x24($sp) -/* 088200 80087600 8FBF001C */ lw $ra, 0x1c($sp) -/* 088204 80087604 46083282 */ mul.s $f10, $f6, $f8 -/* 088208 80087608 00000000 */ nop -/* 08820C 8008760C 460A0402 */ mul.s $f16, $f0, $f10 -/* 088210 80087610 E6100040 */ swc1 $f16, 0x40($s0) -/* 088214 80087614 8FB00018 */ lw $s0, 0x18($sp) -/* 088218 80087618 03E00008 */ jr $ra -/* 08821C 8008761C 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/asm/non_matchings/code_80086E70/func_80087620.s b/asm/non_matchings/code_80086E70/func_80087620.s deleted file mode 100644 index 8334c63a1..000000000 --- a/asm/non_matchings/code_80086E70/func_80087620.s +++ /dev/null @@ -1,33 +0,0 @@ -glabel func_80087620 -/* 088220 80087620 000470C0 */ sll $t6, $a0, 3 -/* 088224 80087624 01C47023 */ subu $t6, $t6, $a0 -/* 088228 80087628 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 08822C 8008762C 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 088230 80087630 000E7140 */ sll $t6, $t6, 5 -/* 088234 80087634 01CF1021 */ addu $v0, $t6, $t7 -/* 088238 80087638 944400C0 */ lhu $a0, 0xc0($v0) -/* 08823C 8008763C 34018000 */ li $at, 32768 -/* 088240 80087640 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 088244 80087644 00812021 */ addu $a0, $a0, $at -/* 088248 80087648 AFBF0014 */ sw $ra, 0x14($sp) -/* 08824C 8008764C 3098FFFF */ andi $t8, $a0, 0xffff -/* 088250 80087650 03002025 */ move $a0, $t8 -/* 088254 80087654 0C0AE006 */ jal sins -/* 088258 80087658 AFA2001C */ sw $v0, 0x1c($sp) -/* 08825C 8008765C 8FA2001C */ lw $v0, 0x1c($sp) -/* 088260 80087660 34018000 */ li $at, 32768 -/* 088264 80087664 C4440034 */ lwc1 $f4, 0x34($v0) -/* 088268 80087668 944400C0 */ lhu $a0, 0xc0($v0) -/* 08826C 8008766C 46040182 */ mul.s $f6, $f0, $f4 -/* 088270 80087670 00812021 */ addu $a0, $a0, $at -/* 088274 80087674 3099FFFF */ andi $t9, $a0, 0xffff -/* 088278 80087678 03202025 */ move $a0, $t9 -/* 08827C 8008767C 0C0AE00E */ jal coss -/* 088280 80087680 E4460038 */ swc1 $f6, 0x38($v0) -/* 088284 80087684 8FA2001C */ lw $v0, 0x1c($sp) -/* 088288 80087688 8FBF0014 */ lw $ra, 0x14($sp) -/* 08828C 8008768C C4480034 */ lwc1 $f8, 0x34($v0) -/* 088290 80087690 27BD0020 */ addiu $sp, $sp, 0x20 -/* 088294 80087694 46080282 */ mul.s $f10, $f0, $f8 -/* 088298 80087698 03E00008 */ jr $ra -/* 08829C 8008769C E44A0040 */ swc1 $f10, 0x40($v0) diff --git a/asm/non_matchings/code_80086E70/func_800876A0.s b/asm/non_matchings/code_80086E70/func_800876A0.s deleted file mode 100644 index 678a65c04..000000000 --- a/asm/non_matchings/code_80086E70/func_800876A0.s +++ /dev/null @@ -1,29 +0,0 @@ -glabel func_800876A0 -/* 0882A0 800876A0 000470C0 */ sll $t6, $a0, 3 -/* 0882A4 800876A4 01C47023 */ subu $t6, $t6, $a0 -/* 0882A8 800876A8 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 0882AC 800876AC 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0882B0 800876B0 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 0882B4 800876B4 000E7140 */ sll $t6, $t6, 5 -/* 0882B8 800876B8 AFBF0014 */ sw $ra, 0x14($sp) -/* 0882BC 800876BC 01CF1021 */ addu $v0, $t6, $t7 -/* 0882C0 800876C0 944400C0 */ lhu $a0, 0xc0($v0) -/* 0882C4 800876C4 0C0AE006 */ jal sins -/* 0882C8 800876C8 AFA20018 */ sw $v0, 0x18($sp) -/* 0882CC 800876CC 8FA20018 */ lw $v0, 0x18($sp) -/* 0882D0 800876D0 C4460034 */ lwc1 $f6, 0x34($v0) -/* 0882D4 800876D4 C4440028 */ lwc1 $f4, 0x28($v0) -/* 0882D8 800876D8 944400C0 */ lhu $a0, 0xc0($v0) -/* 0882DC 800876DC 46003202 */ mul.s $f8, $f6, $f0 -/* 0882E0 800876E0 46082280 */ add.s $f10, $f4, $f8 -/* 0882E4 800876E4 0C0AE00E */ jal coss -/* 0882E8 800876E8 E44A0028 */ swc1 $f10, 0x28($v0) -/* 0882EC 800876EC 8FA20018 */ lw $v0, 0x18($sp) -/* 0882F0 800876F0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0882F4 800876F4 C4520034 */ lwc1 $f18, 0x34($v0) -/* 0882F8 800876F8 C4500030 */ lwc1 $f16, 0x30($v0) -/* 0882FC 800876FC 27BD0020 */ addiu $sp, $sp, 0x20 -/* 088300 80087700 46009182 */ mul.s $f6, $f18, $f0 -/* 088304 80087704 46068100 */ add.s $f4, $f16, $f6 -/* 088308 80087708 03E00008 */ jr $ra -/* 08830C 8008770C E4440030 */ swc1 $f4, 0x30($v0) diff --git a/asm/non_matchings/code_80086E70/func_80087710.s b/asm/non_matchings/code_80086E70/func_80087710.s deleted file mode 100644 index 317b3cb31..000000000 --- a/asm/non_matchings/code_80086E70/func_80087710.s +++ /dev/null @@ -1,20 +0,0 @@ -glabel func_80087710 -/* 088310 80087710 000470C0 */ sll $t6, $a0, 3 -/* 088314 80087714 01C47023 */ subu $t6, $t6, $a0 -/* 088318 80087718 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 08831C 8008771C 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 088320 80087720 000E7140 */ sll $t6, $t6, 5 -/* 088324 80087724 01CF1021 */ addu $v0, $t6, $t7 -/* 088328 80087728 C4440028 */ lwc1 $f4, 0x28($v0) -/* 08832C 8008772C C4460038 */ lwc1 $f6, 0x38($v0) -/* 088330 80087730 C44A002C */ lwc1 $f10, 0x2c($v0) -/* 088334 80087734 C450003C */ lwc1 $f16, 0x3c($v0) -/* 088338 80087738 46062200 */ add.s $f8, $f4, $f6 -/* 08833C 8008773C C4460040 */ lwc1 $f6, 0x40($v0) -/* 088340 80087740 C4440030 */ lwc1 $f4, 0x30($v0) -/* 088344 80087744 46105480 */ add.s $f18, $f10, $f16 -/* 088348 80087748 E4480028 */ swc1 $f8, 0x28($v0) -/* 08834C 8008774C 46062200 */ add.s $f8, $f4, $f6 -/* 088350 80087750 E452002C */ swc1 $f18, 0x2c($v0) -/* 088354 80087754 03E00008 */ jr $ra -/* 088358 80087758 E4480030 */ swc1 $f8, 0x30($v0) diff --git a/asm/non_matchings/code_80086E70/func_8008775C.s b/asm/non_matchings/code_80086E70/func_8008775C.s deleted file mode 100644 index fe8e0a346..000000000 --- a/asm/non_matchings/code_80086E70/func_8008775C.s +++ /dev/null @@ -1,28 +0,0 @@ -glabel func_8008775C -/* 08835C 8008775C 000470C0 */ sll $t6, $a0, 3 -/* 088360 80087760 01C47023 */ subu $t6, $t6, $a0 -/* 088364 80087764 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 088368 80087768 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 08836C 8008776C 000E7140 */ sll $t6, $t6, 5 -/* 088370 80087770 01CF1021 */ addu $v0, $t6, $t7 -/* 088374 80087774 C4440028 */ lwc1 $f4, 0x28($v0) -/* 088378 80087778 C4460038 */ lwc1 $f6, 0x38($v0) -/* 08837C 8008777C C44A0030 */ lwc1 $f10, 0x30($v0) -/* 088380 80087780 C4500040 */ lwc1 $f16, 0x40($v0) -/* 088384 80087784 46062200 */ add.s $f8, $f4, $f6 -/* 088388 80087788 46105480 */ add.s $f18, $f10, $f16 -/* 08838C 8008778C E4480028 */ swc1 $f8, 0x28($v0) -/* 088390 80087790 03E00008 */ jr $ra -/* 088394 80087794 E4520030 */ swc1 $f18, 0x30($v0) - -/* 088398 80087798 000470C0 */ sll $t6, $a0, 3 -/* 08839C 8008779C 01C47023 */ subu $t6, $t6, $a0 -/* 0883A0 800877A0 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 0883A4 800877A4 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 0883A8 800877A8 000E7140 */ sll $t6, $t6, 5 -/* 0883AC 800877AC 01CF1021 */ addu $v0, $t6, $t7 -/* 0883B0 800877B0 C4440028 */ lwc1 $f4, 0x28($v0) -/* 0883B4 800877B4 C4460038 */ lwc1 $f6, 0x38($v0) -/* 0883B8 800877B8 46062200 */ add.s $f8, $f4, $f6 -/* 0883BC 800877BC 03E00008 */ jr $ra -/* 0883C0 800877C0 E4480028 */ swc1 $f8, 0x28($v0) diff --git a/asm/non_matchings/code_80086E70/func_800877C4.s b/asm/non_matchings/code_80086E70/func_800877C4.s deleted file mode 100644 index 4c475cb32..000000000 --- a/asm/non_matchings/code_80086E70/func_800877C4.s +++ /dev/null @@ -1,24 +0,0 @@ -glabel func_800877C4 -/* 0883C4 800877C4 000470C0 */ sll $t6, $a0, 3 -/* 0883C8 800877C8 01C47023 */ subu $t6, $t6, $a0 -/* 0883CC 800877CC 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 0883D0 800877D0 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 0883D4 800877D4 000E7140 */ sll $t6, $t6, 5 -/* 0883D8 800877D8 01CF1021 */ addu $v0, $t6, $t7 -/* 0883DC 800877DC C444002C */ lwc1 $f4, 0x2c($v0) -/* 0883E0 800877E0 C446003C */ lwc1 $f6, 0x3c($v0) -/* 0883E4 800877E4 46062200 */ add.s $f8, $f4, $f6 -/* 0883E8 800877E8 03E00008 */ jr $ra -/* 0883EC 800877EC E448002C */ swc1 $f8, 0x2c($v0) - -/* 0883F0 800877F0 000470C0 */ sll $t6, $a0, 3 -/* 0883F4 800877F4 01C47023 */ subu $t6, $t6, $a0 -/* 0883F8 800877F8 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 0883FC 800877FC 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 088400 80087800 000E7140 */ sll $t6, $t6, 5 -/* 088404 80087804 01CF1021 */ addu $v0, $t6, $t7 -/* 088408 80087808 C4440030 */ lwc1 $f4, 0x30($v0) -/* 08840C 8008780C C4460040 */ lwc1 $f6, 0x40($v0) -/* 088410 80087810 46062200 */ add.s $f8, $f4, $f6 -/* 088414 80087814 03E00008 */ jr $ra -/* 088418 80087818 E4480030 */ swc1 $f8, 0x30($v0) diff --git a/asm/non_matchings/code_80086E70/func_8008789C.s b/asm/non_matchings/code_80086E70/func_8008789C.s deleted file mode 100644 index c06e1b647..000000000 --- a/asm/non_matchings/code_80086E70/func_8008789C.s +++ /dev/null @@ -1,50 +0,0 @@ -glabel func_8008789C -/* 08849C 8008789C 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0884A0 800878A0 AFBF001C */ sw $ra, 0x1c($sp) -/* 0884A4 800878A4 AFB00018 */ sw $s0, 0x18($sp) -/* 0884A8 800878A8 AFA5002C */ sw $a1, 0x2c($sp) -/* 0884AC 800878AC 00808025 */ move $s0, $a0 -/* 0884B0 800878B0 AFA00024 */ sw $zero, 0x24($sp) -/* 0884B4 800878B4 0C01C89C */ jal func_80072270 -/* 0884B8 800878B8 24050008 */ li $a1, 8 -/* 0884BC 800878BC 1040000C */ beqz $v0, .L800878F0 -/* 0884C0 800878C0 02002025 */ move $a0, $s0 -/* 0884C4 800878C4 0C01C870 */ jal func_800721C0 -/* 0884C8 800878C8 24050008 */ li $a1, 8 -/* 0884CC 800878CC 0C021D47 */ jal func_8008751C -/* 0884D0 800878D0 02002025 */ move $a0, $s0 -/* 0884D4 800878D4 001078C0 */ sll $t7, $s0, 3 -/* 0884D8 800878D8 8FAE002C */ lw $t6, 0x2c($sp) -/* 0884DC 800878DC 01F07823 */ subu $t7, $t7, $s0 -/* 0884E0 800878E0 000F7940 */ sll $t7, $t7, 5 -/* 0884E4 800878E4 3C018016 */ lui $at, %hi(D_80165CC8) # 0x8016 -/* 0884E8 800878E8 002F0821 */ addu $at, $at, $t7 -/* 0884EC 800878EC A42E5CC8 */ sh $t6, %lo(D_80165CC8)($at) # 0x5cc8($at) -.L800878F0: -/* 0884F0 800878F0 0010C0C0 */ sll $t8, $s0, 3 -/* 0884F4 800878F4 0310C023 */ subu $t8, $t8, $s0 -/* 0884F8 800878F8 3C198016 */ lui $t9, %hi(D_80165C18) # $t9, 0x8016 -/* 0884FC 800878FC 27395C18 */ addiu $t9, %lo(D_80165C18) # addiu $t9, $t9, 0x5c18 -/* 088500 80087900 0018C140 */ sll $t8, $t8, 5 -/* 088504 80087904 03191021 */ addu $v0, $t8, $t9 -/* 088508 80087908 844800B0 */ lh $t0, 0xb0($v0) -/* 08850C 8008790C 02002025 */ move $a0, $s0 -/* 088510 80087910 2509FFFF */ addiu $t1, $t0, -1 -/* 088514 80087914 A44900B0 */ sh $t1, 0xb0($v0) -/* 088518 80087918 844A00B0 */ lh $t2, 0xb0($v0) -/* 08851C 8008791C 05410006 */ bgez $t2, .L80087938 -/* 088520 80087920 00000000 */ nop -/* 088524 80087924 0C01C87A */ jal func_800721E8 -/* 088528 80087928 24050008 */ li $a1, 8 -/* 08852C 8008792C 240B0001 */ li $t3, 1 -/* 088530 80087930 10000003 */ b .L80087940 -/* 088534 80087934 AFAB0024 */ sw $t3, 0x24($sp) -.L80087938: -/* 088538 80087938 0C021DD7 */ jal func_8008775C -/* 08853C 8008793C 02002025 */ move $a0, $s0 -.L80087940: -/* 088540 80087940 8FBF001C */ lw $ra, 0x1c($sp) -/* 088544 80087944 8FA20024 */ lw $v0, 0x24($sp) -/* 088548 80087948 8FB00018 */ lw $s0, 0x18($sp) -/* 08854C 8008794C 03E00008 */ jr $ra -/* 088550 80087950 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/asm/non_matchings/code_80086E70/func_80087954.s b/asm/non_matchings/code_80086E70/func_80087954.s deleted file mode 100644 index a9b95711c..000000000 --- a/asm/non_matchings/code_80086E70/func_80087954.s +++ /dev/null @@ -1,50 +0,0 @@ -glabel func_80087954 -/* 088554 80087954 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 088558 80087958 AFBF001C */ sw $ra, 0x1c($sp) -/* 08855C 8008795C AFB00018 */ sw $s0, 0x18($sp) -/* 088560 80087960 AFA5002C */ sw $a1, 0x2c($sp) -/* 088564 80087964 00808025 */ move $s0, $a0 -/* 088568 80087968 AFA00024 */ sw $zero, 0x24($sp) -/* 08856C 8008796C 0C01C89C */ jal func_80072270 -/* 088570 80087970 24050008 */ li $a1, 8 -/* 088574 80087974 1040000C */ beqz $v0, .L800879A8 -/* 088578 80087978 02002025 */ move $a0, $s0 -/* 08857C 8008797C 0C01C870 */ jal func_800721C0 -/* 088580 80087980 24050008 */ li $a1, 8 -/* 088584 80087984 0C021D88 */ jal func_80087620 -/* 088588 80087988 02002025 */ move $a0, $s0 -/* 08858C 8008798C 001078C0 */ sll $t7, $s0, 3 -/* 088590 80087990 8FAE002C */ lw $t6, 0x2c($sp) -/* 088594 80087994 01F07823 */ subu $t7, $t7, $s0 -/* 088598 80087998 000F7940 */ sll $t7, $t7, 5 -/* 08859C 8008799C 3C018016 */ lui $at, %hi(D_80165CC8) # 0x8016 -/* 0885A0 800879A0 002F0821 */ addu $at, $at, $t7 -/* 0885A4 800879A4 A42E5CC8 */ sh $t6, %lo(D_80165CC8)($at) # 0x5cc8($at) -.L800879A8: -/* 0885A8 800879A8 0010C0C0 */ sll $t8, $s0, 3 -/* 0885AC 800879AC 0310C023 */ subu $t8, $t8, $s0 -/* 0885B0 800879B0 3C198016 */ lui $t9, %hi(D_80165C18) # $t9, 0x8016 -/* 0885B4 800879B4 27395C18 */ addiu $t9, %lo(D_80165C18) # addiu $t9, $t9, 0x5c18 -/* 0885B8 800879B8 0018C140 */ sll $t8, $t8, 5 -/* 0885BC 800879BC 03191021 */ addu $v0, $t8, $t9 -/* 0885C0 800879C0 844800B0 */ lh $t0, 0xb0($v0) -/* 0885C4 800879C4 02002025 */ move $a0, $s0 -/* 0885C8 800879C8 2509FFFF */ addiu $t1, $t0, -1 -/* 0885CC 800879CC A44900B0 */ sh $t1, 0xb0($v0) -/* 0885D0 800879D0 844A00B0 */ lh $t2, 0xb0($v0) -/* 0885D4 800879D4 05410006 */ bgez $t2, .L800879F0 -/* 0885D8 800879D8 00000000 */ nop -/* 0885DC 800879DC 0C01C87A */ jal func_800721E8 -/* 0885E0 800879E0 24050008 */ li $a1, 8 -/* 0885E4 800879E4 240B0001 */ li $t3, 1 -/* 0885E8 800879E8 10000003 */ b .L800879F8 -/* 0885EC 800879EC AFAB0024 */ sw $t3, 0x24($sp) -.L800879F0: -/* 0885F0 800879F0 0C021DD7 */ jal func_8008775C -/* 0885F4 800879F4 02002025 */ move $a0, $s0 -.L800879F8: -/* 0885F8 800879F8 8FBF001C */ lw $ra, 0x1c($sp) -/* 0885FC 800879FC 8FA20024 */ lw $v0, 0x24($sp) -/* 088600 80087A00 8FB00018 */ lw $s0, 0x18($sp) -/* 088604 80087A04 03E00008 */ jr $ra -/* 088608 80087A08 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/asm/non_matchings/code_80086E70/func_80087A0C.s b/asm/non_matchings/code_80086E70/func_80087A0C.s deleted file mode 100644 index 18dabe0da..000000000 --- a/asm/non_matchings/code_80086E70/func_80087A0C.s +++ /dev/null @@ -1,98 +0,0 @@ -glabel func_80087A0C -/* 08860C 80087A0C 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 088610 80087A10 AFBF001C */ sw $ra, 0x1c($sp) -/* 088614 80087A14 AFB00018 */ sw $s0, 0x18($sp) -/* 088618 80087A18 AFA5003C */ sw $a1, 0x3c($sp) -/* 08861C 80087A1C 00808025 */ move $s0, $a0 -/* 088620 80087A20 AFA60040 */ sw $a2, 0x40($sp) -/* 088624 80087A24 AFA70044 */ sw $a3, 0x44($sp) -/* 088628 80087A28 AFA0002C */ sw $zero, 0x2c($sp) -/* 08862C 80087A2C 0C01C89C */ jal func_80072270 -/* 088630 80087A30 24050008 */ li $a1, 8 -/* 088634 80087A34 1040003A */ beqz $v0, .L80087B20 -/* 088638 80087A38 02002025 */ move $a0, $s0 -/* 08863C 80087A3C 0C01C870 */ jal func_800721C0 -/* 088640 80087A40 24050008 */ li $a1, 8 -/* 088644 80087A44 87AE0042 */ lh $t6, 0x42($sp) -/* 088648 80087A48 87AF003E */ lh $t7, 0x3e($sp) -/* 08864C 80087A4C 87A8004A */ lh $t0, 0x4a($sp) -/* 088650 80087A50 87A90046 */ lh $t1, 0x46($sp) -/* 088654 80087A54 01CF1023 */ subu $v0, $t6, $t7 -/* 088658 80087A58 0002C400 */ sll $t8, $v0, 0x10 -/* 08865C 80087A5C 00181403 */ sra $v0, $t8, 0x10 -/* 088660 80087A60 00420019 */ multu $v0, $v0 -/* 088664 80087A64 01092023 */ subu $a0, $t0, $t1 -/* 088668 80087A68 00045400 */ sll $t2, $a0, 0x10 -/* 08866C 80087A6C 000A2403 */ sra $a0, $t2, 0x10 -/* 088670 80087A70 AFA40024 */ sw $a0, 0x24($sp) -/* 088674 80087A74 AFA20028 */ sw $v0, 0x28($sp) -/* 088678 80087A78 00006012 */ mflo $t4 -/* 08867C 80087A7C 00000000 */ nop -/* 088680 80087A80 00000000 */ nop -/* 088684 80087A84 00840019 */ multu $a0, $a0 -/* 088688 80087A88 00006812 */ mflo $t5 -/* 08868C 80087A8C 018D7021 */ addu $t6, $t4, $t5 -/* 088690 80087A90 448E2000 */ mtc1 $t6, $f4 -/* 088694 80087A94 0C033850 */ jal sqrtf -/* 088698 80087A98 46802320 */ cvt.s.w $f12, $f4 -/* 08869C 80087A9C 4600048D */ trunc.w.s $f18, $f0 -/* 0886A0 80087AA0 8FA20028 */ lw $v0, 0x28($sp) -/* 0886A4 80087AA4 8FA40024 */ lw $a0, 0x24($sp) -/* 0886A8 80087AA8 44808000 */ mtc1 $zero, $f16 -/* 0886AC 80087AAC 44189000 */ mfc1 $t8, $f18 -/* 0886B0 80087AB0 44829000 */ mtc1 $v0, $f18 -/* 0886B4 80087AB4 44845000 */ mtc1 $a0, $f10 -/* 0886B8 80087AB8 0010C8C0 */ sll $t9, $s0, 3 -/* 0886BC 80087ABC 46809320 */ cvt.s.w $f12, $f18 -/* 0886C0 80087AC0 0330C823 */ subu $t9, $t9, $s0 -/* 0886C4 80087AC4 3C088016 */ lui $t0, %hi(D_80165C18) # $t0, 0x8016 -/* 0886C8 80087AC8 0019C940 */ sll $t9, $t9, 5 -/* 0886CC 80087ACC 25085C18 */ addiu $t0, %lo(D_80165C18) # addiu $t0, $t0, 0x5c18 -/* 0886D0 80087AD0 468053A0 */ cvt.s.w $f14, $f10 -/* 0886D4 80087AD4 03281821 */ addu $v1, $t9, $t0 -/* 0886D8 80087AD8 A7B80036 */ sh $t8, 0x36($sp) -/* 0886DC 80087ADC E4700014 */ swc1 $f16, 0x14($v1) -/* 0886E0 80087AE0 0C0ADE0C */ jal atan2s -/* 0886E4 80087AE4 AFA30020 */ sw $v1, 0x20($sp) -/* 0886E8 80087AE8 8FA30020 */ lw $v1, 0x20($sp) -/* 0886EC 80087AEC 02002025 */ move $a0, $s0 -/* 0886F0 80087AF0 0C021D47 */ jal func_8008751C -/* 0886F4 80087AF4 A46200C0 */ sh $v0, 0xc0($v1) -/* 0886F8 80087AF8 87A90036 */ lh $t1, 0x36($sp) -/* 0886FC 80087AFC 8FA30020 */ lw $v1, 0x20($sp) -/* 088700 80087B00 44899000 */ mtc1 $t1, $f18 -/* 088704 80087B04 C4660034 */ lwc1 $f6, 0x34($v1) -/* 088708 80087B08 46809120 */ cvt.s.w $f4, $f18 -/* 08870C 80087B0C 46062203 */ div.s $f8, $f4, $f6 -/* 088710 80087B10 4600428D */ trunc.w.s $f10, $f8 -/* 088714 80087B14 440B5000 */ mfc1 $t3, $f10 -/* 088718 80087B18 00000000 */ nop -/* 08871C 80087B1C A46B00B0 */ sh $t3, 0xb0($v1) -.L80087B20: -/* 088720 80087B20 001060C0 */ sll $t4, $s0, 3 -/* 088724 80087B24 01906023 */ subu $t4, $t4, $s0 -/* 088728 80087B28 3C0D8016 */ lui $t5, %hi(D_80165C18) # $t5, 0x8016 -/* 08872C 80087B2C 25AD5C18 */ addiu $t5, %lo(D_80165C18) # addiu $t5, $t5, 0x5c18 -/* 088730 80087B30 000C6140 */ sll $t4, $t4, 5 -/* 088734 80087B34 018D1821 */ addu $v1, $t4, $t5 -/* 088738 80087B38 846E00B0 */ lh $t6, 0xb0($v1) -/* 08873C 80087B3C 02002025 */ move $a0, $s0 -/* 088740 80087B40 25CFFFFF */ addiu $t7, $t6, -1 -/* 088744 80087B44 A46F00B0 */ sh $t7, 0xb0($v1) -/* 088748 80087B48 847800B0 */ lh $t8, 0xb0($v1) -/* 08874C 80087B4C 07010006 */ bgez $t8, .L80087B68 -/* 088750 80087B50 00000000 */ nop -/* 088754 80087B54 0C01C87A */ jal func_800721E8 -/* 088758 80087B58 24050008 */ li $a1, 8 -/* 08875C 80087B5C 24190001 */ li $t9, 1 -/* 088760 80087B60 10000003 */ b .L80087B70 -/* 088764 80087B64 AFB9002C */ sw $t9, 0x2c($sp) -.L80087B68: -/* 088768 80087B68 0C021DD7 */ jal func_8008775C -/* 08876C 80087B6C 02002025 */ move $a0, $s0 -.L80087B70: -/* 088770 80087B70 8FBF001C */ lw $ra, 0x1c($sp) -/* 088774 80087B74 8FA2002C */ lw $v0, 0x2c($sp) -/* 088778 80087B78 8FB00018 */ lw $s0, 0x18($sp) -/* 08877C 80087B7C 03E00008 */ jr $ra -/* 088780 80087B80 27BD0038 */ addiu $sp, $sp, 0x38 diff --git a/asm/non_matchings/code_80086E70/func_80087B84.s b/asm/non_matchings/code_80086E70/func_80087B84.s deleted file mode 100644 index a74c672f3..000000000 --- a/asm/non_matchings/code_80086E70/func_80087B84.s +++ /dev/null @@ -1,52 +0,0 @@ -glabel func_80087B84 -/* 088784 80087B84 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 088788 80087B88 AFBF001C */ sw $ra, 0x1c($sp) -/* 08878C 80087B8C AFB00018 */ sw $s0, 0x18($sp) -/* 088790 80087B90 AFA5002C */ sw $a1, 0x2c($sp) -/* 088794 80087B94 00808025 */ move $s0, $a0 -/* 088798 80087B98 AFA60030 */ sw $a2, 0x30($sp) -/* 08879C 80087B9C AFA00024 */ sw $zero, 0x24($sp) -/* 0887A0 80087BA0 0C01C89C */ jal func_80072270 -/* 0887A4 80087BA4 24050008 */ li $a1, 8 -/* 0887A8 80087BA8 1040000B */ beqz $v0, .L80087BD8 -/* 0887AC 80087BAC 02002025 */ move $a0, $s0 -/* 0887B0 80087BB0 0C01C870 */ jal func_800721C0 -/* 0887B4 80087BB4 24050008 */ li $a1, 8 -/* 0887B8 80087BB8 C7A4002C */ lwc1 $f4, 0x2c($sp) -/* 0887BC 80087BBC 001070C0 */ sll $t6, $s0, 3 -/* 0887C0 80087BC0 01D07023 */ subu $t6, $t6, $s0 -/* 0887C4 80087BC4 46002187 */ neg.s $f6, $f4 -/* 0887C8 80087BC8 000E7140 */ sll $t6, $t6, 5 -/* 0887CC 80087BCC 3C018016 */ lui $at, %hi(D_80165C54) -/* 0887D0 80087BD0 002E0821 */ addu $at, $at, $t6 -/* 0887D4 80087BD4 E4265C54 */ swc1 $f6, %lo(D_80165C54)($at) -.L80087BD8: -/* 0887D8 80087BD8 001078C0 */ sll $t7, $s0, 3 -/* 0887DC 80087BDC 01F07823 */ subu $t7, $t7, $s0 -/* 0887E0 80087BE0 3C188016 */ lui $t8, %hi(D_80165C18) # $t8, 0x8016 -/* 0887E4 80087BE4 27185C18 */ addiu $t8, %lo(D_80165C18) # addiu $t8, $t8, 0x5c18 -/* 0887E8 80087BE8 000F7940 */ sll $t7, $t7, 5 -/* 0887EC 80087BEC 01F8C821 */ addu $t9, $t7, $t8 -/* 0887F0 80087BF0 AFB90020 */ sw $t9, 0x20($sp) -/* 0887F4 80087BF4 0C021DF1 */ jal func_800877C4 -/* 0887F8 80087BF8 02002025 */ move $a0, $s0 -/* 0887FC 80087BFC 8FA80020 */ lw $t0, 0x20($sp) -/* 088800 80087C00 C7A80030 */ lwc1 $f8, 0x30($sp) -/* 088804 80087C04 02002025 */ move $a0, $s0 -/* 088808 80087C08 C50A0008 */ lwc1 $f10, 8($t0) -/* 08880C 80087C0C 4608503E */ c.le.s $f10, $f8 -/* 088810 80087C10 00000000 */ nop -/* 088814 80087C14 45020008 */ bc1fl .L80087C38 -/* 088818 80087C18 8FBF001C */ lw $ra, 0x1c($sp) -/* 08881C 80087C1C 0C01C87A */ jal func_800721E8 -/* 088820 80087C20 24050008 */ li $a1, 8 -/* 088824 80087C24 0C021BF5 */ jal func_80086FD4 -/* 088828 80087C28 02002025 */ move $a0, $s0 -/* 08882C 80087C2C 24090001 */ li $t1, 1 -/* 088830 80087C30 AFA90024 */ sw $t1, 0x24($sp) -/* 088834 80087C34 8FBF001C */ lw $ra, 0x1c($sp) -.L80087C38: -/* 088838 80087C38 8FA20024 */ lw $v0, 0x24($sp) -/* 08883C 80087C3C 8FB00018 */ lw $s0, 0x18($sp) -/* 088840 80087C40 03E00008 */ jr $ra -/* 088844 80087C44 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/asm/non_matchings/code_80086E70/func_80087C48.s b/asm/non_matchings/code_80086E70/func_80087C48.s deleted file mode 100644 index 0c668296c..000000000 --- a/asm/non_matchings/code_80086E70/func_80087C48.s +++ /dev/null @@ -1,59 +0,0 @@ -glabel func_80087C48 -/* 088848 80087C48 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 08884C 80087C4C AFBF001C */ sw $ra, 0x1c($sp) -/* 088850 80087C50 AFB00018 */ sw $s0, 0x18($sp) -/* 088854 80087C54 AFA5002C */ sw $a1, 0x2c($sp) -/* 088858 80087C58 00808025 */ move $s0, $a0 -/* 08885C 80087C5C AFA60030 */ sw $a2, 0x30($sp) -/* 088860 80087C60 AFA70034 */ sw $a3, 0x34($sp) -/* 088864 80087C64 AFA00024 */ sw $zero, 0x24($sp) -/* 088868 80087C68 0C01C89C */ jal func_80072270 -/* 08886C 80087C6C 24050008 */ li $a1, 8 -/* 088870 80087C70 1040000D */ beqz $v0, .L80087CA8 -/* 088874 80087C74 02002025 */ move $a0, $s0 -/* 088878 80087C78 0C01C870 */ jal func_800721C0 -/* 08887C 80087C7C 24050008 */ li $a1, 8 -/* 088880 80087C80 001070C0 */ sll $t6, $s0, 3 -/* 088884 80087C84 01D07023 */ subu $t6, $t6, $s0 -/* 088888 80087C88 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 08888C 80087C8C C7A4002C */ lwc1 $f4, 0x2c($sp) -/* 088890 80087C90 8FB80034 */ lw $t8, 0x34($sp) -/* 088894 80087C94 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 088898 80087C98 000E7140 */ sll $t6, $t6, 5 -/* 08889C 80087C9C 01CF1021 */ addu $v0, $t6, $t7 -/* 0888A0 80087CA0 E444003C */ swc1 $f4, 0x3c($v0) -/* 0888A4 80087CA4 A45800B0 */ sh $t8, 0xb0($v0) -.L80087CA8: -/* 0888A8 80087CA8 0010C8C0 */ sll $t9, $s0, 3 -/* 0888AC 80087CAC 0330C823 */ subu $t9, $t9, $s0 -/* 0888B0 80087CB0 3C088016 */ lui $t0, %hi(D_80165C18) # $t0, 0x8016 -/* 0888B4 80087CB4 25085C18 */ addiu $t0, %lo(D_80165C18) # addiu $t0, $t0, 0x5c18 -/* 0888B8 80087CB8 0019C940 */ sll $t9, $t9, 5 -/* 0888BC 80087CBC 03281021 */ addu $v0, $t9, $t0 -/* 0888C0 80087CC0 844900B0 */ lh $t1, 0xb0($v0) -/* 0888C4 80087CC4 02002025 */ move $a0, $s0 -/* 0888C8 80087CC8 252AFFFF */ addiu $t2, $t1, -1 -/* 0888CC 80087CCC A44A00B0 */ sh $t2, 0xb0($v0) -/* 0888D0 80087CD0 844B00B0 */ lh $t3, 0xb0($v0) -/* 0888D4 80087CD4 C7A80030 */ lwc1 $f8, 0x30($sp) -/* 0888D8 80087CD8 05630009 */ bgezl $t3, .L80087D00 -/* 0888DC 80087CDC C446003C */ lwc1 $f6, 0x3c($v0) -/* 0888E0 80087CE0 0C01C87A */ jal func_800721E8 -/* 0888E4 80087CE4 24050008 */ li $a1, 8 -/* 0888E8 80087CE8 0C021BF5 */ jal func_80086FD4 -/* 0888EC 80087CEC 02002025 */ move $a0, $s0 -/* 0888F0 80087CF0 240C0001 */ li $t4, 1 -/* 0888F4 80087CF4 10000006 */ b .L80087D10 -/* 0888F8 80087CF8 AFAC0024 */ sw $t4, 0x24($sp) -/* 0888FC 80087CFC C446003C */ lwc1 $f6, 0x3c($v0) -.L80087D00: -/* 088900 80087D00 02002025 */ move $a0, $s0 -/* 088904 80087D04 46083281 */ sub.s $f10, $f6, $f8 -/* 088908 80087D08 0C021DF1 */ jal func_800877C4 -/* 08890C 80087D0C E44A003C */ swc1 $f10, 0x3c($v0) -.L80087D10: -/* 088910 80087D10 8FBF001C */ lw $ra, 0x1c($sp) -/* 088914 80087D14 8FA20024 */ lw $v0, 0x24($sp) -/* 088918 80087D18 8FB00018 */ lw $s0, 0x18($sp) -/* 08891C 80087D1C 03E00008 */ jr $ra -/* 088920 80087D20 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/asm/non_matchings/code_80086E70/func_80087D24.s b/asm/non_matchings/code_80086E70/func_80087D24.s deleted file mode 100644 index f43220b50..000000000 --- a/asm/non_matchings/code_80086E70/func_80087D24.s +++ /dev/null @@ -1,60 +0,0 @@ -glabel func_80087D24 -/* 088924 80087D24 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 088928 80087D28 AFBF001C */ sw $ra, 0x1c($sp) -/* 08892C 80087D2C AFB00018 */ sw $s0, 0x18($sp) -/* 088930 80087D30 AFA5002C */ sw $a1, 0x2c($sp) -/* 088934 80087D34 00808025 */ move $s0, $a0 -/* 088938 80087D38 AFA60030 */ sw $a2, 0x30($sp) -/* 08893C 80087D3C AFA70034 */ sw $a3, 0x34($sp) -/* 088940 80087D40 AFA00024 */ sw $zero, 0x24($sp) -/* 088944 80087D44 0C01C89C */ jal func_80072270 -/* 088948 80087D48 24050008 */ li $a1, 8 -/* 08894C 80087D4C 1040000A */ beqz $v0, .L80087D78 -/* 088950 80087D50 02002025 */ move $a0, $s0 -/* 088954 80087D54 0C01C870 */ jal func_800721C0 -/* 088958 80087D58 24050008 */ li $a1, 8 -/* 08895C 80087D5C 001070C0 */ sll $t6, $s0, 3 -/* 088960 80087D60 C7A4002C */ lwc1 $f4, 0x2c($sp) -/* 088964 80087D64 01D07023 */ subu $t6, $t6, $s0 -/* 088968 80087D68 000E7140 */ sll $t6, $t6, 5 -/* 08896C 80087D6C 3C018016 */ lui $at, %hi(D_80165C54) -/* 088970 80087D70 002E0821 */ addu $at, $at, $t6 -/* 088974 80087D74 E4245C54 */ swc1 $f4, %lo(D_80165C54)($at) -.L80087D78: -/* 088978 80087D78 001078C0 */ sll $t7, $s0, 3 -/* 08897C 80087D7C 01F07823 */ subu $t7, $t7, $s0 -/* 088980 80087D80 3C188016 */ lui $t8, %hi(D_80165C18) # $t8, 0x8016 -/* 088984 80087D84 27185C18 */ addiu $t8, %lo(D_80165C18) # addiu $t8, $t8, 0x5c18 -/* 088988 80087D88 000F7940 */ sll $t7, $t7, 5 -/* 08898C 80087D8C 01F81021 */ addu $v0, $t7, $t8 -/* 088990 80087D90 C446003C */ lwc1 $f6, 0x3c($v0) -/* 088994 80087D94 C7A80030 */ lwc1 $f8, 0x30($sp) -/* 088998 80087D98 AFA20020 */ sw $v0, 0x20($sp) -/* 08899C 80087D9C 02002025 */ move $a0, $s0 -/* 0889A0 80087DA0 46083281 */ sub.s $f10, $f6, $f8 -/* 0889A4 80087DA4 0C021DF1 */ jal func_800877C4 -/* 0889A8 80087DA8 E44A003C */ swc1 $f10, 0x3c($v0) -/* 0889AC 80087DAC 8FA20020 */ lw $v0, 0x20($sp) -/* 0889B0 80087DB0 C7B00034 */ lwc1 $f16, 0x34($sp) -/* 0889B4 80087DB4 02002025 */ move $a0, $s0 -/* 0889B8 80087DB8 C452002C */ lwc1 $f18, 0x2c($v0) -/* 0889BC 80087DBC 24050008 */ li $a1, 8 -/* 0889C0 80087DC0 4610903E */ c.le.s $f18, $f16 -/* 0889C4 80087DC4 00000000 */ nop -/* 0889C8 80087DC8 4502000B */ bc1fl .L80087DF8 -/* 0889CC 80087DCC 8FBF001C */ lw $ra, 0x1c($sp) -/* 0889D0 80087DD0 0C01C87A */ jal func_800721E8 -/* 0889D4 80087DD4 AFA20020 */ sw $v0, 0x20($sp) -/* 0889D8 80087DD8 8FA20020 */ lw $v0, 0x20($sp) -/* 0889DC 80087DDC C7A40034 */ lwc1 $f4, 0x34($sp) -/* 0889E0 80087DE0 02002025 */ move $a0, $s0 -/* 0889E4 80087DE4 0C021BF5 */ jal func_80086FD4 -/* 0889E8 80087DE8 E444002C */ swc1 $f4, 0x2c($v0) -/* 0889EC 80087DEC 24190001 */ li $t9, 1 -/* 0889F0 80087DF0 AFB90024 */ sw $t9, 0x24($sp) -/* 0889F4 80087DF4 8FBF001C */ lw $ra, 0x1c($sp) -.L80087DF8: -/* 0889F8 80087DF8 8FA20024 */ lw $v0, 0x24($sp) -/* 0889FC 80087DFC 8FB00018 */ lw $s0, 0x18($sp) -/* 088A00 80087E00 03E00008 */ jr $ra -/* 088A04 80087E04 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/asm/non_matchings/code_80086E70/func_80087E08.s b/asm/non_matchings/code_80086E70/func_80087E08.s deleted file mode 100644 index dea6646bf..000000000 --- a/asm/non_matchings/code_80086E70/func_80087E08.s +++ /dev/null @@ -1,148 +0,0 @@ -glabel func_80087E08 -/* 088A08 80087E08 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 088A0C 80087E0C AFBF001C */ sw $ra, 0x1c($sp) -/* 088A10 80087E10 AFB00018 */ sw $s0, 0x18($sp) -/* 088A14 80087E14 AFA50034 */ sw $a1, 0x34($sp) -/* 088A18 80087E18 00808025 */ move $s0, $a0 -/* 088A1C 80087E1C AFA60038 */ sw $a2, 0x38($sp) -/* 088A20 80087E20 AFA7003C */ sw $a3, 0x3c($sp) -/* 088A24 80087E24 AFA0002C */ sw $zero, 0x2c($sp) -/* 088A28 80087E28 0C01C89C */ jal func_80072270 -/* 088A2C 80087E2C 24050008 */ li $a1, 8 -/* 088A30 80087E30 10400019 */ beqz $v0, .L80087E98 -/* 088A34 80087E34 02002025 */ move $a0, $s0 -/* 088A38 80087E38 0C01C870 */ jal func_800721C0 -/* 088A3C 80087E3C 24050008 */ li $a1, 8 -/* 088A40 80087E40 001070C0 */ sll $t6, $s0, 3 -/* 088A44 80087E44 01D07023 */ subu $t6, $t6, $s0 -/* 088A48 80087E48 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 088A4C 80087E4C 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 088A50 80087E50 000E7140 */ sll $t6, $t6, 5 -/* 088A54 80087E54 01CF1021 */ addu $v0, $t6, $t7 -/* 088A58 80087E58 44800000 */ mtc1 $zero, $f0 -/* 088A5C 80087E5C C7A4003C */ lwc1 $f4, 0x3c($sp) -/* 088A60 80087E60 C7A60034 */ lwc1 $f6, 0x34($sp) -/* 088A64 80087E64 87B80042 */ lh $t8, 0x42($sp) -/* 088A68 80087E68 AFA20024 */ sw $v0, 0x24($sp) -/* 088A6C 80087E6C 02002025 */ move $a0, $s0 -/* 088A70 80087E70 E4400030 */ swc1 $f0, 0x30($v0) -/* 088A74 80087E74 E440002C */ swc1 $f0, 0x2c($v0) -/* 088A78 80087E78 E4400028 */ swc1 $f0, 0x28($v0) -/* 088A7C 80087E7C E4440034 */ swc1 $f4, 0x34($v0) -/* 088A80 80087E80 E446003C */ swc1 $f6, 0x3c($v0) -/* 088A84 80087E84 0C021D47 */ jal func_8008751C -/* 088A88 80087E88 A45800C0 */ sh $t8, 0xc0($v0) -/* 088A8C 80087E8C 8FA20024 */ lw $v0, 0x24($sp) -/* 088A90 80087E90 8FB90044 */ lw $t9, 0x44($sp) -/* 088A94 80087E94 A45900B0 */ sh $t9, 0xb0($v0) -.L80087E98: -/* 088A98 80087E98 001040C0 */ sll $t0, $s0, 3 -/* 088A9C 80087E9C 01104023 */ subu $t0, $t0, $s0 -/* 088AA0 80087EA0 3C098016 */ lui $t1, %hi(D_80165C18) # $t1, 0x8016 -/* 088AA4 80087EA4 25295C18 */ addiu $t1, %lo(D_80165C18) # addiu $t1, $t1, 0x5c18 -/* 088AA8 80087EA8 00084140 */ sll $t0, $t0, 5 -/* 088AAC 80087EAC 01091021 */ addu $v0, $t0, $t1 -/* 088AB0 80087EB0 844A00B0 */ lh $t2, 0xb0($v0) -/* 088AB4 80087EB4 02002025 */ move $a0, $s0 -/* 088AB8 80087EB8 254BFFFF */ addiu $t3, $t2, -1 -/* 088ABC 80087EBC A44B00B0 */ sh $t3, 0xb0($v0) -/* 088AC0 80087EC0 844C00B0 */ lh $t4, 0xb0($v0) -/* 088AC4 80087EC4 C7AA0038 */ lwc1 $f10, 0x38($sp) -/* 088AC8 80087EC8 05830009 */ bgezl $t4, .L80087EF0 -/* 088ACC 80087ECC C448003C */ lwc1 $f8, 0x3c($v0) -/* 088AD0 80087ED0 0C01C87A */ jal func_800721E8 -/* 088AD4 80087ED4 24050008 */ li $a1, 8 -/* 088AD8 80087ED8 0C021BF5 */ jal func_80086FD4 -/* 088ADC 80087EDC 02002025 */ move $a0, $s0 -/* 088AE0 80087EE0 240D0001 */ li $t5, 1 -/* 088AE4 80087EE4 10000006 */ b .L80087F00 -/* 088AE8 80087EE8 AFAD002C */ sw $t5, 0x2c($sp) -/* 088AEC 80087EEC C448003C */ lwc1 $f8, 0x3c($v0) -.L80087EF0: -/* 088AF0 80087EF0 02002025 */ move $a0, $s0 -/* 088AF4 80087EF4 460A4401 */ sub.s $f16, $f8, $f10 -/* 088AF8 80087EF8 0C021DC4 */ jal func_80087710 -/* 088AFC 80087EFC E450003C */ swc1 $f16, 0x3c($v0) -.L80087F00: -/* 088B00 80087F00 8FBF001C */ lw $ra, 0x1c($sp) -/* 088B04 80087F04 8FA2002C */ lw $v0, 0x2c($sp) -/* 088B08 80087F08 8FB00018 */ lw $s0, 0x18($sp) -/* 088B0C 80087F0C 03E00008 */ jr $ra -/* 088B10 80087F10 27BD0030 */ addiu $sp, $sp, 0x30 - -/* 088B14 80087F14 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 088B18 80087F18 AFBF001C */ sw $ra, 0x1c($sp) -/* 088B1C 80087F1C AFB00018 */ sw $s0, 0x18($sp) -/* 088B20 80087F20 AFA50034 */ sw $a1, 0x34($sp) -/* 088B24 80087F24 00808025 */ move $s0, $a0 -/* 088B28 80087F28 AFA60038 */ sw $a2, 0x38($sp) -/* 088B2C 80087F2C AFA7003C */ sw $a3, 0x3c($sp) -/* 088B30 80087F30 AFA0002C */ sw $zero, 0x2c($sp) -/* 088B34 80087F34 0C01C89C */ jal func_80072270 -/* 088B38 80087F38 24050008 */ li $a1, 8 -/* 088B3C 80087F3C 1040001D */ beqz $v0, .L80087FB4 -/* 088B40 80087F40 02002025 */ move $a0, $s0 -/* 088B44 80087F44 0C01C870 */ jal func_800721C0 -/* 088B48 80087F48 24050008 */ li $a1, 8 -/* 088B4C 80087F4C 001070C0 */ sll $t6, $s0, 3 -/* 088B50 80087F50 01D07023 */ subu $t6, $t6, $s0 -/* 088B54 80087F54 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 088B58 80087F58 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 088B5C 80087F5C 000E7140 */ sll $t6, $t6, 5 -/* 088B60 80087F60 01CF1021 */ addu $v0, $t6, $t7 -/* 088B64 80087F64 44800000 */ mtc1 $zero, $f0 -/* 088B68 80087F68 C7A4003C */ lwc1 $f4, 0x3c($sp) -/* 088B6C 80087F6C C7A60034 */ lwc1 $f6, 0x34($sp) -/* 088B70 80087F70 87B80042 */ lh $t8, 0x42($sp) -/* 088B74 80087F74 AFA20024 */ sw $v0, 0x24($sp) -/* 088B78 80087F78 02002025 */ move $a0, $s0 -/* 088B7C 80087F7C E4400030 */ swc1 $f0, 0x30($v0) -/* 088B80 80087F80 E440002C */ swc1 $f0, 0x2c($v0) -/* 088B84 80087F84 E4400028 */ swc1 $f0, 0x28($v0) -/* 088B88 80087F88 E4440034 */ swc1 $f4, 0x34($v0) -/* 088B8C 80087F8C E446003C */ swc1 $f6, 0x3c($v0) -/* 088B90 80087F90 0C021D47 */ jal func_8008751C -/* 088B94 80087F94 A45800C0 */ sh $t8, 0xc0($v0) -/* 088B98 80087F98 3C01800E */ lui $at, %hi(gVBlankTimer) # $at, 0x800e -/* 088B9C 80087F9C C428C594 */ lwc1 $f8, %lo(gVBlankTimer)($at) -/* 088BA0 80087FA0 8FA20024 */ lw $v0, 0x24($sp) -/* 088BA4 80087FA4 4600428D */ trunc.w.s $f10, $f8 -/* 088BA8 80087FA8 44085000 */ mfc1 $t0, $f10 -/* 088BAC 80087FAC 00000000 */ nop -/* 088BB0 80087FB0 A44800B0 */ sh $t0, 0xb0($v0) -.L80087FB4: -/* 088BB4 80087FB4 8FAB0044 */ lw $t3, 0x44($sp) -/* 088BB8 80087FB8 001048C0 */ sll $t1, $s0, 3 -/* 088BBC 80087FBC 01304823 */ subu $t1, $t1, $s0 -/* 088BC0 80087FC0 448B8000 */ mtc1 $t3, $f16 -/* 088BC4 80087FC4 3C0A8016 */ lui $t2, %hi(D_80165C18) # $t2, 0x8016 -/* 088BC8 80087FC8 254A5C18 */ addiu $t2, %lo(D_80165C18) # addiu $t2, $t2, 0x5c18 -/* 088BCC 80087FCC 468084A0 */ cvt.s.w $f18, $f16 -/* 088BD0 80087FD0 00094940 */ sll $t1, $t1, 5 -/* 088BD4 80087FD4 012A1021 */ addu $v0, $t1, $t2 -/* 088BD8 80087FD8 C444002C */ lwc1 $f4, 0x2c($v0) -/* 088BDC 80087FDC 02002025 */ move $a0, $s0 -/* 088BE0 80087FE0 C7A80038 */ lwc1 $f8, 0x38($sp) -/* 088BE4 80087FE4 4612203E */ c.le.s $f4, $f18 -/* 088BE8 80087FE8 00000000 */ nop -/* 088BEC 80087FEC 45020009 */ bc1fl .L80088014 -/* 088BF0 80087FF0 C446003C */ lwc1 $f6, 0x3c($v0) -/* 088BF4 80087FF4 0C01C87A */ jal func_800721E8 -/* 088BF8 80087FF8 24050008 */ li $a1, 8 -/* 088BFC 80087FFC 0C021BF5 */ jal func_80086FD4 -/* 088C00 80088000 02002025 */ move $a0, $s0 -/* 088C04 80088004 240C0001 */ li $t4, 1 -/* 088C08 80088008 10000006 */ b .L80088024 -/* 088C0C 8008800C AFAC002C */ sw $t4, 0x2c($sp) -/* 088C10 80088010 C446003C */ lwc1 $f6, 0x3c($v0) -.L80088014: -/* 088C14 80088014 02002025 */ move $a0, $s0 -/* 088C18 80088018 46083281 */ sub.s $f10, $f6, $f8 -/* 088C1C 8008801C 0C021DC4 */ jal func_80087710 -/* 088C20 80088020 E44A003C */ swc1 $f10, 0x3c($v0) -.L80088024: -/* 088C24 80088024 8FBF001C */ lw $ra, 0x1c($sp) -/* 088C28 80088028 8FA2002C */ lw $v0, 0x2c($sp) -/* 088C2C 8008802C 8FB00018 */ lw $s0, 0x18($sp) -/* 088C30 80088030 03E00008 */ jr $ra -/* 088C34 80088034 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/asm/non_matchings/code_80086E70/func_80088038.s b/asm/non_matchings/code_80086E70/func_80088038.s deleted file mode 100644 index 822741bd9..000000000 --- a/asm/non_matchings/code_80086E70/func_80088038.s +++ /dev/null @@ -1,45 +0,0 @@ -glabel func_80088038 -/* 088C38 80088038 000478C0 */ sll $t7, $a0, 3 -/* 088C3C 8008803C 01E47823 */ subu $t7, $t7, $a0 -/* 088C40 80088040 3C188016 */ lui $t8, %hi(D_80165C18) # $t8, 0x8016 -/* 088C44 80088044 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 088C48 80088048 27185C18 */ addiu $t8, %lo(D_80165C18) # addiu $t8, $t8, 0x5c18 -/* 088C4C 8008804C 000F7940 */ sll $t7, $t7, 5 -/* 088C50 80088050 01F81021 */ addu $v0, $t7, $t8 -/* 088C54 80088054 945900C4 */ lhu $t9, 0xc4($v0) -/* 088C58 80088058 C4440028 */ lwc1 $f4, 0x28($v0) -/* 088C5C 8008805C C4460030 */ lwc1 $f6, 0x30($v0) -/* 088C60 80088060 AFBF0014 */ sw $ra, 0x14($sp) -/* 088C64 80088064 AFA40028 */ sw $a0, 0x28($sp) -/* 088C68 80088068 03264021 */ addu $t0, $t9, $a2 -/* 088C6C 8008806C AFA5002C */ sw $a1, 0x2c($sp) -/* 088C70 80088070 AFA60030 */ sw $a2, 0x30($sp) -/* 088C74 80088074 A44800C4 */ sh $t0, 0xc4($v0) -/* 088C78 80088078 3104FFFF */ andi $a0, $t0, 0xffff -/* 088C7C 8008807C AFA2001C */ sw $v0, 0x1c($sp) -/* 088C80 80088080 E7A40024 */ swc1 $f4, 0x24($sp) -/* 088C84 80088084 0C0AE006 */ jal sins -/* 088C88 80088088 E7A60020 */ swc1 $f6, 0x20($sp) -/* 088C8C 8008808C C7A8002C */ lwc1 $f8, 0x2c($sp) -/* 088C90 80088090 8FA2001C */ lw $v0, 0x1c($sp) -/* 088C94 80088094 46080282 */ mul.s $f10, $f0, $f8 -/* 088C98 80088098 944400C4 */ lhu $a0, 0xc4($v0) -/* 088C9C 8008809C 0C0AE00E */ jal coss -/* 088CA0 800880A0 E44A0028 */ swc1 $f10, 0x28($v0) -/* 088CA4 800880A4 C7B0002C */ lwc1 $f16, 0x2c($sp) -/* 088CA8 800880A8 8FA2001C */ lw $v0, 0x1c($sp) -/* 088CAC 800880AC C7A40024 */ lwc1 $f4, 0x24($sp) -/* 088CB0 800880B0 46100082 */ mul.s $f2, $f0, $f16 -/* 088CB4 800880B4 C7A80020 */ lwc1 $f8, 0x20($sp) -/* 088CB8 800880B8 C4520028 */ lwc1 $f18, 0x28($v0) -/* 088CBC 800880BC 8FBF0014 */ lw $ra, 0x14($sp) -/* 088CC0 800880C0 27BD0028 */ addiu $sp, $sp, 0x28 -/* 088CC4 800880C4 46049181 */ sub.s $f6, $f18, $f4 -/* 088CC8 800880C8 E4420030 */ swc1 $f2, 0x30($v0) -/* 088CCC 800880CC 46081281 */ sub.s $f10, $f2, $f8 -/* 088CD0 800880D0 E4460038 */ swc1 $f6, 0x38($v0) -/* 088CD4 800880D4 03E00008 */ jr $ra -/* 088CD8 800880D8 E44A0040 */ swc1 $f10, 0x40($v0) - -/* 088CDC 800880DC 03E00008 */ jr $ra -/* 088CE0 800880E0 00000000 */ nop diff --git a/asm/non_matchings/code_80086E70/func_80088538.s b/asm/non_matchings/code_80086E70/func_80088538.s deleted file mode 100644 index d1f6d84fd..000000000 --- a/asm/non_matchings/code_80086E70/func_80088538.s +++ /dev/null @@ -1,60 +0,0 @@ -glabel func_80088538 -/* 089138 80088538 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 08913C 8008853C AFBF0024 */ sw $ra, 0x24($sp) -/* 089140 80088540 AFB10020 */ sw $s1, 0x20($sp) -/* 089144 80088544 AFB0001C */ sw $s0, 0x1c($sp) -/* 089148 80088548 AFA40030 */ sw $a0, 0x30($sp) -/* 08914C 8008854C AFA0002C */ sw $zero, 0x2c($sp) -/* 089150 80088550 0C01C87A */ jal func_800721E8 -/* 089154 80088554 3C050080 */ lui $a1, 0x80 -/* 089158 80088558 8FA40030 */ lw $a0, 0x30($sp) -/* 08915C 8008855C 0C01C88F */ jal func_8007223C -/* 089160 80088560 24050400 */ li $a1, 1024 -/* 089164 80088564 10400027 */ beqz $v0, .L80088604 -/* 089168 80088568 3C118019 */ lui $s1, %hi(D_8018C3B0) # $s1, 0x8019 -/* 08916C 8008856C 8FAE0030 */ lw $t6, 0x30($sp) -/* 089170 80088570 3C188016 */ lui $t8, %hi(D_80165C18) # $t8, 0x8016 -/* 089174 80088574 27185C18 */ addiu $t8, %lo(D_80165C18) # addiu $t8, $t8, 0x5c18 -/* 089178 80088578 000E78C0 */ sll $t7, $t6, 3 -/* 08917C 8008857C 01EE7823 */ subu $t7, $t7, $t6 -/* 089180 80088580 000F7940 */ sll $t7, $t7, 5 -/* 089184 80088584 01F88021 */ addu $s0, $t7, $t8 -/* 089188 80088588 C604000C */ lwc1 $f4, 0xc($s0) -/* 08918C 8008858C 2631C3B0 */ addiu $s1, %lo(D_8018C3B0) # addiu $s1, $s1, -0x3c50 -/* 089190 80088590 02202025 */ move $a0, $s1 -/* 089194 80088594 8E060004 */ lw $a2, 4($s0) -/* 089198 80088598 3C054120 */ lui $a1, 0x4120 -/* 08919C 8008859C 3C0741A0 */ lui $a3, 0x41a0 -/* 0891A0 800885A0 0C0AB772 */ jal func_802ADDC8 -/* 0891A4 800885A4 E7A40010 */ swc1 $f4, 0x10($sp) -/* 0891A8 800885A8 96390004 */ lhu $t9, 4($s1) -/* 0891AC 800885AC 24010001 */ li $at, 1 -/* 0891B0 800885B0 24080001 */ li $t0, 1 -/* 0891B4 800885B4 17210004 */ bne $t9, $at, .L800885C8 -/* 0891B8 800885B8 3C050080 */ lui $a1, 0x80 -/* 0891BC 800885BC AFA8002C */ sw $t0, 0x2c($sp) -/* 0891C0 800885C0 0C01C870 */ jal func_800721C0 -/* 0891C4 800885C4 8FA40030 */ lw $a0, 0x30($sp) -.L800885C8: -/* 0891C8 800885C8 44807000 */ mtc1 $zero, $f14 -/* 0891CC 800885CC C60C0004 */ lwc1 $f12, 4($s0) -/* 0891D0 800885D0 8E06000C */ lw $a2, 0xc($s0) -/* 0891D4 800885D4 0C0AAF8C */ jal func_802ABE30 -/* 0891D8 800885D8 9627000A */ lhu $a3, 0xa($s1) -/* 0891DC 800885DC E6000044 */ swc1 $f0, 0x44($s0) -/* 0891E0 800885E0 C62C0038 */ lwc1 $f12, 0x38($s1) -/* 0891E4 800885E4 0C0ADE0C */ jal atan2s -/* 0891E8 800885E8 C62E0034 */ lwc1 $f14, 0x34($s1) -/* 0891EC 800885EC 24494000 */ addiu $t1, $v0, 0x4000 -/* 0891F0 800885F0 A60900B8 */ sh $t1, 0xb8($s0) -/* 0891F4 800885F4 C62C0030 */ lwc1 $f12, 0x30($s1) -/* 0891F8 800885F8 0C0ADE0C */ jal atan2s -/* 0891FC 800885FC C62E0034 */ lwc1 $f14, 0x34($s1) -/* 089200 80088600 A60200BC */ sh $v0, 0xbc($s0) -.L80088604: -/* 089204 80088604 8FBF0024 */ lw $ra, 0x24($sp) -/* 089208 80088608 8FA2002C */ lw $v0, 0x2c($sp) -/* 08920C 8008860C 8FB0001C */ lw $s0, 0x1c($sp) -/* 089210 80088610 8FB10020 */ lw $s1, 0x20($sp) -/* 089214 80088614 03E00008 */ jr $ra -/* 089218 80088618 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/asm/non_matchings/code_80086E70/func_8008861C.s b/asm/non_matchings/code_80086E70/func_8008861C.s deleted file mode 100644 index 1174a0217..000000000 --- a/asm/non_matchings/code_80086E70/func_8008861C.s +++ /dev/null @@ -1,57 +0,0 @@ -glabel func_8008861C -/* 08921C 8008861C 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 089220 80088620 AFBF0024 */ sw $ra, 0x24($sp) -/* 089224 80088624 AFB10020 */ sw $s1, 0x20($sp) -/* 089228 80088628 AFB0001C */ sw $s0, 0x1c($sp) -/* 08922C 8008862C AFA40030 */ sw $a0, 0x30($sp) -/* 089230 80088630 AFA0002C */ sw $zero, 0x2c($sp) -/* 089234 80088634 0C01C87A */ jal func_800721E8 -/* 089238 80088638 3C050080 */ lui $a1, 0x80 -/* 08923C 8008863C 8FA40030 */ lw $a0, 0x30($sp) -/* 089240 80088640 0C01C88F */ jal func_8007223C -/* 089244 80088644 24050400 */ li $a1, 1024 -/* 089248 80088648 10400024 */ beqz $v0, .L800886DC -/* 08924C 8008864C 3C118019 */ lui $s1, %hi(D_8018C3B0) # $s1, 0x8019 -/* 089250 80088650 8FAE0030 */ lw $t6, 0x30($sp) -/* 089254 80088654 3C188016 */ lui $t8, %hi(D_80165C18) # $t8, 0x8016 -/* 089258 80088658 27185C18 */ addiu $t8, %lo(D_80165C18) # addiu $t8, $t8, 0x5c18 -/* 08925C 8008865C 000E78C0 */ sll $t7, $t6, 3 -/* 089260 80088660 01EE7823 */ subu $t7, $t7, $t6 -/* 089264 80088664 000F7940 */ sll $t7, $t7, 5 -/* 089268 80088668 01F88021 */ addu $s0, $t7, $t8 -/* 08926C 8008866C C604000C */ lwc1 $f4, 0xc($s0) -/* 089270 80088670 2631C3B0 */ addiu $s1, %lo(D_8018C3B0) # addiu $s1, $s1, -0x3c50 -/* 089274 80088674 02202025 */ move $a0, $s1 -/* 089278 80088678 8E060004 */ lw $a2, 4($s0) -/* 08927C 8008867C 3C054120 */ lui $a1, 0x4120 -/* 089280 80088680 3C0741A0 */ lui $a3, 0x41a0 -/* 089284 80088684 0C0AB772 */ jal func_802ADDC8 -/* 089288 80088688 E7A40010 */ swc1 $f4, 0x10($sp) -/* 08928C 8008868C 96390004 */ lhu $t9, 4($s1) -/* 089290 80088690 24010001 */ li $at, 1 -/* 089294 80088694 24080001 */ li $t0, 1 -/* 089298 80088698 17210004 */ bne $t9, $at, .L800886AC -/* 08929C 8008869C 3C050080 */ lui $a1, 0x80 -/* 0892A0 800886A0 AFA8002C */ sw $t0, 0x2c($sp) -/* 0892A4 800886A4 0C01C870 */ jal func_800721C0 -/* 0892A8 800886A8 8FA40030 */ lw $a0, 0x30($sp) -.L800886AC: -/* 0892AC 800886AC 44807000 */ mtc1 $zero, $f14 -/* 0892B0 800886B0 C60C0004 */ lwc1 $f12, 4($s0) -/* 0892B4 800886B4 8E06000C */ lw $a2, 0xc($s0) -/* 0892B8 800886B8 0C0AAF8C */ jal func_802ABE30 -/* 0892BC 800886BC 9627000A */ lhu $a3, 0xa($s1) -/* 0892C0 800886C0 C6260030 */ lwc1 $f6, 0x30($s1) -/* 0892C4 800886C4 C6280034 */ lwc1 $f8, 0x34($s1) -/* 0892C8 800886C8 C62A0038 */ lwc1 $f10, 0x38($s1) -/* 0892CC 800886CC E6000044 */ swc1 $f0, 0x44($s0) -/* 0892D0 800886D0 E606001C */ swc1 $f6, 0x1c($s0) -/* 0892D4 800886D4 E6080020 */ swc1 $f8, 0x20($s0) -/* 0892D8 800886D8 E60A0024 */ swc1 $f10, 0x24($s0) -.L800886DC: -/* 0892DC 800886DC 8FBF0024 */ lw $ra, 0x24($sp) -/* 0892E0 800886E0 8FA2002C */ lw $v0, 0x2c($sp) -/* 0892E4 800886E4 8FB0001C */ lw $s0, 0x1c($sp) -/* 0892E8 800886E8 8FB10020 */ lw $s1, 0x20($sp) -/* 0892EC 800886EC 03E00008 */ jr $ra -/* 0892F0 800886F0 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/asm/non_matchings/code_80086E70/func_800886F4.s b/asm/non_matchings/code_80086E70/func_800886F4.s deleted file mode 100644 index 098778d33..000000000 --- a/asm/non_matchings/code_80086E70/func_800886F4.s +++ /dev/null @@ -1,54 +0,0 @@ -glabel func_800886F4 -/* 0892F4 800886F4 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0892F8 800886F8 AFA40028 */ sw $a0, 0x28($sp) -/* 0892FC 800886FC 8FAE0028 */ lw $t6, 0x28($sp) -/* 089300 80088700 3C188016 */ lui $t8, %hi(D_80165C18) # $t8, 0x8016 -/* 089304 80088704 AFB0001C */ sw $s0, 0x1c($sp) -/* 089308 80088708 000E78C0 */ sll $t7, $t6, 3 -/* 08930C 8008870C 01EE7823 */ subu $t7, $t7, $t6 -/* 089310 80088710 000F7940 */ sll $t7, $t7, 5 -/* 089314 80088714 27185C18 */ addiu $t8, %lo(D_80165C18) # addiu $t8, $t8, 0x5c18 -/* 089318 80088718 AFB10020 */ sw $s1, 0x20($sp) -/* 08931C 8008871C 01F88021 */ addu $s0, $t7, $t8 -/* 089320 80088720 C604000C */ lwc1 $f4, 0xc($s0) -/* 089324 80088724 3C118019 */ lui $s1, %hi(D_8018C3B0) # $s1, 0x8019 -/* 089328 80088728 2631C3B0 */ addiu $s1, %lo(D_8018C3B0) # addiu $s1, $s1, -0x3c50 -/* 08932C 8008872C AFBF0024 */ sw $ra, 0x24($sp) -/* 089330 80088730 02202025 */ move $a0, $s1 -/* 089334 80088734 8E060004 */ lw $a2, 4($s0) -/* 089338 80088738 3C054120 */ lui $a1, 0x4120 -/* 08933C 8008873C 3C0741A0 */ lui $a3, 0x41a0 -/* 089340 80088740 0C0AB772 */ jal func_802ADDC8 -/* 089344 80088744 E7A40010 */ swc1 $f4, 0x10($sp) -/* 089348 80088748 96390004 */ lhu $t9, 4($s1) -/* 08934C 8008874C 24010001 */ li $at, 1 -/* 089350 80088750 8FA40028 */ lw $a0, 0x28($sp) -/* 089354 80088754 17210013 */ bne $t9, $at, .L800887A4 -/* 089358 80088758 00000000 */ nop -/* 08935C 8008875C 0C01C870 */ jal func_800721C0 -/* 089360 80088760 3C050080 */ lui $a1, 0x80 -/* 089364 80088764 44807000 */ mtc1 $zero, $f14 -/* 089368 80088768 C60C0004 */ lwc1 $f12, 4($s0) -/* 08936C 8008876C 8E06000C */ lw $a2, 0xc($s0) -/* 089370 80088770 0C0AAF8C */ jal func_802ABE30 -/* 089374 80088774 9627000A */ lhu $a3, 0xa($s1) -/* 089378 80088778 E6000044 */ swc1 $f0, 0x44($s0) -/* 08937C 8008877C C62C0038 */ lwc1 $f12, 0x38($s1) -/* 089380 80088780 0C0ADE0C */ jal atan2s -/* 089384 80088784 C62E0034 */ lwc1 $f14, 0x34($s1) -/* 089388 80088788 24484000 */ addiu $t0, $v0, 0x4000 -/* 08938C 8008878C A60800B8 */ sh $t0, 0xb8($s0) -/* 089390 80088790 C62C0030 */ lwc1 $f12, 0x30($s1) -/* 089394 80088794 0C0ADE0C */ jal atan2s -/* 089398 80088798 C62E0034 */ lwc1 $f14, 0x34($s1) -/* 08939C 8008879C 10000003 */ b .L800887AC -/* 0893A0 800887A0 A60200BC */ sh $v0, 0xbc($s0) -.L800887A4: -/* 0893A4 800887A4 0C01C87A */ jal func_800721E8 -/* 0893A8 800887A8 3C050080 */ lui $a1, 0x80 -.L800887AC: -/* 0893AC 800887AC 8FBF0024 */ lw $ra, 0x24($sp) -/* 0893B0 800887B0 8FB0001C */ lw $s0, 0x1c($sp) -/* 0893B4 800887B4 8FB10020 */ lw $s1, 0x20($sp) -/* 0893B8 800887B8 03E00008 */ jr $ra -/* 0893BC 800887BC 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/asm/non_matchings/code_80086E70/func_800887C0.s b/asm/non_matchings/code_80086E70/func_800887C0.s deleted file mode 100644 index 6021444d6..000000000 --- a/asm/non_matchings/code_80086E70/func_800887C0.s +++ /dev/null @@ -1,112 +0,0 @@ -glabel func_800887C0 -/* 0893C0 800887C0 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0893C4 800887C4 AFA40028 */ sw $a0, 0x28($sp) -/* 0893C8 800887C8 8FAE0028 */ lw $t6, 0x28($sp) -/* 0893CC 800887CC 3C188016 */ lui $t8, %hi(D_80165C18) # $t8, 0x8016 -/* 0893D0 800887D0 AFB0001C */ sw $s0, 0x1c($sp) -/* 0893D4 800887D4 000E78C0 */ sll $t7, $t6, 3 -/* 0893D8 800887D8 01EE7823 */ subu $t7, $t7, $t6 -/* 0893DC 800887DC 000F7940 */ sll $t7, $t7, 5 -/* 0893E0 800887E0 27185C18 */ addiu $t8, %lo(D_80165C18) # addiu $t8, $t8, 0x5c18 -/* 0893E4 800887E4 AFB10020 */ sw $s1, 0x20($sp) -/* 0893E8 800887E8 01F88021 */ addu $s0, $t7, $t8 -/* 0893EC 800887EC C604000C */ lwc1 $f4, 0xc($s0) -/* 0893F0 800887F0 3C118019 */ lui $s1, %hi(D_8018C3B0) # $s1, 0x8019 -/* 0893F4 800887F4 2631C3B0 */ addiu $s1, %lo(D_8018C3B0) # addiu $s1, $s1, -0x3c50 -/* 0893F8 800887F8 AFBF0024 */ sw $ra, 0x24($sp) -/* 0893FC 800887FC 02202025 */ move $a0, $s1 -/* 089400 80088800 8E060004 */ lw $a2, 4($s0) -/* 089404 80088804 3C054120 */ lui $a1, 0x4120 -/* 089408 80088808 3C0741A0 */ lui $a3, 0x41a0 -/* 08940C 8008880C 0C0AB772 */ jal func_802ADDC8 -/* 089410 80088810 E7A40010 */ swc1 $f4, 0x10($sp) -/* 089414 80088814 96390004 */ lhu $t9, 4($s1) -/* 089418 80088818 24010001 */ li $at, 1 -/* 08941C 8008881C 8FA40028 */ lw $a0, 0x28($sp) -/* 089420 80088820 17210010 */ bne $t9, $at, .L80088864 -/* 089424 80088824 00000000 */ nop -/* 089428 80088828 0C01C870 */ jal func_800721C0 -/* 08942C 8008882C 3C050080 */ lui $a1, 0x80 -/* 089430 80088830 44807000 */ mtc1 $zero, $f14 -/* 089434 80088834 C60C0004 */ lwc1 $f12, 4($s0) -/* 089438 80088838 8E06000C */ lw $a2, 0xc($s0) -/* 08943C 8008883C 0C0AAF8C */ jal func_802ABE30 -/* 089440 80088840 9627000A */ lhu $a3, 0xa($s1) -/* 089444 80088844 C6260030 */ lwc1 $f6, 0x30($s1) -/* 089448 80088848 C6280034 */ lwc1 $f8, 0x34($s1) -/* 08944C 8008884C C62A0038 */ lwc1 $f10, 0x38($s1) -/* 089450 80088850 E6000044 */ swc1 $f0, 0x44($s0) -/* 089454 80088854 E6060038 */ swc1 $f6, 0x38($s0) -/* 089458 80088858 E608003C */ swc1 $f8, 0x3c($s0) -/* 08945C 8008885C 10000003 */ b .L8008886C -/* 089460 80088860 E60A0040 */ swc1 $f10, 0x40($s0) -.L80088864: -/* 089464 80088864 0C01C87A */ jal func_800721E8 -/* 089468 80088868 3C050080 */ lui $a1, 0x80 -.L8008886C: -/* 08946C 8008886C 8FBF0024 */ lw $ra, 0x24($sp) -/* 089470 80088870 8FB0001C */ lw $s0, 0x1c($sp) -/* 089474 80088874 8FB10020 */ lw $s1, 0x20($sp) -/* 089478 80088878 03E00008 */ jr $ra -/* 08947C 8008887C 27BD0028 */ addiu $sp, $sp, 0x28 - -/* 089480 80088880 000470C0 */ sll $t6, $a0, 3 -/* 089484 80088884 01C47023 */ subu $t6, $t6, $a0 -/* 089488 80088888 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 08948C 8008888C 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 089490 80088890 000E7140 */ sll $t6, $t6, 5 -/* 089494 80088894 01CF3021 */ addu $a2, $t6, $t7 -/* 089498 80088898 C4C40004 */ lwc1 $f4, 4($a2) -/* 08949C 8008889C C4A60014 */ lwc1 $f6, 0x14($a1) -/* 0894A0 800888A0 C4D0000C */ lwc1 $f16, 0xc($a2) -/* 0894A4 800888A4 C4B2001C */ lwc1 $f18, 0x1c($a1) -/* 0894A8 800888A8 46062201 */ sub.s $f8, $f4, $f6 -/* 0894AC 800888AC 46128101 */ sub.s $f4, $f16, $f18 -/* 0894B0 800888B0 4600428D */ trunc.w.s $f10, $f8 -/* 0894B4 800888B4 4600218D */ trunc.w.s $f6, $f4 -/* 0894B8 800888B8 44035000 */ mfc1 $v1, $f10 -/* 0894BC 800888BC 00000000 */ nop -/* 0894C0 800888C0 00630019 */ multu $v1, $v1 -/* 0894C4 800888C4 44073000 */ mfc1 $a3, $f6 -/* 0894C8 800888C8 00004012 */ mflo $t0 -/* 0894CC 800888CC 00000000 */ nop -/* 0894D0 800888D0 00000000 */ nop -/* 0894D4 800888D4 00E70019 */ multu $a3, $a3 -/* 0894D8 800888D8 00004812 */ mflo $t1 -/* 0894DC 800888DC 01091021 */ addu $v0, $t0, $t1 -/* 0894E0 800888E0 03E00008 */ jr $ra -/* 0894E4 800888E4 00000000 */ nop - -/* 0894E8 800888E8 000470C0 */ sll $t6, $a0, 3 -/* 0894EC 800888EC 01C47023 */ subu $t6, $t6, $a0 -/* 0894F0 800888F0 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 0894F4 800888F4 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 0894F8 800888F8 000E7140 */ sll $t6, $t6, 5 -/* 0894FC 800888FC 01CF3021 */ addu $a2, $t6, $t7 -/* 089500 80088900 C4C40004 */ lwc1 $f4, 4($a2) -/* 089504 80088904 C4A60014 */ lwc1 $f6, 0x14($a1) -/* 089508 80088908 C4D00008 */ lwc1 $f16, 8($a2) -/* 08950C 8008890C C4B20018 */ lwc1 $f18, 0x18($a1) -/* 089510 80088910 46062201 */ sub.s $f8, $f4, $f6 -/* 089514 80088914 46128101 */ sub.s $f4, $f16, $f18 -/* 089518 80088918 4600428D */ trunc.w.s $f10, $f8 -/* 08951C 8008891C C4C8000C */ lwc1 $f8, 0xc($a2) -/* 089520 80088920 4600218D */ trunc.w.s $f6, $f4 -/* 089524 80088924 44035000 */ mfc1 $v1, $f10 -/* 089528 80088928 C4AA001C */ lwc1 $f10, 0x1c($a1) -/* 08952C 8008892C 00630019 */ multu $v1, $v1 -/* 089530 80088930 44073000 */ mfc1 $a3, $f6 -/* 089534 80088934 460A4401 */ sub.s $f16, $f8, $f10 -/* 089538 80088938 4600848D */ trunc.w.s $f18, $f16 -/* 08953C 8008893C 00005012 */ mflo $t2 -/* 089540 80088940 44089000 */ mfc1 $t0, $f18 -/* 089544 80088944 00000000 */ nop -/* 089548 80088948 00E70019 */ multu $a3, $a3 -/* 08954C 8008894C 00005812 */ mflo $t3 -/* 089550 80088950 014B6021 */ addu $t4, $t2, $t3 -/* 089554 80088954 00000000 */ nop -/* 089558 80088958 01080019 */ multu $t0, $t0 -/* 08955C 8008895C 00006812 */ mflo $t5 -/* 089560 80088960 018D1021 */ addu $v0, $t4, $t5 -/* 089564 80088964 03E00008 */ jr $ra -/* 089568 80088968 00000000 */ nop diff --git a/asm/non_matchings/code_80086E70/func_8008896C.s b/asm/non_matchings/code_80086E70/func_8008896C.s deleted file mode 100644 index 609207769..000000000 --- a/asm/non_matchings/code_80086E70/func_8008896C.s +++ /dev/null @@ -1,61 +0,0 @@ -glabel func_8008896C -/* 08956C 8008896C 000470C0 */ sll $t6, $a0, 3 -/* 089570 80088970 01C47023 */ subu $t6, $t6, $a0 -/* 089574 80088974 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 089578 80088978 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 08957C 8008897C 000E7140 */ sll $t6, $t6, 5 -/* 089580 80088980 01CF3021 */ addu $a2, $t6, $t7 -/* 089584 80088984 C4C40004 */ lwc1 $f4, 4($a2) -/* 089588 80088988 C4A60000 */ lwc1 $f6, ($a1) -/* 08958C 8008898C C4D0000C */ lwc1 $f16, 0xc($a2) -/* 089590 80088990 C4B20008 */ lwc1 $f18, 8($a1) -/* 089594 80088994 46062201 */ sub.s $f8, $f4, $f6 -/* 089598 80088998 46128101 */ sub.s $f4, $f16, $f18 -/* 08959C 8008899C 4600428D */ trunc.w.s $f10, $f8 -/* 0895A0 800889A0 4600218D */ trunc.w.s $f6, $f4 -/* 0895A4 800889A4 44035000 */ mfc1 $v1, $f10 -/* 0895A8 800889A8 00000000 */ nop -/* 0895AC 800889AC 00630019 */ multu $v1, $v1 -/* 0895B0 800889B0 44073000 */ mfc1 $a3, $f6 -/* 0895B4 800889B4 00004012 */ mflo $t0 -/* 0895B8 800889B8 00000000 */ nop -/* 0895BC 800889BC 00000000 */ nop -/* 0895C0 800889C0 00E70019 */ multu $a3, $a3 -/* 0895C4 800889C4 00004812 */ mflo $t1 -/* 0895C8 800889C8 01091021 */ addu $v0, $t0, $t1 -/* 0895CC 800889CC 03E00008 */ jr $ra -/* 0895D0 800889D0 00000000 */ nop - -/* 0895D4 800889D4 000470C0 */ sll $t6, $a0, 3 -/* 0895D8 800889D8 01C47023 */ subu $t6, $t6, $a0 -/* 0895DC 800889DC 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 0895E0 800889E0 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 0895E4 800889E4 000E7140 */ sll $t6, $t6, 5 -/* 0895E8 800889E8 01CF3021 */ addu $a2, $t6, $t7 -/* 0895EC 800889EC C4C40004 */ lwc1 $f4, 4($a2) -/* 0895F0 800889F0 C4A60000 */ lwc1 $f6, ($a1) -/* 0895F4 800889F4 C4D00008 */ lwc1 $f16, 8($a2) -/* 0895F8 800889F8 C4B20004 */ lwc1 $f18, 4($a1) -/* 0895FC 800889FC 46062201 */ sub.s $f8, $f4, $f6 -/* 089600 80088A00 46128101 */ sub.s $f4, $f16, $f18 -/* 089604 80088A04 4600428D */ trunc.w.s $f10, $f8 -/* 089608 80088A08 C4C8000C */ lwc1 $f8, 0xc($a2) -/* 08960C 80088A0C 4600218D */ trunc.w.s $f6, $f4 -/* 089610 80088A10 44035000 */ mfc1 $v1, $f10 -/* 089614 80088A14 C4AA0008 */ lwc1 $f10, 8($a1) -/* 089618 80088A18 00630019 */ multu $v1, $v1 -/* 08961C 80088A1C 44073000 */ mfc1 $a3, $f6 -/* 089620 80088A20 460A4401 */ sub.s $f16, $f8, $f10 -/* 089624 80088A24 4600848D */ trunc.w.s $f18, $f16 -/* 089628 80088A28 00005012 */ mflo $t2 -/* 08962C 80088A2C 44089000 */ mfc1 $t0, $f18 -/* 089630 80088A30 00000000 */ nop -/* 089634 80088A34 00E70019 */ multu $a3, $a3 -/* 089638 80088A38 00005812 */ mflo $t3 -/* 08963C 80088A3C 014B6021 */ addu $t4, $t2, $t3 -/* 089640 80088A40 00000000 */ nop -/* 089644 80088A44 01080019 */ multu $t0, $t0 -/* 089648 80088A48 00006812 */ mflo $t5 -/* 08964C 80088A4C 018D1021 */ addu $v0, $t4, $t5 -/* 089650 80088A50 03E00008 */ jr $ra -/* 089654 80088A54 00000000 */ nop diff --git a/asm/non_matchings/code_80086E70/func_80088A58.s b/asm/non_matchings/code_80086E70/func_80088A58.s deleted file mode 100644 index 94e1aec28..000000000 --- a/asm/non_matchings/code_80086E70/func_80088A58.s +++ /dev/null @@ -1,94 +0,0 @@ -glabel func_80088A58 -/* 089658 80088A58 000470C0 */ sll $t6, $a0, 3 -/* 08965C 80088A5C 01C47023 */ subu $t6, $t6, $a0 -/* 089660 80088A60 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 089664 80088A64 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 089668 80088A68 000E7140 */ sll $t6, $t6, 5 -/* 08966C 80088A6C 01CF1021 */ addu $v0, $t6, $t7 -/* 089670 80088A70 C4440004 */ lwc1 $f4, 4($v0) -/* 089674 80088A74 C4A60014 */ lwc1 $f6, 0x14($a1) -/* 089678 80088A78 44866000 */ mtc1 $a2, $f12 -/* 08967C 80088A7C C448000C */ lwc1 $f8, 0xc($v0) -/* 089680 80088A80 46062001 */ sub.s $f0, $f4, $f6 -/* 089684 80088A84 C4AA001C */ lwc1 $f10, 0x1c($a1) -/* 089688 80088A88 460C6402 */ mul.s $f16, $f12, $f12 -/* 08968C 80088A8C 00001825 */ move $v1, $zero -/* 089690 80088A90 460A4081 */ sub.s $f2, $f8, $f10 -/* 089694 80088A94 46000482 */ mul.s $f18, $f0, $f0 -/* 089698 80088A98 00000000 */ nop -/* 08969C 80088A9C 46021102 */ mul.s $f4, $f2, $f2 -/* 0896A0 80088AA0 46049180 */ add.s $f6, $f18, $f4 -/* 0896A4 80088AA4 4610303E */ c.le.s $f6, $f16 -/* 0896A8 80088AA8 00000000 */ nop -/* 0896AC 80088AAC 45000002 */ bc1f .L80088AB8 -/* 0896B0 80088AB0 00000000 */ nop -/* 0896B4 80088AB4 24030001 */ li $v1, 1 -.L80088AB8: -/* 0896B8 80088AB8 03E00008 */ jr $ra -/* 0896BC 80088ABC 00601025 */ move $v0, $v1 - -/* 0896C0 80088AC0 000470C0 */ sll $t6, $a0, 3 -/* 0896C4 80088AC4 01C47023 */ subu $t6, $t6, $a0 -/* 0896C8 80088AC8 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 0896CC 80088ACC 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 0896D0 80088AD0 000E7140 */ sll $t6, $t6, 5 -/* 0896D4 80088AD4 AFA7000C */ sw $a3, 0xc($sp) -/* 0896D8 80088AD8 01CF1021 */ addu $v0, $t6, $t7 -/* 0896DC 80088ADC C4440004 */ lwc1 $f4, 4($v0) -/* 0896E0 80088AE0 C4A60014 */ lwc1 $f6, 0x14($a1) -/* 0896E4 80088AE4 C448000C */ lwc1 $f8, 0xc($v0) -/* 0896E8 80088AE8 C4AA001C */ lwc1 $f10, 0x1c($a1) -/* 0896EC 80088AEC 46062001 */ sub.s $f0, $f4, $f6 -/* 0896F0 80088AF0 44867000 */ mtc1 $a2, $f14 -/* 0896F4 80088AF4 00001825 */ move $v1, $zero -/* 0896F8 80088AF8 460A4081 */ sub.s $f2, $f8, $f10 -/* 0896FC 80088AFC 46000402 */ mul.s $f16, $f0, $f0 -/* 089700 80088B00 C7A6000C */ lwc1 $f6, 0xc($sp) -/* 089704 80088B04 46021482 */ mul.s $f18, $f2, $f2 -/* 089708 80088B08 46128300 */ add.s $f12, $f16, $f18 -/* 08970C 80088B0C 460E7102 */ mul.s $f4, $f14, $f14 -/* 089710 80088B10 460C203E */ c.le.s $f4, $f12 -/* 089714 80088B14 00000000 */ nop -/* 089718 80088B18 45000007 */ bc1f .L80088B38 -/* 08971C 80088B1C 00000000 */ nop -/* 089720 80088B20 46063202 */ mul.s $f8, $f6, $f6 -/* 089724 80088B24 4608603E */ c.le.s $f12, $f8 -/* 089728 80088B28 00000000 */ nop -/* 08972C 80088B2C 45000002 */ bc1f .L80088B38 -/* 089730 80088B30 00000000 */ nop -/* 089734 80088B34 24030001 */ li $v1, 1 -.L80088B38: -/* 089738 80088B38 03E00008 */ jr $ra -/* 08973C 80088B3C 00601025 */ move $v0, $v1 - -/* 089740 80088B40 000470C0 */ sll $t6, $a0, 3 -/* 089744 80088B44 01C47023 */ subu $t6, $t6, $a0 -/* 089748 80088B48 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 08974C 80088B4C 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 089750 80088B50 000E7140 */ sll $t6, $t6, 5 -/* 089754 80088B54 01CF1021 */ addu $v0, $t6, $t7 -/* 089758 80088B58 C4440004 */ lwc1 $f4, 4($v0) -/* 08975C 80088B5C C4A60014 */ lwc1 $f6, 0x14($a1) -/* 089760 80088B60 44867000 */ mtc1 $a2, $f14 -/* 089764 80088B64 C4480008 */ lwc1 $f8, 8($v0) -/* 089768 80088B68 46062001 */ sub.s $f0, $f4, $f6 -/* 08976C 80088B6C C4AA0018 */ lwc1 $f10, 0x18($a1) -/* 089770 80088B70 460E7102 */ mul.s $f4, $f14, $f14 -/* 089774 80088B74 C450000C */ lwc1 $f16, 0xc($v0) -/* 089778 80088B78 460A4081 */ sub.s $f2, $f8, $f10 -/* 08977C 80088B7C 46000182 */ mul.s $f6, $f0, $f0 -/* 089780 80088B80 C4B2001C */ lwc1 $f18, 0x1c($a1) -/* 089784 80088B84 00001825 */ move $v1, $zero -/* 089788 80088B88 46021202 */ mul.s $f8, $f2, $f2 -/* 08978C 80088B8C 46128301 */ sub.s $f12, $f16, $f18 -/* 089790 80088B90 460C6402 */ mul.s $f16, $f12, $f12 -/* 089794 80088B94 46083280 */ add.s $f10, $f6, $f8 -/* 089798 80088B98 46105480 */ add.s $f18, $f10, $f16 -/* 08979C 80088B9C 4604903E */ c.le.s $f18, $f4 -/* 0897A0 80088BA0 00000000 */ nop -/* 0897A4 80088BA4 45000002 */ bc1f .L80088BB0 -/* 0897A8 80088BA8 00000000 */ nop -/* 0897AC 80088BAC 24030001 */ li $v1, 1 -.L80088BB0: -/* 0897B0 80088BB0 03E00008 */ jr $ra -/* 0897B4 80088BB4 00601025 */ move $v0, $v1 diff --git a/asm/non_matchings/code_80086E70/func_80088BB8.s b/asm/non_matchings/code_80086E70/func_80088BB8.s deleted file mode 100644 index 12be8845b..000000000 --- a/asm/non_matchings/code_80086E70/func_80088BB8.s +++ /dev/null @@ -1,94 +0,0 @@ -glabel func_80088BB8 -/* 0897B8 80088BB8 000470C0 */ sll $t6, $a0, 3 -/* 0897BC 80088BBC 01C47023 */ subu $t6, $t6, $a0 -/* 0897C0 80088BC0 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 0897C4 80088BC4 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 0897C8 80088BC8 000E7140 */ sll $t6, $t6, 5 -/* 0897CC 80088BCC 01CF1021 */ addu $v0, $t6, $t7 -/* 0897D0 80088BD0 C4440004 */ lwc1 $f4, 4($v0) -/* 0897D4 80088BD4 C4A60000 */ lwc1 $f6, ($a1) -/* 0897D8 80088BD8 44866000 */ mtc1 $a2, $f12 -/* 0897DC 80088BDC C448000C */ lwc1 $f8, 0xc($v0) -/* 0897E0 80088BE0 46062001 */ sub.s $f0, $f4, $f6 -/* 0897E4 80088BE4 C4AA0008 */ lwc1 $f10, 8($a1) -/* 0897E8 80088BE8 460C6402 */ mul.s $f16, $f12, $f12 -/* 0897EC 80088BEC 00001825 */ move $v1, $zero -/* 0897F0 80088BF0 460A4081 */ sub.s $f2, $f8, $f10 -/* 0897F4 80088BF4 46000482 */ mul.s $f18, $f0, $f0 -/* 0897F8 80088BF8 00000000 */ nop -/* 0897FC 80088BFC 46021102 */ mul.s $f4, $f2, $f2 -/* 089800 80088C00 46049180 */ add.s $f6, $f18, $f4 -/* 089804 80088C04 4610303E */ c.le.s $f6, $f16 -/* 089808 80088C08 00000000 */ nop -/* 08980C 80088C0C 45000002 */ bc1f .L80088C18 -/* 089810 80088C10 00000000 */ nop -/* 089814 80088C14 24030001 */ li $v1, 1 -.L80088C18: -/* 089818 80088C18 03E00008 */ jr $ra -/* 08981C 80088C1C 00601025 */ move $v0, $v1 - -/* 089820 80088C20 000470C0 */ sll $t6, $a0, 3 -/* 089824 80088C24 01C47023 */ subu $t6, $t6, $a0 -/* 089828 80088C28 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 08982C 80088C2C 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 089830 80088C30 000E7140 */ sll $t6, $t6, 5 -/* 089834 80088C34 AFA7000C */ sw $a3, 0xc($sp) -/* 089838 80088C38 01CF1021 */ addu $v0, $t6, $t7 -/* 08983C 80088C3C C4440004 */ lwc1 $f4, 4($v0) -/* 089840 80088C40 C4A60000 */ lwc1 $f6, ($a1) -/* 089844 80088C44 C448000C */ lwc1 $f8, 0xc($v0) -/* 089848 80088C48 C4AA0008 */ lwc1 $f10, 8($a1) -/* 08984C 80088C4C 46062001 */ sub.s $f0, $f4, $f6 -/* 089850 80088C50 44867000 */ mtc1 $a2, $f14 -/* 089854 80088C54 00001825 */ move $v1, $zero -/* 089858 80088C58 460A4081 */ sub.s $f2, $f8, $f10 -/* 08985C 80088C5C 46000402 */ mul.s $f16, $f0, $f0 -/* 089860 80088C60 C7A6000C */ lwc1 $f6, 0xc($sp) -/* 089864 80088C64 46021482 */ mul.s $f18, $f2, $f2 -/* 089868 80088C68 46128300 */ add.s $f12, $f16, $f18 -/* 08986C 80088C6C 460E7102 */ mul.s $f4, $f14, $f14 -/* 089870 80088C70 460C203E */ c.le.s $f4, $f12 -/* 089874 80088C74 00000000 */ nop -/* 089878 80088C78 45000007 */ bc1f .L80088C98 -/* 08987C 80088C7C 00000000 */ nop -/* 089880 80088C80 46063202 */ mul.s $f8, $f6, $f6 -/* 089884 80088C84 4608603E */ c.le.s $f12, $f8 -/* 089888 80088C88 00000000 */ nop -/* 08988C 80088C8C 45000002 */ bc1f .L80088C98 -/* 089890 80088C90 00000000 */ nop -/* 089894 80088C94 24030001 */ li $v1, 1 -.L80088C98: -/* 089898 80088C98 03E00008 */ jr $ra -/* 08989C 80088C9C 00601025 */ move $v0, $v1 - -/* 0898A0 80088CA0 000470C0 */ sll $t6, $a0, 3 -/* 0898A4 80088CA4 01C47023 */ subu $t6, $t6, $a0 -/* 0898A8 80088CA8 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 0898AC 80088CAC 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 0898B0 80088CB0 000E7140 */ sll $t6, $t6, 5 -/* 0898B4 80088CB4 01CF1021 */ addu $v0, $t6, $t7 -/* 0898B8 80088CB8 C4440004 */ lwc1 $f4, 4($v0) -/* 0898BC 80088CBC C4A60000 */ lwc1 $f6, ($a1) -/* 0898C0 80088CC0 44867000 */ mtc1 $a2, $f14 -/* 0898C4 80088CC4 C4480008 */ lwc1 $f8, 8($v0) -/* 0898C8 80088CC8 46062001 */ sub.s $f0, $f4, $f6 -/* 0898CC 80088CCC C4AA0004 */ lwc1 $f10, 4($a1) -/* 0898D0 80088CD0 460E7102 */ mul.s $f4, $f14, $f14 -/* 0898D4 80088CD4 C450000C */ lwc1 $f16, 0xc($v0) -/* 0898D8 80088CD8 460A4081 */ sub.s $f2, $f8, $f10 -/* 0898DC 80088CDC 46000182 */ mul.s $f6, $f0, $f0 -/* 0898E0 80088CE0 C4B20008 */ lwc1 $f18, 8($a1) -/* 0898E4 80088CE4 00001825 */ move $v1, $zero -/* 0898E8 80088CE8 46021202 */ mul.s $f8, $f2, $f2 -/* 0898EC 80088CEC 46128301 */ sub.s $f12, $f16, $f18 -/* 0898F0 80088CF0 460C6402 */ mul.s $f16, $f12, $f12 -/* 0898F4 80088CF4 46083280 */ add.s $f10, $f6, $f8 -/* 0898F8 80088CF8 46105480 */ add.s $f18, $f10, $f16 -/* 0898FC 80088CFC 4604903E */ c.le.s $f18, $f4 -/* 089900 80088D00 00000000 */ nop -/* 089904 80088D04 45000002 */ bc1f .L80088D10 -/* 089908 80088D08 00000000 */ nop -/* 08990C 80088D0C 24030001 */ li $v1, 1 -.L80088D10: -/* 089910 80088D10 03E00008 */ jr $ra -/* 089914 80088D14 00601025 */ move $v0, $v1 diff --git a/asm/non_matchings/code_80086E70/func_80088D18.s b/asm/non_matchings/code_80086E70/func_80088D18.s deleted file mode 100644 index fd62b1b42..000000000 --- a/asm/non_matchings/code_80086E70/func_80088D18.s +++ /dev/null @@ -1,38 +0,0 @@ -glabel func_80088D18 -/* 089918 80088D18 000470C0 */ sll $t6, $a0, 3 -/* 08991C 80088D1C 01C47023 */ subu $t6, $t6, $a0 -/* 089920 80088D20 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 089924 80088D24 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 089928 80088D28 000E7140 */ sll $t6, $t6, 5 -/* 08992C 80088D2C 01CF1021 */ addu $v0, $t6, $t7 -/* 089930 80088D30 C4440004 */ lwc1 $f4, 4($v0) -/* 089934 80088D34 C4A60014 */ lwc1 $f6, 0x14($a1) -/* 089938 80088D38 C448000C */ lwc1 $f8, 0xc($v0) -/* 08993C 80088D3C C4AA001C */ lwc1 $f10, 0x1c($a1) -/* 089940 80088D40 46062001 */ sub.s $f0, $f4, $f6 -/* 089944 80088D44 945800C8 */ lhu $t8, 0xc8($v0) -/* 089948 80088D48 00001825 */ move $v1, $zero -/* 08994C 80088D4C 460A4081 */ sub.s $f2, $f8, $f10 -/* 089950 80088D50 44988000 */ mtc1 $t8, $f16 -/* 089954 80088D54 46000282 */ mul.s $f10, $f0, $f0 -/* 089958 80088D58 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 08995C 80088D5C 468084A0 */ cvt.s.w $f18, $f16 -/* 089960 80088D60 46021402 */ mul.s $f16, $f2, $f2 -/* 089964 80088D64 07030005 */ bgezl $t8, .L80088D7C -/* 089968 80088D68 C4A60070 */ lwc1 $f6, 0x70($a1) -/* 08996C 80088D6C 44812000 */ mtc1 $at, $f4 -/* 089970 80088D70 00000000 */ nop -/* 089974 80088D74 46049480 */ add.s $f18, $f18, $f4 -/* 089978 80088D78 C4A60070 */ lwc1 $f6, 0x70($a1) -.L80088D7C: -/* 08997C 80088D7C 46105100 */ add.s $f4, $f10, $f16 -/* 089980 80088D80 46069300 */ add.s $f12, $f18, $f6 -/* 089984 80088D84 460C6202 */ mul.s $f8, $f12, $f12 -/* 089988 80088D88 4608203E */ c.le.s $f4, $f8 -/* 08998C 80088D8C 00000000 */ nop -/* 089990 80088D90 45000002 */ bc1f .L80088D9C -/* 089994 80088D94 00000000 */ nop -/* 089998 80088D98 24030001 */ li $v1, 1 -.L80088D9C: -/* 08999C 80088D9C 03E00008 */ jr $ra -/* 0899A0 80088DA0 00601025 */ move $v0, $v1 diff --git a/asm/non_matchings/code_80086E70/func_80088DA4.s b/asm/non_matchings/code_80086E70/func_80088DA4.s deleted file mode 100644 index b4e58929a..000000000 --- a/asm/non_matchings/code_80086E70/func_80088DA4.s +++ /dev/null @@ -1,66 +0,0 @@ -glabel func_80088DA4 -/* 0899A4 80088DA4 000470C0 */ sll $t6, $a0, 3 -/* 0899A8 80088DA8 01C47023 */ subu $t6, $t6, $a0 -/* 0899AC 80088DAC 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 0899B0 80088DB0 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 0899B4 80088DB4 000E7140 */ sll $t6, $t6, 5 -/* 0899B8 80088DB8 01CF1021 */ addu $v0, $t6, $t7 -/* 0899BC 80088DBC C4440004 */ lwc1 $f4, 4($v0) -/* 0899C0 80088DC0 C4A60014 */ lwc1 $f6, 0x14($a1) -/* 0899C4 80088DC4 C4480008 */ lwc1 $f8, 8($v0) -/* 0899C8 80088DC8 C4AA0018 */ lwc1 $f10, 0x18($a1) -/* 0899CC 80088DCC 46062001 */ sub.s $f0, $f4, $f6 -/* 0899D0 80088DD0 C450000C */ lwc1 $f16, 0xc($v0) -/* 0899D4 80088DD4 C4B2001C */ lwc1 $f18, 0x1c($a1) -/* 0899D8 80088DD8 945800C8 */ lhu $t8, 0xc8($v0) -/* 0899DC 80088DDC 460A4081 */ sub.s $f2, $f8, $f10 -/* 0899E0 80088DE0 00001825 */ move $v1, $zero -/* 0899E4 80088DE4 44982000 */ mtc1 $t8, $f4 -/* 0899E8 80088DE8 46128301 */ sub.s $f12, $f16, $f18 -/* 0899EC 80088DEC 46000482 */ mul.s $f18, $f0, $f0 -/* 0899F0 80088DF0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0899F4 80088DF4 468021A0 */ cvt.s.w $f6, $f4 -/* 0899F8 80088DF8 46021102 */ mul.s $f4, $f2, $f2 -/* 0899FC 80088DFC 07030005 */ bgezl $t8, .L80088E14 -/* 089A00 80088E00 C4AA0070 */ lwc1 $f10, 0x70($a1) -/* 089A04 80088E04 44814000 */ mtc1 $at, $f8 -/* 089A08 80088E08 00000000 */ nop -/* 089A0C 80088E0C 46083180 */ add.s $f6, $f6, $f8 -/* 089A10 80088E10 C4AA0070 */ lwc1 $f10, 0x70($a1) -.L80088E14: -/* 089A14 80088E14 46049200 */ add.s $f8, $f18, $f4 -/* 089A18 80088E18 460A3380 */ add.s $f14, $f6, $f10 -/* 089A1C 80088E1C 460E7402 */ mul.s $f16, $f14, $f14 -/* 089A20 80088E20 00000000 */ nop -/* 089A24 80088E24 460C6182 */ mul.s $f6, $f12, $f12 -/* 089A28 80088E28 46064280 */ add.s $f10, $f8, $f6 -/* 089A2C 80088E2C 4610503E */ c.le.s $f10, $f16 -/* 089A30 80088E30 00000000 */ nop -/* 089A34 80088E34 45000002 */ bc1f .L80088E40 -/* 089A38 80088E38 00000000 */ nop -/* 089A3C 80088E3C 24030001 */ li $v1, 1 -.L80088E40: -/* 089A40 80088E40 03E00008 */ jr $ra -/* 089A44 80088E44 00601025 */ move $v0, $v1 - -/* 089A48 80088E48 000470C0 */ sll $t6, $a0, 3 -/* 089A4C 80088E4C 01C47023 */ subu $t6, $t6, $a0 -/* 089A50 80088E50 000E7140 */ sll $t6, $t6, 5 -/* 089A54 80088E54 3C018016 */ lui $at, %hi(D_80165C20) -/* 089A58 80088E58 002E0821 */ addu $at, $at, $t6 -/* 089A5C 80088E5C C4245C20 */ lwc1 $f4, %lo(D_80165C20)($at) -/* 089A60 80088E60 C4A60018 */ lwc1 $f6, 0x18($a1) -/* 089A64 80088E64 44866000 */ mtc1 $a2, $f12 -/* 089A68 80088E68 00001825 */ move $v1, $zero -/* 089A6C 80088E6C 46062001 */ sub.s $f0, $f4, $f6 -/* 089A70 80088E70 460C6202 */ mul.s $f8, $f12, $f12 -/* 089A74 80088E74 00000000 */ nop -/* 089A78 80088E78 46000282 */ mul.s $f10, $f0, $f0 -/* 089A7C 80088E7C 4608503E */ c.le.s $f10, $f8 -/* 089A80 80088E80 00000000 */ nop -/* 089A84 80088E84 45000002 */ bc1f .L80088E90 -/* 089A88 80088E88 00000000 */ nop -/* 089A8C 80088E8C 24030001 */ li $v1, 1 -.L80088E90: -/* 089A90 80088E90 03E00008 */ jr $ra -/* 089A94 80088E94 00601025 */ move $v0, $v1 diff --git a/asm/non_matchings/code_80086E70/func_80088E98.s b/asm/non_matchings/code_80086E70/func_80088E98.s deleted file mode 100644 index bc7523838..000000000 --- a/asm/non_matchings/code_80086E70/func_80088E98.s +++ /dev/null @@ -1,51 +0,0 @@ -glabel func_80088E98 -/* 089A98 80088E98 000470C0 */ sll $t6, $a0, 3 -/* 089A9C 80088E9C 01C47023 */ subu $t6, $t6, $a0 -/* 089AA0 80088EA0 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 089AA4 80088EA4 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 089AA8 80088EA8 000E7140 */ sll $t6, $t6, 5 -/* 089AAC 80088EAC 01CF1021 */ addu $v0, $t6, $t7 -/* 089AB0 80088EB0 AFA60008 */ sw $a2, 8($sp) -/* 089AB4 80088EB4 C4A60014 */ lwc1 $f6, 0x14($a1) -/* 089AB8 80088EB8 C4440004 */ lwc1 $f4, 4($v0) -/* 089ABC 80088EBC C4B2001C */ lwc1 $f18, 0x1c($a1) -/* 089AC0 80088EC0 C450000C */ lwc1 $f16, 0xc($v0) -/* 089AC4 80088EC4 945800C8 */ lhu $t8, 0xc8($v0) -/* 089AC8 80088EC8 46062001 */ sub.s $f0, $f4, $f6 -/* 089ACC 80088ECC C4AA0018 */ lwc1 $f10, 0x18($a1) -/* 089AD0 80088ED0 C4480008 */ lwc1 $f8, 8($v0) -/* 089AD4 80088ED4 44982000 */ mtc1 $t8, $f4 -/* 089AD8 80088ED8 46128301 */ sub.s $f12, $f16, $f18 -/* 089ADC 80088EDC 44808000 */ mtc1 $zero, $f16 -/* 089AE0 80088EE0 00001825 */ move $v1, $zero -/* 089AE4 80088EE4 460A4081 */ sub.s $f2, $f8, $f10 -/* 089AE8 80088EE8 07010005 */ bgez $t8, .L80088F00 -/* 089AEC 80088EEC 468021A0 */ cvt.s.w $f6, $f4 -/* 089AF0 80088EF0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 089AF4 80088EF4 44814000 */ mtc1 $at, $f8 -/* 089AF8 80088EF8 00000000 */ nop -/* 089AFC 80088EFC 46083180 */ add.s $f6, $f6, $f8 -.L80088F00: -/* 089B00 80088F00 4610103C */ c.lt.s $f2, $f16 -/* 089B04 80088F04 46000102 */ mul.s $f4, $f0, $f0 -/* 089B08 80088F08 C4AA0070 */ lwc1 $f10, 0x70($a1) -/* 089B0C 80088F0C 460C6202 */ mul.s $f8, $f12, $f12 -/* 089B10 80088F10 45000002 */ bc1f .L80088F1C -/* 089B14 80088F14 460A3380 */ add.s $f14, $f6, $f10 -/* 089B18 80088F18 46001087 */ neg.s $f2, $f2 -.L80088F1C: -/* 089B1C 80088F1C 460E7482 */ mul.s $f18, $f14, $f14 -/* 089B20 80088F20 46082180 */ add.s $f6, $f4, $f8 -/* 089B24 80088F24 C7AA0008 */ lwc1 $f10, 8($sp) -/* 089B28 80088F28 4612303E */ c.le.s $f6, $f18 -/* 089B2C 80088F2C 00000000 */ nop -/* 089B30 80088F30 45000006 */ bc1f .L80088F4C -/* 089B34 80088F34 00000000 */ nop -/* 089B38 80088F38 460A103E */ c.le.s $f2, $f10 -/* 089B3C 80088F3C 00000000 */ nop -/* 089B40 80088F40 45000002 */ bc1f .L80088F4C -/* 089B44 80088F44 00000000 */ nop -/* 089B48 80088F48 24030001 */ li $v1, 1 -.L80088F4C: -/* 089B4C 80088F4C 03E00008 */ jr $ra -/* 089B50 80088F50 00601025 */ move $v0, $v1 diff --git a/asm/non_matchings/code_80086E70/func_80088F54.s b/asm/non_matchings/code_80086E70/func_80088F54.s deleted file mode 100644 index b7b22ea7e..000000000 --- a/asm/non_matchings/code_80086E70/func_80088F54.s +++ /dev/null @@ -1,44 +0,0 @@ -glabel func_80088F54 -/* 089B54 80088F54 000470C0 */ sll $t6, $a0, 3 -/* 089B58 80088F58 01C47023 */ subu $t6, $t6, $a0 -/* 089B5C 80088F5C 000E7140 */ sll $t6, $t6, 5 -/* 089B60 80088F60 3C018016 */ lui $at, %hi(D_80165C20) -/* 089B64 80088F64 002E0821 */ addu $at, $at, $t6 -/* 089B68 80088F68 C4245C20 */ lwc1 $f4, %lo(D_80165C20)($at) -/* 089B6C 80088F6C C4A60074 */ lwc1 $f6, 0x74($a1) -/* 089B70 80088F70 44804000 */ mtc1 $zero, $f8 -/* 089B74 80088F74 46062081 */ sub.s $f2, $f4, $f6 -/* 089B78 80088F78 4608103C */ c.lt.s $f2, $f8 -/* 089B7C 80088F7C 00000000 */ nop -/* 089B80 80088F80 45000002 */ bc1f .L80088F8C -/* 089B84 80088F84 00000000 */ nop -/* 089B88 80088F88 46001087 */ neg.s $f2, $f2 -.L80088F8C: -/* 089B8C 80088F8C 03E00008 */ jr $ra -/* 089B90 80088F90 46001006 */ mov.s $f0, $f2 - -/* 089B94 80088F94 000470C0 */ sll $t6, $a0, 3 -/* 089B98 80088F98 01C47023 */ subu $t6, $t6, $a0 -/* 089B9C 80088F9C 000E7140 */ sll $t6, $t6, 5 -/* 089BA0 80088FA0 3C018016 */ lui $at, %hi(D_80165C20) -/* 089BA4 80088FA4 002E0821 */ addu $at, $at, $t6 -/* 089BA8 80088FA8 C4245C20 */ lwc1 $f4, %lo(D_80165C20)($at) -/* 089BAC 80088FAC C4A60074 */ lwc1 $f6, 0x74($a1) -/* 089BB0 80088FB0 44804000 */ mtc1 $zero, $f8 -/* 089BB4 80088FB4 44866000 */ mtc1 $a2, $f12 -/* 089BB8 80088FB8 46062001 */ sub.s $f0, $f4, $f6 -/* 089BBC 80088FBC 00001825 */ move $v1, $zero -/* 089BC0 80088FC0 4608003C */ c.lt.s $f0, $f8 -/* 089BC4 80088FC4 00000000 */ nop -/* 089BC8 80088FC8 45020003 */ bc1fl .L80088FD8 -/* 089BCC 80088FCC 460C003E */ c.le.s $f0, $f12 -/* 089BD0 80088FD0 46000007 */ neg.s $f0, $f0 -/* 089BD4 80088FD4 460C003E */ c.le.s $f0, $f12 -.L80088FD8: -/* 089BD8 80088FD8 00000000 */ nop -/* 089BDC 80088FDC 45000002 */ bc1f .L80088FE8 -/* 089BE0 80088FE0 00000000 */ nop -/* 089BE4 80088FE4 24030001 */ li $v1, 1 -.L80088FE8: -/* 089BE8 80088FE8 03E00008 */ jr $ra -/* 089BEC 80088FEC 00601025 */ move $v0, $v1 diff --git a/asm/non_matchings/code_80086E70/func_8008A060.s b/asm/non_matchings/code_80086E70/func_8008A060.s deleted file mode 100644 index 2bbb1c7f4..000000000 --- a/asm/non_matchings/code_80086E70/func_8008A060.s +++ /dev/null @@ -1,23 +0,0 @@ -glabel func_8008A060 -/* 08AC60 8008A060 0004C0C0 */ sll $t8, $a0, 3 -/* 08AC64 8008A064 0304C023 */ subu $t8, $t8, $a0 -/* 08AC68 8008A068 0018C140 */ sll $t8, $t8, 5 -/* 08AC6C 8008A06C 3C198016 */ lui $t9, %hi(D_80165CD8) # 0x8016 -/* 08AC70 8008A070 AFA60008 */ sw $a2, 8($sp) -/* 08AC74 8008A074 0338C821 */ addu $t9, $t9, $t8 -/* 08AC78 8008A078 97395CD8 */ lhu $t9, %lo(D_80165CD8)($t9) # 0x5cd8($t9) -/* 08AC7C 8008A07C 94AF0026 */ lhu $t7, 0x26($a1) -/* 08AC80 8008A080 30CEFFFF */ andi $t6, $a2, 0xffff -/* 08AC84 8008A084 000E5043 */ sra $t2, $t6, 1 -/* 08AC88 8008A088 01F94823 */ subu $t1, $t7, $t9 -/* 08AC8C 8008A08C 012A1021 */ addu $v0, $t1, $t2 -/* 08AC90 8008A090 304BFFFF */ andi $t3, $v0, 0xffff -/* 08AC94 8008A094 05600005 */ bltz $t3, .L8008A0AC -/* 08AC98 8008A098 00001825 */ move $v1, $zero -/* 08AC9C 8008A09C 01CB082A */ slt $at, $t6, $t3 -/* 08ACA0 8008A0A0 14200002 */ bnez $at, .L8008A0AC -/* 08ACA4 8008A0A4 00000000 */ nop -/* 08ACA8 8008A0A8 24030001 */ li $v1, 1 -.L8008A0AC: -/* 08ACAC 8008A0AC 03E00008 */ jr $ra -/* 08ACB0 8008A0B0 00601025 */ move $v0, $v1 diff --git a/asm/non_matchings/code_80086E70/func_8008A0B4.s b/asm/non_matchings/code_80086E70/func_8008A0B4.s deleted file mode 100644 index 51f22ba9a..000000000 --- a/asm/non_matchings/code_80086E70/func_8008A0B4.s +++ /dev/null @@ -1,37 +0,0 @@ -glabel func_8008A0B4 -/* 08ACB4 8008A0B4 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 08ACB8 8008A0B8 000470C0 */ sll $t6, $a0, 3 -/* 08ACBC 8008A0BC 01C47023 */ subu $t6, $t6, $a0 -/* 08ACC0 8008A0C0 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 08ACC4 8008A0C4 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 08ACC8 8008A0C8 000E7140 */ sll $t6, $t6, 5 -/* 08ACCC 8008A0CC AFBF0014 */ sw $ra, 0x14($sp) -/* 08ACD0 8008A0D0 AFA60030 */ sw $a2, 0x30($sp) -/* 08ACD4 8008A0D4 AFA70034 */ sw $a3, 0x34($sp) -/* 08ACD8 8008A0D8 01CF1021 */ addu $v0, $t6, $t7 -/* 08ACDC 8008A0DC C4440004 */ lwc1 $f4, 4($v0) -/* 08ACE0 8008A0E0 C4A60014 */ lwc1 $f6, 0x14($a1) -/* 08ACE4 8008A0E4 C448000C */ lwc1 $f8, 0xc($v0) -/* 08ACE8 8008A0E8 C4AA001C */ lwc1 $f10, 0x1c($a1) -/* 08ACEC 8008A0EC AFA00018 */ sw $zero, 0x18($sp) -/* 08ACF0 8008A0F0 46062301 */ sub.s $f12, $f4, $f6 -/* 08ACF4 8008A0F4 0C0ADE0C */ jal atan2s -/* 08ACF8 8008A0F8 460A4381 */ sub.s $f14, $f8, $f10 -/* 08ACFC 8008A0FC 8FB80030 */ lw $t8, 0x30($sp) -/* 08AD00 8008A100 97A40036 */ lhu $a0, 0x36($sp) -/* 08AD04 8008A104 8FA80018 */ lw $t0, 0x18($sp) -/* 08AD08 8008A108 97190026 */ lhu $t9, 0x26($t8) -/* 08AD0C 8008A10C 00045043 */ sra $t2, $a0, 1 -/* 08AD10 8008A110 8FBF0014 */ lw $ra, 0x14($sp) -/* 08AD14 8008A114 03224823 */ subu $t1, $t9, $v0 -/* 08AD18 8008A118 012A1821 */ addu $v1, $t1, $t2 -/* 08AD1C 8008A11C 306BFFFF */ andi $t3, $v1, 0xffff -/* 08AD20 8008A120 05600005 */ bltz $t3, .L8008A138 -/* 08AD24 8008A124 27BD0028 */ addiu $sp, $sp, 0x28 -/* 08AD28 8008A128 008B082A */ slt $at, $a0, $t3 -/* 08AD2C 8008A12C 14200002 */ bnez $at, .L8008A138 -/* 08AD30 8008A130 00000000 */ nop -/* 08AD34 8008A134 24080001 */ li $t0, 1 -.L8008A138: -/* 08AD38 8008A138 03E00008 */ jr $ra -/* 08AD3C 8008A13C 01001025 */ move $v0, $t0 diff --git a/asm/non_matchings/code_80086E70/func_8008A140.s b/asm/non_matchings/code_80086E70/func_8008A140.s deleted file mode 100644 index 29b567efb..000000000 --- a/asm/non_matchings/code_80086E70/func_8008A140.s +++ /dev/null @@ -1,40 +0,0 @@ -glabel func_8008A140 -/* 08AD40 8008A140 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 08AD44 8008A144 000470C0 */ sll $t6, $a0, 3 -/* 08AD48 8008A148 AFBF0014 */ sw $ra, 0x14($sp) -/* 08AD4C 8008A14C AFA60028 */ sw $a2, 0x28($sp) -/* 08AD50 8008A150 01C47023 */ subu $t6, $t6, $a0 -/* 08AD54 8008A154 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 08AD58 8008A158 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 08AD5C 8008A15C 000E7140 */ sll $t6, $t6, 5 -/* 08AD60 8008A160 01CF1021 */ addu $v0, $t6, $t7 -/* 08AD64 8008A164 8CA60008 */ lw $a2, 8($a1) -/* 08AD68 8008A168 C4AC0000 */ lwc1 $f12, ($a1) -/* 08AD6C 8008A16C AFA00018 */ sw $zero, 0x18($sp) -/* 08AD70 8008A170 AFA50024 */ sw $a1, 0x24($sp) -/* 08AD74 8008A174 C44E0004 */ lwc1 $f14, 4($v0) -/* 08AD78 8008A178 0C0105DC */ jal func_80041770 -/* 08AD7C 8008A17C 8C47000C */ lw $a3, 0xc($v0) -/* 08AD80 8008A180 8FA50024 */ lw $a1, 0x24($sp) -/* 08AD84 8008A184 97A4002A */ lhu $a0, 0x2a($sp) -/* 08AD88 8008A188 8FA80018 */ lw $t0, 0x18($sp) -/* 08AD8C 8008A18C 84A90026 */ lh $t1, 0x26($a1) -/* 08AD90 8008A190 04810003 */ bgez $a0, .L8008A1A0 -/* 08AD94 8008A194 0004C043 */ sra $t8, $a0, 1 -/* 08AD98 8008A198 24810001 */ addiu $at, $a0, 1 -/* 08AD9C 8008A19C 0001C043 */ sra $t8, $at, 1 -.L8008A1A0: -/* 08ADA0 8008A1A0 0058C821 */ addu $t9, $v0, $t8 -/* 08ADA4 8008A1A4 03291823 */ subu $v1, $t9, $t1 -/* 08ADA8 8008A1A8 306AFFFF */ andi $t2, $v1, 0xffff -/* 08ADAC 8008A1AC 05400005 */ bltz $t2, .L8008A1C4 -/* 08ADB0 8008A1B0 8FBF0014 */ lw $ra, 0x14($sp) -/* 08ADB4 8008A1B4 008A082A */ slt $at, $a0, $t2 -/* 08ADB8 8008A1B8 54200003 */ bnel $at, $zero, .L8008A1C8 -/* 08ADBC 8008A1BC 01001025 */ move $v0, $t0 -/* 08ADC0 8008A1C0 24080001 */ li $t0, 1 -.L8008A1C4: -/* 08ADC4 8008A1C4 01001025 */ move $v0, $t0 -.L8008A1C8: -/* 08ADC8 8008A1C8 03E00008 */ jr $ra -/* 08ADCC 8008A1CC 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/non_matchings/code_80086E70/func_8008A1D0.s b/asm/non_matchings/code_80086E70/func_8008A1D0.s deleted file mode 100644 index dfbc4bdf1..000000000 --- a/asm/non_matchings/code_80086E70/func_8008A1D0.s +++ /dev/null @@ -1,68 +0,0 @@ -glabel func_8008A1D0 -/* 08ADD0 8008A1D0 00057880 */ sll $t7, $a1, 2 -/* 08ADD4 8008A1D4 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 08ADD8 8008A1D8 01E57823 */ subu $t7, $t7, $a1 -/* 08ADDC 8008A1DC 3C18800E */ lui $t8, %hi(camera1) # $t8, 0x800e -/* 08ADE0 8008A1E0 8F18DB40 */ lw $t8, %lo(camera1)($t8) -/* 08ADE4 8008A1E4 000F78C0 */ sll $t7, $t7, 3 -/* 08ADE8 8008A1E8 01E57823 */ subu $t7, $t7, $a1 -/* 08ADEC 8008A1EC 000F78C0 */ sll $t7, $t7, 3 -/* 08ADF0 8008A1F0 AFBF001C */ sw $ra, 0x1c($sp) -/* 08ADF4 8008A1F4 AFB00018 */ sw $s0, 0x18($sp) -/* 08ADF8 8008A1F8 AFA50034 */ sw $a1, 0x34($sp) -/* 08ADFC 8008A1FC 01F8C821 */ addu $t9, $t7, $t8 -/* 08AE00 8008A200 00808025 */ move $s0, $a0 -/* 08AE04 8008A204 AFA60038 */ sw $a2, 0x38($sp) -/* 08AE08 8008A208 AFA7003C */ sw $a3, 0x3c($sp) -/* 08AE0C 8008A20C AFB90024 */ sw $t9, 0x24($sp) -/* 08AE10 8008A210 0C01C87A */ jal func_800721E8 -/* 08AE14 8008A214 3C050014 */ lui $a1, 0x14 -/* 08AE18 8008A218 02002025 */ move $a0, $s0 -/* 08AE1C 8008A21C 0C02225B */ jal func_8008896C -/* 08AE20 8008A220 8FA50024 */ lw $a1, 0x24($sp) -/* 08AE24 8008A224 2C412711 */ sltiu $at, $v0, 0x2711 -/* 08AE28 8008A228 10200003 */ beqz $at, .L8008A238 -/* 08AE2C 8008A22C 00401825 */ move $v1, $v0 -/* 08AE30 8008A230 10000007 */ b .L8008A250 -/* 08AE34 8008A234 24065555 */ li $a2, 21845 -.L8008A238: -/* 08AE38 8008A238 34019C41 */ li $at, 40001 -/* 08AE3C 8008A23C 0041082B */ sltu $at, $v0, $at -/* 08AE40 8008A240 10200003 */ beqz $at, .L8008A250 -/* 08AE44 8008A244 24062AAB */ li $a2, 10923 -/* 08AE48 8008A248 10000001 */ b .L8008A250 -/* 08AE4C 8008A24C 24064000 */ li $a2, 16384 -.L8008A250: -/* 08AE50 8008A250 02002025 */ move $a0, $s0 -/* 08AE54 8008A254 8FA50024 */ lw $a1, 0x24($sp) -/* 08AE58 8008A258 0C022850 */ jal func_8008A140 -/* 08AE5C 8008A25C AFA3002C */ sw $v1, 0x2c($sp) -/* 08AE60 8008A260 10400015 */ beqz $v0, .L8008A2B8 -/* 08AE64 8008A264 8FA3002C */ lw $v1, 0x2c($sp) -/* 08AE68 8008A268 8FA2003C */ lw $v0, 0x3c($sp) -/* 08AE6C 8008A26C 02002025 */ move $a0, $s0 -/* 08AE70 8008A270 3C050004 */ lui $a1, 4 -/* 08AE74 8008A274 00420019 */ multu $v0, $v0 -/* 08AE78 8008A278 00004012 */ mflo $t0 -/* 08AE7C 8008A27C 0103082B */ sltu $at, $t0, $v1 -/* 08AE80 8008A280 5420000E */ bnel $at, $zero, .L8008A2BC -/* 08AE84 8008A284 8FBF001C */ lw $ra, 0x1c($sp) -/* 08AE88 8008A288 0C01C870 */ jal func_800721C0 -/* 08AE8C 8008A28C AFA3002C */ sw $v1, 0x2c($sp) -/* 08AE90 8008A290 8FA20038 */ lw $v0, 0x38($sp) -/* 08AE94 8008A294 8FA3002C */ lw $v1, 0x2c($sp) -/* 08AE98 8008A298 02002025 */ move $a0, $s0 -/* 08AE9C 8008A29C 00420019 */ multu $v0, $v0 -/* 08AEA0 8008A2A0 00004812 */ mflo $t1 -/* 08AEA4 8008A2A4 0069082B */ sltu $at, $v1, $t1 -/* 08AEA8 8008A2A8 54200004 */ bnel $at, $zero, .L8008A2BC -/* 08AEAC 8008A2AC 8FBF001C */ lw $ra, 0x1c($sp) -/* 08AEB0 8008A2B0 0C01C870 */ jal func_800721C0 -/* 08AEB4 8008A2B4 3C050010 */ lui $a1, 0x10 -.L8008A2B8: -/* 08AEB8 8008A2B8 8FBF001C */ lw $ra, 0x1c($sp) -.L8008A2BC: -/* 08AEBC 8008A2BC 8FB00018 */ lw $s0, 0x18($sp) -/* 08AEC0 8008A2C0 27BD0030 */ addiu $sp, $sp, 0x30 -/* 08AEC4 8008A2C4 03E00008 */ jr $ra -/* 08AEC8 8008A2C8 00000000 */ nop diff --git a/asm/non_matchings/code_80086E70/func_8008A2CC.s b/asm/non_matchings/code_80086E70/func_8008A2CC.s deleted file mode 100644 index d8a49944d..000000000 --- a/asm/non_matchings/code_80086E70/func_8008A2CC.s +++ /dev/null @@ -1,42 +0,0 @@ -glabel func_8008A2CC -/* 08AECC 8008A2CC 00057080 */ sll $t6, $a1, 2 -/* 08AED0 8008A2D0 01C57023 */ subu $t6, $t6, $a1 -/* 08AED4 8008A2D4 3C0F800E */ lui $t7, %hi(camera1) # $t7, 0x800e -/* 08AED8 8008A2D8 8DEFDB40 */ lw $t7, %lo(camera1)($t7) -/* 08AEDC 8008A2DC 000E70C0 */ sll $t6, $t6, 3 -/* 08AEE0 8008A2E0 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 08AEE4 8008A2E4 01C57023 */ subu $t6, $t6, $a1 -/* 08AEE8 8008A2E8 000E70C0 */ sll $t6, $t6, 3 -/* 08AEEC 8008A2EC AFBF0014 */ sw $ra, 0x14($sp) -/* 08AEF0 8008A2F0 01CFC021 */ addu $t8, $t6, $t7 -/* 08AEF4 8008A2F4 AFA40020 */ sw $a0, 0x20($sp) -/* 08AEF8 8008A2F8 AFA60028 */ sw $a2, 0x28($sp) -/* 08AEFC 8008A2FC AFB8001C */ sw $t8, 0x1c($sp) -/* 08AF00 8008A300 0C01C87A */ jal func_800721E8 -/* 08AF04 8008A304 3C050004 */ lui $a1, 4 -/* 08AF08 8008A308 8FA20018 */ lw $v0, 0x18($sp) -/* 08AF0C 8008A30C 8FA40020 */ lw $a0, 0x20($sp) -/* 08AF10 8008A310 2C412711 */ sltiu $at, $v0, 0x2711 -/* 08AF14 8008A314 50200004 */ beql $at, $zero, .L8008A328 -/* 08AF18 8008A318 34019C41 */ li $at, 40001 -/* 08AF1C 8008A31C 10000007 */ b .L8008A33C -/* 08AF20 8008A320 24065555 */ li $a2, 21845 -/* 08AF24 8008A324 34019C41 */ li $at, 40001 -.L8008A328: -/* 08AF28 8008A328 0041082B */ sltu $at, $v0, $at -/* 08AF2C 8008A32C 10200003 */ beqz $at, .L8008A33C -/* 08AF30 8008A330 97A6002A */ lhu $a2, 0x2a($sp) -/* 08AF34 8008A334 10000001 */ b .L8008A33C -/* 08AF38 8008A338 24064000 */ li $a2, 16384 -.L8008A33C: -/* 08AF3C 8008A33C 0C022850 */ jal func_8008A140 -/* 08AF40 8008A340 8FA5001C */ lw $a1, 0x1c($sp) -/* 08AF44 8008A344 10400003 */ beqz $v0, .L8008A354 -/* 08AF48 8008A348 8FA40020 */ lw $a0, 0x20($sp) -/* 08AF4C 8008A34C 0C01C870 */ jal func_800721C0 -/* 08AF50 8008A350 3C050004 */ lui $a1, 4 -.L8008A354: -/* 08AF54 8008A354 8FBF0014 */ lw $ra, 0x14($sp) -/* 08AF58 8008A358 27BD0020 */ addiu $sp, $sp, 0x20 -/* 08AF5C 8008A35C 03E00008 */ jr $ra -/* 08AF60 8008A360 00000000 */ nop diff --git a/asm/non_matchings/code_80086E70/func_8008A364.s b/asm/non_matchings/code_80086E70/func_8008A364.s deleted file mode 100644 index 9f67fbd4c..000000000 --- a/asm/non_matchings/code_80086E70/func_8008A364.s +++ /dev/null @@ -1,65 +0,0 @@ -glabel func_8008A364 -/* 08AF64 8008A364 00057880 */ sll $t7, $a1, 2 -/* 08AF68 8008A368 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 08AF6C 8008A36C 01E57823 */ subu $t7, $t7, $a1 -/* 08AF70 8008A370 3C18800E */ lui $t8, %hi(camera1) # $t8, 0x800e -/* 08AF74 8008A374 8F18DB40 */ lw $t8, %lo(camera1)($t8) -/* 08AF78 8008A378 000F78C0 */ sll $t7, $t7, 3 -/* 08AF7C 8008A37C 01E57823 */ subu $t7, $t7, $a1 -/* 08AF80 8008A380 000F78C0 */ sll $t7, $t7, 3 -/* 08AF84 8008A384 AFBF001C */ sw $ra, 0x1c($sp) -/* 08AF88 8008A388 AFB00018 */ sw $s0, 0x18($sp) -/* 08AF8C 8008A38C AFA5002C */ sw $a1, 0x2c($sp) -/* 08AF90 8008A390 01F8C821 */ addu $t9, $t7, $t8 -/* 08AF94 8008A394 00808025 */ move $s0, $a0 -/* 08AF98 8008A398 AFA60030 */ sw $a2, 0x30($sp) -/* 08AF9C 8008A39C AFA70034 */ sw $a3, 0x34($sp) -/* 08AFA0 8008A3A0 AFB90024 */ sw $t9, 0x24($sp) -/* 08AFA4 8008A3A4 0C01C87A */ jal func_800721E8 -/* 08AFA8 8008A3A8 3C050006 */ lui $a1, 6 -/* 08AFAC 8008A3AC 02002025 */ move $a0, $s0 -/* 08AFB0 8008A3B0 0C02225B */ jal func_8008896C -/* 08AFB4 8008A3B4 8FA50024 */ lw $a1, 0x24($sp) -/* 08AFB8 8008A3B8 8FA40034 */ lw $a0, 0x34($sp) -/* 08AFBC 8008A3BC 00401825 */ move $v1, $v0 -/* 08AFC0 8008A3C0 3C050002 */ lui $a1, 2 -/* 08AFC4 8008A3C4 00840019 */ multu $a0, $a0 -/* 08AFC8 8008A3C8 02002025 */ move $a0, $s0 -/* 08AFCC 8008A3CC 00004012 */ mflo $t0 -/* 08AFD0 8008A3D0 0048082B */ sltu $at, $v0, $t0 -/* 08AFD4 8008A3D4 5020001B */ beql $at, $zero, .L8008A444 -/* 08AFD8 8008A3D8 8FBF001C */ lw $ra, 0x1c($sp) -/* 08AFDC 8008A3DC 0C01C870 */ jal func_800721C0 -/* 08AFE0 8008A3E0 AFA20020 */ sw $v0, 0x20($sp) -/* 08AFE4 8008A3E4 8FA30020 */ lw $v1, 0x20($sp) -/* 08AFE8 8008A3E8 02002025 */ move $a0, $s0 -/* 08AFEC 8008A3EC 8FA50024 */ lw $a1, 0x24($sp) -/* 08AFF0 8008A3F0 2C612711 */ sltiu $at, $v1, 0x2711 -/* 08AFF4 8008A3F4 50200004 */ beql $at, $zero, .L8008A408 -/* 08AFF8 8008A3F8 34019C41 */ li $at, 40001 -/* 08AFFC 8008A3FC 10000007 */ b .L8008A41C -/* 08B000 8008A400 24065555 */ li $a2, 21845 -/* 08B004 8008A404 34019C41 */ li $at, 40001 -.L8008A408: -/* 08B008 8008A408 0061082B */ sltu $at, $v1, $at -/* 08B00C 8008A40C 10200003 */ beqz $at, .L8008A41C -/* 08B010 8008A410 97A60032 */ lhu $a2, 0x32($sp) -/* 08B014 8008A414 10000001 */ b .L8008A41C -/* 08B018 8008A418 24064000 */ li $a2, 16384 -.L8008A41C: -/* 08B01C 8008A41C 0C022850 */ jal func_8008A140 -/* 08B020 8008A420 AFA30020 */ sw $v1, 0x20($sp) -/* 08B024 8008A424 10400006 */ beqz $v0, .L8008A440 -/* 08B028 8008A428 8FA30020 */ lw $v1, 0x20($sp) -/* 08B02C 8008A42C 02002025 */ move $a0, $s0 -/* 08B030 8008A430 3C050004 */ lui $a1, 4 -/* 08B034 8008A434 0C01C870 */ jal func_800721C0 -/* 08B038 8008A438 AFA30020 */ sw $v1, 0x20($sp) -/* 08B03C 8008A43C 8FA30020 */ lw $v1, 0x20($sp) -.L8008A440: -/* 08B040 8008A440 8FBF001C */ lw $ra, 0x1c($sp) -.L8008A444: -/* 08B044 8008A444 8FB00018 */ lw $s0, 0x18($sp) -/* 08B048 8008A448 27BD0028 */ addiu $sp, $sp, 0x28 -/* 08B04C 8008A44C 03E00008 */ jr $ra -/* 08B050 8008A450 00601025 */ move $v0, $v1 diff --git a/asm/non_matchings/code_80086E70/func_8008A454.s b/asm/non_matchings/code_80086E70/func_8008A454.s deleted file mode 100644 index 905cc0504..000000000 --- a/asm/non_matchings/code_80086E70/func_8008A454.s +++ /dev/null @@ -1,33 +0,0 @@ -glabel func_8008A454 -/* 08B054 8008A454 00057080 */ sll $t6, $a1, 2 -/* 08B058 8008A458 01C57023 */ subu $t6, $t6, $a1 -/* 08B05C 8008A45C 000E70C0 */ sll $t6, $t6, 3 -/* 08B060 8008A460 3C0F800E */ lui $t7, %hi(camera1) # $t7, 0x800e -/* 08B064 8008A464 8DEFDB40 */ lw $t7, %lo(camera1)($t7) -/* 08B068 8008A468 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 08B06C 8008A46C 01C57023 */ subu $t6, $t6, $a1 -/* 08B070 8008A470 AFBF0014 */ sw $ra, 0x14($sp) -/* 08B074 8008A474 000E70C0 */ sll $t6, $t6, 3 -/* 08B078 8008A478 AFA60020 */ sw $a2, 0x20($sp) -/* 08B07C 8008A47C AFA40018 */ sw $a0, 0x18($sp) -/* 08B080 8008A480 0C02225B */ jal func_8008896C -/* 08B084 8008A484 01CF2821 */ addu $a1, $t6, $t7 -/* 08B088 8008A488 8FA30020 */ lw $v1, 0x20($sp) -/* 08B08C 8008A48C 8FA40018 */ lw $a0, 0x18($sp) -/* 08B090 8008A490 00630019 */ multu $v1, $v1 -/* 08B094 8008A494 0000C012 */ mflo $t8 -/* 08B098 8008A498 0058082B */ sltu $at, $v0, $t8 -/* 08B09C 8008A49C 10200005 */ beqz $at, .L8008A4B4 -/* 08B0A0 8008A4A0 00000000 */ nop -/* 08B0A4 8008A4A4 0C01C870 */ jal func_800721C0 -/* 08B0A8 8008A4A8 24050020 */ li $a1, 32 -/* 08B0AC 8008A4AC 10000004 */ b .L8008A4C0 -/* 08B0B0 8008A4B0 8FBF0014 */ lw $ra, 0x14($sp) -.L8008A4B4: -/* 08B0B4 8008A4B4 0C01C87A */ jal func_800721E8 -/* 08B0B8 8008A4B8 24050020 */ li $a1, 32 -/* 08B0BC 8008A4BC 8FBF0014 */ lw $ra, 0x14($sp) -.L8008A4C0: -/* 08B0C0 8008A4C0 27BD0018 */ addiu $sp, $sp, 0x18 -/* 08B0C4 8008A4C4 03E00008 */ jr $ra -/* 08B0C8 8008A4C8 00000000 */ nop diff --git a/asm/non_matchings/code_80086E70/func_8008A4CC.s b/asm/non_matchings/code_80086E70/func_8008A4CC.s deleted file mode 100644 index a3a09c32a..000000000 --- a/asm/non_matchings/code_80086E70/func_8008A4CC.s +++ /dev/null @@ -1,86 +0,0 @@ -glabel func_8008A4CC -/* 08B0CC 8008A4CC 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 08B0D0 8008A4D0 AFBF003C */ sw $ra, 0x3c($sp) -/* 08B0D4 8008A4D4 AFB1001C */ sw $s1, 0x1c($sp) -/* 08B0D8 8008A4D8 00808825 */ move $s1, $a0 -/* 08B0DC 8008A4DC AFBE0038 */ sw $fp, 0x38($sp) -/* 08B0E0 8008A4E0 AFB70034 */ sw $s7, 0x34($sp) -/* 08B0E4 8008A4E4 AFB60030 */ sw $s6, 0x30($sp) -/* 08B0E8 8008A4E8 AFB5002C */ sw $s5, 0x2c($sp) -/* 08B0EC 8008A4EC AFB40028 */ sw $s4, 0x28($sp) -/* 08B0F0 8008A4F0 AFB30024 */ sw $s3, 0x24($sp) -/* 08B0F4 8008A4F4 AFB20020 */ sw $s2, 0x20($sp) -/* 08B0F8 8008A4F8 AFB00018 */ sw $s0, 0x18($sp) -/* 08B0FC 8008A4FC 0C01C87A */ jal func_800721E8 -/* 08B100 8008A500 3C050007 */ lui $a1, 7 -/* 08B104 8008A504 3C0E800E */ lui $t6, %hi(gPlayerCountSelection1) # $t6, 0x800e -/* 08B108 8008A508 8DCEC538 */ lw $t6, %lo(gPlayerCountSelection1)($t6) -/* 08B10C 8008A50C 3C14800E */ lui $s4, %hi(camera1) # $s4, 0x800e -/* 08B110 8008A510 8E94DB40 */ lw $s4, %lo(camera1)($s4) -/* 08B114 8008A514 19C00032 */ blez $t6, .L8008A5E0 -/* 08B118 8008A518 00009025 */ move $s2, $zero -/* 08B11C 8008A51C 001178C0 */ sll $t7, $s1, 3 -/* 08B120 8008A520 01F17823 */ subu $t7, $t7, $s1 -/* 08B124 8008A524 3C188016 */ lui $t8, %hi(D_80165C18) # $t8, 0x8016 -/* 08B128 8008A528 27185C18 */ addiu $t8, %lo(D_80165C18) # addiu $t8, $t8, 0x5c18 -/* 08B12C 8008A52C 000F7940 */ sll $t7, $t7, 5 -/* 08B130 8008A530 3C158019 */ lui $s5, %hi(D_8018CF68) # $s5, 0x8019 -/* 08B134 8008A534 26B5CF68 */ addiu $s5, %lo(D_8018CF68) # addiu $s5, $s5, -0x3098 -/* 08B138 8008A538 01F89821 */ addu $s3, $t7, $t8 -/* 08B13C 8008A53C 3C1E0004 */ lui $fp, 4 -/* 08B140 8008A540 3C170002 */ lui $s7, 2 -/* 08B144 8008A544 3C160001 */ lui $s6, 1 -/* 08B148 8008A548 867900A6 */ lh $t9, 0xa6($s3) -.L8008A54C: -/* 08B14C 8008A54C 00124040 */ sll $t0, $s2, 1 -/* 08B150 8008A550 02A88021 */ addu $s0, $s5, $t0 -/* 08B154 8008A554 1320001B */ beqz $t9, .L8008A5C4 -/* 08B158 8008A558 00000000 */ nop -/* 08B15C 8008A55C 926300DF */ lbu $v1, 0xdf($s3) -/* 08B160 8008A560 86020000 */ lh $v0, ($s0) -/* 08B164 8008A564 2469FFFF */ addiu $t1, $v1, -1 -/* 08B168 8008A568 0049082A */ slt $at, $v0, $t1 -/* 08B16C 8008A56C 14200015 */ bnez $at, .L8008A5C4 -/* 08B170 8008A570 246A0001 */ addiu $t2, $v1, 1 -/* 08B174 8008A574 0142082A */ slt $at, $t2, $v0 -/* 08B178 8008A578 14200012 */ bnez $at, .L8008A5C4 -/* 08B17C 8008A57C 02202025 */ move $a0, $s1 -/* 08B180 8008A580 0C01C870 */ jal func_800721C0 -/* 08B184 8008A584 02C02825 */ move $a1, $s6 -/* 08B188 8008A588 860B0000 */ lh $t3, ($s0) -/* 08B18C 8008A58C 926C00DF */ lbu $t4, 0xdf($s3) -/* 08B190 8008A590 02202025 */ move $a0, $s1 -/* 08B194 8008A594 556C0004 */ bnel $t3, $t4, .L8008A5A8 -/* 08B198 8008A598 02202025 */ move $a0, $s1 -/* 08B19C 8008A59C 0C01C870 */ jal func_800721C0 -/* 08B1A0 8008A5A0 02E02825 */ move $a1, $s7 -/* 08B1A4 8008A5A4 02202025 */ move $a0, $s1 -.L8008A5A8: -/* 08B1A8 8008A5A8 02802825 */ move $a1, $s4 -/* 08B1AC 8008A5AC 0C022850 */ jal func_8008A140 -/* 08B1B0 8008A5B0 24062AAB */ li $a2, 10923 -/* 08B1B4 8008A5B4 10400003 */ beqz $v0, .L8008A5C4 -/* 08B1B8 8008A5B8 02202025 */ move $a0, $s1 -/* 08B1BC 8008A5BC 0C01C870 */ jal func_800721C0 -/* 08B1C0 8008A5C0 03C02825 */ move $a1, $fp -.L8008A5C4: -/* 08B1C4 8008A5C4 3C0D800E */ lui $t5, %hi(gPlayerCountSelection1) # $t5, 0x800e -/* 08B1C8 8008A5C8 8DADC538 */ lw $t5, %lo(gPlayerCountSelection1)($t5) -/* 08B1CC 8008A5CC 26520001 */ addiu $s2, $s2, 1 -/* 08B1D0 8008A5D0 269400B8 */ addiu $s4, $s4, 0xb8 -/* 08B1D4 8008A5D4 024D082A */ slt $at, $s2, $t5 -/* 08B1D8 8008A5D8 5420FFDC */ bnel $at, $zero, .L8008A54C -/* 08B1DC 8008A5DC 867900A6 */ lh $t9, 0xa6($s3) -.L8008A5E0: -/* 08B1E0 8008A5E0 8FBF003C */ lw $ra, 0x3c($sp) -/* 08B1E4 8008A5E4 8FB00018 */ lw $s0, 0x18($sp) -/* 08B1E8 8008A5E8 8FB1001C */ lw $s1, 0x1c($sp) -/* 08B1EC 8008A5EC 8FB20020 */ lw $s2, 0x20($sp) -/* 08B1F0 8008A5F0 8FB30024 */ lw $s3, 0x24($sp) -/* 08B1F4 8008A5F4 8FB40028 */ lw $s4, 0x28($sp) -/* 08B1F8 8008A5F8 8FB5002C */ lw $s5, 0x2c($sp) -/* 08B1FC 8008A5FC 8FB60030 */ lw $s6, 0x30($sp) -/* 08B200 8008A600 8FB70034 */ lw $s7, 0x34($sp) -/* 08B204 8008A604 8FBE0038 */ lw $fp, 0x38($sp) -/* 08B208 8008A608 03E00008 */ jr $ra -/* 08B20C 8008A60C 27BD0040 */ addiu $sp, $sp, 0x40 diff --git a/asm/non_matchings/code_80086E70/func_8008A610.s b/asm/non_matchings/code_80086E70/func_8008A610.s deleted file mode 100644 index 0c234df60..000000000 --- a/asm/non_matchings/code_80086E70/func_8008A610.s +++ /dev/null @@ -1,57 +0,0 @@ - -glabel func_8008A610 -/* 08B210 8008A610 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 08B214 8008A614 AFB40024 */ sw $s4, 0x24($sp) -/* 08B218 8008A618 3C140004 */ lui $s4, 4 -/* 08B21C 8008A61C AFBF002C */ sw $ra, 0x2c($sp) -/* 08B220 8008A620 AFB2001C */ sw $s2, 0x1c($sp) -/* 08B224 8008A624 00809025 */ move $s2, $a0 -/* 08B228 8008A628 AFB50028 */ sw $s5, 0x28($sp) -/* 08B22C 8008A62C AFB30020 */ sw $s3, 0x20($sp) -/* 08B230 8008A630 AFB10018 */ sw $s1, 0x18($sp) -/* 08B234 8008A634 AFB00014 */ sw $s0, 0x14($sp) -/* 08B238 8008A638 0C01C87A */ jal func_800721E8 -/* 08B23C 8008A63C 02802825 */ move $a1, $s4 -/* 08B240 8008A640 3C15800E */ lui $s5, %hi(gPlayerCountSelection1) # $s5, 0x800e -/* 08B244 8008A644 26B5C538 */ addiu $s5, %lo(gPlayerCountSelection1) # addiu $s5, $s5, -0x3ac8 -/* 08B248 8008A648 8EAE0000 */ lw $t6, ($s5) -/* 08B24C 8008A64C 3C10800E */ lui $s0, %hi(camera1) # $s0, 0x800e -/* 08B250 8008A650 8E10DB40 */ lw $s0, %lo(camera1)($s0) -/* 08B254 8008A654 19C00018 */ blez $t6, .L8008A6B8 -/* 08B258 8008A658 00008825 */ move $s1, $zero -/* 08B25C 8008A65C 001278C0 */ sll $t7, $s2, 3 -/* 08B260 8008A660 01F27823 */ subu $t7, $t7, $s2 -/* 08B264 8008A664 3C188016 */ lui $t8, %hi(D_80165C18) # $t8, 0x8016 -/* 08B268 8008A668 27185C18 */ addiu $t8, %lo(D_80165C18) # addiu $t8, $t8, 0x5c18 -/* 08B26C 8008A66C 000F7940 */ sll $t7, $t7, 5 -/* 08B270 8008A670 01F89821 */ addu $s3, $t7, $t8 -/* 08B274 8008A674 867900A6 */ lh $t9, 0xa6($s3) -.L8008A678: -/* 08B278 8008A678 02402025 */ move $a0, $s2 -/* 08B27C 8008A67C 02002825 */ move $a1, $s0 -/* 08B280 8008A680 53200008 */ beql $t9, $zero, .L8008A6A4 -/* 08B284 8008A684 8EA80000 */ lw $t0, ($s5) -/* 08B288 8008A688 0C022850 */ jal func_8008A140 -/* 08B28C 8008A68C 24062AAB */ li $a2, 10923 -/* 08B290 8008A690 10400003 */ beqz $v0, .L8008A6A0 -/* 08B294 8008A694 02402025 */ move $a0, $s2 -/* 08B298 8008A698 0C01C870 */ jal func_800721C0 -/* 08B29C 8008A69C 02802825 */ move $a1, $s4 -.L8008A6A0: -/* 08B2A0 8008A6A0 8EA80000 */ lw $t0, ($s5) -.L8008A6A4: -/* 08B2A4 8008A6A4 26310001 */ addiu $s1, $s1, 1 -/* 08B2A8 8008A6A8 261000B8 */ addiu $s0, $s0, 0xb8 -/* 08B2AC 8008A6AC 0228082A */ slt $at, $s1, $t0 -/* 08B2B0 8008A6B0 5420FFF1 */ bnel $at, $zero, .L8008A678 -/* 08B2B4 8008A6B4 867900A6 */ lh $t9, 0xa6($s3) -.L8008A6B8: -/* 08B2B8 8008A6B8 8FBF002C */ lw $ra, 0x2c($sp) -/* 08B2BC 8008A6BC 8FB00014 */ lw $s0, 0x14($sp) -/* 08B2C0 8008A6C0 8FB10018 */ lw $s1, 0x18($sp) -/* 08B2C4 8008A6C4 8FB2001C */ lw $s2, 0x1c($sp) -/* 08B2C8 8008A6C8 8FB30020 */ lw $s3, 0x20($sp) -/* 08B2CC 8008A6CC 8FB40024 */ lw $s4, 0x24($sp) -/* 08B2D0 8008A6D0 8FB50028 */ lw $s5, 0x28($sp) -/* 08B2D4 8008A6D4 03E00008 */ jr $ra -/* 08B2D8 8008A6D8 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/asm/non_matchings/code_80086E70/func_8008B928.s b/asm/non_matchings/code_80086E70/func_8008B928.s index 29d02f881..ec8b5d42a 100644 --- a/asm/non_matchings/code_80086E70/func_8008B928.s +++ b/asm/non_matchings/code_80086E70/func_8008B928.s @@ -69,35 +69,3 @@ glabel func_8008B928 /* 08C634 8008BA34 8FB10018 */ lw $s1, 0x18($sp) /* 08C638 8008BA38 03E00008 */ jr $ra /* 08C63C 8008BA3C 27BD0020 */ addiu $sp, $sp, 0x20 - -glabel func_8008BA40 -/* 08C640 8008BA40 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 08C644 8008BA44 AFBF0014 */ sw $ra, 0x14($sp) -/* 08C648 8008BA48 AFA40018 */ sw $a0, 0x18($sp) -/* 08C64C 8008BA4C AFA60020 */ sw $a2, 0x20($sp) -/* 08C650 8008BA50 AFA5001C */ sw $a1, 0x1c($sp) -/* 08C654 8008BA54 0C0ADF8D */ jal random_int -/* 08C658 8008BA58 97A40022 */ lhu $a0, 0x22($sp) -/* 08C65C 8008BA5C 97AF0022 */ lhu $t7, 0x22($sp) -/* 08C660 8008BA60 87AE001E */ lh $t6, 0x1e($sp) -/* 08C664 8008BA64 8FAB0018 */ lw $t3, 0x18($sp) -/* 08C668 8008BA68 05E10003 */ bgez $t7, .L8008BA78 -/* 08C66C 8008BA6C 000FC043 */ sra $t8, $t7, 1 -/* 08C670 8008BA70 25E10001 */ addiu $at, $t7, 1 -/* 08C674 8008BA74 0001C043 */ sra $t8, $at, 1 -.L8008BA78: -/* 08C678 8008BA78 0058C823 */ subu $t9, $v0, $t8 -/* 08C67C 8008BA7C 00194400 */ sll $t0, $t9, 0x10 -/* 08C680 8008BA80 00084C03 */ sra $t1, $t0, 0x10 -/* 08C684 8008BA84 01C95021 */ addu $t2, $t6, $t1 -/* 08C688 8008BA88 448A2000 */ mtc1 $t2, $f4 -/* 08C68C 8008BA8C 000B60C0 */ sll $t4, $t3, 3 -/* 08C690 8008BA90 8FBF0014 */ lw $ra, 0x14($sp) -/* 08C694 8008BA94 468021A0 */ cvt.s.w $f6, $f4 -/* 08C698 8008BA98 018B6023 */ subu $t4, $t4, $t3 -/* 08C69C 8008BA9C 000C6140 */ sll $t4, $t4, 5 -/* 08C6A0 8008BAA0 3C018016 */ lui $at, %hi(D_80165C28) -/* 08C6A4 8008BAA4 002C0821 */ addu $at, $at, $t4 -/* 08C6A8 8008BAA8 27BD0018 */ addiu $sp, $sp, 0x18 -/* 08C6AC 8008BAAC 03E00008 */ jr $ra -/* 08C6B0 8008BAB0 E4265C28 */ swc1 $f6, %lo(D_80165C28)($at) diff --git a/asm/non_matchings/code_80086E70/func_8008BAB4.s b/asm/non_matchings/code_80086E70/func_8008BAB4.s deleted file mode 100644 index a9339e54f..000000000 --- a/asm/non_matchings/code_80086E70/func_8008BAB4.s +++ /dev/null @@ -1,31 +0,0 @@ -glabel func_8008BAB4 -/* 08C6B4 8008BAB4 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 08C6B8 8008BAB8 AFBF0014 */ sw $ra, 0x14($sp) -/* 08C6BC 8008BABC AFA40018 */ sw $a0, 0x18($sp) -/* 08C6C0 8008BAC0 AFA60020 */ sw $a2, 0x20($sp) -/* 08C6C4 8008BAC4 AFA5001C */ sw $a1, 0x1c($sp) -/* 08C6C8 8008BAC8 0C0ADF8D */ jal random_int -/* 08C6CC 8008BACC 97A40022 */ lhu $a0, 0x22($sp) -/* 08C6D0 8008BAD0 97AF0022 */ lhu $t7, 0x22($sp) -/* 08C6D4 8008BAD4 87AE001E */ lh $t6, 0x1e($sp) -/* 08C6D8 8008BAD8 8FAB0018 */ lw $t3, 0x18($sp) -/* 08C6DC 8008BADC 05E10003 */ bgez $t7, .L8008BAEC -/* 08C6E0 8008BAE0 000FC043 */ sra $t8, $t7, 1 -/* 08C6E4 8008BAE4 25E10001 */ addiu $at, $t7, 1 -/* 08C6E8 8008BAE8 0001C043 */ sra $t8, $at, 1 -.L8008BAEC: -/* 08C6EC 8008BAEC 0058C823 */ subu $t9, $v0, $t8 -/* 08C6F0 8008BAF0 00194400 */ sll $t0, $t9, 0x10 -/* 08C6F4 8008BAF4 00084C03 */ sra $t1, $t0, 0x10 -/* 08C6F8 8008BAF8 01C95021 */ addu $t2, $t6, $t1 -/* 08C6FC 8008BAFC 448A2000 */ mtc1 $t2, $f4 -/* 08C700 8008BB00 000B60C0 */ sll $t4, $t3, 3 -/* 08C704 8008BB04 8FBF0014 */ lw $ra, 0x14($sp) -/* 08C708 8008BB08 468021A0 */ cvt.s.w $f6, $f4 -/* 08C70C 8008BB0C 018B6023 */ subu $t4, $t4, $t3 -/* 08C710 8008BB10 000C6140 */ sll $t4, $t4, 5 -/* 08C714 8008BB14 3C018016 */ lui $at, %hi(D_80165C2C) -/* 08C718 8008BB18 002C0821 */ addu $at, $at, $t4 -/* 08C71C 8008BB1C 27BD0018 */ addiu $sp, $sp, 0x18 -/* 08C720 8008BB20 03E00008 */ jr $ra -/* 08C724 8008BB24 E4265C2C */ swc1 $f6, %lo(D_80165C2C)($at) diff --git a/asm/non_matchings/code_80086E70/func_8008BB28.s b/asm/non_matchings/code_80086E70/func_8008BB28.s deleted file mode 100644 index 6df0cf138..000000000 --- a/asm/non_matchings/code_80086E70/func_8008BB28.s +++ /dev/null @@ -1,133 +0,0 @@ -glabel func_8008BB28 -/* 08C728 8008BB28 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 08C72C 8008BB2C AFBF0014 */ sw $ra, 0x14($sp) -/* 08C730 8008BB30 AFA40018 */ sw $a0, 0x18($sp) -/* 08C734 8008BB34 AFA60020 */ sw $a2, 0x20($sp) -/* 08C738 8008BB38 AFA5001C */ sw $a1, 0x1c($sp) -/* 08C73C 8008BB3C 0C0ADF8D */ jal random_int -/* 08C740 8008BB40 97A40022 */ lhu $a0, 0x22($sp) -/* 08C744 8008BB44 97AF0022 */ lhu $t7, 0x22($sp) -/* 08C748 8008BB48 87AE001E */ lh $t6, 0x1e($sp) -/* 08C74C 8008BB4C 8FAB0018 */ lw $t3, 0x18($sp) -/* 08C750 8008BB50 05E10003 */ bgez $t7, .L8008BB60 -/* 08C754 8008BB54 000FC043 */ sra $t8, $t7, 1 -/* 08C758 8008BB58 25E10001 */ addiu $at, $t7, 1 -/* 08C75C 8008BB5C 0001C043 */ sra $t8, $at, 1 -.L8008BB60: -/* 08C760 8008BB60 0058C823 */ subu $t9, $v0, $t8 -/* 08C764 8008BB64 00194400 */ sll $t0, $t9, 0x10 -/* 08C768 8008BB68 00084C03 */ sra $t1, $t0, 0x10 -/* 08C76C 8008BB6C 01C95021 */ addu $t2, $t6, $t1 -/* 08C770 8008BB70 448A2000 */ mtc1 $t2, $f4 -/* 08C774 8008BB74 000B60C0 */ sll $t4, $t3, 3 -/* 08C778 8008BB78 8FBF0014 */ lw $ra, 0x14($sp) -/* 08C77C 8008BB7C 468021A0 */ cvt.s.w $f6, $f4 -/* 08C780 8008BB80 018B6023 */ subu $t4, $t4, $t3 -/* 08C784 8008BB84 000C6140 */ sll $t4, $t4, 5 -/* 08C788 8008BB88 3C018016 */ lui $at, %hi(D_80165C30) -/* 08C78C 8008BB8C 002C0821 */ addu $at, $at, $t4 -/* 08C790 8008BB90 27BD0018 */ addiu $sp, $sp, 0x18 -/* 08C794 8008BB94 03E00008 */ jr $ra -/* 08C798 8008BB98 E4265C30 */ swc1 $f6, %lo(D_80165C30)($at) - -glabel func_8008BB9C -/* 08C79C 8008BB9C 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 08C7A0 8008BBA0 AFBF0014 */ sw $ra, 0x14($sp) -/* 08C7A4 8008BBA4 AFA40020 */ sw $a0, 0x20($sp) -/* 08C7A8 8008BBA8 AFA7002C */ sw $a3, 0x2c($sp) -/* 08C7AC 8008BBAC AFA50024 */ sw $a1, 0x24($sp) -/* 08C7B0 8008BBB0 AFA60028 */ sw $a2, 0x28($sp) -/* 08C7B4 8008BBB4 0C0ADF8D */ jal random_int -/* 08C7B8 8008BBB8 97A4002E */ lhu $a0, 0x2e($sp) -/* 08C7BC 8008BBBC 97AE002E */ lhu $t6, 0x2e($sp) -/* 08C7C0 8008BBC0 97A40032 */ lhu $a0, 0x32($sp) -/* 08C7C4 8008BBC4 05C10003 */ bgez $t6, .L8008BBD4 -/* 08C7C8 8008BBC8 000E7843 */ sra $t7, $t6, 1 -/* 08C7CC 8008BBCC 25C10001 */ addiu $at, $t6, 1 -/* 08C7D0 8008BBD0 00017843 */ sra $t7, $at, 1 -.L8008BBD4: -/* 08C7D4 8008BBD4 004FC023 */ subu $t8, $v0, $t7 -/* 08C7D8 8008BBD8 0C0ADF8D */ jal random_int -/* 08C7DC 8008BBDC A7B8001E */ sh $t8, 0x1e($sp) -/* 08C7E0 8008BBE0 8FB90020 */ lw $t9, 0x20($sp) -/* 08C7E4 8008BBE4 97AE0032 */ lhu $t6, 0x32($sp) -/* 08C7E8 8008BBE8 87AA0026 */ lh $t2, 0x26($sp) -/* 08C7EC 8008BBEC 001940C0 */ sll $t0, $t9, 3 -/* 08C7F0 8008BBF0 87AB001E */ lh $t3, 0x1e($sp) -/* 08C7F4 8008BBF4 3C098016 */ lui $t1, %hi(D_80165C18) # $t1, 0x8016 -/* 08C7F8 8008BBF8 01194023 */ subu $t0, $t0, $t9 -/* 08C7FC 8008BBFC 87AD002A */ lh $t5, 0x2a($sp) -/* 08C800 8008BC00 00084140 */ sll $t0, $t0, 5 -/* 08C804 8008BC04 25295C18 */ addiu $t1, %lo(D_80165C18) # addiu $t1, $t1, 0x5c18 -/* 08C808 8008BC08 01091821 */ addu $v1, $t0, $t1 -/* 08C80C 8008BC0C 014B6021 */ addu $t4, $t2, $t3 -/* 08C810 8008BC10 448C2000 */ mtc1 $t4, $f4 -/* 08C814 8008BC14 8FBF0014 */ lw $ra, 0x14($sp) -/* 08C818 8008BC18 27BD0020 */ addiu $sp, $sp, 0x20 -/* 08C81C 8008BC1C 468021A0 */ cvt.s.w $f6, $f4 -/* 08C820 8008BC20 E4660010 */ swc1 $f6, 0x10($v1) -/* 08C824 8008BC24 05C10003 */ bgez $t6, .L8008BC34 -/* 08C828 8008BC28 000E7843 */ sra $t7, $t6, 1 -/* 08C82C 8008BC2C 25C10001 */ addiu $at, $t6, 1 -/* 08C830 8008BC30 00017843 */ sra $t7, $at, 1 -.L8008BC34: -/* 08C834 8008BC34 004FC023 */ subu $t8, $v0, $t7 -/* 08C838 8008BC38 0018CC00 */ sll $t9, $t8, 0x10 -/* 08C83C 8008BC3C 00194403 */ sra $t0, $t9, 0x10 -/* 08C840 8008BC40 01A84821 */ addu $t1, $t5, $t0 -/* 08C844 8008BC44 44894000 */ mtc1 $t1, $f8 -/* 08C848 8008BC48 00000000 */ nop -/* 08C84C 8008BC4C 468042A0 */ cvt.s.w $f10, $f8 -/* 08C850 8008BC50 03E00008 */ jr $ra -/* 08C854 8008BC54 E46A0014 */ swc1 $f10, 0x14($v1) - -glabel func_8008BC58 -/* 08C858 8008BC58 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 08C85C 8008BC5C AFBF0014 */ sw $ra, 0x14($sp) -/* 08C860 8008BC60 AFA40020 */ sw $a0, 0x20($sp) -/* 08C864 8008BC64 AFA7002C */ sw $a3, 0x2c($sp) -/* 08C868 8008BC68 AFA50024 */ sw $a1, 0x24($sp) -/* 08C86C 8008BC6C AFA60028 */ sw $a2, 0x28($sp) -/* 08C870 8008BC70 0C0ADF8D */ jal random_int -/* 08C874 8008BC74 97A4002E */ lhu $a0, 0x2e($sp) -/* 08C878 8008BC78 97AE002E */ lhu $t6, 0x2e($sp) -/* 08C87C 8008BC7C 97A40032 */ lhu $a0, 0x32($sp) -/* 08C880 8008BC80 05C10003 */ bgez $t6, .L8008BC90 -/* 08C884 8008BC84 000E7843 */ sra $t7, $t6, 1 -/* 08C888 8008BC88 25C10001 */ addiu $at, $t6, 1 -/* 08C88C 8008BC8C 00017843 */ sra $t7, $at, 1 -.L8008BC90: -/* 08C890 8008BC90 004FC023 */ subu $t8, $v0, $t7 -/* 08C894 8008BC94 0C0ADF8D */ jal random_int -/* 08C898 8008BC98 A7B8001E */ sh $t8, 0x1e($sp) -/* 08C89C 8008BC9C 8FB90020 */ lw $t9, 0x20($sp) -/* 08C8A0 8008BCA0 97AE0032 */ lhu $t6, 0x32($sp) -/* 08C8A4 8008BCA4 87AA0026 */ lh $t2, 0x26($sp) -/* 08C8A8 8008BCA8 001940C0 */ sll $t0, $t9, 3 -/* 08C8AC 8008BCAC 87AB001E */ lh $t3, 0x1e($sp) -/* 08C8B0 8008BCB0 3C098016 */ lui $t1, %hi(D_80165C18) # $t1, 0x8016 -/* 08C8B4 8008BCB4 01194023 */ subu $t0, $t0, $t9 -/* 08C8B8 8008BCB8 87AD002A */ lh $t5, 0x2a($sp) -/* 08C8BC 8008BCBC 00084140 */ sll $t0, $t0, 5 -/* 08C8C0 8008BCC0 25295C18 */ addiu $t1, %lo(D_80165C18) # addiu $t1, $t1, 0x5c18 -/* 08C8C4 8008BCC4 01091821 */ addu $v1, $t0, $t1 -/* 08C8C8 8008BCC8 014B6021 */ addu $t4, $t2, $t3 -/* 08C8CC 8008BCCC 448C2000 */ mtc1 $t4, $f4 -/* 08C8D0 8008BCD0 8FBF0014 */ lw $ra, 0x14($sp) -/* 08C8D4 8008BCD4 27BD0020 */ addiu $sp, $sp, 0x20 -/* 08C8D8 8008BCD8 468021A0 */ cvt.s.w $f6, $f4 -/* 08C8DC 8008BCDC E4660010 */ swc1 $f6, 0x10($v1) -/* 08C8E0 8008BCE0 05C10003 */ bgez $t6, .L8008BCF0 -/* 08C8E4 8008BCE4 000E7843 */ sra $t7, $t6, 1 -/* 08C8E8 8008BCE8 25C10001 */ addiu $at, $t6, 1 -/* 08C8EC 8008BCEC 00017843 */ sra $t7, $at, 1 -.L8008BCF0: -/* 08C8F0 8008BCF0 004FC023 */ subu $t8, $v0, $t7 -/* 08C8F4 8008BCF4 0018CC00 */ sll $t9, $t8, 0x10 -/* 08C8F8 8008BCF8 00194403 */ sra $t0, $t9, 0x10 -/* 08C8FC 8008BCFC 01A84821 */ addu $t1, $t5, $t0 -/* 08C900 8008BD00 44894000 */ mtc1 $t1, $f8 -/* 08C904 8008BD04 00000000 */ nop -/* 08C908 8008BD08 468042A0 */ cvt.s.w $f10, $f8 -/* 08C90C 8008BD0C 03E00008 */ jr $ra -/* 08C910 8008BD10 E46A0018 */ swc1 $f10, 0x18($v1) diff --git a/asm/non_matchings/code_80086E70/func_8008BD14.s b/asm/non_matchings/code_80086E70/func_8008BD14.s deleted file mode 100644 index 3b765b072..000000000 --- a/asm/non_matchings/code_80086E70/func_8008BD14.s +++ /dev/null @@ -1,66 +0,0 @@ -glabel func_8008BD14 -/* 08C914 8008BD14 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 08C918 8008BD18 AFBF0014 */ sw $ra, 0x14($sp) -/* 08C91C 8008BD1C AFA40020 */ sw $a0, 0x20($sp) -/* 08C920 8008BD20 AFA50024 */ sw $a1, 0x24($sp) -/* 08C924 8008BD24 AFA60028 */ sw $a2, 0x28($sp) -/* 08C928 8008BD28 AFA7002C */ sw $a3, 0x2c($sp) -/* 08C92C 8008BD2C 0C0ADF8D */ jal random_int -/* 08C930 8008BD30 97A40032 */ lhu $a0, 0x32($sp) -/* 08C934 8008BD34 97AE0032 */ lhu $t6, 0x32($sp) -/* 08C938 8008BD38 97A40036 */ lhu $a0, 0x36($sp) -/* 08C93C 8008BD3C 05C10003 */ bgez $t6, .L8008BD4C -/* 08C940 8008BD40 000E7843 */ sra $t7, $t6, 1 -/* 08C944 8008BD44 25C10001 */ addiu $at, $t6, 1 -/* 08C948 8008BD48 00017843 */ sra $t7, $at, 1 -.L8008BD4C: -/* 08C94C 8008BD4C 004FC023 */ subu $t8, $v0, $t7 -/* 08C950 8008BD50 0C0ADF8D */ jal random_int -/* 08C954 8008BD54 A7B8001E */ sh $t8, 0x1e($sp) -/* 08C958 8008BD58 97B90036 */ lhu $t9, 0x36($sp) -/* 08C95C 8008BD5C 97A4003A */ lhu $a0, 0x3a($sp) -/* 08C960 8008BD60 07210003 */ bgez $t9, .L8008BD70 -/* 08C964 8008BD64 00194043 */ sra $t0, $t9, 1 -/* 08C968 8008BD68 27210001 */ addiu $at, $t9, 1 -/* 08C96C 8008BD6C 00014043 */ sra $t0, $at, 1 -.L8008BD70: -/* 08C970 8008BD70 00484823 */ subu $t1, $v0, $t0 -/* 08C974 8008BD74 0C0ADF8D */ jal random_int -/* 08C978 8008BD78 A7A9001C */ sh $t1, 0x1c($sp) -/* 08C97C 8008BD7C 8FAA0020 */ lw $t2, 0x20($sp) -/* 08C980 8008BD80 3C0C8016 */ lui $t4, %hi(D_80165C18) # $t4, 0x8016 -/* 08C984 8008BD84 258C5C18 */ addiu $t4, %lo(D_80165C18) # addiu $t4, $t4, 0x5c18 -/* 08C988 8008BD88 000A58C0 */ sll $t3, $t2, 3 -/* 08C98C 8008BD8C 016A5823 */ subu $t3, $t3, $t2 -/* 08C990 8008BD90 000B5940 */ sll $t3, $t3, 5 -/* 08C994 8008BD94 016C1821 */ addu $v1, $t3, $t4 -/* 08C998 8008BD98 87AD0026 */ lh $t5, 0x26($sp) -/* 08C99C 8008BD9C 87AE001E */ lh $t6, 0x1e($sp) -/* 08C9A0 8008BDA0 97AA003A */ lhu $t2, 0x3a($sp) -/* 08C9A4 8008BDA4 87B8002A */ lh $t8, 0x2a($sp) -/* 08C9A8 8008BDA8 87B9001C */ lh $t9, 0x1c($sp) -/* 08C9AC 8008BDAC 01AE7821 */ addu $t7, $t5, $t6 -/* 08C9B0 8008BDB0 87A9002E */ lh $t1, 0x2e($sp) -/* 08C9B4 8008BDB4 448F2000 */ mtc1 $t7, $f4 -/* 08C9B8 8008BDB8 03194021 */ addu $t0, $t8, $t9 -/* 08C9BC 8008BDBC 44884000 */ mtc1 $t0, $f8 -/* 08C9C0 8008BDC0 468021A0 */ cvt.s.w $f6, $f4 -/* 08C9C4 8008BDC4 8FBF0014 */ lw $ra, 0x14($sp) -/* 08C9C8 8008BDC8 27BD0020 */ addiu $sp, $sp, 0x20 -/* 08C9CC 8008BDCC 468042A0 */ cvt.s.w $f10, $f8 -/* 08C9D0 8008BDD0 E4660010 */ swc1 $f6, 0x10($v1) -/* 08C9D4 8008BDD4 E46A0014 */ swc1 $f10, 0x14($v1) -/* 08C9D8 8008BDD8 05410003 */ bgez $t2, .L8008BDE8 -/* 08C9DC 8008BDDC 000A5843 */ sra $t3, $t2, 1 -/* 08C9E0 8008BDE0 25410001 */ addiu $at, $t2, 1 -/* 08C9E4 8008BDE4 00015843 */ sra $t3, $at, 1 -.L8008BDE8: -/* 08C9E8 8008BDE8 004B6023 */ subu $t4, $v0, $t3 -/* 08C9EC 8008BDEC 000C6C00 */ sll $t5, $t4, 0x10 -/* 08C9F0 8008BDF0 000D7403 */ sra $t6, $t5, 0x10 -/* 08C9F4 8008BDF4 012E7821 */ addu $t7, $t1, $t6 -/* 08C9F8 8008BDF8 448F8000 */ mtc1 $t7, $f16 -/* 08C9FC 8008BDFC 00000000 */ nop -/* 08CA00 8008BE00 468084A0 */ cvt.s.w $f18, $f16 -/* 08CA04 8008BE04 03E00008 */ jr $ra -/* 08CA08 8008BE08 E4720018 */ swc1 $f18, 0x18($v1) diff --git a/asm/non_matchings/code_80086E70/func_8008BE0C.s b/asm/non_matchings/code_80086E70/func_8008BE0C.s deleted file mode 100644 index 58eadb83c..000000000 --- a/asm/non_matchings/code_80086E70/func_8008BE0C.s +++ /dev/null @@ -1,70 +0,0 @@ -glabel func_8008BE0C -/* 08CA0C 8008BE0C 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 08CA10 8008BE10 AFBF0014 */ sw $ra, 0x14($sp) -/* 08CA14 8008BE14 AFA40020 */ sw $a0, 0x20($sp) -/* 08CA18 8008BE18 AFA60028 */ sw $a2, 0x28($sp) -/* 08CA1C 8008BE1C AFA50024 */ sw $a1, 0x24($sp) -/* 08CA20 8008BE20 0C0AE006 */ jal sins -/* 08CA24 8008BE24 97A4002A */ lhu $a0, 0x2a($sp) -/* 08CA28 8008BE28 87B90026 */ lh $t9, 0x26($sp) -/* 08CA2C 8008BE2C 3C08800E */ lui $t0, %hi(gPlayerOneCopy) # $t0, 0x800e -/* 08CA30 8008BE30 8D08C4FC */ lw $t0, %lo(gPlayerOneCopy)($t0) -/* 08CA34 8008BE34 44992000 */ mtc1 $t9, $f4 -/* 08CA38 8008BE38 8FAE0020 */ lw $t6, 0x20($sp) -/* 08CA3C 8008BE3C C5080014 */ lwc1 $f8, 0x14($t0) -/* 08CA40 8008BE40 468020A0 */ cvt.s.w $f2, $f4 -/* 08CA44 8008BE44 000E78C0 */ sll $t7, $t6, 3 -/* 08CA48 8008BE48 3C188016 */ lui $t8, %hi(D_80165C18) # $t8, 0x8016 -/* 08CA4C 8008BE4C 01EE7823 */ subu $t7, $t7, $t6 -/* 08CA50 8008BE50 000F7940 */ sll $t7, $t7, 5 -/* 08CA54 8008BE54 27185C18 */ addiu $t8, %lo(D_80165C18) # addiu $t8, $t8, 0x5c18 -/* 08CA58 8008BE58 46020182 */ mul.s $f6, $f0, $f2 -/* 08CA5C 8008BE5C 01F81021 */ addu $v0, $t7, $t8 -/* 08CA60 8008BE60 AFA2001C */ sw $v0, 0x1c($sp) -/* 08CA64 8008BE64 E7A20018 */ swc1 $f2, 0x18($sp) -/* 08CA68 8008BE68 97A4002A */ lhu $a0, 0x2a($sp) -/* 08CA6C 8008BE6C 46083280 */ add.s $f10, $f6, $f8 -/* 08CA70 8008BE70 0C0AE00E */ jal coss -/* 08CA74 8008BE74 E44A0010 */ swc1 $f10, 0x10($v0) -/* 08CA78 8008BE78 C7A20018 */ lwc1 $f2, 0x18($sp) -/* 08CA7C 8008BE7C 3C09800E */ lui $t1, %hi(gPlayerOneCopy) # $t1, 0x800e -/* 08CA80 8008BE80 8D29C4FC */ lw $t1, %lo(gPlayerOneCopy)($t1) -/* 08CA84 8008BE84 46020402 */ mul.s $f16, $f0, $f2 -/* 08CA88 8008BE88 8FBF0014 */ lw $ra, 0x14($sp) -/* 08CA8C 8008BE8C C532001C */ lwc1 $f18, 0x1c($t1) -/* 08CA90 8008BE90 8FA2001C */ lw $v0, 0x1c($sp) -/* 08CA94 8008BE94 27BD0020 */ addiu $sp, $sp, 0x20 -/* 08CA98 8008BE98 46128100 */ add.s $f4, $f16, $f18 -/* 08CA9C 8008BE9C 03E00008 */ jr $ra -/* 08CAA0 8008BEA0 E4440018 */ swc1 $f4, 0x18($v0) - -/* 08CAA4 8008BEA4 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 08CAA8 8008BEA8 AFBF0014 */ sw $ra, 0x14($sp) -/* 08CAAC 8008BEAC AFA40020 */ sw $a0, 0x20($sp) -/* 08CAB0 8008BEB0 AFA50024 */ sw $a1, 0x24($sp) -/* 08CAB4 8008BEB4 AFA60028 */ sw $a2, 0x28($sp) -/* 08CAB8 8008BEB8 0C0ADF8D */ jal random_int -/* 08CABC 8008BEBC 30A4FFFF */ andi $a0, $a1, 0xffff -/* 08CAC0 8008BEC0 A7A2001E */ sh $v0, 0x1e($sp) -/* 08CAC4 8008BEC4 0C0ADF8D */ jal random_int -/* 08CAC8 8008BEC8 97A4002A */ lhu $a0, 0x2a($sp) -/* 08CACC 8008BECC 3C0F800E */ lui $t7, %hi(camera1) # $t7, 0x800e -/* 08CAD0 8008BED0 8DEFDB40 */ lw $t7, %lo(camera1)($t7) -/* 08CAD4 8008BED4 97A8002A */ lhu $t0, 0x2a($sp) -/* 08CAD8 8008BED8 8FA40020 */ lw $a0, 0x20($sp) -/* 08CADC 8008BEDC 85F80026 */ lh $t8, 0x26($t7) -/* 08CAE0 8008BEE0 87A5001E */ lh $a1, 0x1e($sp) -/* 08CAE4 8008BEE4 0058C821 */ addu $t9, $v0, $t8 -/* 08CAE8 8008BEE8 05010003 */ bgez $t0, .L8008BEF8 -/* 08CAEC 8008BEEC 00084843 */ sra $t1, $t0, 1 -/* 08CAF0 8008BEF0 25010001 */ addiu $at, $t0, 1 -/* 08CAF4 8008BEF4 00014843 */ sra $t1, $at, 1 -.L8008BEF8: -/* 08CAF8 8008BEF8 03293023 */ subu $a2, $t9, $t1 -/* 08CAFC 8008BEFC 30CAFFFF */ andi $t2, $a2, 0xffff -/* 08CB00 8008BF00 0C022F83 */ jal func_8008BE0C -/* 08CB04 8008BF04 01403025 */ move $a2, $t2 -/* 08CB08 8008BF08 8FBF0014 */ lw $ra, 0x14($sp) -/* 08CB0C 8008BF0C 27BD0020 */ addiu $sp, $sp, 0x20 -/* 08CB10 8008BF10 03E00008 */ jr $ra -/* 08CB14 8008BF14 00000000 */ nop diff --git a/asm/non_matchings/code_80086E70/func_8008BF18.s b/asm/non_matchings/code_80086E70/func_8008BF64.s similarity index 55% rename from asm/non_matchings/code_80086E70/func_8008BF18.s rename to asm/non_matchings/code_80086E70/func_8008BF64.s index 4dcbb7992..46d084d92 100644 --- a/asm/non_matchings/code_80086E70/func_8008BF18.s +++ b/asm/non_matchings/code_80086E70/func_8008BF64.s @@ -1,24 +1,4 @@ -glabel func_8008BF18 -/* 08CB18 8008BF18 000470C0 */ sll $t6, $a0, 3 -/* 08CB1C 8008BF1C 01C47023 */ subu $t6, $t6, $a0 -/* 08CB20 8008BF20 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 08CB24 8008BF24 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 08CB28 8008BF28 000E7140 */ sll $t6, $t6, 5 -/* 08CB2C 8008BF2C 01CF1021 */ addu $v0, $t6, $t7 -/* 08CB30 8008BF30 C4440028 */ lwc1 $f4, 0x28($v0) -/* 08CB34 8008BF34 C4460010 */ lwc1 $f6, 0x10($v0) -/* 08CB38 8008BF38 C44A002C */ lwc1 $f10, 0x2c($v0) -/* 08CB3C 8008BF3C C4500014 */ lwc1 $f16, 0x14($v0) -/* 08CB40 8008BF40 46062200 */ add.s $f8, $f4, $f6 -/* 08CB44 8008BF44 C4460018 */ lwc1 $f6, 0x18($v0) -/* 08CB48 8008BF48 C4440030 */ lwc1 $f4, 0x30($v0) -/* 08CB4C 8008BF4C 46105480 */ add.s $f18, $f10, $f16 -/* 08CB50 8008BF50 E4480004 */ swc1 $f8, 4($v0) -/* 08CB54 8008BF54 46062200 */ add.s $f8, $f4, $f6 -/* 08CB58 8008BF58 E4520008 */ swc1 $f18, 8($v0) -/* 08CB5C 8008BF5C 03E00008 */ jr $ra -/* 08CB60 8008BF60 E448000C */ swc1 $f8, 0xc($v0) - +glabel func_8008BF64 /* 08CB64 8008BF64 000470C0 */ sll $t6, $a0, 3 /* 08CB68 8008BF68 01C47023 */ subu $t6, $t6, $a0 /* 08CB6C 8008BF6C 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 diff --git a/asm/non_matchings/code_80086E70/func_8008BFFC.s b/asm/non_matchings/code_80086E70/func_8008BFFC.s index 7e8e56182..70e13c406 100644 --- a/asm/non_matchings/code_80086E70/func_8008BFFC.s +++ b/asm/non_matchings/code_80086E70/func_8008BFFC.s @@ -126,11 +126,3 @@ glabel L8008C1A8 /* 08CDAC 8008C1AC 27BD0018 */ addiu $sp, $sp, 0x18 /* 08CDB0 8008C1B0 03E00008 */ jr $ra /* 08CDB4 8008C1B4 00000000 */ nop - -/* 08CDB8 8008C1B8 03E00008 */ jr $ra -/* 08CDBC 8008C1BC AFA40000 */ sw $a0, ($sp) - -/* 08CDC0 8008C1C0 03E00008 */ jr $ra -/* 08CDC4 8008C1C4 AFA40000 */ sw $a0, ($sp) - -/* 08CDC8 8008C1C8 00000000 */ nop diff --git a/include/common_structs.h b/include/common_structs.h index c39387d29..3c8354983 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -104,6 +104,7 @@ typedef struct { /* 0x04 */ u16 unk34; /* 0x06 */ u16 unk36; /* 0x08 */ u16 unk38; + // This may be an index to the tilemap? /* 0x0A */ u16 unk3A; /* 0x0C */ f32 unk3C; /* 0x10 */ f32 unk40; @@ -229,7 +230,7 @@ typedef struct { /* 0x002C */ Vec3s unk_02C; /* 0x0032 */ char unk_032[0x2]; /* 0x0034 */ Vec3f unk_034; - /* 0x0040 */ char unk_040[0x2]; + /* 0x0040 */ s16 unk_040; /* 0x0042 */ s16 unk_042; /* 0x0044 */ s16 unk_044; /* 0x0046 */ u16 unk_046; @@ -416,83 +417,6 @@ typedef struct { char unk_32[0xE]; // guessed } struct_D_801650D0; -typedef struct -{ - /* 0x00 */ f32 unk_000; - /* 0x04 */ Vec3f unk_004; - /* 0x10 */ Vec3f unk_010; - /* 0x1C */ s8 unk_01C[0xC]; - /* 0x28 */ Vec3f unk_028; - /* 0x34 */ f32 unk_034; - /* 0x38 */ f32 unk_038; - /* 0x3C */ f32 unk_03C; - /* 0x40 */ f32 unk_040; - /* 0x44 */ s32 unk_044; - /* 0x48 */ s32 unk_048; - /* 0x4C */ s32 unk_04C; - /* 0x50 */ s32 unk_050; - /* 0x54 */ s32 unk_054; - /* 0x58 */ s32 unk_058; - /* 0x5C */ s32 unk_05C; - /* 0x60 */ s32* unk_060; - /* 0x64 */ s32* unk_064; - /* 0x68 */ s32* unk_068; - /* 0x6C */ s32 unk_06C; - /* 0x70 */ s32 unk_070; - /* 0x74 */ s32 unk_074; - /* 0x78 */ s8 unk_078[0x04]; - /* 0x7C */ s32 unk_07C; - /* 0x80 */ s32 unk_080; - /* 0x84 */ s16 unk_084[0xA]; - /* 0x98 */ s16 unk_098; - /* 0x9A */ s16 unk_09A; - /* 0x9C */ s32 unk_09C; - /* 0xA0 */ s16 unk_0A0; - /* 0xA2 */ s16 unk_0A2; - /* 0xA4 */ s16 unk_0A4; - /* 0xA6 */ s16 unk_0A6; - /* 0xA8 */ s16 unk_0A8; - /* 0xAA */ s16 unk_0AA; - /* 0xAC */ s16 unk_0AC; - /* 0xAE */ s16 unk_0AE; - /* 0xB0 */ s16 unk_0B0; - /* 0xB0 */ s16 unk_0B2; - /* 0xB0 */ s16 unk_0B4; - /* 0xB0 */ s16 unk_0B6; - /* 0xB0 */ s8 unk_0B8[0x6]; - /* 0xBE */ u16 unk_0BE; - /* 0xC0 */ u16 unk_0C0; - /* 0xC2 */ u16 unk_0C2; - /* 0xC4 */ s8 unk_0C4; - /* 0xC5 */ s8 unk_0C5; - /* 0xC6 */ s8 unk_0C6; - /* 0xC7 */ s8 unk_0C7; - /* 0xC8 */ s8 unk_0C8; - /* 0xC9 */ s8 unk_0C9; - /* 0xCA */ s8 unk_0CA; - /* 0xCB */ s8 unk_0CB; - /* 0xCC */ s8 unk_0CC; - /* 0xCD */ s8 unk_0CD; - /* 0xCE */ s8 unk_0CE; - /* 0xCF */ s8 unk_0CF; - /* 0xD0 */ s8 unk_0D0; - /* 0xD1 */ s8 unk_0D1; - /* 0xD2 */ s8 unk_0D2; - /* 0xD3 */ s8 unk_0D3; - /* 0xD4 */ s8 unk_0D4; - /* 0xD5 */ s8 unk_0D5; - /* 0xD6 */ u8 unk_0D6; - /* 0xD7 */ u8 unk_0D7; - /* 0xD8 */ s8 unk_0D8; - /* 0xD9 */ u8 unk_0D9; - /* 0xDA */ u8 unk_0DA; - /* 0xDB */ u8 unk_0DB; - /* 0xDC */ u8 unk_0DC; - /* 0xDD */ s8 unk_0DD; - /* 0xDE */ s8 unk_0DE; - /* 0xDF */ s8 unk_0DF; -} struct_80165C18_entry; // size = 0xE0 - typedef struct { char unk_00[0x4]; f32 unk_04; @@ -598,7 +522,12 @@ typedef struct { /* 0x7D */ s8 unk_7D; /* 0x7E */ s8 unk_7E; /* 0x7F */ s8 unk_7F; - /* 0x80 */ s32 unk_80; + /* 0x80 */ s8 unk_80; + /* 0x81 */ s8 unk_81; + /* 0x82 */ s8 unk_82; + /* 0x83 */ s8 unk_83; } struct_8018CA70_entry; // size = 0x84 +#define D_8018CA70_SIZE 4 + #endif diff --git a/include/objects.h b/include/objects.h new file mode 100644 index 000000000..aa90e2125 --- /dev/null +++ b/include/objects.h @@ -0,0 +1,102 @@ +#ifndef OBJECTS_H +#define OBJECTS_H + +#include "common_structs.h" + +#define OBJECT_LIST_SIZE 0x226 +#define D_80183DD8_SIZE 7 +#define SOME_OBJECT_INDEX_LIST_SIZE 32 + +typedef struct +{ + /* 0x00 */ f32 unk_000; + /* 0x04 */ Vec3f unk_004; + /* 0x10 */ Vec3f unk_010; + /* 0x1C */ Vec3f unk_01C; + /* 0x28 */ Vec3f unk_028; + /* 0x34 */ f32 unk_034; + /* 0x38 */ Vec3f unk_038; + /* 0x44 */ f32 unk_044; + /* 0x48 */ s32 unk_048; + /* 0x4C */ s32 unk_04C; + /* 0x50 */ s32 unk_050; + /* 0x54 */ s32 unk_054; + /* 0x58 */ s32 unk_058; + /* 0x5C */ s32 unk_05C; + /* 0x60 */ s32* unk_060; + /* 0x64 */ s32* unk_064; + /* 0x68 */ s32* unk_068; + /* 0x6C */ s32 unk_06C; + /* 0x70 */ s32 unk_070; + /* 0x74 */ s32 unk_074; + /* 0x78 */ s8 unk_078[0x04]; + /* 0x7C */ s32 unk_07C; + /* 0x80 */ s32 unk_080; + /* 0x84 */ s16 unk_084[0xA]; + /* 0x98 */ s16 unk_098; + /* 0x9A */ s16 unk_09A; + /* 0x9C */ s16 unk_09C; + /* 0x9E */ s16 unk_09E; + /* 0xA0 */ s16 unk_0A0; + /* 0xA2 */ s16 unk_0A2; + /* 0xA4 */ s16 unk_0A4; + /* 0xA6 */ s16 unk_0A6; + /* 0xA8 */ s16 unk_0A8; + /* 0xAA */ s16 unk_0AA; + /* 0xAC */ s16 unk_0AC; + /* 0xAE */ s16 unk_0AE; + /* 0xB0 */ s16 unk_0B0; + /* 0xB2 */ u16 unk_0B2; + /* 0xB4 */ u16 unk_0B4; + /* 0xB6 */ u16 unk_0B6; + /* 0xB8 */ Vec3s unk_0B8; + /* 0xBE */ u16 unk_0BE; + /* 0xC0 */ u16 unk_0C0; + /* 0xC2 */ u16 unk_0C2; + /* 0xC4 */ u16 unk_0C4; + /* 0xC6 */ u16 unk_0C6; + /* 0xC8 */ u16 unk_0C8; + /* 0xCA */ s8 unk_0CA; + /* 0xCB */ s8 unk_0CB; + /* 0xCC */ s8 unk_0CC; + /* 0xCD */ s8 unk_0CD; + /* 0xCE */ s8 unk_0CE; + /* 0xCF */ s8 unk_0CF; + /* 0xD0 */ s8 unk_0D0; + /* 0xD1 */ s8 unk_0D1; + /* 0xD2 */ s8 unk_0D2; + /* 0xD3 */ s8 unk_0D3; + /* 0xD4 */ s8 unk_0D4; + /* 0xD5 */ u8 unk_0D5; + /* 0xD6 */ u8 unk_0D6; + /* 0xD7 */ u8 unk_0D7; + /* 0xD8 */ s8 unk_0D8; + /* 0xD9 */ u8 unk_0D9; + /* 0xDA */ u8 unk_0DA; + /* 0xDB */ u8 unk_0DB; + /* 0xDC */ u8 unk_0DC; + /* 0xDD */ u8 unk_0DD; + /* 0xDE */ s8 unk_0DE; + /* 0xDF */ u8 unk_0DF; +} struct_80165C18_entry; // size = 0xE0 + +// This is the object list +extern struct_80165C18_entry D_80165C18[]; + +// This is another list of indices in D_80165C18. +extern s32 D_80183DD8[]; + +/** + * D_80183EA0, D_80183F28, D_8018BFA8, and D_8018C030 are all lists of indices in D_80165C18. + * func_80070190 initializes them in such a way that the indicies in each list are not adjacent. + * First D_80183EA0 gets an unused index, then D_80183F28, then D_8018BFA8, then D_8018C030, and then it loops. + * + * The objects found at the indices in each list appears to be course dependent + **/ + +extern s32 D_80183EA0[]; +extern s32 D_80183F28[]; +extern s32 D_8018BFA8[]; +extern s32 D_8018C030[]; + +#endif diff --git a/include/types.h b/include/types.h index 89f400392..3672c5b31 100644 --- a/include/types.h +++ b/include/types.h @@ -106,63 +106,6 @@ struct UnkStruct_802B53C8 { }; // end math util structs -struct UnkStruct8008A890 { - // B4 long - Vec3f pos; - //f32 posY; - //f32 posZ; - f32 unk; // lookat? faceangle? - f32 unk1; - f32 unk2; - f32 angleX; - f32 angleY; - f32 angleZ; - s16 rotX; - s16 rotX2; - s16 rotY; // unused? - s16 rotZ; - s32 unk3; // zero - s32 unk4; // 0x4119999A - s32 unk5; // 0xC20C bit flag? - s32 unk6; // 0 - s32 unk7; // 0 - s32 unk8; // 0x41F - s32 unk9; // 0 - s32 unk10; // 0 - s32 unk11; // 0 - s32 unk12; // 0 - u16 unk13; // 0x103F7 - u16 unk13_and_a_half; - u16 unk14; // 0x05BC00## Surface camera is over? - u16 unk14_half; - u16 collisionX; - u16 value; - u16 collisionY; - f32 collisionZ; - f32 unk15; - f32 unk16; - f32 unk17; - f32 unk18; - f32 unk19; - f32 unk20; - f32 unkAngleX; - f32 unkAngleY; - f32 unkAngleZ; - s32 unk21; // zero - f32 collision; - f32 unk22; // zero - s16 unk23; // confirmed s16 - s16 unk24; // zero - s16 unk24_and_a_half; - s32 unk25; // zero - s32 unk26; // zero - // need another s16 here? - s32 unk27; // 8 - s16 unk28; // zero - f32 unk29; // 422 - f32 unk30; -}; - struct UnkStruct_800DDB68 { s32 *D_800ED600; s32 *D_800ED608; s32 *D_800ED610; s32 *D_800ED618; s32 *D_800ED620; s32 *D_800ED628; s32 *D_800ED630; s32 *D_800ED638; diff --git a/src/code_80005FD0.c b/src/code_80005FD0.c index bcc0b77a9..eda638324 100644 --- a/src/code_80005FD0.c +++ b/src/code_80005FD0.c @@ -6632,8 +6632,6 @@ void func_80012A48(TrainCarStuff *trainCar, s16 arg1) { #ifdef MIPS_TO_C //generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -s16 func_8000DBAC(f32 *, s16 *, f32); /* extern */ -? func_80012A48(TrainStuff *, s16); /* extern */ ? func_800755FC(s32, f32 *, f32); /* extern */ extern s16 D_80162FCC; extern f32 D_801635A4; @@ -6682,7 +6680,7 @@ void func_80012AC0(void) { temp_s1 = temp_v0; var_s3->locomotive.velocity[0] = var_s3->locomotive.position[0] - temp_f20; var_s3->locomotive.velocity[2] = var_s3->locomotive.position[2] - temp_f22; - func_80012A48(var_s3, temp_t0); + func_80012A48(&var_s3->locomotive, temp_t0); temp_v0_2 = (u16) var_s3->locomotive.wayPointIndex; if ((temp_s0 != temp_v0_2) && ((temp_v0_2 == 0x00BE) || (temp_v0_2 == 0x0140))) { func_800C98B8(var_s6, var_s3->locomotive.velocity, 0x1901800EU); @@ -6705,7 +6703,7 @@ void func_80012AC0(void) { temp_a1 = func_8000DBAC(temp_s0_2->position, &temp_s0_2->wayPointIndex, var_s3->someMultiplier); temp_s0_2->velocity[0] = temp_s0_2->position[0] - temp_f20_2; temp_s0_2->velocity[2] = temp_s0_2->position[2] - temp_f22_2; - func_80012A48((TrainStuff *) temp_s0_2, temp_a1); + func_80012A48(temp_s0_2, temp_a1); } var_s2 = 0; var_s1 = sp7C; @@ -6717,7 +6715,7 @@ loop_13: temp_a1_2 = func_8000DBAC(temp_s0_3->position, &temp_s0_3->wayPointIndex, var_s3->someMultiplier); temp_s0_3->velocity[0] = temp_s0_3->position[0] - temp_f20_3; temp_s0_3->velocity[2] = temp_s0_3->position[2] - temp_f22_3; - func_80012A48((TrainStuff *) temp_s0_3, temp_a1_2); + func_80012A48(temp_s0_3, temp_a1_2); } var_s2 += 0x24; var_s1 += 0x24; @@ -6942,8 +6940,6 @@ GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_800132F4.s") #ifdef MIPS_TO_C //generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -? func_8000DBAC(f32 *, s16 *, f32); /* extern */ -? func_80075A6C(s16, f32 *, ?); /* extern */ extern s16 D_80162EB0; extern s16 D_801630FC; extern s32 D_80163598; @@ -6969,9 +6965,9 @@ void func_800133C4(void) { f64 temp_f0; f64 temp_f0_2; s16 temp_a1; - s16 var_s3; s16 var_v1; s32 temp_v0; + s32 var_s3; struct Actor *temp_v0_3; void *temp_v0_2; @@ -6980,7 +6976,7 @@ void func_800133C4(void) { var_s3 = 0; do { temp_s2 = var_s0->position; - if (var_s0->isActive == 1) { + if (var_s0->isActive == (s16) 1) { temp_f26 = var_s0->position[0]; temp_f28 = var_s0->position[1]; temp_f30 = var_s0->position[2]; @@ -6992,12 +6988,12 @@ void func_800133C4(void) { sp7C = (f32) ((f64) var_s0->position[1] + 180.0); sp80 = (f32) ((f64) var_s0->position[2] + 45.0); func_80006114(&sp78, temp_s2, var_s0->yRotation); - func_80075A6C(var_s3, &sp78, 0x3F8CCCCD); + func_80075A6C(var_s3, (s32) &sp78, 1.1f); sp78 = (f32) ((f64) var_s0->position[0] + 30.0); sp7C = (f32) ((f64) var_s0->position[1] + 180.0); sp80 = (f32) ((f64) var_s0->position[2] + 45.0); func_80006114(&sp78, temp_s2, var_s0->yRotation); - func_80075A6C(var_s3, &sp78, 0x3F8CCCCD); + func_80075A6C(var_s3, (s32) &sp78, 1.1f); } if (random_int(0x0064U) == 0) { temp_s1 = var_s0->velocity; @@ -7119,8 +7115,6 @@ GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80013854.s") #ifdef MIPS_TO_C //generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -s16 func_8000D6D0(f32 *, s16 *, f32, f32, s32, s32); /* extern */ -s16 func_8000D940(f32 *, s16 *, f32, f32, s32); /* extern */ extern s16 D_801631C8; extern s16 D_8016347A; @@ -7142,15 +7136,15 @@ void func_800139E4(f32 arg0, f32 arg1, s32 arg2, s32 arg3, VehicleStuff *vehicle var_s0 = vehicle; var_s4 = 0; var_s1 = var_s0->position; - var_s2 = &var_s0->waypointId; + var_s2 = &var_s0->wayPointIndex; do { temp_hi = (s32) ((var_s4 / arg2) + arg3) % (s32) temp_s7; temp_v0 = &wayPointList[temp_hi & 0xFFFF]; var_s0->position[0] = (f32) temp_v0->wayPointX; var_s0->position[1] = (f32) temp_v0->wayPointY; var_s0->actorIndex = -1; - var_s0->waypointId = (s16) temp_hi; - var_s0->unk0 = 0; + var_s0->wayPointIndex = (s16) temp_hi; + var_s0->unused = 0; var_s0->velocity[0] = 0.0f; var_s0->velocity[1] = 0.0f; var_s0->velocity[2] = 0.0f; @@ -7881,12 +7875,10 @@ GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80014EE4.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -f32 sins(s32); // extern -f32 coss(s32); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern ? D_801646C0; -void func_800151A4(void *arg0, s32 arg1) { +void func_800151A4(Camera *camera, s32 arg1) { f32 sp44; f32 sp40; f32 sp3C; @@ -7901,34 +7893,32 @@ void func_800151A4(void *arg0, s32 arg1) { f32 temp_f16; f32 temp_f2; f32 temp_f2_2; - f32 temp_f8; u16 temp_s1; temp_s1 = *(&D_801646C0 + (arg1 * 2)); if (temp_s1 == 0) { - arg0->unk18 = 0.0f; - arg0->unk20 = 0.0f; - arg0->unk1C = 1.0f; + camera->up[0] = 0.0f; + camera->up[2] = 0.0f; + camera->up[1] = 1.0f; return; } - temp_f2 = arg0->unkC - arg0->unk0; - temp_f14 = arg0->unk10 - arg0->unk4; + temp_f2 = camera->lookAt[0] - camera->pos[0]; + temp_f14 = camera->lookAt[1] - camera->pos[1]; sp38 = temp_f2; - temp_f16 = arg0->unk14 - arg0->unk8; + temp_f16 = camera->lookAt[2] - camera->pos[2]; sp34 = temp_f14; sp30 = temp_f16; temp_f0 = sqrtf((temp_f2 * temp_f2) + (temp_f14 * temp_f14) + (temp_f16 * temp_f16)); - temp_f8 = temp_f14 / temp_f0; sp44 = temp_f2 / temp_f0; temp_f10 = temp_f16 / temp_f0; - sp40 = temp_f8; + sp40 = temp_f14 / temp_f0; sp3C = temp_f10; - sp28 = 1.0 - coss(temp_s1 & 0xFFFF); - arg0->unk18 = (sp28 * sp44 * sp40) - (sins(temp_s1 & 0xFFFF) * temp_f10); + sp28 = (f32) (1.0 - (f64) coss(temp_s1 & 0xFFFF)); + camera->up[0] = (sp28 * sp44 * sp40) - (sins(temp_s1 & 0xFFFF) * temp_f10); temp_f2_2 = sp28 * sp40; - arg0->unk1C = coss(temp_s1 & 0xFFFF) + (temp_f2_2 * sp40); + camera->up[1] = coss(temp_s1 & 0xFFFF) + (temp_f2_2 * sp40); sp20 = temp_f2_2; - arg0->unk20 = (sins(temp_s1 & 0xFFFF) * sp44) + (temp_f2_2 * temp_f10); + camera->up[2] = (sins(temp_s1 & 0xFFFF) * sp44) + (temp_f2_2 * temp_f10); } #else GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_800151A4.s") @@ -10357,25 +10347,24 @@ GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8001A124.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -u32 random_int(?); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern ? D_80164680; void func_8001A220(s32 arg0, s32 arg1) { - u32 temp_v0; - s16 phi_t9; - s16 *phi_at; + s16 *var_at; + s16 var_t9; + u16 temp_v0; - temp_v0 = random_int(6); + temp_v0 = random_int(6U); switch (temp_v0) { case 0: *(&D_80164680 + (arg1 * 2)) = 4; return; case 1: - phi_t9 = 5; - phi_at = &D_80164680 + (arg1 * 2); + var_at = &D_80164680 + (arg1 * 2); + var_t9 = 5; block_9: - *phi_at = phi_t9; + *var_at = var_t9; return; case 2: *(&D_80164680 + (arg1 * 2)) = 6; @@ -10390,8 +10379,8 @@ block_9: *(&D_80164680 + (arg1 * 2)) = 1; return; default: - phi_t9 = 8; - phi_at = &D_80164680 + (arg1 * 2); + var_at = &D_80164680 + (arg1 * 2); + var_t9 = 8; goto block_9; } } @@ -10499,7 +10488,7 @@ GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8001A518.s") #endif #ifdef MIPS_TO_C -//generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_800151A4(Camera *, s32); /* extern */ ? func_80015390(Camera *, u16 *, s8, s32); /* extern */ ? func_8001577C(Camera *, u16 *, s8, s32); /* extern */ @@ -10525,7 +10514,6 @@ extern ? D_801646C0; extern u32 D_801646C8; extern u16 D_801646CC; extern ? D_801646D0; -extern s8 D_8018EDF3; void func_8001A588(s32 arg0, Camera *camera, u16 *arg2, s8 arg3, s32 arg4) { s32 sp44; @@ -11467,14 +11455,14 @@ GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8001C14C.s") extern u16 D_80163E2A; -void func_8001C3C4(void) { +void func_8001C3C4(s32 arg0) { if (gCurrentCourseId == COURSE_AWARD_CEREMONY) { if (D_80163E2A >= 16) { func_80057114(3); } } else { if (gModeSelection == VERSUS) { - func_80057114(); + func_80057114(arg0); } } } diff --git a/src/code_80005FD0.h b/src/code_80005FD0.h index 8fcbae60f..62fad9b51 100644 --- a/src/code_80005FD0.h +++ b/src/code_80005FD0.h @@ -4,7 +4,10 @@ #include "common_structs.h" #include "vehicles.h" +// TODO: This header is missing some function prototypes + /* Function Prototypes */ + s16 func_80005FD0(Vec3f, Vec3f); s32 func_80006018(f32, f32, f32, f32, f32, f32, f32, f32); void func_80006114(Vec3f, Vec3f, s16); @@ -64,6 +67,7 @@ void func_80014CC0(s32, Player*); void func_80014D08(s32); void func_80014D30(s32, s32); void func_8001968C(); +void func_8001C3C4(s32); /* This is where I'd put my static data, if I had any */ // 0 or 1, only 1 when when in extra (mirror) mode diff --git a/src/code_800431B0.c b/src/code_800431B0.c index a2a7be395..e4d45d29b 100644 --- a/src/code_800431B0.c +++ b/src/code_800431B0.c @@ -4,15 +4,10 @@ #include #include #include - -void func_80042330(s32 arg0, s32 arg1, u16 arg2, f32 arg3); // math_util extern - -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void func_80042E00(Vec3f, Vec3s, f32); // extern -extern Gfx D_0D006940[]; -extern Gfx *gDisplayListHead; - -extern s32 D_80183DD8[]; +#include "math_util_2.h" +#include "code_8001F980.h" +#include "code_800431B0.h" +#include "code_80071F00.h" void func_800431B0(Vec3f arg0, Vec3s arg1, f32 arg2, s32 arg3) { func_80042E00(arg0, arg1, arg2); @@ -20,7 +15,6 @@ void func_800431B0(Vec3f arg0, Vec3s arg1, f32 arg2, s32 arg3) { gSPDisplayList(gDisplayListHead++, D_0D006940); } -extern Gfx D_0D0077A0[]; void func_80043220(Vec3f arg0, Vec3s arg1, f32 arg2, s32 arg3) { func_80042E00(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, &D_0D0077A0); @@ -35,17 +29,12 @@ UNUSED void func_800433288(Vec3f arg0, Vec3s arg1, f32 arg2, s32 arg3) { gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK); } -extern Gfx D_0D0077D0[]; - void func_80043328(Vec3f arg0, Vec3s arg1, f32 arg2, s32 arg3) { func_80042E00(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D0077D0); gSPDisplayList(gDisplayListHead++, arg3); } -extern Gfx D_0D0077F8[]; -extern Gfx D_0D007828[]; - UNUSED void *func_80043390(Vec3f arg0, Vec3s arg1, f32 arg2, s32 arg3) { func_80042E00(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D0077F8); @@ -66,8 +55,6 @@ UNUSED void func_80043460(Vec3f arg0, Vec3s arg1, f32 arg2, s32 arg3) { gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK); } -extern Gfx D_0D007850[]; - void func_80043500(Vec3f arg0, Vec3s arg1, f32 arg2, s32 arg3) { func_80042E00(arg0, arg1, arg2); @@ -77,10 +64,6 @@ void func_80043500(Vec3f arg0, Vec3s arg1, f32 arg2, s32 arg3) { gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK); } -extern s8 D_0D007878[]; - -void func_80042F70(s32 arg0, Vec3su arg1, f32 arg2); - void func_800435A0(s32 arg0, Vec3su arg1, f32 arg2, Gfx *arg3, s32 arg4) { func_80042F70(arg0, arg1, arg2); @@ -91,14 +74,12 @@ void func_800435A0(s32 arg0, Vec3su arg1, f32 arg2, Gfx *arg3, s32 arg4) { gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK); } -extern Gfx D_0D0078A0[]; UNUSED void func_80043668(Vec3f arg0, Vec3s arg1, f32 arg2, Vtx *arg3) { func_80042E00(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D0078A0); gSPDisplayList(gDisplayListHead++, arg3); } -extern Gfx D_0D006930[]; UNUSED void func_800436D0(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D0078A0); @@ -114,10 +95,6 @@ UNUSED void func_80043764(s32 arg0, s32 arg1, u16 arg2, f32 arg3, Vtx *arg4) { gSPDisplayList(gDisplayListHead++, D_0D006940); } -struct Vtx4_800431B0 { - Vtx vtx[4]; -}; - UNUSED void func_800437F8(s32 arg0, s32 arg1, u16 arg2, f32 arg3, struct Vtx4_800431B0 *arg4, s32 arg5) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D0078A0); @@ -131,10 +108,6 @@ UNUSED void func_800437F8(s32 arg0, s32 arg1, u16 arg2, f32 arg3, struct Vtx4_80 gSPDisplayList(gDisplayListHead++, D_0D006940); } -struct unused800438C4 { - s16 vtx[24]; -}; - UNUSED void func_800438C4(s32 arg0, s32 arg1, u16 arg2, f32 arg3, struct Vtx4_800431B0 *arg4, s32 arg5) { arg4->vtx[1].v.ob[0] = arg5; arg4->vtx[2].v.ob[0] = arg5; @@ -1281,7 +1254,6 @@ void func_80045B2C(Vtx *arg0) { gSPDisplayList(gDisplayListHead++, D_0D006940); } -extern Gfx D_0D006930[]; void func_80045B74(Vtx *arg0) { gSPVertex(gDisplayListHead++, arg0, 3, 0); gSPDisplayList(gDisplayListHead++, D_0D006930); @@ -1294,7 +1266,6 @@ UNUSED void func_80045BBC(Vec3f arg0, Vec3s arg1, f32 arg2, Vtx *arg3) { gSPDisplayList(gDisplayListHead++, D_0D006940); } -extern Gfx D_0D0078D0[]; UNUSED void func_80045C48(Vec3f arg0, Vec3s arg1, f32 arg2, Vtx *arg3) { func_80042E00(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D0078D0); @@ -1340,7 +1311,7 @@ void func_80045D0C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { #else GLOBAL_ASM("asm/non_matchings/code_800431B0/func_80045D0C.s") #endif -void func_80045E10(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); + #ifdef MIPS_TO_C //generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 ? func_80043D50(s32, s32, s32); // extern @@ -1542,7 +1513,6 @@ void func_800462A8(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { #else GLOBAL_ASM("asm/non_matchings/code_800431B0/func_800462A8.s") #endif -extern Gfx D_0D007928[]; void func_800463B0(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9) { func_80042330(arg0, arg1, arg2, arg3); @@ -1550,11 +1520,6 @@ void func_800463B0(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s func_80045D0C(arg4, arg5, arg6, arg7, arg9); } -extern u16 D_801656C0; -extern u16 D_801656D0; -extern u16 D_801656E0; -extern Gfx D_0D007968[]; -void func_8004B614(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6); void func_80046424(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D007968); @@ -1562,23 +1527,19 @@ void func_80046424(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s func_80045D0C(arg4, arg5, arg6, arg7, arg9); } -extern Gfx D_0D007948[]; - void func_800464D0(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D007948); func_80045E10(arg4, arg5, arg6, arg7, arg9); } -extern Gfx D_0D0079A8[]; + UNUSED void func_80046544(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D0079A8); func_80045E10(arg4, arg5, arg6, arg7, arg9); } -extern Gfx D_0D0079E8[]; -void func_8004B2BC(s32); void func_800465B8(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D0079E8); @@ -1586,8 +1547,8 @@ void func_800465B8(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s func_8004B2BC(arg4); func_80045E10(arg5, arg6, arg7, arg8, argA); } -extern Gfx D_0D007948[]; -UNUSED func_80046634(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA) { + +UNUSED void func_80046634(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D007948); func_80046030(arg4, arg5, arg6, arg7, arg8, argA); @@ -1612,15 +1573,13 @@ UNUSED void func_80046794(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 func_800462A8(arg4, arg5, arg6, arg7, arg9); } -extern Gfx D_0D007948[]; - void func_80046808(Vec3f arg0, Vec3s arg1, f32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8) { func_80042E00(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007948); func_80045E10(arg3, arg4, arg5, arg6, arg8); } -extern Gfx D_0D0079C8[]; -UNUSED func_80046874(Vec3f arg0, Vec3s arg1, f32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8) { + +UNUSED void func_80046874(Vec3f arg0, Vec3s arg1, f32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8) { func_80042E00(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D0079C8); func_80045E10(arg3, arg4, arg5, arg6, arg8); @@ -1641,8 +1600,6 @@ UNUSED void func_80046954(s32 arg0, s32 arg1, f32 arg2, s32 arg3, s32 arg4, s32 gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK); } -extern Gfx D_0D007948[]; - void func_80046A00(Vec3f arg0, Vec3s arg1, f32 arg2, s32 arg3, Vtx *arg4, s32 arg5, s32 arg6) { func_80042E00(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007948); @@ -1650,60 +1607,52 @@ void func_80046A00(Vec3f arg0, Vec3s arg1, f32 arg2, s32 arg3, Vtx *arg4, s32 ar func_80045B74(arg4); } -extern Gfx D_0D0079C8[]; UNUSED void func_80046A68(Vec3f arg0, Vec3s arg1, f32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8) { func_80042E00(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D0079C8); func_800462A8(arg3, arg4, arg5, arg6, arg8); } -extern Gfx D_0D005470[]; - UNUSED void func_80046AD4(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4) { func_800464D0(arg0, arg1, arg2, arg3, arg4, D_0D005470, 8, 8, 8, 8); } -extern Gfx D_0D005770[]; UNUSED void func_80046B38(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4) { func_800464D0(arg0, arg1, arg2, arg3, arg4, D_0D005770, 16, 16, 16, 16); } -UNUSED func_80046B9C(Vec3f arg0, Vec3s arg1, f32 arg2, s32 arg3) { +UNUSED void func_80046B9C(Vec3f arg0, Vec3s arg1, f32 arg2, s32 arg3) { func_80046808(arg0, arg1, arg2, arg3, D_0D005770, 16, 16, 16, 16); } -UNUSED func_80046BEC(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5) { +UNUSED void func_80046BEC(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5) { func_800466B0(arg0, arg1, arg2, arg3, arg4, arg5, 16, 16); } -UNUSED func_80046C3C(s32 arg0, s32 arg1, f32 arg2, s32 arg3, s32 arg4) { +UNUSED void func_80046C3C(s32 arg0, s32 arg1, f32 arg2, s32 arg3, s32 arg4) { func_80046A00(arg0, arg1, arg2, arg3, arg4, 16, 16); } -extern Gfx D_0D005AE0[]; -UNUSED func_80046C78(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4) { +UNUSED void func_80046C78(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4) { func_800464D0(arg0, arg1, arg2, arg3, arg4, D_0D005AE0, 32, 32, 32, 32); } -extern Gfx D_0D005FB0[]; -UNUSED func_80046CDC(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4) { +UNUSED void func_80046CDC(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4) { func_800464D0(arg0, arg1, arg2, arg3, arg4, D_0D005FB0, 64, 32, 64, 32); } -UNUSED func_80046D40(Vec3f arg0, Vec3s arg1, f32 arg2, s32 arg3) { +UNUSED void func_80046D40(Vec3f arg0, Vec3s arg1, f32 arg2, s32 arg3) { func_80046808(arg0, arg1, arg2, arg3, D_0D005FB0, 64, 32, 64, 32); } -extern Gfx D_0D0060B0[]; -UNUSED func_80046D90(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4) { + +UNUSED void func_80046D90(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4) { func_800464D0(arg0, arg1, arg2, arg3, arg4, D_0D0060B0, 64, 64, 64, 32); } -UNUSED func_80046DF4(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5) { +UNUSED void func_80046DF4(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5) { func_800465B8(arg0, arg1, arg2, arg3, arg4, arg5, D_0D0060B0, 64, 64, 64, 32); } -extern Gfx D_0D007D78[]; - void func_80046E60(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { gSPDisplayList(gDisplayListHead++, D_0D007D78); @@ -1711,8 +1660,6 @@ void func_80046E60(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { func_800452A4(arg1, arg2, arg3); } -extern Gfx D_0D007D78[]; - void func_80046F60(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { gSPDisplayList(gDisplayListHead++, D_0D007D78); gDPLoadTLUT_pal256(gDisplayListHead++, arg0); @@ -2024,42 +1971,30 @@ void func_8004768C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5) { GLOBAL_ASM("asm/non_matchings/code_800431B0/func_8004768C.s") #endif -extern Gfx D_0D007CB8[]; - -void func_80047068(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6); void func_8004788C(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D007CB8); func_80047068(arg4, arg5, arg6, arg7, arg8, arg9, argA); } -extern Gfx D_0D007CD8[]; - void func_80047910(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D007CD8); func_80047270(arg4, arg5, arg6, arg7, arg8, arg9, argA); } -extern Gfx D_0D007CF8[]; - - void func_80047994(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D007CF8); func_80047270(arg4, arg5, arg6, arg7, arg8, arg9, argA); } -extern Gfx D_0D007D18[]; - void func_80047A18(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D007D18); func_80047068(arg4, arg5, arg6, arg7, arg8, arg9, argA); } -extern Gfx D_0D007D38[]; - void func_80047A9C(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D007D38); @@ -2072,25 +2007,20 @@ UNUSED void func_80047B20(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 func_8004768C(arg4, arg5, arg6, arg7, arg8, arg9); } -extern Gfx D_0D007DB8[]; - void func_80047B9C(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA, s32 argB) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D007DB8); func_8004B2BC(arg4); func_80047068(arg5, arg6, arg7, arg8, arg9, argA, argB); } -extern Gfx D_0D007DD8[]; -UNUSED func_80047C28(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA, s32 argB) { +UNUSED void func_80047C28(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA, s32 argB) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D007DD8); func_8004B2BC(arg4); func_80047270(arg5, arg6, arg7, arg8, arg9, argA, argB); } -extern Gfx D_0D007E38[]; - void func_80047CB4(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA, s32 argB) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D007E38); @@ -2098,8 +2028,6 @@ void func_80047CB4(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s func_80047068(arg5, arg6, arg7, arg8, arg9, argA, argB); } -extern Gfx D_0D007E58[]; - UNUSED void func_80047D40(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA, s32 argB) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D007E58); @@ -2113,8 +2041,6 @@ UNUSED void func_80047DCC(s32 arg0, s32 arg1, f32 arg2, s32 arg3, s32 arg4, s32 func_80047068(arg3, arg4, arg5, arg6, arg7, arg8, arg9); } -extern Gfx D_0D007CD8[]; - void func_80047E48(s32 arg0, s32 arg1, f32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9) { func_80042E00(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007CD8); @@ -2127,30 +2053,24 @@ UNUSED void func_80047EC4(s32 arg0, s32 arg1, f32 arg2, s32 arg3, s32 arg4, s32 func_80047068(arg3, arg4, arg5, arg6, arg7, arg8, arg9); } -extern Gfx D_0D007D38[]; - - void func_80047F40(s32 arg0, s32 arg1, f32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9) { func_80042E00(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007D38); func_80047270(arg3, arg4, arg5, arg6, arg7, arg8, arg9); } -extern Gfx D_0D007D58[]; UNUSED void func_80047FBC(s32 arg0, s32 arg1, f32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9) { func_80042E00(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007D58); func_80047270(arg3, arg4, arg5, arg6, arg7, arg8, arg9); } -extern Gfx D_0D007D98[]; + UNUSED void func_80048038(s32 arg0, s32 arg1, f32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9) { func_80042E00(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007D98); func_80047068(arg3, arg4, arg5, arg6, arg7, arg8, arg9); } -extern Gfx D_0D007D78[]; - void func_800480B4(s32 arg0, s32 arg1, f32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9) { func_80042E00(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007D78); @@ -2190,8 +2110,6 @@ UNUSED void func_80048330(s32 arg0, s32 arg1, f32 arg2, s32 arg3, s32 arg4, s32 func_80047068(arg4, arg5, arg6, arg7, arg8, arg9, argA); } -extern Gfx D_0D007E58[]; - void func_800483B4(s32 arg0, s32 arg1, f32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA) { func_80042E00(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007E58); @@ -2199,7 +2117,6 @@ void func_800483B4(s32 arg0, s32 arg1, f32 arg2, s32 arg3, s32 arg4, s32 arg5, s func_80047270(arg4, arg5, arg6, arg7, arg8, arg9, argA); } -extern Gfx D_0D007DF8[]; void func_80048438(s32 arg0, s32 arg1, f32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA) { func_80042E00(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007DF8); @@ -2207,8 +2124,6 @@ void func_80048438(s32 arg0, s32 arg1, f32 arg2, s32 arg3, s32 arg4, s32 arg5, s func_80047068(arg4, arg5, arg6, arg7, arg8, arg9, argA); } -extern Gfx D_0D007E18[]; - void func_800484BC(s32 arg0, s32 arg1, f32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA) { func_80042E00(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007E18); @@ -2216,9 +2131,6 @@ void func_800484BC(s32 arg0, s32 arg1, f32 arg2, s32 arg3, s32 arg4, s32 arg5, s func_80047270(arg4, arg5, arg6, arg7, arg8, arg9, argA); } -extern Gfx D_0D007E98[]; - - void func_80048540(s32 arg0, s32 arg1, f32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA) { func_80042E00(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007E98); @@ -2849,16 +2761,13 @@ void func_80049970(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5) { GLOBAL_ASM("asm/non_matchings/code_800431B0/func_80049970.s") #endif -extern Gfx D_0D007A40[]; - - void func_80049B20(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D007A40); func_80048F8C(arg4, arg5, arg6, arg7, arg8, arg9); } -UNUSED func_80049B9C(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9) { +UNUSED void func_80049B9C(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D007A40); func_80049130(arg4, arg5, arg6, arg7, arg8, arg9); @@ -2870,30 +2779,24 @@ void func_80049C18(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s func_800492D4(arg4, arg5, arg6, arg7, arg8, arg9); } -extern Gfx D_0D007A60[]; - void func_80049C94(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D007A60); func_800492D4(arg4, arg5, arg6, arg7, arg8, arg9); } -extern Gfx D_0D007A80[]; - void func_80049D10(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D007A80); func_800492D4(arg4, arg5, arg6, arg7, arg8, arg9); } -extern Gfx D_0D007AA0[]; - void func_80049D8C(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D007AA0); func_800492D4(arg4, arg5, arg6, arg7, arg8, arg9); } -void func_8004B35C(s32,s32,s32,s32); + UNUSED void func_80049E08(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA, s32 argB, s32 argC, s32 argD) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D007A40); @@ -2908,8 +2811,6 @@ UNUSED void func_80049E98(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 func_800492D4(arg8, arg9, argA, argB, argC, argD); } -extern Gfx D_0D007B00[]; - UNUSED void func_80049F28(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA, s32 argB, s32 argC, s32 argD) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D007B00); @@ -2929,8 +2830,6 @@ UNUSED void func_8004A034(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 func_80049478(arg4, arg5, arg6, arg7, arg8, arg9); } -extern Gfx D_0D007A40[]; - void func_8004A0B0(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D007A40); @@ -2951,8 +2850,6 @@ UNUSED void func_8004A1BC(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 func_80049970(arg4, arg5, arg6, arg7, arg8, arg9); } -extern Gfx D_0D007A60[]; - void func_8004A258(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D007A60); @@ -2960,8 +2857,6 @@ void func_8004A258(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s func_80049970(arg4, arg5, arg6, arg7, arg8, arg9); } -extern Gfx D_0D007A40[]; -void func_8004B414(s32,s32,s32,s32); void func_8004A2F4(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA, s32 argB, s32 argC, s32 argD) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D007A40); @@ -2969,8 +2864,6 @@ void func_8004A2F4(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s func_80049970(arg8, arg9, argA, argB, argC, argD); } -extern Gfx D_0D007A60[]; - void func_8004A384(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA, s32 argB, s32 argC, s32 argD) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D007A60); @@ -2978,8 +2871,6 @@ void func_8004A384(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, s32 arg5, s func_80049970(arg8, arg9, argA, argB, argC, argD); } -extern Gfx D_0D007A40[]; - void func_8004A414(s32 arg0, s32 arg1, f32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8) { func_80042E00(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007A40); @@ -2992,15 +2883,12 @@ UNUSED void func_8004A488(s32 arg0, s32 arg1, f32 arg2, s32 arg3, s32 arg4, s32 func_800492D4(arg3, arg4, arg5, arg6, arg7, arg8); } -extern Gfx D_0D007AC0[]; UNUSED void func_8004A4FC(s32 arg0, s32 arg1, f32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8) { func_80042E00(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007AC0); func_800492D4(arg3, arg4, arg5, arg6, arg7, arg8); } -extern Gfx D_0D007AE0[]; - UNUSED void func_8004A570(s32 arg0, s32 arg1, f32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8) { func_80042E00(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007AE0); @@ -3011,7 +2899,6 @@ UNUSED void func_8004A5E4(s32 arg0, s32 arg1, f32 arg2, s32 arg3, s32 arg4) { func_8004A414(arg0, arg1, arg2, arg3, arg4, 16, 16, 16, 16); } -extern Vec3f D_80183E50; #ifdef MIPS_TO_C //generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 //s32 func_80041924(); // extern @@ -3057,29 +2944,23 @@ GLOBAL_ASM("asm/non_matchings/code_800431B0/func_8004A630.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80042E00(? *, void *, s32); // extern -s32 func_8007223C(s32, ?); // extern -extern ? D_0D007B20; -extern f64 D_800EE038; -extern ? D_80165C18; -extern ? D_80183E50; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern f32 D_80183E50; +void func_8004A6EC(s32 objectIndex, f32 arg1) { + Gfx *temp_v1; + struct_80165C18_entry *temp_v0; -void func_8004A6EC(s32 arg0, s32 arg1) { - void *temp_v0; - void *temp_v1; - - if ((func_8007223C(0x20) != 0) && (func_8007223C(arg0, 0x800000) != 0)) { - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - D_80183E50.unk0 = temp_v0->unk4; - D_80183E50.unk8 = temp_v0->unkC; - D_80183E50.unk4 = temp_v0->unk44 + D_800EE038; - func_80042E00(&D_80183E50, temp_v0 + 0xB8, arg1); + if ((func_8007223C(objectIndex, 0x00000020) != 0) && (func_8007223C(objectIndex, 0x00800000) != 0)) { + temp_v0 = &D_80165C18[objectIndex]; + D_80183E50.unk0 = temp_v0->unk_004[0]; + D_80183E50.unk8 = (f32) temp_v0->unk_004[2]; + D_80183E50.unk4 = (f32) ((f64) temp_v0->unk_044 + 0.8); + func_80042E00(&D_80183E50, temp_v0->unk_0B8, arg1); temp_v1 = gDisplayListHead; gDisplayListHead = temp_v1 + 8; - temp_v1->unk0 = 0x6000000; - temp_v1->unk4 = &D_0D007B20; + temp_v1->words.w0 = 0x06000000; + temp_v1->words.w1 = (u32) D_0D007B20; } } #else @@ -3087,33 +2968,27 @@ GLOBAL_ASM("asm/non_matchings/code_800431B0/func_8004A6EC.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80042E00(? *, ? *, s32); // extern -s32 func_8007223C(?); // extern -extern ? D_0D007B20; -extern f64 D_800EE040; -extern ? D_80165C18; -extern ? D_80183E50; -extern ? D_80183E98; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern f32 D_80183E50; +extern s16 D_80183E98; +void func_8004A7AC(s32 objectIndex, f32 arg1) { + Gfx *temp_v1; + struct_80165C18_entry *temp_v0; -void func_8004A7AC(s32 arg0, s32 arg1) { - void *temp_v0; - void *temp_v1; - - if (func_8007223C(0x20) != 0) { - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - D_80183E50.unk0 = temp_v0->unk4; + if (func_8007223C(objectIndex, 0x00000020) != 0) { + temp_v0 = &D_80165C18[objectIndex]; + D_80183E50.unk0 = temp_v0->unk_004[0]; D_80183E98.unk0 = 0x4000; D_80183E98.unk2 = 0; D_80183E98.unk4 = 0; - D_80183E50.unk4 = temp_v0->unk44 + D_800EE040; - D_80183E50.unk8 = temp_v0->unkC; + D_80183E50.unk4 = (f32) ((f64) temp_v0->unk_044 + 0.8); + D_80183E50.unk8 = (f32) temp_v0->unk_004[2]; func_80042E00(&D_80183E50, &D_80183E98, arg1); temp_v1 = gDisplayListHead; gDisplayListHead = temp_v1 + 8; - temp_v1->unk0 = 0x6000000; - temp_v1->unk4 = &D_0D007B20; + temp_v1->words.w0 = 0x06000000; + temp_v1->words.w1 = (u32) D_0D007B20; } } #else @@ -3121,60 +2996,42 @@ GLOBAL_ASM("asm/non_matchings/code_800431B0/func_8004A7AC.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80022180(void *, ? *, s32 *); // extern -? func_80042A20(? *, void *, ? *, ?, f32); // extern -s32 func_8007223C(s32, ?); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern ? D_0D007B98; -extern f64 D_800EE048; -extern ? D_80165C18; -extern ? D_80183E50; -extern s32 D_8018D120; +extern f32 D_80183E50; +void func_8004A870(s32 objectIndex, f32 arg1) { + Gfx *temp_v0_2; + Gfx *temp_v0_3; + struct_80165C18_entry *temp_v0; -void func_8004A870(s32 arg0, f32 arg1) { - ? sp30; - void *temp_v0; - void *temp_v0_2; - void *temp_v0_3; - - if ((func_8007223C(0x20) != 0) && (func_8007223C(arg0, 0x800000) != 0)) { - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - D_80183E50.unk0 = temp_v0->unk4; - D_80183E50.unk8 = temp_v0->unkC; - D_80183E50.unk4 = temp_v0->unk44 + D_800EE048; - func_80042A20(&sp30, temp_v0 + 0x1C, &D_80183E50, 0, arg1); - func_80022180(gGfxPool + (D_8018D120 << 6) + 0x2C0, &sp30, &D_8018D120); + if ((func_8007223C(objectIndex, 0x00000020) != 0) && (func_8007223C(objectIndex, 0x00800000) != 0)) { + temp_v0 = &D_80165C18[objectIndex]; + D_80183E50.unk0 = temp_v0->unk_004[0]; + D_80183E50.unk8 = (f32) temp_v0->unk_004[2]; + D_80183E50.unk4 = (f32) ((f64) temp_v0->unk_044 + 0.8); + func_80042A20((f32 (*)[4]) &sp30[0], temp_v0->unk_01C, &D_80183E50, 0U, arg1); + func_80022180(&gGfxPool->mtxPool[D_8018D120] + 0x2C0, (f32 (*)[4]) &sp30[0]); temp_v0_2 = gDisplayListHead; gDisplayListHead = temp_v0_2 + 8; - temp_v0_2->unk0 = 0x1020040; - temp_v0_2->unk4 = (gGfxPool + (D_8018D120 << 6) + 0x2C0) & 0x1FFFFFFF; + temp_v0_2->words.w0 = 0x01020040; + temp_v0_2->words.w1 = (s32) (&gGfxPool->mtxPool[D_8018D120] + 0x2C0) & 0x1FFFFFFF; temp_v0_3 = gDisplayListHead; - D_8018D120 = D_8018D120 + 1; + D_8018D120 += 1; gDisplayListHead = temp_v0_3 + 8; - temp_v0_3->unk0 = 0x6000000; - temp_v0_3->unk4 = &D_0D007B98; + temp_v0_3->words.w0 = 0x06000000; + temp_v0_3->words.w1 = (u32) &D_0D007B98; } } #else GLOBAL_ASM("asm/non_matchings/code_800431B0/func_8004A870.s") #endif -extern Gfx D_0D007C10[]; -extern Vec3f D_80183E50; -extern Vec3f D_80183E70; - -void func_80043050(Vec3f, Vec3f, f32); - void func_8004A9B8(f32 arg0) { func_80043050(D_80183E50, D_80183E70, arg0); gSPDisplayList(gDisplayListHead++, D_0D007C10); } -extern s32 D_80165860; -extern s32 D_8016586C; -extern s32 D_80165878; -void func_8004B6C4(s32 arg0, s32 arg1, s32 arg2); UNUSED void func_8004AA10(s32 arg0, s32 arg1, f32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8) { func_80042E00(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007AE0); @@ -3698,8 +3555,6 @@ UNUSED void func_8004BD14(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 GLOBAL_ASM("asm/non_matchings/code_800431B0/func_8004BD14.s") #endif -extern Gfx *gDisplayListHead; - void func_8004C024(s16 arg0, s16 arg1, s16 arg2, u16 arg3, u16 arg4, u16 arg5, u16 arg6) { gDPSetPrimColor(gDisplayListHead++, 0, 0, arg3, arg4, arg5, arg6); @@ -3758,10 +3613,6 @@ UNUSED void func_8004C354() { UNUSED void func_8004C35C() { } -extern Gfx D_0D007EF8[]; -extern Gfx D_0D007EB8[]; -extern Gfx D_0D008108[]; - void func_8004C364(s32 arg0, s32 arg1, u32 arg2, u32 arg3, s32 arg4) { gSPDisplayList(gDisplayListHead++, D_0D008108); gSPDisplayList(gDisplayListHead++, D_0D007EF8); @@ -3771,12 +3622,6 @@ void func_8004C364(s32 arg0, s32 arg1, u32 arg2, u32 arg3, s32 arg4) { gSPDisplayList(gDisplayListHead++, D_0D007EB8); } -extern Gfx D_0D007EB8[]; -extern Gfx D_0D007F38[]; -extern u16 D_801656C0; -extern u16 D_801656D0; -extern u16 D_801656E0; - void func_8004C450(s32 arg0, s32 arg1, u32 arg2, u32 arg3, s32 arg4) { gSPDisplayList(gDisplayListHead++, D_0D007F38); @@ -3877,17 +3722,10 @@ void func_8004C6FC(s16 arg0, s16 arg1, s32 arg2, u32 arg3, u32 arg4) { GLOBAL_ASM("asm/non_matchings/code_800431B0/func_8004C6FC.s") #endif -extern s32 D_8018D1E0; - void func_8004C8D4(s16 arg0, s16 arg1) { func_8004C6FC(arg0, arg1, D_8018D1E0, 0x100, 0x80); } -extern Gfx D_0D007EB8[]; -extern Gfx D_0D007EF8[]; -extern Gfx D_0D008108[]; - -void func_8004C268(s32 arg0, s32 arg1, s32 arg2, u32 arg3, u32 arg4, u32 arg5, s32 arg6); void func_8004C91C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5) { gSPDisplayList(gDisplayListHead++, D_0D008108); gSPDisplayList(gDisplayListHead++, D_0D007EF8); @@ -3896,16 +3734,12 @@ void func_8004C91C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5) { gSPDisplayList(gDisplayListHead++, D_0D007EB8); } -extern Gfx D_0D007F38[]; - void func_8004C9D8(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7) { gSPDisplayList(gDisplayListHead++, D_0D007F38); func_8004B2BC(arg2); func_8004C268(arg0, arg1, arg3, arg4, arg5, arg7, 1); } -extern Gfx D_0D007F78[]; -void func_8004BB3C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, f32 arg4); void func_8004CA58(s32 arg0, s32 arg1, f32 arg2, s32 arg3, s32 arg4, s32 arg5) { gSPDisplayList(gDisplayListHead++, D_0D007F78); func_80043D50(arg3, arg4, arg5); @@ -4042,14 +3876,11 @@ void func_8004CE8C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5) { GLOBAL_ASM("asm/non_matchings/code_800431B0/func_8004CE8C.s") #endif -extern Gfx D_0D007FE0[]; - - void func_8004CF9C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6) { gSPDisplayList(gDisplayListHead++, D_0D007FE0); func_8004CE8C(arg0, arg1, arg2, arg3, arg4, arg6); } -extern Gfx D_0D008000[]; + UNUSED void func_8004CFF0(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6) { gSPDisplayList(gDisplayListHead++, D_0D008000); func_8004CE8C(arg0, arg1, arg2, arg3, arg4, arg6); @@ -4556,8 +4387,6 @@ UNUSED void func_8004E238(void) { } -extern Gfx D_0D007CB8[]; - void func_8004E240(s32 arg0, s32 arg1, u8 *tlut, s32 arg3, s32 arg4, s32 arg5, s32 arg6) { gSPDisplayList(gDisplayListHead++, D_0D007CB8); func_8004B05C(tlut); @@ -4571,8 +4400,6 @@ void func_8004E2B8(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s func_8004DF5C(arg0, arg1, arg4, arg5, arg6, arg7); } -extern s32 D_8016589C; - void func_8004E338(s32 arg0, s32 arg1, u8 *tlut, s32 arg3, s32 arg4, s32 arg5) { gSPDisplayList(gDisplayListHead++, D_0D007DB8); func_8004B2BC(D_8016589C); @@ -4633,19 +4460,18 @@ UNUSED void func_8004E604(s32 arg0, s32 arg1, u8 *tlut, s32 arg3) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 792017ad9d422c2467bd42686f383a5c41f41c75 -//? func_8004E4CC(s32, s32, s32, s32); /* extern */ -//extern ? D_80165C18; -extern s32 D_80183E88[]; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_8004E4CC(s32, s32, s32 *, s32 *); /* extern */ +extern ? D_80183E88; void func_8004E638(s32 playerId) { + struct_80165C18_entry *temp_v1; struct_8018CA70_entry *temp_v0; - void *temp_v1; - temp_v1 = D_80183E88[playerId] * 0xE0 + &D_80165C18; - if ((s32) temp_v1->unkA6 >= 2) { + temp_v1 = &D_80165C18[*(&D_80183E88 + (playerId * 4))]; + if (temp_v1->unk_0A6 >= 2) { temp_v0 = &D_8018CA70[playerId]; - func_8004E4CC(temp_v0->slideItemBoxX + temp_v0->itemBoxX, temp_v0->slideItemBoxY + temp_v0->itemBoxY, temp_v1->unk60, temp_v1->unk64); + func_8004E4CC(temp_v0->slideItemBoxX + temp_v0->itemBoxX, temp_v0->slideItemBoxY + temp_v0->itemBoxY, temp_v1->unk_060, temp_v1->unk_064); } } #else @@ -4653,20 +4479,19 @@ GLOBAL_ASM("asm/non_matchings/code_800431B0/func_8004E638.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 792017ad9d422c2467bd42686f383a5c41f41c75 -? func_80047910(s32, s32, ?, f32, s32, s32, ? *, s32, s32, s32, s32); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_80047910(s32, s32, ?, f32, s32 *, s32 *, ? *, s32, s32, s32, s32); /* extern */ extern ? D_0D005C30; -extern ? D_80165C18; extern ? D_80183E88; void func_8004E6C4(s32 playerId) { + struct_80165C18_entry *temp_v1; struct_8018CA70_entry *temp_v0; - void *temp_v1; - temp_v1 = (*(&D_80183E88 + (playerId * 4)) * 0xE0) + &D_80165C18; - if ((s32) temp_v1->unkA6 >= 2) { + temp_v1 = &D_80165C18[*(&D_80183E88 + (playerId * 4))]; + if (temp_v1->unk_0A6 >= 2) { temp_v0 = &D_8018CA70[playerId]; - func_80047910(temp_v0->slideItemBoxX + temp_v0->itemBoxX, temp_v0->slideItemBoxY + temp_v0->itemBoxY, 0, temp_v0->unknownScaling, temp_v1->unk60, temp_v1->unk64, &D_0D005C30, 0x28, 0x20, 0x28, 0x20); + func_80047910(temp_v0->slideItemBoxX + temp_v0->itemBoxX, temp_v0->slideItemBoxY + temp_v0->itemBoxY, 0, temp_v0->unknownScaling, temp_v1->unk_060, temp_v1->unk_064, &D_0D005C30, 0x00000028, 0x00000020, 0x00000028, 0x00000020); } } #else @@ -5162,8 +4987,6 @@ void func_8004F774(s32 arg0, ? arg1) { GLOBAL_ASM("asm/non_matchings/code_800431B0/func_8004F774.s") #endif -extern Gfx D_0D00C558[]; - void print_timer(s32 arg0, s32 arg1, s32 arg2) { gSPDisplayList(gDisplayListHead++, D_0D008108); gSPDisplayList(gDisplayListHead++, D_0D007EF8); @@ -5284,8 +5107,6 @@ void func_8004FA78(s32 playerId) { GLOBAL_ASM("asm/non_matchings/code_800431B0/func_8004FA78.s") #endif -extern Gfx D_0D00AB58[]; - void func_8004FC78(s16 arg0, s16 arg1, s8 arg2) { gSPDisplayList(gDisplayListHead++, D_0D008108); gSPDisplayList(gDisplayListHead++, D_0D007EF8); @@ -5873,15 +5694,13 @@ GLOBAL_ASM("asm/non_matchings/code_800431B0/func_80050C68.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80042330(s32, s32, ?, ?); // extern -? func_80042E00(void *, void *, s32); // extern -? func_80044924(? *, ?, ?); // extern -? func_800452A4(? *, ?, ?); // extern -? func_8004B2BC(s16, u16 *, u16 *, ?); // extern -? func_8004B35C(s32, s32, s32, ?); // extern -? func_8004B614(u16, u16, u16, ?, s32, s32, s32); // extern -s32 func_80050644(s32, s32 *, s32 *, s32); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_80044924(? *, ?, ?); /* extern */ +? func_800452A4(? *, ?, ?); /* extern */ +? func_8004B2BC(s16, u16 *, u16 *, ?); /* extern */ +? func_8004B35C(s32, s32, s32, ?); /* extern */ +? func_8004B614(u16, u16, u16, ?, s32, s32, s32); /* extern */ +s32 func_80050644(s32, s32 *, s32 *, s32); /* extern */ extern ? D_0D006950; extern ? D_0D0069E0; extern ? D_0D0069F8; @@ -5890,82 +5709,92 @@ extern ? D_0D007DB8; extern ? D_0D019E58; extern ? D_0D01A058; extern ? D_0D01A2D8; +extern ? D_0D01A4D8; +extern ? D_0D01A6D8; +extern ? D_0D01A8D8; +extern ? D_0D01AAD8; +extern ? D_0D01ACD8; +extern ? D_0D01AED8; +extern ? D_0D01B0D8; +extern ? D_0D01B2D8; extern ? D_0D01B4D8; extern ? D_0D01DAD8; -extern ? D_800E457C; -extern ? D_800E459C; extern u16 D_801656C0; extern u16 D_801656D0; extern u16 D_801656E0; -extern ? D_80165C18; extern ? D_8018CE24; extern s32 D_8018D3E4; extern s32 D_8018D3E8; extern s32 D_8018D3EC; +static u32 D_800E457C[8] = { + (u32) &D_0D01A4D8, + (u32) &D_0D01A6D8, + (u32) &D_0D01ACD8, + (u32) &D_0D01AAD8, + (u32) &D_0D01AED8, + (u32) &D_0D01B0D8, + (u32) &D_0D01A8D8, + (u32) &D_0D01B2D8, +}; +static ? D_800E459C; /* unable to generate initializer */ +s16 gCurrentCourseId; /* unable to generate initializer */ -extern ? gLapCountByPlayerId; - -void func_80050E34(s32 arg0, s32 arg1) { +void func_80050E34(s32 playerId, s32 arg1) { s32 spD4; s32 spD0; s32 spCC; s32 spC4; s32 spB8; Player *spAC; - s32 sp3C; - void *sp38; + s32 sp3C; /* compiler-managed */ + s16 *sp38; ? *sp34; + Gfx *temp_v0_10; + Gfx *temp_v0_11; + Gfx *temp_v0_12; + Gfx *temp_v0_13; + Gfx *temp_v0_14; + Gfx *temp_v0_15; + Gfx *temp_v0_16; + Gfx *temp_v0_17; + Gfx *temp_v0_18; + Gfx *temp_v0_19; + Gfx *temp_v0_20; + Gfx *temp_v0_21; + Gfx *temp_v0_22; + Gfx *temp_v0_23; + Gfx *temp_v0_24; + Gfx *temp_v0_25; + Gfx *temp_v0_26; + Gfx *temp_v0_27; + Gfx *temp_v0_28; + Gfx *temp_v0_3; + Gfx *temp_v0_4; + Gfx *temp_v0_5; + Gfx *temp_v0_6; + Gfx *temp_v0_7; + Gfx *temp_v0_8; + Gfx *temp_v0_9; Player *temp_v0; + f32 *temp_a0; + s16 *temp_a1; s32 temp_s0; s32 temp_t2; - s32 temp_t5; s32 temp_v0_2; + struct_80165C18_entry *temp_s1_2; u16 temp_s1; - void *temp_a0; - void *temp_a1; - void *temp_s1_2; - void *temp_s1_3; - void *temp_s1_4; - void *temp_v0_10; - void *temp_v0_11; - void *temp_v0_12; - void *temp_v0_13; - void *temp_v0_14; - void *temp_v0_15; - void *temp_v0_16; - void *temp_v0_17; - void *temp_v0_18; - void *temp_v0_19; - void *temp_v0_20; - void *temp_v0_21; - void *temp_v0_22; - void *temp_v0_23; - void *temp_v0_24; - void *temp_v0_25; - void *temp_v0_26; - void *temp_v0_27; - void *temp_v0_28; - void *temp_v0_3; - void *temp_v0_4; - void *temp_v0_5; - void *temp_v0_6; - void *temp_v0_7; - void *temp_v0_8; - void *temp_v0_9; - void *phi_s1; - temp_v0 = &gPlayerOne[arg0]; + temp_v0 = &gPlayerOne[playerId]; spAC = temp_v0; - temp_s0 = *(&gLapCountByPlayerId + (arg0 * 4)); + temp_s0 = gLapCountByPlayerId[playerId]; temp_s1 = temp_v0->characterId; - temp_t5 = *(&D_8018CE24 + (arg0 << 5)); if (gPlayerCountSelection1 == 1) { - spC4 = 0x12; + spC4 = 0x00000012; } else { - spC4 = 0x78; + spC4 = 0x00000078; } - spD4 = temp_t5; - temp_v0_2 = func_80050644(arg0 & 0xFFFF, &spD0, &spCC, arg0); + spD4 = *(&D_8018CE24 + (playerId << 5)); + temp_v0_2 = func_80050644(playerId & 0xFFFF, &spD0, &spCC, playerId); if ((temp_v0_2 == 2) || (temp_v0_2 == 3)) { spB8 = 1; } else { @@ -5975,151 +5804,147 @@ void func_80050E34(s32 arg0, s32 arg1) { if ((gCurrentCourseId == 4) && (temp_s0 < 3)) { temp_v0_3 = gDisplayListHead; gDisplayListHead = temp_v0_3 + 8; - temp_v0_3->unk0 = 0x6000000; - temp_v0_3->unk4 = &D_0D007DB8; + temp_v0_3->words.w0 = 0x06000000; + temp_v0_3->words.w1 = (u32) &D_0D007DB8; temp_v0_4 = gDisplayListHead; gDisplayListHead = temp_v0_4 + 8; - temp_v0_4->unk0 = 0xFD100000; - temp_v0_4->unk4 = &D_0D01B4D8; + temp_v0_4->words.w0 = 0xFD100000; + temp_v0_4->words.w1 = (u32) &D_0D01B4D8; temp_v0_5 = gDisplayListHead; gDisplayListHead = temp_v0_5 + 8; - temp_v0_5->unk4 = 0; - temp_v0_5->unk0 = 0xE8000000; + temp_v0_5->words.w1 = 0; + temp_v0_5->words.w0 = 0xE8000000; temp_v0_6 = gDisplayListHead; gDisplayListHead = temp_v0_6 + 8; - temp_v0_6->unk4 = 0x7000000; - temp_v0_6->unk0 = 0xF5000100; + temp_v0_6->words.w1 = 0x07000000; + temp_v0_6->words.w0 = 0xF5000100; temp_v0_7 = gDisplayListHead; gDisplayListHead = temp_v0_7 + 8; - temp_v0_7->unk4 = 0; - temp_v0_7->unk0 = 0xE6000000; + temp_v0_7->words.w1 = 0; + temp_v0_7->words.w0 = 0xE6000000; temp_v0_8 = gDisplayListHead; gDisplayListHead = temp_v0_8 + 8; - temp_v0_8->unk4 = 0x73FC000; - temp_v0_8->unk0 = 0xF0000000; + temp_v0_8->words.w1 = 0x073FC000; + temp_v0_8->words.w0 = 0xF0000000; temp_v0_9 = gDisplayListHead; gDisplayListHead = temp_v0_9 + 8; - temp_v0_9->unk4 = 0; - temp_v0_9->unk0 = 0xE7000000; - spD4 = temp_t5; + temp_v0_9->words.w1 = 0; + temp_v0_9->words.w0 = 0xE7000000; + spD4 = spD4; func_800452A4(&D_0D01DAD8, 0x20, 0x20); - temp_s1_2 = (temp_t5 * 0xE0) + &D_80165C18; - temp_s1_2->unk4 = temp_s1_2->unk28 + (spD0 + 0x20); - temp_s1_2->unkC = temp_s1_2->unk30; - temp_s1_2->unk8 = temp_s1_2->unk2C + (spC4 + spCC); - func_80042E00(temp_s1_2 + 4, temp_s1_2 + 0xBE, temp_s1_2->unk0); + temp_s1_2 = &D_80165C18[spD4]; + temp_s1_2->unk_004[0] = temp_s1_2->unk_028[0] + (f32) (spD0 + 0x20); + temp_s1_2->unk_004[2] = temp_s1_2->unk_028[2]; + temp_s1_2->unk_004[1] = temp_s1_2->unk_028[1] + (f32) (spC4 + spCC); + func_80042E00(temp_s1_2->unk_004, (s16 *) &temp_s1_2->unk_0BE, temp_s1_2->unk_000); temp_v0_10 = gDisplayListHead; gDisplayListHead = temp_v0_10 + 8; - temp_v0_10->unk0 = 0x6000000; - temp_v0_10->unk4 = &D_0D0069E0; + temp_v0_10->words.w0 = 0x06000000; + temp_v0_10->words.w1 = (u32) &D_0D0069E0; return; } temp_v0_11 = gDisplayListHead; gDisplayListHead = temp_v0_11 + 8; - temp_v0_11->unk0 = 0xFD100000; - temp_v0_11->unk4 = *(&D_800E457C + temp_t2); + temp_v0_11->words.w0 = 0xFD100000; + temp_v0_11->words.w1 = D_800E457C[temp_s1]; temp_v0_12 = gDisplayListHead; gDisplayListHead = temp_v0_12 + 8; - temp_v0_12->unk4 = 0; - temp_v0_12->unk0 = 0xE8000000; + temp_v0_12->words.w1 = 0; + temp_v0_12->words.w0 = 0xE8000000; temp_v0_13 = gDisplayListHead; gDisplayListHead = temp_v0_13 + 8; - temp_v0_13->unk4 = 0x7000000; - temp_v0_13->unk0 = 0xF5000100; + temp_v0_13->words.w1 = 0x07000000; + temp_v0_13->words.w0 = 0xF5000100; temp_v0_14 = gDisplayListHead; gDisplayListHead = temp_v0_14 + 8; - temp_v0_14->unk4 = 0; - temp_v0_14->unk0 = 0xE6000000; + temp_v0_14->words.w1 = 0; + temp_v0_14->words.w0 = 0xE6000000; temp_v0_15 = gDisplayListHead; gDisplayListHead = temp_v0_15 + 8; - temp_v0_15->unk4 = 0x73FC000; - temp_v0_15->unk0 = 0xF0000000; + temp_v0_15->words.w1 = 0x073FC000; + temp_v0_15->words.w0 = 0xF0000000; temp_v0_16 = gDisplayListHead; gDisplayListHead = temp_v0_16 + 8; - temp_v0_16->unk4 = 0; - temp_v0_16->unk0 = 0xE7000000; + temp_v0_16->words.w1 = 0; + temp_v0_16->words.w0 = 0xE7000000; temp_v0_17 = gDisplayListHead; gDisplayListHead = temp_v0_17 + 8; - temp_v0_17->unk4 = &D_0D007DB8; - temp_v0_17->unk0 = 0x6000000; - if ((spAC->unk_0BC & 0x200) != 0) { - temp_s1_3 = (temp_t5 * 0xE0) + &D_80165C18; + temp_v0_17->words.w1 = (u32) &D_0D007DB8; + temp_v0_17->words.w0 = 0x06000000; + if (spAC->unk_0BC & 0x200) { sp3C = temp_t2; - func_8004B614(D_801656C0, D_801656D0, D_801656E0, 0x80, 0x80, 0x80, temp_s1_3->unkA0); - phi_s1 = temp_s1_3; + func_8004B614(D_801656C0, D_801656D0, D_801656E0, 0x80, 0x00000080, 0x00000080, (s32) D_80165C18[spD4].unk_0A0); } else { - temp_s1_4 = (temp_t5 * 0xE0) + &D_80165C18; sp3C = temp_t2; - func_8004B2BC(temp_s1_4->unkA0, &D_801656D0, &D_801656E0, 0x80); // 1 arg only! - phi_s1 = temp_s1_4; + func_8004B2BC(D_80165C18[spD4].unk_0A0, &D_801656D0, &D_801656E0, 0x80); } func_800452A4(*(&D_800E459C + sp3C), 0x20, 0x20); - temp_a0 = phi_s1 + 4; - temp_a1 = phi_s1 + 0xBE; + temp_a0 = &D_80165C18[spD4] + 4; + temp_a1 = &D_80165C18[spD4] + 0xBE; sp38 = temp_a1; sp3C = temp_a0; - phi_s1->unk4 = phi_s1->unk28 + (spD0 + 0x20); - phi_s1->unkC = phi_s1->unk30; - phi_s1->unk8 = phi_s1->unk2C + (spC4 + spCC); - func_80042E00(temp_a0, temp_a1, phi_s1->unk0); + D_80165C18[spD4].unk_004[0] = D_80165C18[spD4].unk_028[0] + (f32) (spD0 + 0x20); + D_80165C18[spD4].unk_004[2] = D_80165C18[spD4].unk_028[2]; + D_80165C18[spD4].unk_004[1] = D_80165C18[spD4].unk_028[1] + (f32) (spC4 + spCC); + func_80042E00(temp_a0, temp_a1, D_80165C18[spD4].unk_000); if (spB8 != 0) { temp_v0_18 = gDisplayListHead; gDisplayListHead = temp_v0_18 + 8; - temp_v0_18->unk4 = &D_0D0069F8; - temp_v0_18->unk0 = 0x6000000; + temp_v0_18->words.w1 = (u32) &D_0D0069F8; + temp_v0_18->words.w0 = 0x06000000; } else { temp_v0_19 = gDisplayListHead; gDisplayListHead = temp_v0_19 + 8; - temp_v0_19->unk4 = &D_0D0069E0; - temp_v0_19->unk0 = 0x6000000; + temp_v0_19->words.w1 = (u32) &D_0D0069E0; + temp_v0_19->words.w0 = 0x06000000; } temp_v0_20 = gDisplayListHead; gDisplayListHead = temp_v0_20 + 8; - temp_v0_20->unk0 = 0xFD100000; - temp_v0_20->unk4 = &D_0D019E58; + temp_v0_20->words.w0 = 0xFD100000; + temp_v0_20->words.w1 = (u32) &D_0D019E58; temp_v0_21 = gDisplayListHead; gDisplayListHead = temp_v0_21 + 8; - temp_v0_21->unk4 = 0; - temp_v0_21->unk0 = 0xE8000000; + temp_v0_21->words.w1 = 0; + temp_v0_21->words.w0 = 0xE8000000; temp_v0_22 = gDisplayListHead; gDisplayListHead = temp_v0_22 + 8; - temp_v0_22->unk4 = 0x7000000; - temp_v0_22->unk0 = 0xF5000100; + temp_v0_22->words.w1 = 0x07000000; + temp_v0_22->words.w0 = 0xF5000100; temp_v0_23 = gDisplayListHead; gDisplayListHead = temp_v0_23 + 8; - temp_v0_23->unk4 = 0; - temp_v0_23->unk0 = 0xE6000000; + temp_v0_23->words.w1 = 0; + temp_v0_23->words.w0 = 0xE6000000; temp_v0_24 = gDisplayListHead; gDisplayListHead = temp_v0_24 + 8; - temp_v0_24->unk4 = 0x73FC000; - temp_v0_24->unk0 = 0xF0000000; + temp_v0_24->words.w1 = 0x073FC000; + temp_v0_24->words.w0 = 0xF0000000; temp_v0_25 = gDisplayListHead; gDisplayListHead = temp_v0_25 + 8; - temp_v0_25->unk4 = 0; - temp_v0_25->unk0 = 0xE7000000; + temp_v0_25->words.w1 = 0; + temp_v0_25->words.w0 = 0xE7000000; func_800452A4((arg1 << 6) + 0x40 + &D_0D01A058, 8, 8); if (spB8 != 0) { - func_80042330(spD0 + 0x26, spC4 + spCC + 4, 0, 0x3F800000); + func_80042330(spD0 + 0x26, spC4 + spCC + 4, 0U, 1.0f); } else { - func_80042330(spD0 + 0x1B, spC4 + spCC + 4, 0, 0x3F800000); + func_80042330(spD0 + 0x1B, spC4 + spCC + 4, 0U, 1.0f); } temp_v0_26 = gDisplayListHead; gDisplayListHead = temp_v0_26 + 8; - temp_v0_26->unk0 = 0x6000000; - temp_v0_26->unk4 = &D_0D006950; - if ((spAC == gPlayerOne) && (gScreenModeSelection == SCREEN_MODE_1P)) { + temp_v0_26->words.w0 = 0x06000000; + temp_v0_26->words.w1 = (u32) &D_0D006950; + if ((spAC == gPlayerOne) && (gScreenModeSelection == 0)) { temp_v0_27 = gDisplayListHead; gDisplayListHead = temp_v0_27 + 8; - temp_v0_27->unk4 = &D_0D007A40; - temp_v0_27->unk0 = 0x6000000; + temp_v0_27->words.w1 = (u32) &D_0D007A40; + temp_v0_27->words.w0 = 0x06000000; sp34 = &D_0D0069E0; func_8004B35C(D_8018D3E4, D_8018D3E8, D_8018D3EC, 0xFF); func_80044924(&D_0D01A2D8, 0x20, 0x20); - func_80042E00(sp3C, sp38, phi_s1->unk0); + func_80042E00(sp3C, sp38, D_80165C18[spD4].unk_000); temp_v0_28 = gDisplayListHead; gDisplayListHead = temp_v0_28 + 8; - temp_v0_28->unk0 = 0x6000000; - temp_v0_28->unk4 = sp34; + temp_v0_28->words.w0 = 0x06000000; + temp_v0_28->words.w1 = (u32) sp34; } } #else @@ -6182,62 +6007,55 @@ GLOBAL_ASM("asm/non_matchings/code_800431B0/func_800514BC.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80043104(s32); // extern -? func_80043D50(? *, ?, ?); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_80043D50(? *, ?, ?); /* extern */ extern ? D_0D0069C8; extern ? D_0D0079C8; extern ? D_0D028DD8; -extern ? D_80165C18; extern s32 D_8018C970; -extern ? D_8018CA70; -extern s32 D_8018D120; - void func_80051638(s32 arg0) { - s32 *temp_s0; + Gfx *temp_v1; + Gfx *temp_v1_2; + Gfx *temp_v1_3; + Gfx *temp_v1_4; + Gfx *temp_v1_5; + s32 *var_s0; s32 temp_a0; - void *temp_v0; - void *temp_v1; - void *temp_v1_2; - void *temp_v1_3; - void *temp_v1_4; - void *temp_v1_5; - s32 *phi_s0; + struct_80165C18_entry *temp_v0; temp_v1 = gDisplayListHead; gDisplayListHead = temp_v1 + 8; - temp_v1->unk4 = &D_0D0079C8; - temp_v1->unk0 = 0x6000000; + temp_v1->words.w1 = (u32) &D_0D0079C8; + temp_v1->words.w0 = 0x06000000; temp_v1_2 = gDisplayListHead; gDisplayListHead = temp_v1_2 + 8; - temp_v1_2->unk4 = 0x3000; - temp_v1_2->unk0 = 0xB6000000; + temp_v1_2->words.w1 = 0x00003000; + temp_v1_2->words.w0 = 0xB6000000; func_80043D50(&D_0D028DD8, 0x20, 0x10); - phi_s0 = &D_8018C970; + var_s0 = &D_8018C970; do { - temp_a0 = *phi_s0; + temp_a0 = *var_s0; if (temp_a0 != -1) { - temp_v0 = &D_80165C18 + (temp_a0 * 0xE0); - if ((temp_v0->unkA6 >= 2) && (temp_v0->unkD5 == 7) && (D_8018D120 < 0x2EF)) { + temp_v0 = &D_80165C18[temp_a0]; + if ((temp_v0->unk_0A6 >= 2) && (temp_v0->unk_0D5 == 7) && (D_8018D120 < 0x2EF)) { func_80043104(temp_a0); temp_v1_3 = gDisplayListHead; gDisplayListHead = temp_v1_3 + 8; - temp_v1_3->unk4 = &D_0D0069C8; - temp_v1_3->unk0 = 0x6000000; + temp_v1_3->words.w1 = (u32) &D_0D0069C8; + temp_v1_3->words.w0 = 0x06000000; } } - temp_s0 = phi_s0 + 4; - phi_s0 = temp_s0; - } while (temp_s0 != &D_8018CA70); + var_s0 += 4; + } while (var_s0 != D_8018CA70); temp_v1_4 = gDisplayListHead; gDisplayListHead = temp_v1_4 + 8; - temp_v1_4->unk4 = 0x2000; - temp_v1_4->unk0 = 0xB7000000; + temp_v1_4->words.w1 = 0x00002000; + temp_v1_4->words.w0 = 0xB7000000; temp_v1_5 = gDisplayListHead; gDisplayListHead = temp_v1_5 + 8; - temp_v1_5->unk0 = 0xBB000000; - temp_v1_5->unk4 = 0x10001; + temp_v1_5->words.w0 = 0xBB000000; + temp_v1_5->words.w1 = 0x00010001; } #else GLOBAL_ASM("asm/non_matchings/code_800431B0/func_80051638.s") @@ -9422,7 +9240,7 @@ void func_800568A0(s32 arg0, s32 arg1) { #else GLOBAL_ASM("asm/non_matchings/code_800431B0/func_800568A0.s") #endif -extern s16 D_80165CB8[8]; + #ifdef MIPS_TO_C //generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 //? func_800723A4(s32, ?); // extern @@ -9458,8 +9276,6 @@ void func_80056A40(s32 arg0, s32 arg1) { GLOBAL_ASM("asm/non_matchings/code_800431B0/func_80056A40.s") #endif - - void func_80056A94(s32 arg0) { func_80072428(D_80183DD8[arg0]); } @@ -9931,18 +9747,12 @@ UNUSED void func_80057708() { } -extern Gfx D_0D008080[]; -extern Gfx D_0D008108[]; -extern Gfx *gDisplayListHead; - void load_debug_font(void) { gSPDisplayList(gDisplayListHead++, D_0D008108); gSPDisplayList(gDisplayListHead++, D_0D008080); gDPSetAlphaCompare(gDisplayListHead++, G_AC_THRESHOLD); } -extern Gfx D_0D007EB8[]; - void func_80057778(void) { gSPDisplayList(gDisplayListHead++, D_0D007EB8); } @@ -9961,8 +9771,6 @@ UNUSED void func_80057814(s32 arg0, s32 arg1, s8 *arg2, s32 arg3) { func_8005762C(&arg0, &arg1, arg3, 10); } -extern s8 D_800E5670[]; - UNUSED void func_80057858(s32 arg0, s32 arg1, s8 *arg2, s32 arg3) { debug_print_string(&arg0, &arg1, arg2); debug_print_number(&arg0, &arg1, arg3, 16); @@ -9975,8 +9783,6 @@ UNUSED void func_800578B0(s32 arg0, s32 arg1, s8 *arg2, s32 arg3) { func_800573E4(arg0, arg1, D_800E5670[0]); } -extern s8 D_800E566A[]; - UNUSED void func_80057908(s32 arg0, s32 arg1, s8 *arg2, s32 arg3) { debug_print_string(&arg0, &arg1, arg2); debug_print_number(&arg0, &arg1, arg3, 2); diff --git a/src/code_800431B0.h b/src/code_800431B0.h new file mode 100644 index 000000000..b572c4b77 --- /dev/null +++ b/src/code_800431B0.h @@ -0,0 +1,396 @@ +#ifndef CODE_800431B0_H +#define CODE_800431B0_H + +#include "common_structs.h" + +struct Vtx4_800431B0 { + Vtx vtx[4]; +}; + +void func_800431B0(Vec3f, Vec3s, f32, s32); +void func_80043220(Vec3f, Vec3s, f32, s32); +void func_80043328(Vec3f, Vec3s, f32, s32); +void func_800433288(Vec3f, Vec3s, f32, s32); +void *func_80043390(Vec3f, Vec3s, f32, s32); +void func_800433F8(Vec3f, Vec3s, f32, s32); +void func_80043460(Vec3f, Vec3s, f32, s32); +void func_80043500(Vec3f, Vec3s, f32, s32); +void func_800435A0(s32, Vec3su, f32, Gfx*, s32); +void func_80043668(Vec3f, Vec3s, f32, Vtx*); +void func_800436D0(s32, s32, u16, f32, s32); +void func_80043764(s32, s32, u16, f32, Vtx*); +void func_800437F8(s32, s32, u16, f32, struct Vtx4_800431B0*, s32); +void func_800438C4(s32, s32, u16, f32, struct Vtx4_800431B0*, s32); +void func_8004398C(s32, s32, u16, f32, struct Vtx4_800431B0*, s32); +s32 func_80043A54(s32); +void func_80043C28(s8*, s32, s32); + +void func_800440B8(s8*, s32, s32); +void func_80044388(s8*, s32, s32); +void func_80044658(s8*, s32, s32); + +void func_80045B2C(Vtx*); +void func_80045B74(Vtx*); +void func_80045BBC(Vec3f, Vec3s, f32, Vtx*); +void func_80045C48(Vec3f, Vec3s, f32, Vtx*); +void func_80045E10(s32, s32, s32, s32, s32); + +void func_800463B0(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32); +void func_80046424(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32); +void func_800464D0(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32); +void func_80046544(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32); +void func_800465B8(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32, s32); +void func_80046634(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32, s32); +void func_800466B0(s32, s32, u16, f32, s32, s32, s32, s32); +void func_80046720(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32); +void func_80046794(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32); +void func_80046808(Vec3f, Vec3s, f32, s32, s32, s32, s32, s32, s32); +void func_80046874(Vec3f, Vec3s, f32, s32, s32, s32, s32, s32, s32); +void func_800468E0(s32, s32, f32, s32, s32, s32, s32, s32, s32, s32); +void func_80046954(s32, s32, f32, s32, s32, s32, s32, s32, s32); +void func_80046A00(Vec3f, Vec3s, f32, s32, Vtx*, s32, s32); +void func_80046A68(Vec3f, Vec3s, f32, s32, s32, s32, s32, s32, s32); +void func_80046AD4(s32, s32, u16, f32, s32); +void func_80046B38(s32, s32, u16, f32, s32); +void func_80046B9C(Vec3f, Vec3s, f32, s32); +void func_80046BEC(s32, s32, u16, f32, s32, s32); +void func_80046C3C(s32, s32, f32, s32, s32); +void func_80046C78(s32, s32, u16, f32, s32); +void func_80046CDC(s32, s32, u16, f32, s32); +void func_80046D40(Vec3f, Vec3s, f32, s32); +void func_80046D90(s32, s32, u16, f32, s32); +void func_80046DF4(s32, s32, u16, f32, s32, s32); +void func_80046E60(s32, s32, s32, s32); +void func_80046F60(s32, s32, s32, s32, s32); + +void func_80047068(s32, s32, s32, s32, s32, s32, s32); +void func_8004788C(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32, s32); +void func_80047910(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32, s32); +void func_80047994(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32, s32); +void func_80047A18(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32, s32); +void func_80047A9C(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32, s32); +void func_80047B20(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32); +void func_80047B9C(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32, s32, s32); +void func_80047C28(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32, s32, s32); +void func_80047CB4(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32, s32, s32); +void func_80047D40(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32, s32, s32); +void func_80047DCC(s32, s32, f32, s32, s32, s32, s32, s32, s32, s32); +void func_80047E48(s32, s32, f32, s32, s32, s32, s32, s32, s32, s32); +void func_80047EC4(s32, s32, f32, s32, s32, s32, s32, s32, s32, s32); +void func_80047F40(s32, s32, f32, s32, s32, s32, s32, s32, s32, s32); +void func_80047FBC(s32, s32, f32, s32, s32, s32, s32, s32, s32, s32); + +void func_80048038(s32, s32, f32, s32, s32, s32, s32, s32, s32, s32); +void func_800480B4(s32, s32, f32, s32, s32, s32, s32, s32, s32, s32); +void func_80048130(s32, s32, f32, s32, s32, s32, s32, s32, s32, s32, s32); +void func_800481B4(s32, s32, f32, s32, s32, s32, s32, s32, s32); +void func_80048228(s32, s32, f32, s32, s32, s32, s32, s32, s32, s32, s32); +void func_800482AC(s32, s32, f32, s32, s32, s32, s32, s32, s32, s32, s32); +void func_80048330(s32, s32, f32, s32, s32, s32, s32, s32, s32, s32, s32); +void func_800483B4(s32, s32, f32, s32, s32, s32, s32, s32, s32, s32, s32); +void func_80048438(s32, s32, f32, s32, s32, s32, s32, s32, s32, s32, s32); +void func_800484BC(s32, s32, f32, s32, s32, s32, s32, s32, s32, s32, s32); +void func_80048540(s32, s32, f32, s32, s32, s32, s32, s32, s32, s32, s32); +void func_800485C4(s32, s32, f32, s32, s32, s32, s32, s32, s32, s32, s32); +void func_800486B0(s32, s32, u16, f32, s32, s32, s32); +void func_80048718(s32, s32, u16, f32, s32, s32, s32); +void func_80048780(s32, s32, f32, s32, s32, s32, s32); +void func_800487DC(s32, s32, u16, f32, s32, s32, s32); +void func_80048844(s32, s32, u16, f32, s32, s32, s32); +void func_800488AC(s32, s32, u16, f32, s32, s32, s32); +void func_80048914(s32, s32, u16, f32, s32, s32, s32); +void func_8004897C(s32, s32, u16, f32, s32, s32, s32); +void func_800489E4(s32, s32, u16, f32, s32, s32, s32); +void func_80048A4C(s32, s32, u16, f32, s32, s32, s32); +void func_80048AB4(s32, s32, u16, f32, s32, s32, s32, s32); +void func_80048B24(s32, s32, u16, f32, s32, s32, s32, s32); +void func_80048B94(s32, s32, f32, s32, s32, s32); +void func_80048BE8(s32, s32, f32, s32, s32, s32); +void func_80048C3C(s32, s32, f32, s32, s32, s32); +void func_80048C90(s32, s32, f32, s32, s32, s32, s32); +void func_80048CEC(s32, s32, f32, s32, s32, s32, s32); +void func_80048D48(s32, s32, f32, s32, s32, s32, s32); +void func_80048DA4(s32, s32, f32, s32, s32, s32, s32); +void func_80048E00(s32, s32, u16, f32, s32, s32, s32); +void func_80048E68(s32, s32, u16, f32, s32, s32, s32); +void func_80048ED0(s32, s32, u16, f32, s32, s32, s32); +void func_80048F38(s32, s32, f32, s32, s32, s32); + +void func_80049B20(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32); +void func_80049B9C(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32); +void func_80049C18(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32); +void func_80049C94(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32); +void func_80049D10(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32); +void func_80049D8C(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32); +void func_80049E08(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32, s32, s32, s32, s32); +void func_80049E98(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32, s32, s32, s32, s32); +void func_80049F28(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32, s32, s32, s32, s32); +void func_80049FB8(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32); + +void func_8004A034(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32); +void func_8004A0B0(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32); +void func_8004A12C(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32, s32, s32, s32, s32); +void func_8004A1BC(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32); +void func_8004A258(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32); +void func_8004A2F4(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32, s32, s32, s32, s32); +void func_8004A384(s32, s32, u16, f32, s32, s32, s32, s32, s32, s32, s32, s32, s32, s32); +void func_8004A414(s32, s32, f32, s32, s32, s32, s32, s32, s32); +void func_8004A488(s32, s32, f32, s32, s32, s32, s32, s32, s32); +void func_8004A4FC(s32, s32, f32, s32, s32, s32, s32, s32, s32); +void func_8004A570(s32, s32, f32, s32, s32, s32, s32, s32, s32); +void func_8004A5E4(s32, s32, f32, s32, s32); +void func_8004A9B8(f32); +void func_8004AA10(s32, s32, f32, s32, s32, s32, s32, s32, s32); +void func_8004AAA0(s32, s32, u16, f32, s32, s32); +void func_8004AB00(s32, s32, u16, f32, s32, s32); +void func_8004AB60(s32, s32, u16, f32, s32, s32); +void func_8004ABC0(s32, s32, u16, f32, s32, s32); +void func_8004AC20(s32, s32, u16, f32, s32, s32); +void func_8004AC80(s32, s32, u16, f32, s32, s32); +void func_8004ACE0(s32, s32, f32, s32, s32); +void func_8004AD2C(s32, s32, u16, f32, s32, s32); +void func_8004AD8C(s32, s32, u16, f32, s32, s32); +void func_8004ADEC(s32, s32, u16, f32, s32, s32); +void func_8004AE4C(s32, s32, u16, f32, s32, s32); +void func_8004AEAC(s32, s32, u16, f32, s32, s32); +void func_8004AF0C(s32, s32, u16, f32, s32, s32); +void func_8004AF6C(s32, s32, u16, f32, s32, s32); +void func_8004AFCC(s32, s32, u16, f32, s32, s32); + +void func_8004B02C(); +void func_8004B05C(u8*); +void func_8004B138(s32, s32, s32, s32); +void func_8004B180(s32, s32, s32, s32); +void func_8004B1C8(s32, s32, s32, s32, s32, s32, s32); +void func_8004B254(s32, s32, s32); +void func_8004B2BC(s32); +void func_8004B2BC(s32); +void func_8004B310(s32); +void func_8004B35C(s32, s32, s32, s32); +void func_8004B35C(s32,s32,s32,s32); +void func_8004B3C8(s32); +void func_8004B414(s32, s32, s32, s32); +void func_8004B414(s32,s32,s32,s32); +void func_8004B480(s32, s32, s32); +void func_8004B4E8(s32, s32, s32, s32); +void func_8004B554(s32); +void func_8004B5A8(s32, s32, s32, s32); +void func_8004B614(s32, s32, s32, s32, s32, s32, s32); +void func_8004B614(s32, s32, s32, s32, s32, s32, s32); +void func_8004B6C4(s32, s32, s32); +void func_8004B6C4(s32, s32, s32); +void func_8004B72C(s32, s32, s32, s32, s32, s32, s32); +void func_8004B950(s32, s32, s32, s32, s32); +void func_8004BB34(); +void func_8004BB3C(s32, s32, s32, s32, f32); + +void func_8004C024(s16, s16, s16, u16, u16, u16, u16); +void func_8004C148(s16, s16, s16, u16, u16, u16, u16); +void func_8004C268(s32, s32, s32, u32, u32, u32, s32); +void func_8004C354(); +void func_8004C35C(); +void func_8004C364(s32, s32, u32, u32, s32); +void func_8004C450(s32, s32, u32, u32, s32); +void func_8004C53C(s32, s32, u32, u32, s32); +void func_8004C628(s32, s32, u32, u32, s32); +void func_8004C8D4(s16, s16); +void func_8004C91C(s32, s32, s32, s32, s32, s32); +void func_8004C9D8(s32, s32, s32, s32, s32, s32, s32, s32); +void func_8004CA58(s32, s32, f32, s32, s32, s32); +void func_8004CAD0(s32, s32, s32); +void func_8004CB00(s32, s32, s32); +void func_8004CB30(s32, s32, s32); +void func_8004CB60(s32, s32, s32); +void func_8004CB90(s32, s32, s32); +void func_8004CBC0(s32, s32, f32, s32); +void func_8004CBF4(s32, s32, s32); +void func_8004CC24(s32, s32, s32); +void func_8004CC54(s32, s32, s32); +void func_8004CC84(s32, s32, s32); +void func_8004CCB4(s32, s32, s32); +void func_8004CCE4(s32, s32, f32, s32); +void func_8004CD18(s32, s32, s32); +void func_8004CF9C(s32, s32, s32, s32, s32, s32, s32); +void func_8004CFF0(s32, s32, s32, s32, s32, s32, s32); + +void func_8004D044(s32, s32, s32, s32, s32, s32, s32, s32, s32, s32, s32); +void func_8004D0CC(); +void func_8004DC34(s32, s32, s32); +void func_8004DC6C(s32, s32, s32); +void func_8004DCA4(s32, s32, s32); +void func_8004DCDC(s32, s32, s32); +void func_8004DD0C(s32, s32, s32); +void func_8004DD44(s32, s32, s32); +void func_8004DD74(s32, s32, s32); +void func_8004DDAC(s32, s32, s32); +void func_8004DDDC(s32, s32, s32); +void func_8004DE04(s32, s32, s32); +void func_8004DE2C(s32, s32, s32); +void func_8004DE54(s32, s32, s32); +void func_8004DE84(s32, s32, s32); +void func_8004DEB4(s32, s32, s32); +void func_8004DEEC(s32, s32, s32); +void func_8004DF24(s32, s32, s32); + +void func_8004E238(); +void func_8004E240(s32, s32, u8*, s32, s32, s32, s32); +void func_8004E2B8(s32, s32, s32, s32, s32, s32, s32, s32); +void func_8004E338(s32, s32, u8*, s32, s32, s32); +void func_8004E3B8(); +void func_8004E3C0(s32, s32, s32, s32, s32, s32, s32, s32); +void func_8004E3F4(s32, s32, s32, s32, s32, s32, s32, s32, s32); +void func_8004E430(s32, s32, s32, s32); +void func_8004E464(s32, s32, s32, s32); +void func_8004E498(s32, s32, s32, s32); +void func_8004E4CC(s32, s32, s32, s32); +void func_8004E500(s32, s32, s32, s32); +void func_8004E534(s32, s32, s32, s32); +void func_8004E568(s32, s32, s32, s32); +void func_8004E59C(s32, s32, s32, s32, s32); +void func_8004E5D8(s32, s32, u8*, s32); +void func_8004E604(s32, s32, u8*, s32); +void func_8004E638(s32); +void func_8004E78C(s32); +void func_8004E800(s32); +void func_8004E998(s32); +void func_8004EB30(s32); +void func_8004EB38(s32); +void func_8004ED40(s32); +void func_8004EE54(s32); + +void func_8004F020(s32); +void func_8004F3E4(s32); +void print_timer(s32, s32, s32); +void func_8004F950(s32, s32, s32, s32); +void func_8004F9CC(s32, s32, s32); +void func_8004FA78(s32); +void func_8004FC78(s16, s16, s8); + +void func_80050320(); + +void func_800514BC(); +void func_800517C8(); +void func_80051EBC(); +void func_80051EF8(); +void func_80051F9C(); + +void func_80052044(); +void func_80052080(); +void func_80052C60(); + +void func_8005327C(s32); +void func_800532A4(s32); + +void func_80054BE8(s32); + +void func_800557AC(); +void func_80055F48(s32); + +void func_80056160(s32); +void func_800569F4(s32); +void func_80056A40(s32, s32); +void func_80056A94(s32); + +void func_80057330(); +void func_80057338(); +void func_800573BC(); +void func_800573C4(); +void func_800573CC(); +void func_800573D4(); +void func_800573DC(); +void func_800573E4(s32, s32, s8); +void func_80057454(s32*, s32*); +void func_80057708(); +void load_debug_font(); +void func_80057778(); +void debug_print_str2(s32, s32, s8*); +void print_str_num(s32, s32, s8*, s32); +void func_80057814(s32, s32, s8*, s32); +void func_80057858(s32, s32, s8*, s32); +void func_800578B0(s32, s32, s8*, s32); +void func_80057908(s32, s32, s8*, s32); +void func_80057960(s32, s32, s8*, s32); +void func_800579B8(s32, s32, s8*); +void func_800579F8(s32, s32, s8*, s32); +void func_80057A50(s32, s32, s8*, s32); +void func_80057AA8(s32, s32, s8*, s32); +void func_80057B14(s32, s32, s8*, s32); +void func_80057B80(s32, s32, s8*, s32); +void func_80057BEC(s32, s32, s8*, s32); + +extern s32 D_80165860; +extern s32 D_8016586C; +extern s32 D_80165878; +extern s32 D_8016589C; +extern s16 D_80165CB8[8]; +extern u16 D_801656C0; +extern u16 D_801656D0; +extern u16 D_801656E0; + +extern s32 D_80183DD8[]; +extern Vec3f D_80183E50; +extern Vec3f D_80183E70; +extern s32 D_80183EAC; +extern s32 D_8018D1E0; + +extern s8 D_800E5670[]; +extern s8 D_800E566A[]; + +extern Gfx D_0D005470[]; +extern Gfx D_0D005770[]; +extern Gfx D_0D005AE0[]; +extern Gfx D_0D005FB0[]; +extern Gfx D_0D0060B0[]; +extern Gfx D_0D006930[]; +extern Gfx D_0D006940[]; +extern Gfx D_0D0077A0[]; +extern Gfx D_0D0077D0[]; +extern Gfx D_0D0077F8[]; +extern Gfx D_0D007828[]; +extern Gfx D_0D007850[]; +extern Gfx D_0D007878[]; +extern Gfx D_0D0078A0[]; +extern Gfx D_0D0078D0[]; +extern Gfx D_0D007928[]; +extern Gfx D_0D007948[]; +extern Gfx D_0D007968[]; +extern Gfx D_0D0079A8[]; +extern Gfx D_0D0079C8[]; +extern Gfx D_0D0079E8[]; +extern Gfx D_0D007A40[]; +extern Gfx D_0D007A60[]; +extern Gfx D_0D007A80[]; +extern Gfx D_0D007AA0[]; +extern Gfx D_0D007AC0[]; +extern Gfx D_0D007AE0[]; +extern Gfx D_0D007B00[]; +extern Gfx D_0D007C10[]; +extern Gfx D_0D007CB8[]; +extern Gfx D_0D007CD8[]; +extern Gfx D_0D007CF8[]; +extern Gfx D_0D007D18[]; +extern Gfx D_0D007D38[]; +extern Gfx D_0D007D58[]; +extern Gfx D_0D007D78[]; +extern Gfx D_0D007D98[]; +extern Gfx D_0D007DB8[]; +extern Gfx D_0D007DD8[]; +extern Gfx D_0D007DF8[]; +extern Gfx D_0D007E18[]; +extern Gfx D_0D007E38[]; +extern Gfx D_0D007E58[]; +extern Gfx D_0D007E98[]; +extern Gfx D_0D007EB8[]; +extern Gfx D_0D007EF8[]; +extern Gfx D_0D007F38[]; +extern Gfx D_0D007F78[]; +extern Gfx D_0D007FE0[]; +extern Gfx D_0D008000[]; +extern Gfx D_0D008080[]; +extern Gfx D_0D008108[]; +extern Gfx D_0D00AB58[]; +extern Gfx D_0D00C558[]; + +extern Gfx *gDisplayListHead; + +#endif diff --git a/src/code_80057C60.c b/src/code_80057C60.c index 6a89b7bd8..d43056c0e 100644 --- a/src/code_80057C60.c +++ b/src/code_80057C60.c @@ -5,9 +5,15 @@ #include #include #include -#include "code_80057C60.h" -#include "math_util_2.h" #include "math_util.h" +#include "math_util_2.h" +#include "code_800431B0.h" +#include "code_80005FD0.h" +#include "code_80057C60.h" +#include "code_80071F00.h" +#include "code_80086E70.h" +#include "code_8008C1D0.h" +//#include "skybox_and_splitscreen.h" <- TODO: create this header file // UI Code? void func_80057C60(void) { @@ -48,8 +54,6 @@ void func_80057CE4(void) { } } -void func_8004C024(s32, s32, s32, s32, s32, s32, s32); // extern -void func_8004C148(s32, s32, s32, s32, s32, s32, s32); // extern extern s8 D_801657B2; void func_80057DD0(void) { @@ -1016,7 +1020,7 @@ s32 func_8008A890(Camera*); // extern //? func_8008C1D8(? *); // extern extern u16 D_800DC5FC; extern s32 D_80165678; -extern s32 D_8018CF68; +extern s16 D_8018CF68[]; extern s32 gRaceFrameCounter; extern Camera *camera1; diff --git a/src/code_80057C60.h b/src/code_80057C60.h index 36aba2a7d..416d28737 100644 --- a/src/code_80057C60.h +++ b/src/code_80057C60.h @@ -3,42 +3,7 @@ #include "common_structs.h" -void func_8001C3C4(s32); - -void func_80041D34(void); - -void func_8004E638(s32); -void func_8004E78C(s32); -void func_8004E800(s32); -void func_8004E998(s32); -void func_8004EB30(s32); -void func_8004EB38(s32); -void func_8004ED40(s32); -void func_8004EE54(s32); - -void func_8004F020(s32); -void func_8004F3E4(s32); -void func_8004FA78(s32); - -void func_80050320(void); - -void func_800514BC(void); -void func_800517C8(void); -void func_80051EBC(void); -void func_80051EF8(void); -void func_80051F9C(void); - -void func_80052044(void); -void func_80052080(void); -void func_80052C60(void); - -void func_800532A4(s32); - -void func_80054BE8(s32); - -void func_80055F48(s32); - -void func_80056160(s32); +// code_80057C60 void func_80057C60(); void func_80057CE4(); @@ -162,6 +127,7 @@ void func_8006A7C0(Player*, f32, f32, s8, s8); void func_8006AFD0(Player*, s16, s8, s8); void func_8006B87C(Player*, s8); +void func_8006B8B4(Player*, s8); void func_8006B974(s32, s8, s8); void func_8006B9CC(Player*, s8); void func_8006BA94(Player*, s8, s8); @@ -186,29 +152,7 @@ void func_8006E848(Player*, s8, s8); void func_8006E8C4(Player*, s8, s8); void func_8006E940(Player*, s8, s8); -void func_800744CC(void); -void func_80077640(void); - -void func_80078C70(s32); - -void func_8007A948(s32); -void func_8007AA44(s32); - -void func_8007BB9C(s32); - -void func_8007C2F8(s32); - -void func_80081210(void); - -void func_80086604(void); -void func_80086D80(void); - -void func_800892E0(s32); - -void func_8008C1D8(s32*); -void func_8008C1E0(s32*, s32*); -void func_8008C204(void); - +// skybox_and_splitscreen void func_802A3730(struct UnkStruct_800DC5EC*); diff --git a/src/code_8006E9C0.c b/src/code_8006E9C0.c index 2b55306f9..541611ff6 100644 --- a/src/code_8006E9C0.c +++ b/src/code_8006E9C0.c @@ -1,21 +1,9 @@ #include #include #include - -void func_8006EA5C(void); -void func_8006ED60(void); -s32 func_8006ED94(s32*, s32, s32, s32); -extern s32 gScreenModeSelection; -extern s32 gTextureLogoMarioKart64; -extern s16 D_80165730; -extern s16 D_80165738; -extern s16 D_80165740; -extern s16 D_80165748; -extern s32 D_80165C18; -extern s32 D_80183D5C; -extern s8 D_8018EDF3; -extern s32 D_8018D1E0; -extern s32 D_8018D9B0; +#include "code_8006E9C0.h" +#include "code_80071F00.h" +#include "objects.h" void func_8006E9C0(void) { @@ -39,28 +27,10 @@ void func_8006E9C0(void) { func_80070148(); } -extern s8 D_8018CA70; -extern s8 D_8018CAE0; -extern s8 D_8018CAE1; -extern s8 D_8018CAE2; -extern s8 D_8018CAF1; -extern s8 D_8018CB64; -extern s8 D_8018CB65; -extern s8 D_8018CB66; -extern s8 D_8018CB75; -extern s8 D_8018CBE8; -extern s8 D_8018CBE9; -extern s8 D_8018CBEA; -extern s8 D_8018CBF9; -extern s8 D_8018CC6C; -extern s8 D_8018CC6D; -extern s8 D_8018CC6E; -extern s8 D_8018CC7D; - void func_8006EA5C(void) { func_8006EB10(); func_8006ED60(); - bzero(&D_8018CA70, 0x210); + bzero(D_8018CA70, D_8018CA70_SIZE * sizeof(struct_8018CA70_entry)); D_8018CAE1 = 0; D_8018CAE2 = 0; D_8018CAF1 = 0; @@ -77,10 +47,28 @@ void func_8006EA5C(void) { D_8018CB64 = 0; D_8018CBE8 = 0; D_8018CC6C = 0; + /** + D_8018CA70[0].lapCount = 0; + D_8018CA70[0].alsoLapCount = 0; + D_8018CA70[0].unk_81 = 0; + D_8018CA70[1].lapCount = 0; + D_8018CA70[1].alsoLapCount = 0; + D_8018CA70[1].unk_81 = 0; + D_8018CA70[2].lapCount = 0; + D_8018CA70[2].alsoLapCount = 0; + D_8018CA70[2].unk_81 = 0; + D_8018CA70[3].lapCount = 0; + D_8018CA70[3].alsoLapCount = 0; + D_8018CA70[3].unk_81 = 0; + D_8018CA70[0].raceCompleteBool = 0; + D_8018CA70[1].raceCompleteBool = 0; + D_8018CA70[2].raceCompleteBool = 0; + D_8018CA70[3].raceCompleteBool = 0; + **/ } #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern s32 D_80183E38; extern s32 D_80183E4C; extern s32 D_80183E5C; @@ -94,7 +82,6 @@ extern ? D_8018C630; extern ? D_8018C830; extern ? D_8018C870; extern ? D_8018C970; -extern ? D_8018CA70; extern s16 D_8018CF18; extern s16 D_8018CF20; extern s16 D_8018CF48; @@ -125,50 +112,40 @@ extern s16 D_8018D0E8; extern s16 D_8018D110; void func_8006EB10(void) { - ? *temp_v1_5; - u32 temp_v1; - u32 temp_v1_2; - u32 temp_v1_3; - u32 temp_v1_4; - ? *phi_v1; - ? *phi_v1_2; - ? *phi_v1_3; - ? *phi_v1_4; - ? *phi_v1_5; + ? *var_v1; + ? *var_v1_2; + ? *var_v1_3; + ? *var_v1_4; + ? *var_v1_5; - phi_v1 = &D_8018C1B0; + var_v1 = &D_8018C1B0; do { - temp_v1 = phi_v1 + 4; - temp_v1->unk-4 = -1; - phi_v1 = temp_v1; - } while (temp_v1 < &D_8018C3B0); - phi_v1_2 = &D_8018C3F0; + var_v1 += 4; + var_v1->unk-4 = -1; + } while ((u32) var_v1 < (u32) &D_8018C3B0); + var_v1_2 = &D_8018C3F0; do { - temp_v1_2 = phi_v1_2 + 4; - temp_v1_2->unk-4 = -1; - phi_v1_2 = temp_v1_2; - } while (temp_v1_2 < &D_8018C5F0); - phi_v1_3 = &D_8018C630; + var_v1_2 += 4; + var_v1_2->unk-4 = -1; + } while ((u32) var_v1_2 < (u32) &D_8018C5F0); + var_v1_3 = &D_8018C630; do { - temp_v1_3 = phi_v1_3 + 4; - temp_v1_3->unk-4 = -1; - phi_v1_3 = temp_v1_3; - } while (temp_v1_3 < &D_8018C830); - phi_v1_4 = &D_8018C870; + var_v1_3 += 4; + var_v1_3->unk-4 = -1; + } while ((u32) var_v1_3 < (u32) &D_8018C830); + var_v1_4 = &D_8018C870; do { - temp_v1_4 = phi_v1_4 + 4; - temp_v1_4->unk-4 = -1; - phi_v1_4 = temp_v1_4; - } while (temp_v1_4 < &D_8018C970); - phi_v1_5 = &D_8018C970; + var_v1_4 += 4; + var_v1_4->unk-4 = -1; + } while ((u32) var_v1_4 < (u32) &D_8018C970); + var_v1_5 = &D_8018C970; do { - temp_v1_5 = phi_v1_5 + 0x10; - temp_v1_5->unk-10 = -1; - temp_v1_5->unk-C = -1; - temp_v1_5->unk-8 = -1; - temp_v1_5->unk-4 = -1; - phi_v1_5 = temp_v1_5; - } while (temp_v1_5 != &D_8018CA70); + var_v1_5 += 0x10; + var_v1_5->unk-10 = -1; + var_v1_5->unk-C = -1; + var_v1_5->unk-8 = -1; + var_v1_5->unk-4 = -1; + } while (var_v1_5 != D_8018CA70); D_8018CFA8 = 0; D_8018CF90 = D_8018CFA8; D_8018CF78 = D_8018CF90; @@ -208,7 +185,7 @@ GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_8006EB10.s") #endif void func_8006ED60() { - bzero(&D_80165C18, 0x1E140); + bzero(D_80165C18, OBJECT_LIST_SIZE * sizeof(struct_80165C18_entry)); D_80183D5C = -1; } @@ -243,51 +220,90 @@ void func_8006EE44(void) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern ? D_0D01DED8; -extern ? D_0D01FED8; -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s32 D_0D01DED8; +extern s32 D_0D01FED8; -void func_8006EE7C(s32 arg0) { - void *temp_v0; +void func_8006EE7C(s32 objectIndex) { + struct_80165C18_entry *temp_v0; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unkA4 = 0; - temp_v0->unk68 = &D_0D01DED8; - temp_v0->unk60 = &D_0D01DED8; - temp_v0->unk6C = &D_0D01FED8; - temp_v0->unk64 = &D_0D01FED8; - temp_v0->unk4C = -1; - temp_v0->unk9C = 0xA0; - temp_v0->unk9E = -0x20; - temp_v0->unkD2 = temp_v0->unkA4; - temp_v0->unk0 = 1.0f; + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_0A4 = 0; + temp_v0->unk_068 = &D_0D01DED8; + temp_v0->unk_060 = &D_0D01DED8; + temp_v0->unk_06C = (s32) &D_0D01FED8; + temp_v0->unk_064 = &D_0D01FED8; + temp_v0->unk_04C = -1; + temp_v0->unk_084[0xC] = 0x00A0; + temp_v0->unk_084[0xD] = -0x0020; + temp_v0->unk_0D2 = (s8) temp_v0->unk_0A4; + temp_v0->unk_000 = 1.0f; } #else GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_8006EE7C.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s32 func_802A84F4(s32, s16, s16, s32); // extern -extern ? D_800E54D0; -extern ? D_800E5520; -extern ? D_800E5548; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern s32 D_8018D240; extern s16 D_8018D2B0; extern s16 D_8018D2B8; +static s32 D_800E54D0[0x14] = { + (s32) &gTextureCourseOutlineMarioRaceway, + (s32) &gTextureCourseOutlineChocoMountain, + (s32) &gTextureCourseOutlineBowsersCastle, + (s32) &gTextureCourseOutlineBansheeBoardwalk, + (s32) &gTextureCourseOutlineYoshiValley, + (s32) &gTextureCourseOutlineFrappeSnowland, + (s32) &gTextureCourseOutlineKoopaTroopaBeach, + (s32) &gTextureCourseOutlineRoyalRaceway, + (s32) &gTextureCourseOutlineLuigiRaceway, + (s32) &gTextureCourseOutlineMooMooFarm, + (s32) &gTextureCourseOutlineToadsTurnpike, + (s32) &gTextureCourseOutlineKalimariDesert, + (s32) &gTextureCourseOutlineSherbetLand, + (s32) &gTextureCourseOutlineRainbowRoad, + (s32) &gTextureCourseOutlineWarioStadium, + (s32) &gTextureCourseOutlineBlockFort, + (s32) &gTextureCourseOutlineSkyscraper, + (s32) &gTextureCourseOutlineDoubleDeck, + (s32) &gTextureCourseOutlineDksJungleParkway, + (s32) &gTextureCourseOutlineBigDonut, +}; +static s16 D_800E5520[0]; /* unable to generate initializer */ +static s16 D_800E5548[0]; /* unable to generate initializer */ +static ? gTextureCourseOutlineBansheeBoardwalk; /* unable to generate initializer */ +static ? gTextureCourseOutlineBigDonut; /* unable to generate initializer */ +static ? gTextureCourseOutlineBlockFort; /* unable to generate initializer */ +static ? gTextureCourseOutlineBowsersCastle; /* unable to generate initializer */ +static ? gTextureCourseOutlineChocoMountain; /* unable to generate initializer */ +static ? gTextureCourseOutlineDksJungleParkway; /* unable to generate initializer */ +static ? gTextureCourseOutlineDoubleDeck; /* unable to generate initializer */ +static ? gTextureCourseOutlineFrappeSnowland; /* unable to generate initializer */ +static ? gTextureCourseOutlineKalimariDesert; /* unable to generate initializer */ +static ? gTextureCourseOutlineKoopaTroopaBeach; /* unable to generate initializer */ +static ? gTextureCourseOutlineLuigiRaceway; /* unable to generate initializer */ +static ? gTextureCourseOutlineMarioRaceway; /* unable to generate initializer */ +static ? gTextureCourseOutlineMooMooFarm; /* unable to generate initializer */ +static ? gTextureCourseOutlineRainbowRoad; /* unable to generate initializer */ +static ? gTextureCourseOutlineRoyalRaceway; /* unable to generate initializer */ +static ? gTextureCourseOutlineSherbetLand; /* unable to generate initializer */ +static ? gTextureCourseOutlineSkyscraper; /* unable to generate initializer */ +static ? gTextureCourseOutlineToadsTurnpike; /* unable to generate initializer */ +static ? gTextureCourseOutlineWarioStadium; /* unable to generate initializer */ +static ? gTextureCourseOutlineYoshiValley; /* unable to generate initializer */ -void func_8006EEE8(s32 arg0) { +void func_8006EEE8(s32 courseId) { s32 sp1C; + s16 *temp_v1; s16 temp_a1; s32 temp_t0; - void *temp_v1; - temp_t0 = arg0 * 2; - temp_a1 = *(&D_800E5520 + temp_t0); + temp_t0 = courseId * 2; + temp_a1 = D_800E5520[courseId]; sp1C = temp_t0; - D_8018D240 = func_802A84F4(*(&D_800E54D0 + (arg0 * 4)), temp_a1, temp_a1, arg0); - temp_v1 = (temp_t0 * 2) + &D_800E5548; + D_8018D240 = func_802A84F4(D_800E54D0[courseId], (u32) temp_a1, (u32) temp_a1); + temp_v1 = &D_800E5548[temp_t0]; D_8018D2B0 = temp_v1->unk0; D_8018D2B8 = temp_v1->unk2; } @@ -296,37 +312,77 @@ GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_8006EEE8.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s32 func_8006ED94(s32, s32, s16, s16); // extern -extern s32 D_800E54D0; -extern s16 D_800E5520; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern s32 D_8018D248; extern s32 D_8018D9B4; +static s32 *D_800E54D0[0x14] = { + gTextureCourseOutlineMarioRaceway, + gTextureCourseOutlineChocoMountain, + gTextureCourseOutlineBowsersCastle, + gTextureCourseOutlineBansheeBoardwalk, + gTextureCourseOutlineYoshiValley, + gTextureCourseOutlineFrappeSnowland, + gTextureCourseOutlineKoopaTroopaBeach, + gTextureCourseOutlineRoyalRaceway, + gTextureCourseOutlineLuigiRaceway, + gTextureCourseOutlineMooMooFarm, + gTextureCourseOutlineToadsTurnpike, + gTextureCourseOutlineKalimariDesert, + gTextureCourseOutlineSherbetLand, + gTextureCourseOutlineRainbowRoad, + gTextureCourseOutlineWarioStadium, + gTextureCourseOutlineBlockFort, + gTextureCourseOutlineSkyscraper, + gTextureCourseOutlineDoubleDeck, + gTextureCourseOutlineDksJungleParkway, + gTextureCourseOutlineBigDonut, +}; +static s16 D_800E5520; /* unable to generate initializer */ +static s32 gTextureCourseOutlineBansheeBoardwalk[]; +static s32 gTextureCourseOutlineBigDonut[]; +static s32 gTextureCourseOutlineBlockFort[]; +static s32 gTextureCourseOutlineBowsersCastle[]; +static s32 gTextureCourseOutlineChocoMountain[]; +static s32 gTextureCourseOutlineDksJungleParkway[]; +static s32 gTextureCourseOutlineDoubleDeck[]; +static s32 gTextureCourseOutlineFrappeSnowland[]; +static s32 gTextureCourseOutlineKalimariDesert[]; +static s32 gTextureCourseOutlineKoopaTroopaBeach[]; +static s32 gTextureCourseOutlineLuigiRaceway[]; +static s32 gTextureCourseOutlineMarioRaceway[]; +static s32 gTextureCourseOutlineMooMooFarm[]; +static s32 gTextureCourseOutlineRainbowRoad[]; +static s32 gTextureCourseOutlineRoyalRaceway[]; +static s32 gTextureCourseOutlineSherbetLand[]; +static s32 gTextureCourseOutlineSkyscraper[]; +static s32 gTextureCourseOutlineToadsTurnpike[]; +static s32 gTextureCourseOutlineWarioStadium[]; +static s32 gTextureCourseOutlineYoshiValley[]; void func_8006EF60(void) { + s16 *var_s0; s16 temp_a2; - s32 temp_s2; - s32 *phi_s3; - s32 phi_s1; - s16 *phi_s0; - s32 *phi_s4; - s32 phi_s2; + s16 temp_t6; + s32 **var_s3; + s32 *var_s4; + s32 var_s1; + s32 var_s2; - phi_s3 = &D_800E54D0; - phi_s1 = D_8018D9B4 + 0xFFFF0000; - phi_s0 = &D_800E5520; - phi_s4 = &D_8018D248; - phi_s2 = 0; + var_s4 = &D_8018D248; + var_s3 = D_800E54D0; + var_s0 = &D_800E5520; + var_s2 = 0; + var_s1 = D_8018D9B4 + 0xFFFF0000; do { - temp_a2 = *phi_s0; - temp_s2 = phi_s2 + 1; - *phi_s4 = func_8006ED94(*phi_s3, phi_s1, temp_a2, temp_a2); - phi_s3 += 4; - phi_s1 += *phi_s0; - phi_s0 += 2; - phi_s4 += 4; - phi_s2 = temp_s2; - } while (temp_s2 != 0x14); + temp_a2 = *var_s0; + temp_t6 = *var_s0; + var_s2 += 1; + *var_s4 = func_8006ED94(*var_s3, var_s1, (s32) temp_a2, (s32) temp_a2); + var_s3 += 4; + var_s0 += 2; + var_s4 += 4; + var_s1 += temp_t6; + } while (var_s2 != 0x14); } #else GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_8006EF60.s") @@ -998,136 +1054,94 @@ GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_8006FA94.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? find_unused_obj_index(? *); // extern -extern ? D_8018CE24; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s32 D_8018CE24; extern ? D_8018CF24; void func_80070148(void) { - ? *temp_s0; - ? *phi_s0; + s32 *var_s0; - phi_s0 = &D_8018CE24; + var_s0 = &D_8018CE24; do { - find_unused_obj_index(phi_s0); - temp_s0 = phi_s0 + 0x20; - phi_s0 = temp_s0; - } while (temp_s0 != &D_8018CF24); + find_unused_obj_index(var_s0); + var_s0 += 0x20; + } while (var_s0 != &D_8018CF24); } #else GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_80070148.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? find_unused_obj_index(? *); // extern -extern ? D_80183DD8; -extern ? D_80183DF4; -extern ? D_80183EA0; -extern ? D_80183F28; -extern ? D_8018BFA8; -extern ? D_8018C030; -extern ? D_8018C0B0; - void func_80070190(void) { - ? *temp_s0_2; - u32 temp_s0; - ? *phi_s1; - ? *phi_s2; - ? *phi_s3; - ? *phi_s0; - ? *phi_s0_2; + s32 loopIndex; - phi_s1 = &D_80183EA0; - phi_s2 = &D_80183F28; - phi_s3 = &D_8018BFA8; - phi_s0 = &D_8018C030; - do { - find_unused_obj_index(phi_s1); - find_unused_obj_index(phi_s2); - find_unused_obj_index(phi_s3); - find_unused_obj_index(phi_s0); - temp_s0 = phi_s0 + 4; - phi_s1 += 4; - phi_s2 += 4; - phi_s3 += 4; - phi_s0 = temp_s0; - } while (temp_s0 < &D_8018C0B0); - phi_s0_2 = &D_80183DD8; - do { - find_unused_obj_index(phi_s0_2); - temp_s0_2 = phi_s0_2 + 4; - phi_s0_2 = temp_s0_2; - } while (temp_s0_2 != &D_80183DF4); + for(loopIndex = 0; loopIndex < SOME_OBJECT_INDEX_LIST_SIZE; loopIndex++) { + find_unused_obj_index(&D_80183EA0[loopIndex]); + find_unused_obj_index(&D_80183F28[loopIndex]); + find_unused_obj_index(&D_8018BFA8[loopIndex]); + find_unused_obj_index(&D_8018C030[loopIndex]); + } + + for(loopIndex = 0; loopIndex < D_80183DD8_SIZE; loopIndex++) { + find_unused_obj_index(&D_80183DD8[loopIndex]); + } } -#else -GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_80070190.s") -#endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800723A4(); // extern -? func_80073404(s32, ?, ?, ? *); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern ? D_0D005FB0; -extern ? D_80165C18; extern s32 D_8018D220; -void func_80070250(s32 arg0, void *arg2) { - void *sp20; - f32 temp_f6; +void func_80070250(s32 objectIndex, s32 arg1, void *arg2) { + struct_80165C18_entry *sp20; + f32 var_f6; + struct_80165C18_entry *temp_v0; u16 temp_t1; - void *temp_v0; - f32 phi_f6; - func_800723A4(); - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unkA4 = 0; - temp_v0->unkD5 = arg2->unk6; - temp_v0->unkC0 = arg2->unk0; - temp_v0->unk9E = arg2->unk2; + func_800723A4(objectIndex, arg1); + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_0A4 = 0; + temp_v0->unk_0D5 = (u8) arg2->unk6; + temp_v0->unk_0C0 = arg2->unk0; + temp_v0->unk_09E = (s16) arg2->unk2; temp_t1 = arg2->unk4; - temp_f6 = temp_t1; - phi_f6 = temp_f6; - if (temp_t1 < 0) { - phi_f6 = temp_f6 + 4294967296.0f; + var_f6 = (f32) temp_t1; + if ((s32) temp_t1 < 0) { + var_f6 += 4294967296.0f; } - temp_v0->unk0 = phi_f6 / 100.0; + temp_v0->unk_000 = (f32) ((f64) var_f6 / 100.0); sp20 = temp_v0; - temp_v0->unk64 = (arg2->unk6 << 0xA) + D_8018D220; - func_80073404(arg0, 0x40, 0x20, &D_0D005FB0); - temp_v0->unkA0 = 0xFF; + temp_v0->unk_064 = (arg2->unk6 << 0xA) + D_8018D220; + func_80073404(objectIndex, 0x40U, 0x20U, (s32) &D_0D005FB0); + temp_v0->unk_0A0 = 0x00FF; } #else GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_80070250.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s32 find_unused_obj_index(void *); // extern -? func_80070250(s32, ?, void *); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_80070250(s32, ?, void *); /* extern */ extern ? D_8018CC80; extern s32 D_8018D1F0; extern s32 D_8018D1F8; extern s8 D_8018D230; void func_80070328(void *arg0) { - s32 temp_s2; - s32 phi_s1; - void *phi_s0; - s32 phi_s2; + s32 var_s1; + s32 var_s2; + void *var_s0; - phi_s1 = 0; - phi_s0 = arg0; - phi_s2 = 0; + var_s2 = 0; + var_s0 = arg0; + var_s1 = 0; do { - func_80070250(find_unused_obj_index(&D_8018CC80 + (D_8018D1F8 * 4) + phi_s1), 1, phi_s0); - temp_s2 = phi_s2 + 1; - phi_s1 += 4; - phi_s0 += 8; - phi_s2 = temp_s2; - } while (phi_s0->unk8 != 0xFFFF); - D_8018D1F8 = D_8018D1F8 + temp_s2; - D_8018D1F0 = temp_s2; + func_80070250(find_unused_obj_index(&D_8018CC80 + (D_8018D1F8 * 4) + var_s1), 1, var_s0); + var_s2 += 1; + var_s1 += 4; + var_s0 += 8; + } while (var_s0->unk8 != 0xFFFF); + D_8018D1F8 += var_s2; + D_8018D1F0 = var_s2; D_8018D230 = 0; } #else @@ -1135,66 +1149,58 @@ GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_80070328.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800723A4(); // extern -? func_80073404(s32, ?, ?, ? *); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern ? D_0D005770; -extern ? D_0D0293D8; -extern ? D_80165C18; +extern s32 D_0D0293D8; -void func_800703E0(s32 arg0, void *arg2) { - f32 temp_f6; +void func_800703E0(s32 objectIndex, s32 arg1, void *arg2) { + f32 var_f6; + struct_80165C18_entry *temp_v0; u16 temp_t2; - void *temp_v0; - f32 phi_f6; - func_800723A4(); - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unkA4 = 1; - temp_v0->unkD5 = arg2->unk6; - temp_v0->unkC0 = arg2->unk0; - temp_v0->unk9E = arg2->unk2; + func_800723A4(objectIndex, arg1); + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_0A4 = 1; + temp_v0->unk_0D5 = (u8) arg2->unk6; + temp_v0->unk_0C0 = arg2->unk0; + temp_v0->unk_09E = (s16) arg2->unk2; temp_t2 = arg2->unk4; - temp_f6 = temp_t2; - phi_f6 = temp_f6; - if (temp_t2 < 0) { - phi_f6 = temp_f6 + 4294967296.0f; + var_f6 = (f32) temp_t2; + if ((s32) temp_t2 < 0) { + var_f6 += 4294967296.0f; } - temp_v0->unk64 = &D_0D0293D8; - temp_v0->unk0 = phi_f6 / 100.0; - func_80073404(arg0, 0x10, 0x10, &D_0D005770); + temp_v0->unk_064 = &D_0D0293D8; + temp_v0->unk_000 = (f32) ((f64) var_f6 / 100.0); + func_80073404(objectIndex, 0x10U, 0x10U, (s32) &D_0D005770); } #else GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_800703E0.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s32 find_unused_obj_index(void *); // extern -? func_800703E0(s32, ?, void *); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_800703E0(s32, ?, void *); /* extern */ extern ? D_8018CC80; extern s32 D_8018D1F0; extern s32 D_8018D1F8; extern s8 D_8018D230; void func_800704A0(void *arg0) { - s32 temp_s2; - s32 phi_s1; - void *phi_s0; - s32 phi_s2; + s32 var_s1; + s32 var_s2; + void *var_s0; - phi_s1 = 0; - phi_s0 = arg0; - phi_s2 = 0; + var_s2 = 0; + var_s0 = arg0; + var_s1 = 0; do { - func_800703E0(find_unused_obj_index(&D_8018CC80 + (D_8018D1F8 * 4) + phi_s1), 1, phi_s0); - temp_s2 = phi_s2 + 1; - phi_s1 += 4; - phi_s0 += 8; - phi_s2 = temp_s2; - } while (phi_s0->unk8 != 0xFFFF); - D_8018D1F8 = D_8018D1F8 + temp_s2; - D_8018D1F0 = temp_s2; + func_800703E0(find_unused_obj_index(&D_8018CC80 + (D_8018D1F8 * 4) + var_s1), 1, var_s0); + var_s2 += 1; + var_s1 += 4; + var_s0 += 8; + } while (var_s0->unk8 != 0xFFFF); + D_8018D1F8 += var_s2; + D_8018D1F0 = var_s2; D_8018D230 = 1; } #else @@ -1202,31 +1208,29 @@ GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_800704A0.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? find_unused_obj_index(void *); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_80070328(? *); /* extern */ ? func_800704A0(? *); /* extern */ -? func_8008C23C(); /* extern */ extern ? D_8018CC80; -static ? D_800E6A38; /* unable to generate initializer; const */ -static ? D_800E6AA8; /* unable to generate initializer; const */ -static ? D_800E6B00; /* unable to generate initializer; const */ -static ? D_800E6B38; /* unable to generate initializer; const */ -static ? D_800E6BA8; /* unable to generate initializer; const */ -static ? D_800E6C10; /* unable to generate initializer; const */ -static ? D_800E6C80; /* unable to generate initializer; const */ -static ? D_800E6DE0; /* unable to generate initializer; const */ -u16 gCurrentCourseId; /* unable to generate initializer */ +extern s32 D_8018D1F0; +extern s32 D_8018D1F8; +static ? D_800E6A38; /* unable to generate initializer */ +static ? D_800E6AA8; /* unable to generate initializer */ +static ? D_800E6B00; /* unable to generate initializer */ +static ? D_800E6B38; /* unable to generate initializer */ +static ? D_800E6BA8; /* unable to generate initializer */ +static ? D_800E6C10; /* unable to generate initializer */ +static ? D_800E6C80; /* unable to generate initializer */ +static ? D_800E6DE0; /* unable to generate initializer */ +s16 gCurrentCourseId; /* unable to generate initializer */ void func_8007055C(void) { - s32 temp_s1; + s32 var_s0; + s32 var_s1; + s32 var_s4; u16 temp_t6; - s32 phi_s4; - s32 phi_s0; - s32 phi_s1; - s32 phi_s1_2; - temp_t6 = gCurrentCourseId; + temp_t6 = (u16) gCurrentCourseId; switch (temp_t6) { case 0: func_80070328(&D_800E6C10); @@ -1235,24 +1239,21 @@ void func_8007055C(void) { func_80070328(&D_800E6AA8); break; case 5: - phi_s4 = 0x19; - phi_s0 = 0; - if (D_8018EDF3 == ONE_PLAYERS_SELECTED) { - phi_s4 = 0x32; + var_s4 = 0x19; + var_s0 = 0; + if (D_8018EDF3 == 1) { + var_s4 = 0x32; } - phi_s1 = 0; - phi_s1_2 = 0; - if (phi_s4 > 0) { + var_s1 = 0; + if (var_s4 > 0) { do { - find_unused_obj_index(&D_8018CC80 + (D_8018D1F8 * 4) + phi_s0); - temp_s1 = phi_s1 + 1; - phi_s0 += 4; - phi_s1 = temp_s1; - phi_s1_2 = temp_s1; - } while (temp_s1 != phi_s4); + find_unused_obj_index(&D_8018CC80 + (D_8018D1F8 * 4) + var_s0); + var_s1 += 1; + var_s0 += 4; + } while (var_s1 != var_s4); } - D_8018D1F8 += phi_s1_2; - D_8018D1F0 = phi_s1_2; + D_8018D1F8 += var_s1; + D_8018D1F0 = var_s1; break; case 6: func_80070328(&D_800E6B00); @@ -1302,439 +1303,420 @@ void func_80070714(void) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? find_unused_obj_index(s32 *); /* extern */ -? func_80070714(); /* extern */ -? func_80071F6C(? *); /* extern */ -? func_800723A4(s32, ?, s16 *, ? **); /* extern */ -? func_80073444(s32, ? *, ? *, ?, s32); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_800770F0(s32); /* extern */ -? func_800887C0(s32); /* extern */ -extern ? D_06007BB8; -extern ? D_06007DB8; +extern s32 D_06007BB8; +extern s32 D_06007DB8; +extern s16 D_80165750; extern ? *D_80165758; -extern ? D_80165C18; +extern s8 D_80165898; extern ? D_80183EB0; extern ? D_80183EC8; extern ? D_80183EDC; extern ? D_80183F34; extern ? D_80183F3C; extern ? D_80183F50; -extern ? D_8018C030; extern ? D_8018C0B0; +extern s32 D_8018C1B0; extern ? D_8018C278; +extern s32 D_8018C3F0; extern ? D_8018C404; extern ? D_8018C5F0; +extern s32 D_8018C630; extern ? D_8018C6B0; +extern s32 D_8018CF10; +extern f32 D_8018D01C; +extern s8 D_8018D198; extern ? D_8018D1A0; +extern s8 D_8018D1A8; extern ? D_8018D1B3; +extern s8 D_8018D1B8; extern ? D_8018D1C4; -static ? D_800E5728; /* unable to generate initializer; const */ -static ? D_800E5854; /* unable to generate initializer; const */ -static ? D_800E5894; /* unable to generate initializer; const */ -static ? D_800E58EC; /* unable to generate initializer; const */ -static ? D_800E5E14; /* unable to generate initializer; const */ -static ? D_800E5EE6; /* unable to generate initializer; const */ -static u16 D_800E5EE8; /* type too large by 2; unable to generate initializer; const */ -static ? D_800E5FD0; /* unable to generate initializer; const */ -static ? D_800E6360; /* unable to generate initializer; const */ -static ? D_800E641A; /* unable to generate initializer; const */ -u16 gCurrentCourseId; /* unable to generate initializer */ -u16 D_800E5E8C[0x2D]; /* unable to generate initializer; const */ -u16 D_800E5F80[0x28]; /* unable to generate initializer; const */ +extern s32 D_8018D1C8; +extern s32 D_8018D1D0; +extern s32 D_8018D1D8; +extern s32 gGamestate; +static ? D_800E5728; /* unable to generate initializer */ +static ? D_800E5854; /* unable to generate initializer */ +static ? D_800E5894; /* unable to generate initializer */ +static ? D_800E58EC; /* unable to generate initializer */ +static ? D_800E5E14; /* unable to generate initializer */ +static ? D_800E5E8C; /* unable to generate initializer */ +static ? D_800E5EE6; /* unable to generate initializer */ +static ? D_800E5EE8; /* unable to generate initializer */ +static ? D_800E5F80; /* unable to generate initializer */ +static ? D_800E5FD0; /* unable to generate initializer */ +static ? D_800E6360; /* unable to generate initializer */ +static ? D_800E641A; /* unable to generate initializer */ +s16 gCurrentCourseId; /* unable to generate initializer */ void func_80070780(void) { - void *sp4C; - u16 *sp48; - u16 *sp44; - ? *temp_s0_4; - ? *temp_s2_2; + struct_80165C18_entry *sp4C; + ? *sp48; + ? *sp44; + ? *var_s1_2; + ? *var_s1_4; + ? *var_s2_6; + ? *var_v1; + ? *var_v1_2; + ? *var_v1_3; f32 temp_f0; f32 temp_f0_2; f32 temp_f0_3; f32 temp_f0_4; f32 temp_f0_5; + f32 temp_f18; f32 temp_f2; f32 temp_f2_2; - s32 *temp_s0_15; - s32 *temp_s0_16; - s32 *temp_s0_17; - s32 *temp_s1; - s32 *temp_s1_2; - s32 *temp_s1_3; - s32 *temp_s1_4; - s32 *temp_s1_5; - s32 *temp_s2; - s32 *temp_s2_3; + f32 temp_f4; + f32 temp_f4_2; + f32 temp_f6; + f64 temp_f8; + s16 *temp_v1; + s16 temp_f10; + s16 temp_f6_2; + s16 temp_f8_2; + s16 temp_t1; + s16 temp_t4; + s16 temp_t5; + s16 temp_t5_2; + s32 *var_s0; + s32 *var_s0_10; + s32 *var_s0_2; + s32 *var_s0_3; + s32 *var_s0_4; + s32 *var_s0_8; + s32 *var_s0_9; + s32 *var_s1; + s32 *var_s1_10; + s32 *var_s1_11; + s32 *var_s1_12; + s32 *var_s1_13; + s32 *var_s1_14; + s32 *var_s1_3; + s32 *var_s1_5; + s32 *var_s1_6; + s32 *var_s1_7; + s32 *var_s1_8; + s32 *var_s1_9; + s32 *var_s2_2; + s32 *var_s2_3; + s32 *var_s2_4; + s32 *var_s2_5; + s32 *var_s2_7; s32 temp_s0; s32 temp_s0_10; - s32 temp_s0_14; s32 temp_s0_2; s32 temp_s0_3; + s32 temp_s0_4; s32 temp_s0_5; s32 temp_s0_6; s32 temp_s0_7; s32 temp_s0_8; s32 temp_s0_9; - s32 temp_s3; - s32 temp_s3_2; - s32 temp_s3_3; - s32 temp_s3_4; - s32 temp_s3_5; - s32 temp_s3_6; + s32 temp_t9; s32 temp_v0; s32 temp_v0_11; - s8 *temp_s0_11; - s8 *temp_s0_12; - s8 *temp_s0_13; + s32 var_s2; + s32 var_s3; + s32 var_s3_2; + s32 var_s3_3; + s32 var_s3_4; + s32 var_s3_5; + s8 *var_s0_5; + s8 *var_s0_6; + s8 *var_s0_7; s8 temp_v0_10; - u16 *temp_v1_2; - u16 *temp_v1_3; - u16 *temp_v1_4; + struct_80165C18_entry *temp_v0_12; + struct_80165C18_entry *temp_v0_2; + struct_80165C18_entry *temp_v0_3; + struct_80165C18_entry *temp_v0_4; + struct_80165C18_entry *temp_v0_5; + struct_80165C18_entry *temp_v0_6; + struct_80165C18_entry *temp_v0_7; + struct_80165C18_entry *temp_v0_8; + struct_80165C18_entry *temp_v0_9; u16 temp_t6; - void *temp_v0_12; - void *temp_v0_2; - void *temp_v0_3; - void *temp_v0_4; - void *temp_v0_5; - void *temp_v0_6; - void *temp_v0_7; - void *temp_v0_8; - void *temp_v0_9; - void *temp_v1; - s32 *phi_s0; - s32 phi_s3; - s32 *phi_s1; - s32 phi_s2; - s32 phi_s3_2; - s32 *phi_s2_2; - ? *phi_s1_2; - s32 phi_s3_3; - ? *phi_s0_2; - s32 *phi_s1_3; - u16 *phi_v1; - s32 *phi_s2_3; - ? *phi_s1_4; - s32 *phi_s1_5; - u16 *phi_v1_2; - s32 *phi_s2_4; - s32 *phi_s1_6; - u16 *phi_v1_3; - s32 *phi_s1_7; - s32 *phi_s2_5; - s32 *phi_s0_3; - s32 phi_s3_4; - s32 *phi_s0_4; - s32 phi_s3_5; - s8 *phi_s0_5; - s32 *phi_s1_8; - s8 *phi_s0_6; - s32 *phi_s1_9; - s8 *phi_s0_7; - s32 *phi_s1_10; - s32 *phi_s1_11; - ? *phi_s2_6; - s32 *phi_s0_8; - s32 *phi_s1_12; - s32 *phi_s0_9; - s32 *phi_s0_10; - s32 *phi_s1_13; - s32 *phi_s1_14; - s32 *phi_s2_7; - s32 phi_s3_6; - temp_t6 = gCurrentCourseId; + temp_t6 = (u16) gCurrentCourseId; switch (temp_t6) { case 0: - if (gGamestate != CREDITS_SEQUENCE) { - if (gModeSelection == GRAND_PRIX) { + if (gGamestate != 9) { + if (gModeSelection == 0) { func_80070714(); } - phi_s0 = &D_8018C630; - phi_s3 = 0; + var_s0 = &D_8018C630; + var_s3 = 0; if (D_80165738 > 0) { do { - find_unused_obj_index(phi_s0); - func_800723A4(*phi_s0, 0); - temp_s3 = phi_s3 + 1; - phi_s0 += 4; - phi_s3 = temp_s3; - } while (temp_s3 < D_80165738); + find_unused_obj_index(var_s0); + func_800723A4(*var_s0, 0); + var_s3 += 1; + var_s0 += 4; + } while (var_s3 < D_80165738); return; } - /* Duplicate return node #106. Try simplifying control flow for better match */ - return; - } - default: - return; - case 2: - D_80165750 = 0xB; - D_80165758 = &D_800E5894; - temp_v0 = gCCSelection; - if (temp_v0 != CC_50) { - if (temp_v0 != CC_100) { - if (temp_v0 != CC_150) { - if (temp_v0 != CC_EXTRA) { - } - } else { - D_80165750 = 0xC; - D_80165758 = &D_800E58EC; - } - } } else { + default: + return; + } + break; + case 2: + D_80165750 = 0x000B; + D_80165758 = &D_800E5894; + temp_v0 = gCCSelection; + switch (temp_v0) { /* switch 1; irregular */ + case 1: /* switch 1 */ + case 3: /* switch 1 */ + break; + case 0: /* switch 1 */ D_80165750 = 8; D_80165758 = &D_800E5854; + break; + case 2: /* switch 1 */ + D_80165750 = 0x000C; + D_80165758 = &D_800E58EC; + break; } - phi_s1 = &D_80183EA0; - phi_s3_2 = 0; + var_s1 = D_80183EA0; + var_s3_2 = 0; if (D_80165750 > 0) { - phi_s2 = 0; + var_s2 = 0; do { - temp_s0 = *phi_s1; - func_800723A4(temp_s0, 0, &D_80165750, &D_80165758); - temp_v1 = D_80165758 + phi_s2; - temp_s3_2 = phi_s3_2 + 1; - temp_v0_2 = &D_80165C18 + (temp_s0 * 0xE0); - temp_v0_2->unk10 = temp_v1->unk0 * D_8018D01C; - temp_v0_2->unk18 = temp_v1->unk2; - temp_v0_2->unkD5 = temp_v1->unk4; - temp_v0_2->unkA0 = temp_v1->unk6; - phi_s1 += 4; - phi_s2 += 8; - phi_s3_2 = temp_s3_2; - } while (temp_s3_2 < D_80165750); + temp_s0 = *var_s1; + func_800723A4(temp_s0, 0); + temp_v1 = D_80165758 + var_s2; + var_s3_2 += 1; + temp_f6 = (f32) temp_v1->unk0; + temp_v0_2 = &D_80165C18[temp_s0]; + var_s2 += 8; + var_s1 += 4; + temp_v0_2->unk_010[0] = temp_f6 * D_8018D01C; + temp_v0_2->unk_010[2] = (f32) temp_v1->unk2; + temp_v0_2->unk_0D5 = (u8) temp_v1->unk4; + temp_v0_2->unk_0A0 = temp_v1->unk6; + } while (var_s3_2 < D_80165750); + var_s3_2 = 0; } - temp_s0_2 = D_80183F28; - func_800723A4(temp_s0_2, 0, &D_80165750, &D_80165758); - temp_v0_3 = &D_80165C18 + (temp_s0_2 * 0xE0); - temp_v0_3->unk8 = 80.0f; - temp_v0_3->unk4 = D_8018D01C * -68.0; - temp_v0_3->unkC = -1840.0f; - phi_s2_2 = &D_8018BFA8; - phi_s1_2 = &D_800E5728; - phi_s3_3 = 0; + temp_s0_2 = *D_80183F28; + func_800723A4(temp_s0_2, 0); + var_s1_2 = &D_800E5728; + temp_v0_3 = &D_80165C18[temp_s0_2]; + var_s2_2 = D_8018BFA8; + temp_v0_3->unk_004[1] = 80.0f; + temp_v0_3->unk_004[0] = (f32) ((f64) D_8018D01C * -68.0); + temp_v0_3->unk_004[2] = -1840.0f; do { - temp_s0_3 = *phi_s2_2; + temp_s0_3 = *var_s2_2; func_800723A4(temp_s0_3, 0); - temp_v0_4 = &D_80165C18 + (temp_s0_3 * 0xE0); - temp_s3_3 = phi_s3_3 + 1; - temp_v0_4->unk8 = phi_s1_2->unk2; - temp_v0_4->unk4 = phi_s1_2->unk0 * D_8018D01C; - temp_v0_4->unkC0 = 0; - temp_v0_4->unkC = phi_s1_2->unk4; - phi_s2_2 += 4; - phi_s3_3 = temp_s3_3; - if ((phi_s3_3 & 1) != 0) { - temp_v0_4->unkC0 = 0x8000; + temp_t9 = var_s3_2 & 1; + temp_v0_4 = &D_80165C18[temp_s0_3]; + var_s3_2 += 1; + var_s2_2 += 4; + temp_v0_4->unk_004[1] = (f32) var_s1_2->unk2; + temp_v0_4->unk_004[0] = (f32) var_s1_2->unk0 * D_8018D01C; + temp_v0_4->unk_0C0 = 0; + temp_v0_4->unk_004[2] = (f32) var_s1_2->unk4; + if (temp_t9 != 0) { + temp_v0_4->unk_0C0 = 0x8000; } - phi_s1_2 += 6; - } while (temp_s3_3 < 4); - phi_s0_2 = &D_8018C030; + var_s1_2 += 6; + } while (var_s3_2 < 4); + var_s0_2 = D_8018C030; do { - func_80071F6C(phi_s0_2); - temp_s0_4 = phi_s0_2 + 4; - phi_s0_2 = temp_s0_4; - } while (temp_s0_4 != &D_8018C0B0); + func_80071F6C((s32) var_s0_2); + var_s0_2 += 4; + } while (var_s0_2 != &D_8018C0B0); return; case 3: - if (gGamestate != CREDITS_SEQUENCE) { - temp_s0_5 = D_80183EA0.unk0; - func_80073444(temp_s0_5, &D_06007BB8, &D_06007DB8, 0x20, 0x40); - temp_v0_5 = &D_80165C18 + (temp_s0_5 * 0xE0); - temp_v0_5->unkB2 = 0; - temp_v0_5->unkB4 = 0; - temp_v0_5->unkB6 = 0x8000; - func_800723A4(D_80183EA0.unk4, 0); - func_800723A4(D_80183EA0.unk8, 0); + if (gGamestate != 9) { + temp_s0_4 = D_80183EA0->unk0; + func_80073444(temp_s0_4, &D_06007BB8, &D_06007DB8, 0x20U, (u16) 0x00000040); + temp_v0_5 = &D_80165C18[temp_s0_4]; + temp_v0_5->unk_0B2 = 0; + temp_v0_5->unk_0B4 = 0; + temp_v0_5->unk_0B6 = 0x8000; + func_800723A4(D_80183EA0->unk4, 0); + func_800723A4(D_80183EA0->unk8, 0); return; } - /* Duplicate return node #106. Try simplifying control flow for better match */ - return; + break; case 4: - phi_s1_3 = &D_80183EA0; + var_s1_3 = D_80183EA0; do { - func_800723A4(*phi_s1_3, 0); - temp_s1 = phi_s1_3 + 4; - phi_s1_3 = temp_s1; - } while (temp_s1 < &D_80183EB0); - phi_s2_3 = &D_80183F28; - if (gGamestate != CREDITS_SEQUENCE) { - phi_v1 = D_800E5E8C; - phi_s1_4 = &D_800E5E14; + func_800723A4(*var_s1_3, 0); + var_s1_3 += 4; + } while ((u32) var_s1_3 < (u32) &D_80183EB0); + var_s2_3 = D_80183F28; + if (gGamestate != 9) { + var_v1 = &D_800E5E8C; + var_s1_4 = &D_800E5E14; do { - temp_s0_6 = *phi_s2_3; - sp44 = phi_v1; - func_800723A4(temp_s0_6, 0); + temp_s0_5 = *var_s2_3; + sp44 = var_v1; + func_800723A4(temp_s0_5, 0); temp_f2 = D_8018D01C; - temp_f0 = phi_s1_4->unk0 * temp_f2; - temp_v0_6 = &D_80165C18 + (temp_s0_6 * 0xE0); - temp_v0_6->unk10 = temp_f0; - temp_v0_6->unk4 = temp_f0; - temp_f0_2 = phi_s1_4->unk2 + 6.0; - temp_v1_2 = phi_v1 + 6; - temp_v0_6->unk44 = temp_f0_2; - temp_v0_6->unk8 = temp_f0_2; - temp_f0_3 = phi_s1_4->unk4; - temp_v0_6->unkD5 = phi_s1_4->unk6; - temp_v0_6->unk9E = phi_v1->unk4; - temp_v0_6->unk18 = temp_f0_3; - temp_v0_6->unkC = temp_f0_3; - temp_v0_6->unk9C = phi_v1->unk0 * temp_f2; - phi_v1 = temp_v1_2; - phi_s2_3 += 4; - phi_s1_4 += 8; - } while (temp_v1_2 != &D_800E5EE6); + temp_f0 = (f32) var_s1_4->unk0 * temp_f2; + temp_v0_6 = &D_80165C18[temp_s0_5]; + temp_v0_6->unk_010[0] = temp_f0; + temp_v0_6->unk_004[0] = temp_f0; + temp_f10 = var_s1_4->unk4; + temp_t1 = var_s1_4->unk6; + temp_t5 = var_v1->unk4; + temp_f0_2 = (f32) ((f64) var_s1_4->unk2 + 6.0); + temp_f4 = (f32) var_v1->unk0 * temp_f2; + var_v1 += 6; + var_s2_3 += 4; + temp_v0_6->unk_044 = temp_f0_2; + temp_v0_6->unk_004[1] = temp_f0_2; + var_s1_4 += 8; + temp_f0_3 = (f32) temp_f10; + temp_v0_6->unk_0D5 = (u8) temp_t1; + temp_v0_6->unk_09E = temp_t5; + temp_v0_6->unk_010[2] = temp_f0_3; + temp_v0_6->unk_004[2] = temp_f0_3; + temp_v0_6->unk_09C = (s16) (s32) temp_f4; + } while (var_v1 != &D_800E5EE6); return; } - /* Duplicate return node #106. Try simplifying control flow for better match */ - return; + break; case 5: - phi_s1_5 = &D_8018C1B0; + var_s1_5 = &D_8018C1B0; do { - find_unused_obj_index(phi_s1_5); - temp_s1_2 = phi_s1_5 + 4; - phi_s1_5 = temp_s1_2; - } while (temp_s1_2 < &D_8018C278); - phi_s1_6 = &D_80183EA0; - if (gGamestate != CREDITS_SEQUENCE) { - phi_v1_2 = &D_800E5EE8; - phi_s2_4 = &D_80183F28; + find_unused_obj_index(var_s1_5); + var_s1_5 += 4; + } while ((u32) var_s1_5 < (u32) &D_8018C278); + var_s1_6 = D_80183EA0; + if (gGamestate != 9) { + var_v1_2 = &D_800E5EE8; + var_s2_4 = D_80183F28; do { - temp_s0_7 = *phi_s2_4; - sp44 = phi_v1_2; + temp_s0_6 = *var_s2_4; + sp44 = var_v1_2; + func_800723A4(temp_s0_6, 0); + temp_v0_7 = &D_80165C18[temp_s0_6]; + temp_s0_7 = *var_s1_6; + temp_v0_7->unk_010[0] = (f32) var_v1_2->unk0 * D_8018D01C; + temp_v0_7->unk_010[2] = (f32) var_v1_2->unk4; + temp_v0_7->unk_010[1] = (f32) ((f64) var_v1_2->unk2 + 5.0 + 3.0); func_800723A4(temp_s0_7, 0); - temp_v0_7 = &D_80165C18 + (temp_s0_7 * 0xE0); - temp_s0_8 = *phi_s1_6; - temp_v0_7->unk10 = phi_v1_2->unk0 * D_8018D01C; - temp_v0_7->unk18 = phi_v1_2->unk4; - temp_v0_7->unk14 = phi_v1_2->unk2 + 5.0 + 3.0; - func_800723A4(temp_s0_8, 0); - temp_v0_8 = &D_80165C18 + (temp_s0_8 * 0xE0); - temp_v1_3 = phi_v1_2 + 8; - temp_v0_8->unkD5 = phi_v1_2->unk6; - temp_v0_8->unk10 = phi_v1_2->unk0 * D_8018D01C; - temp_v0_8->unk14 = phi_v1_2->unk2 + 3.0; - temp_v0_8->unk18 = phi_v1_2->unk4; - phi_v1_2 = temp_v1_3; - phi_s2_4 += 4; - phi_s1_6 += 4; - } while (temp_v1_3 != D_800E5F80); + temp_t4 = var_v1_2->unk4; + temp_v0_8 = &D_80165C18[temp_s0_7]; + temp_f8 = (f64) var_v1_2->unk2; + temp_f4_2 = (f32) var_v1_2->unk0 * D_8018D01C; + temp_t5_2 = var_v1_2->unk6; + var_v1_2 += 8; + var_s1_6 += 4; + var_s2_4 += 4; + temp_v0_8->unk_0D5 = (u8) temp_t5_2; + temp_v0_8->unk_010[0] = temp_f4_2; + temp_v0_8->unk_010[1] = (f32) (temp_f8 + 3.0); + temp_v0_8->unk_010[2] = (f32) temp_t4; + } while (var_v1_2 != &D_800E5F80); return; } - /* Duplicate return node #106. Try simplifying control flow for better match */ - return; + break; case 6: - phi_s1_7 = &D_80183EA0; - if (gGamestate != CREDITS_SEQUENCE) { - phi_v1_3 = D_800E5F80; + var_s1_7 = D_80183EA0; + if (gGamestate != 9) { + var_v1_3 = &D_800E5F80; do { - temp_s0_9 = *phi_s1_7; - sp48 = phi_v1_3; - func_800723A4(temp_s0_9, 0); + temp_s0_8 = *var_s1_7; + sp48 = var_v1_3; + func_800723A4(temp_s0_8, 0); temp_f2_2 = D_8018D01C; - temp_v0_9 = &D_80165C18 + (temp_s0_9 * 0xE0); - temp_f0_4 = phi_v1_3->unk0 * temp_f2_2; - temp_v1_4 = phi_v1_3 + 8; - temp_v0_9->unk10 = temp_f0_4; - temp_v0_9->unk4 = temp_f0_4; - temp_f0_5 = phi_v1_3->unk4; - temp_v0_9->unk1C = phi_v1_3->unk2 * temp_f2_2; - temp_v0_9->unk18 = temp_f0_5; - temp_v0_9->unkC = temp_f0_5; - temp_v0_9->unk24 = phi_v1_3->unk6; - phi_v1_3 = temp_v1_4; - phi_s1_7 += 4; - } while (temp_v1_4 != &D_800E5FD0); + temp_f6_2 = var_v1_3->unk4; + temp_v0_9 = &D_80165C18[temp_s0_8]; + temp_f8_2 = var_v1_3->unk6; + temp_f18 = (f32) var_v1_3->unk2; + temp_f0_4 = (f32) var_v1_3->unk0 * temp_f2_2; + var_v1_3 += 8; + var_s1_7 += 4; + temp_v0_9->unk_010[0] = temp_f0_4; + temp_v0_9->unk_004[0] = temp_f0_4; + temp_f0_5 = (f32) temp_f6_2; + temp_v0_9->unk_01C[0] = temp_f18 * temp_f2_2; + temp_v0_9->unk_010[2] = temp_f0_5; + temp_v0_9->unk_004[2] = temp_f0_5; + temp_v0_9->unk_01C[2] = (f32) temp_f8_2; + } while (var_v1_3 != &D_800E5FD0); } - phi_s2_5 = &D_80183F28; + var_s2_5 = D_80183F28; do { - temp_s0_10 = *phi_s2_5; - func_800723A4(temp_s0_10, 0); - temp_s2 = phi_s2_5 + 4; - phi_s2_5 = temp_s2; - if (phi_s2_5 < &D_80183F3C) { - (&D_80165C18 + (temp_s0_10 * 0xE0))->unkD5 = 0; + temp_s0_9 = *var_s2_5; + func_800723A4(temp_s0_9, 0); + var_s2_5 += 4; + if ((u32) var_s2_5 < (u32) &D_80183F3C) { + D_80165C18[temp_s0_9].unk_0D5 = 0; } else { - (&D_80165C18 + (temp_s0_10 * 0xE0))->unkD5 = 1; + D_80165C18[temp_s0_9].unk_0D5 = 1; } - } while (temp_s2 != &D_80183F50); + } while (var_s2_5 != &D_80183F50); return; case 7: - if (gGamestate != CREDITS_SEQUENCE) { - if (gModeSelection == GRAND_PRIX) { + if (gGamestate != 9) { + if (gModeSelection == 0) { func_80070714(); } - phi_s0_3 = &D_8018C630; - phi_s3_4 = 0; + var_s0_3 = &D_8018C630; + var_s3_3 = 0; if (D_80165738 > 0) { do { - find_unused_obj_index(phi_s0_3); - func_800723A4(*phi_s0_3, 0); - temp_s3_4 = phi_s3_4 + 1; - phi_s0_3 += 4; - phi_s3_4 = temp_s3_4; - } while (temp_s3_4 < D_80165738); + find_unused_obj_index(var_s0_3); + func_800723A4(*var_s0_3, 0); + var_s3_3 += 1; + var_s0_3 += 4; + } while (var_s3_3 < D_80165738); return; } - /* Duplicate return node #106. Try simplifying control flow for better match */ - return; } - /* Duplicate return node #106. Try simplifying control flow for better match */ - return; + break; case 8: - if (gGamestate != CREDITS_SEQUENCE) { - if (gModeSelection == GRAND_PRIX) { + if (gGamestate != 9) { + if (gModeSelection == 0) { func_80070714(); } D_80165898 = 0; - func_800723A4(D_80183EA0.unk0, 0); - phi_s0_4 = &D_8018C630; - phi_s3_5 = 0; + func_800723A4(D_80183EA0->unk0, 0); + var_s0_4 = &D_8018C630; + var_s3_4 = 0; if (D_80165738 > 0) { do { - find_unused_obj_index(phi_s0_4); - func_800723A4(*phi_s0_4, 0); - temp_s3_5 = phi_s3_5 + 1; - phi_s0_4 += 4; - phi_s3_5 = temp_s3_5; - } while (temp_s3_5 < D_80165738); + find_unused_obj_index(var_s0_4); + func_800723A4(*var_s0_4, 0); + var_s3_4 += 1; + var_s0_4 += 4; + } while (var_s3_4 < D_80165738); return; } - /* Duplicate return node #106. Try simplifying control flow for better match */ - return; } - /* Duplicate return node #106. Try simplifying control flow for better match */ - return; + break; case 9: - if (gGamestate != CREDITS_SEQUENCE) { + if (gGamestate != 9) { temp_v0_10 = D_8018EDF3; - phi_s1_8 = &D_80183EA0; - if ((temp_v0_10 == ONE_PLAYERS_SELECTED) || ((temp_v0_10 == TWO_PLAYERS_SELECTED) && (gModeSelection == VERSUS))) { + var_s1_8 = D_80183EA0; + if ((temp_v0_10 == 1) || ((temp_v0_10 == 2) && (gModeSelection == (s32) 2))) { temp_v0_11 = gCCSelection; - if (temp_v0_11 != CC_50) { - if (temp_v0_11 != CC_100) { - if (temp_v0_11 != CC_150) { - if (temp_v0_11 != CC_EXTRA) { - - } else { - D_8018D1C8 = 5; - D_8018D1D0 = 8; - D_8018D1D8 = 8; - } - } else { - D_8018D1C8 = 5; - D_8018D1D0 = 8; - D_8018D1D8 = 0xA; - } - } else { - D_8018D1C8 = 5; - D_8018D1D0 = 8; - D_8018D1D8 = 8; - } - } else { + switch (temp_v0_11) { /* switch 2; irregular */ + case 0: /* switch 2 */ D_8018D1C8 = 4; D_8018D1D0 = 6; goto block_75; + case 1: /* switch 2 */ + D_8018D1C8 = 5; + D_8018D1D0 = 8; + D_8018D1D8 = 8; + break; + case 2: /* switch 2 */ + D_8018D1C8 = 5; + D_8018D1D0 = 8; + D_8018D1D8 = 0x0000000A; + break; + case 3: /* switch 2 */ + D_8018D1C8 = 5; + D_8018D1D0 = 8; + D_8018D1D8 = 8; + break; } } else { D_8018D1C8 = 4; @@ -1742,119 +1724,103 @@ void func_80070780(void) { block_75: D_8018D1D8 = 6; } - phi_s0_5 = &D_8018D198; + var_s0_5 = &D_8018D198; do { - *phi_s0_5 = 0; - find_unused_obj_index(phi_s1_8); - temp_s0_11 = phi_s0_5 + 1; - phi_s0_5 = temp_s0_11; - phi_s1_8 += 4; - } while (temp_s0_11 < &D_8018D1A0); - phi_s0_6 = &D_8018D1A8; - phi_s1_9 = &D_80183EA0; + *var_s0_5 = 0; + find_unused_obj_index(var_s1_8); + var_s0_5 += 1; + var_s1_8 += 4; + } while ((u32) var_s0_5 < (u32) &D_8018D1A0); + var_s0_6 = &D_8018D1A8; + var_s1_9 = D_80183EA0; do { - *phi_s0_6 = 0; - find_unused_obj_index(phi_s1_9); - temp_s0_12 = phi_s0_6 + 1; - phi_s0_6 = temp_s0_12; - phi_s1_9 += 4; - } while (temp_s0_12 < &D_8018D1B3); - phi_s0_7 = &D_8018D1B8; - phi_s1_10 = &D_80183EA0; + *var_s0_6 = 0; + find_unused_obj_index(var_s1_9); + var_s0_6 += 1; + var_s1_9 += 4; + } while ((u32) var_s0_6 < (u32) &D_8018D1B3); + var_s0_7 = &D_8018D1B8; + var_s1_10 = D_80183EA0; do { - *phi_s0_7 = 0; - find_unused_obj_index(phi_s1_10); - temp_s0_13 = phi_s0_7 + 1; - phi_s0_7 = temp_s0_13; - phi_s1_10 += 4; - } while (temp_s0_13 < &D_8018D1C4); - phi_s1_11 = &D_8018C1B0; - phi_s2_6 = &D_800E6360; + *var_s0_7 = 0; + find_unused_obj_index(var_s1_10); + var_s0_7 += 1; + var_s1_10 += 4; + } while ((u32) var_s0_7 < (u32) &D_8018D1C4); + var_s2_6 = &D_800E6360; + var_s1_11 = &D_8018C1B0; do { - find_unused_obj_index(phi_s1_11); - temp_s0_14 = *phi_s1_11; - func_800723A4(temp_s0_14, 0); - temp_v0_12 = &D_80165C18 + (temp_s0_14 * 0xE0); + find_unused_obj_index(var_s1_11); + temp_s0_10 = *var_s1_11; + func_800723A4(temp_s0_10, 0); + temp_v0_12 = &D_80165C18[temp_s0_10]; sp4C = temp_v0_12; - temp_v0_12->unkC = phi_s2_6->unk4; - temp_v0_12->unk4 = phi_s2_6->unk0 * D_8018D01C; - func_800887C0(temp_s0_14); - temp_s2_2 = phi_s2_6 + 6; - temp_v0_12->unk0 = 0.7f; - phi_s1_11 += 4; - phi_s2_6 = temp_s2_2; - } while (temp_s2_2 < &D_800E641A); - phi_s0_8 = &D_8018C3F0; + temp_v0_12->unk_004[2] = (f32) var_s2_6->unk4; + temp_v0_12->unk_004[0] = (f32) var_s2_6->unk0 * D_8018D01C; + func_800887C0(temp_s0_10); + var_s2_6 += 6; + var_s1_11 += 4; + temp_v0_12->unk_000 = 0.7f; + } while ((u32) var_s2_6 < (u32) &D_800E641A); + var_s0_8 = &D_8018C3F0; do { - find_unused_obj_index(phi_s0_8); - temp_s0_15 = phi_s0_8 + 4; - phi_s0_8 = temp_s0_15; - } while (temp_s0_15 != &D_8018C5F0); + find_unused_obj_index(var_s0_8); + var_s0_8 += 4; + } while (var_s0_8 != &D_8018C5F0); return; } - /* Duplicate return node #106. Try simplifying control flow for better match */ - return; + break; case 11: - if (gGamestate != CREDITS_SEQUENCE) { + if (gGamestate != 9) { find_unused_obj_index(&D_8018CF10); func_800723A4(D_8018CF10, 0); - phi_s1_12 = &D_8018C1B0; + var_s1_12 = &D_8018C1B0; do { - find_unused_obj_index(phi_s1_12); - temp_s1_3 = phi_s1_12 + 4; - phi_s1_12 = temp_s1_3; - } while (temp_s1_3 < &D_8018C278); - phi_s0_9 = &D_8018C3F0; + find_unused_obj_index(var_s1_12); + var_s1_12 += 4; + } while ((u32) var_s1_12 < (u32) &D_8018C278); + var_s0_9 = &D_8018C3F0; do { - find_unused_obj_index(phi_s0_9); - temp_s0_16 = phi_s0_9 + 4; - phi_s0_9 = temp_s0_16; - } while (temp_s0_16 < &D_8018C404); - phi_s0_10 = &D_8018C630; + find_unused_obj_index(var_s0_9); + var_s0_9 += 4; + } while ((u32) var_s0_9 < (u32) &D_8018C404); + var_s0_10 = &D_8018C630; do { - find_unused_obj_index(phi_s0_10); - temp_s0_17 = phi_s0_10 + 4; - phi_s0_10 = temp_s0_17; - } while (temp_s0_17 != &D_8018C6B0); + find_unused_obj_index(var_s0_10); + var_s0_10 += 4; + } while (var_s0_10 != &D_8018C6B0); return; } - /* Duplicate return node #106. Try simplifying control flow for better match */ - return; + break; case 12: - phi_s1_13 = &D_80183EA0; + var_s1_13 = D_80183EA0; do { - func_800723A4(*phi_s1_13, 0); - temp_s1_4 = phi_s1_13 + 4; - phi_s1_13 = temp_s1_4; - } while (temp_s1_4 != &D_80183EDC); + func_800723A4(*var_s1_13, 0); + var_s1_13 += 4; + } while (var_s1_13 != &D_80183EDC); return; case 13: - phi_s1_14 = &D_80183EA0; - if (gGamestate != CREDITS_SEQUENCE) { + var_s1_14 = D_80183EA0; + if (gGamestate != 9) { do { - func_800723A4(*phi_s1_14, 0); - temp_s1_5 = phi_s1_14 + 4; - phi_s1_14 = temp_s1_5; - } while (temp_s1_5 < &D_80183EC8); - phi_s2_7 = &D_80183F28; + func_800723A4(*var_s1_14, 0); + var_s1_14 += 4; + } while ((u32) var_s1_14 < (u32) &D_80183EC8); + var_s2_7 = D_80183F28; do { - func_800723A4(*phi_s2_7, 0); - temp_s2_3 = phi_s2_7 + 4; - phi_s2_7 = temp_s2_3; - } while (temp_s2_3 != &D_80183F34); + func_800723A4(*var_s2_7, 0); + var_s2_7 += 4; + } while (var_s2_7 != &D_80183F34); return; } - /* Duplicate return node #106. Try simplifying control flow for better match */ - return; + break; case 18: - phi_s3_6 = 0; + var_s3_5 = 0; do { - func_800770F0(phi_s3_6); - temp_s3_6 = phi_s3_6 + 1; - phi_s3_6 = temp_s3_6; - } while (temp_s3_6 != 8); - /* Duplicate return node #106. Try simplifying control flow for better match */ - return; + func_800770F0(var_s3_5); + var_s3_5 += 1; + } while (var_s3_5 != 8); + break; } } #else @@ -1862,10 +1828,8 @@ GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_80070780.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 792017ad9d422c2467bd42686f383a5c41f41c75 -? find_unused_obj_index(s32 *); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_8006EE7C(s32); /* extern */ -? func_80070190(); /* extern */ ? func_8007055C(); /* extern */ ? func_80070780(); /* extern */ extern s32 D_80165638; @@ -1913,21 +1877,17 @@ extern s32 D_8018D3F0; extern s32 D_8018D3F4; void func_80071428(void) { - ? *temp_a0; - ? *temp_a3; - ? *temp_v0; - ? *temp_v1; + ? *var_a0; + ? *var_a1; + ? *var_a2; + ? *var_a3; + ? *var_v0; + ? *var_v1; f32 temp_f0; f32 temp_f0_2; f32 temp_f0_3; - s32 temp_v1_2; - f32 phi_f0; - ? *phi_a1; - ? *phi_a2; - ? *phi_v1; - ? *phi_a0; - ? *phi_a3; - ? *phi_v0; + f32 var_f0; + s32 temp_v1; D_8018D140 = 0; D_8018D150 = 0; @@ -1941,106 +1901,102 @@ void func_80071428(void) { func_8007055C(); func_8007055C(); func_80070780(); - D_8018CA70->speedometerX = 0x156; - D_8018CA70->speedometerY = 0x106; + D_8018CA70->speedometerX = 0x0156; + D_8018CA70->speedometerY = 0x0106; D_8018CFEC = (f32) (D_8018CA70->speedometerX + 0x18); D_8018CFF4 = (f32) (D_8018CA70->speedometerY + 6); D_8016579E = 0xDD00; - D_8018CA70->rankX = 0x34; - D_8018CA70->rankY = 0xC8; + D_8018CA70->rankX = 0x0034; + D_8018CA70->rankY = 0x00C8; D_8018CA70->slideRankX = 0; D_8018CA70->slideRankY = 0; - D_8018CA70->timerX = 0x12C; - D_8018CA70->lap1CompletionTimeX = 0x12C; - D_8018CA70->lap2CompletionTimeX = 0x12C; - D_8018CA70->timerY = 0x11; - D_8018CA70->lapX = -0x28; - D_8018CA70->lapAfterImage1X = -0x28; - D_8018CA70->lapAfterImage2X = -0x28; - D_8018CA70->lapY = 0x19; - D_8018CA70->itemBoxX = 0xA0; - D_8018CA70->itemBoxY = -0x20; + D_8018CA70->timerX = 0x012C; + D_8018CA70->lap1CompletionTimeX = 0x012C; + D_8018CA70->lap2CompletionTimeX = 0x012C; + D_8018CA70->timerY = 0x0011; + D_8018CA70->lapX = -0x0028; + D_8018CA70->lapAfterImage1X = -0x0028; + D_8018CA70->lapAfterImage2X = -0x0028; + D_8018CA70->lapY = 0x0019; + D_8018CA70->itemBoxX = 0x00A0; + D_8018CA70->itemBoxY = -0x0020; D_8018CA70->slideItemBoxX = 0; D_8018CA70->slideItemBoxY = 0; D_8018CA70->stagingPosition = (s16) *gPlayerPositions; func_8006EE7C(D_80183E88); - phi_f0 = 35.0f; - phi_a1 = &D_8018D050; - phi_a2 = &D_8018D0F0; - phi_v1 = &D_8018D0C8; - phi_a0 = &D_8018D028; - phi_a3 = &D_8018D0A0; - phi_v0 = &D_8018D078; + var_f0 = 35.0f; + var_v0 = &D_8018D078; + var_a3 = &D_8018D0A0; + var_a2 = &D_8018D0F0; + var_a1 = &D_8018D050; + var_a0 = &D_8018D028; + var_v1 = &D_8018D0C8; do { - phi_a1->unk0 = phi_f0; - phi_a2->unk0 = phi_f0; - temp_v0 = phi_v0 + 0x10; - phi_v1->unk4 = 40.0f; - temp_f0 = (f32) ((f64) phi_f0 + 32.0); - phi_a0->unk4 = -24.0f; - phi_a3->unk4 = 0.0f; - temp_v0->unk-C = 0.0f; - phi_a1->unk4 = temp_f0; - phi_a2->unk4 = temp_f0; - phi_v1->unk8 = 40.0f; - phi_a0->unk8 = -24.0f; + var_a1->unk0 = var_f0; + var_a2->unk0 = var_f0; + var_v0 += 0x10; + var_v1->unk4 = 40.0f; + temp_f0 = (f32) ((f64) var_f0 + 32.0); + var_a0->unk4 = -24.0f; + var_a3->unk4 = 0.0f; + var_v0->unk-C = 0.0f; + var_a1->unk4 = temp_f0; + var_a2->unk4 = temp_f0; + var_v1->unk8 = 40.0f; + var_a0->unk8 = -24.0f; temp_f0_2 = (f32) ((f64) temp_f0 + 32.0); - phi_a3->unk8 = 0.0f; - temp_v0->unk-8 = 0.0f; - phi_v1->unkC = 40.0f; - phi_a1->unk8 = temp_f0_2; - phi_a2->unk8 = temp_f0_2; - phi_a0->unkC = -24.0f; - phi_a3->unkC = 0.0f; + var_a3->unk8 = 0.0f; + var_v0->unk-8 = 0.0f; + var_v1->unkC = 40.0f; + var_a1->unk8 = temp_f0_2; + var_a2->unk8 = temp_f0_2; + var_a0->unkC = -24.0f; + var_a3->unkC = 0.0f; temp_f0_3 = (f32) ((f64) temp_f0_2 + 32.0); - temp_v0->unk-4 = 0.0f; - temp_v1 = phi_v1 + 0x10; - temp_a0 = phi_a0 + 0x10; - phi_a1->unkC = temp_f0_3; - phi_a2->unkC = temp_f0_3; - temp_a3 = phi_a3 + 0x10; - temp_v1->unk-10 = 40.0f; - temp_a0->unk-10 = -24.0f; - temp_a3->unk-10 = 0.0f; - temp_v0->unk-10 = 0.0f; - phi_f0 = (f32) ((f64) temp_f0_3 + 32.0); - phi_a1 += 0x10; - phi_a2 += 0x10; - phi_v1 = temp_v1; - phi_a0 = temp_a0; - phi_a3 = temp_a3; - phi_v0 = temp_v0; - } while (temp_v0 != &D_8018D098); + var_v0->unk-4 = 0.0f; + var_v1 += 0x10; + var_a0 += 0x10; + var_a1->unkC = temp_f0_3; + var_a2->unkC = temp_f0_3; + var_a1 += 0x10; + var_a2 += 0x10; + var_f0 = (f32) ((f64) temp_f0_3 + 32.0); + var_a3 += 0x10; + var_v1->unk-10 = 40.0f; + var_a0->unk-10 = -24.0f; + var_a3->unk-10 = 0.0f; + var_v0->unk-10 = 0.0f; + } while (var_v0 != &D_8018D098); D_8018CFD4 = 1.0f; - D_8018D3DC = 0xFF; - D_8018D3D8 = 0xFF; - D_8018D3D4 = 0xFF; - D_8018D3E0 = 0xA0; - D_8018D3E4 = 0xFF; - D_8018D3E8 = 0xFF; - D_8018D3EC = 0xFF; - D_8018D3F0 = 0xFF; + D_8018D3DC = 0x000000FF; + D_8018D3D8 = 0x000000FF; + D_8018D3D4 = 0x000000FF; + D_8018D3E0 = 0x000000A0; + D_8018D3E4 = 0x000000FF; + D_8018D3E8 = 0x000000FF; + D_8018D3EC = 0x000000FF; + D_8018D3F0 = 0x000000FF; D_8018D3F4 = 1; - D_8018CA70->unk_4C = 0x78; - D_8018CA70->unk_4A = 0xA0; + D_8018CA70->unk_4C = 0x0078; + D_8018CA70->unk_4A = 0x00A0; D_8018CA70->rankScaling = 0.5f; D_801656B0 = 0; - D_80165708 = 0x28; + D_80165708 = 0x0028; D_8018D00C = 5.0f; D_8018D388 = 4; - D_8018D380 = (s32) 0xA0; - D_8018D384 = (s32) 0x78; - D_8018D3C4 = 0x32; - D_8018D3BC = (s32) 0x28; - temp_v1_2 = gModeSelection; - D_8018D3C0 = 0x50; - D_801657A2 = 0x333; - switch (temp_v1_2) { /* irregular */ + D_8018D380 = (s32) 0x00A0; + D_8018D384 = (s32) 0x0078; + D_8018D3C4 = 0x00000032; + D_8018D3BC = (s32) 0x0028; + temp_v1 = gModeSelection; + D_8018D3C0 = 0x00000050; + D_801657A2 = 0x0333; + switch (temp_v1) { /* irregular */ case 0: D_8018D158 = 8; return; case 1: - D_80165638 = (func_800B4F2C(0, 40.0f, &D_8018D3DC, 1, 0x78, 0x28) & 0xFFFFF) - 1; + D_80165638 = (func_800B4F2C(0, 40.0f, &D_8018D3DC, 1, 0x0078, 0x0028) & 0xFFFFF) - 1; D_80165648 = func_800B4E24(0) & 0xFFFFF; D_80165888 = 1; D_80165890 = 1; @@ -2053,10 +2009,8 @@ GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_80071428.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 792017ad9d422c2467bd42686f383a5c41f41c75 -? find_unused_obj_index(s32 *); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_8006EE7C(s32); /* extern */ -? func_80070190(); /* extern */ ? func_8007055C(); /* extern */ ? func_80070780(); /* extern */ extern s16 D_801657A2; @@ -2082,45 +2036,45 @@ void func_80071818(void) { func_8007055C(); func_8007055C(); func_80070780(); - D_8018CA70->itemBoxX = -0x52; - D_8018CA70->itemBoxY = 0x32; + D_8018CA70->itemBoxX = -0x0052; + D_8018CA70->itemBoxY = 0x0032; D_8018CA70->slideItemBoxX = 0; D_8018CA70->slideItemBoxY = 0; - D_8018CA70->unk_4A = 0x50; - D_8018CA70->unk_4C = 0x78; - D_8018CA70->rankX = 0x32; - D_8018CA70->rankY = 0xD2; + D_8018CA70->unk_4A = 0x0050; + D_8018CA70->unk_4C = 0x0078; + D_8018CA70->rankX = 0x0032; + D_8018CA70->rankY = 0x00D2; D_8018CA70->slideRankX = 0; D_8018CA70->slideRankY = 0; - D_8018CA70->timerX = 0x4B; - D_8018CA70->timerY = 0x10; - D_8018CA70->lapX = 0x67; - D_8018CA70->lapY = 0x28; + D_8018CA70->timerX = 0x004B; + D_8018CA70->timerY = 0x0010; + D_8018CA70->lapX = 0x0067; + D_8018CA70->lapY = 0x0028; func_8006EE7C(D_80183E88); - D_8018CA70->unkC6 = 0x43; - D_8018CA70->unkC8 = 0x32; + D_8018CA70->unkC6 = 0x0043; + D_8018CA70->unkC8 = 0x0032; D_8018CA70->unkCA = 0; D_8018CA70->unkCC = 0; - D_8018CA70->unkCE = 0xF0; - D_8018CA70->unkD0 = 0x78; - D_8018CA70->unkE6 = 0xC8; - D_8018CA70->unkE8 = 0xD2; + D_8018CA70->unkCE = 0x00F0; + D_8018CA70->unkD0 = 0x0078; + D_8018CA70->unkE6 = 0x00C8; + D_8018CA70->unkE8 = 0x00D2; D_8018CA70->unkEA = 0; D_8018CA70->unkEC = 0; - D_8018CA70->unkD2 = 0xDC; - D_8018CA70->unkDC = 0x10; - D_8018CA70->unkDE = 0xF7; - D_8018CA70->unkE4 = 0x28; + D_8018CA70->unkD2 = 0x00DC; + D_8018CA70->unkDC = 0x0010; + D_8018CA70->unkDE = 0x00F7; + D_8018CA70->unkE4 = 0x0028; func_8006EE7C(D_80183E8C); D_8018CA70->unk88 = 0.5f; D_8018CA70->stagingPosition = (s16) gPlayerPositions->unk0; D_8018CA70->unkEE = (s16) gPlayerPositions->unk4; D_8018CA70->rankScaling = D_8018CA70->unk88; - D_8018D3C4 = 0x1E; - D_8018D3BC = 0x18; + D_8018D3C4 = 0x0000001E; + D_8018D3BC = 0x00000018; temp_v1 = gModeSelection; - D_8018D3C0 = 0x28; - D_801657A2 = 0x666; + D_8018D3C0 = 0x00000028; + D_801657A2 = 0x0666; switch (temp_v1) { /* irregular */ case 0: D_8018D158 = 8; @@ -2138,10 +2092,8 @@ GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_80071818.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 792017ad9d422c2467bd42686f383a5c41f41c75 -? find_unused_obj_index(s32 *); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_8006EE7C(s32, s16, s16, s16); /* extern */ -? func_80070190(); /* extern */ ? func_8007055C(); /* extern */ ? func_80070780(); /* extern */ extern s16 D_801657A2; @@ -2167,49 +2119,49 @@ void func_80071A20(void) { func_8007055C(); func_8007055C(); func_80070780(); - D_8018CA70->itemBoxY = 0x22; - D_8018CA70->itemBoxX = -0x53; + D_8018CA70->itemBoxY = 0x0022; + D_8018CA70->itemBoxX = -0x0053; D_8018CA70->slideItemBoxX = 0; D_8018CA70->slideItemBoxY = 0; - D_8018CA70->unk_4A = 0xA0; - D_8018CA70->unk_4C = 0x3C; - D_8018CA70->rankX = 0x34; - D_8018CA70->rankY = 0x62; + D_8018CA70->unk_4A = 0x00A0; + D_8018CA70->unk_4C = 0x003C; + D_8018CA70->rankX = 0x0034; + D_8018CA70->rankY = 0x0062; D_8018CA70->slideRankX = 0; D_8018CA70->slideRankY = 0; - D_8018CA70->timerX = 0xEA; - D_8018CA70->timerY = 0x10; - D_8018CA70->lapX = 0x101; - D_8018CA70->lapY = 0x6A; - D_8018CA70->unkC6 = -0x53; - D_8018CA70->unkC8 = 0x8F; + D_8018CA70->timerX = 0x00EA; + D_8018CA70->timerY = 0x0010; + D_8018CA70->lapX = 0x0101; + D_8018CA70->lapY = 0x006A; + D_8018CA70->unkC6 = -0x0053; + D_8018CA70->unkC8 = 0x008F; D_8018CA70->unkCA = 0; D_8018CA70->unkCC = 0; - D_8018CA70->unkCE = 0xA0; - D_8018CA70->unkD0 = 0xB4; - D_8018CA70->unkE6 = 0x34; - D_8018CA70->unkE8 = 0xD2; + D_8018CA70->unkCE = 0x00A0; + D_8018CA70->unkD0 = 0x00B4; + D_8018CA70->unkE6 = 0x0034; + D_8018CA70->unkE8 = 0x00D2; D_8018CA70->unkEA = 0; D_8018CA70->unkEC = 0; - D_8018CA70->unkD2 = 0xEA; - D_8018CA70->unkDC = 0x7F; - D_8018CA70->unkDE = 0x101; - D_8018CA70->unkE4 = 0xDA; + D_8018CA70->unkD2 = 0x00EA; + D_8018CA70->unkDC = 0x007F; + D_8018CA70->unkDE = 0x0101; + D_8018CA70->unkE4 = 0x00DA; if (gModeSelection == 3) { - D_8018CA70->itemBoxY = 0x5E; - D_8018CA70->unkC8 = 0xD0; + D_8018CA70->itemBoxY = 0x005E; + D_8018CA70->unkC8 = 0x00D0; } D_8018CA70->unk88 = 0.5f; D_8018CA70->stagingPosition = (s16) gPlayerPositions->unk0; D_8018CA70->unkEE = (s16) gPlayerPositions->unk4; D_8018CA70->rankScaling = D_8018CA70->unk88; - func_8006EE7C(D_80183E88, 0x34, 0xEA, 0x101); + func_8006EE7C(D_80183E88, 0x0034, 0x00EA, 0x0101); func_8006EE7C(D_80183E8C); - D_8018D3C4 = 0x1E; - D_8018D3BC = 0x18; + D_8018D3C4 = 0x0000001E; + D_8018D3BC = 0x00000018; temp_v0 = gModeSelection; - D_8018D3C0 = 0x28; - D_801657A2 = 0x666; + D_8018D3C0 = 0x00000028; + D_801657A2 = 0x0666; switch (temp_v0) { /* irregular */ case 0: D_8018D158 = 8; @@ -2227,10 +2179,8 @@ GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_80071A20.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 792017ad9d422c2467bd42686f383a5c41f41c75 -? find_unused_obj_index(s32 *); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_8006EE7C(s32, s16, s16, s16); /* extern */ -? func_80070190(); /* extern */ ? func_80070780(); /* extern */ extern s16 D_801657A2; extern s32 D_80183DA0; @@ -2246,7 +2196,6 @@ extern s32 D_8018D158; extern s32 D_8018D3BC; extern s32 D_8018D3C0; extern s32 D_8018D3C4; -extern s8 D_8018EDF3; void func_80071C28(void) { f32 temp_f0; @@ -2263,67 +2212,67 @@ void func_80071C28(void) { find_unused_obj_index(&D_80183E94); func_80070190(); func_80070780(); - D_8018CA70->unkE6 = 0x11A; - D_8018CA70->unk16C = 0xD2; - D_8018CA70->unk14C = 0x2D; - D_8018CA70->unk168 = 0xD4; - D_8018CA70->unk176 = 0xC0; - D_8018CA70->unk1D0 = 0x2D; - D_8018CA70->unk1EE = 0x11A; - D_8018CA70->itemBoxX = -0x36; - D_8018CA70->itemBoxY = 0x36; + D_8018CA70->unkE6 = 0x011A; + D_8018CA70->unk16C = 0x00D2; + D_8018CA70->unk14C = 0x002D; + D_8018CA70->unk168 = 0x00D4; + D_8018CA70->unk176 = 0x00C0; + D_8018CA70->unk1D0 = 0x002D; + D_8018CA70->unk1EE = 0x011A; + D_8018CA70->itemBoxX = -0x0036; + D_8018CA70->itemBoxY = 0x0036; D_8018CA70->slideItemBoxX = 0; D_8018CA70->slideItemBoxY = 0; - D_8018CA70->unk_4A = 0x50; - D_8018CA70->unk_4C = 0x3C; - D_8018CA70->rankX = 0x25; - D_8018CA70->rankY = 0x64; + D_8018CA70->unk_4A = 0x0050; + D_8018CA70->unk_4C = 0x003C; + D_8018CA70->rankX = 0x0025; + D_8018CA70->rankY = 0x0064; D_8018CA70->slideRankX = 0; D_8018CA70->slideRankY = 0; - D_8018CA70->lapX = 0x8C; - D_8018CA70->lapY = 0x60; - D_8018CA70->unk_6C = 0xDE; - D_8018CA70->unk_6E = 0xC8; - D_8018CA70->unkC6 = 0x175; - D_8018CA70->unkC8 = 0x36; + D_8018CA70->lapX = 0x008C; + D_8018CA70->lapY = 0x0060; + D_8018CA70->unk_6C = 0x00DE; + D_8018CA70->unk_6E = 0x00C8; + D_8018CA70->unkC6 = 0x0175; + D_8018CA70->unkC8 = 0x0036; D_8018CA70->unkCA = 0; D_8018CA70->unkCC = 0; - D_8018CA70->unkCE = 0xF0; - D_8018CA70->unkD0 = 0x3C; - D_8018CA70->unkE8 = 0x64; + D_8018CA70->unkCE = 0x00F0; + D_8018CA70->unkD0 = 0x003C; + D_8018CA70->unkE8 = 0x0064; D_8018CA70->unkEA = 0; D_8018CA70->unkEC = 0; - D_8018CA70->unkDE = 0xB4; - D_8018CA70->unkE4 = 0x60; - D_8018CA70->unkF0 = 0xC8; - D_8018CA70->unkF2 = 0xC8; - D_8018CA70->unk14A = -0x36; + D_8018CA70->unkDE = 0x00B4; + D_8018CA70->unkE4 = 0x0060; + D_8018CA70->unkF0 = 0x00C8; + D_8018CA70->unkF2 = 0x00C8; + D_8018CA70->unk14A = -0x0036; D_8018CA70->unk14E = 0; D_8018CA70->unk150 = 0; - D_8018CA70->unk152 = 0x50; - D_8018CA70->unk154 = 0xB4; - D_8018CA70->unk16A = 0x25; + D_8018CA70->unk152 = 0x0050; + D_8018CA70->unk154 = 0x00B4; + D_8018CA70->unk16A = 0x0025; D_8018CA70->unk16E = 0; D_8018CA70->unk170 = 0; - D_8018CA70->unk162 = 0x8C; - D_8018CA70->unk174 = 0xDE; - D_8018CA70->unk1CE = 0x175; + D_8018CA70->unk162 = 0x008C; + D_8018CA70->unk174 = 0x00DE; + D_8018CA70->unk1CE = 0x0175; D_8018CA70->unk1D2 = 0; D_8018CA70->unk1D4 = 0; - D_8018CA70->unk1D6 = 0xF0; - D_8018CA70->unk1D8 = 0xB4; - D_8018CA70->unk1F0 = 0xD2; + D_8018CA70->unk1D6 = 0x00F0; + D_8018CA70->unk1D8 = 0x00B4; + D_8018CA70->unk1F0 = 0x00D2; D_8018CA70->unk1F2 = 0; D_8018CA70->unk1F4 = 0; - D_8018CA70->unk1E6 = 0xB4; - D_8018CA70->unk1EC = 0xD4; - D_8018CA70->unk1F8 = 0xC8; - D_8018CA70->unk1FA = 0xC0; + D_8018CA70->unk1E6 = 0x00B4; + D_8018CA70->unk1EC = 0x00D4; + D_8018CA70->unk1F8 = 0x00C8; + D_8018CA70->unk1FA = 0x00C0; if (gModeSelection == 3) { - D_8018CA70->itemBoxY = 0xC8; - D_8018CA70->unkC8 = 0xC8; - D_8018CA70->unk14C = 0xB8; - D_8018CA70->unk1D0 = 0xB8; + D_8018CA70->itemBoxY = 0x00C8; + D_8018CA70->unkC8 = 0x00C8; + D_8018CA70->unk14C = 0x00B8; + D_8018CA70->unk1D0 = 0x00B8; } D_8018CA70->unk190 = 0.5f; temp_f0 = D_8018CA70->unk190; @@ -2334,7 +2283,7 @@ void func_80071C28(void) { D_8018CA70->unkEE = (s16) gPlayerPositions->unk4; D_8018CA70->unk172 = (s16) gPlayerPositions->unk8; D_8018CA70->unk1F6 = (s16) gPlayerPositions->unkC; - func_8006EE7C(D_80183E88, 0x36, 0x50, 0x3C); + func_8006EE7C(D_80183E88, 0x0036, 0x0050, 0x003C); func_8006EE7C(D_80183E8C); func_8006EE7C(D_80183E90); func_8006EE7C(D_80183E94); @@ -2344,10 +2293,10 @@ void func_80071C28(void) { D_8018CA70->unk84 = temp_f0_2; D_8018CA70->unknownScaling = temp_f0_2; D_8018D158 = (s32) D_8018EDF3; - D_8018D3C4 = 0x14; - D_8018D3BC = 0x10; - D_8018D3C0 = 0x1E; - D_801657A2 = 0x888; + D_8018D3C4 = 0x00000014; + D_8018D3BC = 0x00000010; + D_8018D3C0 = 0x0000001E; + D_801657A2 = 0x0888; } #else GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_80071C28.s") diff --git a/src/code_8006E9C0.h b/src/code_8006E9C0.h new file mode 100644 index 000000000..f63732040 --- /dev/null +++ b/src/code_8006E9C0.h @@ -0,0 +1,45 @@ +#ifndef CODE_8006E9C0_H +#define CODE_8006E9C0_H + +#include "common_structs.h" + +void func_8006E9C0(); +void func_8006EA5C(); +void func_8006ED60(); +s32 func_8006ED94(s32*, s32, s32, s32); +void func_8006EE44(); +void func_80070190(); +void func_80070714(); + +extern s32 gScreenModeSelection; +extern s32 gTextureLogoMarioKart64; +extern s16 D_80165730; +extern s16 D_80165738; +extern s16 D_80165740; +extern s16 D_80165748; +extern s32 D_80183D5C; +extern s8 D_8018EDF3; +extern s32 D_8018D1E0; +extern s32 D_8018D9B0; + +extern struct_8018CA70_entry D_8018CA70[]; +// These are all *technically* hardcoded references to spots in D_8018CA70, but there's something weird +// going on match wise in func_8006EA5C that means we have to (for now) leave them as separate variables +extern s8 D_8018CAE0; +extern s8 D_8018CAE1; +extern s8 D_8018CAE2; +extern s8 D_8018CAF1; +extern s8 D_8018CB64; +extern s8 D_8018CB65; +extern s8 D_8018CB66; +extern s8 D_8018CB75; +extern s8 D_8018CBE8; +extern s8 D_8018CBE9; +extern s8 D_8018CBEA; +extern s8 D_8018CBF9; +extern s8 D_8018CC6C; +extern s8 D_8018CC6D; +extern s8 D_8018CC6E; +extern s8 D_8018CC7D; + +#endif diff --git a/src/code_80071F00.c b/src/code_80071F00.c index 7178168eb..ffe0d55e9 100644 --- a/src/code_80071F00.c +++ b/src/code_80071F00.c @@ -2,8 +2,14 @@ #include #include #include +#include "camera.h" +#include "math_util.h" #include "math_util_2.h" +#include "objects.h" +#include "variables.h" +#include "code_80057C60.h" #include "code_80071F00.h" +#include "code_80086E70.h" s32 find_unused_obj_index(s32* arg0) { s32 temp_v0; @@ -48,98 +54,117 @@ void func_80071F6C(s32 arg0, s32 arg1) { GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80071F6C.s") #endif -// UNUSED FUNC +#ifdef MIPS_TO_C +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s8 D_80165CE2; +extern s8 D_80165DC2; +extern ? D_80165DD8; +extern ? D_80183D58; + +s32 func_80071FBC(void) { + ? *var_a0; + s32 var_v1; + s8 temp_t1; + + var_v1 = 0; + if (D_80165CE2 != 0) { + var_v1 = 1; + } + var_a0 = &D_80165DD8; + if (D_80165DC2 != 0) { + var_v1 += 1; + } + do { + if (var_a0->unkCA != 0) { + var_v1 += 1; + } + if (var_a0->unk1AA != 0) { + var_v1 += 1; + } + if (var_a0->unk28A != 0) { + var_v1 += 1; + } + temp_t1 = var_a0->unk36A; + var_a0 += 0x380; + if (temp_t1 != 0) { + var_v1 += 1; + } + } while (var_a0 != &D_80183D58); + return var_v1; +} +#else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80071FBC.s") +#endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s32 find_unused_obj_index(s32 *, s32); // extern - -s32 func_80072044(s32* arg0, s32 *arg1, s32 arg2) { +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +s32 func_80072044(s32 *arg0, s32 *arg1, s32 arg2) { s32 sp24; s32 sp20; + s32 *var_a0_2; s32 temp_t0; s32 temp_v0; - s32 temp_v0_2; - s32 temp_v1; - s32 *phi_a0; - s32 phi_v1; - s32 phi_v0; - s32 phi_v1_2; - s32 phi_a0_2; - s32 phi_v0_2; - s32 phi_v0_3; + s32 var_a0; + s32 var_v0; + s32 var_v1; - temp_v0 = *arg1; - phi_v1 = 0; - phi_v1_2 = 0; - phi_v0_2 = temp_v0; - if (temp_v0 >= arg2) { + var_v0 = *arg1; + var_v1 = 0; + if (var_v0 >= arg2) { *arg1 = 0; - phi_v0_2 = 0; + var_v0 = 0; } - phi_a0 = (phi_v0_2 * 4) + arg0; - phi_v0 = phi_v0_2; + var_a0_2 = &arg0[var_v0]; if (arg2 > 0) { loop_3: - temp_t0 = phi_v0 + 1; - phi_v0_3 = temp_t0; - if (*phi_a0 == -1) { - sp24 = phi_v1; - temp_v0_2 = find_unused_obj_index(phi_a0, -1); - *arg1 = *arg1 + 1; - sp20 = temp_v0_2; - phi_v1_2 = phi_v1; + temp_t0 = var_v0 + 1; + var_v0 = temp_t0; + if (*var_a0_2 == -1) { + sp24 = var_v1; + temp_v0 = find_unused_obj_index(var_a0_2); + *arg1 += 1; + sp20 = temp_v0; } else { *arg1 = temp_t0; if (temp_t0 >= arg2) { *arg1 = 0; - phi_v0_3 = 0; + var_v0 = 0; } - temp_v1 = phi_v1 + 1; - phi_a0 = (phi_v0_3 * 4) + arg0; - phi_v1 = temp_v1; - phi_v0 = phi_v0_3; - phi_v1_2 = temp_v1; - if (temp_v1 != arg2) { + var_v1 += 1; + var_a0_2 = &arg0[var_v0]; + if (var_v1 != arg2) { goto loop_3; } } } - phi_a0_2 = sp20; - if (phi_v1_2 == arg2) { - phi_a0_2 = -1; + var_a0 = sp20; + if (var_v1 == arg2) { + var_a0 = -1; } - return phi_a0_2; + return var_a0; } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80072044.s") #endif -void func_80071F6C(); // extern - -void func_80072100(s32 arg0, s32 arg1) { - func_80071F6C(arg0, arg1); +void func_80072100(s32 arg0) { + func_80071F6C(arg0); } #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721E8(s32, ?); // extern - +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc void func_80072120(s32 *arg0, s32 arg1) { - s32 temp_s0; - s32 *phi_s1; - s32 phi_s0; + s32 *var_s1; + s32 var_s0; - phi_s1 = arg0; - phi_s0 = 0; + var_s1 = arg0; + var_s0 = 0; if (arg1 > 0) { do { - func_800721E8(*phi_s1, 0x600000); - temp_s0 = phi_s0 + 1; - phi_s1 += 4; - phi_s0 = temp_s0; - } while (temp_s0 != arg1); + func_800721E8(*var_s1, 0x00600000); + var_s0 += 1; + var_s1 += 4; + } while (var_s0 != arg1); } } #else @@ -176,17 +201,9 @@ UNUSED void func_80072214(s32 arg0, s32 arg1) { D_80165C18[arg0].unk_054 ^= arg1; } -// maybe struct_80165C18_entry (same size) -// However, unk_000 needs to be s32. Could be an onion? -struct struct_8007223C { - s32 s32; - s8 unk4[0xDC]; -}; // Size 0xE0 - -extern struct struct_8007223C D_80165C6C[]; s32 func_8007223C(s32 arg0, s32 arg1) { s32 phi_v1 = 0; - if ((D_80165C6C[arg0].s32 & arg1) != 0) { + if ((D_80165C18[arg0].unk_054 & arg1) != 0) { phi_v1 = 1; } return phi_v1; @@ -194,7 +211,7 @@ s32 func_8007223C(s32 arg0, s32 arg1) { s32 func_80072270(s32 arg0, s32 arg1) { s32 phi_v1 = 0; - if ((D_80165C6C[arg0].s32 & arg1) == 0) { + if ((D_80165C18[arg0].unk_054 & arg1) == 0) { phi_v1 = 1; } return phi_v1; @@ -212,11 +229,9 @@ UNUSED void func_800722F8(s32 arg0, s32 arg1) { D_80165C18[arg0].unk_058 ^= arg1; } -extern struct struct_8007223C D_80165C70[]; - s32 func_80072320(s32 arg0, s32 arg1) { s32 phi_v1 = 0; - if ((D_80165C70[arg0].s32 & arg1) != 0) { + if ((D_80165C18[arg0].unk_058 & arg1) != 0) { phi_v1 = 1; } return phi_v1; @@ -224,31 +239,14 @@ s32 func_80072320(s32 arg0, s32 arg1) { s32 func_80072354(s32 arg0, s32 arg1) { s32 phi_v1 = 0; - if ((D_80165C70[arg0].s32 & arg1) == 0) { + if ((D_80165C18[arg0].unk_058 & arg1) == 0) { phi_v1 = 1; } return phi_v1; } -// maybe struct_80165C18_entry (same size) -// However, unk_000 needs to be s32. Could be an onion? -struct struct_E0 { - union { - s8 s8; - s16 s16; - } unk00; - s16 unk2; - s8 unk4[0xDC]; -}; // Size 0xE0 - -extern struct struct_E0 D_80165CE3[]; - -/** - * The s8's in this file are possibly just one big array - * (includes D_80165CE3, D_80165CEF) - **/ void func_80072388(s32 arg0, s32 arg1) { - D_80165CE3[arg0].unk00.s8 = arg1; + D_80165C18[arg0].unk_0CB = arg1; } void func_800723A4(s32 arg0, s32 arg1) { @@ -279,22 +277,20 @@ void func_80072428(s32 arg0) { void func_80072488(s32 arg0) { func_80072388(arg0, 0); func_800721E8(arg0, 0x2000); - ++D_80165C18[arg0].unk_0A6; + D_80165C18[arg0].unk_0A6++; } -extern struct struct_E0 D_80165CEF[]; - void func_800724DC(s32 arg0) { - D_80165CEF[arg0].unk00.s8 = 0; + D_80165C18[arg0].unk_0D7 = 0; } void func_800724F8(s32 arg0, s32 arg1) { D_80165C18[arg0].unk_084[D_80165C18[arg0].unk_0D7] = arg1; - ++D_80165C18[arg0].unk_0D7; + D_80165C18[arg0].unk_0D7++; } s16 func_80072530(s32 arg0) { - --D_80165C18[arg0].unk_0D7; + D_80165C18[arg0].unk_0D7--; return D_80165C18[arg0].unk_084[D_80165C18[arg0].unk_0D7]; } @@ -317,19 +313,18 @@ void func_800725E8(s32 arg0, s32 arg1, s32 arg2) { } s16 func_80072530(s32); // extern -extern struct struct_E0 D_80165CBE[]; void func_8007266C(s32 arg0) { func_80072388(arg0, 0); func_800721E8(arg0, 0x2000); func_800721E8(arg0, 8); - D_80165CBE[arg0].unk00.s16 = func_80072530(arg0); + D_80165C18[arg0].unk_0A6 = func_80072530(arg0); } void func_800726CC(s32 arg0, s32 arg1) { func_80072388(arg0, 0); func_800721E8(arg0, 0x2000); - D_80165CBE[arg0].unk00.s16 = arg1; + D_80165C18[arg0].unk_0A6 = arg1; } UNUSED void func_8007271C(s32 arg0, s32 arg1) { @@ -338,8 +333,8 @@ UNUSED void func_8007271C(s32 arg0, s32 arg1) { } } -UNUSED void func_80007274C(s32 arg0) { - if (D_80165CE3[arg0].unk00.s8 == 0) { +UNUSED void func_8007274C(s32 arg0) { + if (D_80165C18[arg0].unk_0CB == 0) { func_80072488(arg0); } } @@ -353,7 +348,7 @@ s32 func_8007278C(s32 arg0, s32 arg1) { D_80165C18[arg0].unk_050 = arg1; } - --D_80165C18[arg0].unk_050; + D_80165C18[arg0].unk_050--; if (D_80165C18[arg0].unk_050 < 0) { func_80072388(arg0, 0); func_80072488(arg0); @@ -372,7 +367,7 @@ UNUSED s32 func_8007281C(s32 arg0, s32 arg1) { D_80165C18[arg0].unk_050 = random_int((u16) arg1); } - --D_80165C18[arg0].unk_050; + D_80165C18[arg0].unk_050--; if (D_80165C18[arg0].unk_050 < 0) { func_80072388(arg0, 0); func_80072488(arg0); @@ -391,7 +386,7 @@ UNUSED s32 func_800728B0(s32 arg0, s32 arg1, s32 arg2) { D_80165C18[arg0].unk_050 = random_int((u16) arg2) + arg1; } - --D_80165C18[arg0].unk_050; + D_80165C18[arg0].unk_050--; if (D_80165C18[arg0].unk_050 < 0) { func_80072388(arg0, 0); func_80072488(arg0); @@ -403,32 +398,26 @@ UNUSED s32 func_800728B0(s32 arg0, s32 arg1, s32 arg2) { void func_80072950(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { if (arg1 == arg2) { - D_80165CBE[arg0].unk00.s16 = arg3; + D_80165C18[arg0].unk_0A6 = arg3; } } UNUSED void func_80072974(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { if (arg1 != arg2) { - D_80165CBE[arg0].unk00.s16 = arg3; + D_80165C18[arg0].unk_0A6 = arg3; } } -extern struct struct_E0 D_80165CE4[]; - UNUSED void func_80072998(s32 arg0) { - D_80165CE4[arg0].unk00.s8 = 0; + D_80165C18[arg0].unk_0CC = 0; } -extern struct struct_E0 D_80165CBA[]; - void func_800729B4(s32 arg0, s32 arg1) { - D_80165CBA[arg0].unk00.s16 = arg1; + D_80165C18[arg0].unk_0A2 = arg1; } -extern struct struct_E0 D_80165CBC[]; - void func_800729D0(s32 arg0, s32 arg1) { - D_80165CBC[arg0].unk00.s16 = arg1; + D_80165C18[arg0].unk_0A4 = arg1; } #ifdef MIPS_TO_C @@ -465,9 +454,9 @@ void func_800729EC(s32 arg0) { #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800729EC.s") #endif -extern struct struct_E0 D_80165CEA[]; + UNUSED void func_80072A78(s32 arg0, s32 arg1) { - D_80165CEA[arg0].unk00.s8 = arg1; + D_80165C18[arg0].unk_0D2 = arg1; func_80072488(arg0); } @@ -482,7 +471,7 @@ s32 func_80072AAC(s32 arg0, s32 arg1, s32 arg2) { D_80165C18[arg0].unk_050 = arg2; } - --D_80165C18[arg0].unk_050; + D_80165C18[arg0].unk_050--; if (D_80165C18[arg0].unk_050 < 0) { func_80072388(arg0, 0); func_80072488(arg0); @@ -503,7 +492,7 @@ s32 func_80072B48(s32 arg0, s32 arg1) { D_80165C18[arg0].unk_050 = arg1; } - --D_80165C18[arg0].unk_050; + D_80165C18[arg0].unk_050--; if (D_80165C18[arg0].unk_050 < 0) { func_800721E8(arg0, 0x80000); func_80072388(arg0, 0); @@ -521,29 +510,28 @@ void func_80072C00(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { D_80165C18[arg0].unk_0D4 = 1; D_80165C18[arg0].unk_0CC = arg3; func_800721C0(arg0, 0x2000); - return; - } - - --D_80165C18[arg0].unk_050; - if (D_80165C18[arg0].unk_050 < 0) { - D_80165C18[arg0].unk_050 = arg2; - --D_80165C18[arg0].unk_0D4; - if ((D_80165C18[arg0].unk_0D4 & 1) != 0) { - func_800721E8(arg0, 0x80000); - } else { - func_800721C0(arg0, 0x80000); - } - - if (D_80165C18[arg0].unk_0D4 < 0) { - D_80165C18[arg0].unk_0D4 = 1; - - if (D_80165C18[arg0].unk_0CC > 0) { - --D_80165C18[arg0].unk_0CC; + } else { + D_80165C18[arg0].unk_050--; + if (D_80165C18[arg0].unk_050 < 0) { + D_80165C18[arg0].unk_050 = arg2; + D_80165C18[arg0].unk_0D4--; + if ((D_80165C18[arg0].unk_0D4 & 1) != 0) { + func_800721E8(arg0, 0x80000); + } else { + func_800721C0(arg0, 0x80000); } - if (D_80165C18[arg0].unk_0CC == 0) { - func_800721E8(arg0, 0x2000); - func_80072488(arg0); + if (D_80165C18[arg0].unk_0D4 < 0) { + D_80165C18[arg0].unk_0D4 = 1; + + if (D_80165C18[arg0].unk_0CC > 0) { + D_80165C18[arg0].unk_0CC--; + } + + if (D_80165C18[arg0].unk_0CC == 0) { + func_800721E8(arg0, 0x2000); + func_80072488(arg0); + } } } } @@ -559,10 +547,10 @@ void func_80072D3C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { return; } - --D_80165C18[arg0].unk_050; + D_80165C18[arg0].unk_050--; if (D_80165C18[arg0].unk_050 < 0) { D_80165C18[arg0].unk_050 = arg3; - --D_80165C18[arg0].unk_0D4; + D_80165C18[arg0].unk_0D4--; if ((D_80165C18[arg0].unk_0D4 & 1) != 0) { D_80165C18[arg0].unk_0D2 = arg1; } else { @@ -572,7 +560,7 @@ void func_80072D3C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { if (D_80165C18[arg0].unk_0D4 < 0) { D_80165C18[arg0].unk_0D4 = 1; if (D_80165C18[arg0].unk_0CC > 0) { - --D_80165C18[arg0].unk_0CC; + D_80165C18[arg0].unk_0CC--; } if (D_80165C18[arg0].unk_0CC == 0) { @@ -594,14 +582,14 @@ s32 func_80072E54(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5) { func_80072388(arg0, 1); func_800721C0(arg0, 0x2000); } else { - --D_80165C18[arg0].unk_050; + D_80165C18[arg0].unk_050--; if (D_80165C18[arg0].unk_050 <= 0) { D_80165C18[arg0].unk_050 = arg4; D_80165C18[arg0].unk_0D2 += arg3; if (arg2 < D_80165C18[arg0].unk_0D2) { if (D_80165C18[arg0].unk_0CC > 0) { - --D_80165C18[arg0].unk_0CC; + D_80165C18[arg0].unk_0CC--; } if (D_80165C18[arg0].unk_0CC == 0) { D_80165C18[arg0].unk_0D2 = arg2; @@ -629,13 +617,13 @@ s32 func_80072F88(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5) { func_80072388(arg0, 1); func_800721C0(arg0, 0x2000); } else { - --D_80165C18[arg0].unk_050; + D_80165C18[arg0].unk_050--; if (D_80165C18[arg0].unk_050 <= 0) { D_80165C18[arg0].unk_050 = arg4; D_80165C18[arg0].unk_0D2 -= arg3; if (D_80165C18[arg0].unk_0D2 < arg2) { if (D_80165C18[arg0].unk_0CC > 0) { - --D_80165C18[arg0].unk_0CC; + D_80165C18[arg0].unk_0CC--; } if (D_80165C18[arg0].unk_0CC == 0) { D_80165C18[arg0].unk_0D2 = arg2; @@ -664,7 +652,7 @@ s32 func_800730BC(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5) { func_800721C0(arg0, 0x2000); func_800721E8(arg0, 0x4000); } else { - --D_80165C18[arg0].unk_050; + D_80165C18[arg0].unk_050--; if (D_80165C18[arg0].unk_050 <= 0) { D_80165C18[arg0].unk_050 = arg4; if (func_80072270(arg0, 0x4000) != 0) { @@ -678,7 +666,7 @@ s32 func_800730BC(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5) { if (arg1 >= D_80165C18[arg0].unk_0D2) { D_80165C18[arg0].unk_0D2 = arg1; if (D_80165C18[arg0].unk_0CC > 0) { - --D_80165C18[arg0].unk_0CC; + D_80165C18[arg0].unk_0CC--; } if (D_80165C18[arg0].unk_0CC == 0) { @@ -710,7 +698,7 @@ s32 func_8007326C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5) { func_800721C0(arg0, 0x2000); func_800721E8(arg0, 0x4000); } else { - --D_80165C18[arg0].unk_050; + D_80165C18[arg0].unk_050--; if (D_80165C18[arg0].unk_050 <= 0) { D_80165C18[arg0].unk_050 = arg4; if (func_80072270(arg0, 0x4000) != 0) { @@ -724,7 +712,7 @@ s32 func_8007326C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5) { if (D_80165C18[arg0].unk_0D2 >= arg1) { D_80165C18[arg0].unk_0D2 = arg1; if (D_80165C18[arg0].unk_0CC > 0) { - --D_80165C18[arg0].unk_0CC; + D_80165C18[arg0].unk_0CC--; } if (D_80165C18[arg0].unk_0CC == 0) { func_800721E8(arg0, 0x2000); @@ -823,73 +811,49 @@ void func_80073654(s32 arg0) { ++D_80165C18[arg0].unk_0D6; } -extern struct struct_E0 D_80165CEE[]; - UNUSED void func_8007369C(s32 arg0, s32 arg1) { func_800721E8(arg0, 0x8000); - D_80165CEE[arg0].unk00.s8 = arg1; + D_80165C18[arg0].unk_0D6 = arg1; } -extern struct struct_E0 D_80165CEE[]; - void func_800736E0(s32 arg0) { func_800721E8(arg0, 0x8000); - D_80165CEE[arg0].unk00.s8 = 1; + D_80165C18[arg0].unk_0D6 = 1; } void func_80073720(s32 arg0) { func_800721E8(arg0, 0x8000); - D_80165CEE[arg0].unk00.s8 = 0; + D_80165C18[arg0].unk_0D6 = 0; } -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_800721E8(s32, ?); // extern -s32 func_80072270(?); // extern -? func_80073654(s32); // extern -extern ? D_80165C18; -extern ? D_80165C64; - -s32 func_8007375C(s32 arg0, s32 arg1) { +s32 func_8007375C(s32 objectIndex, s32 arg1) { s32 sp24; - s32 temp_t1; - void *temp_v0; sp24 = 0; - if (func_80072270(0x8000) != 0) { - *(&D_80165C64 + (arg0 * 0xE0)) = arg1; - func_800721C0(arg0, 0x8000); + if (func_80072270(objectIndex, 0x00008000) != 0) { + D_80165C18[objectIndex].unk_04C = arg1; + func_800721C0(objectIndex, 0x00008000); } - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_t1 = temp_v0->unk4C - 1; - temp_v0->unk4C = temp_t1; - if (temp_t1 < 0) { - func_800721E8(arg0, 0x8000); - func_80073654(arg0); + D_80165C18[objectIndex].unk_04C--; + if (D_80165C18[objectIndex].unk_04C < 0) { + func_800721E8(objectIndex, 0x00008000); + func_80073654(objectIndex); sp24 = 1; } return sp24; } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007375C.s") -#endif - -extern struct struct_E0 D_80165CE7[]; void func_80073800(s32 arg0, s32 arg1) { - D_80165CE7[arg0].unk00.s8 = arg1; + D_80165C18[arg0].unk_0CF = arg1; } void func_8007381C(s32 arg0) { - ++D_80165C18[arg0].unk_0DC; + D_80165C18[arg0].unk_0DC++; } -extern struct struct_E0 D_80165CF4[]; - void func_80073844(s32 arg0) { func_80073800(arg0, 0); - D_80165CF4[arg0].unk00.s8 = 1; + D_80165C18[arg0].unk_0DC = 1; } void func_80073884(s32 arg0) { @@ -907,13 +871,13 @@ s32 func_800738A8(s32 arg0, s16* arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s D_80165C18[arg0].unk_0D0 = arg6; func_80073800(arg0, 1); } else { - --D_80165C18[arg0].unk_0AC; + D_80165C18[arg0].unk_0AC--; if (D_80165C18[arg0].unk_0AC < 0) { D_80165C18[arg0].unk_0AC = arg5; *arg1 += arg4; if (arg3 < *arg1) { if (D_80165C18[arg0].unk_0D0 > 0) { - --D_80165C18[arg0].unk_0D0; + D_80165C18[arg0].unk_0D0--; } if (D_80165C18[arg0].unk_0D0 == 0) { @@ -951,13 +915,13 @@ s32 func_80073A10(s32 arg0, s16* arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s D_80165C18[arg0].unk_0D0 = arg6; func_80073800(arg0, 1); } else { - --D_80165C18[arg0].unk_0AC; + D_80165C18[arg0].unk_0AC--; if (D_80165C18[arg0].unk_0AC < 0) { D_80165C18[arg0].unk_0AC = arg5; *arg1 -= arg4; if (*arg1 < arg3) { if (D_80165C18[arg0].unk_0D0 > 0) { - --D_80165C18[arg0].unk_0D0; + D_80165C18[arg0].unk_0D0--; } if (D_80165C18[arg0].unk_0D0 == 0) { @@ -997,21 +961,21 @@ s32 func_80073B78(s32 arg0, s32 arg1, s16* arg2, s32 arg3, s32 arg4, s32 arg5, s D_80165C18[arg1].unk_0D0 = arg7; func_80073800(arg1, 1); } else { - --D_80165C18[arg1].unk_0AC; + D_80165C18[arg1].unk_0AC--; if (D_80165C18[arg1].unk_0AC < 0) { D_80165C18[arg1].unk_0AC = arg6; if (D_80165C18[arg1].unk_0CF == 1) { *arg2 += arg5; if (*arg2 >= arg4) { *arg2 = arg4; - ++D_80165C18[arg1].unk_0CF; + D_80165C18[arg1].unk_0CF++; } } else { *arg2 -= arg5; if (arg3 >= *arg2) { *arg2 = arg3; if (D_80165C18[arg1].unk_0D0 > 0) { - --D_80165C18[arg1].unk_0D0; + D_80165C18[arg1].unk_0D0--; } if (D_80165C18[arg1].unk_0D0 == 0) { func_80073800(arg1, 0); @@ -1099,21 +1063,17 @@ UNUSED s32 func_80073ED4(s32 arg0, u16* arg1, u16 arg2, s32 arg3) { return phi_t0; } -extern struct struct_E0 D_80165CE5[]; - void func_80073F90(s32 arg0, s32 arg1) { - D_80165CE5[arg0].unk00.s8 = arg1; + D_80165C18[arg0].unk_0CD = arg1; } void func_80073FAC(s32 arg0) { - ++D_80165C18[arg0].unk_0DB; + D_80165C18[arg0].unk_0DB++; } -extern struct struct_E0 D_80165CF3[]; - void func_80073FD4(s32 arg0) { func_80073F90(arg0, 0); - D_80165CF3[arg0].unk00.s8 = 1; + D_80165C18[arg0].unk_0DB = 1; } UNUSED void func_80074014(void) { @@ -1130,13 +1090,13 @@ s32 func_8007401C(s32 arg0, f32* arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5, s D_80165C18[arg0].unk_0CE = arg6; func_80073F90(arg0, 1); } else { - --D_80165C18[arg0].unk_0AA; + D_80165C18[arg0].unk_0AA--; if ((s32) D_80165C18[arg0].unk_0AA < 0) { D_80165C18[arg0].unk_0AA = arg5; *arg1 += arg4; if (arg3 < *arg1) { if ((s32) D_80165C18[arg0].unk_0CE > 0) { - --D_80165C18[arg0].unk_0CE; + D_80165C18[arg0].unk_0CE--; } if (D_80165C18[arg0].unk_0CE == 0) { *arg1 = arg3; @@ -1176,7 +1136,7 @@ s32 func_800741B4(s32 arg0, f32* arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5, s *arg1 -= arg4; if (*arg1 < arg3) { if (D_80165C18[arg0].unk_0CE > 0) { - --D_80165C18[arg0].unk_0CE; + D_80165C18[arg0].unk_0CE--; } if (D_80165C18[arg0].unk_0CE == 0) { *arg1 = arg3; @@ -1212,14 +1172,14 @@ void func_80074344(s32 arg0, f32* arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5, return; } - --D_80165C18[arg0].unk_0AA; + D_80165C18[arg0].unk_0AA--; if (D_80165C18[arg0].unk_0AA < 0) { D_80165C18[arg0].unk_0AA = arg5; if (D_80165C18[arg0].unk_0CD == 1) { *arg1 += arg4; if (arg3 <= *arg1) { *arg1 = arg3; - ++D_80165C18[arg0].unk_0CD; + D_80165C18[arg0].unk_0CD++; } } else { *arg1 -= arg4; @@ -1227,7 +1187,7 @@ void func_80074344(s32 arg0, f32* arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5, *arg1 = arg2; if (D_80165C18[arg0].unk_0CE > 0) { - --D_80165C18[arg0].unk_0CE; + D_80165C18[arg0].unk_0CE--; } if (D_80165C18[arg0].unk_0CE == 0) { func_80073F90(arg0, 0); @@ -1334,26 +1294,23 @@ s32 func_80074790(s32 arg0, s32 arg1) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80074478(s32); // extern -? func_80074574(s32, s32, u8, u8); // extern -s32 func_80074790(); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_80074574(s32, s32, u8, u8); /* extern */ -void func_800747F0(s32 arg0) { +void func_800747F0(s32 objectIndex, s32 arg1) { s32 sp24; - void *sp1C; + struct_80165C18_entry *sp1C; s8 temp_v0; - void *temp_v1; + struct_80165C18_entry *temp_v1; - temp_v1 = (arg0 * 0xE0) + &D_80165C18; - temp_v0 = temp_v1->unkD2; - if (temp_v0 != temp_v1->unkD3) { + temp_v1 = &D_80165C18[objectIndex]; + temp_v0 = temp_v1->unk_0D2; + if (temp_v0 != temp_v1->unk_0D3) { sp1C = temp_v1; - sp24 = (temp_v0 * temp_v1->unkD9 * temp_v1->unkDA) + temp_v1->unk6C; - func_80074574(sp24, func_80074790(), temp_v1->unkD9, func_80074574->unkDA); - temp_v1->unkD3 = temp_v1->unkD2; - func_80074478(arg0); + sp24 = (temp_v0 * temp_v1->unk_0D9 * temp_v1->unk_0DA) + temp_v1->unk_06C; + func_80074574(sp24, func_80074790(objectIndex, arg1), temp_v1->unk_0D9, temp_v1->unk_0DA); + temp_v1->unk_0D3 = temp_v1->unk_0D2; + func_80074478(objectIndex); } } #else @@ -1376,92 +1333,112 @@ void func_800748F4(s32 arg0, s32 arg1) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072488(s32, s32, s32); // extern -? func_8008B80C(s32, ?, ?, ?); // extern -extern ? D_800E6F30; -extern ? D_800E6F48; -extern f32 D_800EEA80; -extern f64 D_800EEA88; -extern f64 D_800EEA90; -extern f64 D_800EEA98; -extern f64 D_800EEAA0; -extern f64 D_800EEAA8; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +struct _struct_D_800E6F30_0x3 { + /* 0x0 */ u8 unk0; /* inferred */ + /* 0x1 */ u8 unk1; /* inferred */ + /* 0x2 */ u8 unk2; /* inferred */ +}; /* size = 0x3 */ + +struct _struct_D_800E6F48_0x3 { + /* 0x0 */ u8 unk0; /* inferred */ + /* 0x1 */ u8 unk1; /* inferred */ + /* 0x2 */ u8 unk2; /* inferred */ +}; /* size = 0x3 */ + +? func_8008B80C(s32, ?, ?, ?); /* extern */ extern s16 D_80165718; extern s16 D_80165720; extern s16 D_80165728; -extern u16 D_80165748; -extern ? D_80165C18; extern f32 D_8018D01C; +static struct _struct_D_800E6F30_0x3 D_800E6F30[8] = { + { 0xC8, 1, 0 }, + { 0, 0x70, 1 }, + { 0x10, 0x79, 0x51 }, + { 0, 0x59, 0x70 }, + { 0x70, 0x55, 0 }, + { 0x7A, 0x7E, 0 }, + { 0x77, 0x2C, 0x24 }, + { 0x30, 0x14, 0x58 }, +}; +static struct _struct_D_800E6F48_0x3 D_800E6F48[8] = { + { 0xDC, 0, 0 }, + { 0, 0x8C, 6 }, + { 0, 0, 0x51 }, + { 0, 0, 0 }, + { 0, 0, 0 }, + { 0, 0, 0 }, + { 0, 0, 0 }, + { 0, 0, 0 }, +}; +s16 gCurrentCourseId; /* unable to generate initializer */ -void func_80074924(s32 arg0) { +void func_80074924(s32 objectIndex) { s32 sp2C; s32 sp28; s32 sp24; s32 sp20; s16 temp_v0; - s32 temp_t4; - void *temp_s0; - void *temp_v0_2; - void *temp_v1; + s32 temp_a0; + struct _struct_D_800E6F30_0x3 *temp_v0_2; + struct _struct_D_800E6F48_0x3 *temp_v1; + struct_80165C18_entry *temp_s0; - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_s0->unk0 = D_800EEA80; + temp_s0 = &D_80165C18[objectIndex]; + temp_s0->unk_000 = 0.15f; temp_v0 = gCurrentCourseId; - if (temp_v0 != 0) { - if (temp_v0 != 7) { - if (temp_v0 != 8) { - - } else { - sp2C = random_int(0x12C); - sp28 = random_int(D_80165748); - sp24 = random_int(0x96); - sp20 = random_int(0x2000); - temp_s0->unk10 = ((D_80165718 + D_800EEA90) - sp2C) * D_8018D01C; - temp_s0->unk14 = D_80165720 + sp28; - temp_s0->unk18 = (D_80165728 + 200.0) - sp24; - } - } else { - sp2C = random_int(0x168); - sp28 = random_int(D_80165748); - sp24 = random_int(0xB4); - sp20 = random_int(0x2000); - temp_s0->unk10 = ((D_80165718 + D_800EEA88) - sp2C) * D_8018D01C; - temp_s0->unk14 = D_80165720 + sp28; - temp_s0->unk18 = (D_80165728 + 200.0) - sp24; - } - } else { - sp2C = random_int(0xC8); - sp28 = random_int(D_80165748); - sp24 = random_int(0x96); - sp20 = random_int(0x2000); - temp_s0->unk10 = ((D_80165718 + 100.0) - sp2C) * D_8018D01C; - temp_s0->unk14 = D_80165720 + sp28; - temp_s0->unk18 = (D_80165728 + 200.0) - sp24; + switch (temp_v0) { /* irregular */ + case 0: + sp2C = random_int(0x00C8U); + sp28 = random_int((u16) D_80165748); + sp24 = random_int(0x0096U); + sp20 = random_int(0x2000U); + temp_s0->unk_010[0] = (f32) ((((f64) D_80165718 + 100.0) - (f64) sp2C) * (f64) D_8018D01C); + temp_s0->unk_010[1] = (f32) (D_80165720 + sp28); + temp_s0->unk_010[2] = (f32) (((f64) D_80165728 + 200.0) - (f64) sp24); + break; + case 7: + sp2C = random_int(0x0168U); + sp28 = random_int((u16) D_80165748); + sp24 = random_int(0x00B4U); + sp20 = random_int(0x2000U); + temp_s0->unk_010[0] = (f32) ((((f64) D_80165718 + 180.0) - (f64) sp2C) * (f64) D_8018D01C); + temp_s0->unk_010[1] = (f32) (D_80165720 + sp28); + temp_s0->unk_010[2] = (f32) (((f64) D_80165728 + 200.0) - (f64) sp24); + break; + case 8: + sp2C = random_int(0x012CU); + sp28 = random_int((u16) D_80165748); + sp24 = random_int(0x0096U); + sp20 = random_int(0x2000U); + temp_s0->unk_010[0] = (f32) ((((f64) D_80165718 + 150.0) - (f64) sp2C) * (f64) D_8018D01C); + temp_s0->unk_010[1] = (f32) (D_80165720 + sp28); + temp_s0->unk_010[2] = (f32) (((f64) D_80165728 + 200.0) - (f64) sp24); + break; } - func_8008B80C(arg0, 0, 0, 0); + func_8008B80C(objectIndex, 0, 0, 0); if (D_8018EDF3 == 1) { - temp_s0->unk3C = ((sp2C % 4) * 0.25) + D_800EEA98; + temp_s0->unk_03C = (f32) (((f64) (f32) (sp2C % 4) * 0.25) + 0.8); } else { - temp_s0->unk3C = ((sp2C % 3) * D_800EEAA0) + D_800EEAA8; + temp_s0->unk_03C = (f32) (((f64) (f32) (sp2C % 3) * 0.2) + 0.4); } - temp_t4 = (sp2C % 8) * 3; - temp_v0_2 = temp_t4 + &D_800E6F30; - temp_v1 = temp_t4 + &D_800E6F48; - temp_s0->unk90 = sp20 - 0x1000; - temp_s0->unk84 = temp_v0_2->unk0; - temp_s0->unk86 = temp_v0_2->unk1; - temp_s0->unk88 = temp_v0_2->unk2; - temp_s0->unk8A = temp_v1->unk0; - temp_s0->unk8C = temp_v1->unk1; - temp_s0->unk8E = temp_v1->unk2; - if ((sp2C & 1) != 0) { - temp_s0->unk92 = (sp20 / 0x20) + 0x100; + temp_a0 = sp2C % 8; + temp_v0_2 = &D_800E6F30[temp_a0]; + temp_v1 = &D_800E6F48[temp_a0]; + temp_s0->unk_084[6] = sp20 - 0x1000; + temp_s0->unk_084[0] = (s16) temp_v0_2->unk0; + temp_s0->unk_084[1] = (s16) temp_v0_2->unk1; + temp_s0->unk_084[2] = (s16) temp_v0_2->unk2; + temp_s0->unk_084[3] = (s16) temp_v1->unk0; + temp_s0->unk_084[4] = (s16) temp_v1->unk1; + temp_s0->unk_084[5] = (s16) temp_v1->unk2; + if (sp2C & 1) { + temp_s0->unk_084[7] = (sp20 / 32) + 0x100; } else { - temp_s0->unk92 = -0x100 - (sp20 / 0x20); + temp_s0->unk_084[7] = -0x100 - (sp20 / 32); } - temp_s0->unkA0 = 0xE6; - func_80072488(arg0, sp20, sp2C); + temp_s0->unk_0A0 = 0x00E6; + func_80072488(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80074924.s") @@ -1499,57 +1476,38 @@ void func_80074E28(s32 arg0) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072100(s32 *); // extern -? func_80074D94(s32); // extern -? func_80074E28(s32); // extern -extern s16 D_80165730; -extern s16 D_80165738; -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern s32 D_8018C630; void func_80074EE8(void) { - s16 temp_v0; + s32 *var_s2; s32 temp_s0; - s32 temp_s3; - void *temp_s1; - s32 *phi_s2; - s32 phi_s3; - s32 phi_v0; - s32 phi_s4; - s32 phi_s4_2; - s32 phi_s4_3; + s32 var_s3; + s32 var_s4; + struct_80165C18_entry *temp_s1; - temp_v0 = D_80165738; - phi_s3 = 0; - phi_s4 = 0; - phi_v0 = temp_v0; - phi_s4_3 = 0; - if (temp_v0 > 0) { - phi_s2 = &D_8018C630; + var_s4 = 0; + var_s3 = 0; + if (D_80165738 > 0) { + var_s2 = &D_8018C630; do { - temp_s0 = *phi_s2; - phi_s4_2 = phi_s4_3; + temp_s0 = *var_s2; if (temp_s0 != -1) { - temp_s1 = &D_80165C18 + (temp_s0 * 0xE0); - if (temp_s1->unkA6 != 0) { + temp_s1 = &D_80165C18[temp_s0]; + if (temp_s1->unk_0A6 != 0) { func_80074E28(temp_s0); func_80074D94(temp_s0); - if (temp_s1->unkA6 == 0) { - func_80072100(phi_s2); + if (temp_s1->unk_0A6 == 0) { + func_80072100((s32) var_s2); } - phi_v0 = D_80165738; - phi_s4_2 = phi_s4_3 + 1; + var_s4 += 1; } } - temp_s3 = phi_s3 + 1; - phi_s2 += 4; - phi_s3 = temp_s3; - phi_s4 = phi_s4_2; - phi_s4_3 = phi_s4_2; - } while (temp_s3 < phi_v0); + var_s3 += 1; + var_s2 += 4; + } while (var_s3 < D_80165738); } - if (phi_s4 == 0) { + if (var_s4 == 0) { D_80165730 = 0; } } @@ -1558,44 +1516,35 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80074EE8.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072428(s32); // extern -? func_80072488(s32); // extern -? func_80086F60(s32); // extern -s32 func_80087E08(s32, s32, ?, s32, s32, s32); // extern -? func_8008BF18(s32); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern ? D_8016582C; -extern ? D_80165C18; -void func_80074FD8(s32 arg0) { - void *sp28; +void func_80074FD8(s32 objectIndex) { + struct_80165C18_entry *sp28; s16 temp_v0; - s32 temp_t6; - void *temp_v1; + struct_80165C18_entry *temp_v1; - temp_t6 = arg0 * 0xE0; - temp_v1 = temp_t6 + &D_80165C18; - temp_v0 = temp_v1->unkA6; - if (temp_v0 != 0) { - if (temp_v0 != 1) { - if (temp_v0 != 2) { - return; - } - func_80086F60(arg0); - func_80072428(arg0); - // Duplicate return node #8. Try simplifying control flow for better match - return; + temp_v1 = &D_80165C18[objectIndex]; + temp_v0 = temp_v1->unk_0A6; + switch (temp_v0) { /* irregular */ + case 1: + sp28 = temp_v1; + if (func_80087E08(objectIndex, temp_v1->unk_038[1], 0.12f, temp_v1->unk_034, (s16) (s32) temp_v1->unk_0C0, 0x00000064) != 0) { + sp28 = temp_v1; + func_80072488(objectIndex); } sp28 = temp_v1; - if (func_80087E08(arg0, temp_v1->unk3C, 0x3DF5C28F, temp_v1->unk34, temp_v1->unkC0, 0x64) != 0) { - sp28 = temp_v1; - func_80072488(arg0); - } - sp28 = temp_t6 + &D_80165C18; - func_8008BF18(arg0); - (temp_t6 + &D_80165C18)->unkB2 = (temp_t6 + &D_80165C18)->unkB2 + D_8016582C.unk0; - (temp_t6 + &D_80165C18)->unkB4 = (temp_t6 + &D_80165C18)->unkB4 + D_8016582C.unk2; - (temp_t6 + &D_80165C18)->unkB6 = (temp_t6 + &D_80165C18)->unkB6 + D_8016582C.unk4; + func_8008BF18(objectIndex); + temp_v1->unk_0B2 = (u16) temp_v1->unk_0B2 + D_8016582C.unk0; + temp_v1->unk_0B4 = (u16) temp_v1->unk_0B4 + D_8016582C.unk2; + temp_v1->unk_0B6 = (u16) temp_v1->unk_0B6 + D_8016582C.unk4; + return; + case 2: + func_80086F60(objectIndex); + func_80072428(objectIndex); + /* fallthrough */ + case 0: + return; } } #else @@ -1603,99 +1552,83 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80074FD8.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800723A4(?); // extern -extern f64 D_800EEAB0; -extern f64 D_800EEAB8; -extern f64 D_800EEAC0; -extern f64 D_800EEAC8; -extern ? D_80165C18; - -void func_800750D8(s32 arg0, s32 arg1, void *arg2, s32 arg3, s32 arg4) { +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +void func_800750D8(s32 objectIndex, s32 arg1, f32 *arg2, s32 arg3, s32 arg4) { s32 sp24; s32 sp20; - void *sp18; - f64 temp_f18; + struct_80165C18_entry *sp18; + f64 var_f18; s16 temp_a0; - s32 temp_v0; - s32 temp_v0_2; - void *temp_v1; - f64 phi_f18; + struct_80165C18_entry *temp_v1; + u16 temp_v0; + u16 temp_v0_2; - func_800723A4(0); - sp24 = random_int(0x1F4); - temp_v0 = random_int(0x32); - temp_v1 = (arg0 * 0xE0) + &D_80165C18; - temp_v1->unkD5 = arg3; - temp_v1->unk0 = (sp24 * D_800EEAB0) + D_800EEAB8; - temp_v1->unk3C = (temp_v0 * D_800EEAC0) + 2.0; - temp_v1->unkC0 = (arg1 << 0x10) / arg4; - temp_v1->unk34 = ((temp_v0 % 5) * D_800EEAC8) + 1.0; - sp20 = temp_v0; + func_800723A4(objectIndex, 0); + sp24 = random_int(0x01F4U); + temp_v0 = random_int(0x0032U); + temp_v1 = &D_80165C18[objectIndex]; + temp_v1->unk_0D5 = (s8) arg3; + temp_v1->unk_000 = (f32) (((f64) (f32) sp24 * 0.0005) + 0.05); + temp_v1->unk_03C = (f32) (((f64) (f32) temp_v0 * 0.05) + 2.0); + temp_v1->unk_0C0 = (u16) ((s32) (arg1 << 0x10) / arg4); + temp_v1->unk_034 = (f32) (((f64) (f32) ((s32) temp_v0 % 5) * 0.1) + 1.0); + sp20 = (s32) temp_v0; sp18 = temp_v1; - temp_v1->unk10 = (arg2->unk0 + (temp_v0 / 2)) - 12.0f; - temp_v0_2 = random_int(0xA); - temp_f18 = temp_v0_2; - phi_f18 = temp_f18; - if (temp_v0_2 < 0) { - phi_f18 = temp_f18 + 4294967296.0; + temp_v1->unk_010[0] = (arg2->unk0 + (f32) ((s32) temp_v0 / 2)) - 12.0f; + temp_v0_2 = random_int(0x000AU); + var_f18 = (f64) temp_v0_2; + if ((s32) temp_v0_2 < 0) { + var_f18 += 4294967296.0; } temp_a0 = temp_v0 * 0x50; - temp_v1->unk14 = phi_f18 + (arg2->unk4 - 10.0); - temp_v1->unkB2 = sp24 << 7; - temp_v1->unkB4 = temp_a0; - temp_v1->unkB6 = temp_a0; - temp_v1->unk18 = (arg2->unk8 + (temp_v0 / 2)) - 12.0f; + temp_v1->unk_010[1] = (f32) (var_f18 + ((f64) arg2->unk4 - 10.0)); + temp_v1->unk_0B2 = sp24 << 7; + temp_v1->unk_0B4 = temp_a0; + temp_v1->unk_0B6 = temp_a0; + temp_v1->unk_010[2] = (arg2->unk8 + (f32) ((s32) temp_v0 / 2)) - 12.0f; } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800750D8.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s32 func_80072044(? *, ? *, ?); // extern -? func_800750D8(s32, s32, s32, s32, s32); // extern -extern ? D_80183E38; -extern ? D_80183E4C; -extern ? D_80183E5C; -extern ? D_8018C1B0; -extern ? D_8018C3F0; -extern ? D_8018C630; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_800750D8(s32, s32, s32, s32, s32); /* extern */ +extern s32 D_80183E38; +extern s32 D_80183E4C; +extern s32 D_80183E5C; +extern s32 D_8018C1B0; +extern s32 D_8018C3F0; +extern s32 D_8018C630; void func_80075304(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { s32 sp48; - s32 temp_s1; - s32 phi_s0; - s32 phi_s1; - s32 phi_v0; + s32 var_s0; + s32 var_s1; + s32 var_v0; - phi_s1 = 0; + var_s1 = 0; if (arg3 > 0) { - phi_s0 = sp48; + var_s0 = sp48; loop_2: - if (arg1 != 1) { - if (arg1 != 2) { - if (arg1 != 3) { - - } else { - phi_v0 = func_80072044(&D_8018C630, &D_80183E5C, 0x80); - goto block_9; - } - } else { - phi_v0 = func_80072044(&D_8018C3F0, &D_80183E4C, 0x80); - goto block_9; - } - } else { - phi_v0 = func_80072044(&D_8018C1B0, &D_80183E38, 0x80); + switch (arg1) { /* irregular */ + case 1: + var_v0 = func_80072044(&D_8018C1B0, &D_80183E38, 0x00000080); block_9: - phi_s0 = phi_v0; + var_s0 = var_v0; + break; + case 2: + var_v0 = func_80072044(&D_8018C3F0, &D_80183E4C, 0x00000080); + goto block_9; + case 3: + var_v0 = func_80072044(&D_8018C630, &D_80183E5C, 0x00000080); + goto block_9; } - if (phi_s0 != -1) { - func_800750D8(phi_s0, phi_s1, arg0, arg2, arg3); - temp_s1 = phi_s1 + 1; - phi_s1 = temp_s1; - if (temp_s1 == arg3) { - sp48 = phi_s0; + if (var_s0 != -1) { + func_800750D8(var_s0, var_s1, arg0, arg2, arg3); + var_s1 += 1; + if (var_s1 == arg3) { + sp48 = var_s0; } else { goto loop_2; } @@ -1707,133 +1640,110 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80075304.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072100(s32); // extern -? func_80074FD8(s32); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_80074FD8(s32); /* extern */ extern ? D_8016582C; -extern ? D_80165C18; extern ? D_8018C1B0; extern ? D_8018C3F0; extern ? D_8018C630; void func_8007542C(s32 arg0) { ? *sp44; + ? *var_s3; + s32 *var_v0; s32 temp_a0; - s32 temp_s2; - void *temp_s0; - s32 *phi_v0; - s32 phi_s2; - ? *phi_s3; - ? *phi_s3_2; - s32 phi_s1; - ? *phi_s3_3; + s32 var_s1; + s32 var_s2; + struct_80165C18_entry *temp_s0; - D_8016582C.unk0 = D_8016582C.unk0 + 0x2000; - D_8016582C.unk2 = D_8016582C.unk2 + 0x1000; - D_8016582C.unk4 = D_8016582C.unk4 + 0x1800; - phi_s2 = 0; - phi_s3_2 = sp44; - phi_s1 = 0; + D_8016582C.unk0 = (u16) (D_8016582C.unk0 + 0x2000); + D_8016582C.unk2 = (u16) (D_8016582C.unk2 + 0x1000); + D_8016582C.unk4 = (u16) (D_8016582C.unk4 + 0x1800); + var_s1 = 0; + var_s2 = 0; + var_s3 = sp44; do { - phi_s3 = phi_s3_2; - if (arg0 != 1) { - if (arg0 != 2) { - if (arg0 != 3) { - phi_v0 = phi_s3_2 + phi_s1; - } else { - phi_s3_3 = &D_8018C630; - goto block_8; - } - } else { - phi_s3_3 = &D_8018C3F0; - goto block_8; - } - } else { - phi_s3_3 = &D_8018C1B0; + switch (arg0) { /* irregular */ + default: + var_v0 = var_s3 + var_s1; + break; + case 1: + var_s3 = &D_8018C1B0; block_8: - phi_v0 = phi_s1 + phi_s3_3; - phi_s3 = phi_s3_3; + var_v0 = var_s1 + var_s3; + break; + case 2: + var_s3 = &D_8018C3F0; + goto block_8; + case 3: + var_s3 = &D_8018C630; + goto block_8; } - temp_a0 = *phi_v0; - phi_s3_2 = phi_s3; + temp_a0 = *var_v0; if (temp_a0 != -1) { - temp_s0 = (temp_a0 * 0xE0) + &D_80165C18; - if (temp_s0->unkA6 != 0) { + temp_s0 = &D_80165C18[temp_a0]; + if (temp_s0->unk_0A6 != 0) { func_80074FD8(temp_a0); - if (temp_s0->unkA6 == 0) { - func_80072100((phi_s2 * 4) + phi_s3); + if (temp_s0->unk_0A6 == 0) { + func_80072100((s32) ((var_s2 * 4) + var_s3)); } } } - temp_s2 = phi_s2 + 1; - phi_s2 = temp_s2; - phi_s1 += 4; - } while (temp_s2 != 0x80); - sp44 = phi_s3; + var_s2 += 1; + var_s1 += 4; + } while (var_s2 != 0x80); + sp44 = var_s3; } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007542C.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800723A4(?, void *); // extern -extern ? D_80165C18; +void func_80075574(s32 objectIndex, Vec3f arg1, f32 arg2) { + struct_80165C18_entry *temp_v1; + s32 pad0; + s32 pad1; -void func_80075574(s32 arg0, void *arg1, f32 arg2) { - void *sp18; - void *temp_a2; - void *temp_v1; - - temp_a2 = arg1; - arg1 = temp_a2; - func_800723A4(0, temp_a2); - temp_v1 = (arg0 * 0xE0) + &D_80165C18; - temp_v1->unk10 = arg1->unk0; - temp_v1->unk14 = arg1->unk4; - sp18 = temp_v1; - temp_v1->unk3C = arg2; - temp_v1->unk18 = arg1->unk8; - temp_v1->unkA4 = random_int(0x64) + 0x1E; + func_800723A4(objectIndex, 0); + temp_v1 = &D_80165C18[objectIndex]; + temp_v1->unk_010[0] = arg1[0]; + temp_v1->unk_010[1] = arg1[1]; + temp_v1->unk_010[2] = arg1[2]; + temp_v1->unk_038[1] = arg2; + temp_v1->unk_0A4 = random_int(0x0064U) + 0x1E; } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80075574.s") -#endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s32 func_80072044(? *, ? *, ?); // extern -? func_80075574(s32, s32, s32); // extern -extern ? D_80183E4C; -extern ? D_80183E5C; -extern ? D_8018C3F0; -extern ? D_8018C630; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s32 D_80183E4C; +extern s32 D_80183E5C; +extern s32 D_8018C3F0; +extern s32 D_8018C630; -s32 func_800755FC(s32 arg0, s32 arg1, s32 arg2) { +s32 func_800755FC(s32 arg0, f32 *arg1, f32 arg2) { s32 sp1C; s32 temp_v0; s32 temp_v0_2; - s32 phi_a0; + s32 var_a0; if (arg0 == 0) { - temp_v0 = func_80072044(&D_8018C3F0, &D_80183E4C, 0x80); - phi_a0 = temp_v0; + temp_v0 = func_80072044(&D_8018C3F0, &D_80183E4C, 0x00000080); + var_a0 = temp_v0; if (temp_v0 != -1) { sp1C = temp_v0; - func_80075574(temp_v0, arg1, arg2); + func_80075574(var_a0, arg1, arg2); goto block_5; } } else { - temp_v0_2 = func_80072044(&D_8018C630, &D_80183E5C, 0x80); - phi_a0 = temp_v0_2; + temp_v0_2 = func_80072044(&D_8018C630, &D_80183E5C, 0x00000080); + var_a0 = temp_v0_2; if (temp_v0_2 != -1) { sp1C = temp_v0_2; - func_80075574(temp_v0_2, arg1, arg2); + func_80075574(var_a0, arg1, arg2); block_5: - phi_a0 = sp1C; + var_a0 = sp1C; } } - return phi_a0; + return var_a0; } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800755FC.s") @@ -1854,38 +1764,35 @@ void func_80075698(s32 arg0) { func_80072488(arg0); } -void func_80075714(s32 arg0) { - switch (D_80165C18[arg0].unk_0A6) { +void func_80075714(s32 objectIndex) { + switch (D_80165C18[objectIndex].unk_0A6) { case 1: - func_80075698(arg0); + func_80075698(objectIndex); break; case 2: - D_80165C18[arg0].unk_03C -= D_800EEAD0; - f32_step_up_towards(&D_80165C18[arg0].unk_028[1], 100.0f, D_80165C18[arg0].unk_03C); - func_8007415C(arg0, &D_80165C18[arg0].unk_000, 0.55f, 1.0f, D_800EEAD8, 1, 0); - if (func_80073B00(arg0, &D_80165C18[arg0].unk_0A0, 0xFF, 0x1E, 7, 0, 0) != 0) { - func_80072488(arg0); + D_80165C18[objectIndex].unk_038[1] -= D_800EEAD0; + f32_step_up_towards(&D_80165C18[objectIndex].unk_028[1], 100.0f, D_80165C18[objectIndex].unk_038[1]); + func_8007415C(objectIndex, &D_80165C18[objectIndex].unk_000, 0.55f, 1.0f, D_800EEAD8, 1, 0); + if (func_80073B00(objectIndex, &D_80165C18[objectIndex].unk_0A0, 0xFF, 0x1E, 7, 0, 0) != 0) { + func_80072488(objectIndex); } break; case 3: - func_80072428(arg0); + func_80072428(objectIndex); break; case 0: break; } - func_8008BF18(arg0); + func_8008BF18(objectIndex); } #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072100(s32 *); // extern -? func_80075714(s32); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern s32 D_801636A0; extern s32 D_801637AC; extern s16 D_8016578C; extern s16 D_80165790; -extern ? D_80165C18; extern s32 D_8018C3F0; extern ? D_8018C5F0; extern s32 D_8018C630; @@ -1894,18 +1801,14 @@ extern ? D_8018C830; void func_80075838(void) { s16 temp_v0; s16 temp_v0_2; - s32 *temp_s1; - s32 *temp_s1_2; + s32 *var_s1; + s32 *var_s1_2; s32 temp_a0; s32 temp_a0_2; - void *temp_s0; - void *temp_s0_2; - s32 *phi_s1; - s32 phi_s2; - s32 *phi_s1_2; - s32 phi_s2_2; - s32 phi_s2_3; - s32 phi_s2_4; + s32 var_s2; + s32 var_s2_2; + struct_80165C18_entry *temp_s0; + struct_80165C18_entry *temp_s0_2; temp_v0 = D_8016578C; if (temp_v0 != 0) { @@ -1915,52 +1818,46 @@ void func_80075838(void) { if (temp_v0_2 != 0) { D_80165790 = temp_v0_2 - 1; } - phi_s2_3 = 0; - phi_s2_4 = 0; + var_s2 = 0; if ((D_801636A0 != 0) || (D_8016578C != 0)) { - phi_s1 = &D_8018C3F0; + var_s1 = &D_8018C3F0; do { - temp_a0 = *phi_s1; - phi_s2 = phi_s2_3; + temp_a0 = *var_s1; if (temp_a0 != -1) { - temp_s0 = &D_80165C18 + (temp_a0 * 0xE0); - if (temp_s0->unkA6 != 0) { + temp_s0 = &D_80165C18[temp_a0]; + if (temp_s0->unk_0A6 != 0) { func_80075714(temp_a0); - if (temp_s0->unkA6 == 0) { - func_80072100(phi_s1); + if (temp_s0->unk_0A6 == 0) { + func_80072100((s32) var_s1); } - phi_s2 = phi_s2_3 + 1; + var_s2 += 1; } } - temp_s1 = phi_s1 + 4; - phi_s1 = temp_s1; - phi_s2_3 = phi_s2; - } while (temp_s1 != &D_8018C5F0); - if (phi_s2 != 0) { - D_8016578C = 0x64; + var_s1 += 4; + } while (var_s1 != &D_8018C5F0); + if (var_s2 != 0) { + D_8016578C = 0x0064; } } if ((D_801637AC != 0) || (D_80165790 != 0)) { - phi_s1_2 = &D_8018C630; + var_s2_2 = 0; + var_s1_2 = &D_8018C630; do { - temp_a0_2 = *phi_s1_2; - phi_s2_2 = phi_s2_4; + temp_a0_2 = *var_s1_2; if (temp_a0_2 != -1) { - temp_s0_2 = &D_80165C18 + (temp_a0_2 * 0xE0); - if (temp_s0_2->unkA6 != 0) { + temp_s0_2 = &D_80165C18[temp_a0_2]; + if (temp_s0_2->unk_0A6 != 0) { func_80075714(temp_a0_2); - if (temp_s0_2->unkA6 == 0) { - func_80072100(phi_s1_2); + if (temp_s0_2->unk_0A6 == 0) { + func_80072100((s32) var_s1_2); } - phi_s2_2 = phi_s2_4 + 1; + var_s2_2 += 1; } } - temp_s1_2 = phi_s1_2 + 4; - phi_s1_2 = temp_s1_2; - phi_s2_4 = phi_s2_2; - } while (temp_s1_2 != &D_8018C830); - if (phi_s2_2 != 0) { - D_80165790 = 0x64; + var_s1_2 += 4; + } while (var_s1_2 != &D_8018C830); + if (var_s2_2 != 0) { + D_80165790 = 0x0064; } } } @@ -1968,29 +1865,18 @@ void func_80075838(void) { GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80075838.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800723A4(?, void *); // extern -extern ? D_80165C18; +void func_800759EC(s32 objectIndex, Vec3f arg1, f32 arg2) { + struct_80165C18_entry *temp_v0; -void func_800759EC(s32 arg0, void *arg1, f32 arg2) { - void *temp_a2; - void *temp_v0; - - temp_a2 = arg1; - arg1 = temp_a2; - func_800723A4(0, temp_a2); - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unk10 = arg1->unk0; - temp_v0->unk14 = arg1->unk4; - temp_v0->unkA4 = 0xFF; - temp_v0->unkA2 = 0x96; - temp_v0->unk3C = arg2; - temp_v0->unk18 = arg1->unk8; + func_800723A4(objectIndex, 0); + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_010[0] = arg1[0]; + temp_v0->unk_010[1] = arg1[1]; + temp_v0->unk_010[2] = arg1[2]; + temp_v0->unk_038[1] = arg2; + temp_v0->unk_0A4 = 0x00FF; + temp_v0->unk_0A2 = 0x0096; } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800759EC.s") -#endif s32 func_80075A6C(s32 arg0, s32 arg1, f32 arg2) { s32 temp_v0; @@ -2031,8 +1917,8 @@ void func_80075B84(s32 arg0) { func_80075B08(arg0); break; case 2: - D_80165C18[arg0].unk_03C -= D_800EEAE0; - f32_step_up_towards(&D_80165C18[arg0].unk_028[1], 100.0f, D_80165C18[arg0].unk_03C); + D_80165C18[arg0].unk_038[1] -= D_800EEAE0; + f32_step_up_towards(&D_80165C18[arg0].unk_028[1], 100.0f, D_80165C18[arg0].unk_038[1]); func_8007415C(arg0, &D_80165C18[arg0].unk_000, 0.55f, 1.0f, D_800EEAE8, 1, 0); if (func_80073B00(arg0, &D_80165C18[arg0].unk_0A0, 0xFF, 0x1E, 7, 0, 0) != 0) { func_80072488(arg0); @@ -2049,14 +1935,11 @@ void func_80075B84(s32 arg0) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072100(s32 *); // extern -? func_80075B84(s32); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern s32 D_801637E8; extern s32 D_80163814; extern s16 D_8016578C; extern s16 D_80165790; -extern ? D_80165C18; extern s32 D_8018C3F0; extern ? D_8018C5F0; extern s32 D_8018C630; @@ -2065,18 +1948,14 @@ extern ? D_8018C830; void func_80075CA8(void) { s16 temp_v0; s16 temp_v0_2; - s32 *temp_s1; - s32 *temp_s1_2; + s32 *var_s1; + s32 *var_s1_2; s32 temp_a0; s32 temp_a0_2; - void *temp_s0; - void *temp_s0_2; - s32 *phi_s1; - s32 phi_s2; - s32 *phi_s1_2; - s32 phi_s2_2; - s32 phi_s2_3; - s32 phi_s2_4; + s32 var_s2; + s32 var_s2_2; + struct_80165C18_entry *temp_s0; + struct_80165C18_entry *temp_s0_2; temp_v0 = D_8016578C; if (temp_v0 != 0) { @@ -2086,52 +1965,46 @@ void func_80075CA8(void) { if (temp_v0_2 != 0) { D_80165790 = temp_v0_2 - 1; } - phi_s2_3 = 0; - phi_s2_4 = 0; + var_s2 = 0; if ((D_801637E8 != 0) || (D_8016578C != 0)) { - phi_s1 = &D_8018C3F0; + var_s1 = &D_8018C3F0; do { - temp_a0 = *phi_s1; - phi_s2 = phi_s2_3; + temp_a0 = *var_s1; if (temp_a0 != -1) { - temp_s0 = &D_80165C18 + (temp_a0 * 0xE0); - if (temp_s0->unkA6 != 0) { + temp_s0 = &D_80165C18[temp_a0]; + if (temp_s0->unk_0A6 != 0) { func_80075B84(temp_a0); - if (temp_s0->unkA6 == 0) { - func_80072100(phi_s1); + if (temp_s0->unk_0A6 == 0) { + func_80072100((s32) var_s1); } - phi_s2 = phi_s2_3 + 1; + var_s2 += 1; } } - temp_s1 = phi_s1 + 4; - phi_s1 = temp_s1; - phi_s2_3 = phi_s2; - } while (temp_s1 != &D_8018C5F0); - if (phi_s2 != 0) { - D_8016578C = 0x64; + var_s1 += 4; + } while (var_s1 != &D_8018C5F0); + if (var_s2 != 0) { + D_8016578C = 0x0064; } } if ((D_80163814 != 0) || (D_80165790 != 0)) { - phi_s1_2 = &D_8018C630; + var_s2_2 = 0; + var_s1_2 = &D_8018C630; do { - temp_a0_2 = *phi_s1_2; - phi_s2_2 = phi_s2_4; + temp_a0_2 = *var_s1_2; if (temp_a0_2 != -1) { - temp_s0_2 = &D_80165C18 + (temp_a0_2 * 0xE0); - if (temp_s0_2->unkA6 != 0) { + temp_s0_2 = &D_80165C18[temp_a0_2]; + if (temp_s0_2->unk_0A6 != 0) { func_80075B84(temp_a0_2); - if (temp_s0_2->unkA6 == 0) { - func_80072100(phi_s1_2); + if (temp_s0_2->unk_0A6 == 0) { + func_80072100((s32) var_s1_2); } - phi_s2_2 = phi_s2_4 + 1; + var_s2_2 += 1; } } - temp_s1_2 = phi_s1_2 + 4; - phi_s1_2 = temp_s1_2; - phi_s2_4 = phi_s2_2; - } while (temp_s1_2 != &D_8018C830); - if (phi_s2_2 != 0) { - D_80165790 = 0x64; + var_s1_2 += 4; + } while (var_s1_2 != &D_8018C830); + if (var_s2_2 != 0) { + D_80165790 = 0x0064; } } } @@ -2139,37 +2012,26 @@ void func_80075CA8(void) { GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80075CA8.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800723A4(?, void *); // extern -extern ? D_80165C18; +void func_80075E5C(s32 objectIndex, Vec3f arg1, u16 arg2, f32 arg3, s32 arg4) { + struct_80165C18_entry *temp_v0; -void func_80075E5C(s32 arg0, void *arg1, u16 arg2, f32 arg3, s32 arg4) { - void *temp_a3; - void *temp_v0; - - temp_a3 = arg1; - arg1 = temp_a3; - func_800723A4(0, temp_a3); - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unkD5 = 5; - temp_v0->unk0 = 0.5f; - temp_v0->unk10 = arg1->unk0; - temp_v0->unk14 = arg1->unk4; - temp_v0->unkBE = 0xC00; - temp_v0->unkC2 = 0; - temp_v0->unk34 = arg3 * 4.0; - temp_v0->unkA4 = 0xFF; - temp_v0->unkA2 = 0xFF; - temp_v0->unk48 = arg4 * 2; - temp_v0->unk18 = arg1->unk8; - temp_v0->unkC0 = arg2; + func_800723A4(objectIndex, 0); + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_000 = 0.5f; + temp_v0->unk_0D5 = 5; + temp_v0->unk_010[0] = arg1[0]; + temp_v0->unk_010[1] = arg1[1]; + temp_v0->unk_010[2] = arg1[2]; + temp_v0->unk_0BE = 0x0C00; + temp_v0->unk_0C2 = 0; + temp_v0->unk_034 = arg3 * 4.0; + temp_v0->unk_0C0 = arg2; + temp_v0->unk_0A4 = 0x00FF; + temp_v0->unk_0A2 = 0x00FF; + temp_v0->unk_048 = arg4 * 2; } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80075E5C.s") -#endif -s32 func_80075F28(s32 arg0, u16 arg1, s32 arg2, s32 arg3) { +s32 func_80075F28(Vec3f arg0, u16 arg1, f32 arg2, s32 arg3) { s32 temp_v0; temp_v0 = func_80072044(&D_8018C1B0, &D_80183E38, 0x80); @@ -2180,19 +2042,15 @@ s32 func_80075F28(s32 arg0, u16 arg1, s32 arg2, s32 arg3) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s32 func_80075F28(s32, s32, ?, s32); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +void func_80075F98(Vec3f arg0, s32 arg1, f32 arg2) { + s32 var_s0; -void func_80075F98(s32 arg0, s32 arg1, ? arg2) { - s32 temp_s0; - s32 phi_s0; - - phi_s0 = 0; + var_s0 = 0; loop_1: - temp_s0 = phi_s0 + 1; - phi_s0 = temp_s0; - if (func_80075F28(arg0, arg1 & 0xFFFF & 0xFFFF, arg2, phi_s0) != -1) { - if (temp_s0 != 0xA) { + var_s0 += 1; + if (func_80075F28(arg0, arg1 & 0xFFFF & 0xFFFF, arg2, var_s0) != -1) { + if (var_s0 != 0x0000000A) { goto loop_1; } } @@ -2239,79 +2097,62 @@ void func_8007601C(s32 arg0) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_8007601C(s32); // extern -extern s32 D_8018BFA8; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern ? D_8018BFB8; void func_8007614C(void) { - s32 *temp_s0; - s32 *phi_s0; + s32 *var_s0; - phi_s0 = &D_8018BFA8; + var_s0 = D_8018BFA8; do { - func_8007601C(*phi_s0); - temp_s0 = phi_s0 + 4; - phi_s0 = temp_s0; - } while (temp_s0 != &D_8018BFB8); + func_8007601C(*var_s0); + var_s0 += 4; + } while (var_s0 != &D_8018BFB8); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007614C.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800723A4(?, void *); // extern -extern ? D_80165C18; +void func_80076194(s32 objectIndex, Vec3f arg1, f32 arg2, s32 arg3) { + struct_80165C18_entry *temp_v0; -void func_80076194(s32 arg0, void *arg1, f32 arg2, s32 arg3) { - void *temp_a2; - void *temp_v0; - - temp_a2 = arg1; - arg1 = temp_a2; - func_800723A4(0, temp_a2); - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unkD5 = 4; - temp_v0->unk0 = 1.0f; - temp_v0->unk10 = arg1->unk0; - temp_v0->unk14 = arg1->unk4; - temp_v0->unkBE = 0xC00; - temp_v0->unkC2 = 0; - temp_v0->unkC0 = 0x2100; - temp_v0->unk18 = arg1->unk8; + func_800723A4(objectIndex, 0); + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_0D5 = 4; + temp_v0->unk_000 = 1.0f; + temp_v0->unk_010[0] = arg1[0]; + temp_v0->unk_010[1] = arg1[1]; + temp_v0->unk_010[2] = arg1[2]; + temp_v0->unk_0BE = 0x0C00; + temp_v0->unk_0C2 = 0; + temp_v0->unk_0C0 = 0x2100; if (gIsMirrorMode != 0) { - temp_v0->unkC0 = -0x1F00; + temp_v0->unk_0C0 += -0x4000; } - temp_v0->unkA4 = 0xFF; - temp_v0->unkA2 = 0xFF; - temp_v0->unk48 = arg3 * 2; - temp_v0->unk34 = arg2 * 8.0; + temp_v0->unk_0A4 = 0x00FF; + temp_v0->unk_0A2 = 0x00FF; + temp_v0->unk_048 = arg3 * 2; + temp_v0->unk_034 = arg2 * 8.0; } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80076194.s") -#endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s32 func_80072044(? *, ? *, ?); // extern -? func_80076194(s32, s32, s32, s32); // extern -extern ? D_80183E38; -extern ? D_8018C1B0; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s32 D_80183E38; +extern s32 D_8018C1B0; -s32 func_80076278(s32 arg0, s32 arg1, s32 arg2) { +s32 func_80076278(f32 *arg0, f32 arg1, s32 arg2) { s32 sp1C; s32 temp_v0; - s32 phi_a0; + s32 var_a0; - temp_v0 = func_80072044(&D_8018C1B0, &D_80183E38, 0x80); - phi_a0 = temp_v0; + temp_v0 = func_80072044(&D_8018C1B0, &D_80183E38, 0x00000080); + var_a0 = temp_v0; if (temp_v0 != -1) { sp1C = temp_v0; - func_80076194(temp_v0, arg0, arg1, arg2); - phi_a0 = sp1C; + func_80076194(var_a0, arg0, arg1, arg2); + var_a0 = sp1C; } - return phi_a0; + return var_a0; } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80076278.s") @@ -2340,251 +2181,194 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800762DC.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072488(s32); // extern -? func_8008B80C(s32, ?, ?, ?); // extern -? func_8008B8BC(?, ?, ?); // extern -extern ? D_0D02BC58; -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s32 D_0D02BC58; -void func_8007634C(s32 arg0) { - void *temp_v0; +void func_8007634C(s32 objectIndex) { + struct_80165C18_entry *temp_v0; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unk64 = &D_0D02BC58; - temp_v0->unk6C = &D_0D02BC58; - temp_v0->unkA0 = 0xFF; - func_8008B8BC(0, 0, 0); - func_8008B80C(arg0, 0, 0, 0); - func_80072488(arg0); + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_064 = &D_0D02BC58; + temp_v0->unk_06C = (s32) &D_0D02BC58; + temp_v0->unk_0A0 = 0x00FF; + func_8008B8BC(objectIndex, 0U, 0U, 0U); + func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); + func_80072488(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007634C.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? s16_step_towards(void *, ?, ?); /* extern */ -? f32_step_towards(void *, ?, ?); /* extern */ -? func_80072428(s32); /* extern */ -? func_80072488(s32); /* extern */ -s32 func_80073B00(s32, void *, ?, ?, s32, s32, s32); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_8007634C(s32); /* extern */ -? func_80086E70(s32); /* extern */ -? func_80086F60(s32); /* extern */ -extern ? D_80165C18; -void func_800763CC(s32 arg0) { +void func_800763CC(s32 objectIndex) { + struct_80165C18_entry *temp_s0; u16 temp_t8; - void *temp_s0; - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_t8 = temp_s0->unkA6; + temp_s0 = &D_80165C18[objectIndex]; + temp_t8 = (u16) temp_s0->unk_0A6; switch (temp_t8) { case 1: - func_8007634C(arg0); + func_8007634C(objectIndex); return; case 2: - if (func_8007278C(arg0, temp_s0->unk48) != 0) { - func_80086E70(arg0); + if (func_8007278C(objectIndex, temp_s0->unk_048) != 0) { + func_80086E70(objectIndex); return; } default: return; case 3: - if (temp_s0->unkD5 == 4) { - f32_step_towards(temp_s0, 0x40800000, 0x3DCCCCCD); - s16_step_towards(temp_s0 + 0xA4, 0, 0x18); - s16_step_towards(temp_s0 + 0xA2, 0x80, 0xC); + if ((u8) temp_s0->unk_0D5 == 4) { + f32_step_towards(&temp_s0->unk_000, 4.0f, 0.1f); + s16_step_towards(&temp_s0->unk_0A4, 0, 0x0018); + s16_step_towards(&temp_s0->unk_0A2, 0x0080, 0x000C); } else { - f32_step_towards(temp_s0, 0x3F800000, 0x3DCCCCCD); - s16_step_towards(temp_s0 + 0xA4, 0, 0x18); - s16_step_towards(temp_s0 + 0xA2, 0x80, 0xC); + f32_step_towards(&temp_s0->unk_000, 1.0f, 0.1f); + s16_step_towards(&temp_s0->unk_0A4, 0, 0x0018); + s16_step_towards(&temp_s0->unk_0A2, 0x0080, 0x000C); } - if ((temp_s0->unkAE >= 2) && (func_80073B00(arg0, temp_s0 + 0xA0, 0xFF, 0x50, 0x20, 0, 0) != 0)) { - func_80072488(arg0); + if ((temp_s0->unk_0AE >= 2) && (func_80073B00(objectIndex, &temp_s0->unk_0A0, 0x000000FF, 0x00000050, 0x00000020, 0, 0) != 0)) { + func_80072488(objectIndex); return; } - /* Duplicate return node #12. Try simplifying control flow for better match */ - return; + break; case 4: - func_80072428(arg0); - func_80086F60(arg0); - /* Duplicate return node #12. Try simplifying control flow for better match */ - return; + func_80072428(objectIndex); + func_80086F60(objectIndex); + break; } } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800763CC.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? u16_step_down_towards(void *, ?, ?); // extern -? func_80086FD4(s32); // extern -s32 func_80087060(s32, ?); // extern -? func_80087844(s32); // extern -? func_8008BF18(s32); // extern -extern ? D_80165C18; - -void func_80076538(s32 arg0) { - s16 temp_v1; - void *temp_s0; - - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_v1 = temp_s0->unkAE; - if (temp_v1 != 0) { - if (temp_v1 != 1) { - if (temp_v1 != 2) { - - } else { - u16_step_down_towards(temp_s0 + 0xBE, 0, 0x400); - goto block_11; +void func_80076538(s32 objectIndex) { + switch (D_80165C18[objectIndex].unk_0AE) { + case 0: + break; + case 1: + if ((u8) D_80165C18[objectIndex].unk_0D5 == 4) { + if (func_80087060(objectIndex, 0x0000000E) != 0) { + func_80086FD4(objectIndex); } - } else { - if (temp_s0->unkD5 == 4) { - if (func_80087060(arg0, 0xE) != 0) { - func_80086FD4(arg0); - } - } else if (func_80087060(arg0, 2) != 0) { - func_80086FD4(arg0); - } -block_11: + } else if (func_80087060(objectIndex, 2) != 0) { + func_80086FD4(objectIndex); } + break; + case 2: + u16_step_down_towards(&D_80165C18[objectIndex].unk_0BE, 0, 0x00000400); + break; } - if (temp_s0->unkAE > 0) { - func_80087844(arg0); - func_8008BF18(arg0); + if (D_80165C18[objectIndex].unk_0AE > 0) { + func_80087844(objectIndex); + func_8008BF18(objectIndex); } } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80076538.s") -#endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s32 func_8007223C(s32, ?); // extern -? func_800722A4(s32, ?); // extern -? func_800722CC(s32, ?); // extern -s32 func_80072354(s32, ?); // extern -? func_800762DC(void *, ?); // extern -? func_8008A6DC(s32, ?); // extern -s32 func_8008A8B0(?, ?); // extern -? func_800C9D80(void *, void *, ?); // extern -? func_800C9EF4(void *, ?); // extern -extern ? D_80165C18; -extern s32 D_80183F28; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_800762DC(f32 *, ?); /* extern */ +? func_800C9EF4(f32 *, ?); /* extern */ void func_8007661C(void) { - void *sp24; + f32 *sp24; s16 temp_v0_3; s32 temp_s1; s32 temp_t0; s32 temp_t8; s32 temp_v0; s32 temp_v0_2; - void *temp_s0; + struct_80165C18_entry *temp_s0; - temp_s1 = D_80183F28; - temp_s0 = (temp_s1 * 0xE0) + &D_80165C18; - temp_v0 = temp_s0->unk4C; + temp_s1 = *D_80183F28; + temp_s0 = &D_80165C18[temp_s1]; + temp_v0 = temp_s0->unk_04C; temp_t8 = temp_v0 - 1; if (temp_v0 > 0) { - temp_s0->unk4C = temp_t8; + temp_s0->unk_04C = temp_t8; if (temp_t8 == 0) { func_800722CC(temp_s1, 1); } } - temp_v0_2 = temp_s0->unk48; + temp_v0_2 = temp_s0->unk_048; temp_t0 = temp_v0_2 - 1; if (temp_v0_2 > 0) { - temp_s0->unk48 = temp_t0; + temp_s0->unk_048 = temp_t0; if (temp_t0 == 0) { - func_800C9EF4(temp_s0 + 4, 0x51038009); + func_800C9EF4(temp_s0->unk_004, 0x51038009); } } - if (temp_s0->unk4C == 0) { - func_8008A6DC(temp_s1, 0x443B8000); - if ((func_8007223C(temp_s1, 0x40000) != 0) && (func_80072354(temp_s1, 1) != 0)) { - sp24 = temp_s0 + 4; + if (temp_s0->unk_04C == 0) { + func_8008A6DC(temp_s1, 750.0f); + if ((func_8007223C(temp_s1, 0x00040000) != 0) && (func_80072354(temp_s1, 1) != 0)) { + sp24 = temp_s0->unk_004; func_800722A4(temp_s1, 1); func_800762DC(sp24, 0x3F800000); - func_800C9D80(sp24, temp_s0 + 0x38, 0x51038009); - temp_v0_3 = temp_s0->unkA4; + func_800C9D80((f32 (*)[3]) sp24, (f32 (*)[3]) temp_s0->unk_038, 0x51038009U); + temp_v0_3 = temp_s0->unk_0A4; if (temp_v0_3 > 0) { - temp_s0->unkA4 = temp_v0_3 - 1; - temp_s0->unk4C = 0x5A; + temp_s0->unk_0A4 = temp_v0_3 - 1; + temp_s0->unk_04C = 0x0000005A; } else { - temp_s0->unk4C = 0x12C; + temp_s0->unk_04C = 0x0000012C; } - temp_s0->unk48 = 0x3C; + temp_s0->unk_048 = 0x0000003C; } } if (func_8008A8B0(4, 5) == 0) { - temp_s0->unkA4 = 2; + temp_s0->unk_0A4 = 2; } } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007661C.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800723A4(?, void *); // extern -extern ? D_80165C18; +void func_8007675C(s32 objectIndex, Vec3s arg1, s32 arg2) { + struct_80165C18_entry *temp_v0; -void func_8007675C(s32 arg0, void *arg1, s32 arg2) { - void *temp_a3; - void *temp_v0; - - temp_a3 = arg1; - arg1 = temp_a3; - func_800723A4(0, temp_a3); - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unkD5 = 9; - temp_v0->unk0 = 1.0f; - temp_v0->unk10 = arg1->unk0; - temp_v0->unk14 = arg1->unk2; - temp_v0->unkBE = 0xC00; - temp_v0->unkC0 = 0x2100; - temp_v0->unkC2 = 0; - temp_v0->unkA4 = 0xFF; - temp_v0->unkA2 = 0xFF; - temp_v0->unk34 = 8.0f; - temp_v0->unk3C = 8.0f; - temp_v0->unk48 = arg2; - temp_v0->unk18 = arg1->unk4; + func_800723A4(objectIndex, 0); + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_0D5 = 9; + temp_v0->unk_000 = 1.0f; + temp_v0->unk_010[0] = arg1[0]; + temp_v0->unk_010[1] = arg1[1]; + temp_v0->unk_010[2] = arg1[2]; + temp_v0->unk_0BE = 0x0C00; + temp_v0->unk_0C0 = 0x2100; + temp_v0->unk_0C2 = 0; + temp_v0->unk_0A4 = 0x00FF; + temp_v0->unk_0A2 = 0x00FF; + temp_v0->unk_034 = 8.0f; + temp_v0->unk_038[1] = 8.0f; + temp_v0->unk_048 = arg2; } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007675C.s") -#endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s32 func_80072044(? *, ? *, ?); // extern -? func_8007675C(s32, s32, s32); // extern -extern ? D_80183E38; -extern ? D_8018C1B0; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s32 D_80183E38; +extern s32 D_8018C1B0; -s32 func_80076828(s32 arg0, s32 arg1) { +s32 func_80076828(s16 *arg0, s32 arg1) { s32 sp1C; s32 temp_v0; - s32 phi_a0; + s32 var_a0; - temp_v0 = func_80072044(&D_8018C1B0, &D_80183E38, 0x80); - phi_a0 = temp_v0; + temp_v0 = func_80072044(&D_8018C1B0, &D_80183E38, 0x00000080); + var_a0 = temp_v0; if (temp_v0 != -1) { sp1C = temp_v0; - func_8007675C(temp_v0, arg0, arg1); - phi_a0 = sp1C; + func_8007675C(var_a0, arg0, arg1); + var_a0 = sp1C; } - return phi_a0; + return var_a0; } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80076828.s") #endif - #ifdef MIPS_TO_C UNUSED void func_80076884(s32 arg0) { s32 temp_v0; @@ -2620,71 +2404,57 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80076884.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072488(s32); // extern -? func_8008B80C(s32, ?, ?, ?); // extern -? func_8008B8BC(?, ?, ?); // extern -extern ? D_0D02BC58; -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s32 D_0D02BC58; -void func_80076958(s32 arg0) { - void *temp_v0; +void func_80076958(s32 objectIndex) { + struct_80165C18_entry *temp_v0; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unk64 = &D_0D02BC58; - temp_v0->unk6C = &D_0D02BC58; - temp_v0->unkA0 = 0xFF; - func_8008B8BC(0, 0, 0); - func_8008B80C(arg0, 0, 0, 0); - func_80072488(arg0); + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_064 = &D_0D02BC58; + temp_v0->unk_06C = (s32) &D_0D02BC58; + temp_v0->unk_0A0 = 0x00FF; + func_8008B8BC(objectIndex, 0U, 0U, 0U); + func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); + func_80072488(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80076958.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? s16_step_towards(void *, ?, ?); /* extern */ -? f32_step_towards(void *, ?, ?); /* extern */ -? func_80072428(s32); /* extern */ -? func_80072488(s32); /* extern */ -s32 func_80073B00(s32, void *, ?, ?, s32, s32, s32); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_80076958(s32); /* extern */ -? func_80086E70(s32); /* extern */ -? func_80086F60(s32); /* extern */ -extern ? D_80165C18; -void func_800769D8(s32 arg0) { +void func_800769D8(s32 objectIndex) { + struct_80165C18_entry *temp_s0; u16 temp_t8; - void *temp_s0; - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_t8 = temp_s0->unkA6; + temp_s0 = &D_80165C18[objectIndex]; + temp_t8 = (u16) temp_s0->unk_0A6; switch (temp_t8) { case 1: - func_80076958(arg0); + func_80076958(objectIndex); return; case 2: - if (func_8007278C(arg0, temp_s0->unk48) != 0) { - func_80086E70(arg0); + if (func_8007278C(objectIndex, temp_s0->unk_048) != 0) { + func_80086E70(objectIndex); return; } default: return; case 3: - f32_step_towards(temp_s0, 0x40000000, 0x3D4CCCCD); - s16_step_towards(temp_s0 + 0xA4, 0, 0x18); - if ((temp_s0->unkAE >= 2) && (func_80073B00(arg0, temp_s0 + 0xA0, 0xFF, 0x50, 0x20, 0, 0) != 0)) { - func_80072488(arg0); + f32_step_towards(&temp_s0->unk_000, 2.0f, 0.05f); + s16_step_towards(&temp_s0->unk_0A4, 0, 0x0018); + if ((temp_s0->unk_0AE >= 2) && (func_80073B00(objectIndex, &temp_s0->unk_0A0, 0x000000FF, 0x00000050, 0x00000020, 0, 0) != 0)) { + func_80072488(objectIndex); return; } - /* Duplicate return node #9. Try simplifying control flow for better match */ - return; + break; case 4: - func_80072428(arg0); - func_80086F60(arg0); - /* Duplicate return node #9. Try simplifying control flow for better match */ - return; + func_80072428(objectIndex); + func_80086F60(objectIndex); + break; } } #else @@ -2692,35 +2462,25 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800769D8.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80086FD4(s32); // extern -s32 func_80087060(?, void *); // extern -? func_800877C4(s32); // extern -? func_8008BF18(s32); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +void func_80076AEC(s32 objectIndex) { + struct_80165C18_entry *sp20; + s16 var_v1; + struct_80165C18_entry *temp_a2; -void func_80076AEC(s32 arg0) { - void *sp20; - s16 temp_v1; - s32 temp_t6; - void *temp_a2; - s32 phi_v1; - - temp_t6 = arg0 * 0xE0; - temp_a2 = temp_t6 + &D_80165C18; - temp_v1 = temp_a2->unkAE; - phi_v1 = temp_v1; - if ((temp_v1 != 0) && (temp_v1 == 1)) { + temp_a2 = &D_80165C18[objectIndex]; + var_v1 = temp_a2->unk_0AE; + if ((var_v1 != 0) && (var_v1 == 1)) { sp20 = temp_a2; - if (func_80087060(0xA, temp_a2) != 0) { + if (func_80087060(objectIndex, 0x0000000A) != 0) { sp20 = temp_a2; - func_80086FD4(arg0); + func_80086FD4(objectIndex); } - phi_v1 = (temp_t6 + &D_80165C18)->unkAE; + var_v1 = temp_a2->unk_0AE; } - if (phi_v1 > 0) { - func_800877C4(arg0); - func_8008BF18(arg0); + if (var_v1 > 0) { + func_800877C4(objectIndex); + func_8008BF18(objectIndex); } } #else @@ -2732,83 +2492,68 @@ void func_80076B7C(void) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072100(s32 *); // extern -? func_8007614C(); // extern -? func_800763CC(s32); // extern -? func_80076538(s32); // extern -? func_8007661C(); // extern -? func_800769D8(s32); // extern -? func_80076AEC(s32); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_8007614C(); /* extern */ +? func_800763CC(s32); /* extern */ +? func_8007661C(); /* extern */ +? func_800769D8(s32); /* extern */ +? func_80076AEC(s32); /* extern */ extern s32 D_8018C1B0; -extern ? D_8018C3B0; void func_80076B84(void) { - s32 *temp_s2; + s32 *var_s2; s32 temp_s0; + struct_80165C18_entry *temp_s1; u8 temp_v0; - void *temp_s1; - s32 *phi_s2; func_8007661C(); func_8007614C(); - phi_s2 = &D_8018C1B0; + var_s2 = &D_8018C1B0; do { - temp_s0 = *phi_s2; + temp_s0 = *var_s2; if (temp_s0 != -1) { - temp_s1 = &D_80165C18 + (temp_s0 * 0xE0); - if (temp_s1->unkA6 != 0) { - temp_v0 = temp_s1->unkD5; + temp_s1 = &D_80165C18[temp_s0]; + if (temp_s1->unk_0A6 != 0) { + temp_v0 = (u8) temp_s1->unk_0D5; if ((temp_v0 == 4) || (temp_v0 == 5)) { func_800763CC(temp_s0); func_80076538(temp_s0); - goto block_8; - } - if (temp_v0 == 9) { + } else if (temp_v0 == 9) { func_800769D8(temp_s0); func_80076AEC(temp_s0); -block_8: } - if (temp_s1->unkA6 == 0) { - func_80072100(phi_s2); + if (temp_s1->unk_0A6 == 0) { + func_80072100((s32) var_s2); } } } - temp_s2 = phi_s2 + 4; - phi_s2 = temp_s2; - } while (temp_s2 != &D_8018C3B0); + var_s2 += 4; + } while (var_s2 != &D_8018C3B0); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80076B84.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800723A4(s16); // extern -? func_8008B7D4(s32, s32, s32, s32); // extern -? func_8008B80C(s32, ?, ?, ?); // extern -? func_8008B8BC(s32, ?, ?, ?); // extern -extern ? D_0D02BC58; -extern f32 D_800EEB14; -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s32 D_0D02BC58; -void func_80076C9C(s32 arg0, void *arg1, s16 arg2) { - void *sp20; - void *temp_v0; +void func_80076C9C(s32 objectIndex, Vec3f arg1, s16 arg2) { + struct_80165C18_entry *sp20; + struct_80165C18_entry *temp_v0; - func_800723A4(arg2); - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unkD5 = 0xA; - temp_v0->unk64 = &D_0D02BC58; - temp_v0->unk6C = &D_0D02BC58; - temp_v0->unk0 = D_800EEB14; + func_800723A4(objectIndex, (s32) arg2); + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_0D5 = 0x0A; + temp_v0->unk_064 = &D_0D02BC58; + temp_v0->unk_06C = (s32) &D_0D02BC58; + temp_v0->unk_000 = 0.3f; sp20 = temp_v0; - func_8008B7D4(arg0, arg1->unk0, arg1->unk4, arg1->unk8); - temp_v0->unkA4 = 0xFF; - temp_v0->unk34 = 0.0f; - func_8008B8BC(arg0, 0, 0, 0); - func_8008B80C(arg0, 0, 0, 0); + func_8008B7D4(objectIndex, arg1->unk0, arg1->unk4, arg1->unk8); + temp_v0->unk_0A4 = 0x00FF; + temp_v0->unk_034 = 0.0f; + func_8008B8BC(objectIndex, 0U, 0U, 0U); + func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80076C9C.s") @@ -2833,148 +2578,101 @@ void func_80076D70(s32 arg0, ? arg1, s16 arg2) { GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80076D70.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072488(); // extern -? func_80086E70(s32); // extern -extern ? D_80165CED; - -void func_80076DC4(s32 arg0) { - func_80072488(); - if (*(&D_80165CED + (arg0 * 0xE0)) != 0xB) { - func_80086E70(arg0); +void func_80076DC4(s32 objectIndex) { + func_80072488(objectIndex); + if (D_80165C18[objectIndex].unk_0D5 != 0x0B) { + func_80086E70(objectIndex); } } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80076DC4.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072428(); // extern -? func_80072488(s32); // extern -s32 func_80073B00(void *, ?, ?, s32, s32, s32); // extern -? func_80076DC4(); // extern -? func_80086F60(s32); // extern -extern ? D_80165C18; - -void func_80076E14(s32 arg0) { - s16 temp_v0; - void *temp_v1; - - temp_v1 = (arg0 * 0xE0) + &D_80165C18; - temp_v0 = temp_v1->unkA6; - if (temp_v0 != 0) { - if (temp_v0 != 1) { - if (temp_v0 != 2) { - if (temp_v0 != 3) { - return; - } - func_80072428(); - func_80086F60(arg0); - // Duplicate return node #10. Try simplifying control flow for better match - return; - } - if ((temp_v1->unkAE >= 2) && (func_80073B00(temp_v1 + 0xA0, 0xFF, 0x50, 0x20, 0, 0) != 0)) { - func_80072488(arg0); - return; - } - // Duplicate return node #10. Try simplifying control flow for better match - return; +void func_80076E14(s32 objectIndex) { + switch (D_80165C18[objectIndex].unk_0A6) { + case 1: + func_80076DC4(objectIndex); + break; + case 2: + if ((D_80165C18[objectIndex].unk_0AE >= 2) && (func_80073B00(objectIndex, &D_80165C18[objectIndex].unk_0A0, 0x000000FF, 0x00000050, 0x00000020, 0, 0) != 0)) { + func_80072488(objectIndex); } - func_80076DC4(); + break; + case 0: + break; + case 3: + func_80072428(objectIndex); + func_80086F60(objectIndex); + break; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80076E14.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80086FD4(); // extern -? func_8008BF18(s32); // extern -extern ? D_80165CC6; - -void func_80076ED8(s32 arg0) { - s16 temp_v0; - - temp_v0 = *(&D_80165CC6 + (arg0 * 0xE0)); - if ((temp_v0 != 0) && (temp_v0 == 1)) { - func_80086FD4(); +void func_80076ED8(s32 objectIndex) { + if ((D_80165C18[objectIndex].unk_0AE != 0) && (D_80165C18[objectIndex].unk_0AE == 1)) { + func_80086FD4(objectIndex); } - func_8008BF18(arg0); + func_8008BF18(objectIndex); } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80076ED8.s") -#endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072100(s32 *); // extern -? func_80076E14(s32); // extern -? func_80076ED8(s32); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern s32 D_8018C870; extern ? D_8018C970; void func_80076F2C(void) { - s32 *temp_s1; + s32 *var_s1; s32 temp_s0; - void *temp_s2; - s32 *phi_s1; + struct_80165C18_entry *temp_s2; - phi_s1 = &D_8018C870; + var_s1 = &D_8018C870; do { - temp_s0 = *phi_s1; + temp_s0 = *var_s1; if (temp_s0 != -1) { - temp_s2 = &D_80165C18 + (temp_s0 * 0xE0); - if (temp_s2->unkA6 != 0) { + temp_s2 = &D_80165C18[temp_s0]; + if (temp_s2->unk_0A6 != 0) { func_80076E14(temp_s0); func_80076ED8(temp_s0); - if (temp_s2->unkA6 == 0) { - func_80072100(phi_s1); + if (temp_s2->unk_0A6 == 0) { + func_80072100((s32) var_s1); } } } - temp_s1 = phi_s1 + 4; - phi_s1 = temp_s1; - } while (temp_s1 != &D_8018C970); + var_s1 += 4; + } while (var_s1 != &D_8018C970); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80076F2C.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800723A4(?); // extern -? func_8008B80C(s32, ?, ?, ?); // extern -? func_8008B8BC(s32, ?, ?, ?); // extern -extern ? D_0D02BC58; -extern ? D_800E6788; -extern f32 D_800EEB18; -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +struct _struct_D_800E6788_0x6 { + /* 0x0 */ s16 unk0; /* inferred */ + /* 0x2 */ s16 unk2; /* inferred */ + /* 0x4 */ s16 unk4; /* inferred */ +}; /* size = 0x6 */ + +extern s32 D_0D02BC58; extern f32 D_8018D01C; +static struct _struct_D_800E6788_0x6 D_800E6788[0]; /* unable to generate initializer */ -void func_80076FEC(s32 arg0, s32 arg1) { - void *temp_v0; - void *temp_v1; +void func_80076FEC(s32 objectIndex, s32 arg1) { + struct _struct_D_800E6788_0x6 *temp_v1; + struct_80165C18_entry *temp_v0; - func_800723A4(3); - temp_v1 = (arg1 * 6) + &D_800E6788; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unkD5 = 0xB; - temp_v0->unk64 = &D_0D02BC58; - temp_v0->unk6C = &D_0D02BC58; - temp_v0->unk0 = D_800EEB18; - temp_v0->unkA4 = 0xFF; - temp_v0->unkA2 = 0xFF; - temp_v0->unkA0 = 0xFF; - temp_v0->unk10 = temp_v1->unk0 * D_8018D01C; - temp_v0->unk14 = temp_v1->unk2; - temp_v0->unk34 = 0.0f; - temp_v0->unk18 = temp_v1->unk4; - func_8008B8BC(arg0, 0, 0, 0); - func_8008B80C(arg0, 0, 0, 0); + func_800723A4(objectIndex, 3); + temp_v1 = &D_800E6788[arg1]; + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_0D5 = 0x0B; + temp_v0->unk_064 = &D_0D02BC58; + temp_v0->unk_06C = (s32) &D_0D02BC58; + temp_v0->unk_000 = 0.8f; + temp_v0->unk_0A4 = 0x00FF; + temp_v0->unk_0A2 = 0x00FF; + temp_v0->unk_0A0 = 0x00FF; + temp_v0->unk_010[0] = (f32) temp_v1->unk0 * D_8018D01C; + temp_v0->unk_010[1] = (f32) temp_v1->unk2; + temp_v0->unk_034 = 0.0f; + temp_v0->unk_010[2] = (f32) temp_v1->unk4; + func_8008B8BC(objectIndex, 0U, 0U, 0U); + func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80076FEC.s") @@ -3000,95 +2698,78 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800770F0.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_8005C674(s8, s16 *, s16 *, s16 *); // extern -? func_8005C6B4(s8, s16 *, s16 *, s16 *); // extern -? func_800723A4(s32); // extern -? func_8008751C(s32); // extern -? func_8008B7D4(s32, s32, s32, s32); // extern -? func_8008B80C(s32, ?, ?, ?); // extern -? func_8008B8BC(s32, ?, ?, ?); // extern -extern f32 D_800EEB1C; -extern f64 D_800EEB20; -extern f64 D_800EEB28; -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_8005C674(s8, s16 *, s16 *, s16 *); /* extern */ -void func_80077138(s32 arg0, void *arg1, s32 arg2) { +void func_80077138(s32 objectIndex, Vec3f arg1, s32 arg2) { s8 sp37; s16 sp34; s16 sp32; s16 sp30; - f64 temp_f10; - f64 temp_f4; + f64 var_f10; + f64 var_f4; s32 temp_v0; s32 temp_v0_2; - s8 temp_t9; s8 temp_v0_3; s8 temp_v0_4; + struct_80165C18_entry *temp_s0; u16 temp_v1; - void *temp_s0; - f64 phi_f4; - f64 phi_f10; - func_800723A4(arg2); - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_s0->unkD5 = 0xC; - temp_s0->unk0 = D_800EEB1C; - func_8008B7D4(arg0, arg1->unk0, arg1->unk4, arg1->unk8); - func_8008B8BC(arg0, 0, 0, 0); - func_8008B80C(arg0, 0, 0, 0); - if (arg2 != 0) { - if (arg2 != 1) { - - } else { - temp_s0->unk3C = 1.5f; - temp_v0 = random_int(0x64); - temp_f4 = temp_v0; - phi_f4 = temp_f4; - if (temp_v0 < 0) { - phi_f4 = temp_f4 + 4294967296.0; - } - temp_s0->unk34 = (phi_f4 * D_800EEB28) + 0.5; - temp_s0->unkC0 = random_int(0x40) << 0xA; - func_8008751C(arg0); - temp_s0->unk8E = 0x32; + func_800723A4(objectIndex, arg2); + temp_s0 = &D_80165C18[objectIndex]; + temp_s0->unk_0D5 = 0x0C; + temp_s0->unk_000 = 0.05f; + func_8008B7D4(objectIndex, arg1->unk0, arg1->unk4, arg1->unk8); + func_8008B8BC(objectIndex, 0U, 0U, 0U); + func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); + switch (arg2) { /* irregular */ + case 0: + temp_s0->unk_038[1] = -1.0f; + temp_v0 = random_int(0x004BU); + var_f10 = (f64) temp_v0; + if (temp_v0 < 0) { + var_f10 += 4294967296.0; } - } else { - temp_s0->unk3C = -1.0f; - temp_v0_2 = random_int(0x4B); - temp_f10 = temp_v0_2; - phi_f10 = temp_f10; + temp_s0->unk_034 = (f32) ((var_f10 * 0.01) + 0.25); + temp_s0->unk_0C0 = random_int(0x0040U) << 0xA; + func_8008751C(objectIndex); + temp_s0->unk_084[5] = 0x001E; + break; + case 1: + temp_s0->unk_038[1] = 1.5f; + temp_v0_2 = random_int(0x0064U); + var_f4 = (f64) temp_v0_2; if (temp_v0_2 < 0) { - phi_f10 = temp_f10 + 4294967296.0; + var_f4 += 4294967296.0; } - temp_s0->unk34 = (phi_f10 * D_800EEB20) + 0.25; - temp_s0->unkC0 = random_int(0x40) << 0xA; - func_8008751C(arg0); - temp_s0->unk8E = 0x1E; + temp_s0->unk_034 = (f32) ((var_f4 * 0.01) + 0.5); + temp_s0->unk_0C0 = random_int(0x0040U) << 0xA; + func_8008751C(objectIndex); + temp_s0->unk_084[5] = 0x0032; + break; } - temp_v0_3 = random_int(0xC); + temp_v0_3 = random_int(0x000CU); if (temp_v0_3 < 9) { func_8005C674(temp_v0_3, &sp34, &sp32, &sp30); - temp_s0->unk48 = 0; - temp_s0->unk84 = sp34; - temp_s0->unk86 = sp32; - temp_s0->unk88 = sp30; + temp_s0->unk_048 = 0; + temp_s0->unk_084[0] = sp34; + temp_s0->unk_084[1] = sp32; + temp_s0->unk_084[2] = sp30; } else { - temp_v0_4 = random_int(3); - temp_t9 = temp_v0_4; + temp_v0_4 = random_int(3U); sp37 = temp_v0_4; - func_8005C6B4(temp_t9, &sp34, &sp32, &sp30); - temp_s0->unk48 = 1; - temp_s0->unk84 = sp34; - temp_s0->unk86 = sp32; - temp_s0->unk88 = sp30; - temp_s0->unk8C = sp37; + func_8005C6B4(temp_v0_4, &sp34, &sp32, &sp30); + temp_s0->unk_048 = 1; + temp_s0->unk_084[0] = sp34; + temp_s0->unk_084[1] = sp32; + temp_s0->unk_084[2] = sp30; + temp_s0->unk_084[4] = (s16) sp37; } - temp_s0->unkA0 = 0xFF; - temp_v1 = temp_s0->unkC0; - temp_s0->unk8A = random_int(0x800) + 0x400; - if ((temp_v1 < 0x3000) || (temp_v1 >= 0xB001)) { - temp_s0->unk8A = -temp_s0->unk8A; + temp_s0->unk_0A0 = 0x00FF; + temp_v1 = temp_s0->unk_0C0; + temp_s0->unk_084[3] = random_int(0x0800U) + 0x400; + if (((s32) temp_v1 < 0x3000) || ((s32) temp_v1 >= 0xB001)) { + temp_s0->unk_084[3] = -temp_s0->unk_084[3]; } } #else @@ -3108,50 +2789,36 @@ void func_80077428(s32 arg0) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? f32_step_up_towards(void *, ?, ?, s32); // extern -? func_8005C6B4(s8, s16 *, s16 *, s16 *); // extern -? func_80072428(s32); // extern -s32 func_80073B00(s32, void *, ?, ?, s32, s32, s32); // extern -? func_80077428(s32, s32); // extern -? func_80086F60(s32); // extern -extern ? D_80165C18; - -void func_80077450(s32 arg0) { +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +void func_80077450(s32 objectIndex) { s16 sp3C; s16 sp3A; s16 sp38; s16 temp_v0; - s32 temp_a3; - void *temp_a0; - void *temp_s0; + struct_80165C18_entry *temp_s0; - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0 = temp_s0->unkA6; - temp_a3 = arg0; - if (temp_v0 != 0) { - if (temp_v0 != 1) { - temp_a0 = temp_s0; - if (temp_v0 != 2) { - - } else { - arg0 = temp_a3; - f32_step_up_towards(temp_a0, 0x3DCCCCCD, 0x3C23D70A, temp_a3); - if ((temp_s0->unk8 <= temp_s0->unk8E) && (func_80073B00(arg0, temp_s0 + 0xA0, 0xFF, 0, 0x10, 0, 0) != 0)) { - func_80086F60(arg0); - func_80072428(arg0); - } - } - } else { - func_80077428(temp_a3, temp_a3); + temp_s0 = &D_80165C18[objectIndex]; + temp_v0 = temp_s0->unk_0A6; + switch (temp_v0) { /* irregular */ + case 0: + break; + case 1: + func_80077428(objectIndex); + break; + case 2: + f32_step_up_towards(&temp_s0->unk_000, 0.1f, 0.01f); + if ((temp_s0->unk_004[1] <= (f32) temp_s0->unk_084[5]) && (func_80073B00(objectIndex, &temp_s0->unk_0A0, 0x000000FF, 0, 0x00000010, 0, 0) != 0)) { + func_80086F60(objectIndex); + func_80072428(objectIndex); } + break; } - if (temp_s0->unk48 != 0) { - temp_s0->unk8C = (temp_s0->unk8C + 1) % 3; + if (temp_s0->unk_048 != 0) { + temp_s0->unk_084[4] = (s16) ((s32) (temp_s0->unk_084[4] + 1) % 3); func_8005C6B4(temp_s0->unk8D, &sp3C, &sp3A, &sp38); - temp_s0->unk84 = sp3C; - temp_s0->unk86 = sp3A; - temp_s0->unk88 = sp38; + temp_s0->unk_084[0] = sp3C; + temp_s0->unk_084[1] = sp3A; + temp_s0->unk_084[2] = sp38; } } #else @@ -3159,132 +2826,115 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80077450.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80087710(); // extern -? func_8008BF18(s32); // extern -extern f64 D_800EEB30; -extern ? D_80165C18; - -void func_80077584(s32 arg0) { +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +void func_80077584(s32 objectIndex) { f64 temp_f0; s16 temp_v1; - void *temp_v0; + struct_80165C18_entry *temp_v0; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v1 = temp_v0->unkAE; - if ((temp_v1 != 0) && (temp_v1 == 1) && (temp_v0->unkD8 != 0)) { - temp_f0 = temp_v0->unk3C; + temp_v0 = &D_80165C18[objectIndex]; + temp_v1 = temp_v0->unk_0AE; + if ((temp_v1 != 0) && (temp_v1 == 1) && ((u8) temp_v0->unk_0D8 != 0)) { + temp_f0 = (f64) temp_v0->unk_038[1]; if (temp_f0 >= -0.5) { - temp_v0->unk3C = temp_f0 - D_800EEB30; + temp_v0->unk_038[1] = (f32) (temp_f0 - 0.15); } else { - temp_v0->unk40 = 0.0f; - temp_v0->unk38 = 0.0f; + temp_v0->unk_038[2] = 0.0f; + temp_v0->unk_038[0] = 0.0f; } } - temp_v0->unkB6 = temp_v0->unkB6 + temp_v0->unk8A; - func_80087710(); - func_8008BF18(arg0); + temp_v0->unk_0B6 = (u16) temp_v0->unk_0B6 + temp_v0->unk_084[3]; + func_80087710(objectIndex); + func_8008BF18(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80077584.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072100(s32 *); // extern -? func_80077450(s32); // extern -? func_80077584(s32); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_80077450(s32); /* extern */ +? func_80077584(s32); /* extern */ extern s32 D_8018C630; extern ? D_8018C830; void func_80077640(void) { - s32 *temp_s1; + s32 *var_s1; s32 temp_s0; - void *temp_s2; - s32 *phi_s1; + struct_80165C18_entry *temp_s2; - phi_s1 = &D_8018C630; + var_s1 = &D_8018C630; do { - temp_s0 = *phi_s1; + temp_s0 = *var_s1; if (temp_s0 != -1) { - temp_s2 = &D_80165C18 + (temp_s0 * 0xE0); - if (temp_s2->unkA6 != 0) { + temp_s2 = &D_80165C18[temp_s0]; + if (temp_s2->unk_0A6 != 0) { func_80077450(temp_s0); func_80077584(temp_s0); - if (temp_s2->unkA6 == 0) { - func_80072100(phi_s1); + if (temp_s2->unk_0A6 == 0) { + func_80072100((s32) var_s1); } } } - temp_s1 = phi_s1 + 4; - phi_s1 = temp_s1; - } while (temp_s1 != &D_8018C830); + var_s1 += 4; + } while (var_s1 != &D_8018C830); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80077640.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800723A4(?); // extern -? func_8008B888(s32, ?, s32, ?); // extern -? func_8008B8BC(s32, s32, u16, u16); // extern -? func_8008BD14(s32, s16, s16, s16, s32, s32, s32); // extern -extern ? D_0D028DD8; -extern f32 D_800EEB38; -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s32 D_0D028DD8; +s16 gCurrentCourseId; /* unable to generate initializer */ -void func_80077700(s32 arg0, void *arg1, s32 arg2) { +void func_80077700(s32 objectIndex, f32 *arg1, s32 arg2) { u16 sp3E; u16 sp3C; - void *sp34; + struct_80165C18_entry *sp34; s16 temp_v1; s32 temp_s0; - void *temp_v0; + struct_80165C18_entry *temp_v0; - func_800723A4(0); - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unkD5 = 7; - temp_v0->unk60 = &D_0D028DD8; - temp_v0->unk68 = &D_0D028DD8; - temp_v0->unk0 = D_800EEB38; - temp_v0->unk44 = arg1->unk4; + func_800723A4(objectIndex, 0); + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_0D5 = 7; + temp_v0->unk_060 = &D_0D028DD8; + temp_v0->unk_068 = &D_0D028DD8; + temp_v0->unk_000 = 0.1f; + temp_v0->unk_044 = arg1->unk4; temp_v1 = gCurrentCourseId; - if (temp_v1 != 0) { - if (temp_v1 != 4) { - if (temp_v1 != 7) { - if (temp_v1 != 8) { - - } else { - sp34 = temp_v0; - func_8008BD14(arg0, arg1->unk0, arg1->unk4 + 25.0, arg1->unk8, 0x14, 0x1E, 0x14); - temp_v0->unk34 = 1.5f; - temp_v0->unk3C = 1.0f; - } - } else { - sp34 = temp_v0; - func_8008BD14(arg0, arg1->unk0, arg1->unk4 + 30.0, arg1->unk8, 0x10, 0x28, 0x10); - temp_v0->unk34 = 2.0f; - temp_v0->unk3C = 2.0f; - } - } else { - sp34 = temp_v0; - func_8008BD14(arg0, arg1->unk0, arg1->unk4 + 25.0, arg1->unk8, 0x14, 0x1E, 0x14); - temp_v0->unk34 = 2.0f; - temp_v0->unk3C = 2.0f; - } - } else { + switch (temp_v1) { /* irregular */ + case 0: sp34 = temp_v0; - func_8008BD14(arg0, arg1->unk0, arg1->unk4 + 25.0, arg1->unk8, 0x14, 0x1E, 0x14); - temp_v0->unk34 = 1.5f; - temp_v0->unk3C = 1.5f; + func_8008BD14(objectIndex, (s16) (s32) arg1->unk0, (s16) (s32) ((f64) arg1->unk4 + 25.0), (s16) (s32) arg1->unk8, (u16) 0x00000014, (u16) 0x0000001E, (u16) 0x00000014); + temp_v0->unk_034 = 1.5f; + temp_v0->unk_038[1] = 1.5f; + break; + case 4: + sp34 = temp_v0; + func_8008BD14(objectIndex, (s16) (s32) arg1->unk0, (s16) (s32) ((f64) arg1->unk4 + 25.0), (s16) (s32) arg1->unk8, (u16) 0x00000014, (u16) 0x0000001E, (u16) 0x00000014); + temp_v0->unk_034 = 2.0f; + temp_v0->unk_038[1] = 2.0f; + break; + case 7: + sp34 = temp_v0; + func_8008BD14(objectIndex, (s16) (s32) arg1->unk0, (s16) (s32) ((f64) arg1->unk4 + 30.0), (s16) (s32) arg1->unk8, (u16) 0x00000010, (u16) 0x00000028, (u16) 0x00000010); + temp_v0->unk_034 = 2.0f; + temp_v0->unk_038[1] = 2.0f; + break; + case 8: + sp34 = temp_v0; + func_8008BD14(objectIndex, (s16) (s32) arg1->unk0, (s16) (s32) ((f64) arg1->unk4 + 25.0), (s16) (s32) arg1->unk8, (u16) 0x00000014, (u16) 0x0000001E, (u16) 0x00000014); + temp_v0->unk_034 = 1.5f; + temp_v0->unk_038[1] = 1.0f; + break; } - temp_s0 = (random_int(0x10) << 0xC) & 0xFFFF; - sp3E = random_int(0x10) << 0xC; - sp3C = random_int(0x10) << 0xC; - func_8008B888(arg0, 0, ((arg2 * 0xFFFF) / 0x14) & 0xFFFF, 0); - func_8008B8BC(arg0, temp_s0 & 0xFFFF, sp3E, sp3C); + temp_s0 = (random_int(0x0010U) << 0xC) & 0xFFFF; + sp3E = random_int(0x0010U) << 0xC; + sp3C = random_int(0x0010U) << 0xC; + func_8008B888(objectIndex, 0U, ((s32) (arg2 * 0xFFFF) / 20) & 0xFFFF, 0U); + func_8008B8BC(objectIndex, temp_s0 & 0xFFFF, sp3E, sp3C); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80077700.s") @@ -3342,148 +2992,101 @@ void func_80077B14(s32 arg0) { func_80086E70(arg0); } -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072428(); // extern -? func_80072488(); // extern -? func_80077B14(); // extern -extern ? D_80165C18; +void func_80077B3C(s32 objectIndex) { + struct_80165C18_entry *temp_v1; + temp_v1 = &D_80165C18[objectIndex]; -void func_80077B3C(s32 arg0) { - s16 temp_v0; - void *temp_v1; - - temp_v1 = (arg0 * 0xE0) + &D_80165C18; - temp_v0 = temp_v1->unkA6; - if (temp_v0 != 0) { - if (temp_v0 != 1) { - if (temp_v0 != 2) { - if (temp_v0 != 3) { - return; - } - func_80072428(); - // Duplicate return node #9. Try simplifying control flow for better match - return; - } - if (temp_v1->unkAE == 0) { - func_80072488(); - return; - } - // Duplicate return node #9. Try simplifying control flow for better match - return; + switch (temp_v1->unk_0A6) { + case 1: + func_80077B14(objectIndex); + break; + case 2: + if (temp_v1->unk_0AE == 0) { + func_80072488(objectIndex); } - func_80077B14(); + break; + case 0: + break; + case 3: + func_80072428(objectIndex); + break; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80077B3C.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80086F60(s32); // extern -s32 func_80087B84(s32, ?, s32); // extern -? func_80087E08(s32, s32, ?, s32, s32, s32); // extern -? func_8008BF18(s32); // extern -extern ? D_80165C18; - -void func_80077BCC(s32 arg0) { - s16 temp_v0; - void *temp_s0; - - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0 = temp_s0->unkAE; - if (temp_v0 != 1) { - if (temp_v0 != 2) { - - } else if (func_80087B84(arg0, 0x3ECCCCCD, temp_s0->unk44) != 0) { - func_80086F60(arg0); +void func_80077BCC(s32 objectIndex) { + switch (D_80165C18[objectIndex].unk_0AE) { + case 1: + func_80087E08(objectIndex, D_80165C18[objectIndex].unk_038[1], 0.2f, D_80165C18[objectIndex].unk_034, (s16) (s32) D_80165C18[objectIndex].unk_0C0, 0x0000000A); + break; + case 2: + if (func_80087B84(objectIndex, 0.4f, D_80165C18[objectIndex].unk_044) != 0) { + func_80086F60(objectIndex); } - } else { - func_80087E08(arg0, temp_s0->unk3C, 0x3E4CCCCD, temp_s0->unk34, temp_s0->unkC0, 0xA); + break; } - func_8008BF18(arg0); - temp_s0->unkB2 = temp_s0->unkB2 + 0x1000; - temp_s0->unkB4 = temp_s0->unkB4 + 0x1000; + func_8008BF18(objectIndex); + D_80165C18[objectIndex].unk_0B2 += 0x1000; + D_80165C18[objectIndex].unk_0B4 += 0x1000; } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80077BCC.s") -#endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072100(s32 *); // extern -? func_80077B3C(s32); // extern -? func_80077BCC(s32); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern s32 D_8018C970; -extern ? D_8018CA70; void func_80077C9C(void) { - s32 *temp_s1; + s32 *var_s1; s32 temp_s0; - void *temp_s2; - s32 *phi_s1; + struct_80165C18_entry *temp_s2; - phi_s1 = &D_8018C970; + var_s1 = &D_8018C970; do { - temp_s0 = *phi_s1; + temp_s0 = *var_s1; if (temp_s0 != -1) { - temp_s2 = &D_80165C18 + (temp_s0 * 0xE0); - if (temp_s2->unkA6 != 0) { + temp_s2 = &D_80165C18[temp_s0]; + if (temp_s2->unk_0A6 != 0) { func_80077B3C(temp_s0); func_80077BCC(temp_s0); - if (temp_s2->unkA6 == 0) { - func_80072100(phi_s1); + if (temp_s2->unk_0A6 == 0) { + func_80072100((s32) var_s1); } } } - temp_s1 = phi_s1 + 4; - phi_s1 = temp_s1; - } while (temp_s1 != &D_8018CA70); + var_s1 += 4; + } while (var_s1 != D_8018CA70); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80077C9C.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800723A4(s32, ?, s32, void *); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern s32 D_8016559C; -extern ? D_80165C18; extern ? D_8018CC80; extern s16 D_8018D17C; extern s32 D_8018D1F0; void func_80077D5C(s32 arg0) { s32 temp_a0; - s32 temp_a1; s32 temp_a2; - void *temp_a3; - s16 phi_v0; - s32 phi_a1; + s32 var_a1; - if ((D_8016559C == 0) && (temp_a2 = D_8018D1F0, phi_a1 = 0, (temp_a2 > 0))) { - temp_a3 = (arg0 * 4) + &D_8018CC80; - phi_v0 = D_8018D17C; + if ((D_8016559C == 0) && (temp_a2 = D_8018D1F0, var_a1 = 0, (temp_a2 > 0))) { loop_3: - D_8018D17C = phi_v0 + 1; - temp_a1 = phi_a1 + 1; - phi_a1 = temp_a1; + D_8018D17C += 1; + var_a1 += 1; if (D_8018D17C >= temp_a2) { D_8018D17C = 0; } - temp_a0 = *(temp_a3 + (D_8018D17C * 4)); - phi_v0 = D_8018D17C; - if ((&D_80165C18 + (temp_a0 * 0xE0))->unkA6 == 0) { - func_800723A4(temp_a0, 1, temp_a2, temp_a3); + temp_a0 = *((arg0 * 4) + &D_8018CC80 + (D_8018D17C * 4)); + if (D_80165C18[temp_a0].unk_0A6 == 0) { + func_800723A4(temp_a0, 1); return; } - if (temp_a1 >= temp_a2) { - // Duplicate return node #8. Try simplifying control flow for better match - return; + if (var_a1 >= temp_a2) { + + } else { + goto loop_3; } - goto loop_3; } } #else @@ -3491,118 +3094,96 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80077D5C.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(?); // extern -? func_80072488(s32); // extern -? func_80086EF0(s32); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern ? D_0D005770; -extern ? D_0D0293D8; -extern f32 D_800EEB3C; -extern ? D_80165C18; +extern s32 D_0D0293D8; -void func_80077E20(s32 arg0) { - void *sp18; - void *temp_v0; +void func_80077E20(s32 objectIndex) { + struct_80165C18_entry *sp18; + struct_80165C18_entry *temp_v0; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unk64 = &D_0D0293D8; - temp_v0->unk6C = &D_0D0293D8; - temp_v0->unk74 = &D_0D005770; - temp_v0->unkDA = 0x10; - temp_v0->unkD9 = 0x10; + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_064 = &D_0D0293D8; + temp_v0->unk_06C = (s32) &D_0D0293D8; + temp_v0->unk_074 = (s32) &D_0D005770; + temp_v0->unk_0DA = 0x10; + temp_v0->unk_0D9 = 0x10; sp18 = temp_v0; - temp_v0->unk0 = D_800EEB3C; - func_800721C0(0x10); - func_80086EF0(arg0); - temp_v0->unkA0 = 0xFF; - temp_v0->unkD5 = 0; - temp_v0->unkA4 = 0; - func_80072488(arg0); + temp_v0->unk_000 = 0.15f; + func_800721C0(objectIndex, 0x00000010); + func_80086EF0(objectIndex); + temp_v0->unk_0A0 = 0x00FF; + temp_v0->unk_0D5 = 0; + temp_v0->unk_0A4 = 0; + func_80072488(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80077E20.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(?); // extern -? func_800721E8(?); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern ? D_80165C40; extern f32 D_8018D1E8; extern s16 D_8018D208; extern s16 D_8018D210; extern s16 D_8018D218; -void func_80077EB8(s32 arg0, s32 arg1, void *arg2) { +void func_80077EB8(s32 objectIndex, s32 arg1, Camera *camera) { s16 temp_v0; - temp_v0 = arg2->unk26 - arg1; + temp_v0 = camera->rot[1] - arg1; if ((temp_v0 >= D_8018D210) || (D_8018D208 >= temp_v0)) { - *(&D_80165C40 + (arg0 * 0xE0)) = D_8018D218 + (D_8018D1E8 * temp_v0); - func_800721C0(0x10); + *(&D_80165C40 + (objectIndex * 0xE0)) = (f32) D_8018D218 + (D_8018D1E8 * (f32) temp_v0); + func_800721C0(objectIndex, 0x00000010); return; } - func_800721E8(0x10); + func_800721E8(objectIndex, 0x00000010); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80077EB8.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80077EB8(s32, u16, void *, void *); // extern -? func_80086F60(s32, void *); // extern -? func_80086FD4(s32); // extern -? func_800877C4(s32); // extern -? func_8008BAB4(s32, ?, ?, void *); // extern -? func_8008BF18(s32); // extern -? func_8008BFC0(s32); // extern -extern f64 D_800EEB40; -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_80077EB8(s32, u16, Camera *, Camera *); /* extern */ -void func_80077F64(s32 arg0, void *arg1) { - f64 temp_f6; +void func_80077F64(s32 objectIndex, Camera *camera) { + f64 var_f6; s16 temp_v0; s32 temp_v0_2; - void *temp_s0; - f64 phi_f6; + struct_80165C18_entry *temp_s0; - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0 = temp_s0->unkAE; - if (temp_v0 != 0) { - if (temp_v0 != 1) { - if (temp_v0 != 2) { - if (temp_v0 != 3) { - return; - } - func_80086F60(arg0, arg1); - // Duplicate return node #11. Try simplifying control flow for better match - return; - } - func_80077EB8(arg0, temp_s0->unkC0, arg1, arg1); - func_800877C4(arg0); - func_8008BF18(arg0); - func_8008BFC0(arg0); - if (temp_s0->unk8 <= 0.0f) { - func_80086FD4(arg0); - return; - } - // Duplicate return node #11. Try simplifying control flow for better match + temp_s0 = &D_80165C18[objectIndex]; + temp_v0 = temp_s0->unk_0AE; + switch (temp_v0) { /* irregular */ + case 1: + temp_s0->unk_0C0 = (random_int(0x4000U) + camera->rot[1]) - 0x2000; + func_8008BAB4(objectIndex, 0x00B4, 0x0014U); + temp_v0_2 = random_int(0x0064U); + var_f6 = (f64) temp_v0_2; + if (temp_v0_2 < 0) { + var_f6 += 4294967296.0; + } + temp_s0->unk_028[0] = 0.0f; + temp_s0->unk_028[1] = 0.0f; + temp_s0->unk_038[1] = (f32) (-0.75 - (f64) (f32) (var_f6 * 0.01)); + func_80086FD4(objectIndex); + return; + case 2: + func_80077EB8(objectIndex, temp_s0->unk_0C0, camera, camera); + func_800877C4(objectIndex); + func_8008BF18(objectIndex); + func_8008BFC0(objectIndex); + if (temp_s0->unk_004[1] <= 0.0f) { + func_80086FD4(objectIndex); return; } - arg1 = arg1; - temp_s0->unkC0 = (random_int(0x4000) + arg1->unk26) - 0x2000; - func_8008BAB4(arg0, 0xB4, 0x14, arg1); - temp_v0_2 = random_int(0x64); - temp_f6 = temp_v0_2; - phi_f6 = temp_f6; - if (temp_v0_2 < 0) { - phi_f6 = temp_f6 + 4294967296.0; - } - temp_s0->unk28 = 0.0f; - temp_s0->unk2C = 0.0f; - temp_s0->unk3C = -0.75 - (phi_f6 * D_800EEB40); - func_80086FD4(arg0); + case 0: + return; + case 3: + func_80086F60(objectIndex); + break; } } #else @@ -3610,40 +3191,33 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80077F64.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072428(); // extern -? func_80072488(s32); // extern -? func_80077E20(); // extern -? func_80077F64(); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_80077E20(); /* extern */ +? func_80077F64(); /* extern */ -void func_800780CC(s32 arg0) { - void *sp18; +void func_800780CC(s32 objectIndex) { + struct_80165C18_entry *sp18; s16 temp_v0; - void *temp_v1; + struct_80165C18_entry *temp_v1; - temp_v1 = (arg0 * 0xE0) + &D_80165C18; - temp_v0 = temp_v1->unkA6; - if (temp_v0 != 0) { - if (temp_v0 != 1) { - if (temp_v0 != 2) { - if (temp_v0 != 3) { - return; - } - func_80072428(); - // Duplicate return node #9. Try simplifying control flow for better match - return; - } - sp18 = temp_v1; - func_80077F64(); - if (temp_v1->unkAE == 0) { - func_80072488(arg0); - return; - } - // Duplicate return node #9. Try simplifying control flow for better match + temp_v1 = &D_80165C18[objectIndex]; + temp_v0 = temp_v1->unk_0A6; + switch (temp_v0) { /* irregular */ + case 1: + func_80077E20(); + return; + case 2: + sp18 = temp_v1; + func_80077F64(); + if (temp_v1->unk_0AE == 0) { + func_80072488(objectIndex); return; } - func_80077E20(); + case 0: + return; + case 3: + func_80072428(objectIndex); + break; } } #else @@ -3689,161 +3263,129 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80078170.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072488(s32); // extern -? func_80086EF0(); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern ? D_0D005770; -extern ? D_0D0293D8; -extern f32 D_800EEB48; -extern ? D_80165C18; +extern s32 D_0D0293D8; -void func_80078220(s32 arg0) { - void *temp_v0; +void func_80078220(s32 objectIndex) { + struct_80165C18_entry *temp_v0; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unk64 = &D_0D0293D8; - temp_v0->unk6C = &D_0D0293D8; - temp_v0->unk74 = &D_0D005770; - temp_v0->unk0 = D_800EEB48; - func_80086EF0(); - func_80072488(arg0); + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_064 = &D_0D0293D8; + temp_v0->unk_06C = (s32) &D_0D0293D8; + temp_v0->unk_074 = (s32) &D_0D005770; + temp_v0->unk_000 = 0.15f; + func_80086EF0(objectIndex); + func_80072488(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80078220.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80086F60(s32); // extern -? func_80086FD4(s32); // extern -s16 func_800872D8(s32, s32); // extern -? func_800877C4(s32); // extern -? func_8008BF18(s32); // extern -f32 sins(u16); // extern -f32 coss(u16); // extern -extern f64 D_800EEB50; -extern f64 D_800EEB58; -extern f64 D_800EEB60; -extern f64 D_800EEB68; -extern f64 D_800EEB70; -extern f64 D_800EEB78; -extern f64 D_800EEB80; -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s32 gGamestate; -void func_80078288(s32 arg0) { +void func_80078288(s32 objectIndex) { s16 sp3E; s16 sp3C; s16 sp3A; u16 sp36; f32 sp24; + Camera *temp_v0_5; Player *temp_v0_2; f32 temp_f2; f32 temp_f2_2; - f32 temp_f8; - f32 temp_f8_2; - f64 temp_f18; - f64 temp_f18_2; + f32 var_f8; + f32 var_f8_2; + f64 var_f18; + f64 var_f18_2; s16 temp_v0; s32 temp_v0_3; s32 temp_v0_4; - s32 temp_v0_5; s32 temp_v0_6; s32 temp_v0_7; - u16 temp_a0; - u16 temp_a0_2; + struct_80165C18_entry *temp_s0; u16 temp_t1; u16 temp_t3; u16 temp_t6; - void *temp_s0; - f32 phi_f8; - f64 phi_f18; - f32 phi_f8_2; - f64 phi_f18_2; - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0 = temp_s0->unkAE; - if (temp_v0 != 0) { - if (temp_v0 != 1) { - if (temp_v0 != 2) { - if (temp_v0 != 3) { - return; - } - func_80086F60(arg0); - // Duplicate return node #20. Try simplifying control flow for better match - return; - } - func_800877C4(arg0); - temp_t1 = temp_s0->unkBE + temp_s0->unkC4; - temp_s0->unkBE = temp_t1; - temp_s0->unk28 = temp_s0->unk1C * sins(temp_t1 & 0xFFFF); - func_8008BF18(arg0); - if (temp_s0->unk8 <= 0.0) { - func_80086FD4(arg0); - } - temp_s0->unkB4 = func_800872D8(arg0, camera1); - return; - } - if (gGamestate != CREDITS_SEQUENCE) { - sp3A = ((gPlayerOneCopy->unk_094 / 18.0f) * 216.0f) / 2.0f; - sp3E = (random_int(0xF) - sp3A) + 0x2D; - sp3C = random_int(0x12C) + 0x1E; - temp_t6 = (((random_int(0x3000) - 0x1800) / ((sp3A / 0xF) + 1)) + camera1->unk26) & 0xFFFF; - temp_a0 = temp_t6; + temp_s0 = &D_80165C18[objectIndex]; + temp_v0 = temp_s0->unk_0AE; + switch (temp_v0) { /* irregular */ + case 1: + if (gGamestate != 9) { + sp3A = (s16) (s32) (((gPlayerOneCopy->unk_094 / 18.0f) * 216.0f) / 2.0f); + sp3E = (random_int(0x000FU) - sp3A) + 0x2D; + sp3C = random_int(0x012CU) + 0x1E; + temp_t6 = (((s32) (random_int(0x3000U) - 0x1800) / (s16) ((sp3A / 15) + 1)) + camera1->rot[1]) & 0xFFFF; sp36 = temp_t6; temp_v0_2 = gPlayerOneCopy; - temp_f2 = sp3C; - temp_s0->unk10 = (sins(temp_a0) * temp_f2) + temp_v0_2->posX; + temp_f2 = (f32) sp3C; + temp_s0->unk_010[0] = (sins(temp_t6) * temp_f2) + temp_v0_2->pos[0]; sp24 = temp_f2; - temp_s0->unk14 = sp3E + temp_v0_2->unk_074; - temp_s0->unk18 = (coss(sp36) * temp_f2) + gPlayerOneCopy->posZ; - temp_s0->unkC4 = random_int(0x400) + 0x100; - temp_v0_3 = random_int(0x64); - temp_f8 = temp_v0_3; - phi_f8 = temp_f8; + temp_s0->unk_010[1] = (f32) sp3E + temp_v0_2->unk_074; + temp_s0->unk_010[2] = (coss(sp36) * temp_f2) + gPlayerOneCopy->pos[2]; + temp_s0->unk_0C4 = random_int(0x0400U) + 0x100; + temp_v0_3 = random_int(0x0064U); + var_f8 = (f32) temp_v0_3; if (temp_v0_3 < 0) { - phi_f8 = temp_f8 + 4294967296.0f; + var_f8 += 4294967296.0f; } - temp_s0->unk1C = (phi_f8 * D_800EEB50) + 2.0; - temp_v0_4 = random_int(0x32); - temp_f18 = temp_v0_4; - phi_f18 = temp_f18; + temp_s0->unk_01C[0] = (f32) (((f64) var_f8 * 0.03) + 2.0); + temp_v0_4 = random_int(0x0032U); + var_f18 = (f64) temp_v0_4; if (temp_v0_4 < 0) { - phi_f18 = temp_f18 + 4294967296.0; + var_f18 += 4294967296.0; } - temp_s0->unk28 = 0.0f; - temp_s0->unk2C = 0.0f; - temp_s0->unk3C = D_800EEB60 - (phi_f18 * D_800EEB58); - func_80086FD4(arg0); + temp_s0->unk_028[0] = 0.0f; + temp_s0->unk_028[1] = 0.0f; + temp_s0->unk_038[1] = (f32) (-0.3 - (f64) (f32) (var_f18 * 0.01)); + func_80086FD4(objectIndex); return; } - sp3C = random_int(0x64) + 0x28; - temp_t3 = ((random_int(0x3000) + camera1->unk26) - 0x1800) & 0xFFFF; - temp_a0_2 = temp_t3; + sp3C = random_int(0x0064U) + 0x28; + temp_t3 = ((random_int(0x3000U) + camera1->rot[1]) - 0x1800) & 0xFFFF; sp36 = temp_t3; temp_v0_5 = camera1; - temp_f2_2 = sp3C; - temp_s0->unk10 = (sins(temp_a0_2) * temp_f2_2) + temp_v0_5->unk0; + temp_f2_2 = (f32) sp3C; + temp_s0->unk_010[0] = (sins(temp_t3) * temp_f2_2) + temp_v0_5->pos[0]; sp24 = temp_f2_2; - temp_s0->unk14 = temp_v0_5->unk4 + D_800EEB68; - temp_s0->unk18 = (coss(sp36) * temp_f2_2) + camera1->unk8; - temp_s0->unkC4 = random_int(0x400) + 0x100; - temp_v0_6 = random_int(0x64); - temp_f8_2 = temp_v0_6; - phi_f8_2 = temp_f8_2; + temp_s0->unk_010[1] = (f32) ((f64) temp_v0_5->pos[1] + 45.0); + temp_s0->unk_010[2] = (coss(sp36) * temp_f2_2) + camera1->pos[2]; + temp_s0->unk_0C4 = random_int(0x0400U) + 0x100; + temp_v0_6 = random_int(0x0064U); + var_f8_2 = (f32) temp_v0_6; if (temp_v0_6 < 0) { - phi_f8_2 = temp_f8_2 + 4294967296.0f; + var_f8_2 += 4294967296.0f; } - temp_s0->unk1C = (phi_f8_2 * D_800EEB70) + 2.0; - temp_v0_7 = random_int(0x32); - temp_f18_2 = temp_v0_7; - phi_f18_2 = temp_f18_2; + temp_s0->unk_01C[0] = (f32) (((f64) var_f8_2 * 0.03) + 2.0); + temp_v0_7 = random_int(0x0032U); + var_f18_2 = (f64) temp_v0_7; if (temp_v0_7 < 0) { - phi_f18_2 = temp_f18_2 + 4294967296.0; + var_f18_2 += 4294967296.0; } - temp_s0->unk28 = 0.0f; - temp_s0->unk2C = 0.0f; - temp_s0->unk3C = D_800EEB80 - (phi_f18_2 * D_800EEB78); - func_80086FD4(arg0); + temp_s0->unk_028[0] = 0.0f; + temp_s0->unk_028[1] = 0.0f; + temp_s0->unk_038[1] = (f32) (-0.6 - (f64) (f32) (var_f18_2 * 0.01)); + func_80086FD4(objectIndex); + return; + case 2: + func_800877C4(objectIndex); + temp_t1 = temp_s0->unk_0BE + temp_s0->unk_0C4; + temp_s0->unk_0BE = temp_t1; + temp_s0->unk_028[0] = temp_s0->unk_01C[0] * sins(temp_t1 & 0xFFFF); + func_8008BF18(objectIndex); + if ((f64) temp_s0->unk_004[1] <= 0.0) { + func_80086FD4(objectIndex); + } + temp_s0->unk_0B4 = func_800872D8(objectIndex, camera1); + return; + case 3: + func_80086F60(objectIndex); + /* fallthrough */ + case 0: + return; } } #else @@ -3851,40 +3393,33 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80078288.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072428(); // extern -? func_80072488(s32); // extern -? func_80078220(); // extern -? func_80078288(); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_80078220(); /* extern */ +? func_80078288(); /* extern */ -void func_800786EC(s32 arg0) { - void *sp18; +void func_800786EC(s32 objectIndex) { + struct_80165C18_entry *sp18; s16 temp_v0; - void *temp_v1; + struct_80165C18_entry *temp_v1; - temp_v1 = (arg0 * 0xE0) + &D_80165C18; - temp_v0 = temp_v1->unkA6; - if (temp_v0 != 0) { - if (temp_v0 != 1) { - if (temp_v0 != 2) { - if (temp_v0 != 3) { - return; - } - func_80072428(); - // Duplicate return node #9. Try simplifying control flow for better match - return; - } - sp18 = temp_v1; - func_80078288(); - if (temp_v1->unkAE == 0) { - func_80072488(arg0); - return; - } - // Duplicate return node #9. Try simplifying control flow for better match + temp_v1 = &D_80165C18[objectIndex]; + temp_v0 = temp_v1->unk_0A6; + switch (temp_v0) { /* irregular */ + case 1: + func_80078220(); + return; + case 2: + sp18 = temp_v1; + func_80078288(); + if (temp_v1->unk_0AE == 0) { + func_80072488(objectIndex); return; } - func_80078220(); + case 0: + return; + case 3: + func_80072428(objectIndex); + break; } } #else @@ -3892,34 +3427,27 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800786EC.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800723A4(s32, ?, s32, ? *); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern ? D_8018C1B0; extern s16 D_8018D174; void func_80078790(void) { s32 temp_a2; - s32 temp_v1; - s16 phi_v0; - s32 phi_v1; + s32 var_v1; - phi_v0 = D_8018D174; - phi_v1 = 0; + var_v1 = 0; loop_1: - D_8018D174 = phi_v0 + 1; - temp_v1 = phi_v1 + 1; - phi_v1 = temp_v1; + D_8018D174 += 1; + var_v1 += 1; if (D_8018D174 >= 0x32) { D_8018D174 = 0; } temp_a2 = *(&D_8018C1B0 + (D_8018D174 * 4)); - phi_v0 = D_8018D174; - if ((&D_80165C18 + (temp_a2 * 0xE0))->unkA6 == 0) { - func_800723A4(temp_a2, 1, temp_a2, &D_8018C1B0); + if (D_80165C18[temp_a2].unk_0A6 == 0) { + func_800723A4(temp_a2, 1); return; } - if (temp_v1 == 0x32) { + if (var_v1 == 0x32) { return; } goto loop_1; @@ -3964,25 +3492,23 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80078838.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(?); // extern -? func_800721E8(?); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern ? D_80165CB4; extern f32 D_8018D1E8; extern s16 D_8018D208; extern s16 D_8018D210; extern s16 D_8018D218; -void func_800788F8(s32 arg0, s32 arg1, void *arg2) { +void func_800788F8(s32 objectIndex, s32 arg1, Camera *camera) { s16 temp_v0; - temp_v0 = arg2->unk26 + arg1; + temp_v0 = camera->rot[1] + arg1; if ((temp_v0 >= D_8018D210) && (D_8018D208 >= temp_v0)) { - *(&D_80165CB4 + (arg0 * 0xE0)) = D_8018D218 + (D_8018D1E8 * temp_v0); - func_800721C0(0x10); + *(&D_80165CB4 + (objectIndex * 0xE0)) = (s16) (s32) ((f32) D_8018D218 + (D_8018D1E8 * (f32) temp_v0)); + func_800721C0(objectIndex, 0x00000010); return; } - func_800721E8(0x10); + func_800721E8(objectIndex, 0x00000010); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800788F8.s") @@ -4015,47 +3541,44 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800789AC.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? func_80073CB0(s32, void *, ?, ?, s32, s32, s32); /* extern */ -? func_800788F8(s32, u16, s32); /* extern */ -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_800788F8(s32, u16, Camera *); /* extern */ extern ? D_8018CC80; +extern s32 D_8018D1F0; -void func_80078A44(s32 arg0, s32 arg1, s32 arg2) { +void func_80078A44(s32 arg0, Camera *camera, s32 arg2) { + s32 *var_s4; s32 temp_s0; - s32 temp_s3; u32 temp_hi; - s32 *phi_s4; - u32 phi_s3; + u32 var_s3; - phi_s3 = 0; + var_s3 = 0; if (D_8018D1F0 > 0) { - phi_s4 = (arg0 * 4) + &D_8018CC80; + var_s4 = (arg0 * 4) + &D_8018CC80; do { - temp_s0 = *phi_s4; - func_800788F8(temp_s0, *((phi_s3 * 8) + arg2), arg1); - temp_hi = phi_s3 % 5; + temp_s0 = *var_s4; + func_800788F8(temp_s0, *((var_s3 * 8) + arg2), camera); + temp_hi = var_s3 % 5U; switch (temp_hi) { case 0: - func_80073CB0(temp_s0, &D_80165C18 + (temp_s0 * 0xE0) + 0xA0, 0x28, 0xB4, 0xFF, 0, -1); + func_80073CB0(temp_s0, &D_80165C18[temp_s0].unk_0A0, 0x00000028, 0x000000B4, 0x000000FF, 0, -1); break; case 1: - func_80073CB0(temp_s0, &D_80165C18 + (temp_s0 * 0xE0) + 0xA0, 0x80, 0xFF, 0xFF, 0, -1); + func_80073CB0(temp_s0, &D_80165C18[temp_s0].unk_0A0, 0x00000080, 0x000000FF, 0x000000FF, 0, -1); break; case 2: - func_80073CB0(temp_s0, &D_80165C18 + (temp_s0 * 0xE0) + 0xA0, 0x50, 0xC8, 0xFF, 0, -1); + func_80073CB0(temp_s0, &D_80165C18[temp_s0].unk_0A0, 0x00000050, 0x000000C8, 0x000000FF, 0, -1); break; case 3: - func_80073CB0(temp_s0, &D_80165C18 + (temp_s0 * 0xE0) + 0xA0, 0, 0x9B, 0xFF, 0, -1); + func_80073CB0(temp_s0, &D_80165C18[temp_s0].unk_0A0, 0, 0x0000009B, 0x000000FF, 0, -1); break; case 4: - func_80073CB0(temp_s0, &D_80165C18 + (temp_s0 * 0xE0) + 0xA0, 0x5A, 0x80, 0xFF, 0, -1); + func_80073CB0(temp_s0, &D_80165C18[temp_s0].unk_0A0, 0x0000005A, 0x00000080, 0x000000FF, 0, -1); break; } - temp_s3 = phi_s3 + 1; - phi_s4 += 4; - phi_s3 = temp_s3; - } while (temp_s3 < D_8018D1F0); + var_s3 += 1; + var_s4 += 4; + } while ((s32) var_s3 < D_8018D1F0); } } #else @@ -4171,42 +3694,37 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80078C70.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800723A4(s32, ?); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern ? D_80183DB8; void func_80078F64(void) { s32 temp_v0; temp_v0 = gScreenModeSelection; - if (temp_v0 != 0) { - if (temp_v0 != 1) { - if (temp_v0 != 2) { - if (temp_v0 != 3) { - return; - } - func_800723A4(D_80183DB8.unk0, 1); - func_800723A4(D_80183DB8.unk4, 1); - func_800723A4(D_80183DB8.unk8, 1); - func_800723A4(D_80183DB8.unkC, 1); - return; - } - func_800723A4(D_80183DB8.unk0, 1); - func_800723A4(D_80183DB8.unk4, 1); - return; - } + switch (temp_v0) { /* irregular */ + case 0: + func_800723A4(D_80183DB8.unk0, 1); + return; + case 2: func_800723A4(D_80183DB8.unk0, 1); func_800723A4(D_80183DB8.unk4, 1); return; + case 1: + func_800723A4(D_80183DB8.unk0, 1); + func_800723A4(D_80183DB8.unk4, 1); + return; + case 3: + func_800723A4(D_80183DB8.unk0, 1); + func_800723A4(D_80183DB8.unk4, 1); + func_800723A4(D_80183DB8.unk8, 1); + func_800723A4(D_80183DB8.unkC, 1); + return; } - func_800723A4(D_80183DB8.unk0, 1); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80078F64.s") #endif -extern s32 D_80183DB8[]; - void func_80079054(s32 arg0) { func_800723A4(D_80183DB8[arg0], 2); } @@ -4219,50 +3737,42 @@ void func_800790B4(s32 arg0) { func_800723A4(D_80183DB8[arg0], 5); } -extern s32 D_80183DB8[]; - void func_800790E4(s32 arg0) { func_800723A4(D_80183DB8[arg0], 6); } #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80074894(s32, ? *); // extern -? func_800748C4(s32, ? *); // extern -? func_800748F4(s32, ? *); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern s32 D_80183DB8; extern s32 D_8018C028; -void func_80079114(s32 arg0, s32 arg1, s32 arg2) { - void *temp_v0; - void *temp_v1; +void func_80079114(s32 objectIndex, s32 arg1, s32 arg2) { + struct_80165C18_entry *temp_v0; + struct_80165C18_entry *temp_v1; - temp_v1 = &D_80165C18 + (arg0 * 0xE0); - if (temp_v1->unkA6 >= 2) { - if (temp_v1->unkD8 == 1) { + temp_v1 = &D_80165C18[objectIndex]; + if (temp_v1->unk_0A6 >= 2) { + if ((u8) temp_v1->unk_0D8 == 1) { if (arg1 == 0) { - func_80074894(D_8018C028, &D_80165C18); + func_80074894(objectIndex, D_8018C028); return; } - temp_v0 = &D_80165C18 + (D_80183DB8 * 0xE0); - temp_v1->unk60 = temp_v0->unk60; - temp_v1->unk64 = temp_v0->unk64; + temp_v0 = &D_80165C18[D_80183DB8]; + temp_v1->unk_060 = temp_v0->unk_060; + temp_v1->unk_064 = temp_v0->unk_064; return; } - if (arg2 != 0) { - if (arg2 != 1) { - if (arg2 != 2) { - return; - } - func_80074894(D_8018C028, &D_80165C18); - // Duplicate return node #12. Try simplifying control flow for better match - return; - } - func_800748C4(D_8018C028, &D_80165C18); + switch (arg2) { /* irregular */ + case 0: + func_800748F4(objectIndex, D_8018C028); return; + case 1: + func_800748C4(objectIndex, D_8018C028); + return; + case 2: + func_80074894(objectIndex, D_8018C028); + break; } - func_800748F4(D_8018C028, &D_80165C18); } } #else @@ -4270,173 +3780,156 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80079114.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800722CC(s32, ?); // extern -? func_800C9018(u8, ?); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_800C9018(u8, ?); /* extern */ extern ? D_80165CF0; +s16 gCurrentCourseId; /* unable to generate initializer */ -void func_800791F0(s32 arg0, u8 arg1) { +void func_800791F0(s32 objectIndex, u8 playerId) { Player *sp1C; - Player *temp_t8; Player *temp_v1; - s16 temp_v0_2; + s16 var_v0; u8 temp_v0; - s16 phi_v0; - Player *phi_v1; - s32 phi_a0; - temp_v0 = *(&D_80165CF0 + (arg0 * 0xE0)); - temp_t8 = gPlayerOne; - temp_v1 = &temp_t8[arg1]; + temp_v0 = *(&D_80165CF0 + (objectIndex * 0xE0)); + temp_v1 = &gPlayerOne[playerId]; if ((temp_v0 != 3) && (temp_v0 != 7)) { sp1C = temp_v1; - func_800722CC(1); - temp_v0_2 = gCurrentCourseId; - phi_v0 = temp_v0_2; - phi_v1 = temp_v1; - phi_a0 = arg0; - if (temp_v0_2 == 0xC) { + func_800722CC(objectIndex, 1); + var_v0 = gCurrentCourseId; + if (var_v0 == 0x000C) { temp_v1->unk_0CA &= 0xFFEF; goto block_5; } } else { block_5: - phi_v0 = gCurrentCourseId; - phi_v1 = &temp_t8[arg1]; - phi_a0 = arg0; + var_v0 = gCurrentCourseId; } - if (phi_v0 == 0xC) { - sp1C = phi_v1; - func_800722CC(phi_a0, 0x10); - phi_v1->unk_0CA &= 0xFFDF; + if (var_v0 == 0x000C) { + sp1C = temp_v1; + func_800722CC(objectIndex, 0x00000010); + temp_v1->unk_0CA &= 0xFFDF; } - func_800C9018(arg1, 0x100FA28); + func_800C9018(playerId, 0x0100FA28); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800791F0.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721E8(s32, ?); // extern -? func_80072488(s32); // extern -? func_80073444(s32, ? *, ? *, ?, s32); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern ? D_0D005EB0; -extern ? D_0D024ED8; -extern ? D_0F05EB50; -extern f32 D_800EEBF4; +extern s32 D_0D024ED8; +extern s32 D_0F05EB50; extern s16 D_801656F0; -extern ? D_80165C18; extern s32 D_8018D168; extern s32 D_8018D180; -void func_800792D8(s32 arg0, s32 arg1) { - void *sp24; - void *temp_v0; +void func_800792D8(s32 objectIndex, s32 arg1) { + struct_80165C18_entry *sp24; + struct_80165C18_entry *temp_v0; if (arg1 == 0) { D_801656F0 = 0; D_8018D168 = 0; } - func_80073444(arg0, &D_0D024ED8, &D_0F05EB50, 0x38, 0x48); - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unk74 = &D_0D005EB0; + func_80073444(objectIndex, &D_0D024ED8, &D_0F05EB50, 0x38U, (u16) 0x00000048); + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_074 = (s32) &D_0D005EB0; sp24 = temp_v0; - temp_v0->unk0 = D_800EEBF4; - func_800721E8(arg0, 0x10); - func_80072488(arg0); - temp_v0->unk48 = D_8018D180; + temp_v0->unk_000 = 0.15f; + func_800721E8(objectIndex, 0x00000010); + func_80072488(objectIndex); + temp_v0->unk_048 = D_8018D180; } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800792D8.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? func_800721C0(?); /* extern */ -? func_80072428(); /* extern */ -? func_80072488(s32); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_800729EC(); /* extern */ -s32 func_80072E54(?, ?, ?, s32, s32); /* extern */ ? func_800792D8(s32); /* extern */ -? func_80086F10(s32, ?, ? *); /* extern */ ? play_sound2(?); /* extern */ -extern ? D_80165C18; -static ? D_800E67B8; /* unable to generate initializer; const */ +extern s16 D_801656F0; +extern s32 D_8018D160; +extern s32 D_8018D168; +static ? D_800E67B8; /* unable to generate initializer */ -void func_80079380(s32 arg0, s32 arg1) { - void *sp20; +void func_80079380(s32 objectIndex, s32 arg1) { + struct_80165C18_entry *sp20; + struct_80165C18_entry *temp_v1; u16 temp_t8; - void *temp_v1; - temp_v1 = (arg0 * 0xE0) + &D_80165C18; - temp_t8 = temp_v1->unkA6; + temp_v1 = &D_80165C18[objectIndex]; + temp_t8 = (u16) temp_v1->unk_0A6; switch (temp_t8) { case 1: func_800792D8(arg1); return; case 2: sp20 = temp_v1; - func_8007278C(arg0); - if ((temp_v1->unk50 == 0x55) && (D_8018EDF3 == 3) && (arg1 == 0)) { + func_8007278C(objectIndex, temp_v1->unk_048); + if ((temp_v1->unk_050 == 0x00000055) && (D_8018EDF3 == 3) && (arg1 == 0)) { D_8018D168 = 1; return; } default: return; case 3: - func_800721C0(0x10); - func_80086F10(arg0, 1, &D_800E67B8); - func_80072488(arg0); + func_800721C0(objectIndex, 0x00000010); + func_80086F10(objectIndex, 1, (s32) &D_800E67B8); + func_80072488(objectIndex); return; case 4: - if ((func_8007278C(arg0) != 0) && (D_8018EDF3 != 3) && (arg1 == 0)) { + if ((func_8007278C(objectIndex, 0x0000001E) != 0) && (D_8018EDF3 != 3) && (arg1 == 0)) { D_8018D168 = 1; return; } - /* Duplicate return node #33. Try simplifying control flow for better match */ - return; + break; case 5: - func_8007278C(arg0); + func_8007278C(objectIndex, 0x0000001E); return; case 6: - func_80072E54(1, 7, 1, 2, 0); + func_80072E54(objectIndex, 1, 7, 1, 2, 0); return; case 7: sp20 = temp_v1; - if ((func_8007278C(arg0) != 0) && (temp_v1->unk68 = temp_v1->unk68 + 0x200, (arg1 == 0))) { - play_sound2(0x49008003); - return; + if (func_8007278C(objectIndex, 0x00000014) != 0) { + temp_v1->unk_068 += 0x200; + if (arg1 == 0) { + play_sound2(0x49008003); + return; + } } - /* Duplicate return node #33. Try simplifying control flow for better match */ - return; + break; case 8: - func_80072E54(8, 0xF, 1, 6, 0); + func_80072E54(objectIndex, 8, 0x0000000F, 1, 6, 0); return; case 9: - if ((func_8007278C(arg0) != 0) && (arg1 == 0)) { + if ((func_8007278C(objectIndex, 8) != 0) && (arg1 == 0)) { play_sound2(0x49008003); return; } - /* Duplicate return node #33. Try simplifying control flow for better match */ - return; + break; case 10: - if ((func_80072E54(0x10, 0x17, 1, 6, 0) != 0) && (arg1 == 0)) { + if ((func_80072E54(objectIndex, 0x00000010, 0x00000017, 1, 6, 0) != 0) && (arg1 == 0)) { D_801656F0 = 1; return; } - /* Duplicate return node #33. Try simplifying control flow for better match */ - return; + break; case 11: sp20 = temp_v1; - if ((func_8007278C(arg0) != 0) && (temp_v1->unk68 = temp_v1->unk68 + 0x200, (arg1 == 0))) { - play_sound2(0x49008004); - return; + if (func_8007278C(objectIndex, 8) != 0) { + temp_v1->unk_068 += 0x200; + if (arg1 == 0) { + play_sound2(0x49008004); + return; + } } - /* Duplicate return node #33. Try simplifying control flow for better match */ - return; + break; case 12: - func_80072E54(0x18, 0x1B, 1, 6, 0); + func_80072E54(objectIndex, 0x00000018, 0x0000001B, 1, 6, 0); return; case 13: if (arg1 == 0) { @@ -4444,15 +3937,14 @@ void func_80079380(s32 arg0, s32 arg1) { D_8018D160 = 1; return; } - func_80072488(); + func_80072488(objectIndex); return; case 14: - func_8007278C(arg0); + func_8007278C(objectIndex, 0x00000078); return; case 15: - func_80072428(); - /* Duplicate return node #33. Try simplifying control flow for better match */ - return; + func_80072428(objectIndex); + break; } } #else @@ -4460,69 +3952,57 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80079380.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721E8(s32, ?); // extern -? func_80072488(s32); // extern -? func_80073444(s32, ? *, ? *, ?, s32); // extern -? func_800791F0(); // extern -? func_80086F10(s32, ?, ? *); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_800791F0(); /* extern */ +? func_80086F10(s32, ?, ? *); /* extern */ extern ? D_0D006730; -extern ? D_0D0254D8; -extern ? D_0F07E350; -extern ? D_800E6834; -extern f32 D_800EEC38; -extern f32 D_800EEC3C; -extern ? D_80165C18; -extern s32 D_8018C028; +extern s32 D_0D0254D8; +extern s32 D_0F07E350; +extern s32 *D_8018C028; +static ? D_800E6834; /* unable to generate initializer */ -void func_8007963C(s32 arg0) { - f32 temp_f0; - void *temp_v0; +void func_8007963C(s32 objectIndex) { + struct_80165C18_entry *temp_v0; func_800791F0(); - func_80073444(arg0, &D_0D0254D8, &D_0F07E350, 0x48, 0x38); - temp_f0 = D_800EEC38; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unk74 = &D_0D006730; - temp_v0->unkC = temp_f0; - temp_v0->unk8 = temp_f0; - temp_v0->unk4 = temp_f0; - temp_v0->unk64 = D_8018C028; - temp_v0->unk0 = D_800EEC3C; - func_80086F10(arg0, 2, &D_800E6834); - func_800721E8(arg0, 0x10); - func_80072488(arg0); + func_80073444(objectIndex, &D_0D0254D8, &D_0F07E350, 0x48U, (u16) 0x00000038); + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_074 = (s32) &D_0D006730; + temp_v0->unk_004[2] = 5000.0f; + temp_v0->unk_004[1] = 5000.0f; + temp_v0->unk_004[0] = 5000.0f; + temp_v0->unk_064 = D_8018C028; + temp_v0->unk_000 = 0.15f; + func_80086F10(objectIndex, 2, &D_800E6834); + func_800721E8(objectIndex, 0x00000010); + func_80072488(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007963C.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? func_800721C0(?); /* extern */ -? func_80072428(); /* extern */ -? func_80072488(s32); /* extern */ -? func_80072E54(?, ?, ?, s32, s32); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_8007963C(); /* extern */ extern ? D_80165CBE; -void func_80079700(s32 arg0) { +void func_80079700(s32 objectIndex) { u16 temp_t7; - temp_t7 = *(&D_80165CBE + (arg0 * 0xE0)); + temp_t7 = *(&D_80165CBE + (objectIndex * 0xE0)); switch (temp_t7) { case 1: func_8007963C(); return; case 2: - func_800721C0(0x10); - func_80072488(arg0); + func_800721C0(objectIndex, 0x00000010); + func_80072488(objectIndex); return; case 3: - func_80072E54(0, 0x1F, 1, 2, -1); + func_80072E54(objectIndex, 0, 0x0000001F, 1, 2, -1); return; case 4: - func_80072428(); + func_80072428(objectIndex); /* fallthrough */ default: return; @@ -4533,27 +4013,26 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80079700.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800722A4(s32, ?); // extern -? func_800723A4(s32, ?, s32); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern ? D_80183DB8; +s16 gCurrentCourseId; /* unable to generate initializer */ -void func_800797AC(s32 arg0) { +void func_800797AC(s32 playerId) { s32 sp1C; Player *sp18; Player *temp_v0; s32 temp_a2; - temp_a2 = *(&D_80183DB8 + (arg0 * 4)); - temp_v0 = &gPlayerOne[arg0]; - if ((gCurrentCourseId == 0xC) && ((temp_v0->unk_0CA & 1) != 0)) { + temp_a2 = *(&D_80183DB8 + (playerId * 4)); + temp_v0 = &gPlayerOne[playerId]; + if ((gCurrentCourseId == 0x000C) && (temp_v0->unk_0CA & 1)) { sp18 = temp_v0; sp1C = temp_a2; - func_800723A4(temp_a2, 7, temp_a2); + func_800723A4(temp_a2, 7); temp_v0->unk_0CA |= 0x10; } else { sp1C = temp_a2; - func_800723A4(temp_a2, 3, temp_a2); + func_800723A4(temp_a2, 3); } func_800722A4(sp1C, 1); } @@ -4562,413 +4041,312 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800797AC.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s32 func_80072354(s32, ?, Player *, s32); // extern -? func_800797AC(s32); // extern -? func_80090778(Player *); // extern -s32 func_802ABDF4(u16); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_800797AC(s32); /* extern */ extern ? D_80183DB8; -void func_80079860(s32 arg0) { +void func_80079860(s32 playerId) { Player *sp18; Player *temp_a2; - s32 temp_a0; - s32 temp_a3; - temp_a3 = arg0; - temp_a2 = &gPlayerOne[temp_a3]; - temp_a0 = *(&D_80183DB8 + (arg0 * 4)); + temp_a2 = &gPlayerOne[playerId]; sp18 = temp_a2; - arg0 = temp_a3; - if ((func_80072354(temp_a0, 1, temp_a2, temp_a3) != 0) && (((sp18 = temp_a2, (func_802ABDF4(temp_a2->unk_11A) != 0)) && (temp_a2->unk_124 <= 3.0f)) || ((temp_a2->unk_0CA & 1) != 0) || ((temp_a2->unk_0F8 == 0xFD) && ((temp_a2->unk_0BC & 8) == 0)))) { + if ((func_80072354(*(&D_80183DB8 + (playerId * 4)), 1) != 0) && (((sp18 = temp_a2, (func_802ABDF4(temp_a2->unk_110.unk3A) != 0)) && (temp_a2->unk_110.unk44 <= 3.0f)) || (temp_a2->unk_0CA & 1) || ((temp_a2->unk_0F8 == 0x00FD) && !(temp_a2->unk_0BC & 8)))) { func_80090778(temp_a2); - func_800797AC(arg0); + func_800797AC(playerId); } } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80079860.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800722A4(?, void *); // extern -? func_800722CC(?, void *); // extern -extern ? D_80165CB8; - -void func_8007993C(s32 arg0, void *arg1) { - void *temp_a2; - - temp_a2 = arg1; - if ((arg1->unkCA & 4) != 0) { - arg1 = temp_a2; - func_800722A4(2, temp_a2); - *(&D_80165CB8 + (arg0 * 0xE0)) = arg1->unkC6; +void func_8007993C(s32 objectIndex, Player *player) { + if (player->unk_0CA & 4) { + func_800722A4(objectIndex, 2); + D_80165C18[objectIndex].unk_0A0 = player->unk_0C6; return; } - func_800722CC(2, temp_a2); + func_800722CC(objectIndex, 2); } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007993C.s") -#endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721E8(s32, ?); // extern -? func_80072488(s32); // extern -? func_80073444(s32, ? *, ? *, ?, s32); // extern -? func_80073720(s32); // extern -? func_800791F0(); // extern -? func_80086E70(s32); // extern -? func_800C8F80(u8, ?); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_800791F0(); /* extern */ +? func_80086E70(s32); /* extern */ +? func_800C8F80(u8, ?); /* extern */ extern ? D_0D005F30; -extern ? D_0D025CD8; -extern ? D_0F0CCF50; -extern f32 D_800EEC54; -extern ? D_80165C18; +extern s32 D_0D025CD8; +extern s32 D_0F0CCF50; -void func_800799A8(s32 arg0, u8 arg1) { - void *temp_v0; +void func_800799A8(s32 objectIndex, u8 arg1) { + struct_80165C18_entry *temp_v0; func_800791F0(); - func_80073444(arg0, &D_0D025CD8, &D_0F0CCF50, 0x38, 0x48); - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unk74 = &D_0D005F30; - temp_v0->unk0 = D_800EEC54; - func_80086E70(arg0); - func_800721E8(arg0, 0x10); - func_80073720(arg0); - func_80072488(arg0); - func_800C8F80(arg1, 0x100FA28); + func_80073444(objectIndex, &D_0D025CD8, &D_0F0CCF50, 0x38U, (u16) 0x00000048); + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_074 = (s32) &D_0D005F30; + temp_v0->unk_000 = 0.15f; + func_80086E70(objectIndex); + func_800721E8(objectIndex, 0x00000010); + func_80073720(objectIndex); + func_80072488(objectIndex); + func_800C8F80(arg1, 0x0100FA28); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800799A8.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s32 f32_step_up_towards(void *, ?, ?, s32); // extern -s32 f32_step_down_towards(void *, ?, ?, s32); // extern -? func_80086F60(s32); // extern -? func_80086FD4(s32, s32); // extern -extern ? D_80165C18; - -void func_80079A5C(s32 arg0, ? arg1) { - s16 temp_v1; - s32 temp_a3; - void *temp_a0; - void *temp_v0; - - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v1 = temp_v0->unkAE; - temp_a3 = arg0; - if (temp_v1 != 0) { - if (temp_v1 != 1) { - if (temp_v1 != 2) { - temp_a0 = temp_v0 + 0x2C; - if (temp_v1 != 3) { - return; - } - arg0 = temp_a3; - if (f32_step_up_towards(temp_a0, 0x42C80000, 0x3F800000, temp_a3) != 0) { - func_80086F60(arg0); - } - // Duplicate return node #10. Try simplifying control flow for better match - return; - } - arg0 = temp_a3; - if (f32_step_down_towards(temp_v0 + 0x2C, 0x40A00000, 0x3F800000, temp_a3) != 0) { - func_80086F60(arg0); - return; - } - // Duplicate return node #10. Try simplifying control flow for better match - return; +void func_80079A5C(s32 objectIndex, Player *player) { + switch (D_80165C18[objectIndex].unk_0AE) { + case 0: + break; + case 1: + D_80165C18[objectIndex].unk_010[2] = 0.0f; + D_80165C18[objectIndex].unk_010[1] = 0.0f; + D_80165C18[objectIndex].unk_010[0] = 0.0f; + D_80165C18[objectIndex].unk_028[2] = 0.0f; + D_80165C18[objectIndex].unk_028[0] = 0.0f; + D_80165C18[objectIndex].unk_028[1] = 80.0f; + func_80086FD4(objectIndex); + break; + case 2: + if (f32_step_down_towards(&D_80165C18[objectIndex].unk_028[1], 5.0f, 1.0f) != 0) { + func_80086F60(objectIndex); } - temp_v0->unk18 = 0.0f; - temp_v0->unk14 = 0.0f; - temp_v0->unk10 = 0.0f; - temp_v0->unk30 = 0.0f; - temp_v0->unk28 = 0.0f; - temp_v0->unk2C = 80.0f; - func_80086FD4(temp_a3, temp_a3); + break; + case 3: + if (f32_step_up_towards(&D_80165C18[objectIndex].unk_028[1], 100.0f, 1.0f) != 0) { + func_80086F60(objectIndex); + } + break; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80079A5C.s") -#endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? func_800721C0(s32, ?); /* extern */ -? func_800722CC(s32, ?); /* extern */ -? func_80072428(s32); /* extern */ -? func_80072488(s32); /* extern */ -? func_800730BC(s32, ?, ?, ?, s32, s32); /* extern */ -? func_80073654(s32); /* extern */ -? func_800736E0(s32); /* extern */ -? func_80073720(s32); /* extern */ -? func_8007993C(s32, void *); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_800799A8(s32, s32); /* extern */ -? func_80079A5C(s32, void *); /* extern */ -? func_80086EAC(s32, ?, ?); /* extern */ -? func_80090868(void *); /* extern */ ? func_800C9018(u8, ?); /* extern */ -extern ? D_80165C18; -void func_80079B40(s32 arg0, s32 playerId) { - void *sp34; - void *sp2C; +void func_80079B40(s32 objectIndex, s32 playerId) { + Player *sp34; + struct_80165C18_entry *sp2C; s16 temp_v0; + struct_80165C18_entry *temp_t2; u8 temp_t6; - void *temp_t2; - temp_t2 = (arg0 * 0xE0) + &D_80165C18; - sp34 = (playerId * 0xDD8) + gPlayerOne; + temp_t2 = &D_80165C18[objectIndex]; + sp34 = &gPlayerOne[playerId]; sp2C = temp_t2; - temp_v0 = temp_t2->unkA6; - if (temp_v0 != 0) { - if (temp_v0 != 1) { - if (temp_v0 != 2) { - if (temp_v0 != 3) { - - } else { - func_800730BC(arg0, 0, 3, 1, 2, -1); - } - } else { - func_800721C0(arg0, 0x10); - func_800736E0(arg0); - func_80072488(arg0); - } - } else { - func_800799A8(arg0, playerId); - } + temp_v0 = temp_t2->unk_0A6; + switch (temp_v0) { /* switch 1; irregular */ + case 0: /* switch 1 */ + break; + case 1: /* switch 1 */ + func_800799A8(objectIndex, playerId); + break; + case 2: /* switch 1 */ + func_800721C0(objectIndex, 0x00000010); + func_800736E0(objectIndex); + func_80072488(objectIndex); + break; + case 3: /* switch 1 */ + func_800730BC(objectIndex, 0, 3, 1, 2, -1); + break; } - temp_t6 = sp2C->unkD6; + temp_t6 = sp2C->unk_0D6; switch (temp_t6) { case 1: - if (func_80086FA4(arg0) != 0) { - func_80073654(arg0); + if (func_80086FA4(objectIndex) != 0) { + func_80073654(objectIndex); } break; case 2: func_80090868(sp34); - func_80073654(arg0); + func_80073654(objectIndex); break; case 3: - if ((sp34->unkCA & 2) == 0) { - func_80086EAC(arg0, 0, 3); - func_80073654(arg0); + if (!(sp34->unk_0CA & 2)) { + func_80086EAC(objectIndex, 0, 3); + func_80073654(objectIndex); } break; case 4: - if (func_80086FA4(arg0) != 0) { - func_80073654(arg0); + if (func_80086FA4(objectIndex) != 0) { + func_80073654(objectIndex); } break; case 5: - func_800722CC(arg0, 1); - func_800C9018(playerId, 0x100FA28); - func_80072428(arg0); - func_80073720(arg0); + func_800722CC(objectIndex, 1); + func_800C9018((u8) playerId, 0x0100FA28); + func_80072428(objectIndex); + func_80073720(objectIndex); break; } - if (sp2C->unkA6 >= 2) { - func_8007993C(arg0, sp34); + if (sp2C->unk_0A6 >= 2) { + func_8007993C(objectIndex, sp34); } - func_80079A5C(arg0, sp34); + func_80079A5C(objectIndex, sp34); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80079B40.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? func_800721C0(s32, ?); /* extern */ -? func_800722A4(s32, ?); /* extern */ -? func_800722CC(s32, ?); /* extern */ -? func_80072428(s32); /* extern */ -? func_80072488(s32); /* extern */ -? func_800730BC(s32, ?, ?, ?, s32, s32); /* extern */ -? func_80073654(s32); /* extern */ -? func_800736E0(s32); /* extern */ -? func_80073720(s32); /* extern */ -s32 func_8007375C(s32, ?); /* extern */ -? func_8007993C(s32, void *); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_800799A8(s32, s32); /* extern */ -? func_80079A5C(s32, void *); /* extern */ -? func_80086EAC(s32, ?, ?); /* extern */ -? func_80090868(void *); /* extern */ ? func_800C9018(u8, ?); /* extern */ -? func_800C9060(u8, ?); /* extern */ -extern ? D_80165C18; -void func_80079D44(s32 arg0, s32 playerId) { - void *sp2C; +void func_80079D44(s32 objectIndex, s32 playerId) { + struct_80165C18_entry *sp2C; + Player *temp_s1; s16 temp_v0; + struct_80165C18_entry *temp_t1; u8 temp_t7; - void *temp_s1; - void *temp_t1; - temp_t1 = (arg0 * 0xE0) + &D_80165C18; + temp_t1 = &D_80165C18[objectIndex]; sp2C = temp_t1; - temp_v0 = temp_t1->unkA6; - temp_s1 = (playerId * 0xDD8) + gPlayerOne; - if (temp_v0 != 0) { - if (temp_v0 != 1) { - if (temp_v0 != 2) { - if (temp_v0 != 3) { - - } else { - func_800730BC(arg0, 0, 3, 1, 2, -1); - } - } else { - func_800721C0(arg0, 0x10); - func_800736E0(arg0); - temp_s1->unkCA = temp_s1->unkCA | 0x80; - func_80072488(arg0); - } - } else { - func_800799A8(arg0, playerId); - } + temp_v0 = temp_t1->unk_0A6; + temp_s1 = &gPlayerOne[playerId]; + switch (temp_v0) { /* switch 1; irregular */ + case 0: /* switch 1 */ + break; + case 1: /* switch 1 */ + func_800799A8(objectIndex, playerId); + break; + case 2: /* switch 1 */ + func_800721C0(objectIndex, 0x00000010); + func_800736E0(objectIndex); + temp_s1->unk_0CA |= 0x80; + func_80072488(objectIndex); + break; + case 3: /* switch 1 */ + func_800730BC(objectIndex, 0, 3, 1, 2, -1); + break; } - temp_t7 = sp2C->unkD6; + temp_t7 = sp2C->unk_0D6; switch (temp_t7) { case 1: - if (func_80086FA4(arg0) != 0) { - func_800C9060(playerId, 0x1900A055); - func_80073654(arg0); + if (func_80086FA4(objectIndex) != 0) { + func_800C9060((u8) playerId, 0x1900A055U); + func_80073654(objectIndex); } break; case 2: func_80090868(temp_s1); - func_800722A4(arg0, 4); - func_80073654(arg0); + func_800722A4(objectIndex, 4); + func_80073654(objectIndex); break; case 3: - if ((temp_s1->unkF8 == 9) && ((temp_s1->unkCA & 1) == 0) && (temp_s1->unk124 <= 30.0)) { - func_800722A4(arg0, 8); + if ((temp_s1->unk_0F8 == 9) && !(temp_s1->unk_0CA & 1) && ((f64) temp_s1->unk_110.unk44 <= 30.0)) { + func_800722A4(objectIndex, 8); } - if ((temp_s1->unkCA & 2) == 0) { - func_80086EAC(arg0, 0, 3); - func_80073654(arg0); + if (!(temp_s1->unk_0CA & 2)) { + func_80086EAC(objectIndex, 0, 3); + func_80073654(objectIndex); } break; case 4: - func_8007375C(arg0, 0x1E); + func_8007375C(objectIndex, 0x0000001E); break; case 5: - temp_s1->unkCA = temp_s1->unkCA & 0xFF7F; - func_800722A4(arg0, 0x10); - func_800722A4(arg0, 0x20); - func_800722CC(arg0, 4); - func_800722CC(arg0, 8); - func_80073654(arg0); - func_800C9060(playerId, 0x1900A056); + temp_s1->unk_0CA &= 0xFF7F; + func_800722A4(objectIndex, 0x00000010); + func_800722A4(objectIndex, 0x00000020); + func_800722CC(objectIndex, 4); + func_800722CC(objectIndex, 8); + func_80073654(objectIndex); + func_800C9060((u8) playerId, 0x1900A056U); break; case 6: - if (func_8007375C(arg0, 0xA0) != 0) { - func_800722CC(arg0, 0x10); - temp_s1->unkCA = temp_s1->unkCA & 0xFFEF; - temp_s1->unkCA = temp_s1->unkCA | 0x20; + if (func_8007375C(objectIndex, 0x000000A0) != 0) { + func_800722CC(objectIndex, 0x00000010); + temp_s1->unk_0CA &= 0xFFEF; + temp_s1->unk_0CA |= 0x20; } break; case 7: - func_8007375C(arg0, 0x3C); + func_8007375C(objectIndex, 0x0000003C); break; case 8: - func_80073720(arg0); - func_80072428(arg0); - temp_s1->unkCA = temp_s1->unkCA & 0xFFDF; - func_800722CC(arg0, 1); - func_800C9018(playerId, 0x100FA28); + func_80073720(objectIndex); + func_80072428(objectIndex); + temp_s1->unk_0CA &= 0xFFDF; + func_800722CC(objectIndex, 1); + func_800C9018((u8) playerId, 0x0100FA28); break; } - if (sp2C->unkA6 >= 2) { - func_8007993C(arg0, temp_s1); + if (sp2C->unk_0A6 >= 2) { + func_8007993C(objectIndex, temp_s1); } - func_80079A5C(arg0, temp_s1); + func_80079A5C(objectIndex, temp_s1); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80079D44.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721E8(s32, ?); // extern -? func_80072488(s32); // extern -? func_80073444(s32, ? *, ? *, ?, s32); // extern -? func_800791F0(); // extern -? func_80086F10(s32, ?, ? *); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_800791F0(); /* extern */ +? func_80086F10(s32, ?, ? *); /* extern */ extern ? D_0D006730; -extern ? D_0D0256D8; -extern ? D_0F09DB50; -extern ? D_800E694C; -extern f32 D_800EEC90; -extern f32 D_800EEC94; -extern ? D_80165C18; -extern s32 D_8018C028; +extern s32 D_0D0256D8; +extern s32 D_0F09DB50; +extern s32 *D_8018C028; +static ? D_800E694C; /* unable to generate initializer */ -void func_8007A060(s32 arg0) { - f32 temp_f0; - void *temp_v0; +void func_8007A060(s32 objectIndex) { + struct_80165C18_entry *temp_v0; func_800791F0(); - func_80073444(arg0, &D_0D0256D8, &D_0F09DB50, 0x48, 0x38); - temp_f0 = D_800EEC90; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unk74 = &D_0D006730; - temp_v0->unkC = temp_f0; - temp_v0->unk8 = temp_f0; - temp_v0->unk4 = temp_f0; - temp_v0->unk64 = D_8018C028; - temp_v0->unk0 = D_800EEC94; - func_800721E8(arg0, 0x10); - func_80086F10(arg0, 5, &D_800E694C); - func_80072488(arg0); + func_80073444(objectIndex, &D_0D0256D8, &D_0F09DB50, 0x48U, (u16) 0x00000038); + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_074 = (s32) &D_0D006730; + temp_v0->unk_004[2] = 5000.0f; + temp_v0->unk_004[1] = 5000.0f; + temp_v0->unk_004[0] = 5000.0f; + temp_v0->unk_064 = D_8018C028; + temp_v0->unk_000 = 0.15f; + func_800721E8(objectIndex, 0x00000010); + func_80086F10(objectIndex, 5, &D_800E694C); + func_80072488(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007A060.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? func_800721C0(?); /* extern */ -? func_80072428(); /* extern */ -? func_80072488(s32); /* extern */ -? func_8007278C(?); /* extern */ -? func_80072E54(?, ?, ?, s32, s32); /* extern */ -? func_80072F88(?, ?, ?, s32, s32); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_8007A060(); /* extern */ -extern ? D_80165C18; -void func_8007A124(s32 arg0) { +void func_8007A124(s32 objectIndex) { + struct_80165C18_entry *temp_v0; u16 temp_t8; - void *temp_v0; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_t8 = temp_v0->unkA6; + temp_v0 = &D_80165C18[objectIndex]; + temp_t8 = (u16) temp_v0->unk_0A6; switch (temp_t8) { case 1: func_8007A060(); return; case 2: - func_800721C0(0x10); - func_80072488(arg0); + func_800721C0(objectIndex, 0x00000010); + func_80072488(objectIndex); return; case 3: - func_8007278C(0x14); + func_8007278C(objectIndex, 0x00000014); return; case 4: - func_80072E54(0, 0xF, 1, 2, 1); + func_80072E54(objectIndex, 0, 0x0000000F, 1, 2, 1); return; case 5: - func_8007278C(0x3C); + func_8007278C(objectIndex, 0x0000003C); return; case 6: - func_80072F88(0xF, 0, 1, 2, 1); + func_80072F88(objectIndex, 0x0000000F, 0, 1, 2, 1); return; case 7: - if (temp_v0->unkAE == 0) { - func_80072428(); + if (temp_v0->unk_0AE == 0) { + func_80072428(objectIndex); } /* fallthrough */ default: @@ -4980,83 +4358,68 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007A124.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721E8(s32, ?); // extern -? func_80072488(s32); // extern -? func_80073444(s32, ? *, ? *, ?, s32); // extern -? func_800791F0(); // extern -? func_80086F10(s32, ?, ? *); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_800791F0(); /* extern */ +? func_80086F10(s32, ?, ? *); /* extern */ extern ? D_0D006730; -extern ? D_0D0258D8; -extern ? D_0F0AD750; -extern ? D_800E694C; -extern f32 D_800EECB8; -extern f32 D_800EECBC; -extern ? D_80165C18; -extern s32 D_8018C028; +extern s32 D_0D0258D8; +extern s32 D_0F0AD750; +extern s32 *D_8018C028; +static ? D_800E694C; /* unable to generate initializer */ -void func_8007A228(s32 arg0) { - f32 temp_f0; - void *temp_v0; +void func_8007A228(s32 objectIndex) { + struct_80165C18_entry *temp_v0; func_800791F0(); - func_80073444(arg0, &D_0D0258D8, &D_0F0AD750, 0x48, 0x38); - temp_f0 = D_800EECB8; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unk74 = &D_0D006730; - temp_v0->unkC = temp_f0; - temp_v0->unk8 = temp_f0; - temp_v0->unk4 = temp_f0; - temp_v0->unk64 = D_8018C028; - temp_v0->unk0 = D_800EECBC; - func_800721E8(arg0, 0x10); - func_80086F10(arg0, 5, &D_800E694C); - func_80072488(arg0); + func_80073444(objectIndex, &D_0D0258D8, &D_0F0AD750, 0x48U, (u16) 0x00000038); + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_074 = (s32) &D_0D006730; + temp_v0->unk_004[2] = 5000.0f; + temp_v0->unk_004[1] = 5000.0f; + temp_v0->unk_004[0] = 5000.0f; + temp_v0->unk_064 = D_8018C028; + temp_v0->unk_000 = 0.15f; + func_800721E8(objectIndex, 0x00000010); + func_80086F10(objectIndex, 5, &D_800E694C); + func_80072488(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007A228.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? func_800721C0(?); /* extern */ -? func_80072428(); /* extern */ -? func_80072488(s32); /* extern */ -? func_8007278C(?); /* extern */ -? func_80072E54(?, ?, ?, s32, s32); /* extern */ -? func_80072F88(?, ?, ?, s32, s32); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_8007A228(); /* extern */ -extern ? D_80165C18; -void func_8007A2EC(s32 arg0) { +void func_8007A2EC(s32 objectIndex) { + struct_80165C18_entry *temp_v0; u16 temp_t8; - void *temp_v0; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_t8 = temp_v0->unkA6; + temp_v0 = &D_80165C18[objectIndex]; + temp_t8 = (u16) temp_v0->unk_0A6; switch (temp_t8) { case 1: func_8007A228(); return; case 2: - func_800721C0(0x10); - func_80072488(arg0); + func_800721C0(objectIndex, 0x00000010); + func_80072488(objectIndex); return; case 3: - func_8007278C(0x14); + func_8007278C(objectIndex, 0x00000014); return; case 4: - func_80072E54(0, 0xF, 1, 2, 1); + func_80072E54(objectIndex, 0, 0x0000000F, 1, 2, 1); return; case 5: - func_8007278C(0x3C); + func_8007278C(objectIndex, 0x0000003C); return; case 6: - func_80072F88(0xF, 0, 1, 2, 1); + func_80072F88(objectIndex, 0x0000000F, 0, 1, 2, 1); return; case 7: - if (temp_v0->unkAE == 0) { - func_80072428(); + if (temp_v0->unk_0AE == 0) { + func_80072428(objectIndex); } /* fallthrough */ default: @@ -5068,105 +4431,94 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007A2EC.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721E8(s32, ?); // extern -? func_80072488(s32); // extern -? func_80073444(s32, ? *, ? *, ?, s32); // extern -? func_800791F0(); // extern -? func_80086F10(s32, ?, ? *); // extern -? func_800C8F80(u8, ?); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_800791F0(); /* extern */ +? func_80086F10(s32, ?, ? *); /* extern */ +? func_800C8F80(u8, ?); /* extern */ extern ? D_0D006730; -extern ? D_0D025AD8; -extern ? D_0F0BD350; -extern ? D_800E69B0; -extern f32 D_800EECE0; -extern f32 D_800EECE4; -extern ? D_80165C18; -extern s32 D_8018C028; +extern s32 D_0D025AD8; +extern s32 D_0F0BD350; +extern s32 *D_8018C028; +static ? D_800E69B0; /* unable to generate initializer */ -void func_8007A3F0(s32 arg0, u8 arg1) { - void *sp28; - f32 temp_f0; - void *temp_v0; +void func_8007A3F0(s32 objectIndex, u8 arg1) { + struct_80165C18_entry *sp28; + struct_80165C18_entry *temp_v0; func_800791F0(); - func_80073444(arg0, &D_0D025AD8, &D_0F0BD350, 0x48, 0x38); - temp_f0 = D_800EECE0; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unk74 = &D_0D006730; - temp_v0->unkC = temp_f0; - temp_v0->unk8 = temp_f0; - temp_v0->unk4 = temp_f0; - temp_v0->unk64 = D_8018C028; + func_80073444(objectIndex, &D_0D025AD8, &D_0F0BD350, 0x48U, (u16) 0x00000038); + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_074 = (s32) &D_0D006730; + temp_v0->unk_004[2] = 5000.0f; + temp_v0->unk_004[1] = 5000.0f; + temp_v0->unk_004[0] = 5000.0f; + temp_v0->unk_064 = D_8018C028; sp28 = temp_v0; - temp_v0->unk0 = D_800EECE4; - func_800721E8(arg0, 0x10); - func_80086F10(arg0, 6, &D_800E69B0); - temp_v0->unkD6 = 0; - func_80072488(arg0); - func_800C8F80(arg1, 0x100FA28); + temp_v0->unk_000 = 0.15f; + func_800721E8(objectIndex, 0x00000010); + func_80086F10(objectIndex, 6, &D_800E69B0); + temp_v0->unk_0D6 = 0; + func_80072488(objectIndex); + func_800C8F80(arg1, 0x0100FA28); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007A3F0.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? func_800721C0(s32, ?); /* extern */ -? func_80072428(s32); /* extern */ -? func_80072488(s32); /* extern */ -? func_800730BC(s32, ?, ?, ?, s32, s32); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_8007A3F0(s32, s32); /* extern */ ? func_80086F10(s32, ?, ? *); /* extern */ ? func_800C9018(u8, ?); /* extern */ -extern ? D_80165C18; -static ? D_800E69F4; /* unable to generate initializer; const */ +static ? D_800E69F4; /* unable to generate initializer */ -void func_8007A4D4(s32 arg0, s32 playerId) { - void *sp2C; +void func_8007A4D4(s32 objectIndex, s32 playerId) { + Player *sp2C; s32 temp_t3; + struct_80165C18_entry *temp_s0; u16 temp_t2; u8 temp_v0; - void *temp_s0; - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_t2 = temp_s0->unkA6; - sp2C = (playerId * 0xDD8) + gPlayerOne; + temp_s0 = &D_80165C18[objectIndex]; + temp_t2 = (u16) temp_s0->unk_0A6; + sp2C = &gPlayerOne[playerId]; switch (temp_t2) { + case 0: + break; case 1: - func_8007A3F0(arg0, playerId); + func_8007A3F0(objectIndex, playerId); break; case 2: - func_800721C0(arg0, 0x10); - temp_s0->unkD6 = 1; - func_80072488(arg0); + func_800721C0(objectIndex, 0x00000010); + temp_s0->unk_0D6 = 1; + func_80072488(objectIndex); break; case 3: - func_800730BC(arg0, 0, 0xF, 1, 2, -1); + func_800730BC(objectIndex, 0, 0x0000000F, 1, 2, -1); break; case 4: - func_80072428(arg0); + func_80072428(objectIndex); break; } - temp_v0 = temp_s0->unkD6; - if (temp_v0 != 1) { - if (temp_v0 != 2) { + temp_v0 = temp_s0->unk_0D6; + switch (temp_v0) { /* switch 1; irregular */ + case 1: /* switch 1 */ + if ((temp_s0->unk_0A6 >= 3) && ((sp2C->unk_0BC << 9) >= 0)) { + func_80086F10(objectIndex, 6, &D_800E69F4); + temp_s0->unk_0D6 = 2; + temp_s0->unk_04C = 0x00000050; + func_800C9018((u8) playerId, 0x0100FA28); return; } - temp_t3 = temp_s0->unk4C - 1; - temp_s0->unk4C = temp_t3; - if (temp_t3 == 0) { - func_80072488(arg0); - temp_s0->unkD6 = 0; - } - /* Duplicate return node #14. Try simplifying control flow for better match */ return; - } - if ((temp_s0->unkA6 >= 3) && ((sp2C->unkBC << 9) >= 0)) { - func_80086F10(arg0, 6, &D_800E69F4); - temp_s0->unkD6 = 2; - temp_s0->unk4C = 0x50; - func_800C9018(playerId, 0x100FA28); + case 2: /* switch 1 */ + temp_t3 = temp_s0->unk_04C - 1; + temp_s0->unk_04C = temp_t3; + if (temp_t3 == 0) { + func_80072488(objectIndex); + temp_s0->unk_0D6 = 0; + } + break; } } #else @@ -5174,54 +4526,42 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007A4D4.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -f32 sins(s32); // extern -f32 coss(s32); // extern -extern ? D_80165C18; - -void func_8007A66C(s32 arg0, void *arg1, void *arg2) { +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +void func_8007A66C(s32 objectIndex, Player *player, Camera *camera) { f32 sp24; - void *sp20; - s32 temp_s0; + struct_80165C18_entry *sp20; s32 temp_t8; - void *temp_v0; + struct_80165C18_entry *temp_v0; - temp_t8 = (0x8000 - arg2->unk26) & 0xFFFF; - temp_s0 = temp_t8; + temp_t8 = (0x8000 - camera->rot[1]) & 0xFFFF; sp24 = coss(temp_t8 & 0xFFFF); - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unk4 = (arg1->unk14 + (sp24 * (temp_v0->unk10 + temp_v0->unk28))) - ((temp_v0->unk30 + temp_v0->unk18) * sins(temp_s0 & 0xFFFF)); + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_004[0] = (player->pos[0] + (sp24 * (temp_v0->unk_010[0] + temp_v0->unk_028[0]))) - ((temp_v0->unk_028[2] + temp_v0->unk_010[2]) * sins(temp_t8 & 0xFFFF)); sp20 = temp_v0; - temp_v0->unk8 = temp_v0->unk2C + (arg1->unk74 + temp_v0->unk14); - sp24 = sins(temp_s0 & 0xFFFF); - temp_v0->unkC = ((temp_v0->unk30 + temp_v0->unk18) * coss(temp_s0 & 0xFFFF)) + (arg1->unk1C + (sp24 * (temp_v0->unk10 + temp_v0->unk28))); + temp_v0->unk_004[1] = temp_v0->unk_028[1] + (player->unk_074 + temp_v0->unk_010[1]); + sp24 = sins(temp_t8 & 0xFFFF); + temp_v0->unk_004[2] = ((temp_v0->unk_028[2] + temp_v0->unk_010[2]) * coss(temp_t8 & 0xFFFF)) + (player->pos[2] + (sp24 * (temp_v0->unk_010[0] + temp_v0->unk_028[0]))); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007A66C.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -f32 sins(s32); // extern -f32 coss(s32); // extern -extern ? D_80165C18; - -void func_8007A778(s32 arg0, void *arg1, void *arg2) { +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +void func_8007A778(s32 objectIndex, Player *player, Camera *camera) { f32 sp24; - void *sp20; - s32 temp_s0; + struct_80165C18_entry *sp20; s32 temp_t8; - void *temp_v0; + struct_80165C18_entry *temp_v0; - temp_t8 = (0x8000 - arg2->unk26) & 0xFFFF; - temp_s0 = temp_t8; + temp_t8 = (0x8000 - camera->rot[1]) & 0xFFFF; sp24 = coss(temp_t8 & 0xFFFF); - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unk4 = (arg1->unk14 + (sp24 * (temp_v0->unk10 + temp_v0->unk28))) - ((temp_v0->unk30 + temp_v0->unk18) * sins(temp_s0 & 0xFFFF)); + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_004[0] = (player->pos[0] + (sp24 * (temp_v0->unk_010[0] + temp_v0->unk_028[0]))) - ((temp_v0->unk_028[2] + temp_v0->unk_010[2]) * sins(temp_t8 & 0xFFFF)); sp20 = temp_v0; - temp_v0->unk8 = temp_v0->unk2C + (arg1->unk18 + temp_v0->unk14); - sp24 = sins(temp_s0 & 0xFFFF); - temp_v0->unkC = ((temp_v0->unk30 + temp_v0->unk18) * coss(temp_s0 & 0xFFFF)) + (arg1->unk1C + (sp24 * (temp_v0->unk10 + temp_v0->unk28))); + temp_v0->unk_004[1] = temp_v0->unk_028[1] + (player->pos[1] + temp_v0->unk_010[1]); + sp24 = sins(temp_t8 & 0xFFFF); + temp_v0->unk_004[2] = ((temp_v0->unk_028[2] + temp_v0->unk_010[2]) * coss(temp_t8 & 0xFFFF)) + (player->pos[2] + (sp24 * (temp_v0->unk_010[0] + temp_v0->unk_028[0]))); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007A778.s") @@ -5232,22 +4572,19 @@ UNUSED void func_8007A884(void) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800790E4(); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern ? D_80165CBE; extern ? D_80183DB8; -void func_8007A88C(s32 arg0) { - if ((*(&D_80165CBE + (*(&D_80183DB8 + (arg0 * 4)) * 0xE0)) == 0) && (gPlayerOne[arg0].unk_0BC & 0x400000)) { - func_800790E4(); +void func_8007A88C(s32 playerId) { + if ((*(&D_80165CBE + (*(&D_80183DB8 + (playerId * 4)) * 0xE0)) == 0) && (gPlayerOne[playerId].unk_0BC & 0x400000)) { + func_800790E4(playerId); } } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007A88C.s") #endif -extern s8 D_801657B4; - void func_8007A910(s32 arg0) { if (D_801657B4 == 0) { func_8007A88C(); @@ -5365,35 +4702,28 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007AA44.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s32 func_80072354(s32, ?, s32); // extern -? func_800723A4(s32, ?); // extern -? func_800C9060(u8, ?); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern ? D_80183E88; -extern ? D_8018CA70; -void func_8007ABFC(s32 arg0, s32 arg1) { +void func_8007ABFC(u8 arg0, s32 arg1) { s32 sp1C; - void *sp18; + struct_8018CA70_entry *sp18; s32 temp_a0; - s32 temp_a2; - void *temp_v1; + struct_8018CA70_entry *temp_v1; - temp_v1 = (arg0 * 0x84) + &D_8018CA70; - temp_a2 = arg0; - if (temp_v1->unk70 == 0) { + temp_v1 = &D_8018CA70[arg0]; + if (temp_v1->raceCompleteBool == 0) { temp_a0 = *(&D_80183E88 + (arg0 * 4)); sp18 = temp_v1; - arg0 = temp_a2; sp1C = temp_a0; - if (func_80072354(temp_a0, 4, temp_a2) != 0) { + if (func_80072354(temp_a0, 4) != 0) { sp18 = temp_v1; func_800723A4(temp_a0, 0); if (arg1 != 0) { - temp_v1->unk76 = arg1; + temp_v1->unk76 = (s8) arg1; } } - func_800C9060(arg0, 0x19008406); + func_800C9060(arg0, 0x19008406U); } } #else @@ -5401,52 +4731,44 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007ABFC.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800722A4(s32, ?); // extern -? func_800722CC(s32, ?); // extern -s32 func_80072354(s32, ?); // extern -? func_80072388(s32, ?); // extern -? func_800726CC(s32, ?); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern ? D_80183E88; -void func_8007AC9C(s32 arg0) { +void func_8007AC9C(s32 playerId) { Player *sp20; Player *temp_v0; s32 temp_s0; - void *temp_s1; + struct_80165C18_entry *temp_s1; - temp_s0 = *(&D_80183E88 + (arg0 * 4)); - temp_s1 = (temp_s0 * 0xE0) + &D_80165C18; - temp_v0 = &gPlayerOne[arg0]; - if (temp_s1->unkA4 == 0xF) { + temp_s0 = *(&D_80183E88 + (playerId * 4)); + temp_s1 = &D_80165C18[temp_s0]; + temp_v0 = &gPlayerOne[playerId]; + if (temp_s1->unk_0A4 == 0x000F) { sp20 = temp_v0; if (func_80072354(temp_s0, 2) != 0) { func_800722A4(temp_s0, 2); - temp_s1->unk98 = 0x258; - func_800726CC(temp_s0, 0x32); + temp_s1->unk_098 = 0x0258; + func_800726CC(temp_s0, 0x00000032); } - if (temp_s1->unk98 == 0) { + if ((u16) temp_s1->unk_098 == 0) { func_800722CC(temp_s0, 2); sp20->unk_010 = 0; - temp_s1->unkA4 = 0; + temp_s1->unk_0A4 = 0; func_80072388(temp_s0, 0); func_800726CC(temp_s0, 9); - return; } - // Duplicate return node #6. Try simplifying control flow for better match - return; + } else { + temp_v0->unk_010 = 0; + temp_s1->unk_0A4 = 0; + func_80072388(temp_s0, 0); } - temp_v0->unk_010 = 0; - temp_s1->unkA4 = 0; - func_80072388(temp_s0, 0); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007AC9C.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern ? D_0D008150; extern ? D_0D008790; extern ? D_0D008B14; @@ -5458,85 +4780,75 @@ u8 gen_random_item(s16 arg0, s16 arg1) { s32 sp18; s32 temp_v0; s32 temp_v1; - u8 phi_v1; - u8 *phi_a1; - s32 phi_v0; + s32 var_v0; + u8 *var_a1; + u8 var_v1; - D_801658FD = (random_int(0x64) + (D_801658FD + D_801658FF) + gRaceFrameCounter) % 0x64; + var_a1 = &D_801658FD; + D_801658FD = (u8) ((u32) (random_int(0x0064U) + (D_801658FD + D_801658FF) + gRaceFrameCounter) % 100U); temp_v1 = gModeSelection; - phi_a1 = &D_801658FD; - if (temp_v1 == VERSUS) { + if (temp_v1 == 2) { temp_v0 = gPlayerCountSelection1; - if (temp_v0 != 2) { - if (temp_v0 != 3) { - if (temp_v0 != 4) { - - } else { - sp18 = lookup_item(0xD008984); - goto block_8; - } - } else { - sp18 = lookup_item(0xD008858); - goto block_8; - } - } else { - sp18 = lookup_item(&D_0D008790); + switch (temp_v0) { /* irregular */ + case 2: + sp18 = lookup_item((u32) &D_0D008790); block_8: - phi_a1 = &D_801658FD; + var_a1 = &D_801658FD; + break; + case 3: + sp18 = lookup_item(0x0D008858U); + goto block_8; + case 4: + sp18 = lookup_item(0x0D008984U); + goto block_8; } - phi_v1 = *((arg0 * 0x64) + sp18 + *phi_a1); - } else if (temp_v1 == BATTLE) { - phi_v1 = *(D_801658FD + lookup_item(&D_0D008B14)); + var_v1 = *((arg0 * 0x64) + sp18 + *var_a1); + } else if (temp_v1 == 3) { + var_v1 = *(D_801658FD + lookup_item((u32) &D_0D008B14)); } else { if (arg1 == 0) { - phi_v0 = lookup_item(&D_0D008150); + var_v0 = lookup_item((u32) &D_0D008150); } else { - phi_v0 = lookup_item(0xD008470); + var_v0 = lookup_item(0x0D008470U); } - phi_v1 = *((arg0 * 0x64) + phi_v0 + D_801658FD); + var_v1 = *((arg0 * 0x64) + var_v0 + D_801658FD); } - return phi_v1; + return var_v1; } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/gen_random_item.s") #endif -void gen_random_item(s16, s16); -void func_8007AF40(s32 arg0, s16 arg1) { - gen_random_item(arg1, 0); +u8 func_8007AF40(s32 arg0, s16 arg1) { + return gen_random_item(arg1, 0); } -void func_8007AF78(s32 arg0, s16 arg1) { - gen_random_item(arg1, 1); +u8 func_8007AF78(s32 arg0, s16 arg1) { + return gen_random_item(arg1, 1); } #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800729B4(s32, s16); // extern -s16 func_8007AF40(s16, s16); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern ? D_80164392; extern ? D_801643BA; -extern ? D_8018CA70; -s16 func_8007AFB0(s32 arg0, s32 arg1) { +s16 func_8007AFB0(s32 objectIndex, s32 arg1) { s16 sp1A; - s16 temp_a1; + s16 var_a1; s32 temp_v0; + struct_8018CA70_entry *temp_v1; u8 temp_a0; - void *temp_v1; - s16 phi_a1; temp_v0 = arg1 * 4; - temp_v1 = (arg1 * 0x84) + &D_8018CA70; + temp_v1 = &D_8018CA70[arg1]; temp_a0 = temp_v1->unk76; - phi_a1 = func_8007AF40(*(&D_80164392 + temp_v0), *(&D_801643BA + temp_v0)); + var_a1 = func_8007AF40((s32) *(&D_80164392 + temp_v0), *(&D_801643BA + temp_v0)); if (temp_a0 != 0) { - temp_a1 = temp_a0; - temp_v1->unk76 = 0; - phi_a1 = temp_a1; + var_a1 = (s16) temp_a0; + temp_v1->unk76 = 0U; } - sp1A = phi_a1; - func_800729B4(arg0, phi_a1); + sp1A = var_a1; + func_800729B4(objectIndex, (s32) var_a1); return sp1A; } #else @@ -5544,222 +4856,180 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007AFB0.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800722A4(s32, ?, s32 *, void *); // extern -? func_800722CC(s32, ?, s32); // extern -s32 func_80072320(s32, ?); // extern -s16 func_8007AF40(s16, s16); // extern -? func_800C9060(s32, ?); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern ? D_80164392; extern ? D_801643BA; -extern ? D_80165C18; extern s32 D_80183E88; -? func_8007B040(s32 arg0, s32 arg1) { +s32 func_8007B040(s32 objectIndex, s32 arg1) { s32 sp64; s32 sp60; - ? sp50; - ? sp40; - void *sp38; + Player *sp38; s16 temp_a1; s16 temp_t0_2; - s32 *temp_a2; + s32 *var_a0; s32 temp_a0; s32 temp_t0; - s32 temp_t3; - s32 temp_t8; s32 temp_v0; - s32 temp_v0_2; s32 temp_v1; - s32 temp_v1_2; - void *temp_a3; - void *temp_a3_2; - void *temp_s0; - s16 phi_v1; - s32 phi_v1_2; - s32 *phi_a0; - s32 phi_a3; - s32 phi_a3_2; - ? phi_t3; - s32 phi_a3_3; + s32 var_a3; + s32 var_t3; + s32 var_v1_2; + struct_80165C18_entry *temp_a3; + struct_80165C18_entry *temp_a3_2; + struct_80165C18_entry *temp_s0; + u16 temp_v0_2; + u8 var_v1; - phi_a3 = 0; - phi_a3_2 = 0; - phi_t3 = 0; - if (gModeSelection == GRAND_PRIX) { - if (random_int(0x64) < 0x51) { + var_a3 = 0; + var_t3 = 0; + if (gModeSelection == 0) { + if (random_int(0x0064U) < 0x51) { temp_v0 = arg1 * 4; - phi_v1 = func_8007AF40(*(&D_80164392 + temp_v0), *(&D_801643BA + temp_v0)); + var_v1 = func_8007AF40((s32) *(&D_80164392 + temp_v0), *(&D_801643BA + temp_v0)); } else { sp60 = 0; - func_800C9060(arg1 & 0xFF, 0x1900A058); - phi_v1 = sp60; + func_800C9060(arg1 & 0xFF, 0x1900A058U); + var_v1 = (u8) sp60; } - temp_a3 = &D_80165C18 + (arg0 * 0xE0); - temp_a3->unkA2 = phi_v1; - temp_a3->unkD2 = phi_v1; - phi_t3 = 1; + var_t3 = 1; + temp_a3 = &D_80165C18[objectIndex]; + temp_a3->unk_0A2 = (s16) var_v1; + temp_a3->unk_0D2 = (s8) var_v1; } else { temp_t0 = gPlayerCountSelection1; - phi_v1_2 = 0; + var_v1_2 = 0; if (temp_t0 > 0) { - phi_a0 = &D_80183E88; + var_a0 = &D_80183E88; do { - phi_a3_3 = phi_a3; - if (phi_v1_2 != arg1) { - temp_v0_2 = phi_a3 * 4; - temp_a1 = (&D_80165C18 + (*phi_a0 * 0xE0))->unkA4; + if (var_v1_2 != arg1) { + temp_a1 = D_80165C18[*var_a0].unk_0A4; if (temp_a1 != 0) { - *(&sp50 + temp_v0_2) = phi_v1_2; - *(&sp40 + temp_v0_2) = temp_a1; - phi_a3_3 = phi_a3 + 1; + (&sp50[0])[var_a3] = var_v1_2; + (&sp40[0])[var_a3] = (s32) temp_a1; + var_a3 += 1; } } - temp_v1 = phi_v1_2 + 1; - phi_v1_2 = temp_v1; - phi_a0 += 4; - phi_a3 = phi_a3_3; - phi_a3_2 = phi_a3_3; - } while (temp_v1 < temp_t0); + var_v1_2 += 1; + var_a0 += 4; + } while (var_v1_2 < temp_t0); } - if (phi_a3_2 != 0) { - temp_t3 = random_int(phi_a3_2 & 0xFFFF) * 4; - temp_v1_2 = *(&sp50 + temp_t3); - temp_t0_2 = (&sp40 + temp_t3)->unk2; - temp_a3_2 = &D_80165C18 + (arg0 * 0xE0); - temp_t8 = temp_v1_2 * 0x70; - temp_a3_2->unkD1 = temp_v1_2; - temp_a3_2->unkA2 = temp_t0_2; - temp_a3_2->unkD2 = temp_t0_2; - temp_a2 = &D_80183E88 + (temp_v1_2 * 4); - temp_a0 = *temp_a2; - sp38 = ((((temp_t8 - temp_v1_2) * 4) - temp_v1_2) * 8) + gPlayerOne; + if (var_a3 != 0) { + temp_v0_2 = random_int(var_a3 & 0xFFFF); + temp_v1 = (&sp50[0])[temp_v0_2]; + temp_t0_2 = (&sp40[0])[temp_v0_2].unk2; + temp_a3_2 = &D_80165C18[objectIndex]; + temp_a3_2->unk_0D1 = (s8) temp_v1; + temp_a3_2->unk_0A2 = temp_t0_2; + temp_a3_2->unk_0D2 = (s8) temp_t0_2; + temp_a0 = (&D_80183E88)[temp_v1]; + sp38 = &gPlayerOne[temp_v1]; sp64 = temp_a0; - func_800722A4(temp_a0, 1, temp_a2, temp_a3_2); - temp_s0 = &D_80165C18 + (temp_a0 * 0xE0); - temp_s0->unkA4 = 0; - sp38->unk10 = 0; + func_800722A4(temp_a0, 1); + temp_s0 = &D_80165C18[temp_a0]; + temp_s0->unk_0A4 = 0; + sp38->unk_010 = 0; if (func_80072320(temp_a0, 2) != 0) { - func_800722CC(sp64, 2, sp64); - temp_s0->unk98 = 0; + func_800722CC(sp64, 2); + temp_s0->unk_098 = 0; } - phi_t3 = 1; + var_t3 = 1; } } - return phi_t3; + return var_t3; } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007B040.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800722A4(s32, ?); // extern -? func_80072428(); // extern -? func_800726CC(s32, ?); // extern -? func_800C8F80(u8, ?); // extern -extern ? D_0D01DED8; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_800C8F80(u8, ?); /* extern */ +extern s32 D_0D01DED8; extern ? D_0D01FED8; extern s8 D_80165888; -extern ? D_80165C18; extern s16 D_8018CAB8; -void func_8007B254(s32 arg0, u8 arg1) { - void *sp18; +void func_8007B254(s32 objectIndex, u8 arg1) { + struct_80165C18_entry *sp18; s8 temp_v1; - void *temp_v0; + struct_80165C18_entry *temp_v0; - func_80072428(); - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unkA6 = 2; - temp_v0->unkA4 = 0; - temp_v0->unk68 = &D_0D01DED8; - temp_v0->unk6C = &D_0D01FED8; - temp_v0->unkD9 = 0x28; - temp_v0->unkDA = 0x20; - temp_v0->unk4C = 0x32; - temp_v0->unkD6 = 1; - temp_v0->unk98 = 0; + func_80072428(objectIndex); + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_0A6 = 2; + temp_v0->unk_0A4 = 0; + temp_v0->unk_068 = &D_0D01DED8; + temp_v0->unk_06C = (s32) &D_0D01FED8; + temp_v0->unk_0D9 = 0x28; + temp_v0->unk_0DA = 0x20; + temp_v0->unk_04C = 0x00000032; + temp_v0->unk_0D6 = 1; + temp_v0->unk_098 = 0; sp18 = temp_v0; - func_800722A4(arg0, 4); + func_800722A4(objectIndex, 4); if (D_80165888 != 0) { sp18 = temp_v0; - func_800726CC(arg0, 8); - temp_v0->unkA4 = 0xE; + func_800726CC(objectIndex, 8); + temp_v0->unk_0A4 = 0x000E; temp_v1 = temp_v0->unkA5; - temp_v0->unkD6 = 2; - temp_v0->unkD2 = temp_v1; - temp_v0->unkA2 = temp_v1; + temp_v0->unk_0D6 = 2; + temp_v0->unk_0D2 = temp_v1; + temp_v0->unk_0A2 = (s16) temp_v1; D_8018CAB8 = 0; D_80165888 = 0; return; } - func_800C8F80(arg1, 0x100FE1C); + func_800C8F80(arg1, 0x0100FE1C); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007B254.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 792017ad9d422c2467bd42686f383a5c41f41c75 -? s16_step_up_towards(s16 *, ?, ?); /* extern */ -s32 s16_step_down_towards(s16 *, ?, ?); /* extern */ -? func_800722CC(s32, ?); /* extern */ -s32 func_80072320(s32, ?); /* extern */ -s32 func_80072354(s32, ?); /* extern */ -? func_800723A4(s32, ?); /* extern */ -? func_80072428(s32); /* extern */ -? func_80072488(s32); /* extern */ -? func_800726CC(s32, ?); /* extern */ -? func_8007278C(s32, ?); /* extern */ -? func_800729D0(s32, s16); /* extern */ -? func_80072D3C(s32, s16, ?, ?, s32); /* extern */ -? func_80072E54(s32, ?, ?, ?, s32, s32); /* extern */ -? func_80073600(s32); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_8007AC9C(s32); /* extern */ s8 func_8007AFB0(s32, s32); /* extern */ s32 func_8007B040(s32, s32); /* extern */ ? func_8007B254(s32, s32); /* extern */ ? func_800C8F80(u8, ?); /* extern */ ? func_800C9018(u8, ?); /* extern */ -extern ? D_0D01DED8; -extern ? D_0D01E0D8; -extern ? D_0D01E2D8; -extern ? D_0D01E4D8; -extern ? D_0D01E6D8; -extern ? D_0D01E8D8; -extern ? D_0D01EAD8; -extern ? D_0D01ECD8; -extern ? D_0D01EED8; -extern ? D_0D01F0D8; -extern ? D_0D01F2D8; -extern ? D_0D01F4D8; -extern ? D_0D01F6D8; -extern ? D_0D01F8D8; -extern ? D_0D01FAD8; -extern ? D_0D01FCD8; -extern ? D_0D01FED8; -extern ? D_0D0203D8; -extern ? D_0D0208D8; -extern ? D_0D020DD8; -extern ? D_0D0212D8; -extern ? D_0D0217D8; -extern ? D_0D021CD8; -extern ? D_0D0221D8; -extern ? D_0D0226D8; -extern ? D_0D022BD8; -extern ? D_0D0230D8; -extern ? D_0D0235D8; -extern ? D_0D023AD8; -extern ? D_0D023FD8; -extern ? D_0D0244D8; -extern ? D_0D0249D8; +extern s32 D_0D01DED8; +extern s32 D_0D01E0D8; +extern s32 D_0D01E2D8; +extern s32 D_0D01E4D8; +extern s32 D_0D01E6D8; +extern s32 D_0D01E8D8; +extern s32 D_0D01EAD8; +extern s32 D_0D01ECD8; +extern s32 D_0D01EED8; +extern s32 D_0D01F0D8; +extern s32 D_0D01F2D8; +extern s32 D_0D01F4D8; +extern s32 D_0D01F6D8; +extern s32 D_0D01F8D8; +extern s32 D_0D01FAD8; +extern s32 D_0D01FCD8; +extern s32 D_0D01FED8; +extern s32 D_0D0203D8; +extern s32 D_0D0208D8; +extern s32 D_0D020DD8; +extern s32 D_0D0212D8; +extern s32 D_0D0217D8; +extern s32 D_0D021CD8; +extern s32 D_0D0221D8; +extern s32 D_0D0226D8; +extern s32 D_0D022BD8; +extern s32 D_0D0230D8; +extern s32 D_0D0235D8; +extern s32 D_0D023AD8; +extern s32 D_0D023FD8; +extern s32 D_0D0244D8; +extern s32 D_0D0249D8; extern s8 D_80165888; -extern ? D_80165C18; extern ? D_80183E88; -extern s32 gActiveScreenMode; extern s32 gControllerOne; -static ? *D_800E44F0[0x10] = { +static s32 *D_800E44F0[0x10] = { &D_0D01DED8, &D_0D01E0D8, &D_0D01E2D8, @@ -5776,8 +5046,8 @@ static ? *D_800E44F0[0x10] = { &D_0D01E6D8, &D_0D01E8D8, &D_0D01EAD8, -}; /* const */ -static ? *D_800E4530[0x10] = { +}; +static s32 *D_800E4530[0x10] = { &D_0D01FED8, &D_0D0203D8, &D_0D0208D8, @@ -5794,12 +5064,12 @@ static ? *D_800E4530[0x10] = { &D_0D0212D8, &D_0D0217D8, &D_0D021CD8, -}; /* const */ +}; void func_8007B34C(s32 playerId) { s32 sp40; Player *sp38; - void *sp2C; + struct_80165C18_entry *sp2C; struct_8018CA70_entry *sp28; s16 temp_a1; s16 temp_a1_2; @@ -5810,6 +5080,7 @@ void func_8007B34C(s32 playerId) { s32 temp_v0_2; s32 temp_v0_4; s8 temp_v0_7; + struct_80165C18_entry *temp_t0; struct_8018CA70_entry *temp_v1; struct_8018CA70_entry *temp_v1_2; struct_8018CA70_entry *temp_v1_3; @@ -5819,20 +5090,19 @@ void func_8007B34C(s32 playerId) { u16 temp_t6; u16 temp_v0_3; u8 temp_v0_5; - void *temp_t0; sp38 = &gPlayerOne[playerId]; sp40 = 0; temp_s0 = *(&D_80183E88 + (playerId * 4)); - if ((((playerId * 0x10) + gControllerOne)->unk6 & 0x2000) != 0) { + if (((playerId * 0x10) + gControllerOne)->unk6 & 0x2000) { sp40 = 1; } if (D_80165888 != 0) { func_800723A4(temp_s0, 0); } - temp_t0 = (temp_s0 * 0xE0) + &D_80165C18; + temp_t0 = &D_80165C18[temp_s0]; sp2C = temp_t0; - temp_t6 = temp_t0->unkA6; + temp_t6 = (u16) temp_t0->unk_0A6; switch (temp_t6) { case 1: func_8007B254(temp_s0, playerId); @@ -5842,64 +5112,64 @@ void func_8007B34C(s32 playerId) { if (temp_v0 == 0) { temp_v1 = &D_8018CA70[playerId]; sp28 = temp_v1; - s16_step_up_towards(&temp_v1->slideItemBoxY, 0x40, 4); - if (temp_v1->slideItemBoxY == 0x40) { + s16_step_up_towards(&temp_v1->slideItemBoxY, 0x0040, 4); + if (temp_v1->slideItemBoxY == 0x0040) { func_80072488(temp_s0); } } else if (temp_v0 == 3) { if ((playerId == 0) || (playerId == 2)) { temp_v1_2 = &D_8018CA70[playerId]; sp28 = temp_v1_2; - s16_step_up_towards(&temp_v1_2->slideItemBoxX, 0x80, 8); - if (temp_v1_2->slideItemBoxX == 0x80) { + s16_step_up_towards(&temp_v1_2->slideItemBoxX, 0x0080, 8); + if (temp_v1_2->slideItemBoxX == 0x0080) { func_80072488(temp_s0); } } else { temp_v1_3 = &D_8018CA70[playerId]; sp28 = temp_v1_3; - s16_step_down_towards(&temp_v1_3->slideItemBoxX, -0x80, 8); - if (temp_v1_3->slideItemBoxX == -0x80) { + s16_step_down_towards(&temp_v1_3->slideItemBoxX, -0x0080, 8); + if (temp_v1_3->slideItemBoxX == -0x0080) { func_80072488(temp_s0); } } } else { temp_v1_4 = &D_8018CA70[playerId]; sp28 = temp_v1_4; - s16_step_up_towards(&temp_v1_4->slideItemBoxX, 0x80, 8); - if (temp_v1_4->slideItemBoxX == 0x80) { + s16_step_up_towards(&temp_v1_4->slideItemBoxX, 0x0080, 8); + if (temp_v1_4->slideItemBoxX == 0x0080) { func_80072488(temp_s0); } } break; case 3: - func_80072E54(temp_s0, 1, 0xF, 1, 2, 2); + func_80072E54(temp_s0, 1, 0x0000000F, 1, 2, 2); break; case 4: func_80072E54(temp_s0, 1, 6, 1, 8, 1); break; case 5: - func_80072E54(temp_s0, 1, 4, 1, 0x10, 1); + func_80072E54(temp_s0, 1, 4, 1, 0x00000010, 1); break; case 6: - sp2C->unkD2 = func_8007AFB0(temp_s0, playerId); - sp2C->unk4C = 8; - sp2C->unkD6 = 2U; + sp2C->unk_0D2 = func_8007AFB0(temp_s0, playerId); + sp2C->unk_04C = 8; + sp2C->unk_0D6 = 2; func_80072488(temp_s0); sp28 = (struct_8018CA70_entry *) (u8) playerId; func_800C9018((u8) playerId, 0x0100FE1C); func_800C8F80((u8) playerId, 0x0100FE47); break; case 7: - func_80072D3C(temp_s0, sp2C->unkA2, 0, 8, 0xA); + func_80072D3C(temp_s0, (s32) sp2C->unk_0A2, 0, 8, 0x0000000A); break; case 9: func_800722CC(temp_s0, 4); func_80073600(temp_s0); - sp2C->unkD2 = 0; + sp2C->unk_0D2 = 0; func_80072488(temp_s0); break; case 10: - func_8007278C(temp_s0, 0x14); + func_8007278C(temp_s0, 0x00000014); break; case 11: temp_v0_2 = gActiveScreenMode; @@ -5931,57 +5201,57 @@ void func_8007B34C(s32 playerId) { func_80072428(temp_s0); break; case 20: - temp_a1 = sp2C->unkA2; - if (temp_a1 == 0xB) { - func_80072D3C(temp_s0, temp_a1, 0, 8, 0xA); + temp_a1 = sp2C->unk_0A2; + if (temp_a1 == 0x000B) { + func_80072D3C(temp_s0, (s32) temp_a1, 0, 8, 0x0000000A); } else { - func_80072D3C(temp_s0, temp_a1, 0xB, 8, 0xA); + func_80072D3C(temp_s0, (s32) temp_a1, 0x0000000B, 8, 0x0000000A); } break; case 21: func_800726CC(temp_s0, 8); - sp2C->unkD6 = 2U; + sp2C->unk_0D6 = 2; break; case 30: - temp_a1_2 = sp2C->unkA2; - if (temp_a1_2 == 0xB) { - func_80072D3C(temp_s0, temp_a1_2, 0, 8, 0xA); + temp_a1_2 = sp2C->unk_0A2; + if (temp_a1_2 == 0x000B) { + func_80072D3C(temp_s0, (s32) temp_a1_2, 0, 8, 0x0000000A); } else { - func_80072D3C(temp_s0, temp_a1_2, 0xB, 8, 0xA); + func_80072D3C(temp_s0, (s32) temp_a1_2, 0x0000000B, 8, 0x0000000A); } break; case 31: func_800726CC(temp_s0, 9); break; case 40: - temp_a1_3 = sp2C->unkA2; - if (temp_a1_3 == 0xD) { - func_80072D3C(temp_s0, temp_a1_3, 0xE, 8, 0xA); + temp_a1_3 = sp2C->unk_0A2; + if (temp_a1_3 == 0x000D) { + func_80072D3C(temp_s0, (s32) temp_a1_3, 0x0000000E, 8, 0x0000000A); } else { - func_80072D3C(temp_s0, temp_a1_3, 0xD, 8, 0xA); + func_80072D3C(temp_s0, (s32) temp_a1_3, 0x0000000D, 8, 0x0000000A); } break; case 41: func_800726CC(temp_s0, 8); break; case 50: - func_80072D3C(temp_s0, sp2C->unkA2, 0, 8, 0x64); + func_80072D3C(temp_s0, (s32) sp2C->unk_0A2, 0, 8, 0x00000064); break; } if (func_80072320(temp_s0, 2) != 0) { - temp_v0_3 = sp2C->unk98; + temp_v0_3 = (u16) sp2C->unk_098; if (temp_v0_3 == 0) { func_8007AC9C(playerId); } else { - sp2C->unk98 = (u16) (temp_v0_3 - 1); + sp2C->unk_098 = temp_v0_3 - 1; } } - temp_v0_4 = sp2C->unk4C; + temp_v0_4 = sp2C->unk_04C; if (temp_v0_4 >= 0) { if (temp_v0_4 > 0) { - sp2C->unk4C = (s32) (temp_v0_4 - 1); + sp2C->unk_04C = temp_v0_4 - 1; } else { - temp_v0_5 = sp2C->unkD6; + temp_v0_5 = sp2C->unk_0D6; switch (temp_v0_5) { /* switch 1; irregular */ case 1: /* switch 1 */ if (sp40 != 0) { @@ -5990,42 +5260,42 @@ void func_8007B34C(s32 playerId) { } break; case 2: /* switch 1 */ - func_800729D0(temp_s0, sp2C->unkA2); - sp2C->unkD6 = 3U; + func_800729D0(temp_s0, (s32) sp2C->unk_0A2); + sp2C->unk_0D6 = 3; break; case 3: /* switch 1 */ - if (sp2C->unkA4 == 0) { + if (sp2C->unk_0A4 == 0) { if (func_80072354(temp_s0, 1) != 0) { - temp_v0_6 = sp2C->unkA2; - if (temp_v0_6 == 0xB) { + temp_v0_6 = sp2C->unk_0A2; + if (temp_v0_6 == 0x000B) { if (func_8007B040(temp_s0, playerId) != 0) { - func_800726CC(temp_s0, 0x14); - sp2C->unkD6 = 0U; + func_800726CC(temp_s0, 0x00000014); + sp2C->unk_0D6 = 0; } else { func_800726CC(temp_s0, 9); } - } else if ((temp_v0_6 == 0xD) || (temp_v0_6 == 0xE)) { - sp2C->unkA2 = (s16) (temp_v0_6 - 1); - func_800729D0(temp_s0, sp2C->unkA2); - sp2C->unkD6 = 3U; - func_800726CC(temp_s0, 0x28); + } else if ((temp_v0_6 == 0x000D) || (temp_v0_6 == 0x000E)) { + sp2C->unk_0A2 = temp_v0_6 - 1; + func_800729D0(temp_s0, (s32) sp2C->unk_0A2); + sp2C->unk_0D6 = 3; + func_800726CC(temp_s0, 0x00000028); } else { func_800726CC(temp_s0, 9); } } else { func_800722CC(temp_s0, 1); - func_800726CC(temp_s0, 0x1E); - sp2C->unkD6 = 0U; + func_800726CC(temp_s0, 0x0000001E); + sp2C->unk_0D6 = 0; } } break; } } } - temp_v0_7 = sp2C->unkD2; - sp2C->unk60 = (? *) D_800E44F0[temp_v0_7]; - sp2C->unk64 = (? *) D_800E4530[temp_v0_7]; - sp38->unk_010 = sp2C->unkA4; + temp_v0_7 = sp2C->unk_0D2; + sp2C->unk_060 = D_800E44F0[temp_v0_7]; + sp2C->unk_064 = D_800E4530[temp_v0_7]; + sp38->unk_010 = sp2C->unk_0A4; } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007B34C.s") @@ -6036,52 +5306,43 @@ void func_8007BB9C(void) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s16 func_80041658(f32, f32); // extern -? func_800721C0(s32, ?); // extern -? func_80072428(s32); // extern -? func_8007278C(s32, ?); // extern -? func_800735BC(s32, ? *, ?); // extern -? func_80087E08(s32, ?, ?, ?, s32, s32); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern ? D_06007BA8; -extern ? D_80165C18; -void func_8007BBBC(s32 arg0) { +void func_8007BBBC(s32 objectIndex) { f32 temp_f0; + f32 var_f14; s16 temp_v0; - void *temp_s1; - f32 phi_f14; + struct_80165C18_entry *temp_s1; - temp_s1 = (arg0 * 0xE0) + &D_80165C18; - temp_v0 = temp_s1->unkA6; - if (temp_v0 != 0) { - if (temp_v0 != 1) { - if (temp_v0 != 2) { - if (temp_v0 != 3) { - return; - } - func_80072428(arg0); - // Duplicate return node #14. Try simplifying control flow for better match - return; - } - if (gIsMirrorMode != 0) { - func_80087E08(arg0, 0x41900000, 0x3F333333, 0x41C80000, -0x5800, 0x12C); - } else { - func_80087E08(arg0, 0x41900000, 0x3F333333, 0x41C80000, 0x5800, 0x12C); - } - temp_f0 = temp_s1->unk40; - if (temp_f0 < 0.0f) { - phi_f14 = -temp_f0; - } else { - phi_f14 = temp_f0; - } - temp_s1->unkBE = func_80041658(temp_s1->unk3C, phi_f14); - func_8007278C(arg0, 0x46); - return; + temp_s1 = &D_80165C18[objectIndex]; + temp_v0 = temp_s1->unk_0A6; + switch (temp_v0) { /* irregular */ + case 1: + func_800735BC(objectIndex, (s32) &D_06007BA8, 2.0f); + func_800721C0(objectIndex, 0x00000010); + temp_s1->unk_0D5 = 0; + return; + case 2: + if (gIsMirrorMode != 0) { + func_80087E08(objectIndex, 18.0f, 0.7f, 25.0f, (s16) -0x00005800, 0x0000012C); + } else { + func_80087E08(objectIndex, 18.0f, 0.7f, 25.0f, (s16) 0x00005800, 0x0000012C); } - func_800735BC(arg0, &D_06007BA8, 0x40000000); - func_800721C0(arg0, 0x10); - temp_s1->unkD5 = 0; + temp_f0 = temp_s1->unk_038[2]; + if (temp_f0 < 0.0f) { + var_f14 = -temp_f0; + } else { + var_f14 = temp_f0; + } + temp_s1->unk_0BE = func_80041658(temp_s1->unk_038[1], var_f14); + func_8007278C(objectIndex, 0x00000046); + return; + case 3: + func_80072428(objectIndex); + /* fallthrough */ + case 0: + return; } } #else @@ -6089,26 +5350,21 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007BBBC.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800723A4(s32, ?); // extern -? func_8008B7D4(s32, f32, ?, ?); // extern -extern f64 D_800EEE08; -extern ? gNearestWaypointByPlayerId; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern ? D_80165CBE; -extern s32 D_80183F28; extern f32 D_8018D01C; -void func_8007BD04(s32 arg0) { +void func_8007BD04(s32 playerId) { s32 sp1C; s32 temp_t6; u16 temp_v0; - temp_t6 = D_80183F28; + temp_t6 = *D_80183F28; sp1C = temp_t6; if (*(&D_80165CBE + (temp_t6 * 0xE0)) == 0) { - temp_v0 = *(&gNearestWaypointByPlayerId + (arg0 * 2)); - if ((temp_v0 >= 0xA0) && (temp_v0 < 0xAB)) { - func_8008B7D4(temp_t6, D_8018D01C * D_800EEE08, 0xC3480000, 0xC4CE4000); + temp_v0 = gNearestWaypointByPlayerId[playerId]; + if (((s32) temp_v0 >= 0xA0) && ((s32) temp_v0 < 0xAB)) { + func_8008B7D4(temp_t6, (f32) ((f64) D_8018D01C * -1650.0), -200.0f, -1650.0f); func_800723A4(sp1C, 1); } } @@ -6117,99 +5373,77 @@ void func_8007BD04(s32 arg0) { GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007BD04.s") #endif -extern s32 D_80183F28; - void func_8007BDA8(void) { s32 pad; s32 temp_a0; func_8007BD04(0); - temp_a0 = D_80183F28; + temp_a0 = D_80183F28[0]; func_8007BBBC(temp_a0); func_8008BF18(temp_a0); } #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072488(); // extern -? func_8008B7D4(s32, f32, f32, f32); // extern -? func_8008B80C(s32, ?, ?, ?); // extern -? func_8008B888(s32, ?, ?, ?); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern ? D_06007BA8; -extern ? D_800E634C; -extern f32 D_800EEE10; -extern f64 D_800EEE18; -extern ? D_80165C18; +static ? D_800E634C; /* unable to generate initializer */ -void func_8007BDE0(s32 arg0) { - void *temp_v0; +void func_8007BDE0(s32 objectIndex) { + struct_80165C18_entry *temp_v0; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unkD5 = 1; - temp_v0->unk54 = 0; - temp_v0->unk70 = &D_06007BA8; - temp_v0->unk0 = D_800EEE10; - func_80072488(); - func_8008B7D4(arg0, D_800E634C.unk0, D_800E634C.unk2 + D_800EEE18, D_800E634C.unk4); - func_8008B80C(arg0, 0, 0x41F00000, 0); - func_8008B888(arg0, 0, 0x3800, 0); + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_0D5 = 1; + temp_v0->unk_054 = 0; + temp_v0->unk_070 = (s32) &D_06007BA8; + temp_v0->unk_000 = 0.2f; + func_80072488(objectIndex); + func_8008B7D4(objectIndex, (f32) D_800E634C.unk0, (f32) ((f64) D_800E634C.unk2 + 55.0), (f32) D_800E634C.unk4); + func_8008B80C(objectIndex, 0.0f, 30.0f, 0.0f); + func_8008B888(objectIndex, 0U, 0x3800U, 0U); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007BDE0.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? func_800721C0(s32, ?); /* extern */ -? func_80072428(); /* extern */ -? func_80072488(); /* extern */ -s32 func_8007278C(?); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_8007BDE0(); /* extern */ -? func_80086E70(s32); /* extern */ -? func_8008701C(s32, ?); /* extern */ -extern ? D_80165C18; -void func_8007BEC8(s32 arg0) { - s32 temp_a0; +void func_8007BEC8(s32 objectIndex) { + struct_80165C18_entry *temp_v0; u16 temp_t8; - void *temp_v0; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_t8 = temp_v0->unkA6; + temp_v0 = &D_80165C18[objectIndex]; + temp_t8 = (u16) temp_v0->unk_0A6; switch (temp_t8) { case 1: func_8007BDE0(); return; case 2: - temp_a0 = arg0; - if (func_8007278C(0x3C) != 0) { - arg0 = temp_a0; - func_800721C0(temp_a0, 0x10); - func_80086E70(arg0); + if (func_8007278C(objectIndex, 0x0000003C) != 0) { + func_800721C0(objectIndex, 0x00000010); + func_80086E70(objectIndex); return; } default: return; case 3: - if (temp_v0->unkAE == 0) { - func_80072488(); + if (temp_v0->unk_0AE == 0) { + func_80072488(objectIndex); return; } - /* Duplicate return node #11. Try simplifying control flow for better match */ - return; + break; case 4: - if (func_8007278C(0xA) != 0) { - func_8008701C(arg0, 2); + if (func_8007278C(objectIndex, 0x0000000A) != 0) { + func_8008701C(objectIndex, 2); return; } - /* Duplicate return node #11. Try simplifying control flow for better match */ - return; + break; case 5: - if (temp_v0->unkAE == 0) { - func_80072428(); + if (temp_v0->unk_0AE == 0) { + func_80072428(objectIndex); } - /* Duplicate return node #11. Try simplifying control flow for better match */ - return; + break; } } #else @@ -6217,91 +5451,80 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007BEC8.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? s16_step_up_towards(void *, ?, ?); /* extern */ -s32 u16_step_up_towards(void *, ?, u16); /* extern */ -? func_800721E8(s32, ?); /* extern */ -? func_80074344(s32, void *, ?, ?, f32, s32, s32); /* extern */ -? func_80086F60(s32); /* extern */ -? func_80086FD4(s32); /* extern */ -s32 func_80087060(s32, ?); /* extern */ -s32 func_800871AC(s32, ?); /* extern */ -? func_800877C4(s32); /* extern */ -? func_8008BF18(s32); /* extern */ -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s8 D_801658CE; -void func_8007BFB0(s32 arg0) { +void func_8007BFB0(s32 objectIndex) { f64 temp_f0; s16 temp_v0; - void *temp_s0; + struct_80165C18_entry *temp_s0; - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0 = temp_s0->unkAE; + temp_s0 = &D_80165C18[objectIndex]; + temp_v0 = temp_s0->unk_0AE; switch (temp_v0) { case 1: - temp_s0->unk3C = -0.2f; - if (temp_s0->unk2C <= 0.0) { - temp_s0->unk2C = 0.0f; - temp_s0->unk3C = 0.0f; - func_80086F60(arg0); + temp_s0->unk_038[1] = -0.2f; + if ((f64) temp_s0->unk_028[1] <= 0.0) { + temp_s0->unk_028[1] = 0.0f; + temp_s0->unk_038[1] = 0.0f; + func_80086F60(objectIndex); } -block_26: break; case 2: - if (func_800871AC(arg0, 0x14) != 0) { - temp_s0->unk92 = 0x40; + if (func_800871AC(objectIndex, 0x00000014) != 0) { + temp_s0->unk_084[7] = 0x0040; } - goto block_26; + break; case 3: - temp_s0->unk0 = temp_s0->unk0 - 0.0015; - if (temp_s0->unkBE >= 0xA01) { - temp_s0->unk92 = temp_s0->unk92 - 4; + temp_s0->unk_000 = (f32) ((f64) temp_s0->unk_000 - 0.0015); + if ((s32) temp_s0->unk_0BE >= 0xA01) { + temp_s0->unk_084[7] -= 4; } - if (u16_step_up_towards(temp_s0 + 0xBE, 0xC00, temp_s0->unk92) != 0) { - func_80086FD4(arg0); + if (u16_step_up_towards(&temp_s0->unk_0BE, 0x0C00U, (u16) temp_s0->unk_084[7]) != 0) { + func_80086FD4(objectIndex); } - goto block_26; + break; case 4: - temp_s0->unk0 = temp_s0->unk0 - 0.0015; - temp_s0->unk34 = 0.001f; - func_80086FD4(arg0); - temp_s0->unk92 = 0; - goto block_26; + temp_s0->unk_000 = (f32) ((f64) temp_s0->unk_000 - 0.0015); + temp_s0->unk_034 = 0.001f; + func_80086FD4(objectIndex); + temp_s0->unk_084[7] = 0; + break; case 5: - temp_f0 = temp_s0->unk34; + temp_f0 = (f64) temp_s0->unk_034; if (temp_f0 <= 0.004) { - temp_s0->unk34 = temp_f0 + 0.0002; + temp_s0->unk_034 = (f32) (temp_f0 + 0.0002); } - temp_s0->unk0 = temp_s0->unk0 + temp_s0->unk34; - s16_step_up_towards(temp_s0 + 0x92, 0x100, 0x10); - temp_s0->unkBE = temp_s0->unkBE - temp_s0->unk92; - if (func_80087060(arg0, 0x35) != 0) { - func_80086FD4(arg0); + temp_s0->unk_000 += temp_s0->unk_034; + s16_step_up_towards(&temp_s0->unk_084[7], 0x0100, 0x0010); + temp_s0->unk_0BE -= temp_s0->unk_084[7]; + if (func_80087060(objectIndex, 0x00000035) != 0) { + func_80086FD4(objectIndex); } - goto block_26; + break; case 6: - if (func_80087060(arg0, 0xF) != 0) { - func_80086FD4(arg0); + if (func_80087060(objectIndex, 0x0000000F) != 0) { + func_80086FD4(objectIndex); D_801658CE = 1; } - goto block_26; + break; case 7: - temp_s0->unk0 = temp_s0->unk0 - 0.05; - if (temp_s0->unk0 <= 0.01) { - func_800721E8(arg0, 0x10); - temp_s0->unk0 = 0.000001f; - func_80086FD4(arg0); + temp_s0->unk_000 = (f32) ((f64) temp_s0->unk_000 - 0.05); + if ((f64) temp_s0->unk_000 <= 0.01) { + func_800721E8(objectIndex, 0x00000010); + temp_s0->unk_000 = 0.000001f; + func_80086FD4(objectIndex); } - goto block_26; + break; case 8: - func_80086F60(arg0); - goto block_26; + func_80086F60(objectIndex); + break; } - if (temp_s0->unkAE < 0xA) { - func_80074344(arg0, temp_s0, 0x3E4CCCCD, 0x3E570A3D, 0.001f, 0, -1); + if (temp_s0->unk_0AE < 0xA) { + func_80074344(objectIndex, &temp_s0->unk_000, 0.2f, 0.21f, 0.001f, 0, -1); } - func_800877C4(arg0); - func_8008BF18(arg0); + func_800877C4(objectIndex); + func_8008BF18(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007BFB0.s") @@ -6360,57 +5583,51 @@ void func_8007C340(void) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(?, void *, s32); // extern -? func_800721E8(?, void *, s32); // extern -extern ? D_80165C18; - -void func_8007C360(s32 arg0, void *arg1) { - void *sp20; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +void func_8007C360(s32 objectIndex, void *arg1) { + struct_80165C18_entry *sp20; s32 sp1C; s32 temp_t0; s32 temp_t2; - void *temp_a2; - s32 phi_t1; + s32 var_t1; + struct_80165C18_entry *temp_a2; - temp_a2 = (arg0 * 0xE0) + &D_80165C18; - temp_t0 = (((temp_a2->unkC0 - arg1->unk26) + 0x8000) & 0xFFFF) * 0x24; - phi_t1 = temp_t0 >> 0x10; + temp_a2 = &D_80165C18[objectIndex]; + temp_t0 = (((temp_a2->unk_0C0 - arg1->unk26) + 0x8000) & 0xFFFF) * 0x24; + var_t1 = temp_t0 >> 0x10; if (temp_t0 < 0) { - phi_t1 = (temp_t0 + 0xFFFF) >> 0x10; + var_t1 = (s32) (temp_t0 + 0xFFFF) >> 0x10; } - temp_t2 = phi_t1 & 0xFFFF; + temp_t2 = var_t1 & 0xFFFF; if (temp_t2 < 0x13) { sp20 = temp_a2; sp1C = temp_t2; - func_800721E8(0x80, temp_a2, temp_t2); - temp_a2->unkD2 = sp1C; + func_800721E8(objectIndex, 0x00000080); + temp_a2->unk_0D2 = (s8) sp1C; return; } sp20 = temp_a2; sp1C = temp_t2; - func_800721C0(0x80, temp_a2, temp_t2); - temp_a2->unkD2 = 0x24 - temp_t2; + func_800721C0(objectIndex, 0x00000080); + temp_a2->unk_0D2 = 0x24 - temp_t2; } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007C360.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -u16 func_800417B4(u16, s32); // extern -? func_8007C360(s32, s32); // extern -s32 atan2s(f32, f32); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +u16 func_800417B4(u16, s32); /* extern */ +? func_8007C360(s32, s32); /* extern */ -void func_8007C420(s32 arg0, void *arg1, s32 arg2) { - void *sp18; - void *temp_v1; +void func_8007C420(s32 objectIndex, void *arg1, s32 arg2) { + struct_80165C18_entry *sp18; + struct_80165C18_entry *temp_v1; - temp_v1 = (arg0 * 0xE0) + &D_80165C18; + temp_v1 = &D_80165C18[objectIndex]; sp18 = temp_v1; - temp_v1->unkC0 = func_800417B4(temp_v1->unkC0, atan2s(arg1->unk14 - temp_v1->unk4, arg1->unk1C - temp_v1->unkC) & 0xFFFF); - func_8007C360(arg0, arg2); + temp_v1->unk_0C0 = func_800417B4(temp_v1->unk_0C0, atan2s(arg1->unk14 - temp_v1->unk_004[0], arg1->unk1C - temp_v1->unk_004[2]) & 0xFFFF); + func_8007C360(objectIndex, arg2); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007C420.s") @@ -6421,147 +5638,124 @@ UNUSED void func_8007C49C(void) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(?, s32); // extern -? func_800721E8(?, s32); // extern -extern ? D_80165C18; - -void func_8007C4A4(s32 arg0) { - void *sp20; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +void func_8007C4A4(s32 objectIndex) { + struct_80165C18_entry *sp20; s32 sp1C; s32 temp_t0; s32 temp_t8; - void *temp_v1; - s32 phi_t9; + s32 var_t9; + struct_80165C18_entry *temp_v1; - temp_v1 = (arg0 * 0xE0) + &D_80165C18; - temp_t8 = temp_v1->unkC0 * 0x24; - phi_t9 = temp_t8 >> 0x10; + temp_v1 = &D_80165C18[objectIndex]; + temp_t8 = temp_v1->unk_0C0 * 0x24; + var_t9 = temp_t8 >> 0x10; if (temp_t8 < 0) { - phi_t9 = (temp_t8 + 0xFFFF) >> 0x10; + var_t9 = (s32) (temp_t8 + 0xFFFF) >> 0x10; } - temp_t0 = phi_t9 & 0xFFFF; + temp_t0 = var_t9 & 0xFFFF; if (temp_t0 < 0x13) { sp20 = temp_v1; sp1C = temp_t0; - func_800721E8(0x80, temp_t0); - temp_v1->unkD2 = sp1C; + func_800721E8(objectIndex, 0x00000080); + temp_v1->unk_0D2 = (s8) sp1C; return; } sp20 = temp_v1; sp1C = temp_t0; - func_800721C0(0x80, temp_t0); - temp_v1->unkD2 = 0x24 - temp_t0; + func_800721C0(objectIndex, 0x00000080); + temp_v1->unk_0D2 = 0x24 - temp_t0; } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007C4A4.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -u16 func_800417B4(u16, s32); // extern -? func_8007C4A4(s32); // extern -s32 atan2s(f32, f32); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +u16 func_800417B4(u16, s32); /* extern */ +? func_8007C4A4(s32); /* extern */ -void func_8007C550(s32 arg0) { - void *sp18; - void *temp_v1; +void func_8007C550(s32 objectIndex) { + struct_80165C18_entry *sp18; + struct_80165C18_entry *temp_v1; - temp_v1 = (arg0 * 0xE0) + &D_80165C18; + temp_v1 = &D_80165C18[objectIndex]; sp18 = temp_v1; - temp_v1->unkC0 = func_800417B4(temp_v1->unkC0, atan2s(temp_v1->unk38, temp_v1->unk40) & 0xFFFF); - func_8007C4A4(arg0); + temp_v1->unk_0C0 = func_800417B4(temp_v1->unk_0C0, atan2s(temp_v1->unk_038, temp_v1->unk_040) & 0xFFFF); + func_8007C4A4(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007C550.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_80072488(s32); // extern -? func_80073444(? *, s32, ?, s32); // extern -? func_80073844(s32); // extern -? func_80073FD4(s32); // extern -? func_80086EF0(s32); // extern -extern ? D_06005C80; -extern f32 D_800EEEA0; -extern s32 D_80165880; -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s32 D_06005C80; +extern s32 *D_80165880; -void func_8007C5B4(s32 arg0) { - void *temp_s0; +void func_8007C5B4(s32 objectIndex) { + struct_80165C18_entry *temp_s0; - func_80073444(&D_06005C80, D_80165880, 0x30, 0x28); - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_s0->unk4 = 0.0f; - temp_s0->unk8 = 0.0f; - temp_s0->unkC = 0.0f; - func_800721C0(arg0, 0x20); - func_80072488(arg0); - temp_s0->unkA0 = 0; - func_80073844(arg0); - temp_s0->unk0 = D_800EEEA0; - temp_s0->unk34 = 1.0f; - func_80073FD4(arg0); - func_80086EF0(arg0); - func_800721C0(arg0, 0x800); - temp_s0->unkB2 = 0; - temp_s0->unkB6 = 0x8000; + func_80073444(objectIndex, &D_06005C80, D_80165880, 0x30U, (u16) 0x00000028); + temp_s0 = &D_80165C18[objectIndex]; + temp_s0->unk_004[0] = 0.0f; + temp_s0->unk_004[1] = 0.0f; + temp_s0->unk_004[2] = 0.0f; + func_800721C0(objectIndex, 0x00000020); + func_80072488(objectIndex); + temp_s0->unk_0A0 = 0; + func_80073844(objectIndex); + temp_s0->unk_000 = 0.15f; + temp_s0->unk_034 = 1.0f; + func_80073FD4(objectIndex); + func_80086EF0(objectIndex); + func_800721C0(objectIndex, 0x00000800); + temp_s0->unk_0B2 = 0; + temp_s0->unk_0B6 = 0x8000; } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007C5B4.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? func_80072428(s32, s32); /* extern */ -? func_80073514(s32); /* extern */ -? func_80073884(s32); /* extern */ -? func_80073998(s32, void *, ?, ?, s32, s32, s32); /* extern */ -? func_80073CB0(s32, void *, ?, ?, s32, s32, s32); /* extern */ -? func_80073DC0(s32, void *, ?, ?); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_8007C5B4(s16); /* extern */ ? func_80086F60(s32); /* extern */ -extern ? D_80165C18; -void func_8007C684(s32 arg0) { - void *sp30; - s16 temp_a1; - s32 temp_t6; +void func_8007C684(s32 objectIndex) { + struct_80165C18_entry *sp30; + s16 var_a1; + struct_80165C18_entry *temp_v0; u8 temp_t8; - void *temp_v0; - s32 phi_a1; - temp_t6 = arg0 * 0xE0; - temp_v0 = temp_t6 + &D_80165C18; - temp_a1 = temp_v0->unkA6; - phi_a1 = temp_a1; - if ((temp_a1 != 0) && (temp_a1 == 1)) { + temp_v0 = &D_80165C18[objectIndex]; + var_a1 = temp_v0->unk_0A6; + if ((var_a1 != 0) && (var_a1 == 1)) { sp30 = temp_v0; - func_8007C5B4(temp_a1); - phi_a1 = temp_v0->unkA6; + func_8007C5B4(var_a1); + var_a1 = temp_v0->unk_0A6; } - if (phi_a1 >= 2) { - temp_t8 = (temp_t6 + &D_80165C18)->unkDC; + if (var_a1 >= 2) { + temp_t8 = temp_v0->unk_0DC; switch (temp_t8) { + case 0: + break; case 1: - func_80073998(arg0, temp_t6 + &D_80165C18 + 0xA0, 0, 0x50, 2, 1, 0); + func_80073998(objectIndex, &temp_v0->unk_0A0, 0, 0x00000050, 2, 1, 0); break; case 2: - func_80073CB0(arg0, temp_t6 + &D_80165C18 + 0xA0, 0x50, 0x78, 1, 0, -1); + func_80073CB0(objectIndex, &temp_v0->unk_0A0, 0x00000050, 0x00000078, 1, 0, -1); break; case 3: - func_80073DC0(arg0, temp_t6 + &D_80165C18 + 0xA0, 0, 2); + func_80073DC0(objectIndex, &temp_v0->unk_0A0, 0, 2); break; case 4: - func_80072428(arg0, phi_a1); - func_80086F60(arg0); - func_80073884(arg0); + func_80072428(objectIndex); + func_80086F60(objectIndex); + func_80073884(objectIndex); break; } - func_80073514(arg0); + func_80073514(objectIndex); } } #else @@ -6624,34 +5818,32 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007C7B4.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern ? D_80165C18; -extern ? D_8018BFA8; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern s16 D_8018CFF0; extern s16 D_8018D048; -void func_8007C91C(s32 arg0) { +void func_8007C91C(s32 objectIndex) { + s32 *temp_a0; s32 *temp_a1; - void *temp_a0; - void *temp_a2; - void *temp_a2_2; - void *temp_a2_3; - void *temp_a2_4; - void *temp_a2_5; + struct_80165C18_entry *temp_a2; + struct_80165C18_entry *temp_a2_2; + struct_80165C18_entry *temp_a2_3; + struct_80165C18_entry *temp_a2_4; + struct_80165C18_entry *temp_a2_5; - temp_a1 = (arg0 * 4) + &D_8018BFA8; - temp_a0 = temp_a1 + (1 * 4); - temp_a2 = &D_80165C18 + (*temp_a1 * 0xE0); - temp_a2->unkDC = temp_a2->unkDC + 1; - temp_a2_2 = &D_80165C18 + (temp_a0->unk0 * 0xE0); - temp_a2_2->unkDC = temp_a2_2->unkDC + 1; - temp_a2_3 = &D_80165C18 + (temp_a0->unk4 * 0xE0); - temp_a2_3->unkDC = temp_a2_3->unkDC + 1; - temp_a2_4 = &D_80165C18 + (temp_a0->unk8 * 0xE0); - temp_a2_4->unkDC = temp_a2_4->unkDC + 1; - temp_a2_5 = &D_80165C18 + (temp_a0->unkC * 0xE0); - temp_a2_5->unkDC = temp_a2_5->unkDC + 1; - if (temp_a1 == &D_8018BFA8) { + temp_a1 = &D_8018BFA8[objectIndex]; + temp_a0 = &temp_a1[1]; + temp_a2 = &D_80165C18[*temp_a1]; + temp_a2->unk_0DC += 1; + temp_a2_2 = &D_80165C18[temp_a0->unk0]; + temp_a2_2->unk_0DC += 1; + temp_a2_3 = &D_80165C18[temp_a0->unk4]; + temp_a2_3->unk_0DC += 1; + temp_a2_4 = &D_80165C18[temp_a0->unk8]; + temp_a2_4->unk_0DC += 1; + temp_a2_5 = &D_80165C18[temp_a0->unkC]; + temp_a2_5->unk_0DC += 1; + if (temp_a1 == D_8018BFA8) { D_8018D048 = 0; return; } @@ -6662,9 +5854,7 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007C91C.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern s16 gGPCurrentRacePlayerIdByRank; - +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc s16 func_8007C9F8(void) { s8 temp_v0; @@ -6673,26 +5863,25 @@ s16 func_8007C9F8(void) { return 0; } if (temp_v0 == 2) { - if (gModeSelection == GRAND_PRIX) { + if (gModeSelection == 0) { if (gPlayerPositions->unk0 < gPlayerPositions->unk4) { return 0; } return 1; } - return gGPCurrentRacePlayerIdByRank; + return *gGPCurrentRacePlayerIdByRank; } - return gGPCurrentRacePlayerIdByRank; + return *gGPCurrentRacePlayerIdByRank; } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007C9F8.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_8007C7B4(?, s16); // extern -? func_8007C91C(?, s16); // extern -s16 func_8007C9F8(); // extern -extern ? gNearestWaypointByPlayerId; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_8007C7B4(?, s16); /* extern */ +? func_8007C91C(?, s16); /* extern */ +s16 func_8007C9F8(); /* extern */ extern s16 D_8018CFF0; extern s16 D_8018D018; extern s16 D_8018D048; @@ -6703,57 +5892,53 @@ void func_8007CA70(void) { s16 temp_a1; s16 temp_a1_2; s16 temp_v0; - s16 temp_v0_3; + s16 temp_v0_2; u16 *temp_v1_2; u16 *temp_v1_4; - u16 temp_v0_2; - u16 temp_v0_4; u16 temp_v1; u16 temp_v1_3; - s32 phi_v0; - s32 phi_v0_2; + u16 var_v0; + u16 var_v0_2; if (D_8018CFF0 == 0) { temp_v0 = func_8007C9F8(); - temp_v1 = *(&gNearestWaypointByPlayerId + (temp_v0 * 2)); + temp_v1 = gNearestWaypointByPlayerId[temp_v0]; D_8018D018 = temp_v0; - if ((temp_v1 >= 0xC9) && (temp_v1 < 0xD2)) { + if (((s32) temp_v1 >= 0xC9) && ((s32) temp_v1 < 0xD2)) { func_8007C7B4(0, temp_v0); } } if (D_8018CFF0 != 0) { temp_a1 = D_8018D018; - temp_v1_2 = (temp_a1 * 2) + &gNearestWaypointByPlayerId; - temp_v0_2 = *temp_v1_2; - phi_v0 = temp_v0_2; - if ((temp_v0_2 >= 0xB5) && (temp_v0_2 < 0xBE)) { + temp_v1_2 = &gNearestWaypointByPlayerId[temp_a1]; + var_v0 = *temp_v1_2; + if (((s32) var_v0 >= 0xB5) && ((s32) var_v0 < 0xBE)) { sp1C = temp_v1_2; func_8007C91C(0, temp_a1); - phi_v0 = *temp_v1_2; + var_v0 = *temp_v1_2; } - if ((phi_v0 >= 0x119) && (phi_v0 < 0x122)) { + if (((s32) var_v0 >= 0x119) && ((s32) var_v0 < 0x122)) { func_8007C91C(0); } } if (D_8018D048 == 0) { - temp_v0_3 = func_8007C9F8(); - temp_v1_3 = *(&gNearestWaypointByPlayerId + (temp_v0_3 * 2)); - D_8018D110 = temp_v0_3; - if ((temp_v1_3 >= 0x1FF) && (temp_v1_3 < 0x208)) { - func_8007C7B4(5, temp_v0_3); + temp_v0_2 = func_8007C9F8(); + temp_v1_3 = gNearestWaypointByPlayerId[temp_v0_2]; + D_8018D110 = temp_v0_2; + if (((s32) temp_v1_3 >= 0x1FF) && ((s32) temp_v1_3 < 0x208)) { + func_8007C7B4(5, temp_v0_2); } } if (D_8018D048 != 0) { temp_a1_2 = D_8018D110; - temp_v1_4 = (temp_a1_2 * 2) + &gNearestWaypointByPlayerId; - temp_v0_4 = *temp_v1_4; - phi_v0_2 = temp_v0_4; - if ((temp_v0_4 >= 0x1EB) && (temp_v0_4 < 0x1F4)) { + temp_v1_4 = &gNearestWaypointByPlayerId[temp_a1_2]; + var_v0_2 = *temp_v1_4; + if (((s32) var_v0_2 >= 0x1EB) && ((s32) var_v0_2 < 0x1F4)) { sp1C = temp_v1_4; func_8007C91C(5, temp_a1_2); - phi_v0_2 = *temp_v1_4; + var_v0_2 = *temp_v1_4; } - if ((phi_v0_2 >= 0x26D) && (phi_v0_2 < 0x276)) { + if (((s32) var_v0_2 >= 0x26D) && ((s32) var_v0_2 < 0x276)) { func_8007C91C(5); } } @@ -6763,158 +5948,132 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007CA70.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s32 func_8007223C(s32, ?); // extern -? func_8007C550(s32); // extern -? func_8007C684(s32); // extern -? func_8007CA70(); // extern -? func_8008B78C(s32); // extern -f32 sins(s32); // extern -f32 coss(s32); // extern -extern ? D_800E4470; -extern ? D_800E44B0; -extern ? D_80165C18; -extern s32 D_8018BFA8; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_8007C550(s32); /* extern */ +? func_8007C684(s32); /* extern */ +? func_8007CA70(); /* extern */ +? func_8008B78C(s32); /* extern */ extern ? D_8018BFD0; +static ? D_800E4470; /* unable to generate initializer */ +static ? D_800E44B0; /* unable to generate initializer */ void func_8007CC00(void) { Player *temp_s3; f32 temp_f20; f32 temp_f20_2; - s32 *temp_s4; - s32 temp_s1; + s32 *var_s4; s32 temp_s2; s32 temp_t4; s8 temp_v0; - void *temp_s0; - s32 *phi_s4; + struct_80165C18_entry *temp_s0; func_8007CA70(); - phi_s4 = &D_8018BFA8; + var_s4 = D_8018BFA8; do { - temp_s2 = *phi_s4; - temp_s0 = &D_80165C18 + (temp_s2 * 0xE0); - if (temp_s0->unkA6 != 0) { + temp_s2 = *var_s4; + temp_s0 = &D_80165C18[temp_s2]; + if (temp_s0->unk_0A6 != 0) { func_8007C684(temp_s2); func_8008B78C(temp_s2); - temp_v0 = temp_s0->unkD1; - temp_t4 = (0x8000 - ((temp_v0 * 0xB8) + camera1)->unk26) & 0xFFFF; - temp_s1 = temp_t4; + temp_v0 = temp_s0->unk_0D1; + temp_t4 = (0x8000 - camera1[temp_v0].rot[1]) & 0xFFFF; temp_s3 = &gPlayerOne[temp_v0]; temp_f20 = coss(temp_t4 & 0xFFFF); - temp_s0->unk4 = (temp_s3->posX + (temp_f20 * (temp_s0->unk10 + temp_s0->unk28))) - ((temp_s0->unk30 + temp_s0->unk18) * sins(temp_s1 & 0xFFFF)); - temp_s0->unk8 = temp_s0->unk2C + (6.5 + temp_s3->unk_074 + temp_s0->unk14); - temp_f20_2 = sins(temp_s1 & 0xFFFF); - temp_s0->unkC = ((temp_s0->unk30 + temp_s0->unk18) * coss(temp_s1 & 0xFFFF)) + (temp_s3->posZ + (temp_f20_2 * (temp_s0->unk10 + temp_s0->unk28))); + temp_s0->unk_004[0] = (temp_s3->pos[0] + (temp_f20 * (temp_s0->unk_010[0] + temp_s0->unk_028[0]))) - ((temp_s0->unk_028[2] + temp_s0->unk_010[2]) * sins(temp_t4 & 0xFFFF)); + temp_s0->unk_004[1] = (f32) ((f64) temp_s0->unk_028[1] + (6.5 + (f64) temp_s3->unk_074 + (f64) temp_s0->unk_010[1])); + temp_f20_2 = sins(temp_t4 & 0xFFFF); + temp_s0->unk_004[2] = ((temp_s0->unk_028[2] + temp_s0->unk_010[2]) * coss(temp_t4 & 0xFFFF)) + (temp_s3->pos[2] + (temp_f20_2 * (temp_s0->unk_010[0] + temp_s0->unk_028[0]))); func_8007C550(temp_s2); - if (func_8007223C(temp_s2, 0x80) != 0) { - temp_s0->unk74 = &D_800E44B0; + if (func_8007223C(temp_s2, 0x00000080) != 0) { + temp_s0->unk_074 = (s32) &D_800E44B0; } else { - temp_s0->unk74 = &D_800E4470; + temp_s0->unk_074 = (s32) &D_800E4470; } } - temp_s4 = phi_s4 + 4; - phi_s4 = temp_s4; - } while (temp_s4 != &D_8018BFD0); + var_s4 += 4; + } while (var_s4 != &D_8018BFD0); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007CC00.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072488(s32); // extern -? func_80073444(? *, ? *, ?, s32); // extern -? func_80073844(s32); // extern -? func_80086EF0(s32); // extern -s16 atan2s(f32, f32); // extern -extern ? D_06005C80; -extern ? D_0F0D0E50; -extern f32 D_800EEEB8; -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s32 D_06005C80; +extern s32 D_0F0D0E50; extern void *D_8018CF1C; -void func_8007CE0C(s32 arg0) { - void *temp_s0; +void func_8007CE0C(s32 objectIndex) { + struct_80165C18_entry *temp_s0; void *temp_v0; - func_80073444(&D_06005C80, &D_0F0D0E50, 0x30, 0x28); - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_s0->unkD2 = 0x1C; - temp_s0->unk4 = 0.0f; - temp_s0->unk8 = 0.0f; - temp_s0->unkC = 0.0f; - temp_s0->unk0 = D_800EEEB8; - func_80072488(arg0); - temp_s0->unkA0 = 0; - func_80073844(arg0); - func_80086EF0(arg0); - temp_s0->unkC2 = 0x8000; + func_80073444(objectIndex, &D_06005C80, &D_0F0D0E50, 0x30U, (u16) 0x00000028); + temp_s0 = &D_80165C18[objectIndex]; + temp_s0->unk_0D2 = 0x1C; + temp_s0->unk_004[0] = 0.0f; + temp_s0->unk_004[1] = 0.0f; + temp_s0->unk_004[2] = 0.0f; + temp_s0->unk_000 = 0.15f; + func_80072488(objectIndex); + temp_s0->unk_0A0 = 0; + func_80073844(objectIndex); + func_80086EF0(objectIndex); + temp_s0->unk_0C2 = 0x8000; temp_v0 = D_8018CF1C; - temp_s0->unkC0 = atan2s(temp_v0->unk14 - temp_s0->unk10, temp_v0->unk1C - temp_s0->unk18); + temp_s0->unk_0C0 = atan2s(temp_v0->unk14 - temp_s0->unk_010[0], temp_v0->unk1C - temp_s0->unk_010[2]); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007CE0C.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? func_80072428(s32); /* extern */ -? func_8007278C(s32, ?); /* extern */ -? func_80072950(s32, u8, ?, ?); /* extern */ -? func_80073514(s32); /* extern */ -? func_80073884(s32); /* extern */ -? func_80073998(s32, void *, ?, ?, s32, s32, s32); /* extern */ -? func_80073CB0(s32, void *, ?, ?, s32, s32, s32); /* extern */ -? func_80073DC0(s32, void *, ?, ?); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_8007CE0C(s32); /* extern */ -extern ? D_80165C18; -void func_8007CEDC(s32 arg0) { +void func_8007CEDC(s32 objectIndex) { s16 temp_v0; + struct_80165C18_entry *temp_s0; u8 temp_t9; - void *temp_s0; - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0 = temp_s0->unkA6; + temp_s0 = &D_80165C18[objectIndex]; + temp_v0 = temp_s0->unk_0A6; switch (temp_v0) { /* switch 1 */ + case 0: /* switch 1 */ + break; case 1: /* switch 1 */ - func_8007CE0C(arg0); -block_6: + func_8007CE0C(objectIndex); break; case 2: /* switch 1 */ - func_8007278C(arg0, 0x1E); - goto block_6; + func_8007278C(objectIndex, 0x0000001E); + break; case 3: /* switch 1 */ - func_8007278C(arg0, 0x3E8); - goto block_6; + func_8007278C(objectIndex, 0x000003E8); + break; case 4: /* switch 1 */ - func_80072428(arg0); - goto block_6; + func_80072428(objectIndex); + break; } - if (temp_s0->unkA6 >= 2) { - func_80072950(arg0, temp_s0->unkDC, 0, 4); - func_80073514(arg0); - temp_t9 = temp_s0->unkDC; + if (temp_s0->unk_0A6 >= 2) { + func_80072950(objectIndex, (s32) temp_s0->unk_0DC, 0, 4); + func_80073514(objectIndex); + temp_t9 = temp_s0->unk_0DC; switch (temp_t9) { /* switch 2 */ case 1: /* switch 2 */ - func_80073998(arg0, temp_s0 + 0xA0, 0x28, 0x50, 4, 0, 0); + func_80073998(objectIndex, &temp_s0->unk_0A0, 0x00000028, 0x00000050, 4, 0, 0); return; case 2: /* switch 2 */ - func_80073CB0(arg0, temp_s0 + 0xA0, 0x50, 0xB4, 2, 0, -1); - if ((temp_s0->unkAE == 0) || (temp_s0->unkA6 == 3)) { - temp_s0->unkDC = temp_s0->unkDC + 1; + func_80073CB0(objectIndex, &temp_s0->unk_0A0, 0x00000050, 0x000000B4, 2, 0, -1); + if ((temp_s0->unk_0AE == 0) || (temp_s0->unk_0A6 == 3)) { + temp_s0->unk_0DC += 1; return; } - /* Duplicate return node #16. Try simplifying control flow for better match */ - return; + break; case 3: /* switch 2 */ - func_80073DC0(arg0, temp_s0 + 0xA0, 0, 4); + func_80073DC0(objectIndex, &temp_s0->unk_0A0, 0, 4); return; case 4: /* switch 2 */ - func_80073884(arg0); - /* Duplicate return node #16. Try simplifying control flow for better match */ - return; + func_80073884(objectIndex); + break; } } else { default: /* switch 2 */ @@ -6925,6 +6084,23 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007CEDC.s") #endif #ifdef MIPS_TO_C +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_8007C420(s32, void *, void *); /* extern */ +? func_8007CEDC(s32); /* extern */ +? func_8008B724(s32); /* extern */ +extern s32 D_8016559C; +extern ? D_8018C1B0; +extern s32 D_8018C1D8; +extern ? D_8018C228; +extern void *D_8018CF14; +extern void *D_8018CF1C; +extern s16 D_8018CF68; +extern s32 D_8018D2A4; +static ? D_800E4470; /* unable to generate initializer */ +static ? D_800E44B0; /* unable to generate initializer */ +static ? D_800E5D54; /* unable to generate initializer */ +static ? D_800E5DB4; /* unable to generate initializer */ + void func_8007D070(void) { f32 sp44; ? *var_s2; @@ -6935,67 +6111,65 @@ void func_8007D070(void) { s16 temp_v1; s32 temp_s1; s32 temp_s1_2; - s32 temp_s1_3; s32 temp_s3; s32 temp_t2; s32 temp_t5; s32 var_v0; + struct_80165C18_entry *temp_s0; + struct_80165C18_entry *temp_s0_2; void *temp_a1; - void *temp_s0; - void *temp_s0_2; var_v0 = 0; if ((D_8016559C == 0) && (D_8018D2A4 != 0)) { temp_v1 = D_8018CF68; if ((temp_v1 < 0x1D) && (*(&D_800E5DB4 + temp_v1) == 1)) { - if ((&D_80165C18 + (D_8018C1D8 * 0xE0))->unkA6 != 0) { + if (D_80165C18[D_8018C1D8].unk_0A6 != 0) { loop_5: var_v0 += 1; if (var_v0 != 0x1E) { - if ((&D_80165C18 + ((&D_8018C1B0 + (var_v0 * 4))->unk28 * 0xE0))->unkA6 != 0) { + if (D_80165C18[(&D_8018C1B0 + (var_v0 * 4))->unk28].unk_0A6 != 0) { goto loop_5; } } } temp_s1 = (&D_8018C1B0 + (var_v0 * 4))->unk28; if (var_v0 != 0x1E) { - temp_s0 = &D_80165C18 + (temp_s1 * 0xE0); - if (temp_s0->unkA6 == 0) { + temp_s0 = &D_80165C18[temp_s1]; + if (temp_s0->unk_0A6 == 0) { func_800723A4(temp_s1, 1); - temp_s2 = random_int(0x12C); - temp_s3 = (random_int(0x1000) - 0x800) & 0xFFFF; - temp_t5 = (random_int(0xF) - 5) << 0x10; - temp_s0->unkC0 = (s16) (D_8018CF1C->unk2E + 0x8000); + temp_s2 = random_int(0x012CU); + temp_s3 = (random_int(0x1000U) - 0x800) & 0xFFFF; + temp_t5 = (random_int(0x000FU) - 5) << 0x10; + temp_s0->unk_0C0 = D_8018CF1C->unk2E + 0x8000; temp_t2 = (D_8018CF14->unk26 + temp_s3) & 0xFFFF; - temp_s1_2 = temp_t2; temp_f2 = (f32) temp_s2; temp_f6 = sins(temp_t2 & 0xFFFF) * temp_f2; sp44 = temp_f2; - temp_s0->unk14 = (f32) (temp_t5 >> 0x10); - temp_s0->unk10 = (f32) (temp_f6 + D_8018CF1C->unk14); - temp_f4 = coss(temp_s1_2 & 0xFFFF) * temp_f2; - temp_s0->unk80 = &D_800E5D54; - temp_s0->unk18 = (f32) (temp_f4 + D_8018CF1C->unk1C); + temp_s0->unk_010[1] = (f32) (temp_t5 >> 0x10); + temp_s0->unk_010[0] = temp_f6 + D_8018CF1C->unk14; + temp_f4 = coss(temp_t2 & 0xFFFF) * temp_f2; + temp_s0->unk_080 = (s32) &D_800E5D54; + temp_s0->unk_010[2] = temp_f4 + D_8018CF1C->unk1C; } } } } var_s2 = &D_8018C1B0; do { - temp_s1_3 = var_s2->unk28; - temp_s0_2 = &D_80165C18 + (temp_s1_3 * 0xE0); - if (temp_s0_2->unkA6 != 0) { - func_8007CEDC(temp_s1_3); - func_8008B724(temp_s1_3); + temp_s1_2 = var_s2->unk28; + temp_s0_2 = &D_80165C18[temp_s1_2]; + if (temp_s0_2->unk_0A6 != 0) { + func_8007CEDC(temp_s1_2); + func_8008B724(temp_s1_2); temp_a1 = D_8018CF1C; - temp_s0_2->unk4 = (f32) (temp_s0_2->unk28 + temp_s0_2->unk10); - temp_s0_2->unk8 = (f32) (temp_s0_2->unk2C + (temp_a1->unk74 + temp_s0_2->unk14)); - temp_s0_2->unkC = (f32) (temp_s0_2->unk30 + temp_s0_2->unk18); - func_8007C420(temp_s1_3, temp_a1, D_8018CF14); - if (func_8007223C(temp_s1_3, 0x80) != 0) { - temp_s0_2->unk74 = &D_800E44B0; + temp_s0_2->unk_004[0] = temp_s0_2->unk_028[0] + temp_s0_2->unk_010[0]; + temp_s0_2->unk_004[1] = temp_s0_2->unk_028[1] + (temp_a1->unk74 + temp_s0_2->unk_010[1]); + temp_s0_2->unk_004[2] = temp_s0_2->unk_028[2] + temp_s0_2->unk_010[2]; + func_8007C420(temp_s1_2, temp_a1, D_8018CF14); + if (func_8007223C(temp_s1_2, 0x00000080) != 0) { + temp_s0_2->unk_074 = (s32) &D_800E44B0; } else { - temp_s0_2->unk74 = &D_800E4470; + temp_s0_2->unk_074 = (s32) &D_800E4470; } } var_s2 += 4; @@ -7006,26 +6180,18 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007D070.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s16 func_80041770(f32, f32, f32, f32); // extern -? func_8008B80C(s32, ?, ?, ?); // extern -extern f64 D_800EEEE8; -extern f64 D_800EEEF0; -extern f64 D_800EEEF8; -extern f64 D_800EEF00; -extern f64 D_800EEF08; -extern f64 D_800EEF10; -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern f32 D_8018D01C; -void func_8007D360(s32 arg0, s32 arg1) { - f64 temp_f10; - f64 temp_f16; - f64 temp_f16_2; - f64 temp_f16_3; - f64 temp_f16_4; - f64 temp_f18; - f64 temp_f8; +void func_8007D360(s32 objectIndex, s32 arg1) { + f32 var_f6; + f64 var_f10; + f64 var_f16; + f64 var_f16_2; + f64 var_f16_3; + f64 var_f16_4; + f64 var_f18; + f64 var_f8; s32 temp_v0; s32 temp_v0_2; s32 temp_v0_3; @@ -7033,113 +6199,95 @@ void func_8007D360(s32 arg0, s32 arg1) { s32 temp_v0_5; s32 temp_v0_6; s32 temp_v0_7; - void *temp_s0; - void *temp_s0_2; - f64 phi_f8; - f64 phi_f18; - f64 phi_f16; - f64 phi_f16_2; - f64 phi_f16_3; - f32 phi_f6; - f64 phi_f10; - f64 phi_f16_4; + struct_80165C18_entry *temp_s0; + struct_80165C18_entry *temp_s0_2; if (arg1 == 1) { - temp_v0 = random_int(0x1E); - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_f8 = temp_v0; - phi_f8 = temp_f8; + temp_v0 = random_int(0x001EU); + temp_s0 = &D_80165C18[objectIndex]; + var_f8 = (f64) temp_v0; if (temp_v0 < 0) { - phi_f8 = temp_f8 + 4294967296.0; + var_f8 += 4294967296.0; } - temp_s0->unk10 = (D_800EEEE8 - phi_f8) * D_8018D01C; - temp_v0_2 = random_int(0x19); - temp_f18 = temp_v0_2; - phi_f18 = temp_f18; + temp_s0->unk_010[0] = (f32) ((-1775.0 - var_f8) * (f64) D_8018D01C); + temp_v0_2 = random_int(0x0019U); + var_f18 = (f64) temp_v0_2; if (temp_v0_2 < 0) { - phi_f18 = temp_f18 + 4294967296.0; + var_f18 += 4294967296.0; } - temp_s0->unk14 = phi_f18 + 25.0; - temp_v0_3 = random_int(0x1E); - temp_f16 = temp_v0_3; - phi_f16 = temp_f16; + temp_s0->unk_010[1] = (f32) (var_f18 + 25.0); + temp_v0_3 = random_int(0x001EU); + var_f16 = (f64) temp_v0_3; if (temp_v0_3 < 0) { - phi_f16 = temp_f16 + 4294967296.0; + var_f16 += 4294967296.0; } - temp_s0->unk18 = phi_f16 + D_800EEEF0; - temp_s0->unk20 = 0.0f; - temp_s0->unk1C = D_8018D01C * D_800EEEF8; - temp_v0_4 = random_int(0x96); - temp_f16_2 = temp_v0_4; - phi_f16_2 = temp_f16_2; + temp_s0->unk_010[2] = (f32) (var_f16 + 130.0); + temp_s0->unk_01C[1] = 0.0f; + temp_s0->unk_01C[0] = (f32) ((f64) D_8018D01C * -2500.0); + temp_v0_4 = random_int(0x0096U); + var_f16_2 = (f64) temp_v0_4; if (temp_v0_4 < 0) { - phi_f16_2 = temp_f16_2 + 4294967296.0; + var_f16_2 += 4294967296.0; } - temp_s0->unkBE = 0xDC00; - temp_s0->unkC6 = 0x800; - temp_s0->unk24 = D_800EEF00 - phi_f16_2; + temp_s0->unk_0BE = 0xDC00; + temp_s0->unkC6 = 0x0800; + temp_s0->unk_01C[2] = (f32) (220.0 - var_f16_2); } - temp_s0_2 = (arg0 * 0xE0) + &D_80165C18; + temp_s0_2 = &D_80165C18[objectIndex]; if (arg1 == 2) { - temp_s0_2->unk10 = (-0x55B - random_int(0x1E)) * D_8018D01C; - temp_s0_2->unk14 = random_int(0x19) + 0xF; - temp_s0_2->unk18 = random_int(0x1E) - 0xE8; - temp_s0_2->unk20 = 0.0f; - temp_s0_2->unk1C = D_8018D01C * D_800EEF08; - temp_v0_5 = random_int(0xC8); - temp_f16_3 = temp_v0_5; - phi_f16_3 = temp_f16_3; + temp_s0_2->unk_010[0] = (f32) (-0x55B - random_int(0x001EU)) * D_8018D01C; + temp_s0_2->unk_010[1] = (f32) (random_int(0x0019U) + 0xF); + temp_s0_2->unk_010[2] = (f32) (random_int(0x001EU) - 0xE8); + temp_s0_2->unk_01C[1] = 0.0f; + temp_s0_2->unk_01C[0] = (f32) ((f64) D_8018D01C * -2100.0); + temp_v0_5 = random_int(0x00C8U); + var_f16_3 = (f64) temp_v0_5; if (temp_v0_5 < 0) { - phi_f16_3 = temp_f16_3 + 4294967296.0; + var_f16_3 += 4294967296.0; } - temp_s0_2->unkBE = 0; + temp_s0_2->unk_0BE = 0; temp_s0_2->unkC6 = 0; - temp_s0_2->unk24 = phi_f16_3 + D_800EEF10; + temp_s0_2->unk_01C[2] = (f32) (var_f16_3 + -290.0); } - temp_s0_2->unkC0 = func_80041770(temp_s0_2->unk10, temp_s0_2->unk1C, temp_s0_2->unk18, temp_s0_2->unk24); - temp_s0_2->unkC2 = 0; - func_8008B80C(arg0, 0, 0, 0); - temp_s0_2->unkB0 = 0; - if (gCCSelection < CC_150) { - temp_v0_6 = random_int(4); - temp_f10 = temp_v0_6; - phi_f10 = temp_f10; + temp_s0_2->unk_0C0 = func_80041770(temp_s0_2->unk_010[0], temp_s0_2->unk_01C[0], temp_s0_2->unk_010[2], temp_s0_2->unk_01C[2]); + temp_s0_2->unk_0C2 = 0; + func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); + temp_s0_2->unk_0B0 = 0; + if (gCCSelection < 2) { + temp_v0_6 = random_int(4U); + var_f10 = (f64) temp_v0_6; if (temp_v0_6 < 0) { - phi_f10 = temp_f10 + 4294967296.0; + var_f10 += 4294967296.0; } - phi_f6 = phi_f10 + 4.0; + var_f6 = (f32) (var_f10 + 4.0); } else { - temp_v0_7 = random_int(4); - temp_f16_4 = temp_v0_7; - phi_f16_4 = temp_f16_4; + temp_v0_7 = random_int(4U); + var_f16_4 = (f64) temp_v0_7; if (temp_v0_7 < 0) { - phi_f16_4 = temp_f16_4 + 4294967296.0; + var_f16_4 += 4294967296.0; } - phi_f6 = phi_f16_4 + 5.0; + var_f6 = (f32) (var_f16_4 + 5.0); } - temp_s0_2->unk34 = phi_f6; + temp_s0_2->unk_034 = var_f6; } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007D360.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_8007D360(); // extern -extern f32 D_800EEF18; -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_8007D360(); /* extern */ -void func_8007D6A8(s32 arg0) { - void *sp18; - void *temp_v0; +void func_8007D6A8(s32 objectIndex) { + struct_80165C18_entry *sp18; + struct_80165C18_entry *temp_v0; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unkD5 = 0xD; + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_0D5 = 0x0D; sp18 = temp_v0; func_8007D360(); - sp18->unk0 = D_800EEF18; - func_800721C0(arg0, 0x200); + sp18->unk_000 = 0.1f; + func_800721C0(objectIndex, 0x00000200); sp18->unkC8 = 3; } #else @@ -7197,113 +6345,60 @@ void func_8007D794(void) { GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007D794.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s32 func_8008A140(s32, s32, ?); // extern +s32 func_8007D804(s32 objectIndex) { + s32 loopIndex; + s32 someCount; -s32 func_8007D804(s32 arg0) { - s32 temp_s1; - s32 phi_s0; - s32 phi_s1; - s32 phi_s2; - s32 phi_s2_2; - s32 phi_s2_3; - - phi_s1 = 0; - phi_s2 = 0; - phi_s2_3 = 0; - if (gPlayerCountSelection1 > 0) { - phi_s0 = 0; - do { - phi_s2_2 = phi_s2_3; - if (func_8008A140(arg0, phi_s0 + camera1, 0x4000) != 0) { - phi_s2_2 = phi_s2_3 + 1; - } - temp_s1 = phi_s1 + 1; - phi_s0 += 0xB8; - phi_s1 = temp_s1; - phi_s2 = phi_s2_2; - phi_s2_3 = phi_s2_2; - } while (temp_s1 < gPlayerCountSelection1); + someCount = 0; + for (loopIndex = 0; loopIndex < gPlayerCountSelection1; loopIndex++) { + if (func_8008A140(objectIndex, &camera1[loopIndex], 0x4000U) != 0) { + someCount += 1; + } } - return phi_s2; + return someCount; } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007D804.s") -#endif void func_8007D8AC(s32 arg0) { func_80072488(arg0); func_80086E70(arg0); } -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072428(s32); // extern -s32 func_8007D804(); // extern -? func_8007D8AC(); // extern -extern f64 D_800EEF20; -extern f64 D_800EEF28; -extern f64 D_800EEF30; -extern f64 D_800EEF38; -extern ? D_80165C18; +#ifdef NEEDS_RODATA -void func_8007D8D4(s32 arg0, s32 arg1) { - void *sp18; - s16 temp_v0; - s32 temp_a0; - s32 temp_t6; - void *temp_v1; - s32 phi_a0; +extern f64 D_800EEF20;// = 2540.0; +extern f64 D_800EEF28;// = -2540.0; +extern f64 D_800EEF30;// = 2150.0; +extern f64 D_800EEF38;// = -2150.0; - temp_t6 = arg0 * 0xE0; - temp_v1 = temp_t6 + &D_80165C18; - temp_v0 = temp_v1->unkA6; - if (temp_v0 != 0) { - if (temp_v0 != 1) { - if (temp_v0 != 2) { - return; - } - sp18 = temp_v1; - temp_a0 = arg0; - phi_a0 = temp_a0; - if (func_8007D804() == 0) { - sp18 = temp_v1; - arg0 = temp_a0; - func_80072428(temp_a0); - phi_a0 = arg0; - } - if (arg1 == 1) { - if (gIsMirrorMode != 0) { - if (D_800EEF20 <= (temp_t6 + &D_80165C18)->unk4) { - func_80072428(phi_a0); - return; - } - // Duplicate return node #18. Try simplifying control flow for better match - return; - } - if ((temp_t6 + &D_80165C18)->unk4 <= D_800EEF28) { - func_80072428(phi_a0); - return; - } - // Duplicate return node #18. Try simplifying control flow for better match - return; - } - if (gIsMirrorMode != 0) { - if (D_800EEF30 <= (temp_t6 + &D_80165C18)->unk4) { - func_80072428(phi_a0); - return; - } - // Duplicate return node #18. Try simplifying control flow for better match - return; - } - if ((temp_t6 + &D_80165C18)->unk4 <= D_800EEF38) { - func_80072428(phi_a0); - } - // Duplicate return node #18. Try simplifying control flow for better match - return; +void func_8007D8D4(s32 objectIndex, s32 arg1) { + switch (D_80165C18[objectIndex].unk_0A6) { + case 1: + func_8007D8AC(objectIndex); + break; + case 2: + if (func_8007D804(objectIndex) == 0) { + func_80072428(objectIndex); } - func_8007D8AC(); + if (arg1 == 1) { + if (gIsMirrorMode != 0) { + if (D_80165C18[objectIndex].unk_004[0] >= 2540.0) { + func_80072428(objectIndex); + } + } else if (D_80165C18[objectIndex].unk_004[0] <= -2540.0) { + func_80072428(objectIndex); + } + } else if (gIsMirrorMode != 0) { + if (D_80165C18[objectIndex].unk_004[0] >= 2150.0) { + func_80072428(objectIndex); + } + } else { + if (D_80165C18[objectIndex].unk_004[0] <= -2150.0) { + func_80072428(objectIndex); + } + } + break; + case 0: + break; } } #else @@ -7315,135 +6410,175 @@ void func_8007DA4C(s32 arg0) { func_8008BF18(arg0); } -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -u16 func_800417B4(u16, u16); // extern -s32 func_80087060(?); // extern -? func_80087844(s32); // extern -? func_8008BF18(s32); // extern -extern ? D_80165C18; - -void func_8007DA74(s32 arg0) { - void *sp18; - s16 temp_v0; - s32 temp_t7; - void *temp_v1; - - temp_t7 = arg0 * 0xE0; - temp_v1 = temp_t7 + &D_80165C18; - temp_v0 = temp_v1->unkAE; - if ((temp_v0 != 0) && (temp_v0 == 1)) { - sp18 = temp_v1; - if (func_80087060(0x1E) != 0) { - temp_v1->unkC6 = 0; +void func_8007DA74(s32 objectIndex) { + s32 stackPadding; + if ((D_80165C18[objectIndex].unk_0AE != 0) && (D_80165C18[objectIndex].unk_0AE == 1)) { + if (func_80087060(objectIndex, 0x0000001E) != 0) { + D_80165C18[objectIndex].unk_0C6 = 0U; } } - sp18 = temp_t7 + &D_80165C18; - (temp_t7 + &D_80165C18)->unkBE = func_800417B4((temp_t7 + &D_80165C18)->unkBE, (temp_t7 + &D_80165C18)->unkC6); - func_80087844(arg0); - func_8008BF18(arg0); + D_80165C18[objectIndex].unk_0BE = func_800417B4(D_80165C18[objectIndex].unk_0BE, D_80165C18[objectIndex].unk_0C6); + func_80087844(objectIndex); + func_8008BF18(objectIndex); } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007DA74.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_8007DA4C(); // extern -? func_8007DA74(); // extern - -void func_8007DAF8(s32 arg1) { - if (arg1 != 1) { - if (arg1 != 2) { - return; - } - func_8007DA4C(); +void func_8007DAF8(s32 objectIndex, s32 arg1) { + switch (arg1) { /* irregular */ + case 1: + func_8007DA74(objectIndex); + return; + case 2: + func_8007DA4C(objectIndex); return; } - func_8007DA74(); } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007DAF8.s") -#endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -/* -Failed to decompile function func_8007DB44: +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_8007D794(s32); /* extern */ +extern s32 D_8018C3F0; +extern ? D_8018C490; +extern s32 D_8018C630; +extern ? D_8018C6A8; +extern s16 D_8018CFB0; +extern s16 D_8018CFC8; +extern s16 D_8018CFD8; +extern s16 D_8018CFE8; +extern s16 D_8018D000; +extern s16 D_8018D010; -Label L8007DCF8 refers to a delay slot; this is currently not supported. -Please modify the assembly to work around it (e.g. copy the instruction -to all jump sources and move the label, or add a nop to the delay slot). -*/ +void func_8007DB44(void) { + s16 temp_v0; + s16 temp_v0_2; + s32 *var_s2; + s32 *var_s2_2; + s32 temp_s0; + s32 temp_s0_2; + s32 temp_s0_3; + struct_80165C18_entry *temp_s1; + struct_80165C18_entry *temp_s1_2; + struct_80165C18_entry *temp_s1_3; + + temp_v0 = D_8018CFC8; + if (temp_v0 != 0) { + D_8018CFC8 = temp_v0 - 1; + } + temp_v0_2 = D_8018D000; + if (temp_v0_2 != 0) { + D_8018D000 = temp_v0_2 - 1; + } + temp_s0 = *D_80183EA0; + func_80072E54(temp_s0, 0, 3, 1, 0, -1); + func_80073514(temp_s0); + temp_s1 = &D_80165C18[temp_s0]; + func_80073CB0(temp_s0, &temp_s1->unk_0A0, -0x00001000, 0x00001000, 0x00000400, 0, -1); + temp_s1->unk_0B6 = temp_s1->unk_0A0 + 0x8000; + if ((D_8018CFB0 != 0) || (D_8018CFC8 != 0)) { + D_8018CFD8 = 0; + var_s2 = &D_8018C3F0; + do { + temp_s0_2 = *var_s2; + if (temp_s0_2 != -1) { + temp_s1_2 = &D_80165C18[temp_s0_2]; + if (temp_s1_2->unk_0A6 != 0) { + func_8007D8D4(temp_s0_2, 1); + func_8007DAF8(temp_s0_2, 1); + func_8007D794(temp_s0_2); + if (temp_s1_2->unk_0A6 == 0) { + func_80072100((s32) var_s2); + } + D_8018CFD8 += 1; + } + } + var_s2 += 4; + } while (var_s2 != &D_8018C490); + if (D_8018CFD8 != 0) { + D_8018CFC8 = 0x012C; + } + } + if ((D_8018CFE8 != 0) || (D_8018D000 != 0)) { + D_8018D010 = 0; + var_s2_2 = &D_8018C630; + do { + temp_s0_3 = *var_s2_2; + if (temp_s0_3 != -1) { + temp_s1_3 = &D_80165C18[temp_s0_3]; + if (temp_s1_3->unk_0A6 != 0) { + func_8007D8D4(temp_s0_3, 2); + func_8007DAF8(temp_s0_3, 2); + func_8007D794(temp_s0_3); + if (temp_s1_3->unk_0A6 == 0) { + func_80072100((s32) var_s2_2); + } + D_8018D010 += 1; + } + } + var_s2_2 += 4; + } while (var_s2_2 != &D_8018C6A8); + if (D_8018D010 != 0) { + D_8018D000 = 0x012C; + } + } +} #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007DB44.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s32 func_8007223C(s32, ?); // extern -? func_800722A4(s32, ?); // extern -? func_800722CC(?); // extern -s32 func_80072354(s32, ?); // extern -? func_800726CC(s32, ?); // extern -? func_8008A6DC(s32, ?32); // extern -s32 func_8008A8B0(?, ?); // extern -? func_800C9D80(void *, void *, ?); // extern -? func_800C9EF4(void *, ?); // extern -extern ?32 D_800EEF40; -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_800C9EF4(f32 *, ?); /* extern */ -void func_8007DDC0(s32 arg0) { - ?32 sp2C; - void *sp20; +void func_8007DDC0(s32 objectIndex) { + f32 sp2C; + f32 *sp20; s16 temp_v0_4; s32 temp_t1; s32 temp_t9; s32 temp_v0; s32 temp_v0_2; s32 temp_v0_3; - void *temp_s0; + struct_80165C18_entry *temp_s0; - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0 = temp_s0->unk4C; + temp_s0 = &D_80165C18[objectIndex]; + temp_v0 = temp_s0->unk_04C; temp_t9 = temp_v0 - 1; if (temp_v0 > 0) { - temp_s0->unk4C = temp_t9; + temp_s0->unk_04C = temp_t9; if (temp_t9 == 0) { - func_800722CC(1); + func_800722CC(objectIndex, 1); } } - temp_v0_2 = temp_s0->unk48; + temp_v0_2 = temp_s0->unk_048; temp_t1 = temp_v0_2 - 1; if (temp_v0_2 > 0) { - temp_s0->unk48 = temp_t1; + temp_s0->unk_048 = temp_t1; if (temp_t1 == 0) { - func_800C9EF4(temp_s0 + 4, 0x51028006); + func_800C9EF4(temp_s0->unk_004, 0x51028006); } } - if (temp_s0->unk4C == 0) { + if (temp_s0->unk_04C == 0) { temp_v0_3 = gCCSelection; - if ((temp_v0_3 == CC_50) || (temp_v0_3 == CC_100) || (temp_v0_3 == CC_150) || (temp_v0_3 == CC_EXTRA)) { - sp2C = D_800EEF40; + if ((temp_v0_3 == 0) || (temp_v0_3 == 1) || (temp_v0_3 == 2) || (temp_v0_3 == 3)) { + sp2C = 1150.0f; } - func_8008A6DC(arg0, sp2C); - if ((func_8007223C(arg0, 0x40000) != 0) && (func_80072354(arg0, 1) != 0)) { - sp20 = temp_s0 + 4; - func_800722A4(arg0, 1); - func_800C9D80(sp20, temp_s0 + 0x38, 0x51028006); - func_800726CC(arg0, 3); - temp_v0_4 = temp_s0->unkA4; + func_8008A6DC(objectIndex, sp2C); + if ((func_8007223C(objectIndex, 0x00040000) != 0) && (func_80072354(objectIndex, 1) != 0)) { + sp20 = temp_s0->unk_004; + func_800722A4(objectIndex, 1); + func_800C9D80((f32 (*)[3]) sp20, (f32 (*)[3]) temp_s0->unk_038, 0x51028006U); + func_800726CC(objectIndex, 3); + temp_v0_4 = temp_s0->unk_0A4; if (temp_v0_4 > 0) { - temp_s0->unkA4 = temp_v0_4 - 1; - temp_s0->unk4C = 0x168; + temp_s0->unk_0A4 = temp_v0_4 - 1; + temp_s0->unk_04C = 0x00000168; } else { - temp_s0->unk4C = 0x168; + temp_s0->unk_04C = 0x00000168; } - temp_s0->unk48 = 0x12C; + temp_s0->unk_048 = 0x0000012C; } } - if (func_8008A8B0(0xF, 0x12) == 0) { - temp_s0->unkA4 = 2; + if (func_8008A8B0(0x000F, 0x0012) == 0) { + temp_s0->unk_0A4 = 2; } } #else @@ -7451,80 +6586,65 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007DDC0.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072488(s32); // extern -? func_8008B8BC(?, ?, ?); // extern -? func_8008B8F0(s32, ?, ?, ?); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern ? D_0600A9D8; -extern f32 D_800EEF44; -extern f32 D_800EEF48; -extern ? D_80165C18; -void func_8007DF20(s32 arg0) { - void *sp1C; - void *temp_v0; +void func_8007DF20(s32 objectIndex) { + struct_80165C18_entry *sp1C; + struct_80165C18_entry *temp_v0; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unk70 = &D_0600A9D8; - temp_v0->unk4C = 0; - temp_v0->unk92 = 0; + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_070 = (s32) &D_0600A9D8; + temp_v0->unk_04C = 0; + temp_v0->unk_084[7] = 0; sp1C = temp_v0; - temp_v0->unk0 = 1.0f; - func_8008B8BC(0, 0, 0); + temp_v0->unk_000 = 1.0f; + func_8008B8BC(objectIndex, 0U, 0U, 0U); if (gIsMirrorMode != 0) { - temp_v0->unkB4 = 0x8000; - temp_v0->unk4 = D_800EEF44; - temp_v0->unkC = 195.0f; + temp_v0->unk_0B4 = 0x8000; + temp_v0->unk_004[0] = 1765.0f; + temp_v0->unk_004[2] = 195.0f; } else { - temp_v0->unk4 = D_800EEF48; - temp_v0->unkC = 70.0f; + temp_v0->unk_004[0] = -1765.0f; + temp_v0->unk_004[2] = 70.0f; } sp1C = temp_v0; - temp_v0->unk8 = 45.0f; - func_8008B8F0(arg0, 0, 0, 0); - temp_v0->unkA4 = 0; - func_80072488(arg0); + temp_v0->unk_004[1] = 45.0f; + func_8008B8F0(objectIndex, 0.0f, 0.0f, 0.0f); + temp_v0->unk_0A4 = 0; + func_80072488(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007DF20.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -s16 func_800417B4(u16, ?, s32); /* extern */ -? func_80072488(s32); /* extern */ -? func_8007278C(s32, ?, s32); /* extern */ -? func_80073CB0(s32, void *, ?, ?, s32, s32, s32); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_8007D714(?); /* extern */ ? func_8007DF20(s32); /* extern */ -? func_800C98B8(void *, void *, ?); /* extern */ -extern ? D_80165C18; +extern s32 D_80165594; +extern s16 D_8018CFB0; -void func_8007E00C(s32 arg0) { +void func_8007E00C(s32 objectIndex) { s16 temp_v0; s16 temp_v1; - s32 temp_a0; - s32 temp_a2; + struct_80165C18_entry *temp_s0; u16 temp_t8; - void *temp_s0; - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_t8 = temp_s0->unkA6; - temp_a2 = arg0; + temp_s0 = &D_80165C18[objectIndex]; + temp_t8 = (u16) temp_s0->unk_0A6; switch (temp_t8) { case 1: - func_8007DF20(temp_a2); + func_8007DF20(objectIndex); return; case 3: D_8018CFB0 = 1; - func_80072488(temp_a2); + func_80072488(objectIndex); return; case 4: - temp_a0 = temp_a2; - arg0 = temp_a2; - func_8007278C(temp_a0, 0xD2, temp_a2); + func_8007278C(objectIndex, 0x000000D2); if (D_80165594 == 0) { - if (gCCSelection < CC_150) { + if (gCCSelection < 2) { func_8007D714(1); func_8007D714(1); } else { @@ -7534,33 +6654,31 @@ void func_8007E00C(s32 arg0) { func_8007D714(1); } } - func_80073CB0(arg0, temp_s0 + 0xA0, -0x2000, 0, 0x400, 0, -1); - temp_v1 = temp_s0->unk92; - temp_s0->unkB6 = temp_s0->unkA0; + func_80073CB0(objectIndex, &temp_s0->unk_0A0, -0x00002000, 0, 0x00000400, 0, -1); + temp_v1 = temp_s0->unk_084[7]; + temp_s0->unk_0B6 = temp_s0->unk_0A0; if (temp_v1 == 0) { - func_800C98B8(temp_s0 + 4, temp_s0 + 0x38, 0x1901904E); - temp_s0->unk92 = 0x14; + func_800C98B8(temp_s0->unk_004, temp_s0->unk_038, 0x1901904EU); + temp_s0->unk_084[7] = 0x0014; return; } - temp_s0->unk92 = temp_v1 - 1; + temp_s0->unk_084[7] = temp_v1 - 1; return; case 5: - arg0 = temp_a2; - temp_v0 = func_800417B4(temp_s0->unkB6, 0, temp_a2); - temp_s0->unkB6 = temp_v0; - if ((temp_v0 & 0xFFFF) == 0) { - func_80072488(arg0); + temp_v0 = func_800417B4((u16) temp_s0->unk_0B6, 0U); + temp_s0->unk_0B6 = temp_v0; + if (!(temp_v0 & 0xFFFF)) { + func_80072488(objectIndex); return; } default: return; case 6: - temp_s0->unkB6 = 0; - temp_s0->unk92 = 0; - func_80072488(temp_a2); + temp_s0->unk_0B6 = 0; + temp_s0->unk_084[7] = 0; + func_80072488(objectIndex); D_8018CFB0 = 0; - /* Duplicate return node #14. Try simplifying control flow for better match */ - return; + break; } } #else @@ -7589,69 +6707,60 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007E1AC.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s32 func_8007223C(s32, ?); // extern -? func_800722A4(s32, ?); // extern -? func_800722CC(?); // extern -s32 func_80072354(s32, ?); // extern -? func_800726CC(s32, ?); // extern -? func_8008A6DC(s32, ?32); // extern -s32 func_8008A8B0(?, ?); // extern -? func_800C9D80(void *, void *, ?); // extern -? func_800C9EF4(void *, ?); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_800C9EF4(f32 *, ?); /* extern */ -void func_8007E1F4(s32 arg0) { - ?32 sp2C; - void *sp20; +void func_8007E1F4(s32 objectIndex) { + f32 sp2C; + f32 *sp20; s16 temp_v0_4; s32 temp_t1; s32 temp_t9; s32 temp_v0; s32 temp_v0_2; s32 temp_v0_3; - void *temp_s0; + struct_80165C18_entry *temp_s0; - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0 = temp_s0->unk4C; + temp_s0 = &D_80165C18[objectIndex]; + temp_v0 = temp_s0->unk_04C; temp_t9 = temp_v0 - 1; if (temp_v0 > 0) { - temp_s0->unk4C = temp_t9; + temp_s0->unk_04C = temp_t9; if (temp_t9 == 0) { - func_800722CC(1); + func_800722CC(objectIndex, 1); } } - temp_v0_2 = temp_s0->unk48; + temp_v0_2 = temp_s0->unk_048; temp_t1 = temp_v0_2 - 1; if (temp_v0_2 > 0) { - temp_s0->unk48 = temp_t1; + temp_s0->unk_048 = temp_t1; if (temp_t1 == 0) { - func_800C9EF4(temp_s0 + 4, 0x51028006); + func_800C9EF4(temp_s0->unk_004, 0x51028006); } } - if (temp_s0->unk4C == 0) { + if (temp_s0->unk_04C == 0) { temp_v0_3 = gCCSelection; - if ((temp_v0_3 == CC_50) || (temp_v0_3 == CC_100) || (temp_v0_3 == CC_150) || (temp_v0_3 == CC_EXTRA)) { - sp2C = 0x442F0000; + if ((temp_v0_3 == 0) || (temp_v0_3 == 1) || (temp_v0_3 == 2) || (temp_v0_3 == 3)) { + sp2C = 700.0f; } - func_8008A6DC(arg0, sp2C); - if ((func_8007223C(arg0, 0x40000) != 0) && (func_80072354(arg0, 1) != 0)) { - sp20 = temp_s0 + 4; - func_800722A4(arg0, 1); - func_800C9D80(sp20, temp_s0 + 0x38, 0x51028006); - func_800726CC(arg0, 3); - temp_v0_4 = temp_s0->unkA4; + func_8008A6DC(objectIndex, sp2C); + if ((func_8007223C(objectIndex, 0x00040000) != 0) && (func_80072354(objectIndex, 1) != 0)) { + sp20 = temp_s0->unk_004; + func_800722A4(objectIndex, 1); + func_800C9D80((f32 (*)[3]) sp20, (f32 (*)[3]) &temp_s0->unk_038, 0x51028006U); + func_800726CC(objectIndex, 3); + temp_v0_4 = temp_s0->unk_0A4; if (temp_v0_4 > 0) { - temp_s0->unkA4 = temp_v0_4 - 1; - temp_s0->unk4C = 0x168; + temp_s0->unk_0A4 = temp_v0_4 - 1; + temp_s0->unk_04C = 0x00000168; } else { - temp_s0->unk4C = 0x168; + temp_s0->unk_04C = 0x00000168; } - temp_s0->unk48 = 0x12C; + temp_s0->unk_048 = 0x0000012C; } } - if (func_8008A8B0(0xF, 0x13) == 0) { - temp_s0->unkA4 = 2; + if (func_8008A8B0(0x000F, 0x0013) == 0) { + temp_s0->unk_0A4 = 2; } } #else @@ -7659,56 +6768,52 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007E1F4.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072488(s32); // extern -? func_8008B8F0(?, ?, ?); // extern -extern f32 D_800EEF68; -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern f32 D_8018D01C; -void func_8007E358(s32 arg0) { - void *sp1C; - void *temp_v0; +void func_8007E358(s32 objectIndex) { + struct_80165C18_entry *sp1C; + struct_80165C18_entry *temp_v0; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unk4 = D_800EEF68 * D_8018D01C; + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_004[0] = -1371.0f * D_8018D01C; sp1C = temp_v0; - temp_v0->unk8 = 31.0f; - temp_v0->unkC = -217.0f; - func_8008B8F0(0, 0, 0); - temp_v0->unkA4 = 0; - temp_v0->unk4C = 0; - temp_v0->unk92 = 0; - func_80072488(arg0); + temp_v0->unk_004[1] = 31.0f; + temp_v0->unk_004[2] = -217.0f; + func_8008B8F0(objectIndex, 0.0f, 0.0f, 0.0f); + temp_v0->unk_0A4 = 0; + temp_v0->unk_04C = 0; + temp_v0->unk_084[7] = 0; + func_80072488(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007E358.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? func_80072488(); /* extern */ -? func_8007278C(?); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_8007D714(?); /* extern */ ? func_8007E358(); /* extern */ +extern s32 D_80165598; extern ? D_80165CBE; +extern s16 D_8018CFE8; -void func_8007E3EC(s32 arg0) { +void func_8007E3EC(s32 objectIndex) { u16 temp_t7; - temp_t7 = *(&D_80165CBE + (arg0 * 0xE0)); + temp_t7 = *(&D_80165CBE + (objectIndex * 0xE0)); switch (temp_t7) { case 1: func_8007E358(); return; case 3: D_8018CFE8 = 1; - func_80072488(); + func_80072488(objectIndex); return; case 4: - func_8007278C(0xD2); + func_8007278C(objectIndex, 0x000000D2); if (D_80165598 == 0) { - if (gCCSelection < CC_150) { + if (gCCSelection < 2) { func_8007D714(2); return; } @@ -7720,9 +6825,8 @@ void func_8007E3EC(s32 arg0) { return; case 5: D_8018CFE8 = 0; - func_80072488(); - /* Duplicate return node #9. Try simplifying control flow for better match */ - return; + func_80072488(objectIndex); + break; } } #else @@ -7750,276 +6854,220 @@ void func_8007E4C4(void) { GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007E4C4.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800722A4(s32, ?); // extern -s32 func_80072354(?); // extern -s32 func_80088A58(s32, s32, ?); // extern -s32 func_8008A060(s32, s32, ?); // extern -s32 func_8008A0B4(s32, s32, s32, ?); // extern - -s32 func_8007E50C(s32 arg0, s32 arg1, s32 arg2) { +s32 func_8007E50C(s32 objectIndex, Player *player, Camera *camera) { s32 sp24; sp24 = 0; - if ((func_80072354(4) != 0) && (func_80088A58(arg0, arg1, 0x43960000) != 0) && (func_8008A0B4(arg0, arg1, arg2, 0x4000) != 0) && (func_8008A060(arg0, arg2, 0x1555) != 0)) { - func_800722A4(arg0, 4); + if ((func_80072354(objectIndex, 4) != 0) && (func_80088A58(objectIndex, player, 300.0f) != 0) && (func_8008A0B4(objectIndex, player, camera, 0x4000U) != 0) && (func_8008A060(objectIndex, camera, 0x1555U) != 0)) { + func_800722A4(objectIndex, 4); sp24 = 1; } return sp24; } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007E50C.s") -#endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s32 func_8007E50C(s32, Player *, s32); // extern - -s32 func_8007E59C(s32 arg0) { - s32 temp_s2; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +s32 func_8007E59C(s32 objectIndex) { + Camera *temp_a2; + Camera *var_s1; + Player *temp_a1; + Player *var_s0; s32 temp_v0; - Player *phi_s0; - s32 phi_s1; - s32 phi_s2; - s32 phi_v1; + s32 var_s2; + s32 var_v1; - phi_s0 = gPlayerOne; - phi_s1 = camera1; - phi_s2 = 0; - phi_v1 = 0; + var_v1 = 0; + var_s0 = gPlayerOne; + var_s1 = camera1; + var_s2 = 0; if (gPlayerCountSelection1 > 0) { loop_1: - temp_v0 = func_8007E50C(arg0, phi_s0, phi_s1); - phi_s0 += 0xDD8; - phi_s1 += 0xB8; - phi_v1 = temp_v0; + temp_a1 = var_s0; + temp_a2 = var_s1; + var_s1 += 0xB8; + var_s0 += 0xDD8; + temp_v0 = func_8007E50C(objectIndex, temp_a1, temp_a2); + var_v1 = temp_v0; if (temp_v0 == 0) { - temp_s2 = phi_s2 + 1; - phi_s2 = temp_s2; - if (temp_s2 < gPlayerCountSelection1) { + var_s2 += 1; + if (var_s2 < gPlayerCountSelection1) { goto loop_1; } } } - return phi_v1; + return var_v1; } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007E59C.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -s32 f32_step_up_towards(void *, f32, ?); /* extern */ -s32 f32_step_down_towards(void *, ?, ?); /* extern */ -? func_800721C0(s32, ?); /* extern */ -? func_800721E8(s32, ?); /* extern */ -s32 func_8007223C(s32, ?); /* extern */ -? func_800722A4(s32, ?); /* extern */ -? func_800722CC(s32, ?); /* extern */ -s32 func_80072320(s32, ?); /* extern */ -? func_80072388(s32, ?); /* extern */ -? func_80072428(s32); /* extern */ -? func_80072488(s32); /* extern */ -? func_8007266C(s32); /* extern */ -? func_800726CC(s32, ?); /* extern */ -s32 func_8007278C(s32, ?); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_80072AAC(s32, ?, ?); /* extern */ -? func_80072E54(s32, ?, ?, ?, s32, s32); /* extern */ -? func_800730BC(s32, ?, ?, ?, s32, s32); /* extern */ -s32 func_8007326C(s32, ?, ?, ?, s32, s32); /* extern */ -s32 func_80073E18(s32, void *, ?, ?); /* extern */ ? func_80080DE4(s32); /* extern */ -? func_800C98B8(s32, s32, ?); /* extern */ -extern ? D_80165C18; -void func_8007E63C(s32 arg0) { - void *sp28; +void func_8007E63C(s32 objectIndex) { + struct_80165C18_entry *sp28; f32 temp_f0; f32 temp_f0_2; f32 temp_f0_3; s16 temp_v0; - s32 temp_t6; - void *temp_v1; + struct_80165C18_entry *temp_v1; - temp_t6 = arg0 * 0xE0; - temp_v1 = temp_t6 + &D_80165C18; - temp_v0 = temp_v1->unkA6; - if (temp_v0 >= 0x6D) { - if (temp_v0 != 0xC8) { - if (temp_v0 != 0x12C) { - return; - } - if (func_80073E18(arg0, temp_v1 + 0xB4, 0x400, 0x8000) != 0) { - func_800722CC(arg0, 4); - func_8007266C(arg0); - } - /* Duplicate return node #68. Try simplifying control flow for better match */ + temp_v1 = &D_80165C18[objectIndex]; + temp_v0 = temp_v1->unk_0A6; + switch (temp_v0) { /* irregular */ + case 0x32: + if (f32_step_up_towards(&temp_v1->unk_028[1], (f32) ((f64) temp_v1->unk20 + 15.0), 1.5f) != 0) { + func_800721C0(objectIndex, 0x00000200); + func_800722A4(objectIndex, 1); + func_800722CC(objectIndex, 2); + func_80072488(objectIndex); return; } - if (func_8007278C(arg0, 0x12C) != 0) { - func_80072320(arg0, 0x80); - func_80072428(arg0); - func_800726CC(arg0, 1); - return; - } - /* Duplicate return node #68. Try simplifying control flow for better match */ return; - } - if (temp_v0 >= 0x37) { - switch (temp_v0) { /* switch 1 */ - case 0x64: /* switch 1 */ - func_80072E54(arg0, 3, 5, 1, 8, 0); - return; - case 0x65: /* switch 1 */ - func_8007278C(arg0, 0x1E); - return; - case 0x66: /* switch 1 */ - if (f32_step_up_towards(temp_v1 + 0x2C, 20.0f, 0x3FC00000) != 0) { - func_80072488(arg0); - return; - } - /* Duplicate return node #68. Try simplifying control flow for better match */ - return; - case 0x67: /* switch 1 */ - if (f32_step_down_towards(temp_v1 + 0x2C, 0, 0x3FC00000) != 0) { - if (func_8007223C(arg0, 0x20000) != 0) { - func_800722A4(arg0, 0x10); - if (func_8007223C(arg0, 0x40000) != 0) { - func_800722A4(arg0, 0x20); - } - } - func_80072488(arg0); - return; - } - /* Duplicate return node #68. Try simplifying control flow for better match */ - return; - case 0x68: /* switch 1 */ - if (f32_step_up_towards(temp_v1 + 0x2C, 12.0f, 0x3FC00000) != 0) { - func_80072488(arg0); - return; - } - /* Duplicate return node #68. Try simplifying control flow for better match */ - return; - case 0x69: /* switch 1 */ - sp28 = temp_v1; - if (f32_step_down_towards(temp_v1 + 0x2C, 0, 0x3FC00000) != 0) { - sp28 = temp_v1; - if (func_8007223C(arg0, 0x20000) != 0) { - sp28 = temp_v1; - func_800722A4(arg0, 0x10); - if (func_8007223C(arg0, 0x40000) != 0) { - sp28 = temp_v1; - func_800722A4(arg0, 0x20); - } - } - func_800C98B8(temp_t6 + &D_80165C18 + 4, temp_t6 + &D_80165C18 + 0x38, 0x19018045); - func_80072488(arg0); - return; - } - /* Duplicate return node #68. Try simplifying control flow for better match */ - return; - case 0x6A: /* switch 1 */ - if (func_8007326C(arg0, 5, 3, 1, 6, 3) != 0) { - func_80080DE4(arg0); - return; - } - /* Duplicate return node #68. Try simplifying control flow for better match */ - return; - case 0x6B: /* switch 1 */ - temp_f0 = temp_v1->unk2C; - if (temp_f0 >= 22.0f) { - temp_v1->unkD2 = 0; - } else if (temp_f0 >= 20.0f) { - temp_v1->unkD2 = 1; - } else if (temp_f0 >= 18.0f) { - temp_v1->unkD2 = 2; - } else if (temp_f0 >= 16.0f) { - temp_v1->unkD2 = 3; - } else if (temp_f0 >= 14.0f) { - temp_v1->unkD2 = 4; + case 0x33: + sp28 = temp_v1; + if (f32_step_down_towards(&temp_v1->unk_028[1], 0.0f, 2.0f) != 0) { + temp_f0 = temp_v1->unk_028[1]; + if (temp_f0 >= 16.0f) { + temp_v1->unk_0D2 = 0; + } else if (temp_f0 >= 8.0f) { + temp_v1->unk_0D2 = 1; } else { - sp28 = temp_v1; - func_800730BC(arg0, 3, 5, 1, 6, -1); + temp_v1->unk_0D2 = 2; } - if (f32_step_up_towards(temp_t6 + &D_80165C18 + 0x2C, (temp_t6 + &D_80165C18)->unk20, 0x3F000000) != 0) { - func_80072388(arg0, 0); - func_80072488(arg0); + func_800722CC(objectIndex, 1); + if (func_8007223C(objectIndex, 0x00010000) != 0) { + func_800722A4(objectIndex, 0x00000010); + if (func_8007223C(objectIndex, 0x00040000) != 0) { + func_800722A4(objectIndex, 0x00000020); + } + } + if (func_80072320(objectIndex, 2) != 0) { + func_800726CC(objectIndex, 0x00000064); return; } - /* Duplicate return node #68. Try simplifying control flow for better match */ - return; - case 0x6C: /* switch 1 */ - if (func_8007278C(arg0, 0x64) != 0) { - func_800722CC(arg0, 2); - func_800721E8(arg0, 0x200); - func_8007266C(arg0); - return; - } - /* Duplicate return node #68. Try simplifying control flow for better match */ + func_80072488(objectIndex); return; } - } else { - switch (temp_v0) { /* switch 2 */ - case 0x32: /* switch 2 */ - if (f32_step_up_towards(temp_v1 + 0x2C, temp_v1->unk20 + 15.0, 0x3FC00000) != 0) { - func_800721C0(arg0, 0x200); - func_800722A4(arg0, 1); - func_800722CC(arg0, 2); - func_80072488(arg0); - return; - } - default: /* switch 2 */ - default: /* switch 1 */ + break; + case 0x34: + func_80072AAC(objectIndex, 3, 6); + return; + case 0x35: + func_80072AAC(objectIndex, 2, 0x32); + return; + case 0x36: + temp_f0_2 = temp_v1->unk_028[1]; + if (temp_f0_2 >= 20.0f) { + temp_v1->unk_0D2 = 0; + } else if (temp_f0_2 >= 18.0f) { + temp_v1->unk_0D2 = 1; + } + if (f32_step_up_towards(&temp_v1->unk_028[1], temp_v1->unk20, 0.5f) != 0) { + func_800721E8(objectIndex, 0x00000200); + func_8007266C(objectIndex); return; - case 0x33: /* switch 2 */ + } + break; + case 0x64: + func_80072E54(objectIndex, 3, 5, 1, 8, 0); + return; + case 0x65: + func_8007278C(objectIndex, 0x0000001E); + return; + case 0x66: + if (f32_step_up_towards(&temp_v1->unk_028[1], 20.0f, 1.5f) != 0) { + func_80072488(objectIndex); + return; + } + break; + case 0x67: + if (f32_step_down_towards(&temp_v1->unk_028[1], 0.0f, 1.5f) != 0) { + if (func_8007223C(objectIndex, 0x00020000) != 0) { + func_800722A4(objectIndex, 0x00000010); + if (func_8007223C(objectIndex, 0x00040000) != 0) { + func_800722A4(objectIndex, 0x00000020); + } + } + func_80072488(objectIndex); + return; + } + break; + case 0x68: + if (f32_step_up_towards(&temp_v1->unk_028[1], 12.0f, 1.5f) != 0) { + func_80072488(objectIndex); + return; + } + break; + case 0x69: + sp28 = temp_v1; + if (f32_step_down_towards(&temp_v1->unk_028[1], 0.0f, 1.5f) != 0) { sp28 = temp_v1; - if (f32_step_down_towards(temp_v1 + 0x2C, 0, 0x40000000) != 0) { - temp_f0_2 = temp_v1->unk2C; - if (temp_f0_2 >= 16.0f) { - temp_v1->unkD2 = 0; - } else if (temp_f0_2 >= 8.0f) { - temp_v1->unkD2 = 1; - } else { - temp_v1->unkD2 = 2; + if (func_8007223C(objectIndex, 0x00020000) != 0) { + sp28 = temp_v1; + func_800722A4(objectIndex, 0x00000010); + if (func_8007223C(objectIndex, 0x00040000) != 0) { + sp28 = temp_v1; + func_800722A4(objectIndex, 0x00000020); } - func_800722CC(arg0, 1); - if (func_8007223C(arg0, 0x10000) != 0) { - func_800722A4(arg0, 0x10); - if (func_8007223C(arg0, 0x40000) != 0) { - func_800722A4(arg0, 0x20); - } - } - if (func_80072320(arg0, 2) != 0) { - func_800726CC(arg0, 0x64); - return; - } - func_80072488(arg0); - return; } - /* Duplicate return node #68. Try simplifying control flow for better match */ - return; - case 0x34: /* switch 2 */ - func_80072AAC(arg0, 3, 6); - return; - case 0x35: /* switch 2 */ - func_80072AAC(arg0, 2, 0x32); - return; - case 0x36: /* switch 2 */ - temp_f0_3 = temp_v1->unk2C; - if (temp_f0_3 >= 20.0f) { - temp_v1->unkD2 = 0; - } else if (temp_f0_3 >= 18.0f) { - temp_v1->unkD2 = 1; - } - if (f32_step_up_towards(temp_v1 + 0x2C, temp_v1->unk20, 0x3F000000) != 0) { - func_800721E8(arg0, 0x200); - func_8007266C(arg0); - return; - } - /* Duplicate return node #68. Try simplifying control flow for better match */ + func_800C98B8(temp_v1->unk_004, &temp_v1->unk_038, 0x19018045U); + func_80072488(objectIndex); return; } + break; + case 0x6A: + if (func_8007326C(objectIndex, 5, 3, 1, 6, 3) != 0) { + func_80080DE4(objectIndex); + return; + } + break; + case 0x6B: + temp_f0_3 = temp_v1->unk_028[1]; + if (temp_f0_3 >= 22.0f) { + temp_v1->unk_0D2 = 0; + } else if (temp_f0_3 >= 20.0f) { + temp_v1->unk_0D2 = 1; + } else if (temp_f0_3 >= 18.0f) { + temp_v1->unk_0D2 = 2; + } else if (temp_f0_3 >= 16.0f) { + temp_v1->unk_0D2 = 3; + } else if (temp_f0_3 >= 14.0f) { + temp_v1->unk_0D2 = 4; + } else { + sp28 = temp_v1; + func_800730BC(objectIndex, 3, 5, 1, 6, -1); + } + if (f32_step_up_towards(&temp_v1->unk_028[1], temp_v1->unk20, 0.5f) != 0) { + func_80072388(objectIndex, 0); + func_80072488(objectIndex); + return; + } + break; + case 0x6C: + if (func_8007278C(objectIndex, 0x00000064) != 0) { + func_800722CC(objectIndex, 2); + func_800721E8(objectIndex, 0x00000200); + func_8007266C(objectIndex); + return; + } + break; + case 0xC8: + if (func_8007278C(objectIndex, 0x0000012C) != 0) { + func_80072320(objectIndex, 0x00000080); + func_80072428(objectIndex); + func_800726CC(objectIndex, 1); + return; + } + break; + case 0x12C: + if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B4, 0x0400U, 0x00008000) != 0) { + func_800722CC(objectIndex, 4); + func_8007266C(objectIndex); + } + break; } } #else @@ -8027,257 +7075,219 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007E63C.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_80072488(s32); // extern -? func_800724DC(s32); // extern -? func_80073444(s32, ? *, ? *, ?, s32); // extern -? func_8008B80C(f32, f32, f32); // extern -? func_8008B888(s32, ?, ?, ?); // extern -? func_8008B8BC(s32, ?, ?, ?); // extern -extern ? D_06006F38; -extern ? D_06007138; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s32 D_06006F38; +extern s32 D_06007138; extern ? D_06009088; -extern ? D_80165C18; -void func_8007EC30(s32 arg0) { - void *temp_s1; +void func_8007EC30(s32 objectIndex) { + struct_80165C18_entry *temp_s1; - temp_s1 = (arg0 * 0xE0) + &D_80165C18; - temp_s1->unk44 = 0.0f; - temp_s1->unk14 = 0.0f; - func_8008B80C(0.0f, 0.0f, 0.0f); + temp_s1 = &D_80165C18[objectIndex]; + temp_s1->unk_044 = 0; + temp_s1->unk_010[1] = (bitwise f32) 0; + func_8008B80C(objectIndex, (bitwise f32) 0, (bitwise f32) 0, (bitwise f32) 0); if (gIsMirrorMode != 0) { - func_8008B888(arg0, 0, 0x4000, 0); - func_8008B8BC(arg0, 0, 0x4000, 0); + func_8008B888(objectIndex, 0U, 0x4000U, 0U); + func_8008B8BC(objectIndex, 0U, 0x4000U, 0U); } else { - func_8008B888(arg0, 0, 0xC000, 0); - func_8008B8BC(arg0, 0, 0xC000, 0); + func_8008B888(objectIndex, 0U, 0xC000U, 0U); + func_8008B8BC(objectIndex, 0U, 0xC000U, 0U); } - func_80073444(arg0, &D_06006F38, &D_06007138, 0x10, 0x40); - temp_s1->unk70 = &D_06009088; - temp_s1->unkC8 = 0xC; - temp_s1->unk0 = 1.0f; + func_80073444(objectIndex, &D_06006F38, &D_06007138, 0x10U, (u16) 0x00000040); + temp_s1->unk_070 = (s32) &D_06009088; + temp_s1->unkC8 = 0x000C; + temp_s1->unk_000 = 1.0f; temp_s1->unk20 = 30.0f; - func_800721C0(arg0, 0x5000220); - temp_s1->unkA4 = 0; - temp_s1->unkDF = 6; - func_800724DC(arg0); - func_80072488(arg0); + func_800721C0(objectIndex, 0x05000220); + temp_s1->unk_0A4 = 0; + temp_s1->unk_0DF = 6; + func_800724DC(objectIndex); + func_80072488(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007EC30.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? func_80072568(s32, ?); /* extern */ -? func_800725E8(s32, ?, ?); /* extern */ -? func_800726CC(s32, ?); /* extern */ -? func_8007278C(s32, ?); /* extern */ -? func_80073514(s32); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +s32 func_8007E59C(s32); /* extern */ ? func_8007E63C(s32); /* extern */ ? func_8007EC30(s32); /* extern */ ? func_8008BF18(s32); /* extern */ -extern ? D_80165C18; -void func_8007ED6C(s32 arg0) { - void *sp24; +void func_8007ED6C(s32 objectIndex) { + struct_80165C18_entry *sp24; + struct_80165C18_entry *temp_t8; u16 temp_t9; - void *temp_t8; - temp_t8 = (arg0 * 0xE0) + &D_80165C18; + temp_t8 = &D_80165C18[objectIndex]; sp24 = temp_t8; - temp_t9 = temp_t8->unkA6; + temp_t9 = (u16) temp_t8->unk_0A6; switch (temp_t9) { + case 0: + break; case 1: - func_8007EC30(arg0); + func_8007EC30(objectIndex); break; case 2: - func_8007278C(arg0, 0x3C); + func_8007278C(objectIndex, 0x0000003C); break; case 3: - func_80072568(arg0, 0x32); + func_80072568(objectIndex, 0x00000032); break; case 4: - if (func_8007E59C(arg0) != 0) { - func_800725E8(arg0, 0x12C, 2); + if (func_8007E59C(objectIndex) != 0) { + func_800725E8(objectIndex, 0x0000012C, 2); } else { - func_800726CC(arg0, 2); + func_800726CC(objectIndex, 2); } break; } - func_8007E63C(arg0); - func_8008BF18(arg0); - sp24->unkC0 = sp24->unkB4; - func_80073514(arg0); + func_8007E63C(objectIndex); + func_8008BF18(objectIndex); + sp24->unk_0C0 = (u16) sp24->unk_0B4; + func_80073514(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007ED6C.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_80072488(s32); // extern -? func_80073444(? *, ? *, ?, s32); // extern -? func_80086E70(s32); // extern -? func_8008B80C(s32, f32, ?, f32); // extern -? func_8008B888(s32, ?, ?, ?); // extern -? func_8008B8BC(s32, ?, ?, ?); // extern -extern ? D_06006F38; -extern ? D_06007138; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s32 D_06006F38; +extern s32 D_06007138; extern ? D_06009088; -extern ? D_80165C18; -void func_8007EE5C(s32 arg0) { - void *temp_s0; +void func_8007EE5C(s32 objectIndex) { + struct_80165C18_entry *temp_s0; - func_80073444(&D_06006F38, &D_06007138, 0x10, 0x40); - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_s0->unk70 = &D_06009088; - temp_s0->unkC8 = 0xC; - temp_s0->unk0 = 1.0f; - func_800721C0(arg0, 0x4000220); - temp_s0->unkA4 = 0; - temp_s0->unkDF = 6; - func_80086E70(arg0); - temp_s0->unk44 = 0.0f; - temp_s0->unk14 = 0.0f; - func_8008B80C(arg0, 0.0f, 0x41A00000, 0.0f); + func_80073444(objectIndex, &D_06006F38, &D_06007138, 0x10U, (u16) 0x00000040); + temp_s0 = &D_80165C18[objectIndex]; + temp_s0->unk_070 = (s32) &D_06009088; + temp_s0->unkC8 = 0x000C; + temp_s0->unk_000 = 1.0f; + func_800721C0(objectIndex, 0x04000220); + temp_s0->unk_0A4 = 0; + temp_s0->unk_0DF = 6; + func_80086E70(objectIndex); + temp_s0->unk_044 = 0; + temp_s0->unk_010[1] = (bitwise f32) 0; + func_8008B80C(objectIndex, (bitwise f32) 0, 20.0f, (bitwise f32) 0); temp_s0->unk20 = 20.0f; if (gIsMirrorMode != 0) { - func_8008B888(arg0, 0, 0x4000, 0); - func_8008B8BC(arg0, 0, 0x4000, 0); + func_8008B888(objectIndex, 0U, 0x4000U, 0U); + func_8008B8BC(objectIndex, 0U, 0x4000U, 0U); } else { - func_8008B888(arg0, 0, 0xC000, 0); - func_8008B8BC(arg0, 0, 0xC000, 0); + func_8008B888(objectIndex, 0U, 0xC000U, 0U); + func_8008B8BC(objectIndex, 0U, 0xC000U, 0U); } - temp_s0->unkAE = 1; - if (temp_s0->unkA0 == 0) { - temp_s0->unkDD = 1; + temp_s0->unk_0AE = 1; + if (temp_s0->unk_0A0 == 0) { + temp_s0->unk_0DD = 1; } else { - temp_s0->unkDD = 2; + temp_s0->unk_0DD = 2; } - func_80072488(arg0); + func_80072488(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007EE5C.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -s32 f32_step_up_towards(void *, ?, ?); /* extern */ -s32 f32_step_down_towards(void *, ?, ?); /* extern */ -s32 f32_step_towards(void *, f32, ?); /* extern */ -? func_800726CC(s32, ?); /* extern */ -s32 func_80073E18(s32, void *, ?, ?); /* extern */ -? func_80086FD4(s32); /* extern */ -? func_8008701C(s32, ?); /* extern */ -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern f32 D_8018D01C; -void func_8007EFBC(s32 arg0) { - void *sp24; +void func_8007EFBC(s32 objectIndex) { + struct_80165C18_entry *sp24; + struct_80165C18_entry *temp_v1; u16 temp_t8; - void *temp_v1; - temp_v1 = (arg0 * 0xE0) + &D_80165C18; - temp_t8 = temp_v1->unkAE; + temp_v1 = &D_80165C18[objectIndex]; + temp_t8 = (u16) temp_v1->unk_0AE; switch (temp_t8) { case 1: sp24 = temp_v1; - if (func_80073E18(arg0, temp_v1 + 0xB4, 0x800, 0x8000) != 0) { - temp_v1->unk1C = D_8018D01C * 200.0; - func_80086FD4(arg0); + if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B4, 0x0800U, 0x00008000) != 0) { + temp_v1->unk1C = (f32) ((f64) D_8018D01C * 200.0); + func_80086FD4(objectIndex); return; } default: return; case 2: - if (f32_step_towards(temp_v1 + 0x28, temp_v1->unk1C, 0x40800000) != 0) { - func_80086FD4(arg0); + if (f32_step_towards(temp_v1->unk_028, temp_v1->unk1C, 4.0f) != 0) { + func_80086FD4(objectIndex); return; } - /* Duplicate return node #27. Try simplifying control flow for better match */ - return; + break; case 3: - if (func_80073E18(arg0, temp_v1 + 0xB4, 0x400, 0x8000) != 0) { - func_800726CC(arg0, 3); - func_80086FD4(arg0); + if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B4, 0x0400U, 0x00008000) != 0) { + func_800726CC(objectIndex, 3); + func_80086FD4(objectIndex); return; } - /* Duplicate return node #27. Try simplifying control flow for better match */ - return; + break; case 5: - if (func_80073E18(arg0, temp_v1 + 0xB4, 0x400, 0xC000) != 0) { - func_80086FD4(arg0); + if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B4, 0x0400U, 0x0000C000) != 0) { + func_80086FD4(objectIndex); return; } - /* Duplicate return node #27. Try simplifying control flow for better match */ - return; + break; case 6: - if (f32_step_down_towards(temp_v1 + 0x30, 0xC2C80000, 0x40000000) != 0) { - func_80086FD4(arg0); + if (f32_step_down_towards(&temp_v1->unk_028[2], -100.0f, 2.0f) != 0) { + func_80086FD4(objectIndex); return; } - /* Duplicate return node #27. Try simplifying control flow for better match */ - return; + break; case 7: - if (func_80073E18(arg0, temp_v1 + 0xB4, 0x400, 0x4000) != 0) { - func_80086FD4(arg0); - func_800726CC(arg0, 3); + if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B4, 0x0400U, 0x00004000) != 0) { + func_80086FD4(objectIndex); + func_800726CC(objectIndex, 3); return; } - /* Duplicate return node #27. Try simplifying control flow for better match */ - return; + break; case 9: - if (func_80073E18(arg0, temp_v1 + 0xB4, 0x400, 0x10000) != 0) { - func_80086FD4(arg0); + if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B4, 0x0400U, 0x00010000) != 0) { + func_80086FD4(objectIndex); return; } - /* Duplicate return node #27. Try simplifying control flow for better match */ - return; + break; case 10: - if (f32_step_towards(temp_v1 + 0x28, 0.0f, 0x40800000) != 0) { - func_80086FD4(arg0); + if (f32_step_towards(temp_v1->unk_028, 0.0f, 4.0f) != 0) { + func_80086FD4(objectIndex); return; } - /* Duplicate return node #27. Try simplifying control flow for better match */ - return; + break; case 11: - if (func_80073E18(arg0, temp_v1 + 0xB4, 0x400, 0x10000) != 0) { - func_80086FD4(arg0); - func_800726CC(arg0, 3); + if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B4, 0x0400U, 0x00010000) != 0) { + func_80086FD4(objectIndex); + func_800726CC(objectIndex, 3); return; } - /* Duplicate return node #27. Try simplifying control flow for better match */ - return; + break; case 13: - if (func_80073E18(arg0, temp_v1 + 0xB4, 0x400, 0x14000) != 0) { - func_80086FD4(arg0); + if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B4, 0x0400U, 0x00014000) != 0) { + func_80086FD4(objectIndex); return; } - /* Duplicate return node #27. Try simplifying control flow for better match */ - return; + break; case 14: - if (f32_step_up_towards(temp_v1 + 0x30, 0, 0x40000000) != 0) { - func_80086FD4(arg0); + if (f32_step_up_towards(&temp_v1->unk_028[2], 0.0f, 2.0f) != 0) { + func_80086FD4(objectIndex); return; } - /* Duplicate return node #27. Try simplifying control flow for better match */ - return; + break; case 15: - if (func_80073E18(arg0, temp_v1 + 0xB4, 0x400, 0xC000) != 0) { - func_80086FD4(arg0); - func_800726CC(arg0, 3); + if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B4, 0x0400U, 0x0000C000) != 0) { + func_80086FD4(objectIndex); + func_800726CC(objectIndex, 3); return; } - /* Duplicate return node #27. Try simplifying control flow for better match */ - return; + break; case 17: - func_8008701C(arg0, 1); - /* Duplicate return node #27. Try simplifying control flow for better match */ - return; + func_8008701C(objectIndex, 1); + break; } } #else @@ -8285,118 +7295,99 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007EFBC.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -s32 f32_step_up_towards(void *, ?, ?); /* extern */ -s32 f32_step_down_towards(void *, ?, ?); /* extern */ -s32 f32_step_towards(void *, f32, ?); /* extern */ -? func_800726CC(s32, ?); /* extern */ -s32 func_80073E18(s32, void *, ?, ?); /* extern */ -? func_80086FD4(s32); /* extern */ -? func_8008701C(s32, ?); /* extern */ -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern f32 D_8018D01C; -void func_8007F280(s32 arg0) { - void *sp24; +void func_8007F280(s32 objectIndex) { + struct_80165C18_entry *sp24; + struct_80165C18_entry *temp_v1; u16 temp_t8; - void *temp_v1; - temp_v1 = (arg0 * 0xE0) + &D_80165C18; - temp_t8 = temp_v1->unkAE; + temp_v1 = &D_80165C18[objectIndex]; + temp_t8 = (u16) temp_v1->unk_0AE; switch (temp_t8) { case 1: sp24 = temp_v1; - if (func_80073E18(arg0, temp_v1 + 0xB4, 0x400, 0x10000) != 0) { - temp_v1->unk1C = D_8018D01C * -200.0; - func_80086FD4(arg0); + if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B4, 0x0400U, 0x00010000) != 0) { + temp_v1->unk1C = (f32) ((f64) D_8018D01C * -200.0); + func_80086FD4(objectIndex); return; } default: return; case 2: - if (f32_step_towards(temp_v1 + 0x28, temp_v1->unk1C, 0x40800000) != 0) { - func_80086FD4(arg0); + if (f32_step_towards(temp_v1->unk_028, temp_v1->unk1C, 4.0f) != 0) { + func_80086FD4(objectIndex); return; } - /* Duplicate return node #27. Try simplifying control flow for better match */ - return; + break; case 3: - if (func_80073E18(arg0, temp_v1 + 0xB4, 0x400, 0x10000) != 0) { - func_800726CC(arg0, 3); - func_80086FD4(arg0); + if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B4, 0x0400U, 0x00010000) != 0) { + func_800726CC(objectIndex, 3); + func_80086FD4(objectIndex); return; } - /* Duplicate return node #27. Try simplifying control flow for better match */ - return; + break; case 5: - if (func_80073E18(arg0, temp_v1 + 0xB4, 0x400, 0x4000) != 0) { - func_80086FD4(arg0); + if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B4, 0x0400U, 0x00004000) != 0) { + func_80086FD4(objectIndex); return; } - /* Duplicate return node #27. Try simplifying control flow for better match */ - return; + break; case 6: - if (f32_step_up_towards(temp_v1 + 0x30, 0x42C80000, 0x40000000) != 0) { - func_80086FD4(arg0); + if (f32_step_up_towards(&temp_v1->unk_028[2], 100.0f, 2.0f) != 0) { + func_80086FD4(objectIndex); return; } - /* Duplicate return node #27. Try simplifying control flow for better match */ - return; + break; case 7: - if (func_80073E18(arg0, temp_v1 + 0xB4, 0x400, 0xC000) != 0) { - func_80086FD4(arg0); - func_800726CC(arg0, 3); + if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B4, 0x0400U, 0x0000C000) != 0) { + func_80086FD4(objectIndex); + func_800726CC(objectIndex, 3); return; } - /* Duplicate return node #27. Try simplifying control flow for better match */ - return; + break; case 9: - if (func_80073E18(arg0, temp_v1 + 0xB4, 0x400, 0x8000) != 0) { - func_80086FD4(arg0); + if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B4, 0x0400U, 0x00008000) != 0) { + func_80086FD4(objectIndex); return; } - /* Duplicate return node #27. Try simplifying control flow for better match */ - return; + break; case 10: - if (f32_step_towards(temp_v1 + 0x28, 0.0f, 0x40800000) != 0) { - func_80086FD4(arg0); + if (f32_step_towards(temp_v1->unk_028, 0.0f, 4.0f) != 0) { + func_80086FD4(objectIndex); return; } - /* Duplicate return node #27. Try simplifying control flow for better match */ - return; + break; case 11: - if (func_80073E18(arg0, temp_v1 + 0xB4, 0x400, 0x8000) != 0) { - func_80086FD4(arg0); - func_800726CC(arg0, 3); + if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B4, 0x0400U, 0x00008000) != 0) { + func_80086FD4(objectIndex); + func_800726CC(objectIndex, 3); return; } - /* Duplicate return node #27. Try simplifying control flow for better match */ - return; + break; case 13: - if (func_80073E18(arg0, temp_v1 + 0xB4, 0x400, 0xC000) != 0) { - func_80086FD4(arg0); + if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B4, 0x0400U, 0x0000C000) != 0) { + func_80086FD4(objectIndex); return; } - /* Duplicate return node #27. Try simplifying control flow for better match */ - return; + break; case 14: - if (f32_step_down_towards(temp_v1 + 0x30, 0, 0x40000000) != 0) { - func_80086FD4(arg0); + if (f32_step_down_towards(&temp_v1->unk_028[2], 0.0f, 2.0f) != 0) { + func_80086FD4(objectIndex); return; } - /* Duplicate return node #27. Try simplifying control flow for better match */ - return; + break; case 15: - if (func_80073E18(arg0, temp_v1 + 0xB4, 0x400, 0x14000) != 0) { - func_80086FD4(arg0); - func_800726CC(arg0, 3); + if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B4, 0x0400U, 0x00014000) != 0) { + func_80086FD4(objectIndex); + func_800726CC(objectIndex, 3); return; } - /* Duplicate return node #27. Try simplifying control flow for better match */ - return; + break; case 17: - func_8008701C(arg0, 1); - /* Duplicate return node #27. Try simplifying control flow for better match */ - return; + func_8008701C(objectIndex, 1); + break; } } #else @@ -8427,379 +7418,326 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007F544.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072488(s32); // extern -? func_80072568(s32, ?); // extern -? func_80073514(s32); // extern -? func_8007E63C(s32); // extern -? func_8007EE5C(s32); // extern -? func_8007F544(s32); // extern -? func_80086FD4(s32); // extern -? func_8008BF18(s32); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_8007E63C(s32); /* extern */ +? func_8007EE5C(s32); /* extern */ +? func_8007F544(s32); /* extern */ extern ? D_80165CBE; -void func_8007F5A8(s32 arg0) { +void func_8007F5A8(s32 objectIndex) { s16 temp_v0; - temp_v0 = *(&D_80165CBE + (arg0 * 0xE0)); - if (temp_v0 != 0) { - if (temp_v0 != 1) { - if (temp_v0 != 3) { - if (temp_v0 != 4) { - - } else { - func_80086FD4(arg0); - func_80072488(arg0); - } - } else { - func_80072568(arg0, 0x32); - } - } else { - func_8007EE5C(arg0); - } + temp_v0 = *(&D_80165CBE + (objectIndex * 0xE0)); + switch (temp_v0) { /* irregular */ + case 0: + break; + case 1: + func_8007EE5C(objectIndex); + break; + case 3: + func_80072568(objectIndex, 0x00000032); + break; + case 4: + func_80086FD4(objectIndex); + func_80072488(objectIndex); + break; } - func_8007E63C(arg0); - func_8007F544(arg0); - func_8008BF18(arg0); - func_80073514(arg0); + func_8007E63C(objectIndex); + func_8007F544(objectIndex); + func_8008BF18(objectIndex); + func_80073514(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007F5A8.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800722A4(?); // extern -? func_80086E70(s32); // extern -extern ? D_80165C18; +void func_8007F660(s32 objectIndex, s32 arg1, s32 arg2) { + struct_80165C18_entry *temp_v0; -void func_8007F660(s32 arg0, s32 arg1, s32 arg2) { - void *temp_v0; - - func_800722A4(8); - func_80086E70(arg0); - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unkDD = 1; - temp_v0->unkD1 = arg1; - temp_v0->unk48 = arg2; + func_800722A4(objectIndex, 8); + func_80086E70(objectIndex); + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_0DD = 1; + temp_v0->unk_0D1 = arg1; + temp_v0->unk_048 = arg2; } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007F660.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800722A4(?); // extern -? func_80086E70(s32); // extern -extern ? D_80165C18; +void func_8007F6C4(s32 objectIndex, s32 playerId) { + Player *player; -void func_8007F6C4(s32 arg0, s32 arg1) { - Player *sp1C; - void *temp_v0; - - sp1C = &gPlayerOne[arg1]; - func_800722A4(8); - func_80086E70(arg0); - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unkDD = 2; - temp_v0->unkD1 = arg1; - temp_v0->unk1C = sp1C->posX - temp_v0->unk10; + player = &gPlayerOne[playerId]; + func_800722A4(objectIndex, 8); + func_80086E70(objectIndex); + D_80165C18[objectIndex].unk_0DD = 2; + D_80165C18[objectIndex].unk_01C[0] = player->pos[0] - D_80165C18[objectIndex].unk_010[0]; + D_80165C18[objectIndex].unk_0D1 = playerId; } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007F6C4.s") -#endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_8007F660(s32, s32, s32); // extern -? func_8007F6C4(s32, s32); // extern -extern ? gNearestWaypointByPlayerId; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern s16 D_80165750; -extern ? D_80165C18; -extern s32 D_80183EA0; -? func_8007F75C(s32 arg0) { - s16 temp_v1; - s16 temp_v1_2; +s32 func_8007F75C(s32 playerId) { + s32 *var_s1; + s32 *var_s1_2; s32 temp_a0; s32 temp_a0_2; - s32 temp_s0; - s32 temp_s0_2; + s32 temp_s7; + s32 var_s0; + s32 var_s0_2; + s32 var_s6; u16 temp_v0; - s32 *phi_s1; - s32 phi_s0; - s32 phi_v1; - s32 *phi_s1_2; - s32 phi_s0_2; - s32 phi_v1_2; - ? phi_s6; - ? phi_s6_2; - ? phi_s6_3; - temp_v0 = *(&gNearestWaypointByPlayerId + (arg0 * 2)); - phi_s6 = 0; - phi_s6_2 = 0; - phi_s6_3 = 0; - if ((temp_v0 >= 0xAA) && (temp_v0 < 0xB5)) { - temp_v1 = D_80165750; - phi_s0 = 0; - phi_v1 = temp_v1; - if (temp_v1 > 0) { - phi_s1 = &D_80183EA0; + temp_v0 = gNearestWaypointByPlayerId[playerId]; + var_s6 = 0; + if (((s32) temp_v0 >= 0xAA) && ((s32) temp_v0 < 0xB5)) { + temp_s7 = random_int(0x0032U) + 0x32; + var_s0 = 0; + if (D_80165750 > 0) { + var_s1 = D_80183EA0; do { - temp_a0 = *phi_s1; - if ((&D_80165C18 + (temp_a0 * 0xE0))->unkD5 == 3) { - func_8007F660(temp_a0, arg0, random_int(0x32) + 0x32); - phi_v1 = D_80165750; - phi_s6_2 = 1; + temp_a0 = *var_s1; + if (D_80165C18[temp_a0].unk_0D5 == 3) { + var_s6 = 1; + func_8007F660(temp_a0, playerId, temp_s7); } - temp_s0 = phi_s0 + 1; - phi_s1 += 4; - phi_s0 = temp_s0; - phi_s6 = phi_s6_2; - } while (temp_s0 < phi_v1); + var_s0 += 1; + var_s1 += 4; + } while (var_s0 < D_80165750); } - } else if ((temp_v0 >= 0xD7) && (temp_v0 < 0xE2)) { - temp_v1_2 = D_80165750; - phi_s1_2 = &D_80183EA0; - phi_s0_2 = 0; - phi_v1_2 = temp_v1_2; - if (temp_v1_2 > 0) { + } else if (((s32) temp_v0 >= 0xD7) && ((s32) temp_v0 < 0xE2)) { + var_s1_2 = D_80183EA0; + var_s0_2 = 0; + if (D_80165750 > 0) { do { - temp_a0_2 = *phi_s1_2; - if ((&D_80165C18 + (temp_a0_2 * 0xE0))->unkD5 == 3) { - func_8007F6C4(temp_a0_2, arg0); - phi_v1_2 = D_80165750; - phi_s6_3 = 1; + temp_a0_2 = *var_s1_2; + if (D_80165C18[temp_a0_2].unk_0D5 == 3) { + var_s6 = 1; + func_8007F6C4(temp_a0_2, playerId); } - temp_s0_2 = phi_s0_2 + 1; - phi_s1_2 += 4; - phi_s0_2 = temp_s0_2; - phi_s6 = phi_s6_3; - } while (temp_s0_2 < phi_v1_2); + var_s0_2 += 1; + var_s1_2 += 4; + } while (var_s0_2 < D_80165750); } } - return phi_s6; + return var_s6; } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007F75C.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -/* -Failed to decompile function func_8007F8D8: +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +s32 func_8007F75C(s32); /* extern */ +extern s16 D_80165750; -Label L8007F9D0 refers to a delay slot; this is currently not supported. -Please modify the assembly to work around it (e.g. copy the instruction -to all jump sources and move the label, or add a nop to the delay slot). -*/ +void func_8007F8D8(void) { + Player *var_s3; + s32 *var_s2; + s32 temp_a0; + s32 var_s0; + s32 var_s0_2; + s32 var_s1; + s32 var_s4; + struct_80165C18_entry *temp_v0; + u16 temp_v0_2; + + var_s3 = gPlayerOne; + var_s4 = 1; + var_s1 = 0; + if (D_80165750 > 0) { + var_s2 = D_80183EA0; + do { + temp_a0 = *var_s2; + temp_v0 = &D_80165C18[temp_a0]; + if ((u8) temp_v0->unk_0D5 == 3) { + var_s0 = 0; + if ((temp_v0->unk_0A6 >= 2) && (func_80072354(temp_a0, 8) != 0)) { + var_s0 = 1; + } + var_s4 *= var_s0; + } + var_s1 += 1; + var_s2 += 4; + } while (var_s1 < D_80165750); + } + var_s0_2 = 0; + if (var_s4 != 0) { +loop_10: + temp_v0_2 = var_s3->unk_000; + if (!(temp_v0_2 & 0x8000) || (temp_v0_2 & 0x1000) || (func_8007F75C(var_s0_2) == 0)) { + var_s0_2 += 1; + var_s3 += 0xDD8; + if (var_s0_2 != 4) { + goto loop_10; + } + } + } +} #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007F8D8.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_80072488(s32); // extern -? func_80073444(? *, ? *, ?, s32); // extern -? func_8008B80C(s32, f32, f32, f32); // extern -? func_8008B888(s32, ?, ?, ?); // extern -? func_8008B8BC(s32, ?, ?, ?); // extern -extern ? D_06006F38; -extern ? D_06007138; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s32 D_06006F38; +extern s32 D_06007138; extern ? D_06009088; -extern ? D_80165C18; -void func_8007FA08(s32 arg0) { - void *temp_s0; +void func_8007FA08(s32 objectIndex) { + struct_80165C18_entry *temp_s0; - func_80073444(&D_06006F38, &D_06007138, 0x10, 0x40); - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_s0->unk70 = &D_06009088; - temp_s0->unkC8 = 0xC; - temp_s0->unk0 = 1.0f; - func_800721C0(arg0, 0x4000220); - temp_s0->unkA4 = 0; - temp_s0->unk44 = 0.0f; - temp_s0->unk14 = 0.0f; - func_8008B80C(arg0, 0.0f, 0.0f, 0.0f); - func_8008B888(arg0, 0, 0, 0); + func_80073444(objectIndex, &D_06006F38, &D_06007138, 0x10U, (u16) 0x00000040); + temp_s0 = &D_80165C18[objectIndex]; + temp_s0->unk_070 = (s32) &D_06009088; + temp_s0->unkC8 = 0x000C; + temp_s0->unk_000 = 1.0f; + func_800721C0(objectIndex, 0x04000220); + temp_s0->unk_0A4 = 0; + temp_s0->unk_044 = 0; + temp_s0->unk_010[1] = (bitwise f32) 0; + func_8008B80C(objectIndex, (bitwise f32) 0, (bitwise f32) 0, (bitwise f32) 0); + func_8008B888(objectIndex, 0U, 0U, 0U); if (gIsMirrorMode != 0) { - func_8008B8BC(arg0, 0, 0xC000, 0); + func_8008B8BC(objectIndex, 0U, 0xC000U, 0U); } else { - func_8008B8BC(arg0, 0, 0x4000, 0); + func_8008B8BC(objectIndex, 0U, 0x4000U, 0U); } - temp_s0->unk38 = 0.0f; - temp_s0->unkDD = 1; - temp_s0->unkDF = 8; - temp_s0->unkC0 = temp_s0->unkB4; - temp_s0->unk2C = 15.0f; + temp_s0->unk_038 = (bitwise f32) 0; + temp_s0->unk_0DD = 1; + temp_s0->unk_0DF = 8; + temp_s0->unk_0C0 = (u16) temp_s0->unk_0B4; + temp_s0->unk_028[1] = 15.0f; temp_s0->unk20 = 15.0f; - func_80072488(arg0); + func_80072488(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007FA08.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? f32_step_towards(void *, ?, ?); /* extern */ -? func_800722CC(s32, ?); /* extern */ -? func_800726CC(s32, ?); /* extern */ -? func_80086FD4(s32, void *); /* extern */ -? func_8008775C(s32, void *); /* extern */ -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern f32 D_8018D01C; +extern s32 D_8018D400; -void func_8007FB48(s32 arg0) { - void *sp18; +void func_8007FB48(s32 objectIndex) { + struct_80165C18_entry *sp18; s16 temp_a0; - s16 temp_a0_2; - s16 temp_a0_3; - s32 temp_t1; - s32 temp_t7; + s16 var_a0; s32 temp_v0; + s32 var_v0; + struct_80165C18_entry *temp_v1; u16 temp_t2; u16 temp_v0_2; - void *temp_a1; - void *temp_v1; - s16 phi_a0; - s32 phi_v0; - temp_t7 = arg0 * 0xE0; - temp_v1 = temp_t7 + &D_80165C18; - temp_t2 = temp_v1->unkAE; - temp_a1 = (temp_v1->unkD1 * 0xDD8) + gPlayerOne; + temp_v1 = &D_80165C18[objectIndex]; + temp_t2 = (u16) temp_v1->unk_0AE; switch (temp_t2) { case 1: - temp_v1->unkB0 = 0xA0; - temp_v1->unk28 = 0.0f; - temp_v1->unk30 = 0.0f; - temp_v1->unk40 = 0.0f; - func_80086FD4(arg0, temp_a1); + temp_v1->unk_0B0 = 0x00A0; + temp_v1->unk_028[0] = 0.0f; + temp_v1->unk_028[2] = 0.0f; + temp_v1->unk_038[2] = 0.0f; + func_80086FD4(objectIndex); return; case 2: - temp_v0 = temp_v1->unk48; - temp_a0 = temp_v1->unkB0; - temp_v1->unk38 = (temp_a1->unk94 * D_8018D01C) * 1.25; + temp_v0 = temp_v1->unk_048; + temp_a0 = temp_v1->unk_0B0; + temp_v1->unk_038[0] = (f32) ((f64) (gPlayerOne[temp_v1->unk_0D1].unk_094 * D_8018D01C) * 1.25); if (temp_v0 >= temp_a0) { if (temp_a0 == temp_v0) { - if ((D_8018D400 & 1) != 0) { - temp_v1->unk40 = 1.5f; + if (D_8018D400 & 1) { + temp_v1->unk_038[2] = 1.5f; } else { - temp_v1->unk40 = -1.5f; + temp_v1->unk_038[2] = -1.5f; } } - if (temp_v1->unk40 >= 0.0) { - if (temp_v1->unk30 >= 40.0) { - temp_v1->unk40 = -1.5f; + if ((f64) temp_v1->unk_038[2] >= 0.0) { + if ((f64) temp_v1->unk_028[2] >= 40.0) { + temp_v1->unk_038[2] = -1.5f; } - } else if (temp_v1->unk30 <= -40.0) { - temp_v1->unk40 = 1.5f; + } else if ((f64) temp_v1->unk_028[2] <= -40.0) { + temp_v1->unk_038[2] = 1.5f; } } sp18 = temp_v1; - func_8008775C(arg0, temp_a1); - temp_a0_2 = temp_v1->unkB0; - phi_a0 = temp_a0_2; - if (temp_a0_2 < 0x65) { + func_8008775C(objectIndex); + var_a0 = temp_v1->unk_0B0; + if (var_a0 < 0x65) { sp18 = temp_v1; - temp_a0_3 = temp_v1->unkB0; - temp_v1->unkB4 = func_800417B4(temp_v1->unkB4, (temp_v1->unkC0 + 0x8000) & 0xFFFF); - phi_a0 = temp_a0_3; - if (temp_a0_3 == 0x64) { - temp_v1->unkD2 = 1; - phi_a0 = temp_v1->unkB0; + var_a0 = temp_v1->unk_0B0; + temp_v1->unk_0B4 = func_800417B4(temp_v1->unk_0B4, (temp_v1->unk_0C0 + 0x8000) & 0xFFFF); + if (var_a0 == 0x0064) { + temp_v1->unk_0D2 = 1; + var_a0 = temp_v1->unk_0B0; } } - phi_v0 = 0; + var_v0 = 0; if (gIsMirrorMode != 0) { - if ((temp_t7 + &D_80165C18)->unk28 <= -1000.0) { + if ((f64) temp_v1->unk_028[0] <= -1000.0) { goto block_20; } - } else if ((temp_t7 + &D_80165C18)->unk28 >= 1000.0) { + } else if ((f64) temp_v1->unk_028[0] >= 1000.0) { block_20: - phi_v0 = 1; + var_v0 = 1; } - (temp_t7 + &D_80165C18)->unkB0 = phi_a0 - 1; - if (((temp_t7 + &D_80165C18)->unkB0 == 0) || (phi_v0 != 0)) { - (temp_t7 + &D_80165C18)->unk34 = 0.0f; - func_800726CC(arg0, 3); - func_80086FD4(arg0); + temp_v1->unk_0B0 = var_a0 - 1; + if ((temp_v1->unk_0B0 == 0) || (var_v0 != 0)) { + temp_v1->unk_034 = 0.0f; + func_800726CC(objectIndex, 3); + func_80086FD4(objectIndex); return; } default: return; case 4: sp18 = temp_v1; - f32_step_towards(temp_v1 + 0x30, 0, 0x40000000); - f32_step_towards(temp_v1 + 0x28, 0, 0x40A00000); - if ((temp_v1->unk30 + temp_v1->unk28) == 0.0) { - func_80086FD4(arg0); + f32_step_towards(&temp_v1->unk_028[2], 0.0f, 2.0f); + f32_step_towards(temp_v1->unk_028, 0.0f, 5.0f); + if ((f64) (temp_v1->unk_028[2] + temp_v1->unk_028[0]) == 0.0) { + func_80086FD4(objectIndex); return; } - /* Duplicate return node #28. Try simplifying control flow for better match */ - return; + break; case 5: sp18 = temp_v1; - temp_v0_2 = func_800417B4(temp_v1->unkB4, temp_v1->unkC0); - temp_t1 = temp_v0_2 & 0xFFFF; - temp_v1->unkB4 = temp_v0_2; - if (temp_t1 == temp_v1->unkC0) { + temp_v0_2 = func_800417B4(temp_v1->unk_0B4, temp_v1->unk_0C0); + temp_v1->unk_0B4 = temp_v0_2; + if ((temp_v0_2 & 0xFFFF) == temp_v1->unk_0C0) { sp18 = temp_v1; - func_800722CC(arg0, 8); - func_80086FD4(arg0); - temp_v1->unkD2 = 0; + func_800722CC(objectIndex, 8); + func_80086FD4(objectIndex); + temp_v1->unk_0D2 = 0; } - /* Duplicate return node #28. Try simplifying control flow for better match */ - return; + break; } } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007FB48.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s32 f32_step_towards(void *, s32, ?); // extern -? func_800722CC(s32, ?); // extern -? func_800726CC(s32, ?); // extern -? func_80086FD4(s32); // extern -extern ? D_80165C18; +void func_8007FEA4(s32 objectIndex) { + struct_80165C18_entry *temp_v1; -void func_8007FEA4(s32 arg0) { - s16 temp_v0; - void *temp_v1; - - temp_v1 = (arg0 * 0xE0) + &D_80165C18; - temp_v0 = temp_v1->unkAE; - if (temp_v0 != 0) { - if (temp_v0 != 1) { - if (temp_v0 != 2) { - if (temp_v0 != 3) { - return; - } - if (f32_step_towards(temp_v1 + 0x28, 0, 0x40A00000) != 0) { - func_80086FD4(arg0); - func_800722CC(arg0, 8); - } - // Duplicate return node #9. Try simplifying control flow for better match - return; - } - // Duplicate return node #9. Try simplifying control flow for better match - return; + temp_v1 = &D_80165C18[objectIndex]; + switch (temp_v1->unk_0AE) { + case 1: + if (f32_step_towards(&temp_v1->unk_028[0], temp_v1->unk_01C[0], 5.0f) != 0) { + func_800726CC(objectIndex, 3); + func_80086FD4(objectIndex); + break; } - if (f32_step_towards(temp_v1 + 0x28, temp_v1->unk1C, 0x40A00000) != 0) { - func_800726CC(arg0, 3); - func_80086FD4(arg0); - return; + case 0: + case 2: + break; + case 3: + if (f32_step_towards(&temp_v1->unk_028[0], 0.0f, 5.0f) != 0) { + func_80086FD4(objectIndex); + func_800722CC(objectIndex, 8); } - // Duplicate return node #9. Try simplifying control flow for better match + break; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007FEA4.s") -#endif #ifdef MIPS_TO_C //generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 @@ -8825,521 +7763,381 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007FF5C.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072488(s32); // extern -? func_80072568(s32, ?); // extern -? func_80073514(s32); // extern -? func_8007E63C(s32); // extern -? func_8007FA08(s32); // extern -? func_8007FF5C(s32); // extern -? func_80086FD4(s32); // extern -? func_8008BF18(s32); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_8007E63C(s32); /* extern */ +? func_8007FA08(s32); /* extern */ +? func_8007FF5C(s32); /* extern */ extern ? D_80165CBE; -void func_8007FFC0(s32 arg0) { +void func_8007FFC0(s32 objectIndex) { s16 temp_v0; - temp_v0 = *(&D_80165CBE + (arg0 * 0xE0)); - if (temp_v0 != 0) { - if (temp_v0 != 1) { - if (temp_v0 != 3) { - if (temp_v0 != 4) { - - } else { - func_80072488(arg0); - func_80086FD4(arg0); - } - } else { - func_80072568(arg0, 0x32); - } - } else { - func_8007FA08(arg0); - } + temp_v0 = *(&D_80165CBE + (objectIndex * 0xE0)); + switch (temp_v0) { /* irregular */ + case 0: + break; + case 1: + func_8007FA08(objectIndex); + break; + case 3: + func_80072568(objectIndex, 0x00000032); + break; + case 4: + func_80072488(objectIndex); + func_80086FD4(objectIndex); + break; } - func_8007E63C(arg0); - func_8007FF5C(arg0); - func_8008BF18(arg0); - func_80073514(arg0); + func_8007E63C(objectIndex); + func_8007FF5C(objectIndex); + func_8008BF18(objectIndex); + func_80073514(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007FFC0.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_80072488(s32); // extern -? func_800724DC(s32); // extern -? func_80073444(? *, ? *, ?, s32); // extern -? func_8008B80C(s32, f32, f32, f32); // extern -? func_8008B888(s32, ?, ?, ?); // extern -? func_8008B8BC(s32, ?, ?, ?); // extern -extern ? D_06006F38; -extern ? D_06007138; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s32 D_06006F38; +extern s32 D_06007138; extern ? D_06009088; -extern ? D_80165C18; -void func_80080078(s32 arg0) { +void func_80080078(s32 objectIndex) { s16 temp_v0; - void *temp_s0; + struct_80165C18_entry *temp_s0; - func_80073444(&D_06006F38, &D_06007138, 0x10, 0x40); - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_s0->unk70 = &D_06009088; - temp_s0->unkC8 = 0xC; - temp_s0->unk0 = 1.0f; - func_800721C0(arg0, 0x4000220); - temp_s0->unkA4 = 2; - temp_s0->unkDF = 8; - func_8008B888(arg0, 0, 0, 0); - temp_s0->unk44 = 0.0f; - temp_s0->unk14 = 0.0f; - func_8008B80C(arg0, 0.0f, 0.0f, 0.0f); - temp_s0->unk20 = 30.0f; + func_80073444(objectIndex, &D_06006F38, &D_06007138, 0x10U, (u16) 0x00000040); + temp_s0 = &D_80165C18[objectIndex]; + temp_s0->unk_070 = (s32) &D_06009088; + temp_s0->unkC8 = 0x000C; + temp_s0->unk_000 = 1.0f; + func_800721C0(objectIndex, 0x04000220); + temp_s0->unk_0A4 = 2; + temp_s0->unk_0DF = 8; + func_8008B888(objectIndex, 0U, 0U, 0U); + temp_s0->unk_044 = 0; + temp_s0->unk_010[1] = (bitwise f32) 0; + func_8008B80C(objectIndex, (bitwise f32) 0, (bitwise f32) 0, (bitwise f32) 0); + temp_s0->unk_01C[1] = 30.0f; if (gIsMirrorMode != 0) { - func_8008B8BC(arg0, 0, 0x4000, 0); + func_8008B8BC(objectIndex, 0U, 0x4000U, 0U); } else { - func_8008B8BC(arg0, 0, 0xC000, 0); + func_8008B8BC(objectIndex, 0U, 0xC000U, 0U); } - temp_v0 = temp_s0->unkA0; - if (temp_v0 != 0) { - if (temp_v0 != 1) { - if (temp_v0 != 2) { - if (temp_v0 != 3) { - - } else { - temp_s0->unk50 = 0xB4; - } - } else { - temp_s0->unk50 = 0x78; - } - } else { - temp_s0->unk50 = 0x3C; - } - } else { - temp_s0->unk50 = 2; + temp_v0 = temp_s0->unk_0A0; + switch (temp_v0) { /* irregular */ + case 0: + temp_s0->unk_050 = 2; + break; + case 1: + temp_s0->unk_050 = 0x0000003C; + break; + case 2: + temp_s0->unk_050 = 0x00000078; + break; + case 3: + temp_s0->unk_050 = 0x000000B4; + break; } - func_800724DC(arg0); - func_80072488(arg0); + func_800724DC(objectIndex); + func_80072488(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80080078.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? func_80072568(s32, ?); /* extern */ -? func_800726CC(s32, ?); /* extern */ -? func_8007278C(s32, s32); /* extern */ -? func_80073514(s32); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_8007E63C(s32); /* extern */ ? func_80080078(s32); /* extern */ ? func_8008BF18(s32); /* extern */ -extern ? D_80165C18; -void func_800801FC(s32 arg0) { +void func_800801FC(s32 objectIndex) { + struct_80165C18_entry *temp_v0; u16 temp_t8; - void *temp_v0; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_t8 = temp_v0->unkA6; + temp_v0 = &D_80165C18[objectIndex]; + temp_t8 = (u16) temp_v0->unk_0A6; switch (temp_t8) { + case 0: + break; case 1: - func_80080078(arg0); + func_80080078(objectIndex); break; case 2: - func_8007278C(arg0, temp_v0->unk50); + func_8007278C(objectIndex, temp_v0->unk_050); break; case 3: - func_80072568(arg0, 0x32); + func_80072568(objectIndex, 0x00000032); break; case 4: - temp_v0->unk50 = 0x3C; - func_800726CC(arg0, 2); + temp_v0->unk_050 = 0x0000003C; + func_800726CC(objectIndex, 2); break; } - func_8007E63C(arg0); - func_8008BF18(arg0); - func_80073514(arg0); + func_8007E63C(objectIndex); + func_8008BF18(objectIndex); + func_80073514(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800801FC.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_80072488(s32); // extern -? func_800724DC(s32); // extern -? func_80073444(? *, ? *, ?, s32); // extern -? func_8008B80C(s32, f32, f32, f32); // extern -? func_8008B888(s32, ?, ?, ?); // extern -? func_8008B8BC(s32, ?, ?, ?); // extern -extern ? D_06006F38; -extern ? D_06007138; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s32 D_06006F38; +extern s32 D_06007138; extern ? D_06009088; -extern ? D_80165C18; -void func_800802C0(s32 arg0) { - void *temp_s0; +void func_800802C0(s32 objectIndex) { + struct_80165C18_entry *temp_s0; - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_s0->unkD8 = 0; - func_80073444(&D_06006F38, &D_06007138, 0x10, 0x40); - temp_s0->unk70 = &D_06009088; - temp_s0->unkD2 = 0; - temp_s0->unkC8 = 0xC; - temp_s0->unk0 = 1.5f; - func_800721C0(arg0, 0x5000220); - temp_s0->unkA4 = 1; - temp_s0->unkDF = 6; - func_8008B80C(arg0, 0.0f, 0.0f, 0.0f); - func_8008B888(arg0, 0, 0, 0); - temp_s0->unk44 = 0.0f; - temp_s0->unk14 = 0.0f; - temp_s0->unk2C = 10.0f; - temp_s0->unk20 = 10.0f; + temp_s0 = &D_80165C18[objectIndex]; + temp_s0->unk_0D8 = 0; + func_80073444(objectIndex, &D_06006F38, &D_06007138, 0x10U, (u16) 0x00000040); + temp_s0->unk_070 = (s32) &D_06009088; + temp_s0->unk_0D2 = 0; + temp_s0->unkC8 = 0x000C; + temp_s0->unk_000 = 1.5f; + func_800721C0(objectIndex, 0x05000220); + temp_s0->unk_0A4 = 1; + temp_s0->unk_0DF = 6; + func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); + func_8008B888(objectIndex, 0U, 0U, 0U); + temp_s0->unk_044 = (bitwise s32) 0.0f; + temp_s0->unk_010[1] = 0.0f; + temp_s0->unk_028[1] = 10.0f; + temp_s0->unk_01C[1] = 10.0f; if (gIsMirrorMode != 0) { - func_8008B8BC(arg0, 0, 0x4000, 0); + func_8008B8BC(objectIndex, 0U, 0x4000U, 0U); } else { - func_8008B8BC(arg0, 0, 0xC000, 0); + func_8008B8BC(objectIndex, 0U, 0xC000U, 0U); } - temp_s0->unk28 = 0.0f; - temp_s0->unk30 = 0.0f; - func_800724DC(arg0); - func_80072488(arg0); + temp_s0->unk_028[0] = 0.0f; + temp_s0->unk_028[2] = 0.0f; + func_800724DC(objectIndex); + func_80072488(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800802C0.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -s32 func_8007223C(s32, ?); /* extern */ -? func_80072488(s32); /* extern */ -? func_800726CC(s32, ?); /* extern */ -s32 func_8007278C(s32, ?); /* extern */ -s32 func_800730BC(s32, ?, ?, ?, s32, s32); /* extern */ -? func_80073514(s32); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_800802C0(s32); /* extern */ -? func_8008A6DC(s32, ?); /* extern */ ? func_8008BF18(s32); /* extern */ -? func_800C98B8(void *, void *, ?); /* extern */ -extern ? D_80165C18; -void func_80080408(s32 arg0) { - void *sp2C; +void func_80080408(s32 objectIndex) { + struct_80165C18_entry *sp2C; + struct_80165C18_entry *temp_v1; u16 temp_t8; - void *temp_v1; - temp_v1 = (arg0 * 0xE0) + &D_80165C18; - temp_t8 = temp_v1->unkA6; + temp_v1 = &D_80165C18[objectIndex]; + temp_t8 = (u16) temp_v1->unk_0A6; switch (temp_t8) { + case 0: + break; case 1: - func_800802C0(arg0); + func_800802C0(objectIndex); break; case 2: sp2C = temp_v1; - func_8008A6DC(arg0, 0x42C80000); - if (func_8007223C(arg0, 0x40000) != 0) { - func_800C98B8(temp_v1 + 4, temp_v1 + 0x38, 0x19018045); - func_80072488(arg0); + func_8008A6DC(objectIndex, 100.0f); + if (func_8007223C(objectIndex, 0x00040000) != 0) { + func_800C98B8(temp_v1->unk_004, &temp_v1->unk_038, 0x19018045U); + func_80072488(objectIndex); } break; case 3: sp2C = temp_v1; - if (func_800730BC(arg0, 3, 5, 1, 6, 6) != 0) { - temp_v1->unkD2 = 0; + if (func_800730BC(objectIndex, 3, 5, 1, 6, 6) != 0) { + temp_v1->unk_0D2 = 0; } break; case 4: - if (func_8007278C(arg0, 0x12C) != 0) { - func_800726CC(arg0, 2); + if (func_8007278C(objectIndex, 0x0000012C) != 0) { + func_800726CC(objectIndex, 2); } break; } - func_8008BF18(arg0); - func_80073514(arg0); + func_8008BF18(objectIndex); + func_80073514(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80080408.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_800722A4(s32, ?); // extern -? func_80072488(s32); // extern -? func_80073444(? *, ? *, ?, s32); // extern -? func_80086E70(s32); // extern -? func_8008B80C(s32, ?, ?, ?); // extern -? func_8008B888(s32, ?, ?, ?); // extern -? func_8008B8BC(s32, ?, ?, ?); // extern -extern ? D_06006F38; -extern ? D_06007138; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s32 D_06006F38; +extern s32 D_06007138; extern ? D_06009088; -extern ? D_80165C18; +extern s32 gGamestate; -void func_80080524(s32 arg0) { +void func_80080524(s32 objectIndex) { s16 temp_v0; - void *temp_s0; + struct_80165C18_entry *temp_s0; - func_80073444(&D_06006F38, &D_06007138, 0x10, 0x40); - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_s0->unk70 = &D_06009088; - temp_s0->unkC8 = 0xC; - temp_s0->unkD2 = 0; - temp_s0->unk0 = 1.0f; - func_800721C0(arg0, 0x4000220); - temp_s0->unkA4 = 0; - temp_s0->unkDF = 0xA; - func_80086E70(arg0); - func_8008B80C(arg0, 0, 0, 0); - temp_s0->unk44 = 70.0f; - temp_s0->unk14 = 70.0f; - temp_s0->unk20 = 0.0f; - func_8008B888(arg0, 0, 0, 0); - if ((gIsMirrorMode != 0) || (gGamestate == CREDITS_SEQUENCE)) { - func_8008B8BC(arg0, 0, 0xC000, 0); + func_80073444(objectIndex, &D_06006F38, &D_06007138, 0x10U, (u16) 0x00000040); + temp_s0 = &D_80165C18[objectIndex]; + temp_s0->unk_070 = (s32) &D_06009088; + temp_s0->unkC8 = 0x000C; + temp_s0->unk_0D2 = 0; + temp_s0->unk_000 = 1.0f; + func_800721C0(objectIndex, 0x04000220); + temp_s0->unk_0A4 = 0; + temp_s0->unk_0DF = 0x0A; + func_80086E70(objectIndex); + func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); + temp_s0->unk_044 = 0x428C0000; + temp_s0->unk_010[1] = (bitwise f32) 0x428C0000; + temp_s0->unk_01C[1] = 0.0f; + func_8008B888(objectIndex, 0U, 0U, 0U); + if ((gIsMirrorMode != 0) || (gGamestate == 9)) { + func_8008B8BC(objectIndex, 0U, 0xC000U, 0U); } else { - func_8008B8BC(arg0, 0, 0x4000, 0); + func_8008B8BC(objectIndex, 0U, 0x4000U, 0U); } - temp_v0 = temp_s0->unkA0; - if (temp_v0 != 0) { - if (temp_v0 != 1) { - - } else { - temp_s0->unkDD = 2; - temp_s0->unk40 = -1.5f; - } - } else { - temp_s0->unkDD = 2; - temp_s0->unk40 = -1.0f; + temp_v0 = temp_s0->unk_0A0; + switch (temp_v0) { /* irregular */ + case 0: + temp_s0->unk_0DD = 2; + temp_s0->unk_040 = -1.0f; + break; + case 1: + temp_s0->unk_0DD = 2; + temp_s0->unk_040 = -1.5f; + break; } - func_800722A4(arg0, 0x80); - func_80072488(arg0); + func_800722A4(objectIndex, 0x00000080); + func_80072488(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80080524.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s32 f32_step_towards(void *, ?, f32, s32); // extern -? func_80086FD4(s32); // extern -? func_8008701C(s32, ?); // extern -extern ? D_80165C18; - -void func_800806BC(s32 arg0) { - void *sp18; - s16 temp_v0; - s32 temp_a3; - void *temp_v1; - - temp_v1 = (arg0 * 0xE0) + &D_80165C18; - temp_v0 = temp_v1->unkAE; - temp_a3 = arg0; - if (temp_v0 != 0) { - if (temp_v0 != 1) { - if (temp_v0 != 2) { - return; - } - sp18 = temp_v1; - arg0 = temp_a3; - if (f32_step_towards(temp_v1 + 0x30, 0, temp_v1->unk40, temp_a3) != 0) { - temp_v1->unk40 = -temp_v1->unk40; - func_8008701C(arg0, 1); - } - // Duplicate return node #8. Try simplifying control flow for better match - return; +void func_800806BC(s32 objectIndex) { + switch (D_80165C18[objectIndex].unk_0AE) { + case 0: + break; + case 1: + if (f32_step_towards(&D_80165C18[objectIndex].unk_028[2], 250.0f, D_80165C18[objectIndex].unk_038[2]) != 0) { + D_80165C18[objectIndex].unk_038[2] = -D_80165C18[objectIndex].unk_038[2]; + func_80086FD4(objectIndex); } - sp18 = temp_v1; - arg0 = temp_a3; - if (f32_step_towards(temp_v1 + 0x30, 0x437A0000, temp_v1->unk40, temp_a3) != 0) { - temp_v1->unk40 = -temp_v1->unk40; - func_80086FD4(arg0); - return; + break; + case 2: + if (f32_step_towards(&D_80165C18[objectIndex].unk_028[2], 0.0f, D_80165C18[objectIndex].unk_038[2]) != 0) { + D_80165C18[objectIndex].unk_038[2] = -D_80165C18[objectIndex].unk_038[2]; + func_8008701C(objectIndex, 1); } - // Duplicate return node #8. Try simplifying control flow for better match + break; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800806BC.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s32 f32_step_towards(void *, ?, f32, s32); // extern -? func_80086FD4(s32); // extern -? func_8008701C(s32, ?); // extern -extern ? D_80165C18; - -void func_8008078C(s32 arg0) { - void *sp18; - s16 temp_v0; - s32 temp_a3; - void *temp_v1; - - temp_v1 = (arg0 * 0xE0) + &D_80165C18; - temp_v0 = temp_v1->unkAE; - temp_a3 = arg0; - if (temp_v0 != 0) { - if (temp_v0 != 1) { - if (temp_v0 != 2) { - return; - } - sp18 = temp_v1; - arg0 = temp_a3; - if (f32_step_towards(temp_v1 + 0x30, 0, temp_v1->unk40, temp_a3) != 0) { - temp_v1->unk40 = -temp_v1->unk40; - func_8008701C(arg0, 1); - } - // Duplicate return node #8. Try simplifying control flow for better match - return; +void func_8008078C(s32 objectIndex) { + switch (D_80165C18[objectIndex].unk_0AE) { + case 0: + break; + case 1: + if (f32_step_towards(&D_80165C18[objectIndex].unk_028[2], -250.0f, D_80165C18[objectIndex].unk_038[2]) != 0) { + D_80165C18[objectIndex].unk_038[2] = -D_80165C18[objectIndex].unk_038[2]; + func_80086FD4(objectIndex); } - sp18 = temp_v1; - arg0 = temp_a3; - if (f32_step_towards(temp_v1 + 0x30, 0xC37A0000, temp_v1->unk40, temp_a3) != 0) { - temp_v1->unk40 = -temp_v1->unk40; - func_80086FD4(arg0); - return; + break; + case 2: + if (f32_step_towards(&D_80165C18[objectIndex].unk_028[2], 0.0f, D_80165C18[objectIndex].unk_038[2]) != 0) { + D_80165C18[objectIndex].unk_038[2] = -D_80165C18[objectIndex].unk_038[2]; + func_8008701C(objectIndex, 1); } - // Duplicate return node #8. Try simplifying control flow for better match + break; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8008078C.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800806BC(s32); // extern -? func_8008078C(s32); // extern -? func_8008BF18(s32); // extern -extern ? D_80165CF5; - -void func_8008085C(s32 arg0) { - u8 temp_v0; - - temp_v0 = *(&D_80165CF5 + (arg0 * 0xE0)); - if (temp_v0 != 1) { - if (temp_v0 != 2) { - - } else { - func_8008078C(arg0); - } - } else { - func_800806BC(arg0); +void func_8008085C(s32 objectIndex) { + switch (D_80165C18[objectIndex].unk_0DD) { + case 1: + func_800806BC(objectIndex); + break; + case 2: + func_8008078C(objectIndex); + break; } - func_8008BF18(arg0); + func_8008BF18(objectIndex); } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8008085C.s") -#endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800730BC(s32, ?, ?, ?, s32, s32); // extern -? func_80073514(s32); // extern -? func_8007E63C(s32); // extern -? func_80080524(s32); // extern -? func_8008085C(s32); // extern -? func_800C98B8(void *, void *, ?); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_8007E63C(s32); /* extern */ +? func_80080524(s32); /* extern */ extern s32 D_8018D40C; -extern s16 D_802876D2; +extern s32 gGamestate; -void func_800808CC(s32 arg0) { - void *sp20; +void func_800808CC(s32 objectIndex) { + struct_80165C18_entry *sp20; s16 temp_v0; - s16 temp_v1; - s32 temp_t7; - void *temp_t0; - s32 phi_v1; - void *phi_t0; + s16 var_v1; + struct_80165C18_entry *temp_t0; - temp_t7 = arg0 * 0xE0; - temp_t0 = temp_t7 + &D_80165C18; - temp_v1 = temp_t0->unkA6; - phi_v1 = temp_v1; - phi_t0 = temp_t0; - if (temp_v1 != 0) { - if (temp_v1 != 1) { - if (temp_v1 != 2) { - - } else { - sp20 = temp_t0; - func_800730BC(arg0, 3, 5, 1, 6, -1); - goto block_6; + temp_t0 = &D_80165C18[objectIndex]; + var_v1 = temp_t0->unk_0A6; + switch (var_v1) { /* irregular */ + case 0: + break; + case 1: + sp20 = temp_t0; + func_80080524(objectIndex); +block_6: + var_v1 = temp_t0->unk_0A6; + break; + case 2: + sp20 = temp_t0; + func_800730BC(objectIndex, 3, 5, 1, 6, -1); + goto block_6; + } + if (var_v1 >= 2) { + sp20 = temp_t0; + func_8007E63C(objectIndex); + func_8008085C(objectIndex); + func_80073514(objectIndex); + if (gGamestate != 9) { + if ((D_8018D40C == 0) && (temp_t0->unk_0A6 == 2)) { + func_800C98B8(temp_t0->unk_004, &temp_t0->unk_038, 0x19036045U); } } else { - sp20 = temp_t0; - func_80080524(arg0); -block_6: - phi_v1 = (temp_t7 + &D_80165C18)->unkA6; - phi_t0 = temp_t7 + &D_80165C18; - } - } - if (phi_v1 >= 2) { - sp20 = phi_t0; - func_8007E63C(arg0); - func_8008085C(arg0); - func_80073514(arg0); - if (gGamestate != CREDITS_SEQUENCE) { - if ((D_8018D40C == 0) && (phi_t0->unkA6 == 2)) { - func_800C98B8(phi_t0 + 4, phi_t0 + 0x38, 0x19036045); - return; + temp_v0 = D_802876D2; + if ((temp_v0 < 0xBF) && ((temp_v0 % 88) == 0x0000001E)) { + func_800C98B8(temp_t0->unk_004, &temp_t0->unk_038, 0x19036045U); } - // Duplicate return node #15. Try simplifying control flow for better match - return; } - temp_v0 = D_802876D2; - if ((temp_v0 < 0xBF) && ((temp_v0 % 0x58) == 0x1E)) { - func_800C98B8(phi_t0 + 4, phi_t0 + 0x38, 0x19036045); - } - // Duplicate return node #15. Try simplifying control flow for better match } } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800808CC.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 792017ad9d422c2467bd42686f383a5c41f41c75 -s32 func_80088A58(?); /* extern */ - -void func_80080A14(s32 arg0, Player *player) { - if (func_80088A58(0x41400000) != 0) { +void func_80080A14(s32 objectIndex, Player *player) { + if (func_80088A58(objectIndex, player, 12.0f) != 0) { player->boundingBoxCorners[0].unk_14 |= 3; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80080A14.s") -#endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_8001CA10(s32); // extern -s32 func_80072320(?, Player *); // extern -s32 func_80088A58(s32, Player *, ?, Player *); // extern -? func_800C98B8(void *, void *, ?); // extern -extern ? D_80165C18; - -void func_80080A4C(s32 arg0, s32 arg1) { - s32 sp1C; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +void func_80080A4C(s32 objectIndex, s32 cameraPlayerId) { + Camera *sp1C; Player *sp18; Player *temp_a3; - void *temp_v0; + struct_80165C18_entry *temp_v0; - sp1C = (arg1 * 0xB8) + camera1; - - temp_a3 = &gPlayerOne[arg1]; + sp1C = &camera1[cameraPlayerId]; + temp_a3 = &gPlayerOne[cameraPlayerId]; if (gScreenModeSelection != 3) { sp18 = temp_a3; - if ((func_80072320(0x10, temp_a3) != 0) && (func_80088A58(arg0, temp_a3, 0x43FA0000, temp_a3) != 0)) { + if ((func_80072320(objectIndex, 0x00000010) != 0) && (func_80088A58(objectIndex, temp_a3, 500.0f) != 0)) { func_8001CA10(sp1C); - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - func_800C98B8(temp_v0 + 4, temp_v0 + 0x38, 0x1900800F); + temp_v0 = &D_80165C18[objectIndex]; + func_800C98B8(temp_v0->unk_004, temp_v0->unk_038, 0x1900800FU); } } } @@ -9348,84 +8146,61 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80080A4C.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072180(); // extern -? func_800721E8(s16, ?); // extern -s32 func_8007223C(s16, ?); // extern -? func_800722A4(s16, ?); // extern -s32 func_80072320(s16, ?); // extern -s32 func_80072354(s16, ?, ?); // extern -? func_800726CC(s16, ?); // extern -? func_80075304(void *, ?, ?, s32); // extern -? func_80080DE4(s16); // extern -? func_80086F60(s16); // extern -s32 func_80088A58(s16, Player *, f32); // extern -s32 func_80088D18(s16, Player *); // extern -f32 func_80088F54(s16, Player *); // extern -? func_80088FF0(Player *); // extern -? func_80089474(s16, s32, ?, ?, s32); // extern -? func_800C9060(u8, ?, ?); // extern -? func_800C98B8(f32 *, f32 *, ?); // extern -extern f64 D_800EF0B0; -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_80072180(); /* extern */ +? func_80075304(void *, ?, ?, s32); /* extern */ +? func_80080DE4(s32); /* extern */ +? func_80089474(s32, s32, ?, ?, s32); /* extern */ extern s32 D_8018D3C4; -void func_80080B28(s16 arg0, s32 arg1) { +void func_80080B28(s32 objectIndex, s32 playerId) { f32 sp2C; Player *temp_s0; f32 temp_f0; - f32 temp_ret; u16 temp_v0; u16 temp_v0_2; - temp_s0 = &gPlayerOne[arg1]; - if (func_8007223C(0x200) != 0) { - if ((temp_s0->unk_00C & 0x100) == 0) { - temp_ret = func_80088F54(arg0, temp_s0); - temp_f0 = temp_ret; - if ((temp_f0 <= 9.0) && ((temp_s0->unk_0BC << 5) >= 0) && (sp2C = temp_f0, (func_80088D18(arg0, temp_s0) != 0))) { + temp_s0 = &gPlayerOne[playerId]; + if (func_8007223C(objectIndex, 0x00000200) != 0) { + if (!(temp_s0->unk_00C & 0x100)) { + temp_f0 = func_80088F54(objectIndex, temp_s0); + if (((f64) temp_f0 <= 9.0) && ((temp_s0->unk_0BC << 5) >= 0) && (sp2C = temp_f0, (func_80088D18(objectIndex, temp_s0) != 0))) { temp_v0 = temp_s0->unk_000; - if (((temp_v0 & 0x8000) != 0) && ((temp_v0 & 0x100) == 0)) { - if ((temp_s0->unk_0BC & 0x200) == 0) { - func_80089474(arg0, arg1, 0x3FB33333, 0x3F8CCCCD, 0x1900A04C); + if ((temp_v0 & 0x8000) && !(temp_v0 & 0x100)) { + if (!(temp_s0->unk_0BC & 0x200)) { + func_80089474(objectIndex, playerId, 0x3FB33333, 0x3F8CCCCD, 0x1900A04C); return; } - if (func_80072354(arg0, 0x40, 0x3FB30000) != 0) { - if ((temp_s0->unk_000 & 0x1000) != 0) { - func_800C98B8(&temp_s0->posX, &temp_s0->unk_034, 0x1901A24A); + if (func_80072354(objectIndex, 0x00000040) != 0) { + if (temp_s0->unk_000 & 0x1000) { + func_800C98B8(temp_s0->pos, temp_s0->unk_034, 0x1901A24AU); } else { - func_800C9060(arg1, 0x1901A24A, 0x19010000); + func_800C9060((u8) playerId, 0x1901A24AU); } - func_80080DE4(arg0); - func_80075304((arg0 * 0xE0) + 4 + &D_80165C18, 3, 3, D_8018D3C4); - func_800721E8(arg0, 0x200); - func_800722A4(arg0, 0x40); - func_80086F60(arg0); - func_800726CC(arg0, 0xC8); - return; + func_80080DE4(objectIndex); + func_80075304((objectIndex * 0xE0) + 4 + D_80165C18, 3, 3, D_8018D3C4); + func_800721E8(objectIndex, 0x00000200); + func_800722A4(objectIndex, 0x00000040); + func_80086F60(objectIndex); + func_800726CC(objectIndex, 0x000000C8); } - // Duplicate return node #23. Try simplifying control flow for better match - return; } - // Duplicate return node #23. Try simplifying control flow for better match - return; - } - if ((temp_ret <= D_800EF0B0) && (func_80072320(arg0, 1) != 0) && (func_80088A58(arg0, temp_s0, (temp_s0->unk_094 * 0.5) + 7.0) != 0) && (temp_v0_2 = temp_s0->unk_000, ((temp_v0_2 & 0x8000) != 0)) && ((temp_v0_2 & 0x100) == 0)) { - if (func_8007223C(arg0, 0x4000000) != 0) { - func_80072180(); + } else if (((f64) temp_f0 <= 17.5) && (func_80072320(objectIndex, 1) != 0) && (func_80088A58(objectIndex, temp_s0, (f32) (((f64) temp_s0->unk_094 * 0.5) + 7.0)) != 0)) { + temp_v0_2 = temp_s0->unk_000; + if ((temp_v0_2 & 0x8000) && !(temp_v0_2 & 0x100)) { + if (func_8007223C(objectIndex, 0x04000000) != 0) { + func_80072180(); + } + func_800722A4(objectIndex, 2); + temp_s0->unk_040 = (s16) objectIndex; + temp_s0->unk_046 |= 2; + temp_s0->unk_00C |= 0x100; + func_80088FF0(temp_s0); } - func_800722A4(arg0, 2); - temp_s0->unk_040 = arg0; - temp_s0->unk_046 = temp_s0->unk_046 | 2; - temp_s0->unk_00C |= 0x100; - func_80088FF0(temp_s0); - return; } - // Duplicate return node #23. Try simplifying control flow for better match - return; + } else { + func_80088FF0(temp_s0); } - func_80088FF0(temp_s0); - // Duplicate return node #23. Try simplifying control flow for better match } } #else @@ -9433,90 +8208,78 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80080B28.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc void func_80080DE4(s32 arg0) { - s32 temp_v1; - void *temp_v0; - void *temp_v0_2; - void *temp_v0_3; - Player *phi_v0; - s32 phi_v1; + Player *temp_v0; + Player *temp_v0_2; + Player *temp_v0_3; + Player *var_v0; + s32 var_v1; - phi_v0 = gPlayerOne; - phi_v1 = 0; + var_v0 = gPlayerOne; + var_v1 = 0; do { - temp_v1 = phi_v1 + 4; - phi_v1 = temp_v1; - if (arg0 == phi_v0->unk_040) { - phi_v0->unk_040 = -1; - phi_v0->unk_00C &= -0x101; + var_v1 += 4; + if (arg0 == var_v0->unk_040) { + var_v0->unk_040 = -1; + var_v0->unk_00C &= ~0x100; } - temp_v0 = phi_v0 + 0xDD8; - if (arg0 == phi_v0->unkE18) { - temp_v0->unk40 = -1; - temp_v0->unkC = temp_v0->unkC & ~0x100; + temp_v0 = var_v0 + 0xDD8; + if (arg0 == var_v0->unkE18) { + temp_v0->unk_040 = -1; + temp_v0->unk_00C &= ~0x100; } temp_v0_2 = temp_v0 + 0xDD8; if (arg0 == temp_v0->unkE18) { - temp_v0_2->unk40 = -1; - temp_v0_2->unkC = temp_v0_2->unkC & ~0x100; + temp_v0_2->unk_040 = -1; + temp_v0_2->unk_00C &= ~0x100; } temp_v0_3 = temp_v0_2 + 0xDD8; if (arg0 == temp_v0_2->unkE18) { - temp_v0_3->unk40 = -1; - temp_v0_3->unkC = temp_v0_3->unkC & ~0x100; + temp_v0_3->unk_040 = -1; + temp_v0_3->unk_00C &= ~0x100; } - phi_v0 = temp_v0_3 + 0xDD8; - } while (temp_v1 != 8); + var_v0 = temp_v0_3 + 0xDD8; + } while (var_v1 != 8); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80080DE4.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -f32 func_800416D8(f32, f32, s32, ? *, u16, s32); // extern -f32 func_80041724(f32, f32, s32); // extern -? func_800723A4(s32); // extern -f32 sins(s32); // extern -f32 coss(s32); // extern -extern ? D_800E594C; -extern ? D_800E597C; -extern f64 D_800EF0B8; -extern f64 D_800EF0C0; -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +static f32 D_800E594C[0xA] = { -8.0f, 8.0f, 8.0f, 8.0f, 0.0f, 0.0f, 8.0f, -8.0f, -8.0f, -8.0f }; +static ? D_800E597C; /* unable to generate initializer */ -void func_80080E8C(s32 arg0, s32 arg1, s32 arg2) { +void func_80080E8C(s32 objectIndex1, s32 objectIndex2, s32 arg2) { f32 sp38; - void *sp2C; + struct_80165C18_entry *sp2C; s32 sp28; - void *sp24; - s32 temp_s1_2; + f32 *sp24; + f32 *temp_v1; s32 temp_t1; s32 temp_t7; + struct_80165C18_entry *temp_s0; + struct_80165C18_entry *temp_v0; u16 temp_s1; - void *temp_s0; - void *temp_v0; - void *temp_v1; - func_800723A4(arg2); + func_800723A4(objectIndex1, arg2); temp_t1 = arg2 * 2; - temp_v1 = (temp_t1 * 4) + &D_800E594C; - temp_s0 = &D_80165C18 + (arg0 * 0xE0); - temp_s0->unkD5 = 2; + temp_v1 = &D_800E594C[temp_t1]; + temp_s0 = &D_80165C18[objectIndex1]; + temp_s0->unk_0D5 = 2; sp24 = temp_v1; sp28 = temp_t1; - temp_v0 = &D_80165C18 + (arg1 * 0xE0); - temp_s1 = temp_v0->unkC0; + temp_v0 = &D_80165C18[objectIndex2]; + temp_s1 = temp_v0->unk_0C0; sp2C = temp_v0; - sp38 = func_800416D8(temp_v1->unk4, temp_v1->unk0, temp_t1, &D_80165C18, temp_s1, 0xE0); - temp_s0->unk10 = temp_v0->unk4 + func_80041724(temp_v1->unk4, temp_v1->unk0, temp_s1 & 0xFFFF); - temp_s0->unk14 = temp_v0->unk44 - 9.0; - temp_s0->unk18 = temp_v0->unkC + sp38; - temp_t7 = (*(&D_800E597C + sp28) + temp_v0->unkC0) & 0xFFFF; - temp_s1_2 = temp_t7; - temp_s0->unk38 = sins(temp_t7 & 0xFFFF) * D_800EF0B8; - temp_s0->unk40 = coss(temp_s1_2 & 0xFFFF) * D_800EF0C0; + sp38 = func_800416D8(temp_v1->unk4, temp_v1->unk0, temp_s1); + temp_s0->unk_010[0] = temp_v0->unk_004[0] + func_80041724(temp_v1->unk4, temp_v1->unk0, temp_s1 & 0xFFFF); + temp_s0->unk_010[1] = (f32) ((f64) temp_v0->unk_044 - 9.0); + temp_s0->unk_010[2] = temp_v0->unk_004[2] + sp38; + temp_t7 = (*(&D_800E597C + sp28) + temp_v0->unk_0C0) & 0xFFFF; + temp_s0->unk_038 = (f32) ((f64) sins(temp_t7 & 0xFFFF) * 0.6); + temp_s0->unk_040 = (f32) ((f64) coss(temp_t7 & 0xFFFF) * 0.6); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80080E8C.s") @@ -9551,75 +8314,63 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80080FEC.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072488(); // extern -extern ? D_80165C18; -extern s32 D_8018D490; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s32 *D_8018D490; -void func_80081080(s32 arg0) { - s32 temp_v1; - void *temp_v0; +void func_80081080(s32 objectIndex) { + s32 *temp_v1; + struct_80165C18_entry *temp_v0; temp_v1 = D_8018D490; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unkA0 = 0xFF; - temp_v0->unkC0 = 0; - temp_v0->unkB2 = 0; - temp_v0->unkB6 = 0; - temp_v0->unk64 = temp_v1; - temp_v0->unk6C = temp_v1; - temp_v0->unk28 = 0.0f; - temp_v0->unk2C = 0.0f; - temp_v0->unk30 = 0.0f; - temp_v0->unk0 = 0.25f; - func_80072488(); + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_0A0 = 0x00FF; + temp_v0->unk_0C0 = 0; + temp_v0->unk_0B2 = 0; + temp_v0->unk_0B6 = 0; + temp_v0->unk_064 = temp_v1; + temp_v0->unk_06C = (s32) temp_v1; + temp_v0->unk_028[0] = 0.0f; + temp_v0->unk_028[1] = 0.0f; + temp_v0->unk_028[2] = 0.0f; + temp_v0->unk_000 = 0.25f; + func_80072488(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80081080.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? f32_step_up_towards(void *, ?, ?); // extern -? func_80072428(s32); // extern -? func_80072488(s32); // extern -s32 func_80073B00(s32, void *, ?, ?, s32, s32, s32); // extern -? func_8007415C(s32, void *, ?, ?, f32, s32, s32); // extern -? func_80081080(s32); // extern -? func_8008775C(s32); // extern -? func_8008BF18(s32); // extern -extern f32 D_800EF0C8; -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_80081080(s32); /* extern */ +? func_8008775C(s32); /* extern */ -void func_800810F4(s32 arg0) { - void *sp30; +void func_800810F4(s32 objectIndex) { + struct_80165C18_entry *sp30; s16 temp_v0; - void *temp_v1; + struct_80165C18_entry *temp_v1; - temp_v1 = (arg0 * 0xE0) + &D_80165C18; - temp_v0 = temp_v1->unkA6; - if (temp_v0 != 0) { - if (temp_v0 != 1) { - if (temp_v0 != 2) { - if (temp_v0 != 3) { - - } else { - func_80072428(arg0); - } - } else { - sp30 = temp_v1; - func_8008775C(arg0); - f32_step_up_towards(sp30 + 0x2C, 0x41600000, 0x3F000000); - func_8007415C(arg0, sp30, 0x3E800000, 0x3F400000, D_800EF0C8, 1, 0); - if (func_80073B00(arg0, sp30 + 0xA0, 0xFF, 0, 4, 0, 0) != 0) { - func_80072488(arg0); - } - } - } else { - func_80081080(arg0); + temp_v1 = &D_80165C18[objectIndex]; + temp_v0 = temp_v1->unk_0A6; + switch (temp_v0) { /* irregular */ + case 0: + break; + case 1: + func_80081080(objectIndex); + break; + case 2: + sp30 = temp_v1; + func_8008775C(objectIndex); + f32_step_up_towards(&sp30->unk_028[1], 14.0f, 0.5f); + func_8007415C(objectIndex, &sp30->unk_000, 0.25f, 0.75f, 0.025f, 1, 0); + if (func_80073B00(objectIndex, &sp30->unk_0A0, 0x000000FF, 0, 4, 0, 0) != 0) { + func_80072488(objectIndex); } + break; + case 3: + func_80072428(objectIndex); + break; } - func_8008BF18(arg0); + func_8008BF18(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800810F4.s") @@ -9630,11 +8381,7 @@ void func_80081208(void) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 792017ad9d422c2467bd42686f383a5c41f41c75 -? func_80072100(s32 *); /* extern */ -s32 func_8007223C(s32, ?); /* extern */ -? func_800722CC(s32, ?); /* extern */ -s32 func_80072320(s32, ?); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_8007542C(?); /* extern */ ? func_8007ED6C(s32); /* extern */ ? func_8007F5A8(s32); /* extern */ @@ -9651,366 +8398,276 @@ s32 func_80072320(s32, ?); /* extern */ ? func_8008A4CC(s32); /* extern */ extern s16 D_80165750; extern ? D_80165834; -extern ? D_80165C18; -extern s32 D_80183EA0; extern s32 D_8018C3F0; extern ? D_8018C5F0; void func_80081210(void) { - s16 temp_v0; - s32 *temp_s2_2; + Player *var_s3; + s32 *var_s1; + s32 *var_s2; + s32 *var_s2_2; + s32 *var_s2_4; + s32 *var_s2_5; s32 temp_s0; s32 temp_s0_2; s32 temp_s0_3; s32 temp_s0_4; s32 temp_s0_5; - s32 temp_s2; - s32 temp_s4; - s32 temp_s4_2; - s32 temp_s4_3; - s32 temp_s4_4; + s32 var_s2_3; + s32 var_s4; + s32 var_s4_2; + struct_80165C18_entry *temp_s1; + struct_80165C18_entry *temp_s1_2; u8 temp_t5; - void *temp_s1; - void *temp_s1_2; - s32 *phi_s2; - s32 phi_s4; - s32 *phi_s2_2; - s32 phi_s4_2; - s32 phi_v0; - Player *phi_s3; - s32 *phi_s1; - s32 phi_s4_3; - s32 phi_s2_3; - s32 *phi_s2_4; - s32 phi_s4_4; - s32 *phi_s2_5; D_80165834.unk0 = (u16) (D_80165834.unk0 + 0x100); D_80165834.unk2 = (u16) (D_80165834.unk2 + 0x200); - phi_s4 = 0; - phi_s4_4 = 0; - phi_s4_3 = 0; - if ((s32) D_80165750 > 0) { - phi_s2 = &D_80183EA0; + var_s4 = 0; + if (D_80165750 > 0) { + var_s2 = D_80183EA0; do { - temp_s0 = *phi_s2; - func_800722CC(temp_s0, 0x10); + temp_s0 = *var_s2; + func_800722CC(temp_s0, 0x00000010); func_8008A4CC(temp_s0); - temp_s4 = phi_s4 + 1; - phi_s2 += 4; - phi_s4 = temp_s4; - } while (temp_s4 < (s32) D_80165750); + var_s4 += 1; + var_s2 += 4; + } while (var_s4 < D_80165750); + var_s4 = 0; } func_8007F8D8(); - temp_v0 = D_80165750; - phi_s2_2 = &D_80183EA0; - phi_s4_2 = 0; - phi_v0 = (s32) temp_v0; - phi_s4_3 = 0; - if ((s32) temp_v0 > 0) { + var_s2_2 = D_80183EA0; + if (D_80165750 > 0) { do { - temp_s0_2 = *phi_s2_2; - temp_s1 = (temp_s0_2 * 0xE0) + &D_80165C18; - if (temp_s1->unkA6 != 0) { - temp_t5 = temp_s1->unkD5; + temp_s0_2 = *var_s2_2; + temp_s1 = &D_80165C18[temp_s0_2]; + if (temp_s1->unk_0A6 != 0) { + temp_t5 = (u8) temp_s1->unk_0D5; switch (temp_t5) { case 1: func_8007ED6C(temp_s0_2); -block_14: - phi_v0 = (s32) D_80165750; break; case 2: func_8007F5A8(temp_s0_2); - goto block_14; + break; case 3: func_8007FFC0(temp_s0_2); - goto block_14; + break; case 4: func_800801FC(temp_s0_2); - goto block_14; + break; case 6: func_80080408(temp_s0_2); - goto block_14; + break; case 5: func_800808CC(temp_s0_2); - goto block_14; + break; } } - temp_s4_2 = phi_s4_2 + 1; - phi_s2_2 += 4; - phi_s4_2 = temp_s4_2; - } while (temp_s4_2 < phi_v0); + var_s4 += 1; + var_s2_2 += 4; + } while (var_s4 < D_80165750); + var_s4 = 0; } - phi_s3 = gPlayerOne; + var_s3 = gPlayerOne; do { - phi_s3->boundingBoxCorners[0].unk_14 &= -4; - phi_s3->unk_046 &= 0xFFF9; - phi_s1 = &D_80183EA0; - phi_s2_3 = 0; - if ((s32) D_80165750 > 0) { + var_s3->boundingBoxCorners[0].unk_14 &= ~3; + var_s3->unk_046 &= 0xFFF9; + var_s1 = D_80183EA0; + var_s2_3 = 0; + if (D_80165750 > 0) { do { - temp_s0_3 = *phi_s1; - if ((phi_s3->unk_0BC & 0x80000000) == 0) { - func_80080B28(temp_s0_3, phi_s4_3); + temp_s0_3 = *var_s1; + if (!(var_s3->unk_0BC & 0x80000000)) { + func_80080B28(temp_s0_3, var_s4); } - if (func_8007223C(temp_s0_3, 0x20000) != 0) { - func_80080A14(temp_s0_3, phi_s3); + if (func_8007223C(temp_s0_3, 0x00020000) != 0) { + func_80080A14(temp_s0_3, var_s3); } - if (func_8007223C(temp_s0_3, 0x10000) != 0) { - func_80080A4C(temp_s0_3, phi_s4_3); + if (func_8007223C(temp_s0_3, 0x00010000) != 0) { + func_80080A4C(temp_s0_3, var_s4); } - temp_s2 = phi_s2_3 + 1; - phi_s1 += 4; - phi_s2_3 = temp_s2; - } while (temp_s2 < (s32) D_80165750); + var_s2_3 += 1; + var_s1 += 4; + } while (var_s2_3 < D_80165750); } - temp_s4_3 = phi_s4_3 + 1; - phi_s3 += 0xDD8; - phi_s4_3 = temp_s4_3; - } while (temp_s4_3 < 8); + var_s4 += 1; + var_s3 += 0xDD8; + } while (var_s4 < 8); func_8007542C(3); - if ((s32) D_80165750 > 0) { - phi_s2_4 = &D_80183EA0; + var_s4_2 = 0; + if (D_80165750 > 0) { + var_s2_4 = D_80183EA0; do { - temp_s0_4 = *phi_s2_4; - if (func_80072320(temp_s0_4, 0x20) != 0) { - func_800722CC(temp_s0_4, 0x20); + temp_s0_4 = *var_s2_4; + if (func_80072320(temp_s0_4, 0x00000020) != 0) { + func_800722CC(temp_s0_4, 0x00000020); func_80080FEC(temp_s0_4); } - temp_s4_4 = phi_s4_4 + 1; - phi_s2_4 += 4; - phi_s4_4 = temp_s4_4; - } while (temp_s4_4 < (s32) D_80165750); + var_s4_2 += 1; + var_s2_4 += 4; + } while (var_s4_2 < D_80165750); } - phi_s2_5 = &D_8018C3F0; + var_s2_5 = &D_8018C3F0; do { - temp_s0_5 = *phi_s2_5; + temp_s0_5 = *var_s2_5; if (temp_s0_5 != -1) { - temp_s1_2 = (temp_s0_5 * 0xE0) + &D_80165C18; - if (temp_s1_2->unkA6 != 0) { + temp_s1_2 = &D_80165C18[temp_s0_5]; + if (temp_s1_2->unk_0A6 != 0) { func_800810F4(temp_s0_5); - if (temp_s1_2->unkA6 == 0) { - func_80072100(phi_s2_5); + if (temp_s1_2->unk_0A6 == 0) { + func_80072100((s32) var_s2_5); } } } - temp_s2_2 = phi_s2_5 + 4; - phi_s2_5 = temp_s2_2; - } while (temp_s2_2 != &D_8018C5F0); + var_s2_5 += 4; + } while (var_s2_5 != &D_8018C5F0); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80081210.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800723A4(s32, ?); // extern -extern ? D_06013670; -extern f32 D_800EF0E4; -extern f64 D_800EF0E8; -extern f64 D_800EF0F0; -extern f64 D_800EF0F8; -extern f64 D_800EF100; -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s32 D_06013670; extern s32 D_8018C3F0; -void func_8008153C(s32 arg0) { +void func_8008153C(s32 objectIndex) { s32 sp70; - f32 temp_f30; - f32 temp_f6; - f64 temp_f20; - f64 temp_f22; - f64 temp_f24; - f64 temp_f26; + f32 var_f6; f64 temp_f4; + s32 *var_v0; s32 temp_a0; - s32 temp_s1; - s32 temp_s7; s32 temp_v0; - void *temp_s0; - void *temp_s5; - s32 *phi_v0; - f32 phi_f6; - s32 phi_s1; - s32 phi_s7; + s32 var_s1; + s32 var_s7; + struct_80165C18_entry *temp_s0; + struct_80165C18_entry *temp_s5; if (gPlayerCountSelection1 == 1) { sp70 = 8; } else { sp70 = 4; } - phi_s7 = 0; + var_s7 = 0; if (sp70 > 0) { - temp_f30 = D_800EF0E4; - temp_f26 = D_800EF0E8; - temp_f24 = D_800EF0F0; - temp_f22 = D_800EF0F8; - temp_f20 = D_800EF100; do { - phi_v0 = &D_8018C3F0; - phi_s1 = 0; + var_v0 = &D_8018C3F0; + var_s1 = 0; loop_6: - temp_a0 = *phi_v0; - temp_s0 = &D_80165C18 + (temp_a0 * 0xE0); - if (temp_s0->unkA6 == 0) { - temp_s5 = &D_80165C18 + (arg0 * 0xE0); + temp_a0 = *var_v0; + temp_s0 = &D_80165C18[temp_a0]; + if (temp_s0->unk_0A6 == 0) { + temp_s5 = &D_80165C18[objectIndex]; func_800723A4(temp_a0, 0); - temp_s0->unk60 = &D_06013670; - temp_s0->unk68 = &D_06013670; - temp_s0->unk0 = temp_f30; - temp_v0 = random_int(0xA); - temp_f6 = temp_v0; - phi_f6 = temp_f6; + temp_s0->unk_060 = &D_06013670; + temp_s0->unk_068 = &D_06013670; + temp_s0->unk_000 = 0.15f; + temp_v0 = random_int(0x000AU); + var_f6 = (f32) temp_v0; if (temp_v0 < 0) { - phi_f6 = temp_f6 + 4294967296.0f; + var_f6 += 4294967296.0f; } - temp_s0->unk3C = (phi_f6 * temp_f20) + temp_f22; - temp_f4 = (random_int(5) * temp_f24) + temp_f26; - temp_s0->unkB4 = (0x10000 / sp70) * phi_s1; - temp_s0->unk34 = temp_f4; - temp_s0->unk10 = temp_s5->unk10; - temp_s0->unk14 = temp_s5->unk14 - 13.0; - temp_s0->unk18 = temp_s5->unk18; + temp_s0->unk_03C = (f32) (((f64) var_f6 * 0.1) + 4.8); + temp_f4 = ((f64) (f32) random_int(5U) * 0.01) + 0.8; + temp_s0->unk_0B4 = (0x10000 / sp70) * var_s1; + temp_s0->unk_034 = (f32) temp_f4; + temp_s0->unk_010[0] = temp_s5->unk_010[0]; + temp_s0->unk_010[1] = (f32) ((f64) temp_s5->unk_010[1] - 13.0); + temp_s0->unk_010[2] = temp_s5->unk_010[2]; } else { - temp_s1 = phi_s1 + 1; - phi_v0 += 4; - phi_s1 = temp_s1; - if (temp_s1 != 0x80) { + var_s1 += 1; + var_v0 += 4; + if (var_s1 != 0x80) { goto loop_6; } } - temp_s7 = phi_s7 + 1; - phi_s7 = temp_s7; - } while (temp_s7 != sp70); + var_s7 += 1; + } while (var_s7 != sp70); } } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8008153C.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072428(s32); // extern -? func_80072488(s32); // extern -? func_80086F60(s32); // extern -s32 func_80087E08(s32, s32, ?, s32, s32, s32); // extern -? func_8008BF18(s32); // extern -extern ? D_80165C18; - -void func_80081790(s32 arg0) { - s16 temp_v1; - void *temp_v0; - - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v1 = temp_v0->unkA6; - if (temp_v1 != 0) { - if (temp_v1 != 1) { - if (temp_v1 != 2) { - return; - } - func_80072428(arg0); - func_80086F60(arg0); - // Duplicate return node #8. Try simplifying control flow for better match - return; +void func_80081790(s32 objectIndex) { + switch (D_80165C18[objectIndex].unk_0A6) { + case 0: + break; /* irregular */ + case 1: + if (func_80087E08(objectIndex, D_80165C18[objectIndex].unk_038[1], 0.3f, D_80165C18[objectIndex].unk_034, D_80165C18[objectIndex].unk_0B4, 0x00000032) != 0) { + func_80072488(objectIndex); } - if (func_80087E08(arg0, temp_v0->unk3C, 0x3E99999A, temp_v0->unk34, temp_v0->unkB4, 0x32) != 0) { - func_80072488(arg0); - } - func_8008BF18(arg0); + func_8008BF18(objectIndex); + break; + case 2: + func_80072428(objectIndex); + func_80086F60(objectIndex); + break; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80081790.s") -#endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_80072488(s32); // extern -? func_80073444(? *, ? *, ?, s32); // extern -? func_8008B80C(s32, ?, ?, ?); // extern -? func_8008B888(s32, ?, ?, ?); // extern -? func_8008B8BC(s32, ?, ?, ?); // extern -extern ? D_0600FC70; -extern ? D_0600FE70; -extern f32 D_800EF108; -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s32 D_0600FE70; -void func_80081848(s32 arg0) { - void *sp2C; - void *temp_v0; +void func_80081848(s32 objectIndex) { + struct_80165C18_entry *sp2C; + struct_80165C18_entry *temp_v0; - func_80073444(&D_0600FC70, &D_0600FE70, 0x20, 0x40); - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unkD2 = 0; + func_80073444(objectIndex, (s32 *) D_0600FC70, &D_0600FE70, 0x20U, (u16) 0x00000040); + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_0D2 = 0; sp2C = temp_v0; - temp_v0->unk0 = D_800EF108; - func_8008B80C(arg0, 0, 0, 0); - func_8008B888(arg0, 0, 0, 0); - func_8008B8BC(arg0, 0, 0, 0x8000); + temp_v0->unk_000 = 0.15f; + func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); + func_8008B888(objectIndex, 0U, 0U, 0U); + func_8008B8BC(objectIndex, 0U, 0U, 0x8000U); temp_v0->unkC8 = 6; - temp_v0->unk3C = 4.0f; - func_800721C0(arg0, 0x4000000); - func_80072488(arg0); + temp_v0->unk_03C = 4.0f; + func_800721C0(objectIndex, 0x04000000); + func_80072488(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80081848.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -s32 f32_step_up_towards(void *, ?, ?); /* extern */ -s32 f32_step_down_towards(void *, ?, ?); /* extern */ -? func_80086F60(s32); /* extern */ -? func_80086FD4(s32); /* extern */ -? func_800871AC(s32, ?); /* extern */ -? func_8008751C(s32); /* extern */ -? func_80087710(s32); /* extern */ -? func_80087D24(s32, ?, ?, ?); /* extern */ -extern ? D_80165C18; +#ifdef NEEDS_RODATA -void func_80081924(s32 arg0) { - void *sp24; - u16 temp_t8; - void *temp_v0; +extern f64 D_800EF138;// = 0.184; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_t8 = temp_v0->unkAE; - switch (temp_t8) { +void func_80081924(s32 objectIndex) { + switch (D_80165C18[objectIndex].unk_0AE) { case 1: - if (f32_step_up_towards(temp_v0 + 0x2C, 0x41100000, 0x3F333333) != 0) { - func_80086FD4(arg0); - return; + if (f32_step_up_towards(&D_80165C18[objectIndex].unk_028[1], 9.0f, 0.7f) != 0) { + func_80086FD4(objectIndex); } - default: - return; + break; case 2: - func_800871AC(arg0, 0xA); - return; + func_800871AC(objectIndex, 0x0000000A); + break; case 3: - if (f32_step_down_towards(temp_v0 + 0x2C, 0x40400000, 0x3F800000) != 0) { - func_80086F60(arg0); - return; + if (f32_step_down_towards(&D_80165C18[objectIndex].unk_028[1], 3.0f, 1.0f) != 0) { + func_80086F60(objectIndex); } - /* Duplicate return node #11. Try simplifying control flow for better match */ - return; + break; case 4: - func_80087D24(arg0, 0x40666666, 0x3E800000, 0); - return; + func_80087D24(objectIndex, 3.6f, 0.25f, 0.0f); + break; case 5: - func_80086F60(arg0); - return; + func_80086F60(objectIndex); + break; case 10: - temp_v0->unkB6 = temp_v0->unkB6 + 0x1000; - sp24 = temp_v0; - temp_v0->unk3C = temp_v0->unk3C - 0.184; - func_8008751C(arg0); - func_80087710(arg0); - if (temp_v0->unk8 <= -10.0) { - func_80086F60(arg0); + D_80165C18[objectIndex].unk_0B6 += 0x1000; + D_80165C18[objectIndex].unk_038[1] -= 0.184; + func_8008751C(objectIndex); + func_80087710(objectIndex); + if (D_80165C18[objectIndex].unk_004[1] <= -10.0) { + func_80086F60(objectIndex); } - /* Duplicate return node #11. Try simplifying control flow for better match */ - return; + break; + case 0: + default: + break; } } #else @@ -10018,124 +8675,100 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80081924.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80081924(s32); // extern -? func_8008B724(s32); // extern -? func_8008BF18(s32); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_8008B724(s32); /* extern */ extern ? D_80165CF5; -void func_80081A88(s32 arg0) { +void func_80081A88(s32 objectIndex) { u8 temp_v0; - temp_v0 = *(&D_80165CF5 + (arg0 * 0xE0)); - if (temp_v0 != 0) { - if (temp_v0 != 1) { - if (temp_v0 != 2) { - - } else { - func_80081924(arg0); - } - } else { - func_8008B724(arg0); - } + temp_v0 = *(&D_80165CF5 + (objectIndex * 0xE0)); + switch (temp_v0) { /* irregular */ + case 0: + break; + case 1: + func_8008B724(objectIndex); + break; + case 2: + func_80081924(objectIndex); + break; } - func_8008BF18(arg0); + func_8008BF18(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80081A88.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? func_800721C0(s32, ?); /* extern */ -? func_800721E8(s32, ?, s32); /* extern */ -? func_80072428(s32); /* extern */ -? func_80072488(s32); /* extern */ -? func_800726CC(s32, ?); /* extern */ -s32 func_80072E54(s32, ?, ?, ?, s32, s32); /* extern */ -? func_80073514(s32); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_8008153C(s32); /* extern */ ? func_80081848(s32, s32); /* extern */ -? func_80086EAC(s32, ?, ?); /* extern */ -? func_800C98B8(void *, void *, ?); /* extern */ -extern ? D_80165C18; -extern s8 D_8018D198; -extern s8 D_8018D1A8; -extern s8 D_8018D1B8; +extern ? D_8018D198; +extern ? D_8018D1A8; +extern ? D_8018D1B8; -void func_80081AFC(s32 arg0, s32 arg1) { - s8 *sp2C; +void func_80081AFC(s32 objectIndex, s32 arg1) { + ? *sp2C; s16 temp_v1; - s32 temp_a2; s32 temp_v0; - void *temp_s0; + struct_80165C18_entry *temp_s0; - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_v1 = temp_s0->unkA6; - temp_a2 = arg1; - if (temp_v1 >= 0xB) { - if (temp_v1 != 0x64) { - - } else if (temp_s0->unkAE == 0) { - arg1 = temp_a2; - func_800721E8(arg0, 0x200, temp_a2); - func_80072428(arg0); - if (arg1 != 1) { - if (arg1 != 2) { - if (arg1 != 3) { - - } else { - sp2C = &D_8018D1B8; - } - } else { - sp2C = &D_8018D1A8; - } - } else { + temp_s0 = &D_80165C18[objectIndex]; + temp_v1 = temp_s0->unk_0A6; + switch (temp_v1) { /* irregular */ + case 0x1: + func_80081848(objectIndex, arg1); + break; + case 0x2: + temp_v0 = temp_s0->unk_04C; + if (temp_v0 == 0) { + func_80086EAC(objectIndex, 2, 1); + func_80072488(objectIndex); + func_800721C0(objectIndex, 0x00000200); + } else { + temp_s0->unk_04C = temp_v0 - 1; + } + break; + case 0x3: + if (temp_s0->unk_0AE == 0) { + func_80086EAC(objectIndex, 2, 4); + func_8008153C(objectIndex); + func_80072488(objectIndex); + func_800C98B8(temp_s0->unk_004, &temp_s0->unk_038, 0x19018007U); + } + break; + case 0x4: + if (func_80072E54(objectIndex, 1, 6, 1, 2, 0) != 0) { + func_800726CC(objectIndex, 0x00000064); + } + break; + case 0xA: + func_80072E54(objectIndex, 1, 6, 1, 0, -1); + if (temp_s0->unk_0AE == 0) { + func_800726CC(objectIndex, 0x00000064); + } + break; + case 0x64: + if (temp_s0->unk_0AE == 0) { + func_800721E8(objectIndex, 0x00000200); + func_80072428(objectIndex); + switch (arg1) { /* switch 1; irregular */ + case 1: /* switch 1 */ sp2C = &D_8018D198; + break; + case 2: /* switch 1 */ + sp2C = &D_8018D1A8; + break; + case 3: /* switch 1 */ + sp2C = &D_8018D1B8; + break; } - sp2C[temp_s0->unkA4] = 0; - goto block_27; - } - } else { - switch (temp_v1) { - case 1: - func_80081848(arg0, temp_a2); -block_27: - break; - case 2: - temp_v0 = temp_s0->unk4C; - if (temp_v0 == 0) { - func_80086EAC(arg0, 2, 1); - func_80072488(arg0); - func_800721C0(arg0, 0x200); - } else { - temp_s0->unk4C = temp_v0 - 1; - } - goto block_27; - case 3: - if (temp_s0->unkAE == 0) { - func_80086EAC(arg0, 2, 4); - func_8008153C(arg0); - func_80072488(arg0); - func_800C98B8(temp_s0 + 4, temp_s0 + 0x38, 0x19018007); - goto block_27; - } - break; - case 4: - if (func_80072E54(arg0, 1, 6, 1, 2, 0) != 0) { - func_800726CC(arg0, 0x64); - } - goto block_27; - case 10: - func_80072E54(arg0, 1, 6, 1, 0, -1); - if (temp_s0->unkAE == 0) { - func_800726CC(arg0, 0x64); - } - goto block_27; + *(sp2C + temp_s0->unk_0A4) = 0; } + break; } - if (temp_s0->unkA6 >= 2) { - func_80073514(arg0); + if (temp_s0->unk_0A6 >= 2) { + func_80073514(objectIndex); } } #else @@ -10143,77 +8776,63 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80081AFC.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072180(); // extern -? func_800721E8(s32, ?); // extern -s32 func_8007223C(s32, ?); // extern -? func_800726CC(s32, ?); // extern -? func_80086EAC(s32, ?, ?); // extern -? func_80086F60(s32); // extern -s32 func_80088DA4(s32, Player *); // extern -? func_8008B7D4(s32, s32, s32, s32); // extern -? func_8008B80C(s32, ?, ?, ?); // extern -? func_800C9060(s32, ?); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_80072180(); /* extern */ +s32 func_80088DA4(s32, Player *); /* extern */ extern s32 D_8018D158; -void func_80081D34(s32 arg0) { - s32 temp_s2; +void func_80081D34(s32 objectIndex) { + Camera *var_s4; + Player *var_s1; + s32 var_s2; + s32 var_s5; + struct_80165C18_entry *temp_s0; + struct_80165C18_entry *temp_s0_2; u16 temp_v0; - void *temp_s0; - void *temp_s0_2; - Player *phi_s1; - s32 phi_s2; - void *phi_s4; - s32 phi_s5; - s32 phi_s5_2; - phi_s1 = gPlayerOne; - phi_s2 = 0; - phi_s4 = camera1; - phi_s5 = 0; - phi_s5_2 = 0; + var_s5 = 0; + var_s1 = gPlayerOne; + var_s4 = camera1; + var_s2 = 0; if (D_8018D158 > 0) { do { - if ((func_8007223C(arg0, 0x200) != 0) && ((phi_s1->unk_0BC & 0x80000000) == 0) && (func_80088DA4(arg0, phi_s1) != 0)) { - temp_v0 = phi_s1->unk_000; - if (((temp_v0 & 0x8000) != 0) && ((temp_v0 & 0x100) == 0)) { - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - phi_s5_2 = 1; - if (func_8007223C(arg0, 0x4000000) != 0) { + if ((func_8007223C(objectIndex, 0x00000200) != 0) && !(var_s1->unk_0BC & 0x80000000) && (func_80088DA4(objectIndex, var_s1) != 0)) { + temp_v0 = var_s1->unk_000; + if ((temp_v0 & 0x8000) && !(temp_v0 & 0x100)) { + var_s5 = 1; + temp_s0 = &D_80165C18[objectIndex]; + if (func_8007223C(objectIndex, 0x04000000) != 0) { func_80072180(); } - if ((phi_s1->unk_0BC & 0x200) != 0) { - func_800C9060(phi_s2 & 0xFF, 0x1900A046); + if (var_s1->unk_0BC & 0x200) { + func_800C9060(var_s2 & 0xFF, 0x1900A046U); } else { - phi_s1->unk_00C |= 2; + var_s1->unk_00C |= 2; } - temp_s0->unkC0 = phi_s4->unk26; - temp_s0->unk3C = (phi_s1->unk_094 / 2.0f) + 3.0; - temp_s0->unk34 = phi_s1->unk_094 + 1.0; - if (temp_s0->unk3C >= 5.0) { - temp_s0->unk3C = 5.0f; + temp_s0->unk_0C0 = (u16) var_s4->rot[1]; + temp_s0->unk_03C = (f32) ((f64) (var_s1->unk_094 / 2.0f) + 3.0); + temp_s0->unk_034 = (f32) ((f64) var_s1->unk_094 + 1.0); + if ((f64) temp_s0->unk_03C >= 5.0) { + temp_s0->unk_03C = 5.0f; } - if (temp_s0->unk34 >= 4.0) { - temp_s0->unk3C = 4.0f; + if ((f64) temp_s0->unk_034 >= 4.0) { + temp_s0->unk_03C = 4.0f; } } } - temp_s2 = phi_s2 + 1; - phi_s1 += 0xDD8; - phi_s2 = temp_s2; - phi_s4 += 0xB8; - phi_s5 = phi_s5_2; - } while (temp_s2 < D_8018D158); + var_s2 += 1; + var_s1 += 0xDD8; + var_s4 += 0xB8; + } while (var_s2 < D_8018D158); } - if (phi_s5 != 0) { - temp_s0_2 = (arg0 * 0xE0) + &D_80165C18; - func_800721E8(arg0, 0x200); - func_80086F60(arg0); - func_8008B7D4(arg0, temp_s0_2->unk4, temp_s0_2->unk8, temp_s0_2->unkC); - func_8008B80C(arg0, 0, 0, 0); - func_80086EAC(arg0, 2, 0xA); - func_800726CC(arg0, 0xA); + if (var_s5 != 0) { + temp_s0_2 = &D_80165C18[objectIndex]; + func_800721E8(objectIndex, 0x00000200); + func_80086F60(objectIndex); + func_8008B7D4(objectIndex, temp_s0_2->unk_004[0], temp_s0_2->unk_004[1], temp_s0_2->unk_004[2]); + func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); + func_80086EAC(objectIndex, 2, 0x000A); + func_800726CC(objectIndex, 0x0000000A); } } #else @@ -10221,89 +8840,71 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80081D34.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800723A4(?); // extern -extern ? D_800E6360; -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern f32 D_8018D01C; extern ? D_8018D198; extern ? D_8018D1A8; extern ? D_8018D1B8; +static ? D_800E6360; /* unable to generate initializer */ -void func_80081FF4(s32 arg0, s32 arg1) { +void func_80081FF4(s32 objectIndex, s32 arg1) { s32 sp2C; s16 sp28; ? *sp20; - void *sp18; - s16 temp_v0; - s16 temp_v1; - s32 temp_a0; - s8 *temp_v0_2; - void *temp_a3; - void *temp_v0_3; - ? *phi_a2; - s16 phi_v1; - s32 phi_a0; - s16 phi_v1_2; - s16 phi_v1_3; + struct_80165C18_entry *sp18; + ? *var_a2; + s16 var_v1; + s32 var_a0; + s8 *temp_v0; + struct_80165C18_entry *temp_a3; + void *temp_v0_2; - func_800723A4(0); - temp_a3 = (arg0 * 0xE0) + &D_80165C18; - temp_a3->unk4C = random_int(0x1E) + 5; - if (arg1 != 1) { - if (arg1 != 2) { - if (arg1 != 3) { - - } else { - sp28 = 0x39; - sp2C = 0xC; - phi_a2 = &D_8018D1B8; - goto block_7; - } - } else { - sp28 = 0x18; - sp2C = 0xB; - phi_a2 = &D_8018D1A8; - goto block_7; - } - } else { + func_800723A4(objectIndex, 0); + temp_a3 = &D_80165C18[objectIndex]; + temp_a3->unk_04C = random_int(0x001EU) + 5; + switch (arg1) { /* irregular */ + case 1: + var_a2 = &D_8018D198; sp28 = 0; sp2C = 8; - phi_a2 = &D_8018D198; block_7: - sp20 = phi_a2; + sp20 = var_a2; + break; + case 2: + var_a2 = &D_8018D1A8; + sp28 = 0x0018; + sp2C = 0x0000000B; + goto block_7; + case 3: + var_a2 = &D_8018D1B8; + sp28 = 0x0039; + sp2C = 0x0000000C; + goto block_7; } sp18 = temp_a3; - temp_v0 = random_int(sp2C & 0xFFFF); - phi_v1 = temp_v0; - phi_a0 = 0; - phi_v1_2 = temp_v0; + var_v1 = random_int(sp2C & 0xFFFF); + var_a0 = 0; if (sp2C > 0) { loop_9: - temp_v0_2 = phi_v1 + sp20; - temp_a0 = phi_a0 + 1; - phi_a0 = temp_a0; - phi_v1_2 = phi_v1; - if (*temp_v0_2 != 0) { - temp_v1 = phi_v1 + 1; - phi_v1_3 = temp_v1; - if (temp_v1 == sp2C) { - phi_v1_3 = 0; + temp_v0 = var_v1 + sp20; + var_a0 += 1; + if (*temp_v0 != 0) { + var_v1 += 1; + if (var_v1 == sp2C) { + var_v1 = 0; } - phi_v1 = phi_v1_3; - phi_v1_2 = phi_v1_3; - if (temp_a0 != sp2C) { + if (var_a0 != sp2C) { goto loop_9; } } else { - *temp_v0_2 = 1; - temp_a3->unkA4 = phi_v1; + *temp_v0 = 1; + temp_a3->unk_0A4 = var_v1; } } - temp_v0_3 = (sp28 * 2) + (phi_v1_2 * 6) + &D_800E6360; - temp_a3->unk10 = temp_v0_3->unk0 * D_8018D01C; - temp_a3->unk14 = temp_v0_3->unk2 - 9.0; - temp_a3->unk18 = temp_v0_3->unk4; + temp_v0_2 = (sp28 * 2) + (var_v1 * 6) + &D_800E6360; + temp_a3->unk_010[0] = (f32) temp_v0_2->unk0 * D_8018D01C; + temp_a3->unk_010[1] = (f32) ((f64) temp_v0_2->unk2 - 9.0); + temp_a3->unk_010[2] = (f32) temp_v0_2->unk4; } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80081FF4.s") @@ -10328,15 +8929,10 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800821AC.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80081790(s32); // extern -? func_80081FF4(s32, ?); // extern -? func_800821AC(s32, ?); // extern -s32 func_8008A8B0(?, ?); // extern -extern ? D_80165C18; -extern s32 D_80183EA0; -extern s32 D_80183F28; -extern s32 D_8018BFA8; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_80081790(s32); /* extern */ +? func_80081FF4(s32, ?); /* extern */ +? func_800821AC(s32, ?); /* extern */ extern s32 D_8018C3F0; extern ? D_8018C5F0; extern s32 D_8018D1C8; @@ -10345,155 +8941,132 @@ extern s32 D_8018D1D8; void func_800821FC(void) { s32 *sp30; - s32 *temp_v0; + s32 *var_s2; + s32 *var_s2_2; + s32 *var_s2_3; + s32 *var_v0; s32 temp_s0; s32 temp_s0_2; s32 temp_s0_3; s32 temp_s0_4; - s32 temp_s1; - s32 temp_s1_2; - s32 temp_s1_3; - s32 *phi_s2; - s32 phi_s1; - s32 *phi_s2_2; - s32 phi_s1_2; - s32 *phi_s2_3; - s32 phi_s1_3; - s32 *phi_v0; + s32 var_s1; - phi_s1 = 0; - phi_s1_3 = 0; + var_s1 = 0; if (D_8018D1C8 > 0) { - phi_s2 = &D_80183EA0; + var_s2 = D_80183EA0; do { - temp_s0 = *phi_s2; - if ((&D_80165C18 + (temp_s0 * 0xE0))->unkA6 == 0) { + temp_s0 = *var_s2; + if (D_80165C18[temp_s0].unk_0A6 == 0) { if (func_8008A8B0(8, 9) != 0) { func_80081FF4(temp_s0, 1); } } else { func_800821AC(temp_s0, 1); } - temp_s1 = phi_s1 + 1; - phi_s2 += 4; - phi_s1 = temp_s1; - } while (temp_s1 < D_8018D1C8); + var_s1 += 1; + var_s2 += 4; + } while (var_s1 < D_8018D1C8); + var_s1 = 0; } - phi_s1_2 = 0; - phi_s1_3 = 0; if (D_8018D1D0 > 0) { - phi_s2_2 = &D_80183F28; + var_s2_2 = D_80183F28; do { - temp_s0_2 = *phi_s2_2; - if ((&D_80165C18 + (temp_s0_2 * 0xE0))->unkA6 == 0) { - if (func_8008A8B0(0x10, 0x13) != 0) { + temp_s0_2 = *var_s2_2; + if (D_80165C18[temp_s0_2].unk_0A6 == 0) { + if (func_8008A8B0(0x0010, 0x0013) != 0) { func_80081FF4(temp_s0_2, 2); } } else { func_800821AC(temp_s0_2, 2); } - temp_s1_2 = phi_s1_2 + 1; - phi_s2_2 += 4; - phi_s1_2 = temp_s1_2; - } while (temp_s1_2 < D_8018D1D0); + var_s1 += 1; + var_s2_2 += 4; + } while (var_s1 < D_8018D1D0); + var_s1 = 0; } - phi_s2_3 = &D_8018BFA8; + var_s2_3 = D_8018BFA8; if (D_8018D1D8 > 0) { do { - temp_s0_3 = *phi_s2_3; - if ((&D_80165C18 + (temp_s0_3 * 0xE0))->unkA6 == 0) { - if (func_8008A8B0(0x11, 0x14) != 0) { + temp_s0_3 = *var_s2_3; + if (D_80165C18[temp_s0_3].unk_0A6 == 0) { + if (func_8008A8B0(0x0011, 0x0014) != 0) { func_80081FF4(temp_s0_3, 3); } } else { func_800821AC(temp_s0_3, 3); } - temp_s1_3 = phi_s1_3 + 1; - phi_s2_3 += 4; - phi_s1_3 = temp_s1_3; - } while (temp_s1_3 < D_8018D1D8); + var_s1 += 1; + var_s2_3 += 4; + } while (var_s1 < D_8018D1D8); } - phi_v0 = &D_8018C3F0; + var_v0 = &D_8018C3F0; do { - temp_s0_4 = *phi_v0; - if ((&D_80165C18 + (temp_s0_4 * 0xE0))->unkA6 != 0) { - sp30 = phi_v0; + temp_s0_4 = *var_v0; + if (D_80165C18[temp_s0_4].unk_0A6 != 0) { + sp30 = var_v0; func_80081790(temp_s0_4); } - temp_v0 = phi_v0 + 4; - phi_v0 = temp_v0; - } while (temp_v0 != &D_8018C5F0); + var_v0 += 4; + } while (var_v0 != &D_8018C5F0); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800821FC.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_80072488(s32); // extern -? func_80086EF0(s32); // extern -? func_8008B7D4(s32, f32, f32, f32); // extern -? func_8008B888(s32, ?, ?, ?); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern ? D_060169B0; extern ? D_06016B60; -extern ? D_800E633C; -extern f32 D_800EF16C; -extern f64 D_800EF170; -extern f64 D_800EF178; -extern f64 D_800EF180; -extern f64 D_800EF188; -extern f64 D_800EF190; -extern f64 D_800EF198; -extern ? D_80165C18; extern f32 D_8018D01C; +extern s32 gGamestate; +static ? D_800E6034; /* unable to generate initializer */ +static ? D_800E60F0; /* unable to generate initializer */ +static ? D_800E61B4; /* unable to generate initializer */ +static ? D_800E6280; /* unable to generate initializer */ +static s32 D_800E633C[4] = { (s32) &D_800E6034, (s32) &D_800E60F0, (s32) &D_800E61B4, (s32) &D_800E6280 }; -void func_8008241C(s32 arg0, s32 arg1) { +void func_8008241C(s32 objectIndex, s32 arg1) { s16 sp22; - s16 sp20; - f64 temp_f10; - f64 temp_f8; + u16 sp20; + f64 var_f10; + f64 var_f8; s32 temp_f4; s32 temp_v0; s32 temp_v0_2; - void *temp_s0; - f64 phi_f8; - f64 phi_f10; + struct_80165C18_entry *temp_s0; - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_s0->unkD8 = 1; - temp_s0->unk70 = &D_060169B0; - temp_s0->unk74 = &D_06016B60; - temp_s0->unkDD = 1; - temp_s0->unk0 = D_800EF16C; - temp_v0 = random_int(0xC8); - temp_f8 = temp_v0; - phi_f8 = temp_f8; + temp_s0 = &D_80165C18[objectIndex]; + temp_s0->unk_0D8 = 1; + temp_s0->unk_070 = (s32) &D_060169B0; + temp_s0->unk_074 = (s32) &D_06016B60; + temp_s0->unk_0DD = 1; + temp_s0->unk_000 = 0.2f; + temp_v0 = random_int(0x00C8U); + var_f8 = (f64) temp_v0; if (temp_v0 < 0) { - phi_f8 = temp_f8 + 4294967296.0; + var_f8 += 4294967296.0; } - sp22 = phi_f8 + -100.0; - sp20 = random_int(0x14); - temp_v0_2 = random_int(0xC8); - temp_f10 = temp_v0_2; - phi_f10 = temp_f10; + sp22 = (s16) (s32) (var_f8 + -100.0); + sp20 = random_int(0x0014U); + temp_v0_2 = random_int(0x00C8U); + var_f10 = (f64) temp_v0_2; if (temp_v0_2 < 0) { - phi_f10 = temp_f10 + 4294967296.0; + var_f10 += 4294967296.0; } - temp_f4 = phi_f10 + -100.0; - if (gGamestate == CREDITS_SEQUENCE) { - func_8008B7D4(arg0, sp22 + D_800EF170, sp20 + 60.0, temp_f4 + D_800EF178); - } else if (temp_s0->unkD5 != 0) { - func_8008B7D4(arg0, (sp22 + D_800EF180) * D_8018D01C, sp20 + 20.0, temp_f4 + D_800EF188); + temp_f4 = (s32) (var_f10 + -100.0); + if (gGamestate == 9) { + func_8008B7D4(objectIndex, (f32) ((f64) sp22 + -360.0), (f32) ((f64) (s16) sp20 + 60.0), (f32) ((f64) (s16) temp_f4 + -1300.0)); + } else if ((u8) temp_s0->unk_0D5 != 0) { + func_8008B7D4(objectIndex, (f32) (((f64) sp22 + 328.0) * (f64) D_8018D01C), (f32) ((f64) (s16) sp20 + 20.0), (f32) ((f64) (s16) temp_f4 + 2541.0)); } else { - func_8008B7D4(arg0, (sp22 + D_800EF190) * D_8018D01C, sp20 + 15.0, temp_f4 + D_800EF198); + func_8008B7D4(objectIndex, (f32) (((f64) sp22 + -985.0) * (f64) D_8018D01C), (f32) ((f64) (s16) sp20 + 15.0), (f32) ((f64) (s16) temp_f4 + 1200.0)); } - func_8008B888(arg0, 0, 0, 0); - temp_s0->unk34 = 1.0f; - func_80086EF0(arg0); - temp_s0->unk80 = *(&D_800E633C + ((arg1 % 4) * 4)); - func_800721C0(arg0, 0x800); - func_80072488(arg0); + func_8008B888(objectIndex, 0U, 0U, 0U); + temp_s0->unk_034 = 1.0f; + func_80086EF0(objectIndex); + temp_s0->unk_080 = D_800E633C[arg1 % 4]; + func_800721C0(objectIndex, 0x00000800); + func_80072488(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8008241C.s") @@ -10517,83 +9090,71 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80082714.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_8000D940(void *, void *, s32, ?, s32); // extern -? func_80040EC4(void *, void *); // extern -? func_800873F4(s32); // extern -? func_8008B78C(s32); // extern -? func_8008BF18(s32); // extern -s16 func_802B5224(void *, void *); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_800873F4(s32); /* extern */ +? func_8008B78C(s32); /* extern */ -void func_8008275C(s32 arg0) { - void *sp30; - void *sp2C; +void func_8008275C(s32 objectIndex) { + f32 *sp30; + f32 *sp2C; + f32 *temp_a0; + f32 *temp_a1; + struct_80165C18_entry *temp_s0; u8 temp_v0; - void *temp_a0; - void *temp_a1; - void *temp_s0; - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0 = temp_s0->unkDD; - if (temp_v0 != 1) { - if (temp_v0 != 2) { - - } else { - func_8008B78C(arg0); - temp_a0 = temp_s0 + 0x1C; - temp_a1 = temp_s0 + 4; - sp2C = temp_a1; - sp30 = temp_a0; - func_80040EC4(temp_a0, temp_a1); - func_8000D940(temp_s0 + 0x10, temp_s0 + 0xC6, temp_s0->unk34, 0, 0); - temp_s0->unk28 = 2.0 * temp_s0->unk28; - temp_s0->unk2C = temp_s0->unk2C * 2.5; - temp_s0->unk30 = 2.0 * temp_s0->unk30; - func_8008BF18(arg0); - temp_s0->unkC0 = func_802B5224(temp_a0, temp_a1); - } - } else { - func_8008B78C(arg0); - func_8008BF18(arg0); + temp_s0 = &D_80165C18[objectIndex]; + temp_v0 = (u8) temp_s0->unk_0DD; + switch (temp_v0) { /* irregular */ + case 1: + func_8008B78C(objectIndex); + func_8008BF18(objectIndex); + break; + case 2: + func_8008B78C(objectIndex); + temp_a0 = temp_s0->unk_01C; + temp_a1 = temp_s0->unk_004; + sp2C = temp_a1; + sp30 = temp_a0; + func_80040EC4(temp_a0, temp_a1); + func_8000D940(temp_s0->unk_010, (s16 *) &temp_s0->unk_0C6, temp_s0->unk_034, 0.0f, 0); + temp_s0->unk_028[0] = (f32) (2.0 * (f64) temp_s0->unk_028[0]); + temp_s0->unk_028[1] = (f32) ((f64) temp_s0->unk_028[1] * 2.5); + temp_s0->unk_028[2] = (f32) (2.0 * (f64) temp_s0->unk_028[2]); + func_8008BF18(objectIndex); + temp_s0->unk_0C0 = func_802B5224(temp_a0, temp_a1); + break; } - func_800873F4(arg0); + func_800873F4(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8008275C.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800722CC(s32, ?); // extern -s32 func_80072320(s32, ?); // extern -? func_80082714(s32, s32); // extern -? func_8008275C(s32); // extern -? func_800C98B8(void *, ? *, ?); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_80082714(s32, s32); /* extern */ +? func_8008275C(s32); /* extern */ extern s16 D_80165900; extern s8 D_80165908; extern s8 D_80165A90; -extern ? D_80165C18; -extern ? D_80183E40; -extern s32 D_80183F28; +extern f32 D_80183E40; extern s32 D_80183F2C; -extern s16 D_802876D2; +extern s32 gGamestate; void func_80082870(void) { s16 temp_v0; + s32 *var_s4; s32 temp_s0; - s32 temp_s3; - void *temp_s1; - s32 *phi_s4; - s32 phi_s3; + s32 var_s3; + struct_80165C18_entry *temp_s1; - phi_s4 = &D_80183F28; - phi_s3 = 0; + var_s4 = D_80183F28; + var_s3 = 0; do { - temp_s0 = *phi_s4; - temp_s1 = &D_80165C18 + (temp_s0 * 0xE0); - if (temp_s1->unkA6 != 0) { - func_80082714(temp_s0, phi_s3); + temp_s0 = *var_s4; + temp_s1 = &D_80165C18[temp_s0]; + if (temp_s1->unk_0A6 != 0) { + func_80082714(temp_s0, var_s3); func_8008275C(temp_s0); if (func_80072320(temp_s0, 2) != 0) { func_800722CC(temp_s0, 2); @@ -10602,26 +9163,25 @@ void func_80082870(void) { D_80183E40.unk0 = 0.0f; D_80183E40.unk4 = 0.0f; D_80183E40.unk8 = 0.0f; - if (gGamestate != CREDITS_SEQUENCE) { - func_800C98B8(temp_s1 + 4, &D_80183E40, 0x19017043); + if (gGamestate != 9) { + func_800C98B8(temp_s1->unk_004, &D_80183E40, 0x19017043U); } else if (D_802876D2 < 0x97) { - func_800C98B8(&D_80165C18 + (D_80183F2C * 0xE0) + 4, &D_80183E40, 0x19017043); + func_800C98B8(D_80165C18[D_80183F2C].unk_004, &D_80183E40, 0x19017043U); } } } } - temp_s3 = phi_s3 + 1; - phi_s4 += 4; - phi_s3 = temp_s3; - } while (temp_s3 != 0xA); + var_s3 += 1; + var_s4 += 4; + } while (var_s3 != 0xA); temp_v0 = D_80165900; if (temp_v0 != 0) { D_80165900 = temp_v0 - 1; } else { - if (gGamestate != CREDITS_SEQUENCE) { - D_80165900 = 0x3C; + if (gGamestate != 9) { + D_80165900 = 0x003C; } else { - D_80165900 = 0xF; + D_80165900 = 0x000F; } if ((D_80165908 != 0) && (D_80165A90 == 0)) { D_80165A90 = 1; @@ -10634,144 +9194,106 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80082870.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_80072488(s32); // extern -? func_80073444(? *, ? *, ?, s32); // extern -? func_80086EAC(s32, ?, ?); // extern -? func_8008B80C(s32, ?, ?, ?); // extern -? func_8008B8BC(s32, ?, ?, ?); // extern -extern ? D_0600D628; -extern ? D_0600D828; -extern f32 D_800EF1A0; -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s32 D_0600D628; +extern s32 D_0600D828; -void func_80082A4C(s32 arg0) { - void *temp_s1; +void func_80082A4C(s32 objectIndex) { + struct_80165C18_entry *temp_s1; - func_80073444(&D_0600D628, &D_0600D828, 0x40, 0x40); - temp_s1 = (arg0 * 0xE0) + &D_80165C18; - temp_s1->unkD2 = 0; - temp_s1->unk0 = D_800EF1A0; - func_80072488(arg0); + func_80073444(objectIndex, &D_0600D628, &D_0600D828, 0x40U, (u16) 0x00000040); + temp_s1 = &D_80165C18[objectIndex]; + temp_s1->unk_0D2 = 0; + temp_s1->unk_000 = 0.15f; + func_80072488(objectIndex); temp_s1->unkC8 = 1; - func_800721C0(arg0, 0x4000420); - func_80086EAC(arg0, 0, 1); - func_8008B80C(arg0, 0, 0, 0); - func_8008B8BC(arg0, 0, 0, 0x8000); - temp_s1->unk34 = 1.5f; - func_800721C0(arg0, 0x200); + func_800721C0(objectIndex, 0x04000420); + func_80086EAC(objectIndex, 0, 1); + func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); + func_8008B8BC(objectIndex, 0U, 0U, 0x8000U); + temp_s1->unk_034 = 1.5f; + func_800721C0(objectIndex, 0x00000200); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80082A4C.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072E54(s32, ?, ?, ?, s32, s32); // extern -? func_80073514(s32); // extern -? func_80082A4C(s32); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_80082A4C(s32); /* extern */ -void func_80082B34(s32 arg0, ? arg1) { - void *sp28; - s16 temp_v1; - s32 temp_t6; - void *temp_t0; - s32 phi_v1; +void func_80082B34(s32 objectIndex, s32 arg1) { + struct_80165C18_entry *sp28; + s16 var_v1; + struct_80165C18_entry *temp_t0; - temp_t6 = arg0 * 0xE0; - temp_t0 = temp_t6 + &D_80165C18; - temp_v1 = temp_t0->unkA6; - phi_v1 = temp_v1; - if (temp_v1 != 0) { - if (temp_v1 != 1) { - if (temp_v1 != 2) { - if (temp_v1 != 3) { - - } else { - sp28 = temp_t0; - func_80072E54(arg0, 4, 6, 1, 2, -1); - goto block_8; - } - } else { - sp28 = temp_t0; - func_80072E54(arg0, 0, 3, 1, 2, -1); - goto block_8; - } - } else { - sp28 = temp_t0; - func_80082A4C(arg0); + temp_t0 = &D_80165C18[objectIndex]; + var_v1 = temp_t0->unk_0A6; + switch (var_v1) { /* irregular */ + case 0: + break; + case 1: + sp28 = temp_t0; + func_80082A4C(objectIndex); block_8: - phi_v1 = (temp_t6 + &D_80165C18)->unkA6; - } + var_v1 = temp_t0->unk_0A6; + break; + case 2: + sp28 = temp_t0; + func_80072E54(objectIndex, 0, 3, 1, 2, -1); + goto block_8; + case 3: + sp28 = temp_t0; + func_80072E54(objectIndex, 4, 6, 1, 2, -1); + goto block_8; } - if (phi_v1 >= 2) { - func_80073514(arg0); + if (var_v1 >= 2) { + func_80073514(objectIndex); } } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80082B34.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -s32 func_8007223C(s32, ?); /* extern */ -? func_800726CC(s32, ?); /* extern */ -? func_80086FD4(s32); /* extern */ -? func_8008701C(s32, ?); /* extern */ -s32 func_80087104(s32, ?); /* extern */ -s32 func_8008789C(s32, ?); /* extern */ -s32 func_80087954(s32, ?); /* extern */ -? func_80088538(s32); /* extern */ -? func_8008BF18(s32); /* extern */ -extern ? D_80165C18; - -void func_80082C30(s32 arg0) { - void *sp2C; - s16 temp_t9; - void *temp_t8; - - temp_t8 = (arg0 * 0xE0) + &D_80165C18; - sp2C = temp_t8; - temp_t9 = temp_t8->unkAE; - switch (temp_t9) { +#ifdef NEEDS_RODATA +void func_80082C30(s32 objectIndex) { + switch (D_80165C18[objectIndex].unk_0AE) { case 1: - if (func_80087A0C(arg0, sp2C->unk10, sp2C->unk1C, sp2C->unk18, sp2C->unk24) != 0) { - func_800726CC(arg0, 3); - func_80086FD4(arg0); + if (func_80087A0C(objectIndex, D_80165C18[objectIndex].unk_010[0], D_80165C18[objectIndex].unk_01C[0], D_80165C18[objectIndex].unk_010[2], D_80165C18[objectIndex].unk_01C[2]) != 0) { + func_800726CC(objectIndex, 3); + func_80086FD4(objectIndex); } break; case 2: - if (func_80087104(arg0, 0x3C) != 0) { - sp2C->unk34 = 0.8f; - func_800726CC(arg0, 2); - func_80086FD4(arg0); + if (func_80087104(objectIndex, 0x003CU) != 0) { + D_80165C18[objectIndex].unk_034 = 0.8f; + func_800726CC(objectIndex, 2); + func_80086FD4(objectIndex); } break; case 3: - if (func_80087954(arg0, 0x3C) != 0) { - func_80086FD4(arg0); - func_800726CC(arg0, 3); + if (func_80087954(objectIndex, 0x0000003C) != 0) { + func_80086FD4(objectIndex); + func_800726CC(objectIndex, 3); } break; case 4: - if (func_80087104(arg0, 0x3C) != 0) { - func_800726CC(arg0, 2); - func_80086FD4(arg0); + if (func_80087104(objectIndex, 0x003CU) != 0) { + func_800726CC(objectIndex, 2); + func_80086FD4(objectIndex); } break; case 5: - if (func_8008789C(arg0, 0x3C) != 0) { - func_800726CC(arg0, 3); - func_8008701C(arg0, 2); + if (func_8008789C(objectIndex, 0x0000003C) != 0) { + func_800726CC(objectIndex, 3); + func_8008701C(objectIndex, 2); } break; } - func_8008BF18(arg0); - if (func_8007223C(arg0, 0x40000) != 0) { - func_80088538(arg0); - sp2C->unk8 = sp2C->unk44 + 2.5; + func_8008BF18(objectIndex); + if (func_8007223C(objectIndex, 0x00040000) != 0) { + func_80088538(objectIndex); + D_80165C18[objectIndex].unk_004[1] = (f32) (D_80165C18[objectIndex].unk_044 + 2.5); } } #else @@ -10793,67 +9315,63 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80082E18.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80082B34(s32, s32); // extern -? func_80082C30(s32); // extern -? func_80082E18(s32); // extern -? func_8008A6DC(s32, ?); // extern -extern ? D_80165C18; -extern s32 D_80183EA0; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_80082B34(s32, s32); /* extern */ +? func_80082C30(s32); /* extern */ +? func_80082E18(s32); /* extern */ void func_80082E5C(void) { + s32 *var_s2; s32 temp_s0; - s32 temp_s1; - s32 *phi_s2; - s32 phi_s1; + s32 var_s1; - phi_s2 = &D_80183EA0; - phi_s1 = 0; + var_s2 = D_80183EA0; + var_s1 = 0; do { - temp_s0 = *phi_s2; - if ((&D_80165C18 + (temp_s0 * 0xE0))->unkA6 != 0) { - func_80082B34(temp_s0, phi_s1); - func_8008A6DC(temp_s0, 0x43FA0000); + temp_s0 = *var_s2; + if (D_80165C18[temp_s0].unk_0A6 != 0) { + func_80082B34(temp_s0, var_s1); + func_8008A6DC(temp_s0, 500.0f); func_80082C30(temp_s0); func_80082E18(temp_s0); } - temp_s1 = phi_s1 + 1; - phi_s2 += 4; - phi_s1 = temp_s1; - } while (temp_s1 != 0xA); + var_s1 += 1; + var_s2 += 4; + } while (var_s1 != 0xA); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80082E5C.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072488(); // extern -? func_8008B7D4(s32, f32, f32, f32); // extern -? func_8008B80C(s32, ?, ?, ?); // extern -? func_8008B888(s32, ?, u16, ?); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +struct _struct_D_800E5DF4_0x8 { + /* 0x0 */ s16 unk0; /* inferred */ + /* 0x2 */ s16 unk2; /* inferred */ + /* 0x4 */ s16 unk4; /* inferred */ + /* 0x6 */ u16 unk6; /* inferred */ +}; /* size = 0x8 */ + extern ? D_06014794; extern ? D_06014798; -extern ? D_800E5DF4; -extern f32 D_800EF1BC; -extern ? D_80165C18; extern f32 D_8018D01C; +static struct _struct_D_800E5DF4_0x8 D_800E5DF4[0]; /* unable to generate initializer */ -void func_80082F1C(s32 arg0, s32 arg1) { - void *sp24; - void *temp_v0; - void *temp_v0_2; +void func_80082F1C(s32 objectIndex, s32 arg1) { + struct _struct_D_800E5DF4_0x8 *sp24; + struct _struct_D_800E5DF4_0x8 *temp_v0_2; + struct_80165C18_entry *temp_v0; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unk70 = &D_06014798; - temp_v0->unk74 = &D_06014794; - temp_v0->unk0 = D_800EF1BC; - func_80072488(); - temp_v0_2 = (arg1 * 8) + &D_800E5DF4; + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_070 = (s32) &D_06014798; + temp_v0->unk_074 = (s32) &D_06014794; + temp_v0->unk_000 = 0.027f; + func_80072488(objectIndex); + temp_v0_2 = &D_800E5DF4[arg1]; sp24 = temp_v0_2; - func_8008B7D4(arg0, temp_v0_2->unk0 * D_8018D01C, temp_v0_2->unk2, temp_v0_2->unk4); - func_8008B80C(arg0, 0, 0, 0); - func_8008B888(arg0, 0, temp_v0_2->unk6, 0); + func_8008B7D4(objectIndex, (f32) temp_v0_2->unk0 * D_8018D01C, (f32) temp_v0_2->unk2, (f32) temp_v0_2->unk4); + func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); + func_8008B888(objectIndex, 0U, temp_v0_2->unk6, 0U); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80082F1C.s") @@ -10881,115 +9399,88 @@ void func_80083060(s32 arg0) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80083018(s32, s32); // extern -? func_80083060(s32); // extern -extern ? D_80165C18; -extern s32 D_80183EA0; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_80083018(s32, s32); /* extern */ void func_80083080(void) { + s32 *var_s2; s32 temp_s0; - s32 temp_s1; - s32 *phi_s2; - s32 phi_s1; + s32 var_s1; - phi_s2 = &D_80183EA0; - phi_s1 = 0; + var_s2 = D_80183EA0; + var_s1 = 0; do { - temp_s0 = *phi_s2; - if ((&D_80165C18 + (temp_s0 * 0xE0))->unkA6 != 0) { - func_80083018(temp_s0, phi_s1); + temp_s0 = *var_s2; + if (D_80165C18[temp_s0].unk_0A6 != 0) { + func_80083018(temp_s0, var_s1); func_80083060(temp_s0); } - temp_s1 = phi_s1 + 1; - phi_s2 += 4; - phi_s1 = temp_s1; - } while (temp_s1 != 4); + var_s1 += 1; + var_s2 += 4; + } while (var_s1 != 4); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80083080.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_80072488(s32); // extern -? func_80073444(? *, ? *, ?, s32); // extern -? func_80086E70(s32); // extern -? func_8008B80C(s32, ?, ?, ?); // extern -? func_8008B8BC(s32, ?, ?, ?); // extern -extern ? D_06014908; -extern ? D_06014B08; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s32 D_06014908; +extern s32 D_06014B08; extern ? D_0D0060B0; -extern f32 D_800EF1C0; -extern f64 D_800EF1C8; -extern ? D_80165C18; -void func_8008311C(s32 arg0, s32 arg1) { - void *temp_s0; +void func_8008311C(s32 objectIndex, s32 arg1) { + struct_80165C18_entry *temp_s0; - func_80073444(&D_06014908, &D_06014B08, 0x40, 0x40); - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_s0->unk60 = &D_06014908; - temp_s0->unk64 = &D_06014B08; - temp_s0->unk74 = &D_0D0060B0; - temp_s0->unkD2 = 0; - temp_s0->unk0 = D_800EF1C0; - func_80072488(arg0); - func_8008B80C(arg0, 0, 0, 0); - func_8008B8BC(arg0, 0, 0, 0x8000); - temp_s0->unk34 = ((arg1 % 6) * D_800EF1C8) + 0.5; - func_80086E70(arg0); - func_800721C0(arg0, 0x4000600); + func_80073444(objectIndex, &D_06014908, &D_06014B08, 0x40U, (u16) 0x00000040); + temp_s0 = &D_80165C18[objectIndex]; + temp_s0->unk_060 = &D_06014908; + temp_s0->unk_064 = &D_06014B08; + temp_s0->unk_074 = (s32) &D_0D0060B0; + temp_s0->unk_0D2 = 0; + temp_s0->unk_000 = 0.2f; + func_80072488(objectIndex); + func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); + func_8008B8BC(objectIndex, 0U, 0U, 0x8000U); + temp_s0->unk_034 = (f32) (((f64) (arg1 % 6) * 0.1) + 0.5); + func_80086E70(objectIndex); + func_800721C0(objectIndex, 0x04000600); temp_s0->unkC8 = 2; } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8008311C.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -s32 func_8007223C(s32, ?); /* extern */ -? func_80086FD4(s32); /* extern */ -? func_8008701C(s32, ?); /* extern */ -s32 func_80087060(s32, ?); /* extern */ -? func_800871AC(s32, ?); /* extern */ -? func_8008861C(s32); /* extern */ -? func_8008BF18(s32); /* extern */ -extern ? D_80165C18; - -void func_80083248(s32 arg0) { - u16 temp_t8; - void *temp_s1; - - temp_s1 = (arg0 * 0xE0) + &D_80165C18; - temp_t8 = temp_s1->unkAE; - switch (temp_t8) { +#ifdef NEEDS_RODATA +void func_80083248(s32 objectIndex) { + switch (D_80165C18[objectIndex].unk_0AE) { + case 0: + break; case 1: - if (func_80087A0C(arg0, temp_s1->unk10, temp_s1->unk9C, temp_s1->unk18, temp_s1->unk9E) != 0) { - func_80086FD4(arg0); + if (func_80087A0C(objectIndex, D_80165C18[objectIndex].unk_010[0], D_80165C18[objectIndex].unk_09C, D_80165C18[objectIndex].unk_010[2], D_80165C18[objectIndex].unk_09E) != 0) { + func_80086FD4(objectIndex); } break; case 2: - func_800871AC(arg0, 0x3C); + func_800871AC(objectIndex, 0x0000003C); break; case 3: - if (func_80087A0C(arg0, temp_s1->unk9C, temp_s1->unk10, temp_s1->unk9E, temp_s1->unk18) != 0) { - func_80086FD4(arg0); + if (func_80087A0C(objectIndex, D_80165C18[objectIndex].unk_09C, D_80165C18[objectIndex].unk_010[0], D_80165C18[objectIndex].unk_09E, D_80165C18[objectIndex].unk_010[2]) != 0) { + func_80086FD4(objectIndex); } break; case 4: - if (func_80087060(arg0, 0x3C) != 0) { - func_8008701C(arg0, 1); + if (func_80087060(objectIndex, 0x0000003C) != 0) { + func_8008701C(objectIndex, 1); } break; } - func_8008BF18(arg0); - if (func_8007223C(arg0, 0x200000) != 0) { - if (func_8007223C(arg0, 0x400000) != 0) { - func_8008861C(arg0); + func_8008BF18(objectIndex); + if (func_8007223C(objectIndex, 0x00200000) != 0) { + if (func_8007223C(objectIndex, 0x00400000) != 0) { + func_8008861C(objectIndex); } - temp_s1->unk8 = temp_s1->unk44 + 6.0; + D_80165C18[objectIndex].unk_004[1] = D_80165C18[objectIndex].unk_044 + 6.0; } } #else @@ -10997,43 +9488,37 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80083248.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072D3C(?, ?, ?, s32); // extern -? func_8008311C(); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_8008311C(); /* extern */ extern ? D_0D0060B0; extern ? D_0D006130; -extern ? D_80165C18; -void func_800833D0(s32 arg0) { - void *sp20; +void func_800833D0(s32 objectIndex) { + struct_80165C18_entry *sp20; s16 temp_v0; - void *temp_v1; - void *phi_v1; + struct_80165C18_entry *var_v1; - temp_v1 = (arg0 * 0xE0) + &D_80165C18; - temp_v0 = temp_v1->unkA6; - phi_v1 = temp_v1; - if (temp_v0 != 0) { - if (temp_v0 != 1) { - if (temp_v0 != 2) { - - } else { - sp20 = temp_v1; - func_80072D3C(0, 1, 4, -1); - goto block_6; - } - } else { - sp20 = temp_v1; - func_8008311C(); + var_v1 = &D_80165C18[objectIndex]; + temp_v0 = var_v1->unk_0A6; + switch (temp_v0) { /* irregular */ + case 0: + break; + case 1: + sp20 = var_v1; + func_8008311C(); block_6: - phi_v1 = sp20; - } + var_v1 = sp20; + break; + case 2: + sp20 = var_v1; + func_80072D3C(objectIndex, 0, 1, 4, -1); + goto block_6; } - if (phi_v1->unkD2 == 0) { - phi_v1->unk74 = &D_0D0060B0; + if (var_v1->unk_0D2 == 0) { + var_v1->unk_074 = (s32) &D_0D0060B0; return; } - phi_v1->unk74 = &D_0D006130; + var_v1->unk_074 = (s32) &D_0D006130; } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800833D0.s") @@ -11085,44 +9570,36 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800834B8.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800723A4(?); // extern -extern ? D_06006D20; -extern ? D_06006F20; -extern f64 D_800EF1E8; -extern f64 D_800EF1F0; -extern f64 D_800EF1F8; -extern f64 D_800EF200; -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s32 D_06006D20; +extern s32 D_06006F20; -void func_80083538(s32 arg0, void *arg1, s32 arg2, s32 arg3) { - f32 temp_f6; +void func_80083538(s32 objectIndex, f32 *arg1, s32 arg2, s32 arg3) { + f32 var_f6; f64 temp_f16; s32 temp_v0; - void *temp_s0; - f32 phi_f6; + struct_80165C18_entry *temp_s0; - func_800723A4(0); - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_s0->unk64 = &D_06006F20; - temp_s0->unk6C = &D_06006F20; - temp_s0->unk60 = &D_06006D20; - temp_s0->unk68 = &D_06006D20; - temp_v0 = random_int(0x64); - temp_f6 = temp_v0; - phi_f6 = temp_f6; + func_800723A4(objectIndex, 0); + temp_s0 = &D_80165C18[objectIndex]; + temp_s0->unk_064 = &D_06006F20; + temp_s0->unk_06C = (s32) &D_06006F20; + temp_s0->unk_060 = &D_06006D20; + temp_s0->unk_068 = &D_06006D20; + temp_v0 = random_int(0x0064U); + var_f6 = (f32) temp_v0; if (temp_v0 < 0) { - phi_f6 = temp_f6 + 4294967296.0f; + var_f6 += 4294967296.0f; } - temp_s0->unk0 = (phi_f6 * D_800EF1E8) + D_800EF1F0; - temp_s0->unk3C = (random_int(0x14) * 0.5) + D_800EF1F8; - temp_f16 = random_int(0xA) * D_800EF200; - temp_s0->unkC0 = (arg2 << 0x10) / arg3; - temp_s0->unk34 = temp_f16 + 4.5; - temp_s0->unk10 = arg1->unk0; - temp_s0->unk14 = arg1->unk4; - temp_s0->unk18 = arg1->unk8; - temp_s0->unkA0 = random_int(0x4000) + 0x1000; + temp_s0->unk_000 = (f32) (((f64) var_f6 * 0.001) + 0.05); + temp_s0->unk_03C = (f32) (((f64) (f32) random_int(0x0014U) * 0.5) + 2.6); + temp_f16 = (f64) (f32) random_int(0x000AU) * 0.1; + temp_s0->unk_0C0 = (u16) ((s32) (arg2 << 0x10) / arg3); + temp_s0->unk_034 = (f32) (temp_f16 + 4.5); + temp_s0->unk_010[0] = arg1->unk0; + temp_s0->unk_010[1] = arg1->unk4; + temp_s0->unk_010[2] = arg1->unk8; + temp_s0->unk_0A0 = random_int(0x4000U) + 0x1000; } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80083538.s") @@ -11159,185 +9636,138 @@ loop_2: GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800836F0.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072428(s32); // extern -? func_80072488(s32); // extern -? func_80086F60(s32); // extern -s32 func_80087E08(s32, s32, ?, s32, s32, s32); // extern -? func_8008BF18(s32); // extern -extern ? D_80165C18; - -void func_8008379C(s32 arg0) { - s16 temp_v0; - void *temp_s0; - - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0 = temp_s0->unkA6; - if (temp_v0 != 0) { - if (temp_v0 != 1) { - if (temp_v0 != 2) { - - } else { - func_80086F60(arg0); - func_80072428(arg0); - } - } else if (func_80087E08(arg0, temp_s0->unk3C, 0x3F3D70A4, temp_s0->unk34, temp_s0->unkC0, 0x64) != 0) { - func_80072488(arg0); +void func_8008379C(s32 objectIndex) { + switch (D_80165C18[objectIndex].unk_0A6) { + case 0: + break; + case 1: + if (func_80087E08(objectIndex, D_80165C18[objectIndex].unk_038[1], 0.74f, D_80165C18[objectIndex].unk_034, D_80165C18[objectIndex].unk_0C0, 0x00000064) != 0) { + func_80072488(objectIndex); } + break; + case 2: + func_80086F60(objectIndex); + func_80072428(objectIndex); + break; } - func_8008BF18(arg0); - temp_s0->unkB6 = temp_s0->unkB6 + temp_s0->unkA0; + func_8008BF18(objectIndex); + D_80165C18[objectIndex].unk_0B6 += D_80165C18[objectIndex].unk_0A0; } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8008379C.s") -#endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_80072488(s32); // extern -? func_80073444(? *, ? *, ?, s32); // extern -? func_80086E70(s32); // extern -? func_8008B80C(s32, ?, ?, ?); // extern -extern ? D_06004B20; -extern ? D_06004D20; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s32 D_06004B20; +extern s32 D_06004D20; extern ? D_0D0061B0; -extern f32 D_800EF208; -extern ? D_80165C18; -void func_80083868(s32 arg0) { - void *temp_s0; +void func_80083868(s32 objectIndex) { + struct_80165C18_entry *temp_s0; - func_80073444(&D_06004B20, &D_06004D20, 0x40, 0x40); - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_s0->unk74 = &D_0D0061B0; - temp_s0->unkD2 = 0; - temp_s0->unk0 = D_800EF208; - func_80072488(arg0); - func_8008B80C(arg0, 0, 0, 0); - temp_s0->unkB2 = 0; - temp_s0->unkB4 = 0; - temp_s0->unkB6 = 0x8000; - temp_s0->unkA0 = random_int(0x2000) - 0x1000; - func_80086E70(arg0); - temp_s0->unk34 = 1.5f; - func_800721C0(arg0, 0x200); + func_80073444(objectIndex, &D_06004B20, &D_06004D20, 0x40U, (u16) 0x00000040); + temp_s0 = &D_80165C18[objectIndex]; + temp_s0->unk_074 = (s32) &D_0D0061B0; + temp_s0->unk_0D2 = 0; + temp_s0->unk_000 = 0.1f; + func_80072488(objectIndex); + func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); + temp_s0->unk_0B2 = 0; + temp_s0->unk_0B4 = 0; + temp_s0->unk_0B6 = 0x8000; + temp_s0->unk_0A0 = random_int(0x2000U) - 0x1000; + func_80086E70(objectIndex); + temp_s0->unk_034 = 1.5f; + func_800721C0(objectIndex, 0x00000200); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80083868.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -s32 f32_step_up_towards(void *, ?, ?); /* extern */ -? func_80073800(s32, ?); /* extern */ -? func_80073D0C(s32, void *, ?, ?, s32, s32, s32); /* extern */ -? func_80086FD4(s32); /* extern */ -? func_8008701C(s32, ?); /* extern */ -? func_800871AC(s32, ?); /* extern */ -? func_80087C48(s32, ?, ?, ?); /* extern */ -? func_80087D24(s32, ?, ?, ?); /* extern */ -? func_8008BF18(s32); /* extern */ -extern ? D_80165C18; - -void func_80083948(s32 arg0) { - u16 temp_t8; - void *temp_s1; - - temp_s1 = (arg0 * 0xE0) + &D_80165C18; - temp_t8 = temp_s1->unkAE; - switch (temp_t8) { +#ifdef NEEDS_RODATA +void func_80083948(s32 objectIndex) { + switch (D_80165C18[objectIndex].unk_0AE) { case 1: - func_80086FD4(arg0); + func_80086FD4(objectIndex); break; case 2: - func_800871AC(arg0, 0x14); + func_800871AC(objectIndex, 0x00000014); break; case 3: - func_8008701C(arg0, 1); + func_8008701C(objectIndex, 1); break; case 10: - func_80087C48(arg0, 0x41200000, 0x3F000000, 0xA); + func_80087C48(objectIndex, 10.0f, 0.5f, 0x0000000A); break; case 11: - func_80087D24(arg0, 0, 0x3E4CCCCD, 0xC0E00000); + func_80087D24(objectIndex, 0.0f, 0.2f, -7.0f); break; case 20: - if (f32_step_up_towards(temp_s1 + 0x2C, 0, 0x3E4CCCCD) != 0) { - func_80073800(arg0, 0); - func_8008701C(arg0, 1); + if (f32_step_up_towards(&D_80165C18[objectIndex].unk_028[1], 0.0f, 0.2f) != 0) { + func_80073800(objectIndex, 0); + func_8008701C(objectIndex, 1); } break; + case 0: + default: + break; } - func_8008BF18(arg0); - func_80073D0C(arg0, temp_s1 + 0xA0, -0x1000, 0x1000, 0x400, 1, -1); - temp_s1->unkB6 = temp_s1->unkA0 + 0x8000; + func_8008BF18(objectIndex); + func_80073D0C(objectIndex, &D_80165C18[objectIndex].unk_0A0, -0x00001000, 0x00001000, 0x00000400, 1, -1); + D_80165C18[objectIndex].unk_0B6 = D_80165C18[objectIndex].unk_0A0 + 0x8000; } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80083948.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80073514(s32, s32); // extern -? func_80083868(s16); // extern -? func_80083948(s32); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_80083868(s16); /* extern */ +? func_80083948(s32); /* extern */ -void func_80083A94(s32 arg0) { - void *sp18; - s16 temp_a1; - void *temp_v1; - s32 phi_a1; +void func_80083A94(s32 objectIndex) { + struct_80165C18_entry *sp18; + s16 var_a1; + struct_80165C18_entry *temp_v1; - temp_v1 = (arg0 * 0xE0) + &D_80165C18; - temp_a1 = temp_v1->unkA6; - phi_a1 = temp_a1; - if ((temp_a1 != 0) && (temp_a1 == 1)) { + temp_v1 = &D_80165C18[objectIndex]; + var_a1 = temp_v1->unk_0A6; + if ((var_a1 != 0) && (var_a1 == 1)) { sp18 = temp_v1; - func_80083868(temp_a1); - phi_a1 = temp_v1->unkA6; + func_80083868(var_a1); + var_a1 = temp_v1->unk_0A6; } - if (phi_a1 >= 2) { - func_80073514(arg0, phi_a1); + if (var_a1 >= 2) { + func_80073514(objectIndex); } - func_80083948(arg0); + func_80083948(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80083A94.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_80072488(s32); // extern -? func_80073444(? *, ? *, ?, s32); // extern -? func_8008B80C(s32, ?, ?, ?); // extern -extern ? D_06004B20; -extern ? D_06005D20; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s32 D_06004B20; +extern s32 D_06005D20; extern ? D_0D0060B0; -extern f32 D_800EF260; -extern ? D_80165C18; -void func_80083B0C(s32 arg0) { - void *sp2C; - void *temp_v0; +void func_80083B0C(s32 objectIndex) { + struct_80165C18_entry *sp2C; + struct_80165C18_entry *temp_v0; - func_80073444(&D_06004B20, &D_06005D20, 0x40, 0x40); - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unk74 = &D_0D0060B0; - temp_v0->unkD2 = 0; + func_80073444(objectIndex, &D_06004B20, &D_06005D20, 0x40U, (u16) 0x00000040); + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_074 = (s32) &D_0D0060B0; + temp_v0->unk_0D2 = 0; sp2C = temp_v0; - temp_v0->unk0 = D_800EF260; - func_80072488(arg0); - func_8008B80C(arg0, 0, 0, 0); - temp_v0->unkB2 = 0; - temp_v0->unkB4 = 0; - temp_v0->unkB6 = 0x8000; + temp_v0->unk_000 = 0.1f; + func_80072488(objectIndex); + func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); + temp_v0->unk_0B2 = 0; + temp_v0->unk_0B4 = 0; + temp_v0->unk_0B6 = 0x8000; temp_v0->unkC8 = 2; - temp_v0->unk34 = 1.5f; - func_800721C0(arg0, 0x4000210); + temp_v0->unk_034 = 1.5f; + func_800721C0(objectIndex, 0x04000210); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80083B0C.s") @@ -11348,234 +9778,177 @@ void func_80083BE4(s32 arg0) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? func_800721C0(s32, ?); /* extern */ -? func_800721E8(s32, ?); /* extern */ -? func_800722A4(s32, ?); /* extern */ -? func_80072488(s32); /* extern */ -? func_800726CC(s32, ?); /* extern */ -s32 func_8007278C(s32, ?); /* extern */ -? func_80073514(s32); /* extern */ -s32 func_80074118(s32, void *, ?, ?, f32, s32, s32); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_80083B0C(s32); /* extern */ -? func_80083BE4(s32); /* extern */ -extern ? D_80165C18; -void func_80083C04(s32 arg0) { +void func_80083C04(s32 objectIndex) { s16 temp_v1; - void *temp_s1; + struct_80165C18_entry *temp_s1; - temp_s1 = (arg0 * 0xE0) + &D_80165C18; - temp_v1 = temp_s1->unkA6; + temp_s1 = &D_80165C18[objectIndex]; + temp_v1 = temp_s1->unk_0A6; switch (temp_v1) { case 1: - func_80083B0C(arg0); -block_14: + func_80083B0C(objectIndex); break; case 2: - func_8007278C(arg0, 0x96); - goto block_14; + func_8007278C(objectIndex, 0x00000096); + break; case 10: - if (func_8007278C(arg0, 0x12C) != 0) { - func_800722A4(arg0, 2); + if (func_8007278C(objectIndex, 0x0000012C) != 0) { + func_800722A4(objectIndex, 2); } - goto block_14; + break; case 11: - if (func_8007278C(arg0, 0xA) != 0) { - func_800721C0(arg0, 0x10); - temp_s1->unk0 = 0.001f; + if (func_8007278C(objectIndex, 0x0000000A) != 0) { + func_800721C0(objectIndex, 0x00000010); + temp_s1->unk_000 = 0.001f; } - goto block_14; + break; case 12: - if (func_80074118(arg0, temp_s1, 0x3A83126F, 0x3DCCCCCD, 0.0025f, 0, 0) != 0) { - func_80072488(arg0); + if (func_80074118(objectIndex, &temp_s1->unk_000, 0.001f, 0.1f, 0.0025f, 0, 0) != 0) { + func_80072488(objectIndex); } - goto block_14; + break; case 13: - func_800726CC(arg0, 2); - func_800721E8(arg0, 0x1000); - goto block_14; + func_800726CC(objectIndex, 2); + func_800721E8(objectIndex, 0x00001000); + break; } - if (temp_s1->unkA6 >= 2) { - func_80073514(arg0); + if (temp_s1->unk_0A6 >= 2) { + func_80073514(objectIndex); } - func_80083BE4(arg0); + func_80083BE4(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80083C04.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072100(s32 *); // extern -? func_800721C0(s32, ?); // extern -? func_800721E8(s32, ?); // extern -s32 func_80072270(s32, ?); // extern -? func_800722CC(s32, ?); // extern -s32 func_80072320(s32, ?); // extern -? func_800726CC(s32, ?); // extern -? func_800836F0(void *); // extern -? func_8008379C(s32); // extern -? func_80083A94(s32); // extern -? func_80083C04(s32); // extern -? func_8008701C(s32, ?); // extern -s32 func_80089B50(s32); // extern -s32 func_8008A8B0(s16, s16); // extern -extern ? D_80165C18; -extern s32 D_80183EA0; -extern s32 D_80183F28; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_800836F0(f32 *); /* extern */ +? func_8008379C(s32); /* extern */ +? func_80083A94(s32); /* extern */ +? func_80083C04(s32); /* extern */ +s32 func_80089B50(s32); /* extern */ extern ? D_80183F74; extern s32 D_8018C3F0; extern ? D_8018C5F0; void func_80083D60(void) { - s32 *temp_s0; - s32 *temp_s3; + s32 *var_s0; + s32 *var_s3; + s32 *var_s4; s32 temp_a0; - s32 temp_s0_2; + s32 temp_s0; s32 temp_s2; + struct_80165C18_entry *temp_s1; + struct_80165C18_entry *temp_s1_2; u8 temp_v0; - void *temp_s1; - void *temp_s1_2; - s32 *phi_s0; - s32 *phi_s3; - s32 *phi_s4; - phi_s0 = &D_8018C3F0; + var_s0 = &D_8018C3F0; do { - temp_a0 = *phi_s0; + temp_a0 = *var_s0; if (temp_a0 != -1) { - temp_s1 = &D_80165C18 + (temp_a0 * 0xE0); - if (temp_s1->unkA6 != 0) { + temp_s1 = &D_80165C18[temp_a0]; + if (temp_s1->unk_0A6 != 0) { func_8008379C(temp_a0); - if (temp_s1->unkA6 == 0) { - func_80072100(phi_s0); + if (temp_s1->unk_0A6 == 0) { + func_80072100((s32) var_s0); } } } - temp_s0 = phi_s0 + 4; - phi_s0 = temp_s0; - } while (temp_s0 < &D_8018C5F0); - phi_s3 = &D_80183F28; - phi_s4 = &D_80183EA0; + var_s0 += 4; + } while ((u32) var_s0 < (u32) &D_8018C5F0); + var_s3 = D_80183F28; + var_s4 = D_80183EA0; do { - temp_s2 = *phi_s3; - temp_s0_2 = *phi_s4; + temp_s2 = *var_s3; + temp_s0 = *var_s4; func_80083A94(temp_s2); - func_80083C04(temp_s0_2); - if (func_80072270(temp_s0_2, 0x1000) != 0) { - temp_s1_2 = &D_80165C18 + (temp_s0_2 * 0xE0); - temp_v0 = temp_s1_2->unkD5; - if ((func_8008A8B0(temp_v0 - 1, temp_v0 + 1) != 0) && (func_80089B50(temp_s0_2) != 0)) { - func_800721C0(temp_s0_2, 0x1000); - func_800721E8(temp_s0_2, 0x10); - func_800726CC(temp_s0_2, 0xA); - func_8008701C(temp_s2, 0xA); - func_800836F0(temp_s1_2 + 4); + func_80083C04(temp_s0); + if (func_80072270(temp_s0, 0x00001000) != 0) { + temp_s1_2 = &D_80165C18[temp_s0]; + temp_v0 = (u8) temp_s1_2->unk_0D5; + if ((func_8008A8B0((s16) (temp_v0 - 1), (s16) (temp_v0 + 1)) != 0) && (func_80089B50(temp_s0) != 0)) { + func_800721C0(temp_s0, 0x00001000); + func_800721E8(temp_s0, 0x00000010); + func_800726CC(temp_s0, 0x0000000A); + func_8008701C(temp_s2, 0x0000000A); + func_800836F0(temp_s1_2->unk_004); } - } else if (func_80072320(temp_s0_2, 2) != 0) { - func_800722CC(temp_s0_2, 2); - func_8008701C(temp_s2, 0x14); + } else if (func_80072320(temp_s0, 2) != 0) { + func_800722CC(temp_s0, 2); + func_8008701C(temp_s2, 0x00000014); } - temp_s3 = phi_s3 + 4; - phi_s3 = temp_s3; - phi_s4 += 4; - } while (temp_s3 != &D_80183F74); + var_s3 += 4; + var_s4 += 4; + } while (var_s3 != &D_80183F74); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80083D60.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072428(s32); // extern -? func_80072488(s32); // extern -? func_80086F60(s32); // extern -s32 func_80087E08(s32, s32, ?, s32, s32, s32); // extern -? func_8008BF18(s32); // extern -extern ? D_80165C18; - -void func_80083F18(s32 arg0) { - s16 temp_v1; - void *temp_v0; - - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v1 = temp_v0->unkA6; - if (temp_v1 != 0) { - if (temp_v1 != 1) { - if (temp_v1 != 2) { - return; - } - func_80086F60(arg0); - func_80072428(arg0); - // Duplicate return node #8. Try simplifying control flow for better match - return; +void func_80083F18(s32 objectIndex) { + switch (D_80165C18[objectIndex].unk_0A6) { + case 0: + break; + case 1: + if (func_80087E08(objectIndex, D_80165C18[objectIndex].unk_038[1], 0.12f, D_80165C18[objectIndex].unk_034, D_80165C18[objectIndex].unk_0C0, 0x00000064) != 0) { + func_80072488(objectIndex); } - if (func_80087E08(arg0, temp_v0->unk3C, 0x3DF5C28F, temp_v0->unk34, temp_v0->unkC0, 0x64) != 0) { - func_80072488(arg0); - } - func_8008BF18(arg0); + func_8008BF18(objectIndex); + break; + case 2: + func_80086F60(objectIndex); + func_80072428(objectIndex); + break; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80083F18.s") -#endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800723A4(?); // extern -extern ? D_060068E8; -extern f64 D_800EF2A8; -extern f64 D_800EF2B0; -extern f64 D_800EF2B8; -extern f64 D_800EF2C0; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s32 D_060068E8; extern u16 D_801657A2; -extern ? D_80165C18; -void func_80083FD0(s32 arg0, s32 arg1, s16 arg2) { +void func_80083FD0(s32 objectIndex, s32 arg1, s16 playerId) { Player *sp20; - f32 temp_f16; - f32 temp_f8; - f64 temp_f10; + f32 var_f16; + f32 var_f8; + f64 var_f10; s32 temp_v0; s32 temp_v0_2; s32 temp_v0_3; - void *temp_s0; - f32 phi_f16; - f32 phi_f8; - f64 phi_f10; + struct_80165C18_entry *temp_s0; - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - sp20 = &gPlayerOne[arg2]; - temp_s0->unk92 = arg2; - func_800723A4(0); - temp_s0->unk60 = &D_060068E8; - temp_s0->unk68 = &D_060068E8; - temp_s0->unk0 = (random_int(0x1F4) * D_800EF2A8) + D_800EF2B0; - temp_v0 = random_int(0x32); - temp_f16 = temp_v0; - phi_f16 = temp_f16; + temp_s0 = &D_80165C18[objectIndex]; + sp20 = &gPlayerOne[playerId]; + temp_s0->unk_084[7] = playerId; + func_800723A4(objectIndex, 0); + temp_s0->unk_060 = &D_060068E8; + temp_s0->unk_068 = &D_060068E8; + temp_s0->unk_000 = (f32) (((f64) (f32) random_int(0x01F4U) * 0.0002) + 0.04); + temp_v0 = random_int(0x0032U); + var_f16 = (f32) temp_v0; if (temp_v0 < 0) { - phi_f16 = temp_f16 + 4294967296.0f; + var_f16 += 4294967296.0f; } - temp_s0->unk3C = (phi_f16 * D_800EF2B8) + 1.0; - temp_v0_2 = random_int(0xA); - temp_f8 = temp_v0_2; - phi_f8 = temp_f8; + temp_s0->unk_03C = (f32) (((f64) var_f16 * 0.05) + 1.0); + temp_v0_2 = random_int(0x000AU); + var_f8 = (f32) temp_v0_2; if (temp_v0_2 < 0) { - phi_f8 = temp_f8 + 4294967296.0f; + var_f8 += 4294967296.0f; } - temp_s0->unk34 = (phi_f8 * D_800EF2C0) + 1.0; - temp_s0->unkC0 = D_801657A2 * arg1; - temp_s0->unk10 = (random_int(0x14) + sp20->posX) - 10.0f; - temp_v0_3 = random_int(0xA); - temp_f10 = temp_v0_3; - phi_f10 = temp_f10; + temp_s0->unk_034 = (f32) (((f64) var_f8 * 0.1) + 1.0); + temp_s0->unk_0C0 = D_801657A2 * arg1; + temp_s0->unk_010[0] = ((f32) random_int(0x0014U) + sp20->pos[0]) - 10.0f; + temp_v0_3 = random_int(0x000AU); + var_f10 = (f64) temp_v0_3; if (temp_v0_3 < 0) { - phi_f10 = temp_f10 + 4294967296.0; + var_f10 += 4294967296.0; } - temp_s0->unk14 = phi_f10 + (sp20->posY - 10.0); - temp_s0->unk18 = (random_int(0x14) + sp20->posZ) - 10.0f; + temp_s0->unk_010[1] = (f32) (var_f10 + ((f64) sp20->pos[1] - 10.0)); + temp_s0->unk_010[2] = ((f32) random_int(0x0014U) + sp20->pos[2]) - 10.0f; } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80083FD0.s") @@ -11613,135 +9986,115 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8008421C.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800419F8(); // extern -? func_80072100(s32 *); // extern -? func_800722CC(s32, ?); // extern -s32 func_80072320(s32, ?); // extern -? func_80083F18(s32); // extern -? func_8008421C(s32, s32); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_80083F18(s32); /* extern */ +? func_8008421C(s32, s32); /* extern */ extern ? D_8016582C; extern ? D_80165834; -extern ? D_80165C18; extern s32 D_80183DB8; extern s32 D_8018C3F0; extern ? D_8018C5F0; void func_800842C8(void) { - s32 *temp_s1_2; + s32 *var_s1_2; + s32 *var_s2; s32 temp_s0; s32 temp_s0_2; - s32 temp_s1; - void *temp_s2; - s32 *phi_s2; - s32 phi_s1; - s32 *phi_s1_2; + s32 var_s1; + struct_80165C18_entry *temp_s2; - D_80165834.unk0 = D_80165834.unk0 + 0x200; - D_80165834.unk2 = D_80165834.unk2 + 0x400; + D_80165834.unk0 = (u16) (D_80165834.unk0 + 0x200); + D_80165834.unk2 = (u16) (D_80165834.unk2 + 0x400); func_800419F8(); - D_8016582C.unk0 = D_8016582C.unk0 + 0x2000; - D_8016582C.unk2 = D_8016582C.unk2 + 0x1000; - D_8016582C.unk4 = D_8016582C.unk4 + 0x1800; - phi_s1 = 0; + D_8016582C.unk0 = (u16) (D_8016582C.unk0 + 0x2000); + D_8016582C.unk2 = (u16) (D_8016582C.unk2 + 0x1000); + D_8016582C.unk4 = (u16) (D_8016582C.unk4 + 0x1800); + var_s1 = 0; if (gPlayerCountSelection1 > 0) { - phi_s2 = &D_80183DB8; + var_s2 = &D_80183DB8; do { - temp_s0 = *phi_s2; - if (func_80072320(temp_s0, 0x20) != 0) { - func_800722CC(temp_s0, 0x20); - func_8008421C(temp_s0, phi_s1); + temp_s0 = *var_s2; + if (func_80072320(temp_s0, 0x00000020) != 0) { + func_800722CC(temp_s0, 0x00000020); + func_8008421C(temp_s0, var_s1); } - temp_s1 = phi_s1 + 1; - phi_s2 += 4; - phi_s1 = temp_s1; - } while (temp_s1 < gPlayerCountSelection1); + var_s1 += 1; + var_s2 += 4; + } while (var_s1 < gPlayerCountSelection1); } - phi_s1_2 = &D_8018C3F0; + var_s1_2 = &D_8018C3F0; do { - temp_s0_2 = *phi_s1_2; + temp_s0_2 = *var_s1_2; if (temp_s0_2 != -1) { - temp_s2 = &D_80165C18 + (temp_s0_2 * 0xE0); - if (temp_s2->unkA6 != 0) { + temp_s2 = &D_80165C18[temp_s0_2]; + if (temp_s2->unk_0A6 != 0) { func_80083F18(temp_s0_2); - if (temp_s2->unkA6 == 0) { - func_80072100(phi_s1_2); + if (temp_s2->unk_0A6 == 0) { + func_80072100((s32) var_s1_2); } } } - temp_s1_2 = phi_s1_2 + 4; - phi_s1_2 = temp_s1_2; - } while (temp_s1_2 != &D_8018C5F0); + var_s1_2 += 4; + } while (var_s1_2 != &D_8018C5F0); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800842C8.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s16 func_80004EAC(? *, ?); // extern -? func_800721C0(s32, ?); // extern -? func_80072488(s32); // extern -? func_80086EF0(s32); // extern -? func_8008B7D4(f32, ?, ?); // extern -? func_8008B888(s32, ?, ?, ?); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +s16 func_80004EAC(? *, ?); /* extern */ extern ? D_06008EB0; extern ? D_06009AC8; -extern s32 D_800E672C; -extern f32 D_800EF2C8; -extern f64 D_800EF2D0; -extern ? D_80165C18; extern f32 D_8018D01C; +static ? D_800E659C; /* unable to generate initializer */ +static ? D_800E6668; /* unable to generate initializer */ +static s32 D_800E672C[2] = { (s32) &D_800E659C, (s32) &D_800E6668 }; -void func_80084430(s32 arg0, ? arg1) { - void *temp_s0; +void func_80084430(s32 objectIndex, s32 arg1) { + struct_80165C18_entry *temp_s0; - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_s0->unkD8 = 0; - temp_s0->unk70 = &D_06008EB0; - temp_s0->unk74 = &D_06009AC8; - temp_s0->unkC8 = 0xC; + temp_s0 = &D_80165C18[objectIndex]; + temp_s0->unk_0D8 = 0; + temp_s0->unk_070 = (s32) &D_06008EB0; + temp_s0->unk_074 = (s32) &D_06009AC8; + temp_s0->unkC8 = 0x000C; temp_s0->unk9C = 1; - temp_s0->unk0 = D_800EF2C8; - func_8008B7D4(D_8018D01C * D_800EF2D0, 0x40000000, 0xC42C8000); - func_8008B888(arg0, 0, 0, 0); - temp_s0->unkDD = 1; - func_80086EF0(arg0); - temp_s0->unk80 = D_800E672C; - func_800721C0(arg0, 0x4000800); - temp_s0->unkA4 = func_80004EAC(&D_06009AC8, 0); - func_80072488(arg0); + temp_s0->unk_000 = 0.2f; + func_8008B7D4(objectIndex, (f32) ((f64) D_8018D01C * -383.0), 2.0f, -690.0f); + func_8008B888(objectIndex, 0U, 0U, 0U); + temp_s0->unk_0DD = 1; + func_80086EF0(objectIndex); + temp_s0->unk_080 = *D_800E672C; + func_800721C0(objectIndex, 0x04000800); + temp_s0->unk_0A4 = func_80004EAC(&D_06009AC8, 0); + func_80072488(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80084430.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072E54(?, s16, ?, s32, s32); // extern -? func_80084430(s32); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_80084430(); /* extern */ -void func_8008453C(s32 arg0) { +void func_8008453C(s32 objectIndex) { s16 temp_v0; - void *temp_v1; + struct_80165C18_entry *temp_v1; - temp_v1 = (arg0 * 0xE0) + &D_80165C18; - temp_v0 = temp_v1->unkA6; - if (temp_v0 != 0) { - if (temp_v0 != 1) { - if (temp_v0 != 2) { - return; - } - func_80072E54(0, temp_v1->unkA4, 1, 0, -1); - // Duplicate return node #7. Try simplifying control flow for better match - return; - } + temp_v1 = &D_80165C18[objectIndex]; + temp_v0 = temp_v1->unk_0A6; + switch (temp_v0) { /* irregular */ + case 1: if (gPlayerCountSelection1 == 1) { - func_80084430(1); + func_80084430(); return; } - // Duplicate return node #7. Try simplifying control flow for better match + case 0: + return; + case 2: + func_80072E54(objectIndex, 0, (s32) temp_v1->unk_0A4, 1, 0, -1); + break; } } #else @@ -11749,201 +10102,186 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8008453C.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc s16 func_80004EAC(? *, ?); /* extern */ -? func_800721C0(s32, ?); /* extern */ -? func_800722A4(s32, ?); /* extern */ -? func_80072488(s32); /* extern */ -? func_80086EF0(s32); /* extern */ -? func_8008B7D4(s32, f32, ?, ?); /* extern */ -? func_8008B888(s32, ?, s32, ?); /* extern */ -s32 random_int(?); /* extern */ extern ? D_06008EB0; extern ? D_06009AC8; -extern ? D_80165C18; +extern f32 D_8018D01C; +extern s32 gGamestate; -void func_800845C8(s32 arg0, s32 arg1) { - void *temp_s0; - f32 phi_f18; - s32 phi_v1; - u16 phi_t0; +void func_800845C8(s32 objectIndex, s32 arg1) { + f32 var_f18; + struct_80165C18_entry *temp_s0; + u16 var_t0; - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_s0->unkD8 = 0; - temp_s0->unk70 = &D_06008EB0; - temp_s0->unk74 = &D_06009AC8; + temp_s0 = &D_80165C18[objectIndex]; + temp_s0->unk_0D8 = 0; + temp_s0->unk_070 = (s32) &D_06008EB0; + temp_s0->unk_074 = (s32) &D_06009AC8; temp_s0->unkC8 = 4; temp_s0->unk9C = 2; - temp_s0->unk4C = random_int(0x12C); - func_800721C0(arg0, 0x4000220); - phi_v1 = arg1; + temp_s0->unk_04C = random_int(0x012CU); + func_800721C0(objectIndex, 0x04000220); if ((arg1 > 0) && (arg1 < 9)) { if ((arg1 == 1) || (arg1 == 2)) { - func_8008B7D4(arg0, D_8018D01C * -2960.0, 0xC2A00000, 0x44BE2000); - temp_s0->unkC6 = 0x150; - phi_f18 = 100.0f; + func_8008B7D4(objectIndex, (f32) ((f64) D_8018D01C * -2960.0), -80.0f, 1521.0f); + var_f18 = 100.0f; + temp_s0->unkC6 = 0x0150U; goto block_14; } if ((arg1 == 3) || (arg1 == 4)) { - func_8008B7D4(arg0, D_8018D01C * -2490.0, 0xC2A00000, 0x44C98000); - temp_s0->unkC6 = 0x100; - phi_f18 = 80.0f; + func_8008B7D4(objectIndex, (f32) ((f64) D_8018D01C * -2490.0), -80.0f, 1612.0f); + var_f18 = 80.0f; + temp_s0->unkC6 = 0x0100U; goto block_14; } if ((arg1 == 5) || (arg1 == 6)) { - func_8008B7D4(arg0, D_8018D01C * -2098.0, 0xC2A00000, 0x44CB0000); - temp_s0->unkC6 = 0xFF00; - phi_f18 = 80.0f; + func_8008B7D4(objectIndex, (f32) ((f64) D_8018D01C * -2098.0), -80.0f, 1624.0f); + var_f18 = 80.0f; + temp_s0->unkC6 = 0xFF00U; goto block_14; } if ((arg1 == 7) || (arg1 == 8)) { - func_8008B7D4(arg0, D_8018D01C * -2080.0, 0xC2A00000, 0x44926000); - temp_s0->unkC6 = 0x150; - phi_f18 = 80.0f; + func_8008B7D4(objectIndex, (f32) ((f64) D_8018D01C * -2080.0), -80.0f, 1171.0f); + var_f18 = 80.0f; + temp_s0->unkC6 = 0x0150U; block_14: - temp_s0->unk20 = phi_f18; - phi_v1 = arg1; + temp_s0->unk_01C[1] = var_f18; } - temp_s0->unkC4 = phi_v1 << 0xF; - temp_s0->unk44 = -80.0f; - temp_s0->unkDD = 2; - temp_s0->unk0 = 0.08f; - func_800722A4(arg0, 8); - } else if ((arg1 >= 9) && (arg1 < 0xF)) { - switch (arg1) { + temp_s0->unkC4 = (s16) (arg1 << 0xF); + temp_s0->unk_044 = -0x3D600000; + temp_s0->unk_0DD = 2; + temp_s0->unk_000 = 0.08f; + func_800722A4(objectIndex, 8); + } else { + switch (arg1) { /* irregular */ case 9: - if (gGamestate != CREDITS_SEQUENCE) { - func_8008B7D4(arg0, D_8018D01C * 146.0, 0, 0xC3BE0000); + if (gGamestate != 9) { + func_8008B7D4(objectIndex, (f32) ((f64) D_8018D01C * 146.0), 0.0f, -380.0f); } else { - func_8008B7D4(arg0, D_8018D01C * 380.0, 0, 0xC405C000); - temp_s0->unk0 = 0.15f; + func_8008B7D4(objectIndex, (f32) ((f64) D_8018D01C * 380.0), 0.0f, -535.0f); + temp_s0->unk_000 = 0.15f; } - temp_s0->unkC6 = 0x9000; + temp_s0->unkC6 = 0x9000U; if (gIsMirrorMode != 0) { - temp_s0->unkC6 = 0x5000; + temp_s0->unkC6 = 0x5000U; } - temp_s0->unkDD = 3; + temp_s0->unk_0DD = 3; + default: +block_37: + func_8008B888(objectIndex, 0U, (temp_s0->unkC6 + 0x8000) & 0xFFFF, 0U); + temp_s0->unk_044 = 0x40A00000; + temp_s0->unk_000 = 0.04f; + func_800722A4(objectIndex, 0x00000014); break; case 10: - func_8008B7D4(arg0, D_8018D01C * 380.0, 0, 0xC43F8000); - temp_s0->unkC6 = 0x5000; + func_8008B7D4(objectIndex, (f32) ((f64) D_8018D01C * 380.0), 0.0f, -766.0f); + temp_s0->unkC6 = 0x5000U; if (gIsMirrorMode != 0) { - temp_s0->unkC6 = 0xD000; + temp_s0->unkC6 = 0xD000U; } - temp_s0->unkDD = 4; - break; + temp_s0->unk_0DD = 4; + goto block_37; case 11: - func_8008B7D4(arg0, D_8018D01C * -2300.0, 0, 0xC3520000); - temp_s0->unkC6 = 0xC000; - temp_s0->unkDD = 6; + func_8008B7D4(objectIndex, (f32) ((f64) D_8018D01C * -2300.0), 0.0f, -210.0f); + temp_s0->unkC6 = 0xC000U; + temp_s0->unk_0DD = 6; if (gIsMirrorMode != 0) { - temp_s0->unkC6 = 0x14000; + temp_s0->unkC6 = 0x14000U; } - break; + goto block_37; case 12: - func_8008B7D4(arg0, D_8018D01C * -2500.0, 0, 0xC37A0000); - temp_s0->unkC6 = 0x4000; - temp_s0->unkDD = 6; - phi_t0 = 0xC000; + func_8008B7D4(objectIndex, (f32) ((f64) D_8018D01C * -2500.0), 0.0f, -250.0f); + temp_s0->unkC6 = 0x4000U; + temp_s0->unk_0DD = 6; + var_t0 = 0xC000; if (gIsMirrorMode != 0) { block_36: - temp_s0->unkC6 = phi_t0; + temp_s0->unkC6 = var_t0; } - break; + goto block_37; case 13: - func_8008B7D4(arg0, D_8018D01C * -535.0, 0, 0x445AC000); - temp_s0->unkC6 = 0x8000; - temp_s0->unkDD = 6; + func_8008B7D4(objectIndex, (f32) ((f64) D_8018D01C * -535.0), 0.0f, 875.0f); + temp_s0->unkC6 = 0x8000U; + temp_s0->unk_0DD = 6; if (gIsMirrorMode != 0) { - temp_s0->unkC6 = 0x4000; + temp_s0->unkC6 = 0x4000U; } - break; + goto block_37; case 14: - func_8008B7D4(arg0, D_8018D01C * -250.0, 0, 0x446E4000); - temp_s0->unkC6 = 0x9000; - temp_s0->unkDD = 6; - phi_t0 = 0x5000; + func_8008B7D4(objectIndex, (f32) ((f64) D_8018D01C * -250.0), 0.0f, 953.0f); + temp_s0->unkC6 = 0x9000U; + temp_s0->unk_0DD = 6; + var_t0 = 0x5000; if (gIsMirrorMode != 0) { goto block_36; } - break; + goto block_37; } - func_8008B888(arg0, 0, (temp_s0->unkC6 + 0x8000) & 0xFFFF, 0); - temp_s0->unk44 = 5.0f; - temp_s0->unk0 = 0.04f; - func_800722A4(arg0, 0x14); } - func_80086EF0(arg0); - temp_s0->unk34 = 0.0f; - temp_s0->unkA4 = func_80004EAC(&D_06009AC8, 0); - func_80072488(arg0); + func_80086EF0(objectIndex); + temp_s0->unk_034 = 0.0f; + temp_s0->unk_0A4 = func_80004EAC(&D_06009AC8, 0); + func_80072488(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800845C8.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? func_800722A4(s32, ?); /* extern */ -? func_800722CC(s32, ?); /* extern */ -s32 func_80072320(s32, ?); /* extern */ -s32 func_80072354(s32, ?); /* extern */ -? func_80072488(s32); /* extern */ -? func_80072E54(s32, ?, s16, s16, s32, s32); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_800845C8(s32); /* extern */ -? func_800C98B8(void *, void *, ?); /* extern */ -s32 random_int(?); /* extern */ -extern ? D_80165C18; -void func_80084B7C(s32 arg0) { +void func_80084B7C(s32 objectIndex) { s16 temp_v0; s16 temp_v0_2; + struct_80165C18_entry *temp_s0; u16 temp_t8; - void *temp_s0; - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_t8 = temp_s0->unkA6; + temp_s0 = &D_80165C18[objectIndex]; + temp_t8 = (u16) temp_s0->unk_0A6; switch (temp_t8) { + case 0: + break; case 1: - func_800845C8(arg0); + func_800845C8(objectIndex); break; case 2: - func_80072E54(arg0, 0, temp_s0->unkA4, temp_s0->unk9C, 0, -1); - if (func_80072354(arg0, 0x20) != 0) { - temp_v0 = temp_s0->unk90; + func_80072E54(objectIndex, 0, (s32) temp_s0->unk_0A4, (s32) temp_s0->unk9C, 0, -1); + if (func_80072354(objectIndex, 0x00000020) != 0) { + temp_v0 = temp_s0->unk_084[6]; if (temp_v0 == 0) { - temp_s0->unk90 = random_int(0x5A) + 0x5A; - func_800722A4(arg0, 0x80); + temp_s0->unk_084[6] = random_int(0x005AU) + 0x5A; + func_800722A4(objectIndex, 0x00000080); } else { - temp_s0->unk90 = temp_v0 - 1; + temp_s0->unk_084[6] = temp_v0 - 1; } } break; case 3: - func_80072E54(arg0, 0, temp_s0->unkA4, 1, 0, 0); + func_80072E54(objectIndex, 0, (s32) temp_s0->unk_0A4, 1, 0, 0); break; case 4: - func_800722CC(arg0, 2); - func_80072488(arg0); + func_800722CC(objectIndex, 2); + func_80072488(objectIndex); break; } - if (func_80072320(arg0, 0x20) != 0) { - temp_v0_2 = temp_s0->unk90; + if (func_80072320(objectIndex, 0x00000020) != 0) { + temp_v0_2 = temp_s0->unk_084[6]; if (temp_v0_2 == 0) { - func_800722A4(arg0, 0x80); - temp_s0->unk90 = 0x10; + func_800722A4(objectIndex, 0x00000080); + temp_s0->unk_084[6] = 0x0010; } else { - temp_s0->unk90 = temp_v0_2 - 1; + temp_s0->unk_084[6] = temp_v0_2 - 1; } } - if (func_80072320(arg0, 0x80) != 0) { - func_800722CC(arg0, 0x80); - if (func_80072320(arg0, 0x10) != 0) { - func_800C98B8(temp_s0 + 4, temp_s0 + 0x38, 0x19007049); + if (func_80072320(objectIndex, 0x00000080) != 0) { + func_800722CC(objectIndex, 0x00000080); + if (func_80072320(objectIndex, 0x00000010) != 0) { + func_800C98B8(temp_s0->unk_004, &temp_s0->unk_038, 0x19007049U); return; } - func_800C98B8(temp_s0 + 4, temp_s0 + 0x38, 0x19007017); - /* Duplicate return node #17. Try simplifying control flow for better match */ + func_800C98B8(temp_s0->unk_004, &temp_s0->unk_038, 0x19007017U); } } #else @@ -11951,110 +10289,96 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80084B7C.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc s16 func_80004EAC(? *, s32); /* extern */ -? f32_step_towards(void *, f32, ?); /* extern */ -? func_800722A4(s32, ?); /* extern */ -? func_800722CC(s32, ?); /* extern */ -s32 func_80072354(s32, ?); /* extern */ -? func_800726CC(s32, ?); /* extern */ -? func_80086FD4(s32); /* extern */ -? func_8008701C(s32, ?); /* extern */ +u16 func_800417B4(u16, u16); /* extern */ s32 func_80087060(s32, ?); /* extern */ -? func_8008781C(s32); /* extern */ -? func_8008BF18(s32); /* extern */ extern ? D_06009AC8; -extern ? D_80165C18; -void func_80084D2C(s32 arg0, s32 arg1) { +void func_80084D2C(s32 objectIndex, s32 arg1) { f32 sp24; - s32 temp_t9; + struct_80165C18_entry *temp_s0; u16 temp_t8; u16 temp_v0; - void *temp_s0; - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_t8 = temp_s0->unkAE; + temp_s0 = &D_80165C18[objectIndex]; + temp_t8 = (u16) temp_s0->unk_0AE; switch (temp_t8) { case 1: - temp_v0 = func_800417B4(temp_s0->unkC0, temp_s0->unkC6); - temp_t9 = temp_v0 & 0xFFFF; - temp_s0->unkC0 = temp_v0; - if (temp_t9 == temp_s0->unkC6) { + temp_v0 = func_800417B4(temp_s0->unk_0C0, temp_s0->unkC6); + temp_s0->unk_0C0 = temp_v0; + if ((temp_v0 & 0xFFFF) == temp_s0->unkC6) { temp_s0->unk9C = 4; - temp_s0->unk34 = 0.4f; - func_80086FD4(arg0); + temp_s0->unk_034 = 0.4f; + func_80086FD4(objectIndex); } break; case 2: - f32_step_towards(temp_s0 + 0x34, 0.8f, 0x3CA3D70A); - if (func_80087060(arg0, 0xF) != 0) { - func_800722A4(arg0, 1); - func_800722A4(arg0, 2); + f32_step_towards(&temp_s0->unk_034, 0.8f, 0.02f); + if (func_80087060(objectIndex, 0xF) != 0) { + func_800722A4(objectIndex, 1); + func_800722A4(objectIndex, 2); temp_s0->unk9C = 1; - temp_s0->unkD8 = 1; - temp_s0->unkD2 = 0; - temp_s0->unkA4 = func_80004EAC(&D_06009AC8, 1 & 0xFF); - func_800726CC(arg0, 3); - func_80086FD4(arg0); - if (func_80072354(arg0, 0x20) != 0) { - func_800722A4(arg0, 0x80); + temp_s0->unk_0D8 = 1; + temp_s0->unk_0D2 = 0; + temp_s0->unk_0A4 = func_80004EAC(&D_06009AC8, 1 & 0xFF); + func_800726CC(objectIndex, 3); + func_80086FD4(objectIndex); + if (func_80072354(objectIndex, 0x00000020) != 0) { + func_800722A4(objectIndex, 0x00000080); } } break; case 3: - if (arg1 != 0) { - if (arg1 != 1) { - if (arg1 != 2) { - if (arg1 != 3) { - - } else { - sp24 = 2.5f; - } - } else { - sp24 = 2.0f; - } - } else { - sp24 = 1.5f; - } - } else { + switch (arg1) { /* switch 1; irregular */ + case 0: /* switch 1 */ sp24 = 1.0f; + break; + case 1: /* switch 1 */ + sp24 = 1.5f; + break; + case 2: /* switch 1 */ + sp24 = 2.0f; + break; + case 3: /* switch 1 */ + sp24 = 2.5f; + break; } - f32_step_towards(temp_s0 + 0x34, sp24, 0x3E19999A); - if ((func_80072354(arg0, 2) != 0) && (sp24 == temp_s0->unk34)) { - func_80086FD4(arg0); + f32_step_towards(&temp_s0->unk_034, sp24, 0.15f); + if ((func_80072354(objectIndex, 2) != 0) && (sp24 == temp_s0->unk_034)) { + func_80086FD4(objectIndex); } break; case 4: - if (func_80087060(arg0, 0x1E) != 0) { - func_800722CC(arg0, 1); - func_80086FD4(arg0); + if (func_80087060(objectIndex, 0x1E) != 0) { + func_800722CC(objectIndex, 1); + func_80086FD4(objectIndex); } break; case 5: - f32_step_towards(temp_s0 + 0x34, 0.4f, 0x3E4CCCCD); - if (func_80087060(arg0, 0xA) != 0) { - func_800722A4(arg0, 2); - temp_s0->unkD8 = 2; - temp_s0->unkD2 = 0; - temp_s0->unkA4 = func_80004EAC(&D_06009AC8, 2 & 0xFF); - func_800726CC(arg0, 3); - func_80086FD4(arg0); + f32_step_towards(&temp_s0->unk_034, 0.4f, 0.2f); + if (func_80087060(objectIndex, 0xA) != 0) { + func_800722A4(objectIndex, 2); + temp_s0->unk_0D8 = 2; + temp_s0->unk_0D2 = 0; + temp_s0->unk_0A4 = func_80004EAC(&D_06009AC8, 2 & 0xFF); + func_800726CC(objectIndex, 3); + func_80086FD4(objectIndex); } break; case 6: - if (func_80072354(arg0, 2) != 0) { - temp_s0->unkD8 = 0; - temp_s0->unkD2 = 0; - temp_s0->unkA4 = func_80004EAC(&D_06009AC8, 0 & 0xFF); - temp_s0->unkC6 = temp_s0->unkC6 + 0x8000; - func_800726CC(arg0, 2); - func_8008701C(arg0, 1); + if (func_80072354(objectIndex, 2) != 0) { + temp_s0->unk_0D8 = 0; + temp_s0->unk_0D2 = 0; + temp_s0->unk_0A4 = func_80004EAC(&D_06009AC8, 0 & 0xFF); + temp_s0->unkC6 = (u16) (temp_s0->unkC6 + 0x8000); + func_800726CC(objectIndex, 2); + func_8008701C(objectIndex, 1); } break; } - func_8008781C(arg0); - func_8008BF18(arg0); + func_8008781C(objectIndex); + func_8008BF18(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80084D2C.s") @@ -12064,24 +10388,11 @@ void func_80085024(void) { } -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800873F4(s32); // extern -? func_80088038(s32, u16); // extern -? func_8008BF18(s32); // extern -extern ? D_80165C18; - -void func_8008502C(s32 arg0, ? arg1) { - void *temp_v0; - - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - func_80088038(temp_v0->unk20, temp_v0->unkC6); - func_8008BF18(arg0); - func_800873F4(arg0); +void func_8008502C(s32 objectIndex, s32 arg1) { + func_80088038(objectIndex, D_80165C18[objectIndex].unk_01C[1], D_80165C18[objectIndex].unk_0C6); + func_8008BF18(objectIndex); + func_800873F4(objectIndex); } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8008502C.s") -#endif void func_80085080(s32 arg0) { func_8008B78C(arg0); @@ -12090,226 +10401,188 @@ void func_80085080(s32 arg0) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? func_800722CC(s32, ?); /* extern */ -s32 func_80072320(s32, ?); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_80084D2C(s32, ?); /* extern */ ? func_8008502C(s32); /* extern */ -? func_80085080(s32); /* extern */ -extern ? D_80165C18; -void func_800850B0(s32 arg0) { +void func_800850B0(s32 objectIndex) { s16 temp_v0; + struct_80165C18_entry *temp_s0; u8 temp_t8; - void *temp_s0; - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_t8 = temp_s0->unkDD; + temp_s0 = &D_80165C18[objectIndex]; + temp_t8 = (u8) temp_s0->unk_0DD; switch (temp_t8) { case 1: - func_80085080(arg0); + func_80085080(objectIndex); break; case 2: - func_8008502C(arg0); + func_8008502C(objectIndex); break; case 3: - func_80084D2C(arg0, 0); + func_80084D2C(objectIndex, 0); break; case 4: - func_80084D2C(arg0, 1); + func_80084D2C(objectIndex, 1); break; case 5: - func_80084D2C(arg0, 2); + func_80084D2C(objectIndex, 2); break; case 6: - func_80084D2C(arg0, 3); + func_80084D2C(objectIndex, 3); break; } - if (func_80072320(arg0, 0x20) != 0) { - if (func_80072320(arg0, 0x40) != 0) { - func_800722CC(arg0, 0x40); - temp_s0->unk90 = 0; - temp_s0->unk92 = 0x96; + if (func_80072320(objectIndex, 0x00000020) != 0) { + if (func_80072320(objectIndex, 0x00000040) != 0) { + func_800722CC(objectIndex, 0x00000040); + temp_s0->unk_084[6] = 0; + temp_s0->unk_084[7] = 0x0096; } - temp_v0 = temp_s0->unk92; + temp_v0 = temp_s0->unk_084[7]; if (temp_v0 == 0) { - func_800722CC(arg0, 0x20); + func_800722CC(objectIndex, 0x00000020); return; } - temp_s0->unk92 = temp_v0 - 1; - temp_s0->unkB4 = temp_s0->unkB4 + 0x2000; - temp_s0->unkB2 = temp_s0->unkBE; - temp_s0->unkB6 = temp_s0->unkC2; + temp_s0->unk_084[7] = temp_v0 - 1; + temp_s0->unk_0B4 = (u16) temp_s0->unk_0B4 + 0x2000; + temp_s0->unk_0B2 = (s16) temp_s0->unk_0BE; + temp_s0->unk_0B6 = (s16) temp_s0->unk_0C2; return; } - temp_s0->unkB2 = temp_s0->unkBE; - temp_s0->unkB4 = temp_s0->unkC0; - temp_s0->unkB6 = temp_s0->unkC2; + temp_s0->unk_0B2 = (s16) temp_s0->unk_0BE; + temp_s0->unk_0B4 = (s16) temp_s0->unk_0C0; + temp_s0->unk_0B6 = (s16) temp_s0->unk_0C2; } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800850B0.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721E8(s32, ?); // extern -s32 func_8007223C(s32, ?); // extern -? func_800722A4(s32, ?); // extern -s32 func_80072320(s32, ?); // extern -s32 func_80072354(s32, ?); // extern -? func_8008453C(s32, s32); // extern -? func_80084B7C(s32, s32); // extern -? func_800850B0(s32, s32); // extern -? func_80089820(s32, f32, f32, ?); // extern -extern f32 D_800EF3A8; -extern ? D_80165C18; -extern s32 D_80183EA0; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_8008453C(s32, s32); /* extern */ +? func_80084B7C(s32, s32); /* extern */ +? func_800850B0(s32, s32); /* extern */ +? func_80089820(s32, f32, f32, ?); /* extern */ void func_80085214(void) { - f32 temp_f24; + s32 *var_s2; s32 temp_s0; - s32 temp_s1; - s32 *phi_s2; - s32 phi_s1; + s32 var_s1; - temp_f24 = D_800EF3A8; - phi_s2 = &D_80183EA0; - phi_s1 = 0; + var_s2 = D_80183EA0; + var_s1 = 0; do { - temp_s0 = *phi_s2; - if ((&D_80165C18 + (temp_s0 * 0xE0))->unkA6 != 0) { - if (phi_s1 == 0) { - func_8008453C(temp_s0, phi_s1); + temp_s0 = *var_s2; + if (D_80165C18[temp_s0].unk_0A6 != 0) { + if (var_s1 == 0) { + func_8008453C(temp_s0, var_s1); } else { - func_80084B7C(temp_s0, phi_s1); + func_80084B7C(temp_s0, var_s1); } - func_800850B0(temp_s0, phi_s1); + func_800850B0(temp_s0, var_s1); } if (func_80072320(temp_s0, 1) != 0) { func_80089820(temp_s0, 1.75f, 1.5f, 0x1900A046); } else if (func_80072320(temp_s0, 8) != 0) { - func_80089820(temp_s0, temp_f24, 1.0f, 0x1900A046); + func_80089820(temp_s0, 1.3f, 1.0f, 0x1900A046); } else { func_80089820(temp_s0, 1.5f, 1.25f, 0x1900A046); } - if ((func_8007223C(temp_s0, 0x2000000) != 0) && (func_80072354(temp_s0, 0x20) != 0)) { - func_800722A4(temp_s0, 0x60); - func_800721E8(temp_s0, 0x2000000); + if ((func_8007223C(temp_s0, 0x02000000) != 0) && (func_80072354(temp_s0, 0x00000020) != 0)) { + func_800722A4(temp_s0, 0x00000060); + func_800721E8(temp_s0, 0x02000000); } - temp_s1 = phi_s1 + 1; - phi_s2 += 4; - phi_s1 = temp_s1; - } while (temp_s1 != 0xF); + var_s1 += 1; + var_s2 += 4; + } while (var_s1 != 0xF); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80085214.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072488(s32); // extern -? func_80086EF0(s32); // extern -? func_800886F4(s32); // extern -? func_8008B7D4(f32, f32, f32, ?); // extern -? func_8008B80C(s32, f32, ?, f32); // extern -? func_8008B844(s32); // extern -? func_802A14BC(f32, f32, f32); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern ? D_0600F960; -extern f64 D_800EF3B0; -extern ? D_80165C18; extern f32 D_8018D01C; +extern s32 gGamestate; -void func_800853DC(s32 arg0) { - void *sp2C; - void *temp_v0; +void func_800853DC(s32 objectIndex) { + struct_80165C18_entry *sp2C; + struct_80165C18_entry *temp_v0; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unk70 = &D_0600F960; - temp_v0->unk0 = 1.0f; - if (gGamestate != CREDITS_SEQUENCE) { + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_070 = (s32) &D_0600F960; + temp_v0->unk_000 = 1.0f; + if (gGamestate != 9) { sp2C = temp_v0; - func_8008B7D4(D_8018D01C * -176.0, 0.0f, -2323.0f); - func_8008B80C(arg0, 0.0f, 0x43960000, 0.0f); + func_8008B7D4(objectIndex, (f32) ((f64) D_8018D01C * -176.0), 0.0f, -2323.0f); + func_8008B80C(objectIndex, 0.0f, 300.0f, 0.0f); } else { sp2C = temp_v0; - func_8008B7D4((bitwise f32) arg0, D_8018D01C * D_800EF3B0, 0.0f, 0x448AC000); - func_8008B80C(arg0, 0.0f, 0x43960000, 0.0f); + func_8008B7D4(objectIndex, (f32) ((f64) D_8018D01C * -1250.0), 0.0f, 1110.0f); + func_8008B80C(objectIndex, 0.0f, 300.0f, 0.0f); } - func_8008B844(arg0); - func_800886F4(arg0); - func_80086EF0(arg0); - sp2C->unk3C = -2.0f; + func_8008B844(objectIndex); + func_800886F4(objectIndex); + func_80086EF0(objectIndex); + sp2C->unk_038[1] = -2.0f; func_802A14BC(0.0f, 0.0f, 0.0f); - func_80072488(arg0); + func_80072488(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800853DC.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? f32_step_towards(void *, ?, ?); /* extern */ -? func_80086FD4(s32); /* extern */ -? func_8008701C(s32, ?); /* extern */ -s32 func_80087060(s32, ?); /* extern */ -? func_800871AC(s32, ?); /* extern */ -? func_800877C4(s32); /* extern */ -extern ? D_80165C18; - -void func_80085534(s32 arg0) { - s16 temp_t8; - void *temp_s0; - - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_t8 = temp_s0->unkAE; - switch (temp_t8) { +#ifdef NEEDS_RODATA +void func_80085534(s32 objectIndex) { + switch (D_80165C18[objectIndex].unk_0AE) { case 1: - if (temp_s0->unk2C <= 18.0) { - func_80086FD4(arg0); + if (D_80165C18[objectIndex].unk_028[1] <= 18.0) { + func_80086FD4(objectIndex); } break; case 2: - f32_step_towards(temp_s0 + 0x3C, 0, 0x3D4CCCCD); - if (temp_s0->unk3C == 0.0) { - func_80086FD4(arg0); + f32_step_towards(&D_80165C18[objectIndex].unk_038[1], 0.0f, 0.05f); + if (D_80165C18[objectIndex].unk_038[1] == 0.0) { + func_80086FD4(objectIndex); } break; case 3: - func_800871AC(arg0, 1); + func_800871AC(objectIndex, 1); break; case 4: - f32_step_towards(temp_s0 + 0x3C, 0x3F800000, 0x3D4CCCCD); - if (temp_s0->unk3C == 1.0) { - func_80086FD4(arg0); + f32_step_towards(&D_80165C18[objectIndex].unk_038[1], 1.0f, 0.05f); + if (D_80165C18[objectIndex].unk_038[1] == 1.0) { + func_80086FD4(objectIndex); } break; case 5: - func_800871AC(arg0, 0x5A); + func_800871AC(objectIndex, 0x0000005A); break; case 6: - f32_step_towards(temp_s0 + 0x3C, 0, 0x3D4CCCCD); - if (temp_s0->unk3C == 0.0) { - func_80086FD4(arg0); + f32_step_towards(&D_80165C18[objectIndex].unk_038[1], 0.0f, 0.05f); + if (D_80165C18[objectIndex].unk_038[1] == 0.0) { + func_80086FD4(objectIndex); } break; case 7: - f32_step_towards(temp_s0 + 0x3C, 0xBF800000, 0x3D4CCCCD); - if (temp_s0->unk3C == -1.0) { - func_80086FD4(arg0); + f32_step_towards(&D_80165C18[objectIndex].unk_038[1], -1.0f, 0.05f); + if (D_80165C18[objectIndex].unk_038[1] == -1.0) { + func_80086FD4(objectIndex); } break; case 8: - func_800871AC(arg0, 0x5A); + func_800871AC(objectIndex, 0x0000005A); break; case 9: - f32_step_towards(temp_s0 + 0x3C, 0, 0x3D4CCCCD); - if (func_80087060(arg0, 0x5A) != 0) { - func_8008701C(arg0, 3); + f32_step_towards(&D_80165C18[objectIndex].unk_038[1], 0.0f, 0.05f); + if (func_80087060(objectIndex, 0x0000005A) != 0) { + func_8008701C(objectIndex, 3); } break; } - func_800877C4(arg0); - temp_s0->unkC0 = temp_s0->unkC0 + 0x100; + func_800877C4(objectIndex); + D_80165C18[objectIndex].unk_0C0 += 0x100; } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80085534.s") @@ -12341,32 +10614,29 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80085768.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80085534(s32); // extern -? func_80085768(s32); // extern -? func_8008BF18(s32); // extern -extern ? D_80165C18; -extern s32 D_80183EA0; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_80085534(s32); /* extern */ +? func_80085768(s32); /* extern */ extern void *D_802BA05C; void func_800857C0(void) { s32 sp1C; - void *sp18; + struct_80165C18_entry *sp18; s32 temp_a0; - void *temp_v0; + struct_80165C18_entry *temp_v0; - temp_a0 = D_80183EA0; - temp_v0 = (temp_a0 * 0xE0) + &D_80165C18; - if (temp_v0->unkA6 != 0) { + temp_a0 = *D_80183EA0; + temp_v0 = &D_80165C18[temp_a0]; + if (temp_v0->unk_0A6 != 0) { sp18 = temp_v0; sp1C = temp_a0; func_80085768(temp_a0); func_80085534(temp_a0); func_8008BF18(temp_a0); - if (temp_v0->unkA6 >= 2) { - D_802BA05C->unk18 = temp_v0->unk4; - D_802BA05C->unk1C = temp_v0->unk8 - 10.0; - D_802BA05C->unk20 = temp_v0->unkC; + if (temp_v0->unk_0A6 >= 2) { + D_802BA05C->unk18 = (f32) temp_v0->unk_004[0]; + D_802BA05C->unk1C = (f32) ((f64) temp_v0->unk_004[1] - 10.0); + D_802BA05C->unk20 = (f32) temp_v0->unk_004[2]; } } } @@ -12375,196 +10645,156 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800857C0.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s16 func_80004EAC(? *, ?); // extern -? func_800721C0(?); // extern -? func_80072488(s32); // extern -? func_8008B7D4(s32, ?, ?, ?); // extern -? func_8008B80C(s32, f32, f32, f32); // extern -? func_8008B888(s32, ?, ?, ?); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +s16 func_80004EAC(? *, ?); /* extern */ extern ? D_0601610C; extern ? D_06016110; -extern f32 D_800EF3DC; -extern s32 D_80164490; -extern ? D_80165C18; -void func_80085878(s32 arg0, s32 arg1) { - void *temp_s0; - void *temp_v0; +void func_80085878(s32 objectIndex, s32 arg1) { + struct TrackWayPoint *temp_v0; + struct_80165C18_entry *temp_s0; - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_s0->unkD8 = 1; - temp_s0->unk70 = &D_06016110; - temp_s0->unk74 = &D_0601610C; - temp_s0->unkC8 = 0xA; - temp_s0->unk0 = D_800EF3DC; - func_800721C0(0x4000200); - temp_s0->unk94 = (arg1 * 0x12C) + 0x1F4; - func_8008B7D4(arg0, 0, 0xC1700000, 0); - temp_v0 = (temp_s0->unk94 * 8) + D_80164490; - func_8008B80C(arg0, temp_v0->unk0, temp_v0->unk2, temp_v0->unk4); - func_8008B888(arg0, 0, 0, 0); - temp_s0->unk34 = 4.0f; - temp_s0->unkA4 = func_80004EAC(&D_0601610C, 0); - func_80072488(arg0); + temp_s0 = &D_80165C18[objectIndex]; + temp_s0->unk_0D8 = 1; + temp_s0->unk_070 = (s32) &D_06016110; + temp_s0->unk_074 = (s32) &D_0601610C; + temp_s0->unkC8 = 0x000A; + temp_s0->unk_000 = 0.03f; + func_800721C0(objectIndex, 0x04000200); + temp_s0->unk_084[8] = (arg1 * 0x12C) + 0x1F4; + func_8008B7D4(objectIndex, 0.0f, -15.0f, 0.0f); + temp_v0 = &D_80164490[(u16) temp_s0->unk_084[8]]; + func_8008B80C(objectIndex, (f32) temp_v0->wayPointX, (f32) temp_v0->wayPointY, (f32) temp_v0->wayPointZ); + func_8008B888(objectIndex, 0U, 0U, 0U); + temp_s0->unk_034 = 4.0f; + temp_s0->unk_0A4 = func_80004EAC(&D_0601610C, 0); + func_80072488(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80085878.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072E54(s32, ?, s16, ?, s32, s32); // extern -? func_80074344(s32, void *, ?, ?, f32, s32, s32); // extern -? func_80085878(s32); // extern -? func_800C98B8(void *, void *, ?); // extern -extern f32 D_800EF3E0; -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_80085878(s32); /* extern */ extern s32 D_8018D40C; -void func_800859C8(s32 arg0) { +void func_800859C8(s32 objectIndex) { s16 temp_v0; - void *temp_s0; + struct_80165C18_entry *temp_s0; - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0 = temp_s0->unkA6; - if (temp_v0 != 0) { - if (temp_v0 != 1) { - if (temp_v0 != 2) { - - } else { - func_80072E54(arg0, 0, temp_s0->unkA4, 1, 0, -1); - } - } else { - func_80085878(arg0); - } + temp_s0 = &D_80165C18[objectIndex]; + temp_v0 = temp_s0->unk_0A6; + switch (temp_v0) { /* irregular */ + case 0: + break; + case 1: + func_80085878(objectIndex); + break; + case 2: + func_80072E54(objectIndex, 0, (s32) temp_s0->unk_0A4, 1, 0, -1); + break; } if (D_8018D40C == 0) { - func_800C98B8(temp_s0 + 4, temp_s0 + 0x38, 0x19018057); + func_800C98B8(temp_s0->unk_004, &temp_s0->unk_038, 0x19018057U); } - func_80074344(arg0, temp_s0 + 0x44, 0xBF4CCCCD, 0x3F4CCCCD, D_800EF3E0, 0, -1); + func_80074344(objectIndex, (f32 *) &temp_s0->unk_044, -0.8f, 0.8f, 0.03f, 0, -1); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800859C8.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_8000D940(void *, void *, s32, s32, s32); // extern -? func_80040EC4(void *, void *); // extern -? func_800859C8(s32, s32); // extern -? func_80089CBC(s32, ?); // extern -? func_8008BF18(s32); // extern -s16 func_802B5224(void *, void *); // extern -extern ? D_80165C18; -extern s32 D_80183F28; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_800859C8(s32, s32); /* extern */ +? func_80089CBC(s32, ?); /* extern */ void func_80085AA8(void) { + f32 *temp_s1; + f32 *temp_s3; + s32 *var_s5; s32 temp_s2; - s32 temp_s4; - void *temp_s0; - void *temp_s1; - void *temp_s3; - s32 *phi_s5; - s32 phi_s4; + s32 var_s4; + struct_80165C18_entry *temp_s0; - phi_s5 = &D_80183F28; - phi_s4 = 0; + var_s5 = D_80183F28; + var_s4 = 0; do { - temp_s2 = *phi_s5; - temp_s0 = &D_80165C18 + (temp_s2 * 0xE0); - if (temp_s0->unkA6 != 0) { - func_800859C8(temp_s2, phi_s4); - temp_s3 = temp_s0 + 0x1C; - temp_s1 = temp_s0 + 0x28; + temp_s2 = *var_s5; + temp_s0 = &D_80165C18[temp_s2]; + if (temp_s0->unk_0A6 != 0) { + func_800859C8(temp_s2, var_s4); + temp_s3 = temp_s0->unk_01C; + temp_s1 = temp_s0->unk_028; func_80040EC4(temp_s3, temp_s1); - func_8000D940(temp_s1, temp_s0 + 0x94, temp_s0->unk34, temp_s0->unk44, 0); - temp_s0->unkC0 = func_802B5224(temp_s3, temp_s1); + func_8000D940(temp_s1, &temp_s0->unk_084[8], temp_s0->unk_034, (bitwise f32) temp_s0->unk_044, 0); + temp_s0->unk_0C0 = func_802B5224(temp_s3, temp_s1); func_8008BF18(temp_s2); func_80089CBC(temp_s2, 0x41F00000); } - temp_s4 = phi_s4 + 1; - phi_s5 += 4; - phi_s4 = temp_s4; - } while (temp_s4 != 3); + var_s4 += 1; + var_s5 += 4; + } while (var_s4 != 3); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80085AA8.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072488(s32); // extern -? func_8008B80C(?, ?, ?); // extern -? func_8008B8BC(s32, ?, ?, ?); // extern -extern ? D_80165C18; - -void func_80085BB4(s32 arg0) { - *(&D_80165C18 + (arg0 * 0xE0)) = 8.0f; - func_8008B80C(0, 0, 0); - func_8008B8BC(arg0, 0, 0, 0x8000); - func_80072488(arg0); +void func_80085BB4(s32 objectIndex) { + D_80165C18[objectIndex].unk_000 = 8.0f; + func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); + func_8008B8BC(objectIndex, 0U, 0U, 0x8000U); + func_80072488(objectIndex); } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80085BB4.s") -#endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80073444(s32, ? *, ? *, ?, s32); // extern -? func_80085BB4(s32); // extern -? func_8008B7D4(f32, ?, ?); // extern -extern ? D_06005400; -extern ? D_06008000; -extern f64 D_800EF3E8; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s32 D_06005400; +extern s32 D_06008000; extern f32 D_8018D01C; -void func_80085C20(s32 arg0) { - func_8008B7D4(D_8018D01C * D_800EF3E8, 0x444EC000, 0xC538D000); - func_80073444(arg0, &D_06005400, &D_06008000, 0x40, 0x40); - func_80085BB4(arg0); +void func_80085C20(s32 objectIndex) { + func_8008B7D4(objectIndex, (f32) ((f64) D_8018D01C * -1431.0), 827.0f, -2957.0f); + func_80073444(objectIndex, &D_06005400, &D_06008000, 0x40U, (u16) 0x00000040); + func_80085BB4(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80085C20.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? func_800726CC(?); /* extern */ -? func_8007278C(?); /* extern */ -? func_80072D3C(?, ?, ?, s32); /* extern */ -? func_80072E54(?, ?, ?, s32, s32); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_80085C20(); /* extern */ extern ? D_80165CBE; -void func_80085CA0(s32 arg0) { +void func_80085CA0(s32 objectIndex) { u16 temp_t7; - temp_t7 = *(&D_80165CBE + (arg0 * 0xE0)); + temp_t7 = *(&D_80165CBE + (objectIndex * 0xE0)); switch (temp_t7) { case 1: func_80085C20(); return; case 2: - func_80072E54(0, 4, 1, 0xC, 5); + func_80072E54(objectIndex, 0, 4, 1, 0x0000000C, 5); return; case 3: - func_80072D3C(3, 4, 4, 0xA); + func_80072D3C(objectIndex, 3, 4, 4, 0x0000000A); return; case 4: - func_8007278C(0x14); + func_8007278C(objectIndex, 0x00000014); return; case 5: - func_80072E54(0, 4, 1, 0xC, 5); + func_80072E54(objectIndex, 0, 4, 1, 0x0000000C, 5); return; case 6: - func_8007278C(0x14); + func_8007278C(objectIndex, 0x00000014); return; case 7: - func_80072D3C(3, 4, 0, 0x14); + func_80072D3C(objectIndex, 3, 4, 0, 0x00000014); return; case 8: - func_800726CC(2); + func_800726CC(objectIndex, 2); /* fallthrough */ default: return; @@ -12575,52 +10805,44 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80085CA0.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80073444(s32, ? *, ? *, ?, s32); // extern -? func_80085BB4(s32); // extern -? func_8008B7D4(f32, ?, ?); // extern -extern ? D_06005E00; -extern ? D_06009000; -extern f64 D_800EF418; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s32 D_06005E00; +extern s32 D_06009000; extern f32 D_8018D01C; -void func_80085DB8(s32 arg0) { - func_8008B7D4(D_8018D01C * D_800EF418, 0x44952000, 0xC5B81800); - func_80073444(arg0, &D_06005E00, &D_06009000, 0x40, 0x40); - func_80085BB4(arg0); +void func_80085DB8(s32 objectIndex) { + func_8008B7D4(objectIndex, (f32) ((f64) D_8018D01C * 799.0), 1193.0f, -5891.0f); + func_80073444(objectIndex, &D_06005E00, &D_06009000, 0x40U, (u16) 0x00000040); + func_80085BB4(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80085DB8.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? func_800726CC(?); /* extern */ -? func_80072B48(?); /* extern */ -? func_80072D3C(?, ?, ?, s32); /* extern */ -? func_80072E54(?, ?, ?, s32, s32); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_80085DB8(); /* extern */ extern ? D_80165CBE; -void func_80085E38(s32 arg0) { +void func_80085E38(s32 objectIndex) { u16 temp_t7; - temp_t7 = *(&D_80165CBE + (arg0 * 0xE0)); + temp_t7 = *(&D_80165CBE + (objectIndex * 0xE0)); switch (temp_t7) { case 1: func_80085DB8(); return; case 2: - func_80072E54(0, 4, 1, 0xC, 1); + func_80072E54(objectIndex, 0, 4, 1, 0x0000000C, 1); return; case 3: - func_80072D3C(3, 4, 0xC, 1); + func_80072D3C(objectIndex, 3, 4, 0x0000000C, 1); return; case 4: - func_80072B48(0xC); + func_80072B48(objectIndex, 0x0000000C); return; case 5: - func_800726CC(2); + func_800726CC(objectIndex, 2); /* fallthrough */ default: return; @@ -12631,63 +10853,53 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80085E38.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80073444(s32, ? *, ? *, ?, s32); // extern -? func_80085BB4(s32); // extern -? func_8008B7D4(f32, ?, ?); // extern -extern ? D_06006800; -extern ? D_0600A000; -extern f64 D_800EF438; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s32 D_06006800; +extern s32 D_0600A000; extern f32 D_8018D01C; -void func_80085EF8(s32 arg0) { - func_8008B7D4(D_8018D01C * D_800EF438, 0x440AC000, 0); - func_80073444(arg0, &D_06006800, &D_0600A000, 0x40, 0x40); - func_80085BB4(arg0); +void func_80085EF8(s32 objectIndex) { + func_8008B7D4(objectIndex, (f32) ((f64) D_8018D01C * -2013.0), 555.0f, 0.0f); + func_80073444(objectIndex, &D_06006800, &D_0600A000, 0x40U, (u16) 0x00000040); + func_80085BB4(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80085EF8.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? func_800726CC(?); /* extern */ -? func_8007278C(?); /* extern */ -? func_80072B48(?); /* extern */ -? func_80072C00(?, ?, ?); /* extern */ -? func_80072E54(?, ?, ?, s32, s32); /* extern */ -? func_80072F88(?, ?, ?, s32, s32); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_80085EF8(); /* extern */ extern ? D_80165CBE; -void func_80085F74(s32 arg0) { +void func_80085F74(s32 objectIndex) { u16 temp_t7; - temp_t7 = *(&D_80165CBE + (arg0 * 0xE0)); + temp_t7 = *(&D_80165CBE + (objectIndex * 0xE0)); switch (temp_t7) { case 1: func_80085EF8(); return; case 2: - func_80072E54(0, 4, 1, 5, 1); + func_80072E54(objectIndex, 0, 4, 1, 5, 1); return; case 3: - func_8007278C(0x1E); + func_8007278C(objectIndex, 0x0000001E); return; case 4: - func_80072C00(4, 0, 7); + func_80072C00(objectIndex, 4, 0, 7); return; case 5: - func_8007278C(0x1E); + func_8007278C(objectIndex, 0x0000001E); return; case 6: - func_80072F88(3, 0, 1, 5, 1); + func_80072F88(objectIndex, 3, 0, 1, 5, 1); return; case 7: - func_80072B48(0xF); + func_80072B48(objectIndex, 0x0000000F); return; case 8: - func_800726CC(2); + func_800726CC(objectIndex, 2); /* fallthrough */ default: return; @@ -12778,184 +10990,137 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80086158.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800734DC(s32); // extern -? func_80086158(s32, s32); // extern -? func_8008BF18(s32); // extern -extern ? D_80165C18; -extern s32 D_80183EA0; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_80086158(s32, s32); /* extern */ void func_800861E0(void) { + s32 *var_s3; s32 temp_s0; - s32 temp_s2; - void *temp_s1; - s32 *phi_s3; - s32 phi_s2; + s32 var_s2; + struct_80165C18_entry *temp_s1; - phi_s3 = &D_80183EA0; - phi_s2 = 0; + var_s3 = D_80183EA0; + var_s2 = 0; do { - temp_s0 = *phi_s3; - temp_s1 = &D_80165C18 + (temp_s0 * 0xE0); - if (temp_s1->unkA6 != 0) { - func_80086158(temp_s0, phi_s2); - if (temp_s1->unkA6 >= 2) { + temp_s0 = *var_s3; + temp_s1 = &D_80165C18[temp_s0]; + if (temp_s1->unk_0A6 != 0) { + func_80086158(temp_s0, var_s2); + if (temp_s1->unk_0A6 >= 2) { func_800734DC(temp_s0); func_8008BF18(temp_s0); } } - temp_s2 = phi_s2 + 1; - phi_s3 += 4; - phi_s2 = temp_s2; - } while (temp_s2 != 0xA); + var_s2 += 1; + var_s3 += 4; + } while (var_s2 != 0xA); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800861E0.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072488(s32); // extern -? func_8008B7D4(s32, f32, f32, f32); // extern -? func_8008B80C(s32, ?, ?, ?); // extern -? func_8008B888(s32, ?, ?, ?); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern ? D_0B0075F0; extern ? D_0B008040; extern ? D_0B008A90; -extern ? D_800E634C; -extern ? D_80165C18; +static ? D_800E634C; /* unable to generate initializer */ -void func_8008629C(s32 arg0, s32 arg1) { - void *sp20; - void *temp_v0; - void *temp_v0_2; - void *temp_v0_3; - void *phi_v0; +void func_8008629C(s32 objectIndex, s32 arg1) { + struct_80165C18_entry *sp20; + struct_80165C18_entry *var_v0; - if (arg1 != 0) { - if (arg1 != 1) { - if (arg1 != 2) { - phi_v0 = (arg0 * 0xE0) + &D_80165C18; - } else { - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unk70 = &D_0B008A90; - temp_v0->unk4C = 0x1E; - phi_v0 = temp_v0; - } - } else { - temp_v0_2 = (arg0 * 0xE0) + &D_80165C18; - temp_v0_2->unk70 = &D_0B008040; - temp_v0_2->unk4C = 0x2B; - phi_v0 = temp_v0_2; - } - } else { - temp_v0_3 = (arg0 * 0xE0) + &D_80165C18; - temp_v0_3->unk70 = &D_0B0075F0; - temp_v0_3->unk4C = 0x38; - phi_v0 = temp_v0_3; + switch (arg1) { /* irregular */ + default: + var_v0 = &D_80165C18[objectIndex]; + break; + case 0: + var_v0 = &D_80165C18[objectIndex]; + var_v0->unk_070 = (s32) &D_0B0075F0; + var_v0->unk_04C = 0x00000038; + break; + case 1: + var_v0 = &D_80165C18[objectIndex]; + var_v0->unk_070 = (s32) &D_0B008040; + var_v0->unk_04C = 0x0000002B; + break; + case 2: + var_v0 = &D_80165C18[objectIndex]; + var_v0->unk_070 = (s32) &D_0B008A90; + var_v0->unk_04C = 0x0000001E; + break; } - phi_v0->unk0 = 1.0f; - sp20 = phi_v0; - func_8008B7D4(arg0, D_800E634C.unk0 - 1.5, D_800E634C.unk2, D_800E634C.unk4); - func_8008B80C(arg0, 0, 0xC1200000, 0); - func_8008B888(arg0, 0, 0xF8E4, 0); - phi_v0->unk48 = 0; - func_80072488(arg0); + var_v0->unk_000 = 1.0f; + sp20 = var_v0; + func_8008B7D4(objectIndex, (f32) ((f64) D_800E634C.unk0 - 1.5), (f32) D_800E634C.unk2, (f32) D_800E634C.unk4); + func_8008B80C(objectIndex, 0.0f, -10.0f, 0.0f); + func_8008B888(objectIndex, 0U, 0xF8E4U, 0U); + var_v0->unk_048 = 0; + func_80072488(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8008629C.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80086F60(s32); // extern -? func_80086FD4(s32); // extern -? func_800877C4(s32); // extern -? func_8008BF18(s32); // extern -extern f64 D_800EF468; -extern ? D_80165C18; +#ifdef NEEDS_RODATA -void func_80086424(s32 arg0) { - void *sp20; - s16 temp_v1; - void *temp_v0; +extern f64 D_800EF468;// = 0.1; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v1 = temp_v0->unkAE; - if (temp_v1 != 0) { - if (temp_v1 != 1) { - if (temp_v1 != 2) { - - } else { - if (temp_v0->unk2C >= -2.0) { - temp_v0->unk3C = temp_v0->unk3C - D_800EF468; - } - sp20 = temp_v0; - func_800877C4(arg0); - if (temp_v0->unk2C >= 0.0) { - temp_v0->unk2C = 0.0f; - temp_v0->unk3C = 0.0f; - func_80086F60(arg0); - } - } - } else { - temp_v0->unk3C = 0.75f; - func_80086FD4(arg0); +void func_80086424(s32 objectIndex) { + switch (D_80165C18[objectIndex].unk_0AE) { + case 0: + break; + case 1: + D_80165C18[objectIndex].unk_038[1] = 0.75f; + func_80086FD4(objectIndex); + break; + case 2: + if (D_80165C18[objectIndex].unk_028[1] >= -2.0) { + D_80165C18[objectIndex].unk_038[1] -= 0.1; } + func_800877C4(objectIndex); + if (D_80165C18[objectIndex].unk_028[1] >= 0.0) { + D_80165C18[objectIndex].unk_028[1] = 0.0f; + D_80165C18[objectIndex].unk_038[1] = 0.0f; + func_80086F60(objectIndex); + } + break; } - func_8008BF18(arg0); + func_8008BF18(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80086424.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072488(s32, s32, s32, s32); // extern -s32 func_8007278C(s32, s32, s32, s32); // extern -? func_8008629C(s32, s32, s32, s32); // extern -? func_80086E70(s32); // extern -? func_80091440(s8); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_8008629C(s32, s32, s32, s32); /* extern */ -void func_80086528(s32 arg0, s32 arg1) { +void func_80086528(s32 objectIndex, s32 arg1) { s16 temp_v0; - s32 temp_a0; - s32 temp_a2; - s32 temp_a3; - void *temp_v1; + struct_80165C18_entry *temp_v1; - temp_v1 = (arg0 * 0xE0) + &D_80165C18; - temp_v0 = temp_v1->unkA6; - temp_a2 = arg0; - temp_a3 = arg1; - if (temp_v0 != 0) { - if (temp_v0 != 1) { - temp_a0 = temp_a2; - if (temp_v0 != 2) { - if (temp_v0 != 3) { - return; - } - if (temp_v1->unkAE == 0) { - temp_v1->unk48 = 1; - func_80072488(temp_a2, 1, temp_a2, temp_a3); - } - // Duplicate return node #10. Try simplifying control flow for better match - return; - } - arg0 = temp_a2; - arg1 = temp_a3; - if (func_8007278C(temp_a0, temp_v1->unk4C, temp_a2, temp_a3) != 0) { - arg0 = arg0; - func_80091440(arg1); - func_80086E70(arg0); - func_80072488(arg0); - return; - } - // Duplicate return node #10. Try simplifying control flow for better match + temp_v1 = &D_80165C18[objectIndex]; + temp_v0 = temp_v1->unk_0A6; + switch (temp_v0) { /* irregular */ + case 1: + func_8008629C(objectIndex, arg1, objectIndex, arg1); + return; + case 2: + if (func_8007278C(objectIndex, temp_v1->unk_04C) != 0) { + func_80091440((s8) arg1); + func_80086E70(objectIndex); + func_80072488(objectIndex); return; } - func_8008629C(temp_a2, temp_a3, temp_a2, temp_a3); + case 0: + return; + case 3: + if (temp_v1->unk_0AE == 0) { + temp_v1->unk_048 = 1; + func_80072488(objectIndex); + } + break; } } #else @@ -12963,224 +11128,188 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80086528.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800723A4(s32, ?); // extern -? func_80086424(s32); // extern -? func_80086528(s32, s32); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_80086424(s32); /* extern */ +? func_80086528(s32, s32); /* extern */ extern s16 D_8016347C; extern s8 D_801658C6; -extern ? D_80165C18; -extern s32 D_80183EA0; extern ? D_80183EAC; -extern s8 D_802874F5; void func_80086604(void) { - s32 *temp_s1; + s32 *var_s1; + s32 *var_s1_2; s32 temp_s0; - s32 temp_s2; - s32 *phi_s1; - s32 *phi_s1_2; - s32 phi_s2; + s32 var_s2; if ((D_8016347C != 0) && (D_802874F5 < 3)) { - phi_s1 = &D_80183EA0; + var_s1 = D_80183EA0; if (D_801658C6 == 0) { do { - func_800723A4(*phi_s1, 0); - temp_s1 = phi_s1 + 4; - phi_s1 = temp_s1; - } while (temp_s1 != &D_80183EAC); + func_800723A4(*var_s1, 0); + var_s1 += 4; + } while (var_s1 != &D_80183EAC); D_801658C6 = 1; } } - phi_s1_2 = &D_80183EA0; - phi_s2 = 0; + var_s1_2 = D_80183EA0; + var_s2 = 0; do { - temp_s0 = *phi_s1_2; - if ((&D_80165C18 + (temp_s0 * 0xE0))->unkA6 != 0) { - func_80086528(temp_s0, phi_s2); + temp_s0 = *var_s1_2; + if (D_80165C18[temp_s0].unk_0A6 != 0) { + func_80086528(temp_s0, var_s2); func_80086424(temp_s0); } - temp_s2 = phi_s2 + 1; - phi_s1_2 += 4; - phi_s2 = temp_s2; - } while (temp_s2 != 3); + var_s2 += 1; + var_s1_2 += 4; + } while (var_s2 != 3); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80086604.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072488(s32); // extern -? func_80086E70(s32); // extern -? func_8008B7D4(s32, s32, f32, s32); // extern -? func_8008B80C(s32, ?, ?, ?); // extern -? func_8008B888(s32, ?, ?, ?); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern ? D_0B0069D8; extern ? D_0B006A28; extern ? D_0B006A78; extern ? D_0B006AC8; extern ? D_0B006B18; extern ? D_0B006B68; -extern f32 D_800EF470; -extern ? D_80165C18; -extern s32 D_80183F28; -extern s8 D_802874F5; -void func_80086700(s32 arg0) { - void *sp20; +void func_80086700(s32 objectIndex) { + struct_80165C18_entry *sp20; s8 temp_v0; - s8 temp_v0_5; - void *temp_v0_2; - void *temp_v0_3; - void *temp_v0_4; - void *temp_v0_6; - void *temp_v0_7; - void *temp_v0_8; - void *temp_v1; - void *phi_v0; + s8 temp_v0_2; + struct_80165C18_entry *temp_v1; + struct_80165C18_entry *var_v0; - if (gCCSelection < CC_150) { + if (gCCSelection < 2) { temp_v0 = D_802874F5; - if (temp_v0 != 0) { - if (temp_v0 != 1) { - if (temp_v0 != 2) { - phi_v0 = (arg0 * 0xE0) + &D_80165C18; - } else { - temp_v0_2 = (arg0 * 0xE0) + &D_80165C18; - temp_v0_2->unk70 = &D_0B006B18; - phi_v0 = temp_v0_2; - } - } else { - temp_v0_3 = (arg0 * 0xE0) + &D_80165C18; - temp_v0_3->unk70 = &D_0B006A78; - phi_v0 = temp_v0_3; - } - } else { - temp_v0_4 = (arg0 * 0xE0) + &D_80165C18; - temp_v0_4->unk70 = &D_0B0069D8; - phi_v0 = temp_v0_4; + switch (temp_v0) { /* switch 1; irregular */ + default: /* switch 1 */ + var_v0 = &D_80165C18[objectIndex]; + break; + case 0: /* switch 1 */ + var_v0 = &D_80165C18[objectIndex]; + var_v0->unk_070 = (s32) &D_0B0069D8; + break; + case 1: /* switch 1 */ + var_v0 = &D_80165C18[objectIndex]; + var_v0->unk_070 = (s32) &D_0B006A78; + break; + case 2: /* switch 1 */ + var_v0 = &D_80165C18[objectIndex]; + var_v0->unk_070 = (s32) &D_0B006B18; + break; } } else { - temp_v0_5 = D_802874F5; - if (temp_v0_5 != 0) { - if (temp_v0_5 != 1) { - if (temp_v0_5 != 2) { - phi_v0 = (arg0 * 0xE0) + &D_80165C18; - } else { - temp_v0_6 = (arg0 * 0xE0) + &D_80165C18; - temp_v0_6->unk70 = &D_0B006B68; - phi_v0 = temp_v0_6; - } - } else { - temp_v0_7 = (arg0 * 0xE0) + &D_80165C18; - temp_v0_7->unk70 = &D_0B006AC8; - phi_v0 = temp_v0_7; - } - } else { - temp_v0_8 = (arg0 * 0xE0) + &D_80165C18; - temp_v0_8->unk70 = &D_0B006A28; - phi_v0 = temp_v0_8; + temp_v0_2 = D_802874F5; + switch (temp_v0_2) { /* irregular */ + default: + var_v0 = &D_80165C18[objectIndex]; + break; + case 0: + var_v0 = &D_80165C18[objectIndex]; + var_v0->unk_070 = (s32) &D_0B006A28; + break; + case 1: + var_v0 = &D_80165C18[objectIndex]; + var_v0->unk_070 = (s32) &D_0B006AC8; + break; + case 2: + var_v0 = &D_80165C18[objectIndex]; + var_v0->unk_070 = (s32) &D_0B006B68; + break; } } - phi_v0->unk0 = D_800EF470; - temp_v1 = (D_80183F28 * 0xE0) + &D_80165C18; - sp20 = phi_v0; - func_8008B7D4(arg0, temp_v1->unk4, temp_v1->unk8 + 16.0, temp_v1->unkC); - func_8008B80C(arg0, 0, 0, 0); - func_8008B888(arg0, 0, 0, 0); - phi_v0->unk86 = 0x200; - func_80072488(arg0); - func_80086E70(arg0); + var_v0->unk_000 = 0.005f; + temp_v1 = &D_80165C18[*D_80183F28]; + sp20 = var_v0; + func_8008B7D4(objectIndex, temp_v1->unk_004[0], (f32) ((f64) temp_v1->unk_004[1] + 16.0), temp_v1->unk_004[2]); + func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); + func_8008B888(objectIndex, 0U, 0U, 0U); + var_v0->unk_084[1] = 0x0200; + func_80072488(objectIndex); + func_80086E70(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80086700.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? f32_step_towards(void *, ?, ?); /* extern */ -? func_80086F60(s32); /* extern */ -? func_80086FD4(s32); /* extern */ -? func_8008701C(s32, ?); /* extern */ -s32 func_800871AC(s32, ?); /* extern */ -? func_800877C4(s32); /* extern */ -? func_80087C48(s32, ?, ?, ?); /* extern */ -? func_8008BF18(s32); /* extern */ -? func_8009265C(); /* extern */ -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern s8 D_801658D6; +extern s8 D_801658F4; -void func_80086940(s32 arg0) { +void func_80086940(s32 objectIndex) { s8 temp_v0; + struct_80165C18_entry *temp_s0; u16 temp_t8; - void *temp_s0; - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_t8 = temp_s0->unkAE; + temp_s0 = &D_80165C18[objectIndex]; + temp_t8 = (u16) temp_s0->unk_0AE; switch (temp_t8) { case 1: - func_80086FD4(arg0); + func_80086FD4(objectIndex); break; case 2: - f32_step_towards(temp_s0, 0x3CCCCCCD, 0x3A83126F); - func_80087C48(arg0, 0x40C00000, 0x3DCCCCCD, 0xC8); - if (temp_s0->unk3C <= 0.0) { - func_8008701C(arg0, 3); + f32_step_towards(&temp_s0->unk_000, 0.025f, 0.001f); + func_80087C48(objectIndex, 6.0f, 0.1f, 0x000000C8); + if ((f64) temp_s0->unk_038[1] <= 0.0) { + func_8008701C(objectIndex, 3); } break; case 3: - func_800871AC(arg0, 0x64); + func_800871AC(objectIndex, 0x00000064); break; case 4: D_801658D6 = 1; - temp_s0->unk3C = -0.4f; - func_80086FD4(arg0); - temp_s0->unk14 = 90.0f; - temp_s0->unk2C = 60.0f; + temp_s0->unk_038[1] = -0.4f; + func_80086FD4(objectIndex); + temp_s0->unk_010[1] = 90.0f; + temp_s0->unk_028[1] = 60.0f; temp_v0 = D_802874F5; - if (temp_v0 != 1) { - if (temp_v0 != 2) { - - } else { - temp_s0->unk10 = temp_s0->unk10 - 2.0; - temp_s0->unk18 = temp_s0->unk18 - 15.0; - } - } else { - temp_s0->unk10 = temp_s0->unk10 - 3.0; - temp_s0->unk18 = temp_s0->unk18 + 15.0; + switch (temp_v0) { /* switch 1; irregular */ + case 1: /* switch 1 */ + temp_s0->unk_010[0] = (f32) ((f64) temp_s0->unk_010[0] - 3.0); + temp_s0->unk_010[2] = (f32) ((f64) temp_s0->unk_010[2] + 15.0); + break; + case 2: /* switch 1 */ + temp_s0->unk_010[0] = (f32) ((f64) temp_s0->unk_010[0] - 2.0); + temp_s0->unk_010[2] = (f32) ((f64) temp_s0->unk_010[2] - 15.0); + break; } break; case 5: - if (temp_s0->unk2C <= 8.0) { - f32_step_towards(temp_s0 + 0x3C, 0xBDCCCCCD, 0xBC23D70A); + if ((f64) temp_s0->unk_028[1] <= 8.0) { + f32_step_towards(&temp_s0->unk_038[1], -0.1f, -0.01f); } - func_800877C4(arg0); - if (temp_s0->unk2C <= 0.0) { - func_80086FD4(arg0); + func_800877C4(objectIndex); + if ((f64) temp_s0->unk_028[1] <= 0.0) { + func_80086FD4(objectIndex); } break; case 6: - if (func_800871AC(arg0, 0x41) != 0) { + if (func_800871AC(objectIndex, 0x00000041) != 0) { D_801658F4 = 1; } break; case 7: - if (func_800871AC(arg0, 0x64) != 0) { + if (func_800871AC(objectIndex, 0x00000064) != 0) { func_8009265C(); - func_80086F60(arg0); + func_80086F60(objectIndex); } break; } if (D_801658D6 != 0) { - temp_s0->unkC0 = 0xE800; - temp_s0->unkC2 = 0xDA00; - temp_s0->unkBE = temp_s0->unkBE + 0x400; + temp_s0->unk_0C0 = 0xE800; + temp_s0->unk_0C2 = 0xDA00; + temp_s0->unk_0BE += 0x400; } else { - temp_s0->unkBE = temp_s0->unkBE + 0x400; - temp_s0->unkC0 = temp_s0->unkC0 - 0x200; + temp_s0->unk_0BE += 0x400; + temp_s0->unk_0C0 -= 0x200; } - func_8008BF18(arg0); + func_8008BF18(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80086940.s") @@ -13212,39 +11341,35 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80086C14.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800773D8(f32 *, s8); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern s8 D_801658F4; -extern ? D_80165C18; -void func_80086C6C(s32 arg0) { +void func_80086C6C(s32 objectIndex) { f32 sp2C; f32 sp28; f32 sp24; - void *sp20; - f32 temp_f16; + struct_80165C18_entry *sp20; + f32 var_f16; s32 temp_v0; s8 temp_a1; - void *temp_v1; - f32 phi_f16; + struct_80165C18_entry *temp_v1; - temp_v0 = random_int(0xA); - temp_v1 = (arg0 * 0xE0) + &D_80165C18; - temp_f16 = temp_v0; - phi_f16 = temp_f16; + temp_v0 = random_int(0x000AU); + temp_v1 = &D_80165C18[objectIndex]; + var_f16 = (f32) temp_v0; if (temp_v0 < 0) { - phi_f16 = temp_f16 + 4294967296.0f; + var_f16 += 4294967296.0f; } sp20 = temp_v1; - sp24 = phi_f16 + (temp_v1->unk4 - 5.0f); + sp24 = var_f16 + (temp_v1->unk_004[0] - 5.0f); temp_a1 = D_801658F4; - sp2C = random_int(0xA) + (temp_v1->unkC - 5.0f); + sp2C = (f32) random_int(0x000AU) + (temp_v1->unk_004[2] - 5.0f); if (temp_a1 != 0) { - sp28 = temp_v1->unk8 + 14.0; + sp28 = (f32) ((f64) temp_v1->unk_004[1] + 14.0); } else { - sp28 = temp_v1->unk8 - 2.0; + sp28 = (f32) ((f64) temp_v1->unk_004[1] - 2.0); } - func_800773D8(&sp24, temp_a1); + func_800773D8((s32) &sp24, (s32) temp_a1); } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80086C6C.s") diff --git a/src/code_80071F00.h b/src/code_80071F00.h index ea2c33eb0..9ce513efa 100644 --- a/src/code_80071F00.h +++ b/src/code_80071F00.h @@ -2,48 +2,187 @@ #define CODE_80071F00_H #include "common_structs.h" +#include "camera.h" +s32 find_unused_obj_index(s32*); +void func_80071F6C(s32); s32 func_80072044(s32*, s32*, s32); +void func_80072100(s32); void func_800721C0(s32, s32); void func_800721E8(s32, s32); -void func_800722CC(s32, s32); +void func_80072214(s32, s32); s32 func_8007223C(s32, s32); s32 func_80072270(s32, s32); void func_800722A4(s32, s32); +void func_800722CC(s32, s32); +void func_800722F8(s32, s32); +s32 func_80072320(s32, s32); s32 func_80072354(s32, s32); void func_80072388(s32, s32); +void func_800723A4(s32, s32); +void func_80072408(s32); void func_80072428(s32); void func_80072488(s32); +void func_800724DC(s32); void func_800724F8(s32, s32); +s16 func_80072530(s32); +void func_80072568(s32, s32); +void func_800725E8(s32, s32, s32); +s16 func_80072530(s32); +void func_8007266C(s32); +void func_800726CC(s32, s32); +void func_8007271C(s32, s32); +void func_8007274C(s32); s32 func_8007278C(s32, s32); +s32 func_8007281C(s32, s32); +s32 func_800728B0(s32, s32, s32); +void func_80072950(s32, s32, s32, s32); +void func_80072974(s32, s32, s32, s32); +void func_80072998(s32); +void func_800729B4(s32, s32); +void func_800729D0(s32, s32); +void func_80072A78(s32, s32); +s32 func_80072B48(s32, s32); +void func_80072C00(s32, s32, s32, s32); +void func_80072D3C(s32, s32, s32, s32, s32); +s32 func_80072E54(s32, s32, s32, s32, s32, s32); +s32 func_80072F88(s32, s32, s32, s32, s32, s32); +s32 func_800730BC(s32, s32, s32, s32, s32, s32); +s32 func_8007326C(s32, s32, s32, s32, s32, s32); +void func_80073404(s32, u8, u8, s32); +void func_80073444(s32, s32*, s32*, u8, u16); +void func_8007348C(s32, s32*, u8, u8, s32); +void func_800734D4(); +void func_800734DC(s32); +void func_80073514(s32); +void func_80073568(); +void func_800735BC(s32, s32, f32); +void func_80073600(s32); +void func_80073654(s32); +void func_8007369C(s32, s32); +void func_800736E0(s32); +void func_80073720(s32); +s32 func_8007375C(s32, s32); void func_80073800(s32, s32); void func_8007381C(s32); +void func_80073844(s32); +void func_80073884(s32); s32 func_800738A8(s32, s16*, s32, s32, s32, s32, s32); +void func_80073998(s32, s16*, s32, s32, s32, s32, s32); +void func_800739CC(s32, s16*, s32, s32, s32, s32, s32); s32 func_80073A10(s32, s16*, s32, s32, s32, s32, s32); s32 func_80073B00(s32, s16*, s32, s32, s32, s32, s32); +s32 func_80073B34(s32, s16*, s32, s32, s32, s32, s32); s32 func_80073B78(s32, s32, s16*, s32, s32, s32, s32, s32); +void func_80073CB0(s32, s16*, s32, s32, s32, s32, s32); +void func_80073D0C(s32, s16*, s32, s32, s32, s32, s32); +void func_80073D68(s32, s16*, s16, s32); +void func_80073DC0(s32, s16*, s16, s32); +s32 func_80073E18(s32, u16*, u16, s32); +s32 func_80073ED4(s32, u16*, u16, s32); void func_80073F90(s32, s32); void func_80073FAC(s32); +void func_80073FD4(s32); +void func_80074014(); s32 func_8007401C(s32, f32*, f32, f32, f32, s32, s32); +s32 func_80074118(s32, f32*, f32, f32, f32, s32, s32); s32 func_8007415C(s32, f32*, f32, f32, f32, s32, s32); s32 func_800741B4(s32, f32*, f32, f32, f32, s32, s32); +void func_800742A8(s32, f32*, f32, f32, f32, s32, s32); +void func_800742EC(s32, f32*, f32, f32, f32, s32, s32); +void func_80074344(s32, f32*, f32, f32, f32, s32, s32); +void func_80074478(s32); void func_800744A0(s32); -void func_800744CC(void); +void func_800744CC(); +void func_80074510(uintptr_t, void*, size_t); +void func_800745C8(s32, s32); +void func_8007466C(s32, s32); +void func_80074704(s32, s32); +s32 func_80074790(s32, s32); void func_800747F0(s32); +void func_80074894(s32, s32); +void func_800748C4(s32, s32); +void func_800748F4(s32, s32); void func_80074924(s32); +void func_80074D94(s32); +void func_80074E28(s32); +void func_80075574(s32, Vec3f, f32); void func_80075698(s32); -void func_800759EC(s32, s32*, f32); +void func_80075714(s32); +void func_800759EC(s32, Vec3f, f32); +s32 func_80075A6C(s32, s32, f32); void func_80075B08(s32); -void func_80075E5C(s32, void*, u16, s32, s32); +void func_80075B84(s32); +void func_80075E5C(s32, Vec3f, u16, f32, s32); +s32 func_80075F28(Vec3f, u16, f32, s32); void func_80075F98(Vec3f, s32, f32); -void func_80086E70(s32); -void func_80086F60(s32); -void func_800877C4(s32); -void func_8008A6DC(s32, f32); -s32 func_8008A8B0(s16, s16); - -// code_80086E70.c -void func_8008BF18(s32); +void func_8007601C(s32); +void func_80076194(s32, Vec3f, f32, s32); +void func_80076538(s32); +void func_80086604(); +void func_8007675C(s32, Vec3s, s32); +void func_80076B7C(); +void func_80076DC4(s32); +void func_80076E14(s32); +void func_80076ED8(s32); +void func_800773D8(s32, s32); +void func_80077428(s32); +void func_80077640(); +void func_80077B14(s32); +void func_80077B3C(s32); +void func_80077BCC(s32); +void func_80078C68(); +void func_80078C70(s32); +void func_80079054(s32); +void func_80079084(s32); +void func_800790B4(s32); +void func_800790E4(s32); +void func_8007993C(s32, Player*); +void func_80079A5C(s32, Player*); +void func_8007A884(); +void func_8007A910(s32); +void func_8007A948(s32); +void func_8007AA44(s32); +u8 gen_random_item(s16, s16); +u8 func_8007AF40(s32, s16); +u8 func_8007AF78(s32, s16); +void func_8007BB9C(); +void func_8007BDA8(); +void func_8007C2F8(s32); +void func_8007C340(); +void func_8007C49C(); +s32 func_8007D804(s32); +void func_8007D8AC(s32); +void func_8007D8D4(s32, s32); +void func_8007DA4C(s32); +void func_8007DA74(s32); +void func_8007DAF8(s32, s32); +s32 func_8007E50C(s32, Player*, Camera*); +void func_8007F660(s32, s32, s32); +void func_8007F6C4(s32, s32); +void func_8007FEA4(s32); +void func_800806BC(s32); +void func_8008078C(s32); +void func_8008085C(s32); +void func_80080A14(s32, Player*); +void func_80081208(); +void func_80081210(); +void func_80081790(s32); +void func_80081924(s32); +void func_80082C30(s32); +void func_80083060(s32); +void func_80083248(s32); +void func_8008379C(s32); +void func_80083948(s32); +void func_80083BE4(s32); +void func_80083F18(s32); +void func_80085024(); +void func_8008502C(s32, s32); +void func_80085080(s32); +void func_80085534(s32); +void func_80085BB4(s32); +void func_80086424(s32); +void func_80086D80(); // audio/external.c void func_800C9D80(Vec3f, f32*, s32); @@ -52,6 +191,8 @@ void func_800C9EF4(Vec3f, s32); s32 osPiStartDma(OSIoMesg *mb, s32 priority, s32 direction, uintptr_t devAddr, void *vAddr, size_t nbytes, OSMesgQueue *mq); s32 osRecvMesg(OSMesgQueue*, OSMesg*, s32); +extern s8 D_8018EDF3; + extern OSMesgQueue gDmaMesgQueue; extern OSMesg gMainReceivedMesg; extern OSIoMesg gDmaIoMesg; @@ -61,8 +202,9 @@ extern f32 D_800EEAD8; extern f64 D_800EEAE0; extern f32 D_800EEAE8; extern s16 D_80165740; -extern struct_80165C18_entry D_80165C18[]; +extern s8 D_801657B4; extern s32 D_80183D5C; +extern s32 D_80183DB8[]; extern s32 D_80183E38; extern s32 D_80183E4C; extern s32 D_80183E5C; diff --git a/src/code_80086E70.c b/src/code_80086E70.c index 2ba66aa24..62187d527 100644 --- a/src/code_80086E70.c +++ b/src/code_80086E70.c @@ -2,32 +2,19 @@ #include #include #include +#include "camera.h" +#include "objects.h" +#include "math_util.h" #include "math_util_2.h" +#include "memory.h" +#include "code_80071F00.h" +#include "code_80086E70.h" -// Struct from 80071F00.c -// No idea if it goes here. But it gets us to the size requirement. -// Once we find out what this actually is, we can replace it. -struct struct_E0 { - union { - s8 s8; - s16 s16; - } unk00; - s16 unk2; - s8 unk4[0xDC]; -}; // Size 0xE0 -extern struct struct_E0 D_80165CC6[]; - -extern s16 D_8018CF68[]; -extern s32 gPlayerCountSelection1; - -void func_800721E8(s32, s32); // extern void func_80086E70(s32 arg0) { - D_80165CC6[arg0].unk00.s16 = 1;// * 0xE0)) = 1; + D_80165C18[arg0].unk_0AE = 1;// * 0xE0)) = 1; func_800721E8(arg0, 8); } -extern struct_80165C18_entry D_80165C18[]; - void func_80086EAC(s32 arg0, s32 arg1, s16 arg2) { D_80165C18[arg0].unk_0DD = arg1; D_80165C18[arg0].unk_0AE = arg2; @@ -51,11 +38,9 @@ void func_80086F60(s32 arg0) { func_800721E8(arg0, 8); } -extern struct struct_E0 D_80165CC6[]; - s32 func_80086FA4(s32 arg0) { s32 ret = 0; - if (D_80165CC6[arg0].unk00.s16 == 0) { + if (D_80165C18[arg0].unk_0AE == 0) { ret = 1; } return ret; @@ -68,291 +53,146 @@ void func_80086FD4(s32 arg0) { void func_8008701C(s32 arg0, s32 arg1) { func_800721E8(arg0, 8); - D_80165CC6[arg0].unk00.s16 = arg1; + D_80165C18[arg0].unk_0AE = arg1; } -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_800721E8(s32, ?); // extern -s32 func_80072270(?); // extern -extern ? D_80165C18; -extern ? D_80165CC8; - -s32 func_80087060(s32 arg0, s32 arg1) { +s32 func_80087060(s32 objectIndex, s32 arg1) { s32 sp1C; - s32 temp_a0; - void *temp_v0; - s32 phi_a0; sp1C = 0; - temp_a0 = arg0; - phi_a0 = temp_a0; - if (func_80072270(8) != 0) { - arg0 = temp_a0; - func_800721C0(temp_a0, 8); - *(&D_80165CC8 + (arg0 * 0xE0)) = arg1; - phi_a0 = arg0; + if (func_80072270(objectIndex, 8) != 0) { + func_800721C0(objectIndex, 8); + D_80165C18[objectIndex].unk_0B0 = arg1; } - temp_v0 = (phi_a0 * 0xE0) + &D_80165C18; - temp_v0->unkB0 = temp_v0->unkB0 - 1; - if (temp_v0->unkB0 < 0) { - func_800721E8(phi_a0, 8); + D_80165C18[objectIndex].unk_0B0--; + if (D_80165C18[objectIndex].unk_0B0 < 0) { + func_800721E8(objectIndex, 8); sp1C = 1; } return sp1C; } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_80087060.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_800721E8(s32, ?); // extern -s32 func_80072270(?); // extern -extern ? D_80165C18; -extern ? D_80165CC8; - -s32 func_80087104(s32 arg0, u16 arg1) { +s32 func_80087104(s32 objectIndex, u16 arg1) { s32 sp24; - void *temp_v0; sp24 = 0; - if (func_80072270(8) != 0) { - func_800721C0(arg0, 8); - *(&D_80165CC8 + (arg0 * 0xE0)) = random_int(arg1); + if (func_80072270(objectIndex, 8) != 0) { + func_800721C0(objectIndex, 8); + D_80165C18[objectIndex].unk_0B0 = random_int(arg1); } - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unkB0 = temp_v0->unkB0 - 1; - if (temp_v0->unkB0 < 0) { - func_800721E8(arg0, 8); + D_80165C18[objectIndex].unk_0B0--; + if (D_80165C18[objectIndex].unk_0B0 < 0) { + func_800721E8(objectIndex, 8); sp24 = 1; } return sp24; } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_80087104.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_800721E8(s32, ?); // extern -s32 func_80072270(?); // extern -? func_80086FD4(s32); // extern -extern ? D_80165C18; -extern ? D_80165CC8; - -s32 func_800871AC(s32 arg0, s32 arg1) { +s32 func_800871AC(s32 objectIndex, s32 arg1) { s32 sp24; - void *temp_v0; sp24 = 0; - if (func_80072270(8) != 0) { - func_800721C0(arg0, 8); - *(&D_80165CC8 + (arg0 * 0xE0)) = arg1; + if (func_80072270(objectIndex, 8) != 0) { + func_800721C0(objectIndex, 8); + D_80165C18[objectIndex].unk_0B0 = (s16) arg1; } - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unkB0 = temp_v0->unkB0 - 1; - if (temp_v0->unkB0 < 0) { - func_800721E8(arg0, 8); - func_80086FD4(arg0); + D_80165C18[objectIndex].unk_0B0--; + if (D_80165C18[objectIndex].unk_0B0 < 0) { + func_800721E8(objectIndex, 8); + func_80086FD4(objectIndex); sp24 = 1; } return sp24; } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_800871AC.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? atan2s(f32, f32); // extern -extern ? D_80165C18; - -void func_800872D8(s32 arg0, void *arg1) { - void *temp_v0; - - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - atan2s(temp_v0->unk4 - arg1->unk0, temp_v0->unkC - arg1->unk8); +UNUSED void func_80087258(s32 objectIndex, s32 arg1, f32 arg2) { + D_80165C18[objectIndex].unk_028[1] += arg2; + D_80165C18[objectIndex].unk_028[2] -= arg2; } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_800872D8.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s32 atan2s(f32, f32); // extern -extern ? D_80165C18; - -s32 func_80087324(s32 arg0) { - void *temp_v0; - - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - return -atan2s(temp_v0->unk3C, temp_v0->unk40) & 0xFFFF; +UNUSED s32 func_80087294(s32 objectIndex, Player *player) { + return func_80041770(player->pos[0], D_80165C18[objectIndex].unk_004[0], player->pos[2], D_80165C18[objectIndex].unk_004[2]); } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_80087324.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? atan2s(f32, f32); // extern -extern ? D_80165C18; - -void func_80087368(s32 arg0) { - void *temp_v0; - - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - atan2s(temp_v0->unk38, temp_v0->unk40); +s32 func_800872D8(s32 objectIndex, Camera *camera) { + return atan2s(D_80165C18[objectIndex].unk_004[0] - camera->pos[0], D_80165C18[objectIndex].unk_004[2] - camera->pos[2]); } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_80087368.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -u16 func_800417B4(u16, s32); // extern -s32 func_80087368(); // extern -extern ? D_80165C18; - -void func_800873F4(s32 arg0) { - void *sp18; - s32 temp_v0; - void *temp_v1; - - temp_v0 = func_80087368(); - temp_v1 = (arg0 * 0xE0) + &D_80165C18; - sp18 = temp_v1; - temp_v1->unkC0 = func_800417B4(temp_v1->unkC0, temp_v0 & 0xFFFF); +u16 func_80087324(s32 objectIndex) { + return -atan2s(D_80165C18[objectIndex].unk_038[1], D_80165C18[objectIndex].unk_038[2]); } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_800873F4.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -f32 sins(u16); // extern -f32 coss(u16); // extern -extern ? D_80165C18; - -void func_8008751C(s32 arg0) { - void *sp1C; - void *temp_v0; - - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - sp1C = temp_v0; - temp_v0->unk38 = sins(temp_v0->unkC0) * temp_v0->unk34; - temp_v0->unk40 = coss(temp_v0->unkC0) * temp_v0->unk34; +s32 func_80087368(s32 objectIndex) { + return atan2s(D_80165C18[objectIndex].unk_038[0], D_80165C18[objectIndex].unk_038[2]); } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008751C.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -f32 sins(u16); // extern -f32 coss(u16); // extern -extern ? D_80165C18; +UNUSED void func_800873A4(s32 objectIndex) { + D_80165C18[objectIndex].unk_0BE = func_800417B4(D_80165C18[objectIndex].unk_0BE, func_80087324(objectIndex)); +} -void func_8008757C(s32 arg0) { +void func_800873F4(s32 objectIndex) { + D_80165C18[objectIndex].unk_0C0 = func_800417B4(D_80165C18[objectIndex].unk_0C0, func_80087368(objectIndex)); +} + +UNUSED void func_80087444(s32 objectIndex) { + D_80165C18[objectIndex].unk_038[0] = D_80165C18[objectIndex].unk_034 * sins(D_80165C18[objectIndex].unk_0C0); +} + +UNUSED void func_8008748C(s32 objectIndex) { + D_80165C18[objectIndex].unk_038[1] = D_80165C18[objectIndex].unk_034 * coss(D_80165C18[objectIndex].unk_0BE); +} + +UNUSED void func_800874D4(s32 objectIndex) { + D_80165C18[objectIndex].unk_038[2] = D_80165C18[objectIndex].unk_034 * coss(D_80165C18[objectIndex].unk_0C0); +} + +void func_8008751C(s32 objectIndex) { + D_80165C18[objectIndex].unk_038[0] = D_80165C18[objectIndex].unk_034 * sins(D_80165C18[objectIndex].unk_0C0); + D_80165C18[objectIndex].unk_038[2] = D_80165C18[objectIndex].unk_034 * coss(D_80165C18[objectIndex].unk_0C0); +} + +void func_8008757C(s32 objectIndex) { f32 sp24; - void *temp_s0; - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - sp24 = coss(temp_s0->unkBE); - temp_s0->unk38 = sins(temp_s0->unkC0) * (temp_s0->unk34 * sp24); - temp_s0->unk3C = sins(temp_s0->unkBE) * -temp_s0->unk34; - sp24 = coss(temp_s0->unkBE); - temp_s0->unk40 = coss(temp_s0->unkC0) * (temp_s0->unk34 * sp24); + sp24 = coss(D_80165C18[objectIndex].unk_0BE); + D_80165C18[objectIndex].unk_038[0] = (D_80165C18[objectIndex].unk_034 * sp24) * sins(D_80165C18[objectIndex].unk_0C0); + D_80165C18[objectIndex].unk_038[1] = -D_80165C18[objectIndex].unk_034 * sins(D_80165C18[objectIndex].unk_0BE); + sp24 = coss(D_80165C18[objectIndex].unk_0BE); + D_80165C18[objectIndex].unk_038[2] = (D_80165C18[objectIndex].unk_034 * sp24) * coss(D_80165C18[objectIndex].unk_0C0); } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008757C.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -f32 sins(s32); // extern -f32 coss(s32); // extern -extern ? D_80165C18; - -void func_80087620(s32 arg0) { - void *sp1C; - void *temp_v0; - - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - sp1C = temp_v0; - temp_v0->unk38 = sins((temp_v0->unkC0 + 0x8000) & 0xFFFF) * temp_v0->unk34; - temp_v0->unk40 = coss((temp_v0->unkC0 + 0x8000) & 0xFFFF) * temp_v0->unk34; +void func_80087620(s32 objectIndex) { + D_80165C18[objectIndex].unk_038[0] = D_80165C18[objectIndex].unk_034 * sins(D_80165C18[objectIndex].unk_0C0 + 0x8000); + D_80165C18[objectIndex].unk_038[2] = D_80165C18[objectIndex].unk_034 * coss(D_80165C18[objectIndex].unk_0C0 + 0x8000); } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_80087620.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -f32 sins(u16); // extern -f32 coss(u16); // extern -extern ? D_80165C18; - -void func_800876A0(s32 arg0) { - void *sp18; - void *temp_v0; - - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - sp18 = temp_v0; - temp_v0->unk28 = temp_v0->unk28 + (temp_v0->unk34 * sins(temp_v0->unkC0)); - temp_v0->unk30 = temp_v0->unk30 + (temp_v0->unk34 * coss(temp_v0->unkC0)); +void func_800876A0(s32 objectIndex) { + D_80165C18[objectIndex].unk_028[0] += D_80165C18[objectIndex].unk_034 * sins(D_80165C18[objectIndex].unk_0C0); + D_80165C18[objectIndex].unk_028[2] += D_80165C18[objectIndex].unk_034 * coss(D_80165C18[objectIndex].unk_0C0); } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_800876A0.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern ? D_80165C18; - -void func_80087710(s32 arg0) { - void *temp_v0; - - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unk28 = temp_v0->unk28 + temp_v0->unk38; - temp_v0->unk2C = temp_v0->unk2C + temp_v0->unk3C; - temp_v0->unk30 = temp_v0->unk30 + temp_v0->unk40; +void func_80087710(s32 objectIndex) { + D_80165C18[objectIndex].unk_028[0] += D_80165C18[objectIndex].unk_038[0]; + D_80165C18[objectIndex].unk_028[1] += D_80165C18[objectIndex].unk_038[1]; + D_80165C18[objectIndex].unk_028[2] += D_80165C18[objectIndex].unk_038[2]; } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_80087710.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern ? D_80165C18; - -void func_8008775C(s32 arg0) { - void *temp_v0; - - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unk28 = temp_v0->unk28 + temp_v0->unk38; - temp_v0->unk30 = temp_v0->unk30 + temp_v0->unk40; +void func_8008775C(s32 objectIndex) { + D_80165C18[objectIndex].unk_028[0] += D_80165C18[objectIndex].unk_038[0]; + D_80165C18[objectIndex].unk_028[2] += D_80165C18[objectIndex].unk_038[2]; } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008775C.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern ? D_80165C18; - -void func_800877C4(s32 arg0) { - void *temp_v0; - - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unk2C = temp_v0->unk2C + temp_v0->unk3C; +UNUSED void func_80087798(s32 objectIndex) { + D_80165C18[objectIndex].unk_028[0] += D_80165C18[objectIndex].unk_038[0]; +} + +void func_800877C4(s32 objectIndex) { + D_80165C18[objectIndex].unk_028[1] += D_80165C18[objectIndex].unk_038[1]; +} + +UNUSED void func_800877F0(s32 objectIndex) { + D_80165C18[objectIndex].unk_028[2] += D_80165C18[objectIndex].unk_038[2]; } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_800877C4.s") -#endif void func_8008781C(s32 arg0) { func_8008751C(arg0); @@ -368,307 +208,199 @@ f32 func_8008786C(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4) { return (((arg4 - arg2) / (arg3 - arg1)) * (arg0 - arg1)) + arg2; } -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_800721E8(s32, ?); // extern -s32 func_80072270(?); // extern -? func_8008751C(s32); // extern -? func_8008775C(s32); // extern -extern ? D_80165C18; -extern ? D_80165CC8; - -s32 func_8008789C(s32 arg0, s32 arg1) { +s32 func_8008789C(s32 objectIndex, s32 arg1) { s32 sp24; - void *temp_v0; sp24 = 0; - if (func_80072270(8) != 0) { - func_800721C0(arg0, 8); - func_8008751C(arg0); - *(&D_80165CC8 + (arg0 * 0xE0)) = arg1; + if (func_80072270(objectIndex, 8) != 0) { + func_800721C0(objectIndex, 8); + func_8008751C(objectIndex); + D_80165C18[objectIndex].unk_0B0 = arg1; } - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unkB0 = temp_v0->unkB0 - 1; - if (temp_v0->unkB0 < 0) { - func_800721E8(arg0, 8); + D_80165C18[objectIndex].unk_0B0--; + if (D_80165C18[objectIndex].unk_0B0 < 0) { + func_800721E8(objectIndex, 8); sp24 = 1; } else { - func_8008775C(arg0); + func_8008775C(objectIndex); } return sp24; } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008789C.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_800721E8(s32, ?); // extern -s32 func_80072270(?); // extern -? func_80087620(s32); // extern -? func_8008775C(s32); // extern -extern ? D_80165C18; -extern ? D_80165CC8; - -s32 func_80087954(s32 arg0, s32 arg1) { +s32 func_80087954(s32 objectIndex, s32 arg1) { s32 sp24; - void *temp_v0; sp24 = 0; - if (func_80072270(8) != 0) { - func_800721C0(arg0, 8); - func_80087620(arg0); - *(&D_80165CC8 + (arg0 * 0xE0)) = arg1; + if (func_80072270(objectIndex, 8) != 0) { + func_800721C0(objectIndex, 8); + func_80087620(objectIndex); + D_80165C18[objectIndex].unk_0B0 = arg1; } - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unkB0 = temp_v0->unkB0 - 1; - if (temp_v0->unkB0 < 0) { - func_800721E8(arg0, 8); + D_80165C18[objectIndex].unk_0B0--; + if (D_80165C18[objectIndex].unk_0B0 < 0) { + func_800721E8(objectIndex, 8); sp24 = 1; } else { - func_8008775C(arg0); + func_8008775C(objectIndex); } return sp24; } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_80087954.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_800721E8(s32, ?); // extern -s32 func_80072270(?); // extern -? func_8008751C(s32); // extern -? func_8008775C(s32); // extern -s16 atan2s(f32, f32, s16); // extern -extern ? D_80165C18; - -s32 func_80087A0C(s32 arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4) { +s32 func_80087A0C(s32 objectIndex, s16 arg1, s16 arg2, s16 arg3, s16 arg4) { s16 sp36; - s32 sp2C; - s32 sp28; - s32 sp24; - void *sp20; s16 temp_a0; s16 temp_v0; - void *temp_v1; - void *temp_v1_2; + s32 sp2C; sp2C = 0; - if (func_80072270(8) != 0) { - func_800721C0(arg0, 8); + if (func_80072270(objectIndex, 8) != 0) { + func_800721C0(objectIndex, 8); temp_v0 = arg2 - arg1; temp_a0 = arg4 - arg3; - sp24 = temp_a0; - sp28 = temp_v0; - temp_v1 = (arg0 * 0xE0) + &D_80165C18; sp36 = sqrtf((temp_v0 * temp_v0) + (temp_a0 * temp_a0)); - temp_v1->unk14 = 0.0f; - sp20 = temp_v1; - temp_v1->unkC0 = atan2s(temp_v0, temp_a0, temp_a0); - func_8008751C(arg0); - temp_v1->unkB0 = sp36 / temp_v1->unk34; + D_80165C18[objectIndex].unk_010[1] = 0.0f; + D_80165C18[objectIndex].unk_0C0 = atan2s(temp_v0, temp_a0); + func_8008751C(objectIndex); + D_80165C18[objectIndex].unk_0B0 = sp36 / D_80165C18[objectIndex].unk_034; } - temp_v1_2 = (arg0 * 0xE0) + &D_80165C18; - temp_v1_2->unkB0 = temp_v1_2->unkB0 - 1; - if (temp_v1_2->unkB0 < 0) { - func_800721E8(arg0, 8); + D_80165C18[objectIndex].unk_0B0--; + if (D_80165C18[objectIndex].unk_0B0 < 0) { + func_800721E8(objectIndex, 8); sp2C = 1; } else { - func_8008775C(arg0); + func_8008775C(objectIndex); } return sp2C; } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_80087A0C.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_800721E8(s32, ?); // extern -s32 func_80072270(?); // extern -? func_80086FD4(s32); // extern -? func_800877C4(s32); // extern -extern ? D_80165C18; -extern ? D_80165C54; - -s32 func_80087B84(s32 arg0, f32 arg1, f32 arg2) { +s32 func_80087B84(s32 objectIndex, f32 arg1, f32 arg2) { s32 sp24; - void *sp20; sp24 = 0; - if (func_80072270(8) != 0) { - func_800721C0(arg0, 8); - *(&D_80165C54 + (arg0 * 0xE0)) = -arg1; + if (func_80072270(objectIndex, 8) != 0) { + func_800721C0(objectIndex, 8); + D_80165C18[objectIndex].unk_038[1] = -arg1; } - sp20 = (arg0 * 0xE0) + &D_80165C18; - func_800877C4(arg0); - if (sp20->unk8 <= arg2) { - func_800721E8(arg0, 8); - func_80086FD4(arg0); + func_800877C4(objectIndex); + if (D_80165C18[objectIndex].unk_004[1] <= arg2) { + func_800721E8(objectIndex, 8); + func_80086FD4(objectIndex); sp24 = 1; } return sp24; } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_80087B84.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_800721E8(s32, ?); // extern -s32 func_80072270(?); // extern -? func_80086FD4(s32); // extern -? func_800877C4(s32); // extern -extern ? D_80165C18; - -s32 func_80087C48(s32 arg0, f32 arg1, f32 arg2, s32 arg3) { +s32 func_80087C48(s32 objectIndex, f32 arg1, f32 arg2, s32 arg3) { s32 sp24; - void *temp_v0; - void *temp_v0_2; sp24 = 0; - if (func_80072270(8) != 0) { - func_800721C0(arg0, 8); - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unk3C = arg1; - temp_v0->unkB0 = arg3; + if (func_80072270(objectIndex, 8) != 0) { + func_800721C0(objectIndex, 8); + D_80165C18[objectIndex].unk_038[1] = arg1; + D_80165C18[objectIndex].unk_0B0 = (s16) arg3; } - temp_v0_2 = (arg0 * 0xE0) + &D_80165C18; - temp_v0_2->unkB0 = temp_v0_2->unkB0 - 1; - if (temp_v0_2->unkB0 < 0) { - func_800721E8(arg0, 8); - func_80086FD4(arg0); + D_80165C18[objectIndex].unk_0B0--; + if (D_80165C18[objectIndex].unk_0B0 < 0) { + func_800721E8(objectIndex, 8); + func_80086FD4(objectIndex); sp24 = 1; } else { - temp_v0_2->unk3C = temp_v0_2->unk3C - arg2; - func_800877C4(arg0); + D_80165C18[objectIndex].unk_038[1] -= arg2; + func_800877C4(objectIndex); } return sp24; } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_80087C48.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_800721E8(s32, ?); // extern -s32 func_80072270(?); // extern -? func_80086FD4(s32); // extern -? func_800877C4(s32); // extern -extern ? D_80165C18; -extern ? D_80165C54; - -s32 func_80087D24(s32 arg0, f32 arg1, f32 arg2, f32 arg3) { +s32 func_80087D24(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3) { s32 sp24; - void *sp20; - void *temp_v0; sp24 = 0; - if (func_80072270(8) != 0) { - func_800721C0(arg0, 8); - *(&D_80165C54 + (arg0 * 0xE0)) = arg1; + if (func_80072270(objectIndex, 8) != 0) { + func_800721C0(objectIndex, 8); + D_80165C18[objectIndex].unk_038[1] = arg1; } - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - sp20 = temp_v0; - temp_v0->unk3C = temp_v0->unk3C - arg2; - func_800877C4(arg0); - if (temp_v0->unk2C <= arg3) { - sp20 = temp_v0; - func_800721E8(arg0, 8); - temp_v0->unk2C = arg3; - func_80086FD4(arg0); + D_80165C18[objectIndex].unk_038[1] -= arg2; + func_800877C4(objectIndex); + if (D_80165C18[objectIndex].unk_028[1] <= arg3) { + func_800721E8(objectIndex, 8); + D_80165C18[objectIndex].unk_028[1] = arg3; + func_80086FD4(objectIndex); sp24 = 1; } return sp24; } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_80087D24.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_800721E8(s32, ?); // extern -s32 func_80072270(?); // extern -? func_80086FD4(s32); // extern -? func_8008751C(s32); // extern -? func_80087710(s32); // extern -extern ? D_80165C18; - -s32 func_80087E08(s32 arg0, f32 arg1, f32 arg2, f32 arg3, s16 arg4, s32 arg5) { +s32 func_80087E08(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3, s16 arg4, s32 arg5) { s32 sp2C; - void *sp24; - void *temp_v0; - void *temp_v0_2; + s32 stackPadding; sp2C = 0; - if (func_80072270(8) != 0) { - func_800721C0(arg0, 8); - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - sp24 = temp_v0; - temp_v0->unk30 = 0.0f; - temp_v0->unk2C = 0.0f; - temp_v0->unk28 = 0.0f; - temp_v0->unk34 = arg3; - temp_v0->unk3C = arg1; - temp_v0->unkC0 = arg4; - func_8008751C(arg0); - temp_v0->unkB0 = arg5; + if (func_80072270(objectIndex, 8) != 0) { + func_800721C0(objectIndex, 8); + D_80165C18[objectIndex].unk_028[2] = 0.0f; + D_80165C18[objectIndex].unk_028[1] = 0.0f; + D_80165C18[objectIndex].unk_028[0] = 0.0f; + D_80165C18[objectIndex].unk_034 = arg3; + D_80165C18[objectIndex].unk_038[1] = arg1; + D_80165C18[objectIndex].unk_0C0 = arg4; + func_8008751C(objectIndex); + D_80165C18[objectIndex].unk_0B0 = arg5; } - temp_v0_2 = (arg0 * 0xE0) + &D_80165C18; - temp_v0_2->unkB0 = temp_v0_2->unkB0 - 1; - if (temp_v0_2->unkB0 < 0) { - func_800721E8(arg0, 8); - func_80086FD4(arg0); + D_80165C18[objectIndex].unk_0B0--; + if (D_80165C18[objectIndex].unk_0B0 < 0) { + func_800721E8(objectIndex, 8); + func_80086FD4(objectIndex); sp2C = 1; } else { - temp_v0_2->unk3C = temp_v0_2->unk3C - arg2; - func_80087710(arg0); + D_80165C18[objectIndex].unk_038[1] -= arg2; + func_80087710(objectIndex); } return sp2C; } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_80087E08.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -f32 sins(s32); // extern -f32 coss(u16); // extern -extern ? D_80165C18; +UNUSED s32 func_80087F14(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3, s16 arg4, s32 arg5) { + s32 sp2C; + s32 stackPadding; + + sp2C = 0; + if (func_80072270(objectIndex, 8) != 0) { + func_800721C0(objectIndex, 8); + D_80165C18[objectIndex].unk_028[2] = 0.0f; + D_80165C18[objectIndex].unk_028[1] = 0.0f; + D_80165C18[objectIndex].unk_028[0] = 0.0f; + D_80165C18[objectIndex].unk_034 = arg3; + D_80165C18[objectIndex].unk_038[1] = arg1; + D_80165C18[objectIndex].unk_0C0 = arg4; + func_8008751C(objectIndex); + D_80165C18[objectIndex].unk_0B0 = gVBlankTimer; + } + if (D_80165C18[objectIndex].unk_028[1] <= arg5) { + func_800721E8(objectIndex, 8); + func_80086FD4(objectIndex); + sp2C = 1; + } else { + D_80165C18[objectIndex].unk_038[1] -= arg2; + func_80087710(objectIndex); + } + return sp2C; +} + +void func_80088038(s32 objectIndex, f32 arg1, u16 arg2) { + f32 temp_f4; + f32 sp20; + + temp_f4 = D_80165C18[objectIndex].unk_028[0]; + sp20 = D_80165C18[objectIndex].unk_028[2]; + D_80165C18[objectIndex].unk_0C4 += arg2; + D_80165C18[objectIndex].unk_028[0] = sins(D_80165C18[objectIndex].unk_0C4) * arg1; + D_80165C18[objectIndex].unk_028[2] = coss(D_80165C18[objectIndex].unk_0C4) * arg1; + D_80165C18[objectIndex].unk_038[0] = D_80165C18[objectIndex].unk_028[0] - temp_f4; + D_80165C18[objectIndex].unk_038[2] = D_80165C18[objectIndex].unk_028[2] - sp20; +} + +UNUSED void func_800880DC(void) { -void func_80088038(s32 arg0, f32 arg1, s32 arg2) { - f32 sp24; - f32 sp20; - void *sp1C; - f32 temp_f2; - f32 temp_f4; - u16 temp_t0; - void *temp_v0; - - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_f4 = temp_v0->unk28; - temp_t0 = temp_v0->unkC4 + arg2; - temp_v0->unkC4 = temp_t0; - sp1C = temp_v0; - sp24 = temp_f4; - sp20 = temp_v0->unk30; - temp_v0->unk28 = sins(temp_t0 & 0xFFFF) * arg1; - temp_f2 = coss(temp_v0->unkC4) * arg1; - temp_v0->unk30 = temp_f2; - temp_v0->unk38 = temp_v0->unk28 - temp_f4; - temp_v0->unk40 = temp_f2 - sp20; } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_80088038.s") -#endif #ifdef MIPS_TO_C //generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 @@ -742,23 +474,20 @@ GLOBAL_ASM("asm/non_matchings/code_80086E70/func_80088178.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80086FD4(); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +void func_80088228(s32 objectIndex) { + s32 temp_v1; + struct_80165C18_entry *temp_v0; -void func_80088228(s32 arg0) { - void *temp_v0; - void *temp_v1; - - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v1 = temp_v0->unk80 + 2; - temp_v0->unk96 = 0; - temp_v0->unk7C = temp_v1; - temp_v0->unk94 = temp_v1->unk-2; - temp_v0->unk28 = temp_v1->unk0; - temp_v0->unk2C = temp_v1->unk2; - temp_v0->unk30 = temp_v1->unk4; - func_80086FD4(); + temp_v0 = &D_80165C18[objectIndex]; + temp_v1 = temp_v0->unk_080 + 2; + temp_v0->unk_084[9] = 0; + temp_v0->unk_07C = temp_v1; + temp_v0->unk_084[8] = temp_v1->unk-2; + temp_v0->unk_028[0] = (f32) temp_v1->unk0; + temp_v0->unk_028[1] = (f32) temp_v1->unk2; + temp_v0->unk_028[2] = (f32) temp_v1->unk4; + func_80086FD4(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80086E70/func_80088228.s") @@ -793,345 +522,321 @@ GLOBAL_ASM("asm/non_matchings/code_80086E70/func_800882B0.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800876A0(s32); // extern -? func_800880E4(); // extern -? func_80088150(s32); // extern -? func_80088178(s32, ?); // extern -s32 func_800882B0(s32, ?); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_800880E4(); /* extern */ +? func_80088178(s32, ?); /* extern */ +s32 func_800882B0(s32, ?); /* extern */ -void func_80088364(s32 arg0) { - u16 temp_t9; - void *temp_v0; +void func_80088364(s32 objectIndex) { + s16 temp_t9; + struct_80165C18_entry *temp_v0; func_800880E4(); - func_80088178(arg0, 1); - func_800876A0(arg0); - if (func_800882B0(arg0, 0xA) != 0) { - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_t9 = temp_v0->unk96 + 1; - temp_v0->unk96 = temp_t9; - if (((temp_t9 & 0xFFFF) + 3) == temp_v0->unk94) { - temp_v0->unkAE = temp_v0->unkAE + 1; + func_80088178(objectIndex, 1); + func_800876A0(objectIndex); + if (func_800882B0(objectIndex, 0xA) != 0) { + temp_v0 = &D_80165C18[objectIndex]; + temp_t9 = (u16) temp_v0->unk_084[9] + 1; + temp_v0->unk_084[9] = temp_t9; + if (((temp_t9 & 0xFFFF) + 3) == (u16) temp_v0->unk_084[8]) { + temp_v0->unk_0AE += 1; return; } - func_80088150(arg0); - // Duplicate return node #4. Try simplifying control flow for better match + func_80088150(objectIndex); } } #else GLOBAL_ASM("asm/non_matchings/code_80086E70/func_80088364.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_800721E8(?); // extern -s32 func_8007223C(s32, ?); // extern -f32 func_802ABE30(?32, ?, ?32, u16); // extern -? func_802ADDC8(? *, ?, ?32, ?, ?32); // extern -s16 atan2s(f32, f32); // extern -extern ? D_80165C18; -extern ? D_8018C3B0; - -s32 func_80088538(s32 arg0) { +s32 func_80088538(s32 objectIndex) { s32 sp2C; - void *temp_s0; sp2C = 0; - func_800721E8(0x800000); - if (func_8007223C(arg0, 0x400) != 0) { - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - func_802ADDC8(&D_8018C3B0, 0x41200000, temp_s0->unk4, 0x41A00000, temp_s0->unkC); - if (D_8018C3B0.unk4 == 1) { + func_800721E8(objectIndex, 0x00800000); + if (func_8007223C(objectIndex, 0x00000400) != 0) { + func_802ADDC8(&D_8018C3B0, 10.0f, D_80165C18[objectIndex].unk_004[0], 20.0f, D_80165C18[objectIndex].unk_004[2]); + if (D_8018C3B0.unk34 == 1) { sp2C = 1; - func_800721C0(arg0, 0x800000); + func_800721C0(objectIndex, 0x00800000); } - temp_s0->unk44 = func_802ABE30(temp_s0->unk4, 0, temp_s0->unkC, D_8018C3B0.unkA); - temp_s0->unkB8 = atan2s(D_8018C3B0.unk38, D_8018C3B0.unk34) + 0x4000; - temp_s0->unkBC = atan2s(D_8018C3B0.unk30, D_8018C3B0.unk34); + D_80165C18[objectIndex].unk_044 = func_802ABE30(D_80165C18[objectIndex].unk_004[0], 0.0f, D_80165C18[objectIndex].unk_004[2], D_8018C3B0.unk3A); + D_80165C18[objectIndex].unk_0B8[0] = atan2s(D_8018C3B0.unk60[2], D_8018C3B0.unk60[1]) + 0x4000; + D_80165C18[objectIndex].unk_0B8[2] = atan2s(D_8018C3B0.unk60[0], D_8018C3B0.unk60[1]); } return sp2C; } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_80088538.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_800721E8(?); // extern -s32 func_8007223C(s32, ?); // extern -f32 func_802ABE30(?32, ?, ?32, u16); // extern -? func_802ADDC8(? *, ?, ?32, ?, ?32); // extern -extern ? D_80165C18; -extern ? D_8018C3B0; - -s32 func_8008861C(s32 arg0) { +s32 func_8008861C(s32 objectIndex) { s32 sp2C; - void *temp_s0; sp2C = 0; - func_800721E8(0x800000); - if (func_8007223C(arg0, 0x400) != 0) { - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - func_802ADDC8(&D_8018C3B0, 0x41200000, temp_s0->unk4, 0x41A00000, temp_s0->unkC); - if (D_8018C3B0.unk4 == 1) { + func_800721E8(objectIndex, 0x00800000); + if (func_8007223C(objectIndex, 0x00000400) != 0) { + func_802ADDC8(&D_8018C3B0, 10.0f, D_80165C18[objectIndex].unk_004[0], 20.0f, D_80165C18[objectIndex].unk_004[2]); + if (D_8018C3B0.unk34 == 1) { sp2C = 1; - func_800721C0(arg0, 0x800000); + func_800721C0(objectIndex, 0x00800000); } - temp_s0->unk44 = func_802ABE30(temp_s0->unk4, 0, temp_s0->unkC, D_8018C3B0.unkA); - temp_s0->unk1C = D_8018C3B0.unk30; - temp_s0->unk20 = D_8018C3B0.unk34; - temp_s0->unk24 = D_8018C3B0.unk38; + D_80165C18[objectIndex].unk_044 = func_802ABE30(D_80165C18[objectIndex].unk_004[0], 0.0f, D_80165C18[objectIndex].unk_004[2], D_8018C3B0.unk3A); + D_80165C18[objectIndex].unk_01C[0] = D_8018C3B0.unk60[0]; + D_80165C18[objectIndex].unk_01C[1] = D_8018C3B0.unk60[1]; + D_80165C18[objectIndex].unk_01C[2] = D_8018C3B0.unk60[2]; } return sp2C; } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008861C.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_800721E8(s32, ?); // extern -f32 func_802ABE30(?32, ?, ?32, u16); // extern -? func_802ADDC8(? *, ?, ?32, ?, ?32); // extern -s16 atan2s(f32, f32); // extern -extern ? D_80165C18; -extern ? D_8018C3B0; - -void func_800886F4(s32 arg0) { - void *temp_s0; - - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - func_802ADDC8(&D_8018C3B0, 0x41200000, temp_s0->unk4, 0x41A00000, temp_s0->unkC); - if (D_8018C3B0.unk4 == 1) { - func_800721C0(arg0, 0x800000); - temp_s0->unk44 = func_802ABE30(temp_s0->unk4, 0, temp_s0->unkC, D_8018C3B0.unkA); - temp_s0->unkB8 = atan2s(D_8018C3B0.unk38, D_8018C3B0.unk34) + 0x4000; - temp_s0->unkBC = atan2s(D_8018C3B0.unk30, D_8018C3B0.unk34); +void func_800886F4(s32 objectIndex) { + func_802ADDC8(&D_8018C3B0, 10.0f, D_80165C18[objectIndex].unk_004[0], 20.0f, D_80165C18[objectIndex].unk_004[2]); + if (D_8018C3B0.unk34 == 1) { + func_800721C0(objectIndex, 0x00800000); + D_80165C18[objectIndex].unk_044 = func_802ABE30(D_80165C18[objectIndex].unk_004[0], 0.0f, D_80165C18[objectIndex].unk_004[2], D_8018C3B0.unk3A); + D_80165C18[objectIndex].unk_0B8[0] = atan2s(D_8018C3B0.unk60[2], D_8018C3B0.unk60[1]) + 0x4000; + D_80165C18[objectIndex].unk_0B8[2] = atan2s(D_8018C3B0.unk60[0], D_8018C3B0.unk60[1]); return; } - func_800721E8(arg0, 0x800000); + func_800721E8(objectIndex, 0x00800000); } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_800886F4.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_800721E8(s32, ?); // extern -f32 func_802ABE30(?32, ?, ?32, u16); // extern -? func_802ADDC8(? *, ?, ?32, ?, ?32); // extern -extern ? D_80165C18; -extern ? D_8018C3B0; - -void func_800887C0(s32 arg0) { - void *temp_s0; - - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - func_802ADDC8(&D_8018C3B0, 0x41200000, temp_s0->unk4, 0x41A00000, temp_s0->unkC); - if (D_8018C3B0.unk4 == 1) { - func_800721C0(arg0, 0x800000); - temp_s0->unk44 = func_802ABE30(temp_s0->unk4, 0, temp_s0->unkC, D_8018C3B0.unkA); - temp_s0->unk38 = D_8018C3B0.unk30; - temp_s0->unk3C = D_8018C3B0.unk34; - temp_s0->unk40 = D_8018C3B0.unk38; +void func_800887C0(s32 objectIndex) { + func_802ADDC8(&D_8018C3B0, 10.0f, D_80165C18[objectIndex].unk_004[0], 20.0f, D_80165C18[objectIndex].unk_004[2]); + if (D_8018C3B0.unk34 == 1) { + func_800721C0(objectIndex, 0x00800000); + D_80165C18[objectIndex].unk_044 = func_802ABE30(D_80165C18[objectIndex].unk_004[0], 0.0f, D_80165C18[objectIndex].unk_004[2], D_8018C3B0.unk3A); + D_80165C18[objectIndex].unk_038[0] = D_8018C3B0.unk60[0]; + D_80165C18[objectIndex].unk_038[1] = D_8018C3B0.unk60[1]; + D_80165C18[objectIndex].unk_038[2] = D_8018C3B0.unk60[2]; return; } - func_800721E8(arg0, 0x800000); + func_800721E8(objectIndex, 0x00800000); } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_800887C0.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern ? D_80165C18; - -s32 func_8008896C(s32 arg0, void *arg1) { +UNUSED s32 func_80088880(s32 objectIndex, Player *player) { s32 temp_f10; s32 temp_f6; - void *temp_a2; - temp_a2 = (arg0 * 0xE0) + &D_80165C18; - temp_f10 = temp_a2->unk4 - arg1->unk0; - temp_f6 = temp_a2->unkC - arg1->unk8; + temp_f10 = D_80165C18[objectIndex].unk_004[0] - player->pos[0]; + temp_f6 = D_80165C18[objectIndex].unk_004[2] - player->pos[2]; return (temp_f10 * temp_f10) + (temp_f6 * temp_f6); } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008896C.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern ? D_80165C18; +UNUSED s32 func_800888E8(s32 objectIndex, Player *player) { + s32 temp_f10; + s32 temp_f18; + s32 temp_f6; -? func_80088A58(s32 arg0, void *arg1, f32 arg2) { + temp_f10 = D_80165C18[objectIndex].unk_004[0] - player->pos[0]; + temp_f6 = D_80165C18[objectIndex].unk_004[1] - player->pos[1]; + temp_f18 = D_80165C18[objectIndex].unk_004[2] - player->pos[2]; + return (temp_f10 * temp_f10) + (temp_f6 * temp_f6) + (temp_f18 * temp_f18); +} + +u32 func_8008896C(s32 objectIndex, Camera *camera) { + s32 temp_f10; + s32 temp_f6; + + temp_f10 = D_80165C18[objectIndex].unk_004[0] - camera->pos[0]; + temp_f6 = D_80165C18[objectIndex].unk_004[2] - camera->pos[2]; + return (temp_f10 * temp_f10) + (temp_f6 * temp_f6); +} + +UNUSED s32 func_800889D4(s32 objectIndex, Camera *camera) { + s32 temp_f10; + s32 temp_f18; + s32 temp_f6; + + temp_f10 = D_80165C18[objectIndex].unk_004[0] - camera->pos[0]; + temp_f6 = D_80165C18[objectIndex].unk_004[1] - camera->pos[1]; + temp_f18 = D_80165C18[objectIndex].unk_004[2] - camera->pos[2]; + return (temp_f10 * temp_f10) + (temp_f6 * temp_f6) + (temp_f18 * temp_f18); +} + +s32 func_80088A58(s32 objectIndex, Player *player, f32 arg2) { f32 temp_f0; f32 temp_f2; - void *temp_v0; - ? phi_v1; + s32 var_v1; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_f0 = temp_v0->unk4 - arg1->unk14; - temp_f2 = temp_v0->unkC - arg1->unk1C; - phi_v1 = 0; + var_v1 = 0; + temp_f0 = D_80165C18[objectIndex].unk_004[0] - player->pos[0]; + temp_f2 = D_80165C18[objectIndex].unk_004[2] - player->pos[2]; if (((temp_f0 * temp_f0) + (temp_f2 * temp_f2)) <= (arg2 * arg2)) { - phi_v1 = 1; + var_v1 = 1; } - return phi_v1; + return var_v1; } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_80088A58.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern ? D_80165C18; - -? func_80088BB8(s32 arg0, void *arg1, f32 arg2) { - f32 temp_f0; - f32 temp_f2; - void *temp_v0; - ? phi_v1; - - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_f0 = temp_v0->unk4 - arg1->unk0; - temp_f2 = temp_v0->unkC - arg1->unk8; - phi_v1 = 0; - if (((temp_f0 * temp_f0) + (temp_f2 * temp_f2)) <= (arg2 * arg2)) { - phi_v1 = 1; - } - return phi_v1; -} -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_80088BB8.s") -#endif - -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern ? D_80165C18; - -? func_80088D18(s32 arg0, void *arg1) { +s32 func_80088AC0(s32 objectIndex, Player *player, f32 arg2, f32 arg3) { f32 temp_f0; f32 temp_f12; - f32 temp_f18; f32 temp_f2; - u16 temp_t8; - void *temp_v0; - f32 phi_f18; - ? phi_v1; + s32 var_v1; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_f0 = temp_v0->unk4 - arg1->unk14; - temp_t8 = temp_v0->unkC8; - temp_f2 = temp_v0->unkC - arg1->unk1C; - temp_f18 = temp_t8; - phi_f18 = temp_f18; - phi_v1 = 0; - if (temp_t8 < 0) { - phi_f18 = temp_f18 + 4294967296.0f; + var_v1 = 0; + temp_f0 = D_80165C18[objectIndex].unk_004[0] - player->pos[0]; + temp_f2 = D_80165C18[objectIndex].unk_004[2] - player->pos[2]; + temp_f12 = (temp_f0 * temp_f0) + (temp_f2 * temp_f2); + if (((arg2 * arg2) <= temp_f12) && (temp_f12 <= (arg3 * arg3))) { + var_v1 = 1; } - temp_f12 = phi_f18 + arg1->unk70; + return var_v1; +} + +s32 func_80088B40(s32 objectIndex, Player *player, f32 arg2) { + f32 temp_f0; + f32 temp_f12; + f32 temp_f2; + s32 var_v1; + + var_v1 = 0; + temp_f0 = D_80165C18[objectIndex].unk_004[0] - player->pos[0]; + temp_f2 = D_80165C18[objectIndex].unk_004[1] - player->pos[1]; + temp_f12 = D_80165C18[objectIndex].unk_004[2] - player->pos[2]; + if (((temp_f0 * temp_f0) + (temp_f2 * temp_f2) + (temp_f12 * temp_f12)) <= (arg2 * arg2)) { + var_v1 = 1; + } + return var_v1; +} + +s32 func_80088BB8(s32 objectIndex, Camera *camera, f32 arg2) { + f32 temp_f0; + f32 temp_f2; + s32 var_v1; + + var_v1 = 0; + temp_f0 = D_80165C18[objectIndex].unk_004[0] - camera->pos[0]; + temp_f2 = D_80165C18[objectIndex].unk_004[2] - camera->pos[2]; + if (((temp_f0 * temp_f0) + (temp_f2 * temp_f2)) <= (arg2 * arg2)) { + var_v1 = 1; + } + return var_v1; +} + +UNUSED s32 func_80088C20(s32 objectIndex, Camera *camera, f32 arg2, f32 arg3) { + f32 temp_f0; + f32 temp_f12; + f32 temp_f2; + s32 var_v1; + + var_v1 = 0; + temp_f0 = D_80165C18[objectIndex].unk_004[0] - camera->pos[0]; + temp_f2 = D_80165C18[objectIndex].unk_004[2] - camera->pos[2]; + temp_f12 = (temp_f0 * temp_f0) + (temp_f2 * temp_f2); + if (((arg2 * arg2) <= temp_f12) && (temp_f12 <= (arg3 * arg3))) { + var_v1 = 1; + } + return var_v1; +} + +UNUSED s32 func_80088CA0(s32 objectIndex, Camera *camera, f32 arg2) { + f32 temp_f0; + f32 temp_f12; + f32 temp_f2; + s32 var_v1; + + var_v1 = 0; + temp_f0 = D_80165C18[objectIndex].unk_004[0] - camera->pos[0]; + temp_f2 = D_80165C18[objectIndex].unk_004[1] - camera->pos[1]; + temp_f12 = D_80165C18[objectIndex].unk_004[2] - camera->pos[2]; + if (((temp_f0 * temp_f0) + (temp_f2 * temp_f2) + (temp_f12 * temp_f12)) <= (arg2 * arg2)) { + var_v1 = 1; + } + return var_v1; +} + +s32 func_80088D18(s32 objectIndex, Player *player) { + f32 temp_f0; + f32 temp_f12; + f32 temp_f2; + f32 var_f18; + s32 var_v1; + u16 temp_t8; + + var_v1 = 0; + temp_f0 = D_80165C18[objectIndex].unk_004[0] - player->pos[0]; + temp_f2 = D_80165C18[objectIndex].unk_004[2] - player->pos[2]; + temp_f12 = D_80165C18[objectIndex].unk_0C8 + player->boundingBoxSize; if (((temp_f0 * temp_f0) + (temp_f2 * temp_f2)) <= (temp_f12 * temp_f12)) { - phi_v1 = 1; + var_v1 = 1; } - return phi_v1; + return var_v1; } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_80088D18.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern ? D_80165C18; - -? func_80088DA4(s32 arg0, void *arg1) { +s32 func_80088DA4(s32 objectIndex, Player *player) { f32 temp_f0; f32 temp_f12; f32 temp_f14; f32 temp_f2; - f32 temp_f6; - u16 temp_t8; - void *temp_v0; - f32 phi_f6; - ? phi_v1; + s32 var_v1; + struct_80165C18_entry *temp_v0; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_f0 = temp_v0->unk4 - arg1->unk14; - temp_t8 = temp_v0->unkC8; - temp_f2 = temp_v0->unk8 - arg1->unk18; - temp_f12 = temp_v0->unkC - arg1->unk1C; - temp_f6 = temp_t8; - phi_f6 = temp_f6; - phi_v1 = 0; - if (temp_t8 < 0) { - phi_f6 = temp_f6 + 4294967296.0f; - } - temp_f14 = phi_f6 + arg1->unk70; + var_v1 = 0; + temp_f0 = D_80165C18[objectIndex].unk_004[0] - player->pos[0]; + temp_f2 = D_80165C18[objectIndex].unk_004[1] - player->pos[1]; + temp_f12 = D_80165C18[objectIndex].unk_004[2] - player->pos[2]; + temp_f14 = D_80165C18[objectIndex].unk_0C8 + player->boundingBoxSize; if (((temp_f0 * temp_f0) + (temp_f2 * temp_f2) + (temp_f12 * temp_f12)) <= (temp_f14 * temp_f14)) { - phi_v1 = 1; + var_v1 = 1; } - return phi_v1; + return var_v1; } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_80088DA4.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern ? D_80165C18; +UNUSED s32 func_80088E48(s32 objectIndex, Player *player, f32 arg2) { + f32 temp_f0; + s32 var_v1; -? func_80088E98(s32 arg0, void *arg1, f32 arg2) { + var_v1 = 0; + temp_f0 = D_80165C18[objectIndex].unk_004[1] - player->pos[1]; + if ((temp_f0 * temp_f0) <= (arg2 * arg2)) { + var_v1 = 1; + } + return var_v1; +} + +s32 func_80088E98(s32 objectIndex, Player *player, f32 arg2) { f32 temp_f0; f32 temp_f12; f32 temp_f14; - f32 temp_f2; - void *temp_v0; - f32 phi_f2; - ? phi_v1; + f32 var_f2; + s32 var_v1; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_f0 = temp_v0->unk4 - arg1->unk14; - temp_f12 = temp_v0->unkC - arg1->unk1C; - temp_f2 = temp_v0->unk8 - arg1->unk18; - temp_f14 = temp_v0->unkC8 + arg1->unk70; - phi_f2 = temp_f2; - phi_v1 = 0; - if (temp_f2 < 0.0f) { - phi_f2 = -temp_f2; + var_v1 = 0; + temp_f0 = D_80165C18[objectIndex].unk_004[0] - player->pos[0]; + var_f2 = D_80165C18[objectIndex].unk_004[1] - player->pos[1]; + temp_f12 = D_80165C18[objectIndex].unk_004[2] - player->pos[2]; + temp_f14 = D_80165C18[objectIndex].unk_0C8 + player->boundingBoxSize; + if (var_f2 < 0.0f) { + var_f2 = -var_f2; } - if ((((temp_f0 * temp_f0) + (temp_f12 * temp_f12)) <= (temp_f14 * temp_f14)) && (phi_f2 <= arg2)) { - phi_v1 = 1; + if ((((temp_f0 * temp_f0) + (temp_f12 * temp_f12)) <= (temp_f14 * temp_f14)) && (var_f2 <= arg2)) { + var_v1 = 1; } - return phi_v1; + return var_v1; } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_80088E98.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern ? D_80165C20; +f32 func_80088F54(s32 objectIndex, Player *player) { + f32 var_f2; -f32 func_80088F54(s32 arg0, void *arg1) { - f32 temp_f2; - f32 phi_f2; - - temp_f2 = *(&D_80165C20 + (arg0 * 0xE0)) - arg1->unk74; - phi_f2 = temp_f2; - if (temp_f2 < 0.0f) { - phi_f2 = -temp_f2; + var_f2 = D_80165C18[objectIndex].unk_004[1] - player->unk_074; + if (var_f2 < 0.0f) { + var_f2 = -var_f2; } - return phi_f2; + return var_f2; +} + +UNUSED s32 func_80088F94(s32 objectIndex, Player *player, f32 arg2) { + f32 var_f0; + s32 var_v1; + + var_f0 = D_80165C18[objectIndex].unk_004[1] - player->unk_074; + var_v1 = 0; + if (var_f0 < 0.0f) { + var_f0 = -var_f0; + } + if (var_f0 <= arg2) { + var_v1 = 1; + } + return var_v1; } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_80088F54.s") -#endif void func_80088FF0(Player *player) { player->unk_08C = 0.0f; @@ -1145,9 +850,11 @@ UNUSED void func_8008900C(Player *player) { player->unk_09C = 0.0f; } -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? f32_step_towards(f32, f32 *, f32, f32, f32 *); // extern +#ifdef NEEDS_RODATA +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern Player *gPlayerOne; +extern s16 gCurrentCourseId; /* unable to generate initializer */ +// These are all .rodata extern f32 D_800EF4A0; extern f32 D_800EF4A4; extern f32 D_800EF4A8; @@ -1163,87 +870,86 @@ extern f32 D_800EF4CC; extern f32 D_800EF4D0; extern f32 D_800EF4D4; -void func_80089020(s32 arg0, f32 *arg1) { - f32 temp_f0; - f64 temp_f0_2; - f64 temp_f0_3; - f64 temp_f0_4; - f64 temp_f0_5; - f32 phi_f2; - f32 phi_f0; +void func_80089020(s32 playerId, f32 *arg1) { + f32 var_f0; + f32 var_f2; + Player *player = &gPlayerOne[playerId]; - temp_f0 = *arg1; - if (temp_f0 >= 0.0f) { - phi_f2 = temp_f0; + if (*arg1 >= 0.0f) { + var_f2 = *arg1; } else { - phi_f2 = -temp_f0; + var_f2 = -*arg1; } - if ((gPlayerOne[arg0].unk_0BC & 0xC0) != 0) { - if (gCurrentCourseId == 0xC) { - temp_f0_2 = phi_f2; - if (temp_f0_2 <= 0.5) { - phi_f0 = D_800EF4A0; - } else if (temp_f0_2 <= 2.0) { - phi_f0 = D_800EF4A4; - } else if (temp_f0_2 <= 4.0) { - phi_f0 = D_800EF4A8; + if (player->unk_0BC & 0xC0) { + if (gCurrentCourseId == 0x000C) { + if (var_f2 <= 0.5) { + var_f0 = 0.025f; + } else if (var_f2 <= 2.0) { + var_f0 = 0.075f; + } else if (var_f2 <= 4.0) { + var_f0 = 0.15f; } else { - phi_f0 = 0.25f; + var_f0 = 0.25f; } } else { - temp_f0_3 = phi_f2; - if (temp_f0_3 <= 2.0) { - phi_f0 = D_800EF4AC; - } else if (temp_f0_3 <= 3.0) { - phi_f0 = D_800EF4B0; - } else if (temp_f0_3 <= 4.0) { - phi_f0 = D_800EF4B4; + if (var_f2 <= 2.0) { + var_f0 = 0.1f; + } else if (var_f2 <= 3.0) { + var_f0 = 0.15f; + } else if (var_f2 <= 4.0) { + var_f0 = 0.2f; } else { - phi_f0 = 0.25f; + var_f0 = 0.25f; } } - } else if (gCurrentCourseId == 0xC) { - temp_f0_4 = phi_f2; - if (temp_f0_4 <= 0.5) { - phi_f0 = D_800EF4B8; - } else if (temp_f0_4 <= 2.0) { - phi_f0 = D_800EF4BC; - } else if (temp_f0_4 <= 4.0) { - phi_f0 = D_800EF4C0; + } else if (gCurrentCourseId == 0x000C) { + if (var_f2 <= 0.5) { + var_f0 = 0.025f; + } else if (var_f2 <= 2.0) { + var_f0 = 0.075f; + } else if (var_f2 <= 4.0) { + var_f0 = 0.1f; } else { - phi_f0 = D_800EF4C4; + var_f0 = 0.15f; } } else { - temp_f0_5 = phi_f2; - if (temp_f0_5 <= 2.0) { - phi_f0 = D_800EF4C8; - } else if (temp_f0_5 <= 3.0) { - phi_f0 = D_800EF4CC; - } else if (temp_f0_5 <= 4.0) { - phi_f0 = D_800EF4D4; + if (var_f2 <= 2.0) { + var_f0 = 0.06f; + } else if (var_f2 <= 3.0) { + var_f0 = 0.07f; + } else if (var_f2 <= 4.0) { + var_f0 = 0.1f; } else { - phi_f0 = D_800EF4D0; + var_f0 = 0.075f; } } - f32_step_towards(0.0f, arg1, 0.0f, phi_f0, arg1); + f32_step_towards(arg1, 0.0f, var_f0); } #else GLOBAL_ASM("asm/non_matchings/code_80086E70/func_80089020.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80089020(f32 *, f32 *); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +typedef struct { + /* 0x00 */ char pad0[4]; + /* 0x04 */ f32 unk_04; + /* 0x08 */ char pad8[4]; + /* 0x0C */ f32 unk_0C; + /* 0x10 */ char pad10[0xE]; /* maybe part of unk_0C[4]? */ + /* 0x1E */ s8 unk1E; /* inferred */ + /* 0x1F */ char pad1F[1]; +} struct_D_8018CE10; /* size = 0x20 */ -void func_800892E0(s32 arg0) { +void func_800892E0(s32 objectIndex) { struct_D_8018CE10 *sp1C; s8 temp_v1; struct_D_8018CE10 *temp_v0; - temp_v0 = &D_8018CE10[arg0]; + temp_v0 = &D_8018CE10[objectIndex]; sp1C = temp_v0; - func_80089020(&temp_v0->unk_04); - func_80089020(arg0, &temp_v0->unk_0C); + func_80089020(objectIndex, &temp_v0->unk_04); + func_80089020(objectIndex, &temp_v0->unk_0C); temp_v1 = temp_v0->unk1E; if (temp_v1 > 0) { temp_v0->unk1E = temp_v1 - 1; @@ -1254,42 +960,41 @@ GLOBAL_ASM("asm/non_matchings/code_80086E70/func_800892E0.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -f32 func_8008933C(void *arg0, s32 arg1, f32 arg2, f32 arg3) { +f32 func_8008933C(Player *player, s32 objectIndex, f32 arg2, f32 arg3) { f32 temp_f0; f32 temp_f12; f32 temp_f2; f32 temp_f2_2; + f32 var_f2; + struct_80165C18_entry *temp_v0; struct_D_8018CE10 *temp_v1; - void *temp_v0; - f32 phi_f2; - temp_v1 = &D_8018CE10[(arg0 - gPlayerOne) / 0xDD8]; - phi_f2 = 0.0f; + temp_v1 = &D_8018CE10[(s32) (player - gPlayerOne) / 3544]; + var_f2 = 0.0f; if (temp_v1->unk1E == 0) { - arg0->unk46 = arg0->unk46 | 2; - arg0->unkBC = arg0->unkBC | 0x8000; + player->unk_046 |= 2; + player->unk_0BC |= 0x8000; temp_v1->unk1E = 4; - temp_v0 = (arg1 * 0xE0) + &D_80165C18; - temp_f2 = temp_v0->unk38; - if ((temp_f2 * (arg0->unk14 - temp_v0->unk4)) >= 0.0f) { - temp_v1->unk_04 = (temp_f2 * arg3) + (-arg0->unk34 * arg2); + temp_v0 = &D_80165C18[objectIndex]; + temp_f2 = temp_v0->unk_038[0]; + if ((temp_f2 * (player->pos[0] - temp_v0->unk_004[0])) >= 0.0f) { + temp_v1->unk_04 = (temp_f2 * arg3) + (-player->unk_034[0] * arg2); } else { - temp_v1->unk_04 = -arg0->unk34 * arg2; + temp_v1->unk_04 = -player->unk_034[0] * arg2; } - temp_f2_2 = temp_v0->unk40; - if ((temp_f2_2 * (arg0->unk1C - temp_v0->unkC)) >= 0.0f) { - temp_v1->unk_0C = (temp_f2_2 * arg3) + (-arg0->unk3C * arg2); + temp_f2_2 = temp_v0->unk_038[2]; + if ((temp_f2_2 * (player->pos[2] - temp_v0->unk_004[2])) >= 0.0f) { + temp_v1->unk_0C = (temp_f2_2 * arg3) + (-player->unk_034[2] * arg2); } else { - temp_v1->unk_0C = -arg0->unk3C * arg2; + temp_v1->unk_0C = -player->unk_034[2] * arg2; } temp_f0 = temp_v1->unk_0C; temp_f12 = temp_v1->unk_04; - phi_f2 = (temp_f0 * temp_f0) + (temp_f12 * temp_f12); + var_f2 = (temp_f0 * temp_f0) + (temp_f12 * temp_f12); } - return phi_f2; + return var_f2; } #else GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008933C.s") @@ -1318,53 +1023,40 @@ GLOBAL_ASM("asm/non_matchings/code_80086E70/func_80089474.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072180(); // extern -? func_800721C0(s32, ?); // extern -? func_800721E8(?); // extern -s32 func_8007223C(s32, ?); // extern -s32 func_80088D18(s32, Player *); // extern -f32 func_8008933C(Player *, s32, ?, f32); // extern -? func_800C9060(s32, ?); // extern -extern f64 D_800EF4E0; -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_80072180(); /* extern */ +f32 func_8008933C(Player *, s32, s32, f32); /* extern */ extern s32 D_8018D158; -void func_80089820(s32 arg0, ? arg1, f32 arg2, ? arg3) { - Player *temp_s0; - f32 temp_f20; - s32 temp_s1; +void func_80089820(s32 objectIndex, s32 arg1, f32 arg2, u32 arg3) { + Player *var_s0; + s32 var_s1; u16 temp_v0; - Player *phi_s0; - s32 phi_s1; - temp_s0 = gPlayerOne; - func_800721E8(0x2000000); - if (func_8007223C(arg0, 0x200) != 0) { - phi_s1 = 0; + var_s0 = gPlayerOne; + func_800721E8(objectIndex, 0x02000000); + if (func_8007223C(objectIndex, 0x00000200) != 0) { + var_s1 = 0; if (D_8018D158 > 0) { - phi_s0 = temp_s0; do { - if ((((arg0 * 0xE0) + &D_80165C18)->unkA6 != 0) && ((phi_s0->unk_0BC & 0x80000000) == 0)) { - temp_v0 = phi_s0->unk_000; - if (((temp_v0 & 0x8000) != 0) && ((temp_v0 & 0x100) == 0) && (func_80088D18(arg0, phi_s0) != 0)) { - if ((phi_s0->unk_0BC & 0x200) != 0) { - func_800721C0(arg0, 0x2000000); + if ((D_80165C18[objectIndex].unk_0A6 != 0) && !(var_s0->unk_0BC & 0x80000000)) { + temp_v0 = var_s0->unk_000; + if ((temp_v0 & 0x8000) && !(temp_v0 & 0x100) && (func_80088D18(objectIndex, var_s0) != 0)) { + if (var_s0->unk_0BC & 0x200) { + func_800721C0(objectIndex, 0x02000000); } else { - temp_f20 = arg2 * D_800EF4E0; - if (func_8007223C(arg0, 0x4000000) != 0) { + if (func_8007223C(objectIndex, 0x04000000) != 0) { func_80072180(); } - if ((func_8008933C(phi_s0, arg0, arg1, temp_f20) >= 4.0) && ((phi_s0->unk_000 & 0x1000) != 0x1000)) { - func_800C9060(phi_s1 & 0xFF, arg3); + if (((f64) func_8008933C(var_s0, objectIndex, arg1, (f32) ((f64) arg2 * 1.1)) >= 4.0) && ((var_s0->unk_000 & 0x1000) != 0x1000)) { + func_800C9060(var_s1 & 0xFF, arg3); } } } } - temp_s1 = phi_s1 + 1; - phi_s0 += 0xDD8; - phi_s1 = temp_s1; - } while (temp_s1 < D_8018D158); + var_s1 += 1; + var_s0 += 0xDD8; + } while (var_s1 < D_8018D158); } } } @@ -1373,39 +1065,29 @@ GLOBAL_ASM("asm/non_matchings/code_80086E70/func_80089820.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072180(); // extern -s32 func_8007223C(s32, ?); // extern -s32 func_80088DA4(s32, Player *); // extern -? func_8008933C(Player *, s32, ?, f32); // extern -extern f64 D_800EF4E8; -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_80072180(); /* extern */ +? func_8008933C(Player *, s32, s32, f32); /* extern */ extern s32 D_8018D158; -void func_80089A04(s32 arg0, ? arg1, f32 arg2) { - Player *temp_s0; - f64 temp_f20; - s32 temp_s1; - Player *phi_s0; - s32 phi_s1; +void func_80089A04(s32 objectIndex, s32 arg1, f32 arg2) { + Player *var_s0; + s32 var_s1; - temp_s0 = gPlayerOne; - if (func_8007223C(0x200) != 0) { - phi_s1 = 0; + var_s0 = gPlayerOne; + if (func_8007223C(objectIndex, 0x00000200) != 0) { + var_s1 = 0; if (D_8018D158 > 0) { - temp_f20 = D_800EF4E8; - phi_s0 = temp_s0; do { - if ((((arg0 * 0xE0) + &D_80165C18)->unkA6 != 0) && ((phi_s0->unk_0BC & 0x80000200) == 0) && (func_80088DA4(arg0, phi_s0) != 0)) { - func_8008933C(phi_s0, arg0, arg1, arg2 * temp_f20); - if (func_8007223C(arg0, 0x4000000) != 0) { + if ((D_80165C18[objectIndex].unk_0A6 != 0) && !(var_s0->unk_0BC & 0x80000200) && (func_80088DA4(objectIndex, var_s0) != 0)) { + func_8008933C(var_s0, objectIndex, arg1, (f32) ((f64) arg2 * 1.1)); + if (func_8007223C(objectIndex, 0x04000000) != 0) { func_80072180(); } } - temp_s1 = phi_s1 + 1; - phi_s0 += 0xDD8; - phi_s1 = temp_s1; - } while (temp_s1 < D_8018D158); + var_s1 += 1; + var_s0 += 0xDD8; + } while (var_s1 < D_8018D158); } } } @@ -1414,50 +1096,42 @@ GLOBAL_ASM("asm/non_matchings/code_80086E70/func_80089A04.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072180(); // extern -s32 func_8007223C(s32, ?); // extern -s32 func_80088D18(s32, Player *); // extern -? func_800C9060(s32, ?); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_80072180(); /* extern */ extern s32 D_8018D158; -s32 func_80089B50(s32 arg0) { +s32 func_80089B50(s32 objectIndex) { s32 sp40; - Player *temp_s0; - s32 temp_s2; + Player *var_s0; + s32 var_s1; + s32 var_s2; u16 temp_v0; - Player *phi_s0; - s32 phi_s1; - s32 phi_s2; + var_s1 = 0; sp40 = 0; - temp_s0 = gPlayerOne; - phi_s1 = 0; - if (func_8007223C(0x200) != 0) { - phi_s2 = 0; + var_s0 = gPlayerOne; + if (func_8007223C(objectIndex, 0x00000200) != 0) { + var_s2 = 0; if (D_8018D158 > 0) { - phi_s0 = temp_s0; do { - if ((((arg0 * 0xE0) + &D_80165C18)->unkA6 != 0) && ((phi_s0->unk_0BC & 0x81000000) == 0)) { - temp_v0 = phi_s0->unk_000; - if (((temp_v0 & 0x8000) != 0) && ((temp_v0 & 0x100) == 0) && (func_80088D18(arg0, phi_s0) != 0)) { + if ((D_80165C18[objectIndex].unk_0A6 != 0) && !(var_s0->unk_0BC & 0x81000000)) { + temp_v0 = var_s0->unk_000; + if ((temp_v0 & 0x8000) && !(temp_v0 & 0x100) && (func_80088D18(objectIndex, var_s0) != 0)) { sp40 = 1; - if ((phi_s0->unk_0BC & 0x200) == 0) { - phi_s0->unk_00C |= 0x400000; - if (func_8007223C(arg0, 0x4000000) != 0) { + if (!(var_s0->unk_0BC & 0x200)) { + var_s0->unk_00C |= 0x400000; + if (func_8007223C(objectIndex, 0x04000000) != 0) { func_80072180(); } } else { - func_800C9060(phi_s1 & 0xFF, 0x19018010); + func_800C9060(var_s1 & 0xFF, 0x19018010U); } } } - temp_s2 = phi_s2 + 1; - phi_s0 += 0xDD8; - phi_s1 += 1; - phi_s2 = temp_s2; - } while (temp_s2 < D_8018D158); + var_s2 += 1; + var_s0 += 0xDD8; + var_s1 += 1; + } while (var_s2 < D_8018D158); } } return sp40; @@ -1467,403 +1141,256 @@ GLOBAL_ASM("asm/non_matchings/code_80086E70/func_80089B50.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072180(); // extern -s32 func_8007223C(s32, ?); // extern -s32 func_80088E98(s32, Player *, ?); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_80072180(); /* extern */ extern s32 D_8018D158; -? func_80089CBC(s32 arg0, ? arg1) { - Player *temp_s0; - s32 temp_s1; +s32 func_80089CBC(s32 objectIndex, f32 arg1) { + Player *var_s0; + s32 var_s1; + s32 var_s7; u16 temp_v0; - Player *phi_s0; - s32 phi_s1; - ? phi_s7; - ? phi_s7_2; - temp_s0 = gPlayerOne; - phi_s7 = 0; - phi_s7_2 = 0; - if (func_8007223C(0x200) != 0) { - phi_s1 = 0; + var_s7 = 0; + var_s0 = gPlayerOne; + if (func_8007223C(objectIndex, 0x00000200) != 0) { + var_s1 = 0; if (D_8018D158 > 0) { - phi_s0 = temp_s0; do { - if ((((arg0 * 0xE0) + &D_80165C18)->unkA6 != 0) && ((phi_s0->unk_0BC & 0x81000000) == 0)) { - temp_v0 = phi_s0->unk_000; - if (((temp_v0 & 0x8000) != 0) && ((temp_v0 & 0x100) == 0) && (func_80088E98(arg0, phi_s0, arg1) != 0)) { - phi_s7_2 = 1; - if ((phi_s0->unk_0BC & 0x200) == 0) { - phi_s0->unk_00C |= 0x400000; - if (func_8007223C(arg0, 0x4000000) != 0) { + if ((D_80165C18[objectIndex].unk_0A6 != 0) && !(var_s0->unk_0BC & 0x81000000)) { + temp_v0 = var_s0->unk_000; + if ((temp_v0 & 0x8000) && !(temp_v0 & 0x100) && (func_80088E98(objectIndex, var_s0, arg1) != 0)) { + var_s7 = 1; + if (!(var_s0->unk_0BC & 0x200)) { + var_s0->unk_00C |= 0x400000; + if (func_8007223C(objectIndex, 0x04000000) != 0) { func_80072180(); } } } } - temp_s1 = phi_s1 + 1; - phi_s0 += 0xDD8; - phi_s1 = temp_s1; - phi_s7 = phi_s7_2; - } while (temp_s1 < D_8018D158); + var_s1 += 1; + var_s0 += 0xDD8; + } while (var_s1 < D_8018D158); } } - return phi_s7; + return var_s7; } #else GLOBAL_ASM("asm/non_matchings/code_80086E70/func_80089CBC.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80072180(); // extern -s32 func_8007223C(s32, ?); // extern -s32 func_80088D18(s32, Player *); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_80072180(); /* extern */ extern s32 D_8018D158; -? func_80089F24(s32 arg0) { - Player *temp_s0; - s32 temp_s1; +s32 func_80089F24(s32 objectIndex) { + Player *var_s0; + s32 var_s1; + s32 var_s7; u16 temp_v0; - Player *phi_s0; - s32 phi_s1; - ? phi_s7; - ? phi_s7_2; - temp_s0 = gPlayerOne; - phi_s7 = 0; - phi_s7_2 = 0; - if (func_8007223C(0x200) != 0) { - phi_s1 = 0; + var_s7 = 0; + var_s0 = gPlayerOne; + if (func_8007223C(objectIndex, 0x00000200) != 0) { + var_s1 = 0; if (D_8018D158 > 0) { - phi_s0 = temp_s0; do { - if ((((arg0 * 0xE0) + &D_80165C18)->unkA6 != 0) && ((phi_s0->unk_0BC & 0x800002C0) == 0)) { - temp_v0 = phi_s0->unk_000; - if (((temp_v0 & 0x8000) != 0) && ((temp_v0 & 0x100) == 0) && (func_80088D18(arg0, phi_s0) != 0)) { - phi_s7_2 = 1; - if (func_8007223C(arg0, 0x4000000) != 0) { + if ((D_80165C18[objectIndex].unk_0A6 != 0) && !(var_s0->unk_0BC & 0x800002C0)) { + temp_v0 = var_s0->unk_000; + if ((temp_v0 & 0x8000) && !(temp_v0 & 0x100) && (func_80088D18(objectIndex, var_s0) != 0)) { + var_s7 = 1; + if (func_8007223C(objectIndex, 0x04000000) != 0) { func_80072180(); } - phi_s0->unk_00C |= 0x200000; + var_s0->unk_00C |= 0x200000; } } - temp_s1 = phi_s1 + 1; - phi_s0 += 0xDD8; - phi_s1 = temp_s1; - phi_s7 = phi_s7_2; - } while (temp_s1 < D_8018D158); + var_s1 += 1; + var_s0 += 0xDD8; + } while (var_s1 < D_8018D158); } } - return phi_s7; + return var_s7; } #else GLOBAL_ASM("asm/non_matchings/code_80086E70/func_80089F24.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern ? D_80165CD8; +s32 func_8008A060(s32 objectIndex, Camera *camera, u16 arg2) { + u16 temp_t3; + s32 var_v1; -? func_8008A060(s32 arg0, void *arg1, s32 arg2) { - s32 temp_t3; - s32 temp_t6; - ? phi_v1; - - temp_t6 = arg2 & 0xFFFF; - temp_t3 = ((arg1->unk26 - *(&D_80165CD8 + (arg0 * 0xE0))) + (temp_t6 >> 1)) & 0xFFFF; - phi_v1 = 0; - if ((temp_t3 >= 0) && (temp_t6 >= temp_t3)) { - phi_v1 = 1; + var_v1 = 0; + temp_t3 = (((u16)camera->rot[1] - D_80165C18[objectIndex].unk_0C0) + (arg2 >> 1)); + if ((temp_t3 >= 0) && (arg2 >= temp_t3)) { + var_v1 = 1; } - return phi_v1; + return var_v1; } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008A060.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s32 atan2s(f32, f32); // extern -extern ? D_80165C18; +s32 func_8008A0B4(s32 objectIndex, Player *player, Camera *camera, u16 arg3) { + u16 temp_t3; + f32 x_diff; + f32 z_diff; + s32 var_t0; -s32 func_8008A0B4(s32 arg0, void *arg1, void *arg2, u16 arg3) { - s32 sp18; - s32 temp_t3; - void *temp_v0; - s32 phi_t0; - - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - sp18 = 0; - temp_t3 = ((arg2->unk26 - atan2s(temp_v0->unk4 - arg1->unk14, temp_v0->unkC - arg1->unk1C)) + (arg3 >> 1)) & 0xFFFF; - phi_t0 = sp18; + var_t0 = 0; + x_diff = D_80165C18[objectIndex].unk_004[0] - player->pos[0]; + z_diff = D_80165C18[objectIndex].unk_004[2] - player->pos[2]; + temp_t3 = ((u16) camera->rot[1] - atan2s(x_diff, z_diff)) + (arg3 >> 1); if ((temp_t3 >= 0) && (arg3 >= temp_t3)) { - phi_t0 = 1; + var_t0 = 1; } - return phi_t0; + return var_t0; } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008A0B4.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s32 func_80041770(f32, f32, s32, s32); // extern -extern ? D_80165C18; +s32 func_8008A140(s32 objectIndex, Camera *camera, u16 arg2) { + u16 temp_t2; + s32 var_t0; -s32 func_8008A140(s32 arg0, void *arg1, u16 arg2) { - s32 sp18; - s32 temp_t2; - void *temp_v0; - s32 phi_t0; - - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - sp18 = 0; - temp_t2 = ((func_80041770(arg1->unk0, temp_v0->unk4, arg1->unk8, temp_v0->unkC) + (arg2 / 2)) - arg1->unk26) & 0xFFFF; - phi_t0 = sp18; + var_t0 = 0; + temp_t2 = (func_80041770(camera->pos[0], D_80165C18[objectIndex].unk_004[0], camera->pos[2], D_80165C18[objectIndex].unk_004[2]) + ((s32) arg2 / 2)) - camera->rot[1]; if ((temp_t2 >= 0) && (arg2 >= temp_t2)) { - phi_t0 = 1; + var_t0 = 1; } - return phi_t0; + return var_t0; } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008A140.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_800721E8(?); // extern -u32 func_8008896C(s32, s32); // extern -s32 func_8008A140(s32, s32, ?); // extern - -void func_8008A1D0(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { - u32 sp2C; - s32 sp24; - u32 temp_v0; - ? phi_a2; - - sp24 = (arg1 * 0xB8) + camera1; - func_800721E8(0x140000); - temp_v0 = func_8008896C(arg0, sp24); - if (temp_v0 < 0x2711) { - phi_a2 = 0x5555; - } else { - phi_a2 = 0x2AAB; - if (temp_v0 < 0x9C41) { - phi_a2 = 0x4000; - } - } - sp2C = temp_v0; - if ((func_8008A140(arg0, sp24, phi_a2) != 0) && ((arg3 * arg3) >= temp_v0)) { - sp2C = temp_v0; - func_800721C0(arg0, 0x40000); - if (temp_v0 >= (arg2 * arg2)) { - func_800721C0(arg0, 0x100000); - } - } -} -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008A1D0.s") -#endif - -#ifdef MIPS_TO_C -void func_8008A2CC(s32 arg0, s32 arg1, u16 arg2) { - Camera sp1C; +void func_8008A1D0(s32 objectIndex, s32 cameraId, s32 arg2, s32 arg3) { + s32 temp_v0; u16 var_a2; - // camera1[arg1]? m2c said this, but makes no sense. camera1->unk000 = arg1? would make sense. - sp1C = cameras[arg1]; - func_800721E8(0x40000); - if (sp18 < 0x2711U) { + Camera *camera; + + camera = &camera1[cameraId]; + func_800721E8(objectIndex, 0x00140000); + temp_v0 = func_8008896C(objectIndex, camera); + if (temp_v0 < 0x2711U) { var_a2 = 0x5555; + } else if (temp_v0 < 0x9C41U) { + var_a2 = 0x4000; + } else { + var_a2 = 0x2AAB; + } + if ((func_8008A140(objectIndex, camera, var_a2) != 0) && ((u32) (arg3 * arg3) >= temp_v0)) { + func_800721C0(objectIndex, 0x00040000); + if (temp_v0 >= (u32) (arg2 * arg2)) { + func_800721C0(objectIndex, 0x00100000); + } + } +} + +// This function is really cool, it tests the value of an unitialized local variable +UNUSED void func_8008A2CC(s32 objectIndex, s32 cameraId, u16 arg2) { + Camera *camera; + u32 no_init; + u16 var_a2; + + camera = &camera1[cameraId]; + func_800721E8(objectIndex, 0x00040000); + if (no_init < 0x2711U) { + var_a2 = 0x5555; + } else if (no_init < 0x9C41U) { + var_a2 = 0x4000; } else { var_a2 = arg2; - if (sp18 < 0x9C41U) { + } + if (func_8008A140(objectIndex, camera, var_a2) != 0) { + func_800721C0(objectIndex, 0x00040000); + } +} + +u32 func_8008A364(s32 objectIndex, s32 cameraId, u16 arg2, s32 arg3) { + Camera *camera; + u32 var_v1; + u16 var_a2; + + camera = &camera1[cameraId]; + func_800721E8(objectIndex, 0x00060000); + var_v1 = func_8008896C(objectIndex, camera); + if (var_v1 < (arg3 * arg3)) { + func_800721C0(objectIndex, 0x00020000); + if (var_v1 < 0x2711U) { + var_a2 = 0x5555; + } else if (var_v1 < 0x9C41U) { var_a2 = 0x4000; - } - } - if (func_8008A140(arg0, sp1C, var_a2) != 0) { - func_800721C0(arg0, 0x40000); - } -} -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008A2CC.s") -#endif - -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_800721E8(?); // extern -u32 func_8008896C(s32, s32); // extern -s32 func_8008A140(s32, s32, u16); // extern - -u32 func_8008A364(s32 arg0, s32 arg1, u16 arg2, s32 arg3) { - s32 sp24; - u32 sp20; - u32 temp_v0; - u16 phi_a2; - u32 phi_v1; - - sp24 = (arg1 * 0xB8) + camera1; - func_800721E8(0x60000); - temp_v0 = func_8008896C(arg0, sp24); - phi_v1 = temp_v0; - if (temp_v0 < (arg3 * arg3)) { - sp20 = temp_v0; - func_800721C0(arg0, 0x20000); - if (sp20 < 0x2711) { - phi_a2 = 0x5555; } else { - phi_a2 = arg2; - if (sp20 < 0x9C41) { - phi_a2 = 0x4000; - } + var_a2 = arg2; } - sp20 = sp20; - phi_v1 = sp20; - if (func_8008A140(arg0, sp24, phi_a2) != 0) { - sp20 = sp20; - func_800721C0(arg0, 0x40000); - phi_v1 = sp20; + if (func_8008A140(objectIndex, camera, var_a2) != 0) { + func_800721C0(objectIndex, 0x00040000); } } - return phi_v1; + return var_v1; } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008A364.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_800721E8(s32, ?); // extern -u32 func_8008896C(s32); // extern - -void func_8008A454(s32 arg0, s32 arg1, s32 arg2) { - if (func_8008896C((arg1 * 0xB8) + camera1) < (arg2 * arg2)) { - func_800721C0(arg0, 0x20); - return; - } - func_800721E8(arg0, 0x20); -} -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008A454.s") -#endif - -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_800721E8(?); // extern -s32 func_8008A140(s32, s32, ?); // extern -extern ? D_80165C18; -extern ? D_8018CF68; - -void func_8008A4CC(s32 arg0) { - s16 *temp_s0; - s16 temp_v0; - s32 temp_s2; - u8 temp_v1; - void *temp_s3; - s32 phi_s2; - s32 phi_s4; - - func_800721E8(0x70000); - phi_s2 = 0; - phi_s4 = camera1; - if (gPlayerCountSelection1 > 0) { - temp_s3 = (arg0 * 0xE0) + &D_80165C18; - do { - temp_s0 = &D_8018CF68 + (phi_s2 * 2); - if (temp_s3->unkA6 != 0) { - temp_v1 = temp_s3->unkDF; - temp_v0 = *temp_s0; - if ((temp_v0 >= (temp_v1 - 1)) && ((temp_v1 + 1) >= temp_v0)) { - func_800721C0(arg0, 0x10000); - if (*temp_s0 == temp_s3->unkDF) { - func_800721C0(arg0, 0x20000); - } - if (func_8008A140(arg0, phi_s4, 0x2AAB) != 0) { - func_800721C0(arg0, 0x40000); - } - } - } - temp_s2 = phi_s2 + 1; - phi_s2 = temp_s2; - phi_s4 += 0xB8; - } while (temp_s2 < gPlayerCountSelection1); +void func_8008A454(s32 objectIndex, s32 cameraId, s32 arg2) { + if (func_8008896C(objectIndex, &camera1[cameraId]) < (u32) (arg2 * arg2)) { + func_800721C0(objectIndex, 0x00000020); + } else { + func_800721E8(objectIndex, 0x00000020); } } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008A4CC.s") -#endif -#ifdef MIPS_TO_C -void func_8008A610(s32 arg0) { - s32 var_s0; - s32 var_s1; +void func_8008A4CC(s32 objectIndex) { + s32 loopIndex; + Camera *camera; - func_800721E8(0x40000); - var_s0 = camera1; - var_s1 = 0; - if (gPlayerCountSelection1 > 0) { - do { - if ((((arg0 * 0xE0) + &D_80165C18)->unkA6 != 0) && (func_8008A140(arg0, var_s0, 0x2AAB) != 0)) { - func_800721C0(arg0, 0x40000); + func_800721E8(objectIndex, 0x00070000); + for (loopIndex = 0, camera = camera1; loopIndex < gPlayerCountSelection1; loopIndex++, camera++) { + if (D_80165C18[objectIndex].unk_0A6 != 0) { + if ((D_8018CF68[loopIndex] >= (D_80165C18[objectIndex].unk_0DF - 1)) && ((D_80165C18[objectIndex].unk_0DF + 1) >= D_8018CF68[loopIndex])) { + func_800721C0(objectIndex, 0x00010000); + if (D_8018CF68[loopIndex] == D_80165C18[objectIndex].unk_0DF) { + func_800721C0(objectIndex, 0x00020000); + } + if (func_8008A140(objectIndex, camera, 0x2AABU) != 0) { + func_800721C0(objectIndex, 0x00040000); + } } - var_s1 += 1; - var_s0 += 0xB8; - } while (var_s1 < gPlayerCountSelection1); + } } } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008A610.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -? func_800721E8(?); // extern -s32 func_80088BB8(s32, s32, f32); // extern -s32 func_8008A140(s32, s32, ?); // extern -extern f64 D_800EF4F0; -extern ? D_80165C18; +UNUSED void func_8008A610(s32 objectIndex) { + s32 loopIndex; + Camera *camera; -void func_8008A6DC(s32 arg0, f32 arg1) { - f64 temp_f22; - s32 temp_s2; - s32 phi_s1; - ? phi_a2; - s32 phi_s2; + func_800721E8(objectIndex, 0x00040000); + for (camera = camera1, loopIndex = 0; loopIndex < gPlayerCountSelection1; loopIndex++, camera++) { + if ((D_80165C18[objectIndex].unk_0A6 != 0) && (func_8008A140(objectIndex, camera, 0x2AABU) != 0)) { + func_800721C0(objectIndex, 0x00040000); + } + } +} - func_800721E8(0x60000); - phi_s1 = camera1; - phi_s2 = 0; - if (gPlayerCountSelection1 > 0) { - temp_f22 = D_800EF4F0; - do { - if ((((arg0 * 0xE0) + &D_80165C18)->unkA6 != 0) && (func_80088BB8(arg0, phi_s1, arg1) != 0)) { - func_800721C0(arg0, 0x20000); - phi_a2 = 0x2AAB; - if (arg1 <= temp_f22) { - phi_a2 = 0x4000; - } - if (func_8008A140(arg0, phi_s1, phi_a2) != 0) { - func_800721C0(arg0, 0x40000); - } +#ifdef NEEDS_RODATA +extern f64 D_800EF4F0;// = 500.0; +void func_8008A6DC(s32 objectIndex, f32 arg1) { + u16 var_a2; + s32 loopIndex; + Camera *camera; + + func_800721E8(objectIndex, 0x00060000); + for (camera = camera1, loopIndex = 0; loopIndex < gPlayerCountSelection1; loopIndex++, camera++) { + if ((D_80165C18[objectIndex].unk_0A6 != 0) && (func_80088BB8(objectIndex, camera, arg1) != 0)) { + func_800721C0(objectIndex, 0x00020000); + if (arg1 <= 500.0) { + var_a2 = 0x4000; + } else { + var_a2 = 0x2AAB; } - temp_s2 = phi_s2 + 1; - phi_s1 += 0xB8; - phi_s2 = temp_s2; - } while (temp_s2 < gPlayerCountSelection1); + if (func_8008A140(objectIndex, camera, var_a2) != 0) { + func_800721C0(objectIndex, 0x00040000); + } + } } } #else GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008A6DC.s") #endif -void func_8008A6DC(s32, f32); + UNUSED void func_8008A810(s32 arg0) { func_8008A6DC(arg0, 500.0f); } @@ -1876,17 +1403,12 @@ UNUSED void func_8008A850(s32 arg0) { func_8008A6DC(arg0, 2000.0f); } -struct struct_8008A870 { - s8 unk0[0x119]; - u16 unk11A; -}; - -UNUSED s32 func_8008A870(struct struct_8008A870 *arg0) { - return func_802ABD40(arg0->unk11A); +UNUSED s32 func_8008A870(Player *player) { + return func_802ABD40(player->unk_110.unk3A); } -s32 func_8008A890(struct UnkStruct8008A890 *arg0) { - return func_802ABD40(arg0->value); +s32 func_8008A890(Camera *camera) { + return func_802ABD40(camera->unk_54.unk3A); } s32 func_8008A8B0(s16 arg0, s16 arg1) { @@ -1904,37 +1426,34 @@ s32 func_8008A8B0(s16 arg0, s16 arg1) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +void func_8008A920(s32 objectIndex) { + s32 temp_v0; + struct_80165C18_entry *temp_v1; -void func_8008A920(s32 arg0) { - void *temp_v0; - void *temp_v1; - - temp_v1 = (arg0 * 0xE0) + &D_80165C18; - temp_v0 = temp_v1->unk7C; - temp_v1->unk38 = (temp_v0->unk8 - temp_v0->unk0) / temp_v0->unk6; - temp_v1->unk3C = (temp_v0->unkA - temp_v0->unk2) / temp_v0->unk6; - temp_v1->unk40 = (temp_v0->unkC - temp_v0->unk4) / temp_v0->unk6; + temp_v1 = &D_80165C18[objectIndex]; + temp_v0 = temp_v1->unk_07C; + temp_v1->unk_038[0] = (f32) (temp_v0->unk8 - temp_v0->unk0) / (f32) temp_v0->unk6; + temp_v1->unk_038[1] = (f32) (temp_v0->unkA - temp_v0->unk2) / (f32) temp_v0->unk6; + temp_v1->unk_038[2] = (f32) (temp_v0->unkC - temp_v0->unk4) / (f32) temp_v0->unk6; } #else GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008A920.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_8008A920(); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_8008A920(); /* extern */ -void func_8008A9B8(s32 arg0) { - void *temp_t9; - void *temp_v0; +void func_8008A9B8(s32 objectIndex) { + s32 temp_t9; + struct_80165C18_entry *temp_v0; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_t9 = temp_v0->unk7C + 8; - temp_v0->unk7C = temp_t9; - temp_v0->unk9A = 0x2710 / temp_t9->unk6; - temp_v0->unk98 = 0; + temp_v0 = &D_80165C18[objectIndex]; + temp_t9 = temp_v0->unk_07C + 8; + temp_v0->unk_07C = temp_t9; + temp_v0->unk_09A = (s16) (0x2710 / (s16) temp_t9->unk6); + temp_v0->unk_098 = 0; func_8008A920(); } #else @@ -1942,66 +1461,61 @@ GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008A9B8.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80086FD4(s32); // extern -? func_8008A920(); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_8008A920(); /* extern */ -void func_8008AA3C(s32 arg0) { - void *temp_v0; - void *temp_v1; +void func_8008AA3C(s32 objectIndex) { + s32 temp_v1; + struct_80165C18_entry *temp_v0; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v1 = temp_v0->unk80 + 2; - temp_v0->unk7C = temp_v1; - temp_v0->unk96 = 0; - temp_v0->unk98 = 0; - temp_v0->unk94 = temp_v1->unk-2; - temp_v0->unk28 = temp_v1->unk0; - temp_v0->unk2C = temp_v1->unk2; - temp_v0->unk30 = temp_v1->unk4; - temp_v0->unk9A = 0x2710 / temp_v1->unk6; + temp_v0 = &D_80165C18[objectIndex]; + temp_v1 = temp_v0->unk_080 + 2; + temp_v0->unk_07C = temp_v1; + temp_v0->unk_084[9] = 0; + temp_v0->unk_098 = 0; + temp_v0->unk_084[8] = temp_v1->unk-2; + temp_v0->unk_028[0] = (f32) temp_v1->unk0; + temp_v0->unk_028[1] = (f32) temp_v1->unk2; + temp_v0->unk_028[2] = (f32) temp_v1->unk4; + temp_v0->unk_09A = (s16) (0x2710 / (s16) temp_v1->unk6); func_8008A920(); - func_80086FD4(arg0); + func_80086FD4(objectIndex); } #else GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008AA3C.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_8008A9B8(); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_8008A9B8(); /* extern */ -void func_8008AB10(s32 arg0) { - u16 temp_t0; - u16 temp_t3; - void *temp_v0; +void func_8008AB10(s32 objectIndex) { + s16 temp_t0; + s16 temp_t3; + struct_80165C18_entry *temp_v0; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unk28 = temp_v0->unk28 + temp_v0->unk38; - temp_t0 = temp_v0->unk98 + temp_v0->unk9A; - temp_v0->unk2C = temp_v0->unk2C + temp_v0->unk3C; - temp_v0->unk30 = temp_v0->unk30 + temp_v0->unk40; - temp_v0->unk98 = temp_t0; + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_028[0] += temp_v0->unk_038[0]; + temp_t0 = (u16) temp_v0->unk_098 + (u16) temp_v0->unk_09A; + temp_v0->unk_028[1] += temp_v0->unk_038[1]; + temp_v0->unk_028[2] += temp_v0->unk_038[2]; + temp_v0->unk_098 = temp_t0; if ((temp_t0 & 0xFFFF) >= 0x2710) { - temp_t3 = temp_v0->unk96 + 1; - temp_v0->unk96 = temp_t3; - if (((temp_t3 & 0xFFFF) + 1) == temp_v0->unk94) { - temp_v0->unkAE = temp_v0->unkAE + 1; + temp_t3 = (u16) temp_v0->unk_084[9] + 1; + temp_v0->unk_084[9] = temp_t3; + if (((temp_t3 & 0xFFFF) + 1) == (u16) temp_v0->unk_084[8]) { + temp_v0->unk_0AE += 1; return; } func_8008A9B8(); - // Duplicate return node #4. Try simplifying control flow for better match } } #else GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008AB10.s") #endif -extern struct struct_E0 D_80165CC6[]; UNUSED void func_8008ABC0(s32 arg0) { - switch (D_80165CC6[arg0].unk00.s16) { + switch (D_80165C18[arg0].unk_0AE) { case 1: func_8008AA3C(); break; @@ -2017,7 +1531,7 @@ UNUSED void func_8008ABC0(s32 arg0) { } UNUSED void func_8008AC40(s32 arg0) { - switch (D_80165CC6[arg0].unk00.s16) { + switch (D_80165C18[arg0].unk_0AE) { case 1: func_8008AA3C(); break; @@ -2139,8 +1653,6 @@ void func_8008AE9C(s32 arg0) { GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008AE9C.s") #endif -extern s32 D_80183DC8; -void func_8008ADD0(s32, f32); void func_8008AFE0(s32 arg0, f32 arg1) { func_8008ADD0(&D_80183DC8, arg1); func_8008AE9C(arg0); @@ -2190,8 +1702,6 @@ void func_8008B038(s32 arg0) { GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008B038.s") #endif -extern s32 D_80183DA8; -void func_8008ACE0(s32,f32); void func_8008B17C(s32 arg0, f32 arg1) { func_8008ACE0(&D_80183DA8, arg1); func_8008B038(arg0); @@ -2326,23 +1836,19 @@ GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008B284.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721C0(s32, ?); // extern -s32 func_80072270(?); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +void func_8008B3E4(s32 objectIndex) { + s32 temp_v1; + struct_80165C18_entry *temp_v0; -void func_8008B3E4(s32 arg0) { - void *temp_v0; - void *temp_v1; - - if (func_80072270(8) != 0) { - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unk96 = 0; - temp_v0->unk98 = 0; - temp_v1 = temp_v0->unk80 + 2; - temp_v0->unk7C = temp_v1; - temp_v0->unk94 = temp_v1->unk-2; - func_800721C0(arg0, 8); + if (func_80072270(objectIndex, 8) != 0) { + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_084[9] = 0; + temp_v0->unk_098 = 0; + temp_v1 = temp_v0->unk_080 + 2; + temp_v0->unk_07C = temp_v1; + temp_v0->unk_084[8] = temp_v1->unk-2; + func_800721C0(objectIndex, 8); } } #else @@ -2355,83 +1861,72 @@ void func_8008B44C(s32 arg0) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s32 func_8007223C(s32, ?); // extern -? func_8008AFE0(s32, f32); // extern -? func_8008B17C(s32, f32); // extern -? func_8008B1D4(s32); // extern -? func_8008B284(s32); // extern -? func_8008B3E4(); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_8008B1D4(s32); /* extern */ +? func_8008B284(s32); /* extern */ +? func_8008B3E4(); /* extern */ extern f64 D_800EF508; extern f64 D_800EF510; -extern ? D_80165C18; -void func_8008B478(s32 arg0, s32 arg1) { +void func_8008B478(s32 objectIndex, s32 arg1) { f32 sp34; - void *sp24; + struct_80165C18_entry *sp24; f32 temp_f0; f32 temp_f0_2; - f32 temp_f6; - s32 temp_t7; + f32 var_f6; + s32 temp_v0; + struct_80165C18_entry *temp_v1; u16 temp_t9; u32 temp_t3; - void *temp_v0; - void *temp_v1; - f32 phi_f6; func_8008B3E4(); if (arg1 != 0) { - func_8008B284(arg0); + func_8008B284(objectIndex); } else { - func_8008B1D4(arg0); + func_8008B1D4(objectIndex); } - temp_t7 = arg0 * 0xE0; - temp_v1 = temp_t7 + &D_80165C18; - temp_t9 = temp_v1->unk98; - temp_f6 = temp_t9; - phi_f6 = temp_f6; - if (temp_t9 < 0) { - phi_f6 = temp_f6 + 4294967296.0f; + temp_v1 = &D_80165C18[objectIndex]; + temp_t9 = (u16) temp_v1->unk_098; + var_f6 = (f32) temp_t9; + if ((s32) temp_t9 < 0) { + var_f6 += 4294967296.0f; } sp24 = temp_v1; - temp_f0 = phi_f6 / D_800EF508; + temp_f0 = (f32) ((f64) var_f6 / 10000.0); sp34 = temp_f0; - func_8008B17C(arg0, temp_f0); - if (func_8007223C(arg0, 0x800) != 0) { + func_8008B17C(objectIndex, temp_f0); + if (func_8007223C(objectIndex, 0x00000800) != 0) { sp24 = temp_v1; - func_8008AFE0(arg0, sp34); + func_8008AFE0(objectIndex, sp34); } - temp_v0 = (temp_t7 + &D_80165C18)->unk7C; - temp_f0_2 = temp_v0->unk6; - temp_t3 = D_800EF510 / (((temp_v0->unkE - temp_f0_2) * sp34) + temp_f0_2); - (temp_t7 + &D_80165C18)->unk9A = temp_t3; - (temp_t7 + &D_80165C18)->unk98 = (temp_t7 + &D_80165C18)->unk98 + temp_t3; + temp_v0 = temp_v1->unk_07C; + temp_f0_2 = (f32) temp_v0->unk6; + temp_t3 = (u32) (10000.0 / (f64) ((((f32) temp_v0->unkE - temp_f0_2) * sp34) + temp_f0_2)); + temp_v1->unk_09A = (s16) temp_t3; + temp_v1->unk_098 = (u16) temp_v1->unk_098 + temp_t3; } #else GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008B478.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_8008B44C(s32); // extern -? func_8008B478(?); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_8008B478(?); /* extern */ -void func_8008B620(s32 arg0) { - u16 temp_t0; - void *temp_v0; +void func_8008B620(s32 objectIndex) { + s16 temp_t0; + struct_80165C18_entry *temp_v0; func_8008B478(0); - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - if (temp_v0->unk98 >= 0x2710) { - temp_t0 = temp_v0->unk96 + 1; - temp_v0->unk96 = temp_t0; - if (((temp_t0 & 0xFFFF) + 3) == temp_v0->unk94) { - temp_v0->unkAE = temp_v0->unkAE + 1; + temp_v0 = &D_80165C18[objectIndex]; + if ((s32) (u16) temp_v0->unk_098 >= 0x2710) { + temp_t0 = (u16) temp_v0->unk_084[9] + 1; + temp_v0->unk_084[9] = temp_t0; + if (((temp_t0 & 0xFFFF) + 3) == (u16) temp_v0->unk_084[8]) { + temp_v0->unk_0AE += 1; return; } - func_8008B44C(arg0); - // Duplicate return node #4. Try simplifying control flow for better match + func_8008B44C(objectIndex); } } #else @@ -2439,27 +1934,23 @@ GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008B620.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800721E8(s32, ?); // extern -? func_8008B44C(s32); // extern -? func_8008B478(?); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_8008B478(?); /* extern */ -void func_8008B6A4(s32 arg0) { - u16 temp_t0; - void *temp_v0; +void func_8008B6A4(s32 objectIndex) { + s16 temp_t0; + struct_80165C18_entry *temp_v0; func_8008B478(1); - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - if (temp_v0->unk98 >= 0x2710) { - temp_t0 = temp_v0->unk96 + 1; - temp_v0->unk96 = temp_t0; - if ((temp_t0 & 0xFFFF) == temp_v0->unk94) { - func_800721E8(arg0, 8); + temp_v0 = &D_80165C18[objectIndex]; + if ((s32) (u16) temp_v0->unk_098 >= 0x2710) { + temp_t0 = (u16) temp_v0->unk_084[9] + 1; + temp_v0->unk_084[9] = temp_t0; + if ((temp_t0 & 0xFFFF) == (u16) temp_v0->unk_084[8]) { + func_800721E8(objectIndex, 8); return; } - func_8008B44C(arg0); - // Duplicate return node #4. Try simplifying control flow for better match + func_8008B44C(objectIndex); } } #else @@ -2467,25 +1958,23 @@ GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008B6A4.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80086F60(); // extern -? func_8008B620(); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_8008B620(); /* extern */ extern ? D_80165CC6; -void func_8008B724(s32 arg0) { +void func_8008B724(s32 objectIndex) { s16 temp_v0; - temp_v0 = *(&D_80165CC6 + (arg0 * 0xE0)); - if (temp_v0 != 0) { - if (temp_v0 != 1) { - if (temp_v0 != 2) { - return; - } - func_80086F60(); - // Duplicate return node #6. Try simplifying control flow for better match - return; - } + temp_v0 = *(&D_80165CC6 + (objectIndex * 0xE0)); + switch (temp_v0) { /* irregular */ + case 1: func_8008B620(); + return; + case 2: + func_80086F60(objectIndex); + /* fallthrough */ + case 0: + return; } } #else @@ -2542,262 +2031,229 @@ void func_8008B8BC(s32 arg0, u16 arg1, u16 arg2, u16 arg3) { } void func_8008B8F0(s32 arg0, f32 arg1, f32 arg2, f32 arg3) { - D_80165C18[arg0].unk_038 = arg1; - D_80165C18[arg0].unk_03C = arg2; - D_80165C18[arg0].unk_040 = arg3; + D_80165C18[arg0].unk_038[0] = arg1; + D_80165C18[arg0].unk_038[1] = arg2; + D_80165C18[arg0].unk_038[2] = arg3; } #ifdef MIPS_TO_C -UNUSED void func_8008B928(s32 arg0, s16 arg1, s16 arg2, s16 arg3, void *arg4) { - s16 temp_v0; - s32 temp_t3; - void *temp_s0; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern ? D_80165C28; - temp_s0 = (arg0 * 0xE0) + &D_80165C18; - temp_s0->unk10 = (f32) arg1; - temp_s0->unk14 = (f32) arg2; - temp_s0->unk80 = arg4; - temp_s0->unk18 = (f32) arg3; - temp_s0->unk38 = (f32) (arg4->unkA - arg4->unk2); - temp_s0->unk3C = (f32) (arg4->unkC - arg4->unk4); - temp_s0->unk40 = (f32) (arg4->unkE - arg4->unk6); - temp_v0 = func_80087368(arg1, arg2, arg3); - temp_t3 = -temp_v0 & 0xFFFF; - temp_s0->unkC0 = temp_v0; - temp_s0->unk40 = func_800416D8(temp_s0->unk40, temp_s0->unk38, temp_t3); - temp_s0->unkBE = func_80087324(arg0); -} +void func_8008B928(s32 objectIndex, s16 arg1, s16 arg2, s16 arg3, s32 arg4) { + s32 temp_v0; + struct_80165C18_entry *temp_s0; -UNUSED void func_8008BA40(s32 arg0, s16 arg1, u16 arg2) { - *(&D_80165C28 + (arg0 * 0xE0)) = (f32) (arg1 + (s16) (random_int(arg2) - ((s32) arg2 / 2))); + temp_s0 = &D_80165C18[objectIndex]; + temp_s0->unk_010[0] = (f32) arg1; + temp_s0->unk_010[1] = (f32) arg2; + temp_s0->unk_080 = arg4; + temp_s0->unk_010[2] = (f32) arg3; + temp_s0->unk_038[0] = (f32) (arg4->unkA - arg4->unk2); + temp_s0->unk_038[1] = (f32) (arg4->unkC - arg4->unk4); + temp_s0->unk_038[2] = (f32) (arg4->unkE - arg4->unk6); + temp_v0 = func_80087368(objectIndex); + temp_s0->unk_0C0 = (u16) temp_v0; + temp_s0->unk_038[2] = func_800416D8(temp_s0->unk_038[2], temp_s0->unk_038[0], -temp_v0 & 0xFFFF); + temp_s0->unk_0BE = func_80087324(objectIndex); } -*/ #else GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008B928.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern ? D_80165C2C; +UNUSED void func_8008BA40(s32 objectIndex, s16 arg1, u16 arg2) { + s16 test; -void func_8008BAB4(s32 arg0, s16 arg1, u16 arg2) { - *(&D_80165C2C + (arg0 * 0xE0)) = arg1 + (random_int(arg2) - (arg2 / 2)); -} -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008BAB4.s") -#endif - -/* -UNUSED void func_8008BB28(s32 arg0, s16 arg1, u16 arg2) { - *(&D_80165C30 + (arg0 * 0xE0)) = (f32) (arg1 + (s16) (random_int(arg2) - ((s32) arg2 / 2))); + test = random_int(arg2) - (arg2 / 2); + D_80165C18[objectIndex].unk_010[0] = arg1 + test; } -UNUSED void func_8008BB9C(s32 arg0, s16 arg1, s16 arg2, u16 arg3, u16 arg4) { +void func_8008BAB4(s32 objectIndex, s16 arg1, u16 arg2) { + s16 test; + + test = random_int(arg2) - (arg2 / 2); + D_80165C18[objectIndex].unk_010[1] = arg1 + test; +} + +UNUSED void func_8008BB28(s32 objectIndex, s16 arg1, u16 arg2) { + s16 test; + + test = random_int(arg2) - (arg2 / 2); + D_80165C18[objectIndex].unk_010[2] = arg1 + test; +} + +UNUSED void func_8008BB9C(s32 objectIndex, s16 arg1, s16 arg2, u16 arg3, u16 arg4) { s16 sp1E; - s32 temp_v0; - void *temp_v1; + s16 temp_v0; - sp1E = random_int(arg3) - ((s32) arg3 / 2); - temp_v0 = random_int(arg4); - temp_v1 = (arg0 * 0xE0) + &D_80165C18; - temp_v1->unk10 = (f32) (arg1 + sp1E); - temp_v1->unk14 = (f32) (arg2 + (s16) (temp_v0 - ((s32) arg4 / 2))); + sp1E = random_int(arg3) - ((s32) arg3 / 2); + temp_v0 = random_int(arg4) - ((s32) arg4 / 2); + D_80165C18[objectIndex].unk_010[0] = arg1 + sp1E; + D_80165C18[objectIndex].unk_010[1] = arg2 + temp_v0; } -UNUSED void func_8008BC58(s32 arg0, s16 arg1, s16 arg2, u16 arg3, u16 arg4) { +UNUSED void func_8008BC58(s32 objectIndex, s16 arg1, s16 arg2, u16 arg3, u16 arg4) { s16 sp1E; - s32 temp_v0; - void *temp_v1; + s16 temp_v0; - sp1E = random_int(arg3) - ((s32) arg3 / 2); - temp_v0 = random_int(arg4); - temp_v1 = (arg0 * 0xE0) + &D_80165C18; - temp_v1->unk10 = (f32) (arg1 + sp1E); - temp_v1->unk18 = (f32) (arg2 + (s16) (temp_v0 - ((s32) arg4 / 2))); + sp1E = random_int(arg3) - ((s32) arg3 / 2); + temp_v0 = random_int(arg4) - ((s32) arg4 / 2); + D_80165C18[objectIndex].unk_010[0] = arg1 + sp1E; + D_80165C18[objectIndex].unk_010[2] = arg2 + temp_v0; } -*/ -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008BB28.s") - -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern ? D_80165C18; - -void func_8008BD14(s32 arg0, s16 arg1, s16 arg2, s16 arg3, u16 arg4, u16 arg5, u16 arg6) { +void func_8008BD14(s32 objectIndex, s16 arg1, s16 arg2, s16 arg3, u16 arg4, u16 arg5, u16 arg6) { s16 sp1E; s16 sp1C; - s32 temp_v0; - void *temp_v1; + s16 temp_v0; - sp1E = random_int(arg4) - (arg4 / 2); - sp1C = random_int(arg5) - (arg5 / 2); - temp_v0 = random_int(arg6); - temp_v1 = (arg0 * 0xE0) + &D_80165C18; - temp_v1->unk10 = arg1 + sp1E; - temp_v1->unk14 = arg2 + sp1C; - temp_v1->unk18 = arg3 + (temp_v0 - (arg6 / 2)); + sp1E = random_int(arg4) - ((s32) arg4 / 2); + sp1C = random_int(arg5) - ((s32) arg5 / 2); + temp_v0 = random_int(arg6) - ((s32) arg6 / 2); + D_80165C18[objectIndex].unk_010[0] = arg1 + sp1E; + D_80165C18[objectIndex].unk_010[1] = arg2 + sp1C; + D_80165C18[objectIndex].unk_010[2] = arg3 + temp_v0; +} + +void func_8008BE0C(s32 objectIndex, s16 arg1, u16 arg2) { + D_80165C18[objectIndex].unk_010[0] = gPlayerOneCopy->pos[0] + (sins(arg2) * arg1); + D_80165C18[objectIndex].unk_010[2] = gPlayerOneCopy->pos[2] + (coss(arg2) * arg1); +} + +void func_8008BEA4(s32 objectIndex, u16 arg1, u16 arg2) { + u16 thing; + u16 thing2; + + thing = random_int(arg1); + thing2 = camera1->rot[1] + random_int(arg2) - ((s32) arg2 / 2); + func_8008BE0C(objectIndex, thing, thing2); +} + +void func_8008BF18(s32 objectIndex) { + D_80165C18[objectIndex].unk_004[0] = D_80165C18[objectIndex].unk_010[0] + D_80165C18[objectIndex].unk_028[0]; + D_80165C18[objectIndex].unk_004[1] = D_80165C18[objectIndex].unk_010[1] + D_80165C18[objectIndex].unk_028[1]; + D_80165C18[objectIndex].unk_004[2] = D_80165C18[objectIndex].unk_010[2] + D_80165C18[objectIndex].unk_028[2]; } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008BD14.s") -#endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -f32 sins(u16); // extern -f32 coss(u16); // extern -extern ? D_80165C18; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern ? D_80183E40; +extern ? D_80183E80; -void func_8008BE0C(s32 arg0, s16 arg1, u16 arg2) { - void *sp1C; - f32 sp18; - f32 temp_f2; - f32 temp_f6; - void *temp_v0; +void func_8008BF64(s32 objectIndex) { + struct_80165C18_entry *temp_v0; - temp_f2 = arg1; - temp_f6 = sins(arg2) * temp_f2; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - sp1C = temp_v0; - sp18 = temp_f2; - temp_v0->unk10 = temp_f6 + gPlayerOneCopy->posX; - temp_v0->unk18 = (coss(arg2) * temp_f2) + gPlayerOneCopy->posZ; + temp_v0 = &D_80165C18[objectIndex]; + D_80183E40.unk0 = (f32) temp_v0->unk_004[0]; + D_80183E40.unk4 = (f32) temp_v0->unk_004[1]; + D_80183E40.unk8 = (f32) temp_v0->unk_004[2]; + D_80183E80.unk0 = (u16) temp_v0->unk_0BE; + D_80183E80.unk2 = (u16) temp_v0->unk_0C0; + D_80183E80.unk4 = (u16) temp_v0->unk_0C2; } #else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008BE0C.s") +GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008BF64.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern ? D_80165C18; - -void func_8008BF18(s32 arg0) { - void *temp_v0; - - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unk4 = temp_v0->unk28 + temp_v0->unk10; - temp_v0->unk8 = temp_v0->unk2C + temp_v0->unk14; - temp_v0->unkC = temp_v0->unk30 + temp_v0->unk18; +void func_8008BFC0(s32 objectIndex) { + D_80165C18[objectIndex].unk_09C = D_80165C18[objectIndex].unk_004[0]; + D_80165C18[objectIndex].unk_09E = D_80165C18[objectIndex].unk_004[1]; } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008BF18.s") -#endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern ? D_80165C18; - -void func_8008BFC0(s32 arg0) { - void *temp_v0; - - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unk9C = temp_v0->unk4; - temp_v0->unk9E = temp_v0->unk8; -} -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008BFC0.s") -#endif - -#ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? func_80086F60(); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_80088228(); /* extern */ ? func_80088364(); /* extern */ ? func_8008B620(); /* extern */ ? func_8008B6A4(); /* extern */ -extern ? D_80165C18; -void func_8008BFFC(s32 arg0) { +void func_8008BFFC(s32 objectIndex) { s16 temp_v0; s16 temp_v0_2; s16 temp_v0_3; s16 temp_v0_4; s16 temp_v0_5; s16 temp_v0_6; + struct_80165C18_entry *temp_v1; u8 temp_t8; - void *temp_v1; - temp_v1 = (arg0 * 0xE0) + &D_80165C18; - temp_t8 = temp_v1->unkDE; + temp_v1 = &D_80165C18[objectIndex]; + temp_t8 = (u8) temp_v1->unk_0DE; switch (temp_t8) { case 1: - if (temp_v1->unkAE == 1) { + if (temp_v1->unk_0AE == 1) { func_8008B620(); return; } default: + case 0: /* switch 1 */ + case 0: /* switch 2 */ + case 0: /* switch 3 */ return; case 2: - temp_v0 = temp_v1->unkAE; + temp_v0 = temp_v1->unk_0AE; if ((temp_v0 != 0) && (temp_v0 == 1)) { func_8008B6A4(); return; } - /* Duplicate return node #31. Try simplifying control flow for better match */ - return; + break; case 3: - temp_v0_2 = temp_v1->unkAE; + temp_v0_2 = temp_v1->unk_0AE; if ((temp_v0_2 != 0) && (temp_v0_2 == 1)) { func_8008B620(); return; } - /* Duplicate return node #31. Try simplifying control flow for better match */ - return; + break; case 4: - temp_v0_3 = temp_v1->unkAE; - if (temp_v0_3 != 0) { - if (temp_v0_3 != 1) { - if (temp_v0_3 != 2) { - return; - } - func_80086F60(); - return; - } + temp_v0_3 = temp_v1->unk_0AE; + switch (temp_v0_3) { /* switch 1; irregular */ + case 1: /* switch 1 */ func_8008B620(); return; + case 2: /* switch 1 */ + func_80086F60(objectIndex); + return; } - /* Duplicate return node #31. Try simplifying control flow for better match */ - return; + break; case 5: - temp_v0_4 = temp_v1->unkAE; - if (temp_v0_4 != 0) { - if (temp_v0_4 != 1) { - if (temp_v0_4 != 2) { - return; - } - func_80086F60(); - return; - } + temp_v0_4 = temp_v1->unk_0AE; + switch (temp_v0_4) { /* switch 2; irregular */ + case 1: /* switch 2 */ func_8008B620(); return; + case 2: /* switch 2 */ + func_80086F60(objectIndex); + return; } - /* Duplicate return node #31. Try simplifying control flow for better match */ - return; + break; case 6: - temp_v0_5 = temp_v1->unkAE; + temp_v0_5 = temp_v1->unk_0AE; if ((temp_v0_5 != 0) && (temp_v0_5 == 1)) { func_8008B620(); return; } - /* Duplicate return node #31. Try simplifying control flow for better match */ - return; + break; case 7: - temp_v0_6 = temp_v1->unkAE; - if (temp_v0_6 != 0) { - if (temp_v0_6 != 1) { - if (temp_v0_6 != 2) { - return; - } - func_80088364(); - /* Duplicate return node #31. Try simplifying control flow for better match */ - return; - } + temp_v0_6 = temp_v1->unk_0AE; + switch (temp_v0_6) { /* switch 3; irregular */ + case 1: /* switch 3 */ func_80088228(); return; + case 2: /* switch 3 */ + func_80088364(); + break; } - /* Duplicate return node #31. Try simplifying control flow for better match */ - return; + break; } } #else GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008BFFC.s") #endif + +UNUSED void func_8008C1B8(s32 arg0) { + +} + +UNUSED void func_8008C1C0(s32 arg0) { + +} diff --git a/src/code_80086E70.h b/src/code_80086E70.h new file mode 100644 index 000000000..2e9c291e6 --- /dev/null +++ b/src/code_80086E70.h @@ -0,0 +1,142 @@ +#ifndef CODE_80086E70_H +#define CODE_80086E70_H + +#include "common_structs.h" +#include "camera.h" + +void func_80086E70(s32); +void func_80086EAC(s32, s32, s16); +void func_80086EF0(s32); +void func_80086F10(s32, s32, s32); +void func_80086F60(s32); +s32 func_80086FA4(s32); +void func_80086FD4(s32); +void func_8008701C(s32, s32); +s32 func_80087060(s32, s32); +s32 func_80087104(s32, u16); +s32 func_800871AC(s32, s32); +void func_80087258(s32, s32, f32); +s32 func_80087294(s32, Player*); +s32 func_800872D8(s32, Camera*); +u16 func_80087324(s32); +s32 func_80087368(s32); +void func_800873A4(s32); +void func_800873F4(s32); +void func_80087444(s32); +void func_8008748C(s32); +void func_800874D4(s32); +void func_8008751C(s32); +void func_8008757C(s32); +void func_80087620(s32); +void func_800876A0(s32); +void func_80087710(s32); +void func_8008775C(s32); +void func_80087798(s32); +void func_800877C4(s32); +void func_800877F0(s32); +void func_8008781C(s32); +void func_80087844(s32); +f32 func_8008786C(f32, f32, f32, f32, f32); +s32 func_8008789C(s32, s32); +s32 func_80087954(s32, s32); +s32 func_80087A0C(s32, s16, s16, s16, s16); +s32 func_80087B84(s32, f32, f32); +s32 func_80087C48(s32, f32, f32, s32); +s32 func_80087D24(s32, f32, f32, f32); +s32 func_80087E08(s32, f32, f32, f32, s16, s32); +s32 func_80087F14(s32, f32, f32, f32, s16, s32); +void func_80088038(s32, f32, u16); +void func_800880DC(); +void func_80088150(s32); +s32 func_80088538(s32); +s32 func_8008861C(s32); +void func_800886F4(s32); +void func_800887C0(s32); +s32 func_80088880(s32, Player*); +s32 func_800888E8(s32, Player*); +u32 func_8008896C(s32, Camera*); +s32 func_800889D4(s32, Camera*); +s32 func_80088A58(s32, Player*, f32); +s32 func_80088AC0(s32, Player*, f32, f32); +s32 func_80088B40(s32, Player*, f32); +s32 func_80088BB8(s32, Camera*, f32); +s32 func_80088C20(s32, Camera*, f32, f32); +s32 func_80088CA0(s32, Camera*, f32); +s32 func_80088D18(s32, Player*); +s32 func_80088DA4(s32, Player*); +s32 func_80088E48(s32, Player*, f32); +s32 func_80088E98(s32, Player*, f32); +f32 func_80088F54(s32, Player*); +s32 func_80088F94(s32, Player*, f32); +void func_80088FF0(Player*); +void func_8008900C(Player*); +void func_80089020(s32, f32*); +void func_800892E0(s32); +s32 func_8008A060(s32, Camera*, u16); +s32 func_8008A0B4(s32, Player*, Camera*, u16); +s32 func_8008A140(s32, Camera*, u16); +void func_8008A1D0(s32, s32, s32, s32); +void func_8008A2CC(s32, s32, u16); +u32 func_8008A364(s32, s32, u16, s32); +void func_8008A454(s32, s32, s32); +void func_8008A4CC(s32); +void func_8008A610(s32); +void func_8008A6DC(s32, f32); +void func_8008A810(s32); +void func_8008A830(s32); +void func_8008A850(s32); +s32 func_8008A870(Player*); +s32 func_8008A890(Camera*); +s32 func_8008A8B0(s16, s16); +void func_8008ABC0(s32); +void func_8008AC40(s32); +void func_8008ACC0(); +void func_8008ACC8(); +void func_8008ACD0(); +void func_8008ACD8(); +void func_8008ADC0(); +void func_8008ADC8(); +void func_8008AE8C(); +void func_8008AE94(); +void func_8008ADD0(s32, f32); +void func_8008AFE0(s32, f32); +void func_8008B018(); +void func_8008B020(); +void func_8008B028(); +void func_8008B030(); +void func_8008ACE0(s32,f32); +void func_8008B17C(s32, f32); +void func_8008B1B4(); +void func_8008B1BC(); +void func_8008B1C4(); +void func_8008B1CC(); +void func_8008B44C(s32); +void func_8008B7D4(s32, f32, f32, f32); +void func_8008B80C(s32, f32, f32, f32); +void func_8008B844(s32); +void func_8008B888(s32, u16, u16, u16); +void func_8008B8BC(s32, u16, u16, u16); +void func_8008B8F0(s32, f32, f32, f32); +void func_8008BA40(s32, s16, u16); +void func_8008BAB4(s32, s16, u16); +void func_8008BB28(s32, s16, u16); +void func_8008BB9C(s32, s16, s16, u16, u16); +void func_8008BC58(s32, s16, s16, u16, u16); +void func_8008BD14(s32, s16, s16, s16, u16, u16, u16); +void func_8008BE0C(s32, s16, u16); +void func_8008BEA4(s32, u16, u16); +void func_8008BFC0(s32); +void func_8008BF18(s32); +void func_8008C1B8(); +void func_8008C1C0(); + +// This may be a list of tilemap flags on a per-camera basis +extern s16 D_8018CF68[]; +extern s32 gPlayerCountSelection1; +extern s32 D_80183DA8; +extern s32 D_80183DC8; +extern f32 gVBlankTimer; +extern UnkActorInner D_8018C3B0; +extern Player *gPlayerOneCopy; + +#endif diff --git a/src/code_8008C1D0.c b/src/code_8008C1D0.c index d9e46d379..9f0ca04c0 100644 --- a/src/code_8008C1D0.c +++ b/src/code_8008C1D0.c @@ -4,21 +4,24 @@ #include "functions.h" #include "variables.h" #include "kart_attributes.h" -#include "code_8008C1D0.h" -#include "code_80027D00.h" +#include "code_80005FD0.h" #include "code_8001F980.h" +#include "code_80027D00.h" +#include "code_800431B0.h" +#include "code_80057C60.h" +#include "code_8008C1D0.h" #include UNUSED void func_unnamed(void) { } -UNUSED void func_8008C1D8(UNUSED s32 arg0) { +void func_8008C1D8(UNUSED s32 *arg0) { } -UNUSED void func_8008C1E0(UNUSED s32 arg0, UNUSED s32 arg1) { - arg1 = 4; +void func_8008C1E0(UNUSED s32 arg0, UNUSED s32 arg1) { + arg1 = 4; } UNUSED void func_unnamed1(UNUSED s32 arg0) { @@ -33,7 +36,7 @@ UNUSED void func_unnamed3(void) { } -UNUSED void func_8008C204(void) { +void func_8008C204(void) { } @@ -1671,7 +1674,7 @@ void func_8008FC1C(Player* player) { if ((player->unk_000 & 0x40) != 0) { playerIndex = get_player_index_for_player(player); player->unk_000 = 0x7000; - func_80056A94(playerIndex, player); + func_80056A94(playerIndex); } } diff --git a/src/code_8008C1D0.h b/src/code_8008C1D0.h index 462593090..128895e6b 100644 --- a/src/code_8008C1D0.h +++ b/src/code_8008C1D0.h @@ -5,7 +5,47 @@ /* Function Prototypes */ +void func_unnamed(); +void func_8008C1D8(s32*); +void func_8008C1E0(s32, s32); +void func_unnamed1(s32); +void func_unnamed2(s32); +void func_unnamed3(); +void func_8008C204(); +void func_unnamed4(); +void func_8008C214(); +void func_unnamed5(); +void func_unnamed6(); +void func_unnamed7(); +void func_unnamed8(); +void func_8008C23C(); +void func_unnamed9(); +void func_unnamed10(); +void func_unnamed11(); +void func_unnamed12(); +void func_unnamed13(); +void func_unnamed14(); +void func_unnamed15(); +void func_unnamed16(); +void func_unnamed17(); +void func_unnamed18(); +void func_unnamed19(); +void func_unnamed20(); +void func_unnamed21(); +void func_unnamed22(s32, s32); +void func_unnamed23(); +void func_unnamed24(); +void func_unnamed25(); +void func_unnamed26(); +void func_unnamed27(); +void func_unnamed28(); +void func_unnamed29(); +void func_unnamed30(); +void func_unnamed31(); +void func_unnamed32(); +void func_unnamed33(); void func_8008C310(Player*); +void func_unnamed34(); void func_8008C354(Player*, s8); void func_8008C528(Player*, s8); void func_8008C62C(Player*, s8); @@ -69,15 +109,8 @@ void func_800911B4(Player*, s8); void func_80091440(s8); void func_800914A0(); - // code_80005FD0 void func_800098FC(u32, Player*); -// code_800431B0 -void func_800569F4(s32); -void func_80056A40(s32, s32); -void func_80056A94(s32, Player*); -// code_80057C60 -void func_8006B8B4(Player*, s8); // audio/external.c void func_800C90F4(u8, uintptr_t); void func_800C9060(u8, s32); diff --git a/src/code_80091750.c b/src/code_80091750.c index 11634e065..0910b4b40 100644 --- a/src/code_80091750.c +++ b/src/code_80091750.c @@ -354,14 +354,8 @@ void func_80091EE4(void) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80092258(); // extern -? func_80099110(); // extern -? func_8009A344(); // extern -? func_8009E620(); // extern -? add_8018D9E0_entry(?, ?, ?, ?); // extern -? func_800B5F30(); // extern -extern s32 D_8018D9B0; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_80092258(); /* extern */ extern s32 D_8018D9B4; extern s32 D_8018D9B8; extern s32 D_8018D9BC; @@ -372,19 +366,17 @@ extern s8 D_8018EE08; extern u8 gControllerBits; void func_80091FA4(void) { - u32 temp_v1; - ? *phi_v1; + ? *var_v1; - D_8018D9B4 = func_802A7B70(0x2800); - D_8018D9B0 = func_802A7B70(0x124F8); - D_8018D9B8 = func_802A7B70(0x1000); + D_8018D9B4 = func_802A7B70(0x00002800); + D_8018D9B0 = func_802A7B70(0x000124F8); + D_8018D9B8 = func_802A7B70(0x00001000); D_8018D9BC = func_802A7B70(4); - phi_v1 = &D_8018E7AC; + var_v1 = &D_8018E7AC; do { - temp_v1 = phi_v1 + 1; - temp_v1->unk-1 = 0; - phi_v1 = temp_v1; - } while (temp_v1 < &D_8018E7B1); + var_v1 += 1; + var_v1->unk-1 = 0; + } while ((u32) var_v1 < (u32) &D_8018E7B1); D_8018E838 = 0; D_8018E838 = 0; D_8018E838 = 0; @@ -393,18 +385,18 @@ void func_80091FA4(void) { func_8009A344(); func_8009E620(); func_80092258(); - add_8018D9E0_entry(0x96, 0x64, 0x24, 1); - add_8018D9E0_entry(0x97, 0x64, 0xDD, 1); - add_8018D9E0_entry(0x98, 0, 0, 0); - add_8018D9E0_entry(0xC7, 0, 0, 0); - if (gModeSelection == TIME_TRIALS) { - add_8018D9E0_entry(0xBE, 0, 0, 0); - add_8018D9E0_entry(0x10E, 0, 0, 0); + add_8018D9E0_entry(0x00000096, 0x00000064, 0x00000024, 1); + add_8018D9E0_entry(0x00000097, 0x00000064, 0x000000DD, 1); + add_8018D9E0_entry(0x00000098, 0, 0, 0); + add_8018D9E0_entry(0x000000C7, 0, 0, 0); + if (gModeSelection == 1) { + add_8018D9E0_entry(0x000000BE, 0, 0, 0); + add_8018D9E0_entry(0x0000010E, 0, 0, 0); } - if ((D_8015F890 != 0) && (gModeSelection == TIME_TRIALS)) { - add_8018D9E0_entry(0xBD, 0, 0, 0); + if ((D_8015F890 != 0) && (gModeSelection == 1)) { + add_8018D9E0_entry(0x000000BD, 0, 0, 0); } - if (((gControllerBits & 1) == 0) && (D_8018EE08 != 0)) { + if (!(gControllerBits & 1) && (D_8018EE08 != 0)) { add_8018D9E0_entry(4, 0, 0, 2); } func_800B5F30(); @@ -1238,34 +1230,27 @@ void func_80093E40(void) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80092258(); // extern -? func_80099110(); // extern -? func_8009A344(); // extern -? func_8009E620(); // extern -extern s32 D_8018D9B0; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_80092258(); /* extern */ extern s32 D_8018D9B4; extern s32 D_8018D9B8; extern s32 D_8018D9BC; extern ? D_8018E7AC; extern ? D_8018E7B1; extern s8 D_8018E838; -extern s8 D_8018ED91; void func_80093E60(void) { - u32 temp_v1; - ? *phi_v1; + ? *var_v1; - D_8018D9B4 = func_802A7B70(0x2800); - D_8018D9B0 = func_802A7B70(0x124F8); - D_8018D9B8 = func_802A7B70(0x1000); + D_8018D9B4 = func_802A7B70(0x00002800); + D_8018D9B0 = func_802A7B70(0x000124F8); + D_8018D9B8 = func_802A7B70(0x00001000); D_8018D9BC = func_802A7B70(4); - phi_v1 = &D_8018E7AC; + var_v1 = &D_8018E7AC; do { - temp_v1 = phi_v1 + 1; - temp_v1->unk-1 = 0; - phi_v1 = temp_v1; - } while (temp_v1 < &D_8018E7B1); + var_v1 += 1; + var_v1->unk-1 = 0; + } while ((u32) var_v1 < (u32) &D_8018E7B1); D_8018E838 = 0; D_8018E838 = 0; D_8018E838 = 0; @@ -1532,23 +1517,18 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_80094A64.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_80092258(); /* extern */ -? func_80099110(); /* extern */ -? func_8009A344(); /* extern */ ? func_8009B938(); /* extern */ ? func_8009DF4C(?); /* extern */ ? func_8009DF6C(?); /* extern */ -? func_8009E620(); /* extern */ -? add_8018D9E0_entry(?, ?, ?, ?); /* extern */ -? func_800B3F74(u32); /* extern */ -? func_800B5F30(); /* extern */ -? func_800B6014(); /* extern */ +? func_800B3F74(s32); /* extern */ +extern s32 D_800E86A4; +extern s8 D_8018EE08; +extern u8 gControllerBits; void func_80094C60(void) { - s32 temp_v0; - u32 temp_t7; - s32 phi_v0; + s32 temp_t7; if (D_800E86A4 != 0) { func_80099110(); @@ -1561,58 +1541,58 @@ void func_80094C60(void) { func_800B3F74(gMenuSelection); temp_t7 = gMenuSelection; switch (temp_t7) { - case OPTIONS_MENU: - add_8018D9E0_entry(0x23, 0, 0, 2); - add_8018D9E0_entry(0xF1, 0, 0, 4); - add_8018D9E0_entry(0xF0, 0, 0, 2); + case 5: + add_8018D9E0_entry(0x00000023, 0, 0, 2); + add_8018D9E0_entry(0x000000F1, 0, 0, 4); + add_8018D9E0_entry(0x000000F0, 0, 0, 2); break; - case DATA_MENU: - add_8018D9E0_entry(0x23, 0, 0, 2); - add_8018D9E0_entry(0x8C, 0, 0, 6); - add_8018D9E0_entry(0x7C, 0, 0, 6); - add_8018D9E0_entry(0x7D, 0, 0, 6); - add_8018D9E0_entry(0x7E, 0, 0, 6); - add_8018D9E0_entry(0x7F, 0, 0, 6); - add_8018D9E0_entry(0x80, 0, 0, 6); - add_8018D9E0_entry(0x81, 0, 0, 6); - add_8018D9E0_entry(0x82, 0, 0, 6); - add_8018D9E0_entry(0x83, 0, 0, 6); - add_8018D9E0_entry(0x84, 0, 0, 6); - add_8018D9E0_entry(0x85, 0, 0, 6); - add_8018D9E0_entry(0x86, 0, 0, 6); - add_8018D9E0_entry(0x87, 0, 0, 6); - add_8018D9E0_entry(0x88, 0, 0, 6); - add_8018D9E0_entry(0x89, 0, 0, 6); - add_8018D9E0_entry(0x8A, 0, 0, 6); - add_8018D9E0_entry(0x8B, 0, 0, 6); - add_8018D9E0_entry(0x8D, 0, 0, 8); + case 6: + add_8018D9E0_entry(0x00000023, 0, 0, 2); + add_8018D9E0_entry(0x0000008C, 0, 0, 6); + add_8018D9E0_entry(0x0000007C, 0, 0, 6); + add_8018D9E0_entry(0x0000007D, 0, 0, 6); + add_8018D9E0_entry(0x0000007E, 0, 0, 6); + add_8018D9E0_entry(0x0000007F, 0, 0, 6); + add_8018D9E0_entry(0x00000080, 0, 0, 6); + add_8018D9E0_entry(0x00000081, 0, 0, 6); + add_8018D9E0_entry(0x00000082, 0, 0, 6); + add_8018D9E0_entry(0x00000083, 0, 0, 6); + add_8018D9E0_entry(0x00000084, 0, 0, 6); + add_8018D9E0_entry(0x00000085, 0, 0, 6); + add_8018D9E0_entry(0x00000086, 0, 0, 6); + add_8018D9E0_entry(0x00000087, 0, 0, 6); + add_8018D9E0_entry(0x00000088, 0, 0, 6); + add_8018D9E0_entry(0x00000089, 0, 0, 6); + add_8018D9E0_entry(0x0000008A, 0, 0, 6); + add_8018D9E0_entry(0x0000008B, 0, 0, 6); + add_8018D9E0_entry(0x0000008D, 0, 0, 8); break; - case COURSE_DATA_MENU: - add_8018D9E0_entry(0xE6, 0, 0, 8); - add_8018D9E0_entry(0xE7, 0, 0, 8); - add_8018D9E0_entry(0xE8, 0, 0, 8); - add_8018D9E0_entry(0xE9, 0, 0, 8); - add_8018D9E0_entry(0xEA, 0, 0, 8); + case 7: + add_8018D9E0_entry(0x000000E6, 0, 0, 8); + add_8018D9E0_entry(0x000000E7, 0, 0, 8); + add_8018D9E0_entry(0x000000E8, 0, 0, 8); + add_8018D9E0_entry(0x000000E9, 0, 0, 8); + add_8018D9E0_entry(0x000000EA, 0, 0, 8); break; - case LOGO_INTRO_MENU: - add_8018D9E0_entry(0xFA, 0, 0, 0); + case 8: + add_8018D9E0_entry(0x000000FA, 0, 0, 0); break; - case CONTROLLER_PAK_MENU: - add_8018D9E0_entry(0xDA, 0, 0, 0); - add_8018D9E0_entry(0xD2, 0, 0, 4); - add_8018D9E0_entry(0xD4, 0, 0, 6); - add_8018D9E0_entry(0xD3, 0, 0, 8); - add_8018D9E0_entry(0xD5, 0, 0, 0xA); - add_8018D9E0_entry(0xD6, 0, 0, 0xA); - add_8018D9E0_entry(0xD7, 0, 0, 0xA); - add_8018D9E0_entry(0xD8, 0, 0, 0xA); - add_8018D9E0_entry(0xD9, 0, 0, 0xA); + case 9: + add_8018D9E0_entry(0x000000DA, 0, 0, 0); + add_8018D9E0_entry(0x000000D2, 0, 0, 4); + add_8018D9E0_entry(0x000000D4, 0, 0, 6); + add_8018D9E0_entry(0x000000D3, 0, 0, 8); + add_8018D9E0_entry(0x000000D5, 0, 0, 0x0A); + add_8018D9E0_entry(0x000000D6, 0, 0, 0x0A); + add_8018D9E0_entry(0x000000D7, 0, 0, 0x0A); + add_8018D9E0_entry(0x000000D8, 0, 0, 0x0A); + add_8018D9E0_entry(0x000000D9, 0, 0, 0x0A); break; - case START_MENU: + case 10: add_8018D9E0_entry(2, 0, 0, 4); add_8018D9E0_entry(1, 0, 0, 0); - add_8018D9E0_entry(0xFB, 0, 0, 0); - if ((gControllerBits & 1) != 0) { + add_8018D9E0_entry(0x000000FB, 0, 0, 0); + if (gControllerBits & 1) { add_8018D9E0_entry(3, 0, 0, 2); } else { add_8018D9E0_entry(4, 0, 0, 2); @@ -1621,77 +1601,74 @@ void func_80094C60(void) { D_800DC51C = 0; D_8018EE08 = 0; break; - case MAIN_MENU: - add_8018D9E0_entry(0x23, 0, 0, 2); - add_8018D9E0_entry(0xA, 0x15E, 0x11, 6); - add_8018D9E0_entry(0xE, 0x15E, 0x3E, 6); - add_8018D9E0_entry(0xD, 0x15E, 0x3E, 6); - add_8018D9E0_entry(0xC, 0x15E, 0x3E, 6); - add_8018D9E0_entry(0xB, 0x15E, 0x3E, 6); - add_8018D9E0_entry(0xF, 0x15E, 0xC8, 6); - add_8018D9E0_entry(0x11, 0x15E, 0xC8, 6); - add_8018D9E0_entry(0x10, 0x15E, 0xC8, 6); + case 11: + add_8018D9E0_entry(0x00000023, 0, 0, 2); + add_8018D9E0_entry(0x0000000A, 0x0000015E, 0x00000011, 6); + add_8018D9E0_entry(0x0000000E, 0x0000015E, 0x0000003E, 6); + add_8018D9E0_entry(0x0000000D, 0x0000015E, 0x0000003E, 6); + add_8018D9E0_entry(0x0000000C, 0x0000015E, 0x0000003E, 6); + add_8018D9E0_entry(0x0000000B, 0x0000015E, 0x0000003E, 6); + add_8018D9E0_entry(0x0000000F, 0x0000015E, 0x000000C8, 6); + add_8018D9E0_entry(0x00000011, 0x0000015E, 0x000000C8, 6); + add_8018D9E0_entry(0x00000010, 0x0000015E, 0x000000C8, 6); if (func_800B555C() != 0) { - add_8018D9E0_entry(0x15, 0, 0, 6); + add_8018D9E0_entry(0x00000015, 0, 0, 6); } - add_8018D9E0_entry(0x14, 0, 0, 6); - add_8018D9E0_entry(0x13, 0, 0, 6); - add_8018D9E0_entry(0x12, 0, 0, 6); - add_8018D9E0_entry(0x19, 0, 0, 6); - add_8018D9E0_entry(0x18, 0, 0, 6); - add_8018D9E0_entry(0x1B, 0, 0, 0xC); + add_8018D9E0_entry(0x00000014, 0, 0, 6); + add_8018D9E0_entry(0x00000013, 0, 0, 6); + add_8018D9E0_entry(0x00000012, 0, 0, 6); + add_8018D9E0_entry(0x00000019, 0, 0, 6); + add_8018D9E0_entry(0x00000018, 0, 0, 6); + add_8018D9E0_entry(0x0000001B, 0, 0, 0x0C); break; - case PLAYER_SELECT_MENU: - add_8018D9E0_entry(0x24, 0, 0, 2); - add_8018D9E0_entry(0x2A, 0, 0, 6); - add_8018D9E0_entry(0x33, 0, 0, 6); - add_8018D9E0_entry(0x2B, 0, 0, 8); - add_8018D9E0_entry(0x2C, 0, 0, 8); - add_8018D9E0_entry(0x2D, 0, 0, 6); - add_8018D9E0_entry(0x2E, 0, 0, 6); - add_8018D9E0_entry(0x2F, 0, 0, 6); - add_8018D9E0_entry(0x30, 0, 0, 6); - add_8018D9E0_entry(0x31, 0, 0, 6); - add_8018D9E0_entry(0x32, 0, 0, 8); - add_8018D9E0_entry(0x34, 0, 0, 0xC); - add_8018D9E0_entry(0x35, 0, 0, 0xC); - add_8018D9E0_entry(0x36, 0, 0, 0xC); - add_8018D9E0_entry(0x37, 0, 0, 0xC); + case 12: + add_8018D9E0_entry(0x00000024, 0, 0, 2); + add_8018D9E0_entry(0x0000002A, 0, 0, 6); + add_8018D9E0_entry(0x00000033, 0, 0, 6); + add_8018D9E0_entry(0x0000002B, 0, 0, 8); + add_8018D9E0_entry(0x0000002C, 0, 0, 8); + add_8018D9E0_entry(0x0000002D, 0, 0, 6); + add_8018D9E0_entry(0x0000002E, 0, 0, 6); + add_8018D9E0_entry(0x0000002F, 0, 0, 6); + add_8018D9E0_entry(0x00000030, 0, 0, 6); + add_8018D9E0_entry(0x00000031, 0, 0, 6); + add_8018D9E0_entry(0x00000032, 0, 0, 8); + add_8018D9E0_entry(0x00000034, 0, 0, 0x0C); + add_8018D9E0_entry(0x00000035, 0, 0, 0x0C); + add_8018D9E0_entry(0x00000036, 0, 0, 0x0C); + add_8018D9E0_entry(0x00000037, 0, 0, 0x0C); break; - case COURSE_SELECT_MENU: - add_8018D9E0_entry(0x25, 0, 0, 2); - add_8018D9E0_entry(0x52, 0, 0, 6); - if (gModeSelection != BATTLE) { - add_8018D9E0_entry(0x53, 0, 0, 4); - add_8018D9E0_entry(0x54, 0, 0, 4); - add_8018D9E0_entry(0x55, 0, 0, 4); - add_8018D9E0_entry(0x56, 0, 0, 4); - add_8018D9E0_entry(0x58, 0, 0, 6); - add_8018D9E0_entry(0x59, 0, 0, 6); - add_8018D9E0_entry(0x5A, 0, 0, 6); - add_8018D9E0_entry(0x5B, 0, 0, 6); + case 13: + add_8018D9E0_entry(0x00000025, 0, 0, 2); + add_8018D9E0_entry(0x00000052, 0, 0, 6); + if (gModeSelection != 3) { + add_8018D9E0_entry(0x00000053, 0, 0, 4); + add_8018D9E0_entry(0x00000054, 0, 0, 4); + add_8018D9E0_entry(0x00000055, 0, 0, 4); + add_8018D9E0_entry(0x00000056, 0, 0, 4); + add_8018D9E0_entry(0x00000058, 0, 0, 6); + add_8018D9E0_entry(0x00000059, 0, 0, 6); + add_8018D9E0_entry(0x0000005A, 0, 0, 6); + add_8018D9E0_entry(0x0000005B, 0, 0, 6); } else { - add_8018D9E0_entry(0x5C, 0, 0, 6); - add_8018D9E0_entry(0x6E, 0, 0, 6); + add_8018D9E0_entry(0x0000005C, 0, 0, 6); + add_8018D9E0_entry(0x0000006E, 0, 0, 6); } - add_8018D9E0_entry(0x64, 0, 0, 6); - add_8018D9E0_entry(0x5F, 0, 0, 6); - add_8018D9E0_entry(0x60, 0, 0, 6); - add_8018D9E0_entry(0x61, 0, 0, 6); - add_8018D9E0_entry(0x62, 0, 0, 6); - add_8018D9E0_entry(0x5D, 0, 0, 6); - add_8018D9E0_entry(0x5E, 0, 0, 8); - temp_v0 = gModeSelection; - phi_v0 = temp_v0; - if (temp_v0 == TIME_TRIALS) { - add_8018D9E0_entry(0x65, 0, 0, 8); - add_8018D9E0_entry(0x66, 0, 0, 8); - add_8018D9E0_entry(0x69, 0, 0, 8); - phi_v0 = gModeSelection; + add_8018D9E0_entry(0x00000064, 0, 0, 6); + add_8018D9E0_entry(0x0000005F, 0, 0, 6); + add_8018D9E0_entry(0x00000060, 0, 0, 6); + add_8018D9E0_entry(0x00000061, 0, 0, 6); + add_8018D9E0_entry(0x00000062, 0, 0, 6); + add_8018D9E0_entry(0x0000005D, 0, 0, 6); + add_8018D9E0_entry(0x0000005E, 0, 0, 8); + if (gModeSelection == 1) { + add_8018D9E0_entry(0x00000065, 0, 0, 8); + add_8018D9E0_entry(0x00000066, 0, 0, 8); + add_8018D9E0_entry(0x00000069, 0, 0, 8); } - if (phi_v0 == GRAND_PRIX) { - add_8018D9E0_entry(0x68, 0, 0, 8); - add_8018D9E0_entry(0x67, 0, 0, 5); + if (gModeSelection == 0) { + add_8018D9E0_entry(0x00000068, 0, 0, 8); + add_8018D9E0_entry(0x00000067, 0, 0, 5); } break; } @@ -1708,18 +1685,14 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_80094C60.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 06ada559d7a32fdab49fa2d619cdfa027615bcda -? debug_print_str2(s32, ?, s8 *, s16); /* extern */ -? func_80057778(); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_8009E230(); /* extern */ ? func_800CA0A0(); /* extern */ -? load_debug_font(); /* extern */ ? play_sound2(?); /* extern */ -? print_str_num(?, ?, ? *, s16); /* extern */ extern s8 D_8018E7B0; extern s8 D_8018EDF1; extern s8 D_8018EE0C; -static s8 *gDebugCharacterNames[8] = { "MARIO", "LUIGI", "YOSHI", "KINOPIO", "D.KONG", "WARIO", "PEACH", "KOOPA" }; /* const */ +static s8 *gDebugCharacterNames[8] = { "MARIO", "LUIGI", "YOSHI", "KINOPIO", "D.KONG", "WARIO", "PEACH", "KOOPA" }; static s8 *gDebugCourseNames[0x14] = { "m circuit", "mountain", @@ -1741,93 +1714,85 @@ static s8 *gDebugCourseNames[0x14] = { "deck", "jungle", "doughnut", -}; /* const */ -static s8 *gDebugScreenModeNames[5] = { "1p", "2players UD", "2players LR", "3players", "4players" }; /* const */ +}; +static s8 *gDebugScreenModeNames[5] = { "1p", "2players UD", "2players LR", "3players", "4players" }; s16 gCurrentCourseId; /* unable to generate initializer */ -s8 gCharacterSelections[4]; /* unable to generate initializer; const */ -s8 *gDebugSoundModeNames[4] = { "stereo", "head phone", "xxx", "monaural" }; /* const */ +s8 *gDebugSoundModeNames[4] = { "stereo", "head phone", "xxx", "monaural" }; void func_80095574(void) { Gfx *temp_v1; s16 temp_a3; s16 temp_a3_2; - s32 temp_v0_2; + s32 var_v0; + s32 var_v0_2; s8 temp_t8; - s8 temp_v0; - s32 phi_v0; - s8 phi_v0_2; - s32 phi_v0_3; - if (((s32) D_8018EE0C < 3) || (D_8018E7B0 != 0)) { + if ((D_8018EE0C < 3) || (D_8018E7B0 != 0)) { func_800A8230(); } - temp_v0 = gDebugMenuSelection; - phi_v0_2 = temp_v0; - if ((s32) temp_v0 >= DEBUG_MENU_DEBUG_MODE) { + if (gDebugMenuSelection >= 2) { load_debug_font(); - debug_print_str2(0x50, 0x64, "debug_mode"); + debug_print_str2(0x00000050, 0x00000064, "debug_mode"); temp_t8 = gDebugMenuSelection; switch (temp_t8) { - case DEBUG_MENU_DEBUG_MODE: - debug_print_str2(0x46, 0x64, "*"); + case 2: + debug_print_str2(0x00000046, 0x00000064, "*"); break; - case DEBUG_MENU_COURSE: - debug_print_str2(0x46, 0x6E, "*"); + case 3: + debug_print_str2(0x00000046, 0x0000006E, "*"); break; - case DEBUG_MENU_SCREEN_MODE: - debug_print_str2(0x46, 0x78, "*"); + case 4: + debug_print_str2(0x00000046, 0x00000078, "*"); break; - case DEBUG_MENU_PLAYER: - debug_print_str2(0x46, 0x82, "*"); + case 5: + debug_print_str2(0x00000046, 0x00000082, "*"); break; - case DEBUG_MENU_SOUND_MODE: - debug_print_str2(0x46, 0x8C, "*"); + case 6: + debug_print_str2(0x00000046, 0x0000008C, "*"); break; - case DEBUG_MENU_GIVE_ALL_GOLD_CUP: - debug_print_str2(0x46, 0x96, "*"); + case 7: + debug_print_str2(0x00000046, 0x00000096, "*"); break; } if (gEnableDebugMode != 0) { - debug_print_str2(0xAA, 0x64, "on"); + debug_print_str2(0x000000AA, 0x00000064, "on"); } else { - debug_print_str2(0xAA, 0x64, "off"); + debug_print_str2(0x000000AA, 0x00000064, "off"); } temp_a3 = gCurrentCourseId; - if (((s32) temp_a3 >= 0x14) || ((s32) temp_a3 < 0)) { + if ((temp_a3 >= 0x14) || (temp_a3 < 0)) { gCurrentCourseId = 0; } - print_str_num(0x50, 0x6E, "map_number", gCurrentCourseId); + print_str_num(0x00000050, 0x0000006E, "map_number", (s32) gCurrentCourseId); temp_a3_2 = gCurrentCourseId; - if ((s32) temp_a3_2 < 0xA) { - phi_v0 = 0; + if (temp_a3_2 < 0xA) { + var_v0 = 0; } else { - phi_v0 = 8; + var_v0 = 8; } - debug_print_str2(phi_v0 + 0xB9, 0x6E, gDebugCourseNames[temp_a3_2], temp_a3_2); - debug_print_str2(0x50, 0x78, "screen_mode"); - debug_print_str2(0xAA, 0x78, gDebugScreenModeNames[D_8018EDF1]); - debug_print_str2(0x50, 0x82, "player"); - debug_print_str2(0xAA, 0x82, gDebugCharacterNames[*gCharacterSelections]); - debug_print_str2(0x50, 0x8C, "sound mode"); - debug_print_str2(0xAA, 0x8C, gDebugSoundModeNames[gSoundMode]); - if (gDebugMenuSelection == DEBUG_MENU_GIVE_ALL_GOLD_CUP) { - debug_print_str2(0x50, 0x96, "push b to get all goldcup"); + debug_print_str2(var_v0 + 0xB9, 0x0000006E, gDebugCourseNames[temp_a3_2]); + debug_print_str2(0x00000050, 0x00000078, "screen_mode"); + debug_print_str2(0x000000AA, 0x00000078, gDebugScreenModeNames[D_8018EDF1]); + debug_print_str2(0x00000050, 0x00000082, "player"); + debug_print_str2(0x000000AA, 0x00000082, gDebugCharacterNames[*gCharacterSelections]); + debug_print_str2(0x00000050, 0x0000008C, "sound mode"); + debug_print_str2(0x000000AA, 0x0000008C, gDebugSoundModeNames[gSoundMode]); + if (gDebugMenuSelection == 7) { + debug_print_str2(0x00000050, 0x00000096, "push b to get all goldcup"); } func_80057778(); - phi_v0_2 = gDebugMenuSelection; } - if (phi_v0_2 == DEBUG_MENU_DISABLED) { + if (gDebugMenuSelection == 1) { gMenuTimingCounter += 1; } else { gMenuTimingCounter = 3; } - temp_v0_2 = gMenuTimingCounter; - phi_v0_3 = temp_v0_2; - if (temp_v0_2 == 2) { + var_v0_2 = gMenuTimingCounter; + if (var_v0_2 == 2) { play_sound2(0x49009009); - phi_v0_3 = gMenuTimingCounter; + var_v0_2 = gMenuTimingCounter; } - if (phi_v0_3 >= 0x12D) { + if (var_v0_2 >= 0x12D) { func_8009E230(); func_800CA0A0(); } @@ -2590,299 +2555,263 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_800963F0.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 06ada559d7a32fdab49fa2d619cdfa027615bcda -s32 random_int(?, u32); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern ? D_0B002A00; Gfx *func_80096CD8(Gfx *arg0, s32 arg1, s32 arg2, u32 arg3, u32 arg4) { s32 spD4; - s32 spD0; + s32 spD0; /* compiler-managed */ s32 spCC; s32 spC8; s32 spC4; - s32 sp84; /* compiler-managed */ + s32 sp84; u32 sp80; u32 sp7C; u32 sp78; s32 sp58; Gfx *temp_s0; - Gfx *temp_s0_11; - Gfx *temp_v0_3; + Gfx *temp_s0_2; + Gfx *temp_s0_3; + Gfx *temp_s0_4; + Gfx *temp_s0_5; + Gfx *temp_s0_6; + Gfx *temp_s0_7; + Gfx *temp_s0_8; + Gfx *temp_s0_9; + Gfx *temp_v0_2; + Gfx *var_s0; s32 temp_a0; s32 temp_a1; s32 temp_a2; - s32 temp_a3; + s32 temp_at; + s32 temp_at_2; s32 temp_lo; - s32 temp_s1; - s32 temp_s3; - s32 temp_s4; s32 temp_t4; - s32 temp_t5; s32 temp_t8; s32 temp_t8_2; s32 temp_v0; - s32 temp_v0_2; + s32 temp_v0_3; s32 temp_v0_4; - s32 temp_v0_5; s32 temp_v1; s32 temp_v1_2; s32 temp_v1_3; + s32 temp_v1_4; + s32 var_fp; + s32 var_s1_2; + s32 var_s1_3; + s32 var_s2; + s32 var_s2_2; + s32 var_s3; + s32 var_s3_2; + s32 var_s4; + s32 var_t3; + s32 var_t4; + s32 var_t5; + s32 var_v0; + u32 temp_a3; u32 temp_t2; u32 temp_t6; u32 temp_t7; - void *temp_s0_10; - void *temp_s0_2; - void *temp_s0_3; - void *temp_s0_4; - void *temp_s0_5; - void *temp_s0_6; - void *temp_s0_7; - void *temp_s0_8; - void *temp_s0_9; - u32 phi_ra; - s32 phi_ra_2; - s32 phi_v0; - s32 phi_s1; - s32 phi_s1_2; - u32 phi_a1; - s32 phi_s4; - s32 phi_s2; - s32 phi_fp; - u32 phi_s3; - u32 phi_s4_2; - u32 phi_t4; - u32 phi_t4_2; - s32 phi_ra_3; - u32 phi_s1_3; - u32 phi_a1_2; - Gfx *phi_s0; - s32 phi_t5; - s32 phi_t3; - s32 phi_s4_3; - s32 phi_s6; - s32 phi_s2_2; - s32 phi_s3_2; - s32 phi_s7; - u32 phi_s3_3; - Gfx *phi_s0_2; - s32 phi_ra_4; - Gfx *phi_s0_3; - Gfx *phi_s0_4; + u32 var_a1; + u32 var_a1_2; + u32 var_ra; + u32 var_ra_2; + u32 var_s1; + u32 var_s4_2; + u32 var_s6; + u32 var_s7; + var_s0 = arg0; + var_s2 = arg2; + var_s4 = arg1; + var_ra = 1; spC8 = 0; spC4 = 0; - phi_ra = 1U; - phi_ra_2 = (s32) 1U; - phi_s4 = arg1; - phi_s2 = arg2; - phi_s0_2 = arg0; if (arg3 >= 2U) { do { - temp_t7 = phi_ra * 2; - phi_ra = temp_t7; - phi_ra_2 = (s32) temp_t7; + temp_t7 = var_ra * 2; + var_ra = temp_t7; } while (temp_t7 < arg3); } - temp_lo = 0x400 / phi_ra_2; + temp_lo = 0x400 / (s32) var_ra; + var_a1 = arg4; spCC = temp_lo; - phi_a1 = arg4; - if (arg4 < (u32) (temp_lo / 2)) { - phi_v0 = temp_lo / 2; + if (var_a1 < (u32) (temp_lo / 2)) { + var_v0 = temp_lo / 2; do { - temp_v0 = phi_v0 / 2; - phi_v0 = temp_v0; - } while (arg4 < (u32) temp_v0); - spCC = phi_v0; + temp_v1 = var_v0; + var_v0 = temp_v1 / 2; + } while (var_a1 < (u32) var_v0); + spCC = temp_v1; } - phi_s1 = phi_ra_2; - if (phi_ra_2 >= 2) { + var_s1 = var_ra; + if ((s32) var_ra >= 2) { do { - temp_t8 = phi_s1 / 2; + temp_t8 = (s32) var_s1 / 2; + temp_at = temp_t8 < 2; + var_s1 = (u32) temp_t8; spC8 += 1; - phi_s1 = temp_t8; - } while (temp_t8 >= 2); + } while (temp_at == 0); } - phi_s1_2 = spCC; - if (spCC >= 2) { + var_s1_2 = spCC; + if (var_s1_2 >= 2) { do { - temp_t8_2 = phi_s1_2 / 2; + temp_t8_2 = var_s1_2 / 2; + temp_at_2 = temp_t8_2 < 2; + var_s1_2 = temp_t8_2; spC4 += 1; - phi_s1_2 = temp_t8_2; - } while (temp_t8_2 >= 2); + } while (temp_at_2 == 0); } - if (arg1 < 0) { - arg3 -= arg1; - phi_s4 = 0; - } else if ((u32) (arg1 + arg3) >= 0x141U) { - arg3 = 0x140 - arg1; + if (var_s4 < 0) { + arg3 -= var_s4; + var_s4 = 0; + } else if ((u32) (var_s4 + arg3) >= 0x141U) { + arg3 = 0x140 - var_s4; } - phi_s4_2 = (u32) phi_s4; - if (arg2 < 0) { - phi_a1 = arg4 - arg2; - phi_s2 = 0; - } else if ((u32) (arg2 + arg4) >= 0xF1U) { - phi_a1 = 0xF0 - arg2; + if (var_s2 < 0) { + var_a1 -= var_s2; + var_s2 = 0; + } else if ((u32) (var_s2 + var_a1) >= 0xF1U) { + var_a1 = 0xF0 - var_s2; } if (arg3 == 0) { - } else if (phi_a1 == 0) { + } else if (var_a1 == 0) { } else { - spD0 = phi_ra_2; - temp_s3 = phi_s2 + phi_a1; - temp_t4 = phi_s4 + arg3; + spD0 = (s32) var_ra; + var_s3 = var_s2 + var_a1; + temp_t4 = var_s4 + arg3; sp84 = temp_t4; - temp_v0_2 = random_int(0x64, phi_a1); - temp_s1 = temp_v0_2; - temp_v0_3 = draw_box(arg0, phi_s4, phi_s2, sp84, temp_s3, 0, 0, 0, temp_v0_2); - temp_v1 = (temp_s1 + 0x96) & 0xFF; - temp_v0_3->words.w0 = 0xE7000000; - temp_v0_3->unk8 = 0xB900031D; - temp_v0_3->unkC = 0x504240; - temp_v0_3->unk10 = 0xFA000000; - temp_v0_3->words.w1 = 0; - temp_v0_3->unk14 = (s32) ((temp_v1 << 0x18) | (temp_v1 << 0x10) | (temp_v1 << 8) | temp_v1); - temp_v0_3->unk1C = 0xFF2FFFFF; - temp_v0_3->unk18 = 0xFC119623; - temp_s0 = temp_v0_3 + 0x20; - phi_fp = phi_s2; - phi_s3 = (u32) temp_s3; - phi_t4 = (u32) temp_t4; - phi_s0_2 = temp_s0; - phi_ra_4 = phi_ra_2; - phi_s0_3 = temp_s0; - if ((u32) phi_s2 < (u32) temp_s3) { + temp_v0 = random_int(0x0064U); + temp_v0_2 = draw_box(var_s0, var_s4, var_s2, sp84, var_s3, 0, 0, 0, temp_v0); + var_t4 = temp_t4; + var_ra_2 = var_ra; + temp_v1_2 = (temp_v0 + 0x96) & 0xFF; + temp_v0_2->words.w0 = 0xE7000000; + temp_v0_2->unk8 = 0xB900031D; + temp_v0_2->unkC = 0x00504240; + temp_v0_2->unk10 = 0xFA000000; + temp_v0_2->words.w1 = 0; + temp_v0_2->unk14 = (s32) ((temp_v1_2 << 0x18) | (temp_v1_2 << 0x10) | (temp_v1_2 << 8) | temp_v1_2); + temp_v0_2->unk1C = 0xFF2FFFFF; + temp_v0_2->unk18 = 0xFC119623; + var_s0 = temp_v0_2 + 0x20; + var_fp = var_s2; + if ((u32) var_s2 < (u32) var_s3) { loop_23: - temp_t6 = spCC + phi_fp; + var_t5 = spCC; + var_s1_3 = var_s4; + temp_t6 = spCC + var_fp; sp7C = temp_t6; - phi_t4_2 = phi_t4; - phi_ra_3 = phi_ra_4; - phi_s0 = phi_s0_3; - phi_s3_3 = phi_s3; - phi_s0_2 = phi_s0_3; - phi_t5 = spCC; - phi_s0_4 = phi_s0_3; - if (phi_s3 < temp_t6) { - temp_t5 = phi_s3 - phi_fp; - phi_t5 = temp_t5; - if (temp_t5 != 0) { + if ((u32) var_s3 < temp_t6) { + var_t5 = var_s3 - var_fp; + if (var_t5 != 0) { + var_s1_3 = var_s4; goto block_26; } } else { block_26: - phi_s1_3 = phi_s4_2; - if (phi_s4_2 < phi_t4) { - sp80 = phi_s3; - arg1 = (s32) phi_s4_2; + if ((u32) var_s4 < (u32) var_t4) { + sp80 = (u32) var_s3; + arg1 = var_s4; loop_28: - temp_t2 = phi_ra_3 + phi_s1_3; - phi_t4 = phi_t4_2; - phi_s0_4 = phi_s0; - phi_ra_4 = phi_ra_3; - if (phi_t4_2 < temp_t2) { - temp_s4 = phi_t4_2 - phi_s1_3; - phi_s4_3 = temp_s4; - if (temp_s4 == 0) { - phi_s3_3 = sp80; - phi_s4_2 = (u32) arg1; + temp_t2 = var_ra_2 + var_s1_3; + if ((u32) var_t4 < temp_t2) { + var_s4_2 = var_t4 - var_s1_3; + if (var_s4_2 == 0) { + var_s4 = arg1; + var_s3 = (s32) sp80; } else { - temp_v0_4 = (spC4 & 0xF) << 0xE; - temp_v1_2 = (spC8 & 0xF) * 0x10; - phi_a1_2 = ((arg3 - 1) & 0xFFF) | 0xFD700000; - phi_t3 = (phi_fp << 5) & 0xFFFF; - phi_s6 = temp_v0_4 | 0x07000000 | temp_v1_2; - phi_s2_2 = (phi_fp * 4) & 0xFFF; - phi_s3_2 = ((phi_fp + phi_t5) * 4) & 0xFFF; - phi_s7 = temp_v0_4 | temp_v1_2; + var_a1_2 = ((arg3 - 1) & 0xFFF) | 0xFD700000; + temp_v0_3 = (spC4 & 0xF) << 0xE; + temp_v1_3 = (spC8 & 0xF) * 0x10; + var_s6 = temp_v0_3 | 0x07000000 | temp_v1_3; + var_t3 = (var_fp << 5) & 0xFFFF; + var_s2_2 = (var_fp * 4) & 0xFFF; + var_s3_2 = ((var_fp + var_t5) * 4) & 0xFFF; + var_s7 = temp_v0_3 | temp_v1_3; goto block_33; } } else { - temp_v0_5 = (spC4 & 0xF) << 0xE; - temp_v1_3 = (spC8 & 0xF) * 0x10; - phi_a1_2 = ((arg3 - 1) & 0xFFF) | 0xFD700000; - phi_t3 = (phi_fp << 5) & 0xFFFF; - phi_s4_3 = phi_ra_3; - phi_s6 = temp_v0_5 | 0x07000000 | temp_v1_3; - phi_s2_2 = (phi_fp * 4) & 0xFFF; - phi_s3_2 = ((phi_fp + phi_t5) * 4) & 0xFFF; - phi_s7 = temp_v0_5 | temp_v1_3; + var_a1_2 = ((arg3 - 1) & 0xFFF) | 0xFD700000; + temp_v0_4 = (spC4 & 0xF) << 0xE; + temp_v1_4 = (spC8 & 0xF) * 0x10; + var_s6 = temp_v0_4 | 0x07000000 | temp_v1_4; + var_t3 = (var_fp << 5) & 0xFFFF; + var_s2_2 = (var_fp * 4) & 0xFFF; + var_s3_2 = ((var_fp + var_t5) * 4) & 0xFFF; + var_s7 = temp_v0_4 | temp_v1_4; + var_s4_2 = var_ra_2; block_33: - phi_s0->words.w0 = phi_a1_2; - spD0 = phi_ra_3; - spD4 = phi_t5; - sp84 = phi_t4_2; - sp58 = phi_t3; + var_s0->words.w0 = var_a1_2; + spD0 = var_ra_2; + spD4 = var_t5; + sp84 = var_t4; + sp58 = var_t3; sp78 = temp_t2; - temp_s0_2 = phi_s0 + 8; - temp_a2 = phi_s1_3 + phi_s4_3; - phi_s0->words.w1 = (random_int(0x80, phi_a1_2) * 2) + &D_0B002A00; + temp_s0 = var_s0 + 8; + temp_a2 = var_s1_3 + var_s4_2; + var_s0->words.w1 = (u32) ((random_int(0x0080U) * 2) + &D_0B002A00); + temp_s0_2 = temp_s0 + 8; + temp_a3 = ((((u32) (((temp_a2 - var_s1_3) * 2) + 9) >> 3) & 0x1FF) << 9) | 0xF5700000; + temp_s0->words.w0 = temp_a3; + temp_s0->words.w1 = var_s6; + temp_s0_2->words.w0 = 0xE6000000; + temp_a1 = ((var_s1_3 * 4) & 0xFFF) << 0xC; + temp_s0_2->words.w1 = 0; temp_s0_3 = temp_s0_2 + 8; - temp_a3 = ((((u32) (((temp_a2 - phi_s1_3) * 2) + 9) >> 3) & 0x1FF) << 9) | 0xF5700000; - temp_s0_2->unk0 = temp_a3; - temp_s0_2->unk4 = phi_s6; - temp_s0_3->unk0 = 0xE6000000; - temp_a1 = ((phi_s1_3 * 4) & 0xFFF) << 0xC; - temp_s0_3->unk4 = 0; - temp_s0_4 = temp_s0_3 + 8; temp_a0 = ((temp_a2 * 4) & 0xFFF) << 0xC; - temp_s0_4->unk0 = (s32) (temp_a1 | 0xF4000000 | phi_s2_2); + temp_s0_3->words.w0 = temp_a1 | 0xF4000000 | var_s2_2; + temp_s0_4 = temp_s0_3 + 8; + temp_s0_3->words.w1 = temp_a0 | 0x07000000 | var_s3_2; temp_s0_5 = temp_s0_4 + 8; - temp_s0_4->unk4 = (s32) (temp_a0 | 0x07000000 | phi_s3_2); + temp_s0_4->words.w0 = 0xE7000000; + temp_s0_4->words.w1 = 0; temp_s0_6 = temp_s0_5 + 8; - temp_s0_5->unk0 = 0xE7000000; - temp_s0_5->unk4 = 0; + temp_s0_5->words.w1 = var_s7; + temp_s0_5->words.w0 = temp_a3; temp_s0_7 = temp_s0_6 + 8; - temp_s0_6->unk4 = phi_s7; - temp_s0_6->unk0 = temp_a3; + temp_s0_6->words.w1 = temp_a0 | var_s3_2; + temp_s0_6->words.w0 = temp_a1 | 0xF2000000 | var_s2_2; temp_s0_8 = temp_s0_7 + 8; - temp_s0_7->unk4 = (s32) (temp_a0 | phi_s3_2); - temp_s0_7->unk0 = (s32) (temp_a1 | 0xF2000000 | phi_s2_2); + temp_s0_7->words.w1 = temp_a1 | var_s2_2; + temp_s0_7->words.w0 = temp_a0 | 0xE4000000 | var_s3_2; + temp_s0_8->words.w0 = 0xB3000000; temp_s0_9 = temp_s0_8 + 8; - temp_s0_8->unk4 = (s32) (temp_a1 | phi_s2_2); - temp_s0_8->unk0 = (s32) (temp_a0 | 0xE4000000 | phi_s3_2); - temp_s0_9->unk0 = 0xB3000000; - temp_s0_10 = temp_s0_9 + 8; - temp_s0_9->unk4 = (s32) ((phi_s1_3 << 0x15) | phi_t3); - temp_s0_10->unk0 = 0xB2000000; - temp_s0_10->unk4 = 0x04000400; - temp_s0_11 = temp_s0_10 + 8; - phi_s1_3 = temp_t2; - phi_s0 = temp_s0_11; - phi_t4 = phi_t4_2; - phi_s0_4 = temp_s0_11; - phi_ra_4 = phi_ra_3; - if (temp_t2 >= phi_t4_2) { - phi_s3_3 = sp80; - phi_s4_2 = (u32) arg1; + temp_s0_8->words.w1 = (var_s1_3 << 0x15) | var_t3; + temp_s0_9->words.w0 = 0xB2000000; + temp_s0_9->words.w1 = 0x04000400; + var_s0 = temp_s0_9 + 8; + var_s1_3 = (s32) temp_t2; + if (temp_t2 >= (u32) var_t4) { + var_s4 = arg1; + var_s3 = (s32) sp80; } else { goto loop_28; } } } - phi_fp = (s32) sp7C; - phi_s3 = phi_s3_3; - phi_s0_2 = phi_s0_4; - phi_s0_3 = phi_s0_4; - if (sp7C < phi_s3_3) { + var_fp = (s32) sp7C; + if ((u32) var_fp < (u32) var_s3) { goto loop_23; } } } } - return phi_s0_2; + return var_s0; } #else GLOBAL_ASM("asm/non_matchings/code_80091750/func_80096CD8.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 06ada559d7a32fdab49fa2d619cdfa027615bcda -s32 random_int(?, u32, s32, s32); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern ? D_000FFF00; extern ? D_0B002A00; Gfx *func_80097274(Gfx *arg0, s8 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA, u32 argB, u32 argC) { - s32 sp108; + u32 sp108; s32 sp104; s32 sp100; s32 spFC; @@ -2892,334 +2821,303 @@ Gfx *func_80097274(Gfx *arg0, s8 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s s32 spEC; u32 sp84; u32 sp80; - s32 sp68; - s32 sp50; + u32 sp68; + u32 sp50; s32 sp4C; s32 sp48; s32 sp44; - s32 sp40; + u32 sp40; + Gfx *temp_a0; Gfx *temp_s0; - Gfx *temp_s0_22; + Gfx *temp_s0_10; + Gfx *temp_s0_11; + Gfx *temp_s0_12; + Gfx *temp_s0_13; + Gfx *temp_s0_14; + Gfx *temp_s0_15; + Gfx *temp_s0_16; + Gfx *temp_s0_17; + Gfx *temp_s0_18; + Gfx *temp_s0_19; + Gfx *temp_s0_20; Gfx *temp_s0_2; Gfx *temp_s0_3; Gfx *temp_s0_4; Gfx *temp_s0_5; + Gfx *temp_s0_6; + Gfx *temp_s0_7; + Gfx *temp_s0_8; + Gfx *temp_s0_9; + Gfx *var_s0; s32 temp_a0_2; s32 temp_a0_3; s32 temp_a0_4; - s32 temp_a1; s32 temp_a3; + s32 temp_at; + s32 temp_at_2; s32 temp_lo; - s32 temp_s1; s32 temp_s2; - s32 temp_s5; - s32 temp_s6; - s32 temp_s7; - s32 temp_t3; - s32 temp_t3_2; - s32 temp_t4; s32 temp_t6; s32 temp_t6_2; s32 temp_t7; s32 temp_t8; + s32 temp_t8_2; s32 temp_v0; s32 temp_v0_2; s32 temp_v0_3; - s32 temp_v0_4; s32 temp_v1; s32 temp_v1_2; + s32 temp_v1_3; + s32 var_a0; + s32 var_a2; + s32 var_a3; + s32 var_s3; + s32 var_s4; + s32 var_t3; + s32 var_t3_2; + s32 var_t4; + s32 var_t5; + s32 var_v0; + s32 var_v0_3; + s32 var_v0_4; + u32 temp_a1; + u32 temp_s1; + u32 temp_s5; + u32 temp_s6; + u32 temp_s7; u32 temp_t6_3; u32 temp_t9; u32 temp_t9_2; - void *temp_a0; - void *temp_s0_10; - void *temp_s0_11; - void *temp_s0_12; - void *temp_s0_13; - void *temp_s0_14; - void *temp_s0_15; - void *temp_s0_16; - void *temp_s0_17; - void *temp_s0_18; - void *temp_s0_19; - void *temp_s0_20; - void *temp_s0_21; - void *temp_s0_6; - void *temp_s0_7; - void *temp_s0_8; - void *temp_s0_9; - u32 phi_t0; - s32 phi_t0_2; - s32 phi_v0; - s32 phi_v0_2; - s32 phi_v0_3; - s32 phi_v0_4; - s32 phi_a0; - s32 phi_t3; - s32 phi_t4; - s32 phi_t5; - u32 phi_v1; - s32 phi_s4; - s32 phi_t5_2; - u32 phi_a1; - Gfx *phi_s0; - s32 phi_a3; - s32 phi_t3_2; - s32 phi_t4_2; - s32 phi_a2; - s32 phi_s3; - s32 phi_t2; - s32 phi_ra; - Gfx *phi_s0_2; - s32 phi_t3_3; - s32 phi_t4_3; - Gfx *phi_s0_3; - Gfx *phi_s0_4; + u32 var_a1; + u32 var_ra; + u32 var_t0; + u32 var_t2; + u32 var_t4_2; + u32 var_v0_2; - temp_s0_2 = arg0 + 8; + temp_s0 = arg0 + 8; arg0->words.w0 = 0xE7000000; arg0->words.w1 = 0; + temp_s0_2 = temp_s0 + 8; + temp_s0->words.w0 = 0xBA001402; + temp_s0->words.w1 = (u32) &D_000FFF00; temp_s0_3 = temp_s0_2 + 8; - temp_s0_2->words.w0 = 0xBA001402; - temp_s0_2->words.w1 = (u32) &D_000FFF00; - temp_s0_4 = temp_s0_3 + 8; - temp_s0_3->words.w0 = 0xBA001001; - temp_s0_3->words.w1 = 0; - temp_s0_4->words.w0 = 0xFA000000; + temp_s0_2->words.w0 = 0xBA001001; + temp_s0_2->words.w1 = 0; + temp_s0_3->words.w0 = 0xFA000000; temp_t7 = gGlobalTimer; - temp_s0_5 = temp_s0_4 + 8; - phi_t0 = 1U; - phi_t0_2 = (s32) 1U; - phi_t3 = 0; - phi_t4 = 0; - phi_t3_3 = 0; - phi_t4_3 = 0; - if ((temp_t7 < 0) && ((temp_t7 & 0xFF) != 0)) { + temp_s0_4 = temp_s0_3 + 8; + var_t0 = 1; + var_t3 = 0; + var_t4 = 0; + temp_t8 = temp_t7 & 0xFF; + if ((temp_t7 < 0) && (temp_t8 != 0)) { } - temp_s0_4->words.w1 = temp_t7 & 0xFF & 0xFF; - temp_s0_5->words.w1 = 0x1FFC9238; - temp_s0_5->words.w0 = 0xFC2527FF; - temp_s0 = temp_s0_5 + 8; - phi_s0_2 = temp_s0; - phi_s0_3 = temp_s0; + temp_s0_3->words.w1 = temp_t8 & 0xFF; + temp_s0_4->words.w1 = 0x1FFC9238; + temp_s0_4->words.w0 = 0xFC2527FF; + var_s0 = temp_s0_4 + 8; if (argB >= 2U) { do { - temp_t9 = phi_t0 * 2; - phi_t0 = temp_t9; - phi_t0_2 = (s32) temp_t9; + temp_t9 = var_t0 * 2; + var_t0 = temp_t9; } while (temp_t9 < argB); } - temp_lo = 0x400 / phi_t0_2; + temp_lo = 0x400 / (s32) var_t0; spF4 = temp_lo; if (argC < (u32) (temp_lo / 2)) { - phi_v0 = temp_lo / 2; + var_v0 = temp_lo / 2; do { - temp_v0 = phi_v0 / 2; - phi_v0 = temp_v0; - } while (argC < (u32) temp_v0); - spF4 = phi_v0; + temp_v1 = var_v0; + var_v0 = temp_v1 / 2; + } while (argC < (u32) var_v0); + spF4 = temp_v1; } - phi_v0_2 = phi_t0_2; - if (phi_t0_2 >= 2) { + var_v0_2 = var_t0; + if ((s32) var_t0 >= 2) { do { - temp_t6 = phi_v0_2 / 2; - temp_t3 = phi_t3_3 + 1; - phi_v0_2 = temp_t6; - phi_t3 = temp_t3; - phi_t3_3 = temp_t3; - } while (temp_t6 >= 2); + temp_t6 = (s32) var_v0_2 / 2; + temp_at = temp_t6 < 2; + var_v0_2 = (u32) temp_t6; + var_t3 += 1; + } while (temp_at == 0); } - phi_v0_3 = spF4; - phi_a0 = arg8; - if (spF4 >= 2) { + var_v0_3 = spF4; + var_a0 = arg8; + if (var_v0_3 >= 2) { do { - temp_t8 = phi_v0_3 / 2; - temp_t4 = phi_t4_3 + 1; - phi_v0_3 = temp_t8; - phi_t4 = temp_t4; - phi_t4_3 = temp_t4; - } while (temp_t8 >= 2); + temp_t8_2 = var_v0_3 / 2; + temp_at_2 = temp_t8_2 < 2; + var_v0_3 = temp_t8_2; + var_t4 += 1; + } while (temp_at_2 == 0); } - if (arg8 < 0) { - arg4 -= arg8; - phi_a0 = 0; - } else if (((arg6 - arg4) + arg8) >= 0x141) { - arg6 = (arg4 - arg8) + 0x140; + if (var_a0 < 0) { + arg4 -= var_a0; + var_a0 = 0; + } else if (((arg6 - arg4) + var_a0) >= 0x141) { + arg6 = (arg4 - var_a0) + 0x140; } temp_t6_2 = arg9; - phi_v0_4 = arg5; - phi_v1 = (u32) arg6; + var_v0_4 = arg5; if (temp_t6_2 < 0) { arg9 = 0; - phi_v0_4 = arg5 - temp_t6_2; - } else if (((arg7 - arg5) + arg9) >= 0xF1) { - arg7 = (arg5 - arg9) + 0xF0; + var_v0_4 = arg5 - temp_t6_2; + } else if (((arg7 - var_v0_4) + arg9) >= 0xF1) { + arg7 = (var_v0_4 - arg9) + 0xF0; } if (arg6 < arg4) { - return temp_s0; + return var_s0; } - if (arg7 < phi_v0_4) { - return temp_s0; + if (arg7 < var_v0_4) { + return var_s0; } - sp104 = phi_a0; - phi_t5 = phi_v0_4; - if ((u32) phi_v0_4 < (u32) arg7) { - arg8 = phi_a0; - spF8 = phi_t0_2; - spF0 = phi_t3; - spEC = phi_t4; + sp104 = var_a0; + var_t5 = var_v0_4; + if ((u32) var_v0_4 < (u32) arg7) { + arg8 = var_a0; + spF8 = (s32) var_t0; + spF0 = var_t3; + spEC = var_t4; loop_27: - temp_t6_3 = spF4 + phi_t5; + temp_t6_3 = spF4 + var_t5; sp84 = temp_t6_3; - phi_t5_2 = phi_t5; - phi_s0 = phi_s0_3; - phi_s0_2 = phi_s0_3; - phi_s0_4 = phi_s0_3; if ((u32) arg7 < temp_t6_3) { - temp_v0_2 = arg7 - phi_t5; - spFC = temp_v0_2; - if (temp_v0_2 != 0) { + temp_v0 = arg7 - var_t5; + spFC = temp_v0; + if (temp_v0 != 0) { goto block_31; } } else { spFC = spF4; block_31: - phi_s4 = arg4; - if ((u32) arg4 < phi_v1) { - arg6 = (s32) phi_v1; + var_s4 = arg4; + if ((u32) arg4 < (u32) arg6) { loop_33: - temp_t9_2 = spF8 + phi_s4; + temp_t9_2 = spF8 + var_s4; sp80 = temp_t9_2; - phi_v1 = (u32) arg6; - phi_s0_4 = phi_s0; if ((u32) arg6 < temp_t9_2) { - temp_t3_2 = arg6 - phi_s4; - phi_t3_2 = temp_t3_2; - if (temp_t3_2 != 0) { - arg6 = arg6; + var_t3_2 = arg6 - var_s4; + if (var_t3_2 != 0) { temp_a0_2 = (arg1 & 7) << 0x15; - temp_v0_3 = (spEC & 0xF) << 0xE; - temp_v1 = (spF0 & 0xF) * 0x10; + var_a1 = temp_a0_2 | 0xFD000000 | 0x100000 | ((argB - 1) & 0xFFF); + temp_v0_2 = (spEC & 0xF) << 0xE; + temp_v1_2 = (spF0 & 0xF) * 0x10; + var_a2 = (var_t5 * 4) & 0xFFF; + var_s3 = ((var_t5 + spFC) * 4) & 0xFFF; + var_t4_2 = temp_v0_2 | 0x07000000 | temp_v1_2; + var_a3 = temp_a0_2 | 0xF5000000 | 0x100000; + var_ra = temp_v0_2 | 0x01000000 | temp_v1_2; sp4C = ((arg9 + spFC) * 4) & 0xFFF; - sp44 = (phi_t5_2 << 5) & 0xFFFF; + sp44 = (var_t5 << 5) & 0xFFFF; sp48 = (arg9 * 4) & 0xFFF; sp40 = (arg2 << 0x10) | (arg3 & 0xFFFF); - phi_a1 = temp_a0_2 | 0xFD000000 | 0x100000 | ((argB - 1) & 0xFFF); - phi_a3 = temp_a0_2 | 0xF5000000 | 0x100000; - phi_t4_2 = temp_v0_3 | 0x07000000 | temp_v1; - phi_a2 = (phi_t5_2 * 4) & 0xFFF; - phi_s3 = ((phi_t5_2 + spFC) * 4) & 0xFFF; - phi_t2 = temp_v0_3 | temp_v1; - phi_ra = temp_v0_3 | 0x01000000 | temp_v1; + var_t2 = temp_v0_2 | temp_v1_2; goto block_37; } } else { temp_a0_3 = (arg1 & 7) << 0x15; - temp_v0_4 = (spEC & 0xF) << 0xE; - temp_v1_2 = (spF0 & 0xF) * 0x10; + var_a1 = temp_a0_3 | 0xFD000000 | 0x100000 | ((argB - 1) & 0xFFF); + temp_v0_3 = (spEC & 0xF) << 0xE; + temp_v1_3 = (spF0 & 0xF) * 0x10; + var_a2 = (var_t5 * 4) & 0xFFF; + var_s3 = ((var_t5 + spFC) * 4) & 0xFFF; + var_t4_2 = temp_v0_3 | 0x07000000 | temp_v1_3; + var_a3 = temp_a0_3 | 0xF5000000 | 0x100000; + var_ra = temp_v0_3 | 0x01000000 | temp_v1_3; sp4C = ((arg9 + spFC) * 4) & 0xFFF; - sp44 = (phi_t5_2 << 5) & 0xFFFF; + sp44 = (var_t5 << 5) & 0xFFFF; sp48 = (arg9 * 4) & 0xFFF; sp40 = (arg2 << 0x10) | (arg3 & 0xFFFF); - phi_a1 = temp_a0_3 | 0xFD000000 | 0x100000 | ((argB - 1) & 0xFFF); - phi_a3 = temp_a0_3 | 0xF5000000 | 0x100000; - phi_t3_2 = spF8; - phi_t4_2 = temp_v0_4 | 0x07000000 | temp_v1_2; - phi_a2 = (phi_t5_2 * 4) & 0xFFF; - phi_s3 = ((phi_t5_2 + spFC) * 4) & 0xFFF; - phi_t2 = temp_v0_4 | temp_v1_2; - phi_ra = temp_v0_4 | 0x01000000 | temp_v1_2; + var_t2 = temp_v0_3 | temp_v1_3; + var_t3_2 = spF8; block_37: - phi_s0->words.w0 = phi_a1; - temp_a0_4 = phi_s4 + phi_t3_2; - phi_s0->words.w1 = argA; - temp_s0_6 = phi_s0 + 8; - temp_s1 = phi_a3 | ((((u32) (((temp_a0_4 - phi_s4) * 2) + 9) >> 3) & 0x1FF) << 9); + var_s0->words.w0 = var_a1; + temp_a0_4 = var_s4 + var_t3_2; + var_s0->words.w1 = (u32) argA; + temp_s0_5 = var_s0 + 8; + temp_s1 = var_a3 | ((((u32) (((temp_a0_4 - var_s4) * 2) + 9) >> 3) & 0x1FF) << 9); + temp_s0_6 = temp_s0_5 + 8; + temp_s0_5->words.w0 = temp_s1; + temp_s0_5->words.w1 = var_t4_2; + temp_s0_6->words.w0 = 0xE6000000; + temp_a3 = ((var_s4 * 4) & 0xFFF) << 0xC; temp_s0_7 = temp_s0_6 + 8; - temp_s0_6->unk0 = temp_s1; - temp_s0_6->unk4 = phi_t4_2; - temp_s0_7->unk0 = 0xE6000000; - temp_a3 = ((phi_s4 * 4) & 0xFFF) << 0xC; - temp_s0_8 = temp_s0_7 + 8; temp_s2 = ((temp_a0_4 * 4) & 0xFFF) << 0xC; - temp_s0_7->unk4 = 0; - temp_s6 = temp_s2 | 0x07000000 | phi_s3; + temp_s0_6->words.w1 = 0; + temp_s6 = temp_s2 | 0x07000000 | var_s3; + temp_s0_8 = temp_s0_7 + 8; + temp_s5 = temp_a3 | 0xF4000000 | var_a2; + temp_s0_7->words.w0 = temp_s5; + temp_s0_7->words.w1 = temp_s6; temp_s0_9 = temp_s0_8 + 8; - temp_s5 = temp_a3 | 0xF4000000 | phi_a2; - temp_s0_8->unk0 = temp_s5; - temp_s0_8->unk4 = temp_s6; + temp_s0_8->words.w0 = 0xE7000000; temp_s0_10 = temp_s0_9 + 8; - temp_s0_9->unk0 = 0xE7000000; + temp_s0_8->words.w1 = 0; + temp_s0_9->words.w1 = var_t2; + temp_s0_9->words.w0 = temp_s1; + temp_s7 = temp_a3 | 0xF2000000 | var_a2; temp_s0_11 = temp_s0_10 + 8; - temp_s0_9->unk4 = 0; - temp_s0_10->unk4 = phi_t2; - temp_s0_10->unk0 = temp_s1; - temp_s7 = temp_a3 | 0xF2000000 | phi_a2; + temp_s0_10->words.w1 = temp_s2 | var_s3; + temp_s0_10->words.w0 = temp_s7; + temp_s0_11->words.w0 = var_a1; + sp50 = var_ra; + sp108 = (u32) var_t5; + sp68 = var_t4_2; + sp100 = var_t3_2; temp_s0_12 = temp_s0_11 + 8; - temp_s0_11->unk4 = (s32) (temp_s2 | phi_s3); - temp_s0_11->unk0 = temp_s7; - temp_s0_12->unk0 = phi_a1; - sp50 = phi_ra; - sp108 = phi_t5_2; - sp68 = phi_t4_2; - sp100 = phi_t3_2; + temp_s0_11->words.w1 = (u32) ((random_int(0x0080U) * 2) + &D_0B002A00); temp_s0_13 = temp_s0_12 + 8; - temp_s0_12->unk4 = (void *) ((random_int(0x80, phi_a1, phi_a2, temp_a3) * 2) + &D_0B002A00); - temp_s0_14 = temp_s0_13 + 8; temp_a1 = temp_s1 | 0x100; - temp_s0_13->unk0 = temp_a1; - temp_s0_13->unk4 = phi_t4_2; + temp_s0_12->words.w0 = temp_a1; + temp_s0_12->words.w1 = var_t4_2; + temp_s0_14 = temp_s0_13 + 8; + temp_s0_13->words.w0 = 0xE6000000; temp_s0_15 = temp_s0_14 + 8; - temp_s0_14->unk0 = 0xE6000000; + temp_s0_13->words.w1 = 0; + temp_s0_14->words.w1 = temp_s6; + temp_s0_14->words.w0 = temp_s5; temp_s0_16 = temp_s0_15 + 8; - temp_s0_14->unk4 = 0; - temp_s0_15->unk4 = temp_s6; - temp_s0_15->unk0 = temp_s5; + temp_s0_15->words.w0 = 0xE7000000; + temp_s0_15->words.w1 = 0; + temp_s0_16->words.w0 = temp_a1; + temp_s0_16->words.w1 = var_ra; temp_s0_17 = temp_s0_16 + 8; - temp_s0_16->unk0 = 0xE7000000; - temp_s0_16->unk4 = 0; - temp_s0_17->unk0 = temp_a1; - temp_s0_17->unk4 = phi_ra; + temp_s0_17->words.w1 = temp_s2 | 0x01000000 | var_s3; + temp_s0_17->words.w0 = temp_s7; temp_s0_18 = temp_s0_17 + 8; - temp_s0_18->unk4 = (s32) (temp_s2 | 0x01000000 | phi_s3); - temp_s0_18->unk0 = temp_s7; + temp_s0_18->words.w0 = ((((arg8 + var_t3_2) * 4) & 0xFFF) << 0xC) | 0xE4000000 | sp4C; temp_s0_19 = temp_s0_18 + 8; - temp_s0_19->unk0 = (s32) (((((arg8 + phi_t3_2) * 4) & 0xFFF) << 0xC) | 0xE4000000 | sp4C); + temp_s0_18->words.w1 = (((arg8 * 4) & 0xFFF) << 0xC) | sp48; + temp_s0_19->words.w0 = 0xB3000000; temp_s0_20 = temp_s0_19 + 8; - temp_s0_19->unk4 = (s32) ((((arg8 * 4) & 0xFFF) << 0xC) | sp48); - temp_s0_20->unk0 = 0xB3000000; - temp_s0_21 = temp_s0_20 + 8; - temp_s0_20->unk4 = (s32) ((phi_s4 << 0x15) | sp44); - temp_s0_21->unk0 = 0xB2000000; - temp_s0_22 = temp_s0_21 + 8; - temp_s0_21->unk4 = sp40; + temp_s0_19->words.w1 = (var_s4 << 0x15) | sp44; + temp_s0_20->words.w0 = 0xB2000000; + var_s0 = temp_s0_20 + 8; + temp_s0_20->words.w1 = sp40; + var_s4 = (s32) sp80; arg8 += spF8; - phi_s4 = (s32) sp80; - phi_s0 = temp_s0_22; - phi_s0_4 = temp_s0_22; - if (sp80 >= (u32) arg6) { - phi_v1 = (u32) arg6; + if ((u32) var_s4 >= (u32) arg6) { + } else { goto loop_33; } } } + var_t5 = (s32) sp84; arg8 = sp104; arg9 += spF4; - phi_t5 = (s32) sp84; - phi_s0_2 = phi_s0_4; - phi_s0_3 = phi_s0_4; - if (sp84 < (u32) arg7) { + if ((u32) var_t5 < (u32) arg7) { goto loop_27; } } } - temp_a0 = phi_s0_2 + 8; - phi_s0_2->words.w0 = 0xE7000000; - phi_s0_2->words.w1 = 0; - temp_a0->unk0 = 0xBA001402; - temp_a0->unk4 = 0; + temp_a0 = var_s0 + 8; + var_s0->words.w0 = 0xE7000000; + var_s0->words.w1 = 0; + temp_a0->words.w0 = 0xBA001402; + temp_a0->words.w1 = 0; return temp_a0 + 8; } #else @@ -3858,70 +3756,65 @@ void *segmented_to_virtual_dupe(void *arg0) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 0ca3d5f5fa5e3d957908269ac1535e7d4f12bce9 -? dma_copy_base_729a30(u64 *, s32, s32); /* extern */ -? mio0decode(s32, s32); /* extern */ -extern s32 D_8018D9B0; -extern s32 D_8018D9B4; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern u8 *D_8018D9B4; void func_80099184(MkTexture *arg0) { - MkTexture *temp_v0; + s32 temp_t2; s32 temp_t3; - s32 temp_t6; - s32 temp_v0_2; s32 temp_v1; - u16 temp_v0_3; + s32 var_a1; + s32 var_a1_2; + s32 var_v0; + u16 temp_v0_2; u64 *temp_a0; - s32 phi_v0; - MkTexture *phi_s1; - s32 phi_a1; - s32 phi_a1_2; - s32 phi_a1_3; + u64 *temp_t9; + void *temp_v0; + void *var_s1; temp_v0 = segmented_to_virtual(arg0); - phi_s1 = temp_v0; - if (temp_v0->textureData != 0) { + var_s1 = temp_v0; + if (temp_v0->unk4 != 0) { do { temp_v1 = gNumD_8018E118Entries; - phi_v0 = 0; - phi_a1 = 0; + var_a1 = 0; + var_v0 = 0; if (temp_v1 > 0) { loop_4: - temp_v0_2 = phi_v0 + 1; - phi_v0 = temp_v0_2; - if (D_8018E118[phi_v0].textureData == phi_s1->textureData) { - phi_a1 = 1; - } else if (temp_v0_2 < temp_v1) { + temp_t9 = D_8018E118[var_v0].textureData; + var_v0 += 1; + if (temp_t9 == var_s1->unk4) { + var_a1 = 1; + } else if (var_v0 < temp_v1) { goto loop_4; } } - if (phi_a1 == 0) { - temp_a0 = phi_s1->textureData; - if (phi_s1->type == 3) { - temp_v0_3 = phi_s1->size; - phi_a1_2 = 0x1000; - if (temp_v0_3 != 0) { - phi_a1_2 = temp_v0_3 & 0xFFFF; + if (var_a1 == 0) { + temp_a0 = var_s1->unk4; + if (var_s1->unk0 == 3) { + temp_v0_2 = var_s1->unk10; + var_a1_2 = 0x1000; + if (temp_v0_2 != 0) { + var_a1_2 = temp_v0_2 & 0xFFFF; } - phi_a1_3 = phi_a1_2; - if ((phi_a1_2 % 8) != 0) { - phi_a1_3 = (((phi_a1_2 / 8) * 8) + 8) & 0xFFFF; + if ((var_a1_2 % 8) != 0) { + var_a1_2 = (((var_a1_2 / 8) * 8) + 8) & 0xFFFF; } - dma_copy_base_729a30(temp_a0, phi_a1_3, D_8018D9B4); + dma_copy_base_729a30(temp_a0, (u32) var_a1_2, D_8018D9B4); mio0decode(D_8018D9B4, (gD_8018E118TotalSize * 2) + D_8018D9B0); } else { - dma_copy_base_729a30(temp_a0, phi_s1->height * phi_s1->width * 2, (gD_8018E118TotalSize * 2) + D_8018D9B0); + dma_copy_base_729a30(temp_a0, var_s1->unkA * var_s1->unk8 * 2, (gD_8018E118TotalSize * 2) + D_8018D9B0); } - D_8018E118[gNumD_8018E118Entries].textureData = phi_s1->textureData; + D_8018E118[gNumD_8018E118Entries].textureData = var_s1->unk4; D_8018E118[gNumD_8018E118Entries].offset = gD_8018E118TotalSize; gNumD_8018E118Entries += 1; - temp_t3 = gD_8018E118TotalSize + (phi_s1->height * phi_s1->width); - temp_t6 = temp_t3; + temp_t3 = gD_8018E118TotalSize + (var_s1->unkA * var_s1->unk8); gD_8018E118TotalSize = temp_t3; - gD_8018E118TotalSize = ((temp_t6 / 8) * 8) + 8; + gD_8018E118TotalSize = ((temp_t3 / 8) * 8) + 8; } - phi_s1 += 0x14; - } while (phi_s1->unk18 != 0); + temp_t2 = var_s1->unk18; + var_s1 += 0x14; + } while (temp_t2 != 0); } } #else @@ -3933,64 +3826,58 @@ void func_8009969C(s32 arg0) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 0ca3d5f5fa5e3d957908269ac1535e7d4f12bce9 -? dma_copy_base_729a30(u64 *, s32, s32); /* extern */ -? dma_copy_base_7fa3c0(u64 *, s32, s32); /* extern */ -? mio0decode(s32, s32); /* extern */ -? tkmk00decode(s32, s32, s32, ?); /* extern */ -extern s32 D_8018D9B0; -extern s32 D_8018D9B4; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? tkmk00decode(u8 *, s32, s32, ?); /* extern */ +extern u8 *D_8018D9B4; extern s32 D_8018D9B8; void func_800996BC(MkTexture *arg0, s32 arg1) { - MkTexture *temp_v0; + ? var_v0_2; + s16 var_a1; s32 temp_t0; - s32 temp_t1; - s32 temp_v0_2; + s32 temp_t7; s32 temp_v1; - u16 temp_v0_3; - s32 phi_v0; - MkTexture *phi_s0; - s32 phi_a1; - s32 phi_a1_2; - s32 phi_a1_3; - ? phi_v0_2; + s32 var_a1_2; + s32 var_v0; + u16 temp_v0_2; + u64 *temp_t9; + void *temp_v0; + void *var_s0; temp_v0 = segmented_to_virtual(arg0); - phi_s0 = temp_v0; - if (temp_v0->textureData != 0) { + var_s0 = temp_v0; + if (temp_v0->unk4 != 0) { do { temp_v1 = gNumD_8018E118Entries; - phi_v0 = 0; - phi_a1 = 0; + var_a1 = 0; + var_v0 = 0; if (temp_v1 > 0) { loop_4: - temp_v0_2 = phi_v0 + 1; - phi_v0 = temp_v0_2; - if (D_8018E118[phi_v0].textureData == phi_s0->textureData) { - phi_a1 = 1; - } else if (temp_v0_2 < temp_v1) { + temp_t9 = D_8018E118[var_v0].textureData; + var_v0 += 1; + if (temp_t9 == var_s0->unk4) { + var_a1 = 1; + } else if (var_v0 < temp_v1) { goto loop_4; } } - if ((phi_a1 == 0) || (arg1 > 0)) { - temp_v0_3 = phi_s0->size; - phi_a1_2 = 0x1000; - if (temp_v0_3 != 0) { - phi_a1_2 = temp_v0_3 & 0xFFFF; + if ((var_a1 == 0) || (arg1 > 0)) { + temp_v0_2 = var_s0->unk10; + var_a1_2 = 0x1000; + if (temp_v0_2 != 0) { + var_a1_2 = temp_v0_2 & 0xFFFF; } - phi_a1_3 = phi_a1_2; - if ((phi_a1_2 % 8) != 0) { - phi_a1_3 = (((phi_a1_2 / 8) * 8) + 8) & 0xFFFF; + if ((var_a1_2 % 8) != 0) { + var_a1_2 = (((var_a1_2 / 8) * 8) + 8) & 0xFFFF; } switch (arg1) { /* irregular */ case -1: case 1: - dma_copy_base_729a30(phi_s0->textureData, phi_a1_3, D_8018D9B4); + dma_copy_base_729a30(var_s0->unk4, (u32) var_a1_2, D_8018D9B4); break; case 0: case 2: - dma_copy_base_7fa3c0(phi_s0->textureData, phi_a1_3, D_8018D9B4); + dma_copy_base_7fa3c0(var_s0->unk4, (u32) var_a1_2, D_8018D9B4); break; } switch (arg1) { /* switch 1; irregular */ @@ -4000,23 +3887,23 @@ loop_4: break; case 0: /* switch 1 */ case 2: /* switch 1 */ - phi_v0_2 = 1; - if (phi_s0->type == 1) { - phi_v0_2 = 0xBE; + var_v0_2 = 1; + if (var_s0->unk0 == 1) { + var_v0_2 = 0xBE; } - tkmk00decode(D_8018D9B4, D_8018D9B8, (gD_8018E118TotalSize * 2) + D_8018D9B0, phi_v0_2); + tkmk00decode(D_8018D9B4, D_8018D9B8, (gD_8018E118TotalSize * 2) + D_8018D9B0, var_v0_2); break; } - D_8018E118[gNumD_8018E118Entries].textureData = phi_s0->textureData; + D_8018E118[gNumD_8018E118Entries].textureData = var_s0->unk4; D_8018E118[gNumD_8018E118Entries].offset = gD_8018E118TotalSize; gNumD_8018E118Entries += 1; - temp_t0 = gD_8018E118TotalSize + (phi_s0->height * phi_s0->width); - temp_t1 = temp_t0; + temp_t0 = gD_8018E118TotalSize + (var_s0->unkA * var_s0->unk8); gD_8018E118TotalSize = temp_t0; - gD_8018E118TotalSize = ((temp_t1 / 8) * 8) + 8; + gD_8018E118TotalSize = ((temp_t0 / 8) * 8) + 8; } - phi_s0 += 0x14; - } while (phi_s0->unk18 != 0); + temp_t7 = var_s0->unk18; + var_s0 += 0x14; + } while (temp_t7 != 0); } } #else @@ -4024,42 +3911,38 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_800996BC.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 06ada559d7a32fdab49fa2d619cdfa027615bcda -? dma_copy_base_729a30(u64 *, s32, s32); /* extern */ -? mio0decode(s32, void *); /* extern */ -extern s32 D_8018D9B4; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern u8 *D_8018D9B4; void func_80099958(MkTexture *arg0, s32 arg1, s32 arg2) { - MkTexture *temp_v0; + s32 var_a1; u16 temp_v0_2; - u64 *temp_a0; u64 *temp_t6; - MkTexture *phi_s0; - s32 phi_a1; - u64 *phi_a0; - s32 phi_a1_2; + u64 *var_a0; + u8 *temp_s2; + void *temp_v0; + void *var_s0; temp_v0 = segmented_to_virtual(arg0); - temp_t6 = temp_v0->textureData; - phi_s0 = temp_v0; - phi_a0 = temp_t6; - if (temp_t6 != 0) { + temp_t6 = temp_v0->unk4; + var_s0 = temp_v0; + var_a0 = temp_t6; + if (temp_t6 != NULL) { + temp_s2 = &D_802BFB80[0][0][0].pixel_index_array[(arg2 << 0x10) + ((arg1 / 2) << 0xF) + ((arg1 % 2) << 0xD) + 0x4000]; do { - temp_v0_2 = phi_s0->size; - phi_a1 = 0x1400; + temp_v0_2 = var_s0->unk10; + var_a1 = 0x1400; if (temp_v0_2 != 0) { - phi_a1 = temp_v0_2 & 0xFFFF; + var_a1 = temp_v0_2 & 0xFFFF; } - phi_a1_2 = phi_a1; - if ((phi_a1 % 8) != 0) { - phi_a1_2 = (((phi_a1 / 8) * 8) + 8) & 0xFFFF; + if ((var_a1 % 8) != 0) { + var_a1 = (((var_a1 / 8) * 8) + 8) & 0xFFFF; } - dma_copy_base_729a30(phi_a0, phi_a1_2, D_8018D9B4); - mio0decode(D_8018D9B4, (arg2 << 0x10) + ((arg1 / 2) << 0xF) + ((arg1 % 2) << 0xD) + 0x4000 + D_802BFB80); - temp_a0 = phi_s0->unk18; - phi_s0 += 0x14; - phi_a0 = temp_a0; - } while (temp_a0 != 0); + dma_copy_base_729a30(var_a0, (u32) var_a1, D_8018D9B4); + mio0decode(D_8018D9B4, temp_s2); + var_a0 = var_s0->unk18; + var_s0 += 0x14; + } while (var_a0 != NULL); } } #else @@ -6895,14 +6778,14 @@ void func_8009E620(void) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 054f217e0ef630f2a2a76ec70a84ce37369571c0 +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc struct _struct_D_800E8234_0x8 { /* 0x0 */ void *unk0; /* inferred */ - /* 0x4 */ struct _struct_D_800E8234_0x8 unk4; /* inferred */ + /* 0x4 */ ? unk4; /* inferred */ + /* 0x4 */ char pad4[4]; }; /* size = 0x8 */ s32 func_800051C4(); /* extern */ -? func_8006EE44(s8); /* extern */ ? func_8006EF60(); /* extern */ ? func_800996BC(MkTexture *, ?, s8); /* extern */ s32 func_8009A374(void *); /* extern */ @@ -6916,26 +6799,22 @@ s32 func_800B5020(s32, s8, s8); /* extern */ s32 func_800B5218(); /* extern */ s32 func_800B5B94(); /* extern */ ? func_800B6708(); /* extern */ -s32 random_int(?, s8); /* extern */ extern ? D_801640F4; extern s32 D_8018CA78; -extern Gfx *D_8018E75C; extern s8 D_8018ED90; extern s32 D_8018ED94; -extern ? D_8018EE10; -extern s32 gD_8018E118TotalSize; extern s32 gPlayerWinningIndex; -static struct _struct_D_800E7248_0x8 D_800E7248[0]; /* unable to generate initializer; const */ -static ? D_800E7268; /* unable to generate initializer; const */ -static struct _struct_D_800E74E8_0x8 D_800E74E8[0]; /* unable to generate initializer; const */ -static struct _struct_D_800E8234_0x8 D_800E7AF8[0x36]; /* unable to generate initializer; const */ -static ? D_800E7CA8; /* unable to generate initializer; const */ -static struct _struct_D_800E8234_0x8 D_800E7D0C[5]; /* unable to generate initializer; const */ -static MkAnimation *D_800E7D34[6] = { D_0200198C, D_0200199C, D_020019AC, D_020019BC, D_020019CC, D_020019DC }; /* const */ -static MkTexture *D_800E7D4C[2] = { D_02004598, D_020045C0 }; /* const */ -static ? D_800E7D54; /* unable to generate initializer; const */ -static ? D_800E7E20; /* unable to generate initializer; const */ -static ? D_800E7FF0; /* unable to generate initializer; const */ +static struct _struct_D_800E7248_0x8 D_800E7248[0]; /* unable to generate initializer */ +static ? D_800E7268; /* unable to generate initializer */ +static struct _struct_D_800E74E8_0x8 D_800E74E8[0]; /* unable to generate initializer */ +static struct _struct_D_800E8234_0x8 D_800E7AF8[0x36]; /* unable to generate initializer */ +static ? D_800E7CA8; /* unable to generate initializer */ +static struct _struct_D_800E8234_0x8 D_800E7D0C[5]; /* unable to generate initializer */ +static MkAnimation *D_800E7D34[6] = { D_0200198C, D_0200199C, D_020019AC, D_020019BC, D_020019CC, D_020019DC }; +static MkTexture *D_800E7D4C[2] = { D_02004598, D_020045C0 }; +static ? D_800E7D54; /* unable to generate initializer */ +static ? D_800E7E20; /* unable to generate initializer */ +static ? D_800E7FF0; /* unable to generate initializer */ static MkTexture *D_800E80A0[0x1D] = { D_02003594, D_02003BFC, @@ -6966,7 +6845,7 @@ static MkTexture *D_800E80A0[0x1D] = { D_02003DDC, D_0200379C, D_02003E04, -}; /* const */ +}; static MkTexture *D_800E8114[0x18] = { D_020037C4, D_020037EC, @@ -6992,7 +6871,7 @@ static MkTexture *D_800E8114[0x18] = { D_0200397C, D_020039A4, D_020039CC, -}; /* const */ +}; static MkTexture *D_800E817C[0x1A] = { D_02003A1C, D_02003FE4, @@ -7020,7 +6899,7 @@ static MkTexture *D_800E817C[0x1A] = { D_0200414C, D_02004174, D_0200419C, -}; /* const */ +}; static MkTexture *D_800E81E4[0x12] = { D_020041C4, D_020041EC, @@ -7040,9 +6919,9 @@ static MkTexture *D_800E81E4[0x12] = { D_0200432C, D_020044E4, D_0200450C, -}; /* const */ -static MkTexture *D_800E822C[2] = { D_02004534, D_0200455C }; /* const */ -static struct _struct_D_800E8234_0x8 D_800E8234[3]; /* unable to generate initializer; const */ +}; +static MkTexture *D_800E822C[2] = { D_02004534, D_0200455C }; +static struct _struct_D_800E8234_0x8 D_800E8234[3]; /* unable to generate initializer */ static MkTexture *D_800E8274[8] = { D_020048F4, D_0200491C, @@ -7052,7 +6931,7 @@ static MkTexture *D_800E8274[8] = { D_02004994, D_020049E4, D_02004A34, -}; /* const */ +}; static MkTexture *D_800E8294[8] = { D_020048F4, D_0200491C, @@ -7062,7 +6941,7 @@ static MkTexture *D_800E8294[8] = { D_02004994, D_020049E4, D_02004A34, -}; /* const */ +}; static MkAnimation *D_800E8320[8] = { D_02006708, D_020068F0, @@ -7072,7 +6951,8 @@ static MkAnimation *D_800E8320[8] = { D_02007280, D_02007468, D_02006AD8, -}; /* const */ +}; +static ? D_800E85F7; /* unable to generate initializer */ static MkAnimation *gCharacterDefeatAnimation[8] = { D_020068E0, D_02006AC8, @@ -7082,9 +6962,9 @@ static MkAnimation *gCharacterDefeatAnimation[8] = { D_02007458, D_02007640, D_02006CB0, -}; /* const */ -static ? D_800E85F7; /* unable to generate initializer; const */ +}; static ? D_800EFD64; /* unable to generate initializer; const */ +extern ? gCupCourseOrder; MkTexture *D_800E7D74[0x14] = { D_02001B2C, D_02001B54, @@ -7106,7 +6986,7 @@ MkTexture *D_800E7D74[0x14] = { D_02001DD4, D_02001DFC, D_02001E24, -}; /* const */ +}; MkTexture *D_800E7DC4[0x17] = { D_02004EA8, D_02004ED0, @@ -7131,7 +7011,7 @@ MkTexture *D_800E7DC4[0x17] = { (MkTexture *) D_020020BC, (MkTexture *) D_020020CC, (MkTexture *) D_020020DC, -}; /* const */ +}; MkAnimation *D_800E7E34[0x14] = { D_02001E64, D_02001E74, @@ -7153,9 +7033,10 @@ MkAnimation *D_800E7E34[0x14] = { D_02001F74, D_02001F84, D_02001F94, -}; /* const */ -s8 gCharacterSelections[4]; /* unable to generate initializer; const */ -s16 gCupCourseOrder[5][4]; /* unable to generate initializer; const */ +}; +f32 D_800E8530 = 0.0f; +f32 D_800E8534 = 3.0f; +u64 gTexture7ED50C[0x32]; void add_8018D9E0_entry(s32 type, s32 column, s32 row, s8 priority) { struct_8018D9E0_entry *sp7C; @@ -7163,8 +7044,8 @@ void add_8018D9E0_entry(s32 type, s32 column, s32 row, s8 priority) { s32 sp3C; struct _struct_D_800E8234_0x8 *sp24; /* compiler-managed */ s32 sp20; - Gfx *temp_v0_2; - Gfx *temp_v1_10; + Gfx *temp_v0; + Gfx *temp_v1; Gfx *temp_v1_2; Gfx *temp_v1_3; Gfx *temp_v1_4; @@ -7173,64 +7054,56 @@ void add_8018D9E0_entry(s32 type, s32 column, s32 row, s8 priority) { Gfx *temp_v1_7; Gfx *temp_v1_8; Gfx *temp_v1_9; - s32 temp_t8; + MkAnimation *var_a0; + MkAnimation *var_a0_2; s32 temp_t9; - s32 temp_v0; + s32 temp_v0_5; s32 temp_v0_6; s32 temp_v0_7; s32 temp_v0_8; - s32 temp_v0_9; - s32 temp_v1_12; + s32 var_a2; + s32 var_v0; + s32 var_v0_2; + s32 var_v1_3; + s32 var_v1_4; + s32 var_v1_5; s8 temp_a1; s8 temp_a1_2; - s8 temp_v0_10; - struct _struct_D_800E7248_0x8 *temp_v0_5; - struct _struct_D_800E74E8_0x8 *temp_v0_3; - struct _struct_D_800E8234_0x8 *temp_v0_4; - struct _struct_D_800E8234_0x8 *temp_v1; - struct _struct_D_800E8234_0x8 *temp_v1_11; - struct_8018D9E0_entry *phi_ra; - s32 phi_v0; - s32 phi_v0_2; - s32 phi_v1; - MkAnimation *phi_a0; - struct _struct_D_800E8234_0x8 *phi_v1_2; - struct _struct_D_800E8234_0x8 *phi_v1_3; - u8 phi_v1_4; - s32 phi_v1_5; - struct _struct_D_800E8234_0x8 *phi_a2; - MkAnimation *phi_a0_2; + s8 temp_v0_9; + struct _struct_D_800E7248_0x8 *temp_v0_4; + struct _struct_D_800E74E8_0x8 *temp_v0_2; + struct _struct_D_800E8234_0x8 *temp_v0_3; + struct _struct_D_800E8234_0x8 *var_v1; + struct _struct_D_800E8234_0x8 *var_v1_2; + struct_8018D9E0_entry *var_ra; - phi_ra = D_8018D9E0; - phi_v0 = 0; - phi_v0_2 = 0; + var_v0 = 0; + var_ra = D_8018D9E0; loop_1: - temp_v0 = phi_v0 + 1; - phi_v0 = temp_v0; - if (phi_ra->type != 0) { - if (temp_v0 >= 0x21) { + var_v0 += 1; + if (var_ra->type != 0) { + if (var_v0 >= 0x21) { loop_3: goto loop_3; } - phi_ra += 0x28; + var_ra += 0x28; goto loop_1; } - phi_ra->unk4 = 0; - phi_ra->unk8 = 0; - phi_ra->column = column; - phi_ra->row = row; - phi_ra->priority = priority; - phi_ra->visible = 1; - phi_ra->unk1C = 0; - phi_ra->unk20 = 0; - phi_ra->type = type; - phi_v1_4 = 1U; + var_ra->unk4 = 0; + var_ra->unk8 = 0; + var_ra->column = column; + var_ra->row = row; + var_ra->priority = (u8) priority; + var_ra->visible = 1; + var_ra->unk1C = 0; + var_ra->unk20 = 0; + var_ra->type = type; switch (type) { /* irregular */ case 0xFA: D_8018ED94 = 0; D_800E8530 = 0.0f; D_800E8534 = 3.0f; - D_8018EDC0 = 0x9C4; + D_8018EDC0 = 0x000009C4; D_8018EDC8 = 0.0f; D_8018EDCC = -270.0f; D_8018EDD0 = 0.0f; @@ -7238,11 +7111,11 @@ loop_3: D_8018EDD8 = 0.0f; D_8018EDDC = 0.0f; D_8018EDC4 = 3.0f; - phi_ra->unk1C = -1; - phi_ra->unk20 = (s32) 1U; + var_ra->unk1C = -1; + var_ra->unk20 = (s32) 1U; return; case 0xFB: - D_8018EDC0 = 0x708; + D_8018EDC0 = 0x00000708; D_8018EDC8 = -51.0f; D_8018EDCC = -12.0f; D_8018EDD0 = -18.0f; @@ -7250,109 +7123,107 @@ loop_3: D_8018EDD8 = 750.0f; D_8018EDDC = 0.0f; D_8018EDC4 = 1.0f; - phi_ra->unk1C = -1; - phi_ra->unk20 = (s32) 1U; + var_ra->unk1C = -1; + var_ra->unk20 = (s32) 1U; return; case 0xD2: - sp7C = phi_ra; + sp7C = var_ra; func_800996BC(D_020014C8, 0, priority); func_8009B954(D_020014C8); - D_8018E75C = func_8009BA74(D_8018E75C, D_020014C8, phi_ra->column, phi_ra->row); + D_8018E75C = func_8009BA74(D_8018E75C, D_020014C8, var_ra->column, var_ra->row); func_8009B998(); return; case 0xD3: - sp7C = phi_ra; + sp7C = var_ra; func_800996BC(D_02001540, 0, priority); func_8009B954(D_02001540); - D_8018E75C = func_8009BA74(D_8018E75C, D_02001540, phi_ra->column, phi_ra->row); + D_8018E75C = func_8009BA74(D_8018E75C, D_02001540, var_ra->column, var_ra->row); func_8009B998(); return; case 0xD4: - sp7C = phi_ra; + sp7C = var_ra; func_800996BC(D_0200157C, 0, priority); func_80099184((s32) D_02001874); - phi_ra->row = 0x69; - phi_v1_2 = D_800E7AF8; + var_v1 = D_800E7AF8; + var_ra->row = 0x00000069; do { - sp24 = phi_v1_2; - func_80099184(segmented_to_virtual(phi_v1_2->unk0)); - temp_v1 = &phi_v1_2->unk4; - phi_v1_2 = temp_v1; - } while (temp_v1 != D_800E7D0C); + sp24 = var_v1; + func_80099184(segmented_to_virtual(var_v1->unk0)); + var_v1 = (struct _struct_D_800E8234_0x8 *) &var_v1->unk4; + } while (var_v1 != D_800E7D0C); return; case 0xD5: - sp7C = phi_ra; + sp7C = var_ra; func_80099184((s32) D_020015A4); func_8009B954(D_020015A4); - temp_v0_2 = func_8009BA74(D_8018E75C, D_020015A4, phi_ra->column, phi_ra->row); - D_8018E75C = temp_v0_2; - D_8018E75C = temp_v0_2 + 8; - temp_v0_2->words.w0 = 0xFD700000; - sp6C = temp_v0_2; + temp_v0 = func_8009BA74(D_8018E75C, D_020015A4, var_ra->column, var_ra->row); + D_8018E75C = temp_v0; + D_8018E75C = temp_v0 + 8; + temp_v0->words.w0 = 0xFD700000; + sp6C = temp_v0; sp6C->words.w1 = func_8009B8C4(gTexture7ED50C); + temp_v1 = D_8018E75C; + D_8018E75C = temp_v1 + 8; + temp_v1->words.w0 = 0xF5700000; + temp_v1->words.w1 = 0x07080200; temp_v1_2 = D_8018E75C; D_8018E75C = temp_v1_2 + 8; - temp_v1_2->words.w0 = 0xF5700000; - temp_v1_2->words.w1 = 0x07080200; + temp_v1_2->words.w1 = 0; + temp_v1_2->words.w0 = 0xE6000000; temp_v1_3 = D_8018E75C; D_8018E75C = temp_v1_3 + 8; - temp_v1_3->words.w1 = 0; - temp_v1_3->words.w0 = 0xE6000000; + temp_v1_3->words.w1 = 0x074FF020; + temp_v1_3->words.w0 = 0xF3000000; temp_v1_4 = D_8018E75C; D_8018E75C = temp_v1_4 + 8; - temp_v1_4->words.w1 = 0x074FF020; - temp_v1_4->words.w0 = 0xF3000000; + temp_v1_4->words.w1 = 0; + temp_v1_4->words.w0 = 0xE7000000; temp_v1_5 = D_8018E75C; D_8018E75C = temp_v1_5 + 8; - temp_v1_5->words.w1 = 0; - temp_v1_5->words.w0 = 0xE7000000; + temp_v1_5->words.w0 = 0xF5708000; + temp_v1_5->words.w1 = 0x00080200; temp_v1_6 = D_8018E75C; D_8018E75C = temp_v1_6 + 8; - temp_v1_6->words.w0 = 0xF5708000; - temp_v1_6->words.w1 = 0x80200; + temp_v1_6->words.w0 = 0xF2000000; + temp_v1_6->words.w1 = 0x003FC010; temp_v1_7 = D_8018E75C; D_8018E75C = temp_v1_7 + 8; - temp_v1_7->words.w0 = 0xF2000000; - temp_v1_7->words.w1 = 0x3FC010; + temp_v1_7->words.w1 = 0x000802C0; + temp_v1_7->words.w0 = 0xE44802D4; temp_v1_8 = D_8018E75C; D_8018E75C = temp_v1_8 + 8; - temp_v1_8->words.w1 = 0x802C0; - temp_v1_8->words.w0 = 0xE44802D4; + temp_v1_8->words.w1 = 0x00000080; + temp_v1_8->words.w0 = 0xB3000000; temp_v1_9 = D_8018E75C; D_8018E75C = temp_v1_9 + 8; - temp_v1_9->words.w1 = 0x80; - temp_v1_9->words.w0 = 0xB3000000; - temp_v1_10 = D_8018E75C; - D_8018E75C = temp_v1_10 + 8; - temp_v1_10->words.w0 = 0xB2000000; - temp_v1_10->words.w1 = 0x0400FC00; - sp7C = phi_ra; + temp_v1_9->words.w0 = 0xB2000000; + temp_v1_9->words.w1 = 0x0400FC00; + sp7C = var_ra; func_8009B998(); func_80099184((s32) D_020015CC); func_8009B954(D_020015CC); - D_8018E75C = func_8009BA74(D_8018E75C, D_020015CC, phi_ra->column, phi_ra->row); + D_8018E75C = func_8009BA74(D_8018E75C, D_020015CC, var_ra->column, var_ra->row); func_8009B998(); func_80099184((s32) D_02001630); func_8009B954(D_02001630); - D_8018E75C = func_8009BA74(D_8018E75C, D_02001630, phi_ra->column, phi_ra->row); + D_8018E75C = func_8009BA74(D_8018E75C, D_02001630, var_ra->column, var_ra->row); func_8009B998(); func_80099184((s32) D_02001658); func_8009B954(D_02001658); - D_8018E75C = func_8009BA74(D_8018E75C, D_02001658, phi_ra->column, phi_ra->row); + D_8018E75C = func_8009BA74(D_8018E75C, D_02001658, var_ra->column, var_ra->row); func_8009B998(); return; case 0xD6: - sp7C = phi_ra; - phi_ra->D_8018DEE0_index = func_8009A374(segmented_to_virtual_dupe(*D_800E7D34)); + sp7C = var_ra; + var_ra->D_8018DEE0_index = func_8009A374(segmented_to_virtual_dupe(*D_800E7D34)); return; case 0xD7: - phi_v1_3 = D_800E7D0C; + var_v1_2 = D_800E7D0C; do { - sp24 = phi_v1_3; - func_80099184(segmented_to_virtual(phi_v1_3->unk0)); - temp_v1_11 = &phi_v1_3->unk4; - phi_v1_3 = temp_v1_11; - } while (temp_v1_11 != D_800E7D34); + sp24 = var_v1_2; + func_80099184(segmented_to_virtual(var_v1_2->unk0)); + var_v1_2 = (struct _struct_D_800E8234_0x8 *) &var_v1_2->unk4; + } while (var_v1_2 != D_800E7D34); return; case 0xD8: case 0xD9: @@ -7375,11 +7246,11 @@ loop_3: func_800996BC(D_800E7D4C[func_800B555C(priority)], 0); func_800996BC(D_02004B74, 0); func_8009B0A4(0, 0x19); - temp_v0_3 = &D_800E74E8[type]; - func_8009B538(0, 0x12C00, temp_v0_3->unk-118, temp_v0_3->unk-116, (s32) temp_v0_3->unk-114); + temp_v0_2 = &D_800E74E8[type]; + func_8009B538(0, 0x12C00, temp_v0_2->unk-118, temp_v0_2->unk-116, (s32) temp_v0_2->unk-114); return; case 0xF: - phi_ra->unk1C = 0x20; + var_ra->unk1C = 0x00000020; /* fallthrough */ case 0xA: case 0x10: @@ -7398,18 +7269,18 @@ loop_3: case 0xC: case 0xD: case 0xE: - temp_v0_4 = &D_800E8234[type]; - sp24 = temp_v0_4; - func_800996BC(segmented_to_virtual(temp_v0_4->unk-58), 0); + temp_v0_3 = &D_800E8234[type]; + sp24 = temp_v0_3; + func_800996BC(segmented_to_virtual(temp_v0_3->unk-58), 0); func_80099184(segmented_to_virtual(sp24->unk-54)); return; case 0x2A: func_800996BC(D_02004B4C, 0, priority); return; case 0x33: - sp7C = phi_ra; + sp7C = var_ra; func_800996BC(D_02004B74, 0, priority); - phi_ra->unk1C = 0x20; + var_ra->unk1C = 0x00000020; return; case 0x34: case 0x35: @@ -7425,18 +7296,18 @@ loop_3: case 0x30: case 0x31: case 0x32: - sp7C = phi_ra; + sp7C = var_ra; sp24 = type * 4; - phi_ra->D_8018DEE0_index = func_8009A374(segmented_to_virtual_dupe(D_800E8274[type])); + var_ra->D_8018DEE0_index = func_8009A374(segmented_to_virtual_dupe(D_800E8274[type])); func_800996BC(segmented_to_virtual(*(&D_800E7CA8 + sp24)), 0); return; case 0xA0: case 0xA1: - sp7C = phi_ra; - phi_ra->D_8018DEE0_index = func_8009A374(segmented_to_virtual_dupe(D_800E80A0[type])); + sp7C = var_ra; + var_ra->D_8018DEE0_index = func_8009A374(segmented_to_virtual_dupe(D_800E80A0[type])); return; case 0x5D: - phi_ra->unk1C = 0x20; + var_ra->unk1C = 0x00000020; /* fallthrough */ case 0x52: case 0x53: @@ -7454,34 +7325,33 @@ loop_3: case 0x60: case 0x61: case 0x62: - sp7C = phi_ra; - phi_ra->D_8018DEE0_index = func_8009A374(segmented_to_virtual_dupe(D_800E7E34[*(gCupCourseOrder - 0xBE + (phi_ra->type * 2))])); + sp7C = var_ra; + var_ra->D_8018DEE0_index = func_8009A374(segmented_to_virtual_dupe(D_800E7E34[*(&gCupCourseOrder - 0xBE + (var_ra->type * 2))])); return; case 0x5E: - sp7C = phi_ra; - phi_ra->unk20 = random_int(4, priority) + 2; + sp7C = var_ra; + var_ra->unk20 = random_int(4U) + 2; return; case 0x65: case 0x66: - temp_v0_5 = &D_800E7248[type]; - phi_ra->column = (s32) temp_v0_5->unk-328; - phi_ra->row = (s32) temp_v0_5->unk-326; + temp_v0_4 = &D_800E7248[type]; + var_ra->column = (s32) temp_v0_4->unk-328; + var_ra->row = (s32) temp_v0_4->unk-326; return; case 0x67: - phi_ra->unk1C = (s32) gCupSelection; - sp7C = phi_ra; - temp_v0_6 = func_800B54C0((s32) gCupSelection, gCCSelection); - temp_v1_12 = temp_v0_6; - phi_ra->unk20 = temp_v0_6; - phi_ra->D_8018DEE0_index = func_8009A374(segmented_to_virtual_dupe(*(&D_800E7E20 + ((((s32) gCCSelection / 2) * 0x10) + -(s32) (temp_v1_12 * 4))))); - phi_ra->column = (s32) D_800E7268.unk0; - phi_ra->row = (s32) D_800E7268.unk2; + var_ra->unk1C = (s32) gCupSelection; + sp7C = var_ra; + temp_v0_5 = func_800B54C0((s32) gCupSelection, gCCSelection); + var_ra->unk20 = temp_v0_5; + var_ra->D_8018DEE0_index = func_8009A374(segmented_to_virtual_dupe(*(&D_800E7E20 + ((((s32) gCCSelection / 2) * 0x10) + -(temp_v0_5 * 4))))); + var_ra->column = (s32) D_800E7268.unk0; + var_ra->row = (s32) D_800E7268.unk2; return; case 0x68: - sp7C = phi_ra; + sp7C = var_ra; func_800996BC(segmented_to_virtual(D_800E8294[gCCSelection]), 0); - phi_ra->column = 0x37; - phi_ra->row = 0xC3; + var_ra->column = 0x00000037; + var_ra->row = 0x000000C3; return; case 0x69: func_800996BC(segmented_to_virtual(D_02004A0C), 0); @@ -7489,8 +7359,8 @@ loop_3: func_800B6708(); return; } - D_8018EE10.unk4 = 0; - D_8018EE10.unk84 = 0; + D_8018EE10->ghostDataSaved = 0; + D_8018EE10->unk84 = 0; return; case 0x78: case 0x79: @@ -7504,8 +7374,8 @@ loop_3: func_800B6708(); return; } - D_8018EE10.unk4 = 0; - D_8018EE10.unk84 = 0; + D_8018EE10->ghostDataSaved = 0; + D_8018EE10->unk84 = 0; return; case 0x8D: func_80099184(segmented_to_virtual(D_02001FA4)); @@ -7526,85 +7396,83 @@ loop_3: case 0x89: case 0x8A: case 0x8B: - sp7C = phi_ra; - temp_v0_7 = phi_ra->type - 0x7C; - func_800996BC(segmented_to_virtual(D_800E7D74[*(gCupCourseOrder + (((temp_v0_7 / 4) * 8) + ((temp_v0_7 % 4) * 2)))]), -1); - temp_v0_8 = phi_ra->type - 0x7C; - func_800996BC(segmented_to_virtual(D_800E7DC4[*(gCupCourseOrder + (((temp_v0_8 / 4) * 8) + ((temp_v0_8 % 4) * 2)))]), 0); + sp7C = var_ra; + temp_v0_6 = var_ra->type - 0x7C; + func_800996BC(segmented_to_virtual(D_800E7D74[*(&gCupCourseOrder + (((temp_v0_6 / 4) * 8) + ((temp_v0_6 % 4) * 2)))]), -1); + temp_v0_7 = var_ra->type - 0x7C; + func_800996BC(segmented_to_virtual(D_800E7DC4[*(&gCupCourseOrder + (((temp_v0_7 / 4) * 8) + ((temp_v0_7 % 4) * 2)))]), 0); func_800996BC(segmented_to_virtual(D_02004A0C), 0); return; case 0xB1: case 0xB2: case 0xB3: case 0xB4: - temp_v0_9 = gModeSelection; + temp_v0_8 = gModeSelection; temp_a1 = *(&D_800EFD64 + *(&D_800E85F7 + type)); - phi_v1_4 = 0U; - if (temp_v0_9 != 2) { - if (temp_v0_9 != 3) { - phi_a2 = (struct _struct_D_800E8234_0x8 *) (type * 4); + var_v1_3 = 0; + if (temp_v0_8 != 2) { + if (temp_v0_8 != 3) { + var_a2 = type * 4; } else { - temp_t8 = type * 4; - phi_a2 = (struct _struct_D_800E8234_0x8 *) temp_t8; - phi_a2 = (struct _struct_D_800E8234_0x8 *) temp_t8; + var_a2 = type * 4; if (type != (gPlayerWinningIndex + 0xB1)) { - + goto block_63; } } } else { temp_t9 = type * 4; - phi_a2 = (struct _struct_D_800E8234_0x8 *) temp_t9; - phi_a2 = (struct _struct_D_800E8234_0x8 *) temp_t9; + var_a2 = temp_t9; if (*(&D_801640F4 + temp_t9) != 0) { - +block_63: + var_v1_3 = 1; } } - if (phi_v1_4 != 0) { - phi_v1_5 = temp_a1 * 4; - phi_a0_2 = gCharacterDefeatAnimation[temp_a1]; + if (var_v1_3 != 0) { + var_v1_4 = temp_a1 * 4; + var_a0 = gCharacterDefeatAnimation[temp_a1]; } else { - phi_v1_5 = temp_a1 * 4; - phi_a0_2 = D_800E8320[temp_a1]; + var_v1_4 = temp_a1 * 4; + var_a0 = D_800E8320[temp_a1]; } - sp7C = phi_ra; - sp20 = phi_v1_5; - sp24 = phi_a2; + sp7C = var_ra; + sp20 = var_v1_4; + sp24 = var_a2; sp3C = type - 0xB1; - phi_ra->D_8018DEE0_index = func_8009A478(segmented_to_virtual_dupe(phi_a0_2), sp3C); - func_800996BC(segmented_to_virtual(*(&D_800E7D54 + phi_v1_5)), 0); - func_80099184(segmented_to_virtual(*(&D_800E7FF0 + phi_a2))); + var_ra->D_8018DEE0_index = func_8009A478(segmented_to_virtual_dupe(var_a0), sp3C); + func_800996BC(segmented_to_virtual(*(&D_800E7D54 + var_v1_4)), 0); + func_80099184(segmented_to_virtual(*(&D_800E7FF0 + var_a2))); return; case 0xBB: - sp7C = phi_ra; - phi_ra->unk1C = func_800B5020(D_8018CA78, *gCharacterSelections, priority); - phi_ra->unk20 = func_800B5218(); + sp7C = var_ra; + var_ra->unk1C = func_800B5020(D_8018CA78, *gCharacterSelections, priority); + var_ra->unk20 = func_800B5218(); if (*D_80162DD4 != 1) { - sp7C = phi_ra; + sp7C = var_ra; if (func_800051C4() >= 0x3C01) { *D_80162DD4 = 1; } } - if ((phi_ra->unk1C == 0) || (phi_ra->unk20 != 0)) { + if ((var_ra->unk1C == 0) || (var_ra->unk20 != 0)) { func_800B559C((gCupSelection * 4) + gCupCourseSelection); return; } return; case 0xE6: - temp_v0_10 = gTimeTrialDataCourseIndex; - sp7C = phi_ra; - phi_ra->D_8018DEE0_index = func_8009A374(segmented_to_virtual_dupe(D_800E7E34[*(gCupCourseOrder + ((((s32) temp_v0_10 / 4) * 8) + (((s32) temp_v0_10 % 4) * 2)))])); - phi_ra->unk1C = (s32) gTimeTrialDataCourseIndex; + temp_v0_9 = gTimeTrialDataCourseIndex; + sp7C = var_ra; + var_ra->D_8018DEE0_index = func_8009A374(segmented_to_virtual_dupe(D_800E7E34[*(&gCupCourseOrder + (((temp_v0_9 / 4) * 8) + ((temp_v0_9 % 4) * 2)))])); + var_ra->unk1C = (s32) gTimeTrialDataCourseIndex; func_800996BC(segmented_to_virtual(D_02004A0C), 0); func_8006EF60(); if (func_800B5B94() == 0) { func_800B6708(); return; } - D_8018EE10.unk4 = 0; - D_8018EE10.unk84 = 0; + D_8018EE10->ghostDataSaved = 0; + D_8018EE10->unk84 = 0; return; case 0xF0: - phi_ra->unk4 = (s32) gSoundMode; + var_ra->unk4 = (s32) gSoundMode; return; case 0xF1: func_800996BC(segmented_to_virtual(D_02004638), 0); @@ -7614,20 +7482,22 @@ loop_3: return; case 0x130: temp_a1_2 = *(&D_800EFD64 + D_802874D8.unk_1E); - if ((s32) D_802874D8.unk_1D >= 3) { - phi_v0_2 = 1; - } - phi_v1 = temp_a1_2 * 4; - if (phi_v0_2 != 0) { - phi_v1 = temp_a1_2 * 4; - phi_a0 = gCharacterDefeatAnimation[temp_a1_2]; + if (D_802874D8.unk_1D >= 3) { + var_v0_2 = 1; } else { - phi_a0 = D_800E8320[temp_a1_2]; + var_v0_2 = 0; } - sp7C = phi_ra; - sp20 = phi_v1; - phi_ra->D_8018DEE0_index = func_8009A478(segmented_to_virtual_dupe(phi_a0), 0); - func_800996BC(segmented_to_virtual(*(&D_800E7D54 + phi_v1)), 0); + var_v1_5 = temp_a1_2 * 4; + if (var_v0_2 != 0) { + var_v1_5 = temp_a1_2 * 4; + var_a0_2 = gCharacterDefeatAnimation[temp_a1_2]; + } else { + var_a0_2 = D_800E8320[temp_a1_2]; + } + sp7C = var_ra; + sp20 = var_v1_5; + var_ra->D_8018DEE0_index = func_8009A478(segmented_to_virtual_dupe(var_a0_2), 0); + func_800996BC(segmented_to_virtual(*(&D_800E7D54 + var_v1_5)), 0); break; } } @@ -7636,8 +7506,7 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/add_8018D9E0_entry.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 06ada559d7a32fdab49fa2d619cdfa027615bcda -? func_8004C8D4(s16, s16); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc Gfx *func_800959CC(Gfx *, s32, s32, s32, s32); /* extern */ Gfx *func_80096CD8(Gfx *, ?, ?, ?, s32); /* extern */ Gfx *func_8009B9D0(Gfx *, MkTexture *); /* extern */ @@ -7666,7 +7535,6 @@ Gfx *func_8009BC9C(Gfx *, MkTexture *, s32, s32, s32, s32); /* extern */ ? func_800A638C(struct_8018D9E0_entry *); /* extern */ ? func_800A70E8(struct_8018D9E0_entry *); /* extern */ ? func_800A761C(struct_8018D9E0_entry *); /* extern */ -? func_800A7790(struct_8018D9E0_entry *); /* extern */ ? func_800A8270(s32, struct_8018D9E0_entry *); /* extern */ ? func_800A8564(struct_8018D9E0_entry *); /* extern */ ? func_800A874C(struct_8018D9E0_entry *); /* extern */ @@ -7675,9 +7543,11 @@ Gfx *func_8009BC9C(Gfx *, MkTexture *, s32, s32, s32, s32); /* extern */ ? func_800A8CA4(struct_8018D9E0_entry *); /* extern */ ? func_800A8F48(struct_8018D9E0_entry *); /* extern */ ? func_800A90D4(s32, struct_8018D9E0_entry *); /* extern */ +extern ? D_800E86AC; +extern ? D_800E86B0; extern ? D_8018EDE8; -extern s8 D_8018EDF3; extern s8 D_802874F6; +extern ? gGameModeFromNumPlayersAndRowSelection; extern s8 gMainMenuSelectionDepth; static s8 *D_800E7594[0xC] = { "luigi raceway", @@ -7692,8 +7562,9 @@ static s8 *D_800E7594[0xC] = { "double deck", "d.k.'s jungle parkway", "big donut", -}; /* const */ -static s8 *D_800E77A0[2] = { "CONNECT A CONTROLLER TO SOCKET 1,", "THEN POWER ON AGAIN" }; /* const */ +}; +static s8 *D_800E77A0[2] = { "CONNECT A CONTROLLER TO SOCKET 1,", "THEN POWER ON AGAIN" }; +static s8 D_800E77B4[0x21]; static MkTexture *D_800E7CA8[0x19] = { D_020010E0, D_02001108, @@ -7720,8 +7591,8 @@ static MkTexture *D_800E7CA8[0x19] = { D_02001450, D_02001478, D_020014A0, -}; /* const */ -static MkTexture *D_800E7D4C[2] = { D_02004598, D_020045C0 }; /* const */ +}; +static MkTexture *D_800E7D4C[2] = { D_02004598, D_020045C0 }; static MkTexture *D_800E7D54[8] = { D_02001A8C, D_02001A64, @@ -7731,7 +7602,7 @@ static MkTexture *D_800E7D54[8] = { D_020019EC, D_02001ADC, D_02001A3C, -}; /* const */ +}; static MkTexture *D_800E817C[0x1A] = { D_02003A1C, D_02003FE4, @@ -7759,8 +7630,8 @@ static MkTexture *D_800E817C[0x1A] = { D_0200414C, D_02004174, D_0200419C, -}; /* const */ -static MkTexture *D_800E824C[2] = { D_0200478C, D_02004854 }; /* const */ +}; +static MkTexture *D_800E824C[2] = { D_0200478C, D_02004854 }; static MkTexture *D_800E8254[8] = { D_02004660, D_02004688, @@ -7770,7 +7641,7 @@ static MkTexture *D_800E8254[8] = { D_0200487C, D_020048A4, D_020048CC, -}; /* const */ +}; static MkTexture *D_800E8294[8] = { D_020048F4, D_0200491C, @@ -7780,12 +7651,8 @@ static MkTexture *D_800E8294[8] = { D_02004994, D_020049E4, D_02004A34, -}; /* const */ +}; static ? D_800EFD64; /* unable to generate initializer; const */ -static ? gGameModeFromNumPlayersAndRowSelection; /* unable to generate initializer; const */ -static ? gGameModeRowSelectionForNumPlayers; /* unable to generate initializer; const */ -static ? gGameModeSubMenuRowSelectionForNumPlayers; /* unable to generate initializer; const */ -s16 gCurrentCourseId; /* unable to generate initializer */ s8 *D_800E7500[9] = { "mushroom cup", "flower cup", @@ -7796,7 +7663,7 @@ s8 *D_800E7500[9] = { "flower cup", "star cup", "special cup", -}; /* const */ +}; s8 *D_800E7524[0x14] = { "mario raceway", "choco mountain", @@ -7818,7 +7685,7 @@ s8 *D_800E7524[0x14] = { "double deck", "d.k.'s jungle parkway", "big donut", -}; /* const */ +}; s8 *D_800E7574[8] = { "mario raceway", "choco mountain", @@ -7828,9 +7695,9 @@ s8 *D_800E7574[8] = { "frappe snowland", "koopa troopa beach", "royal raceway", -}; /* const */ -s8 *D_800E77A8 = "BATTLE GAME"; /* const */ -s8 gCharacterSelections[4]; /* unable to generate initializer; const */ +}; +s8 *D_800E77A8 = "BATTLE GAME"; +s16 gCurrentCourseId; /* unable to generate initializer */ void func_8009F5E0(struct_8018D9E0_entry *arg0) { s32 spAC; @@ -7848,6 +7715,9 @@ void func_8009F5E0(struct_8018D9E0_entry *arg0) { Gfx *temp_v0_3; Gfx *temp_v1; Gfx *temp_v1_2; + Gfx *var_v0_2; + Gfx *var_v0_3; + f32 var_f0; s32 temp_a0; s32 temp_a0_2; s32 temp_a0_3; @@ -7857,59 +7727,49 @@ void func_8009F5E0(struct_8018D9E0_entry *arg0) { s32 temp_a1_4; s32 temp_a1_5; s32 temp_a1_6; - s32 temp_a1_7; s32 temp_a2; + s32 temp_a2_2; s32 temp_a2_3; s32 temp_a2_4; s32 temp_a2_5; s32 temp_a2_6; - s32 temp_a2_7; - s32 temp_t0; s32 temp_t1; s32 temp_t2; s32 temp_t4; s32 temp_t5; s32 temp_t8; s32 temp_t9; - s32 temp_v0_10; + s32 temp_v0_11; s32 temp_v0_12; - s32 temp_v0_13; s32 temp_v0_4; + s32 temp_v0_5; s32 temp_v0_6; - s32 temp_v0_7; + s32 temp_v0_9; s32 temp_v1_3; s32 temp_v1_4; s32 temp_v1_5; s32 temp_v1_7; s32 temp_v1_8; - s8 **temp_v0_5; - s8 temp_a2_2; - s8 temp_v0_11; + s32 var_a1; + s32 var_a2_2; + s32 var_a2_3; + s32 var_t0; + s32 var_t0_2; + s32 var_v1; + s8 **var_v0; + s8 temp_v0_10; + s8 temp_v0_7; s8 temp_v0_8; - s8 temp_v0_9; s8 temp_v1_6; - f32 phi_f0; - Gfx *phi_v0; - s32 phi_t0; - s8 **phi_v0_2; - s32 phi_v1; - s32 phi_t0_2; - s32 phi_v1_2; - s32 phi_a2; - s8 phi_a2_2; - s32 phi_a1; - Gfx *phi_v0_3; - s32 phi_a2_3; - s32 phi_a2_4; + s8 var_a2; if ((s8) arg0->visible != 0) { temp_v1 = gDisplayListHead; gDisplayListHead = temp_v1 + 8; temp_v1->words.w1 = 0; temp_v1->words.w0 = 0xE7000000; - temp_t0 = arg0->type; - phi_t0_2 = temp_t0; - switch (temp_t0) { /* switch 6; irregular */ + var_t0 = arg0->type; + switch (var_t0) { /* switch 6; irregular */ case 0xFA: /* switch 6 */ func_80094660(gGfxPool, arg0->unk1C); return; @@ -7944,14 +7804,14 @@ void func_8009F5E0(struct_8018D9E0_entry *arg0) { func_8009A76C(arg0->type, arg0->type, arg0->type, -1); return; case 0xD7: /* switch 6 */ - func_800A0DFC(temp_t0); + func_800A0DFC(var_t0); return; case 0xD8: /* switch 6 */ case 0xD9: /* switch 6 */ - func_800A0EB8(arg0, temp_t0 - 0xD8); + func_800A0EB8(arg0, var_t0 - 0xD8); return; case 0x1: /* switch 6 */ - gDisplayListHead = func_8009BA74(gDisplayListHead, D_800E7D4C[func_800B555C(temp_t0)], arg0->type, arg0->type); + gDisplayListHead = func_8009BA74(gDisplayListHead, D_800E7D4C[func_800B555C(var_t0)], arg0->type, arg0->type); return; case 0x2: /* switch 6 */ func_8004C8D4((s16) (arg0->type + 0xA0), (s16) (arg0->type + 0x47)); @@ -7965,9 +7825,9 @@ void func_8009F5E0(struct_8018D9E0_entry *arg0) { break; case 0x5: /* switch 6 */ temp_t4 = (s32) ((f32) (get_string_width(*D_800E7574) + 5) * 0.9f) / 2; - gDisplayListHead = draw_box(gDisplayListHead, 0xA0 - temp_t4, 0x7B, temp_t4 + 0xA0, 0xA4, 0, 0, 0, 0x96); + gDisplayListHead = draw_box(gDisplayListHead, 0xA0 - temp_t4, 0x0000007B, temp_t4 + 0xA0, 0x000000A4, 0, 0, 0, 0x00000096); set_text_color(1); - draw_text(0x9B, 0x8C, *D_800E7574, 0, 0.9f, 0.9f); + draw_text(0x0000009B, 0x0000008C, *D_800E7574, 0, 0.9f, 0.9f); temp_v1_3 = func_800B4EB4(0, 7) & 0xFFFFF; if (temp_v1_3 < 0x1EAA) { set_text_color((s32) gGlobalTimer % 2); @@ -7977,42 +7837,41 @@ void func_8009F5E0(struct_8018D9E0_entry *arg0) { set_text_color(3); } get_time_record_minutes(temp_v1_3, &sp80); - func_800939C8(0x77, 0xA0, &sp80, 0, 1.0f, 1.0f); - func_80093324(0x8B, 0xA0, "'", 0, 1.0f, 1.0f); + func_800939C8(0x00000077, 0x000000A0, &sp80, 0, 1.0f, 1.0f); + func_80093324(0x0000008B, 0x000000A0, "'", 0, 1.0f, 1.0f); get_time_record_seconds(temp_v1_3, &sp80); - func_800939C8(0x94, 0xA0, &sp80, 0, 1.0f, 1.0f); - func_80093324(0xA7, 0xA0, "\"", 0, 1.0f, 1.0f); + func_800939C8(0x00000094, 0x000000A0, &sp80, 0, 1.0f, 1.0f); + func_80093324(0x000000A7, 0x000000A0, "\"", 0, 1.0f, 1.0f); get_time_record_centiseconds(temp_v1_3, &sp80); - func_800939C8(0xB4, 0xA0, &sp80, 0, 1.0f, 1.0f); + func_800939C8(0x000000B4, 0x000000A0, &sp80, 0, 1.0f, 1.0f); return; case 0x4: /* switch 6 */ sp58 = get_string_width(D_800E77A0->unk0); temp_v0_4 = get_string_width(D_800E77A0->unk4); - phi_t0 = sp58; - if (sp58 < temp_v0_4) { - phi_t0 = temp_v0_4; + var_t0_2 = sp58; + if (var_t0_2 < temp_v0_4) { + var_t0_2 = temp_v0_4; } - temp_t2 = (s32) ((f32) phi_t0 * 0.75f) / 2; + temp_t2 = (s32) ((f32) var_t0_2 * 0.75f) / 2; temp_t5 = (s32) (((f64) (0.75f * 2.0f) + 0.5) * 16.0) / 2; - gDisplayListHead = draw_box(gDisplayListHead, 0xA0 - temp_t2, 0xB6 - temp_t5, temp_t2 + 0xA0, temp_t5 + 0xB6, 0, 0, 0, 0x96); + gDisplayListHead = draw_box(gDisplayListHead, 0xA0 - temp_t2, 0xB6 - temp_t5, temp_t2 + 0xA0, temp_t5 + 0xB6, 0, 0, 0, 0x00000096); set_text_color(4); + var_v0 = D_800E77A0; + var_v1 = 0; sp38 = (f32) 0xB4; sp3C = (s32) ((f32) 0xA0 - (1.0f * 0.75f)); - phi_v0_2 = D_800E77A0; - phi_v1 = 0; do { - sp40 = phi_v0_2; - sp44 = phi_v1; - draw_text(sp3C, (s32) (sp38 + ((f32) phi_v1 * 0.75f)), *phi_v0_2, 0, 0.75f, 0.75f); - temp_v0_5 = phi_v0_2 + 4; - phi_v0_2 = temp_v0_5; - phi_v1 += 0x12; - } while (temp_v0_5 != &D_800E77A8); + sp40 = var_v0; + sp44 = var_v1; + draw_text(sp3C, (s32) (sp38 + ((f32) var_v1 * 0.75f)), *var_v0, 0, 0.75f, 0.75f); + var_v0 += 4; + var_v1 += 0x12; + } while (var_v0 != &D_800E77A8); return; case 0x23: /* switch 6 */ case 0x24: /* switch 6 */ case 0x25: /* switch 6 */ - gDisplayListHead = func_8009BC9C(gDisplayListHead, D_800E7D4C[func_800B555C(temp_t0)], arg0->column, arg0->row, 3, 0); + gDisplayListHead = func_8009BC9C(gDisplayListHead, D_800E7D4C[func_800B555C(var_t0)], arg0->column, arg0->row, 3, 0); return; case 0xA: /* switch 6 */ gDisplayListHead = func_8009BA74(gDisplayListHead, D_02004660, arg0->column, arg0->row); @@ -8021,7 +7880,7 @@ void func_8009F5E0(struct_8018D9E0_entry *arg0) { case 0xC: /* switch 6 */ case 0xD: /* switch 6 */ case 0xE: /* switch 6 */ - temp_a0 = temp_t0 - 0xB; + temp_a0 = var_t0 - 0xB; spAC = temp_a0; func_800A8270(temp_a0, arg0); func_800A0FA4(arg0, spAC); @@ -8033,24 +7892,22 @@ void func_8009F5E0(struct_8018D9E0_entry *arg0) { case 0x10: /* switch 6 */ case 0x11: /* switch 6 */ temp_v1_4 = arg0->unk1C; - phi_v1_2 = temp_v1_4; if (temp_v1_4 < 0x20) { temp_t9 = (s32) (temp_v1_4 * 0x3A) / 64; - if ((temp_t0 - 0xF) == gMainMenuSelectionDepth) { - temp_v0_6 = arg0->column; + if ((var_t0 - 0xF) == gMainMenuSelectionDepth) { + temp_v0_5 = arg0->column; temp_v1_5 = arg0->row; - gDisplayListHead = func_800959CC(gDisplayListHead, temp_v0_6 + temp_t9, temp_v1_5, (temp_v0_6 - temp_t9) + 0x39, temp_v1_5 + 0x12); + gDisplayListHead = func_800959CC(gDisplayListHead, temp_v0_5 + temp_t9, temp_v1_5, (temp_v0_5 - temp_t9) + 0x39, temp_v1_5 + 0x12); } else { - temp_v0_7 = arg0->column; + temp_v0_6 = arg0->column; temp_a2 = arg0->row; - gDisplayListHead = func_80098C18(gDisplayListHead, temp_v0_7 + temp_t9, temp_a2, (temp_v0_7 - temp_t9) + 0x39, temp_a2 + 0x12, 1, 1, 1, 0xFF); + gDisplayListHead = func_80098C18(gDisplayListHead, temp_v0_6 + temp_t9, temp_a2, (temp_v0_6 - temp_t9) + 0x39, temp_a2 + 0x12, 1, 1, 1, 0x000000FF); } - phi_t0_2 = arg0->type; - phi_v1_2 = arg0->unk1C; + var_t0 = arg0->type; } - temp_t8 = phi_t0_2 - 0xA; + temp_t8 = var_t0 - 0xA; spA8 = temp_t8; - gDisplayListHead = func_8009BC9C(gDisplayListHead, D_800E8254[temp_t8], arg0->column, arg0->row, 2, phi_v1_2); + gDisplayListHead = func_8009BC9C(gDisplayListHead, D_800E8254[temp_t8], arg0->column, arg0->row, 2, arg0->unk1C); return; case 0x12: /* switch 6 */ case 0x13: /* switch 6 */ @@ -8060,71 +7917,65 @@ void func_8009F5E0(struct_8018D9E0_entry *arg0) { case 0x17: /* switch 6 */ case 0x18: /* switch 6 */ case 0x19: /* switch 6 */ - temp_v0_8 = D_8018EDF3; - temp_v1_6 = *(&gGameModeRowSelectionForNumPlayers + temp_v0_8); - temp_a2_2 = *(&gGameModeSubMenuRowSelectionForNumPlayers + ((temp_v0_8 * 3) + temp_v1_6)); - temp_a1 = *(&gGameModeFromNumPlayersAndRowSelection + ((temp_v0_8 * 0xC) + (temp_v1_6 * 4))); - phi_a2 = (s32) temp_a2_2; - phi_a2_2 = temp_a2_2; - phi_a1 = temp_a1; - switch (temp_t0) { /* switch 5 */ + temp_v0_7 = D_8018EDF3; + temp_v1_6 = *(&D_800E86AC - 1 + temp_v0_7); + var_a2 = *(&D_800E86B0 - 3 + ((temp_v0_7 * 3) + temp_v1_6)); + var_a1 = *(&gGameModeFromNumPlayersAndRowSelection + ((temp_v0_7 * 0xC) + (temp_v1_6 * 4))); + switch (var_t0) { /* switch 5 */ case 18: /* switch 5 */ case 19: /* switch 5 */ case 20: /* switch 5 */ case 21: /* switch 5 */ - if ((temp_a1 != 0) && (temp_a1 != 2)) { - phi_a2 = -1; + if ((var_a1 != 0) && (var_a1 != 2)) { + var_a2 = -1; } - spA8 = 0x12; - spAC = phi_a2; - sp9C = segmented_to_virtual(D_800E824C[temp_t0]); - phi_a2_2 = (s8) phi_a2; + spA8 = 0x00000012; + spAC = (s32) var_a2; + sp9C = segmented_to_virtual(D_800E824C[var_t0]); block_58: - phi_a1 = spA8; + var_a1 = spA8; break; case 22: /* switch 5 */ case 23: /* switch 5 */ - if (temp_a1 != 2) { - phi_a2_2 = -1; + if (var_a1 != 2) { + var_a2 = -1; } else { - spA8 = 0x16; - spAC = (s32) temp_a2_2; - sp9C = segmented_to_virtual(D_800E824C[temp_t0]); - phi_a2_2 = temp_a2_2; + spA8 = 0x00000016; + spAC = (s32) var_a2; + sp9C = segmented_to_virtual(D_800E824C[var_t0]); goto block_58; } break; case 24: /* switch 5 */ case 25: /* switch 5 */ - if (temp_a1 != 1) { - phi_a2_2 = -1; + if (var_a1 != 1) { + var_a2 = -1; } else { - spA8 = 0x18; - spAC = (s32) temp_a2_2; - sp9C = segmented_to_virtual(D_800E824C[temp_t0]); - phi_a2_2 = temp_a2_2; + spA8 = 0x00000018; + spAC = (s32) var_a2; + sp9C = segmented_to_virtual(D_800E824C[var_t0]); goto block_58; } break; } - if (phi_a2_2 != -1) { - temp_v0_9 = gMainMenuSelectionDepth; - if (((s32) temp_v0_9 >= 5) && (phi_a2_2 == (arg0->type - phi_a1))) { - if ((s32) temp_v0_9 >= 6) { - temp_a1_2 = arg0->column; - temp_a2_3 = arg0->row; - phi_v0_3 = func_80098C18(gDisplayListHead, temp_a1_2, temp_a2_3, temp_a1_2 + 0x3F, temp_a2_3 + 0x11, 0xFF, 0xF9, 0xDC, 0xFF); + if (var_a2 != -1) { + temp_v0_8 = gMainMenuSelectionDepth; + if ((temp_v0_8 >= 5) && (var_a2 == (arg0->type - var_a1))) { + if (temp_v0_8 >= 6) { + temp_a1 = arg0->column; + temp_a2_2 = arg0->row; + var_v0_2 = func_80098C18(gDisplayListHead, temp_a1, temp_a2_2, temp_a1 + 0x3F, temp_a2_2 + 0x11, 0x000000FF, 0x000000F9, 0x000000DC, 0x000000FF); } else { temp_v1_7 = arg0->row; - temp_v0_10 = arg0->column; - phi_v0_3 = func_800959A0(gDisplayListHead, temp_v0_10, temp_v1_7, temp_v0_10 + 0x3F, temp_v1_7 + 0x11); + temp_v0_9 = arg0->column; + var_v0_2 = func_800959A0(gDisplayListHead, temp_v0_9, temp_v1_7, temp_v0_9 + 0x3F, temp_v1_7 + 0x11); } } else { - temp_a1_3 = arg0->column; - temp_a2_4 = arg0->row; - phi_v0_3 = func_80098C18(gDisplayListHead, temp_a1_3, temp_a2_4, temp_a1_3 + 0x3F, temp_a2_4 + 0x11, 1, 1, 1, 0xFF); + temp_a1_2 = arg0->column; + temp_a2_3 = arg0->row; + var_v0_2 = func_80098C18(gDisplayListHead, temp_a1_2, temp_a2_3, temp_a1_2 + 0x3F, temp_a2_3 + 0x11, 1, 1, 1, 0x000000FF); } - gDisplayListHead = phi_v0_3; + gDisplayListHead = var_v0_2; gDisplayListHead = func_8009BA74(gDisplayListHead, sp9C, arg0->column, arg0->row); return; } @@ -8139,20 +7990,20 @@ block_58: case 0x35: /* switch 6 */ case 0x36: /* switch 6 */ case 0x37: /* switch 6 */ - temp_a1_4 = temp_t0 - 0x34; - if (gCharacterGridSelections[temp_a1_4] != 0) { - if (*(&D_8018EDE8 + temp_a1_4) == 0) { - phi_a2_3 = 0xFF; + temp_a1_3 = var_t0 - 0x34; + if (gCharacterGridSelections[temp_a1_3] != 0) { + if (*(&D_8018EDE8 + temp_a1_3) == 0) { + var_a2_2 = 0x000000FF; } else { temp_t1 = (s32) gGlobalTimer % 16; if (temp_t1 >= 8) { - phi_a2_4 = (temp_t1 * -8) + 0x80; + var_a2_3 = (temp_t1 * -8) + 0x80; } else { - phi_a2_4 = temp_t1 * 8; + var_a2_3 = temp_t1 * 8; } - phi_a2_3 = phi_a2_4 + 0xBF; + var_a2_2 = var_a2_3 + 0xBF; } - func_800A11D0(arg0, temp_a1_4, phi_a2_3); + func_800A11D0(arg0, temp_a1_3, var_a2_2); return; } break; @@ -8168,7 +8019,7 @@ block_58: case 0x30: /* switch 6 */ case 0x31: /* switch 6 */ case 0x32: /* switch 6 */ - func_800A12BC(arg0, segmented_to_virtual(D_800E7CA8[temp_t0])); + func_800A12BC(arg0, segmented_to_virtual(D_800E7CA8[var_t0])); /* fallthrough */ case 0xA0: /* switch 6 */ case 0xA1: /* switch 6 */ @@ -8184,7 +8035,7 @@ block_58: func_800A8CA4(arg0); return; case 0x52: /* switch 6 */ - gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual(D_800E817C[temp_t0]), arg0->column, arg0->row); + gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual(D_800E817C[var_t0]), arg0->column, arg0->row); return; case 0x5F: /* switch 6 */ case 0x60: /* switch 6 */ @@ -8196,7 +8047,7 @@ block_58: case 0x54: /* switch 6 */ case 0x55: /* switch 6 */ case 0x56: /* switch 6 */ - temp_a0_2 = temp_t0 - 0x53; + temp_a0_2 = var_t0 - 0x53; spAC = temp_a0_2; func_800A890C(temp_a0_2, arg0); func_800A143C(arg0, spAC); @@ -8207,15 +8058,15 @@ block_58: return; case 0x65: /* switch 6 */ case 0x66: /* switch 6 */ - if (temp_t0 == 0x65) { - phi_f0 = 0.6f; + if (var_t0 == 0x00000065) { + var_f0 = 0.6f; } else { - phi_f0 = 0.8f; + var_f0 = 0.8f; } - sp4C = phi_f0; + sp4C = var_f0; func_800A86E8(arg0); set_text_color(3); - func_80093324(arg0->column + 8, arg0->row + 0x10, D_800E7594[arg0->type], 0, phi_f0, 0.8f); + func_80093324(arg0->column + 8, arg0->row + 0x10, D_800E7594[arg0->type], 0, var_f0, 0.8f); func_800A874C(arg0); return; case 0x6E: /* switch 6 */ @@ -8225,9 +8076,9 @@ block_58: func_800A8EC0(arg0); return; case 0x68: /* switch 6 */ - temp_a1_5 = arg0->column; - temp_a2_5 = arg0->row; - gDisplayListHead = func_80098C18(gDisplayListHead, temp_a1_5, temp_a2_5, temp_a1_5 + 0x3F, temp_a2_5 + 0x11, 1, 1, 1, 0xFF); + temp_a1_4 = arg0->column; + temp_a2_4 = arg0->row; + gDisplayListHead = func_80098C18(gDisplayListHead, temp_a1_4, temp_a2_4, temp_a1_4 + 0x3F, temp_a2_4 + 0x11, 1, 1, 1, 0x000000FF); gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual(D_800E8294[gCCSelection]), arg0->column, arg0->row); return; case 0x69: /* switch 6 */ @@ -8237,32 +8088,32 @@ block_58: case 0x79: /* switch 6 */ case 0x7A: /* switch 6 */ case 0x7B: /* switch 6 */ - temp_a0_3 = temp_t0 - 0x78; + temp_a0_3 = var_t0 - 0x78; spAC = temp_a0_3; func_800A90D4(temp_a0_3, arg0); func_800A143C(arg0, spAC); return; case 0x8C: /* switch 6 */ - temp_v0_11 = gMainMenuSelectionDepth; - if (((s32) temp_v0_11 >= 5) && (spAC == (temp_t0 - spA8))) { - if ((s32) temp_v0_11 >= 6) { - temp_a1_6 = arg0->column; - temp_a2_6 = arg0->row; - phi_v0 = func_80098C18(gDisplayListHead, temp_a1_6, temp_a2_6, temp_a1_6 + 0x3F, temp_a2_6 + 0x11, 0xFF, 0xF9, 0xDC, 0xFF); + temp_v0_10 = gMainMenuSelectionDepth; + if ((temp_v0_10 >= 5) && (spAC == (var_t0 - spA8))) { + if (temp_v0_10 >= 6) { + temp_a1_5 = arg0->column; + temp_a2_5 = arg0->row; + var_v0_3 = func_80098C18(gDisplayListHead, temp_a1_5, temp_a2_5, temp_a1_5 + 0x3F, temp_a2_5 + 0x11, 0x000000FF, 0x000000F9, 0x000000DC, 0x000000FF); } else { temp_v1_8 = arg0->row; - temp_v0_12 = arg0->column; - phi_v0 = func_800959A0(gDisplayListHead, temp_v0_12, temp_v1_8, temp_v0_12 + 0x3F, temp_v1_8 + 0x11); + temp_v0_11 = arg0->column; + var_v0_3 = func_800959A0(gDisplayListHead, temp_v0_11, temp_v1_8, temp_v0_11 + 0x3F, temp_v1_8 + 0x11); } } else { - temp_a1_7 = arg0->column; - temp_a2_7 = arg0->row; - phi_v0 = func_80098C18(gDisplayListHead, temp_a1_7, temp_a2_7, temp_a1_7 + 0x3F, temp_a2_7 + 0x11, 1, 1, 1, 0xFF); + temp_a1_6 = arg0->column; + temp_a2_6 = arg0->row; + var_v0_3 = func_80098C18(gDisplayListHead, temp_a1_6, temp_a2_6, temp_a1_6 + 0x3F, temp_a2_6 + 0x11, 1, 1, 1, 0x000000FF); } - gDisplayListHead = phi_v0; + gDisplayListHead = var_v0_3; gDisplayListHead = func_8009BA74(gDisplayListHead, D_02004A34, arg0->column, arg0->row); set_text_color(3); - func_800936B8(0x125, 0x1C, "a BUTTON*SEE DATA B BUTTON*EXIT", 0, 0.55f, 0.55f); + func_800936B8(0x00000125, 0x0000001C, "a BUTTON*SEE DATA B BUTTON*EXIT", 0, 0.55f, 0.55f); return; case 0x8D: /* switch 6 */ func_800A1780(arg0); @@ -8297,7 +8148,7 @@ block_58: func_800A2D1C(arg0); return; case 0x5E: /* switch 6 */ - gDisplayListHead = func_80096CD8(gDisplayListHead, 0x19, 0x72, 0x7C, 0x4A); + gDisplayListHead = func_80096CD8(gDisplayListHead, 0x19, 0x72, 0x7C, 0x0000004A); return; case 0xAA: /* switch 6 */ func_800A2EB8(arg0); @@ -8318,12 +8169,12 @@ block_58: case 0xB2: /* switch 6 */ case 0xB3: /* switch 6 */ case 0xB4: /* switch 6 */ - temp_v0_13 = temp_t0 - 0xB1; + temp_v0_12 = var_t0 - 0xB1; if (arg0->unk4 != 0) { - spA8 = temp_v0_13; - gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual(D_800E7D54[*(&D_800EFD64 + gCharacterSelections[temp_v0_13])]), arg0->column, arg0->row); + spA8 = temp_v0_12; + gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual(D_800E7D54[*(&D_800EFD64 + gCharacterSelections[temp_v0_12])]), arg0->column, arg0->row); func_8009A7EC(arg0->D_8018DEE0_index, arg0->column, arg0->row, spA8, arg0->unk1C); - func_800A11D0(arg0, spA8, 0xFF); + func_800A11D0(arg0, spA8, 0x000000FF); return; } break; @@ -8634,26 +8485,33 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A0B80.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s32 func_8009BA74(s32, s32, s32, ?); // extern -void *segmented_to_virtual(void*); // extern -extern ? D_800E7D0C; -extern s32 gControllerPakNumPagesFree; -extern s32 gDisplayListHead; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +static MkTexture *D_800E7D0C[0xA] = { + D_020016BC, + D_020016E4, + D_0200170C, + D_02001734, + D_0200175C, + D_02001784, + D_020017AC, + D_020017D4, + D_020017FC, + D_02001824, +}; void func_800A0DFC(void) { - s32 temp_lo; - s32 phi_s0; - s32 phi_s1; + s32 temp_t6; + s32 var_s0; + s32 var_s1; - phi_s0 = gControllerPakNumPagesFree; - phi_s1 = 0x110; + var_s0 = gControllerPakNumPagesFree; + var_s1 = 0x00000110; do { - temp_lo = phi_s0 / 0xA; - gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual(*(&D_800E7D0C + ((phi_s0 % 0xA) * 4))), phi_s1, 0xB8); - phi_s0 = temp_lo; - phi_s1 += -9; - } while (temp_lo != 0); + temp_t6 = (var_s0 % 10) * 4; + var_s0 = var_s0 / 10; + gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual(*(D_800E7D0C + temp_t6)), var_s1, 0x000000B8); + var_s1 -= 9; + } while (var_s0 != 0); } #else GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A0DFC.s") @@ -11502,79 +11360,67 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A66A8.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80093754(s16, s16, s32, ?, f32, f32); // extern -? func_800A79F4(u8, ? *); // extern -? set_text_color(s32); // extern -? text_draw(s32, s32, ? *, ?, f32, f32); // extern -extern s32 gPlayerWinningIndex; -extern ? D_800E7300; -extern s16 D_800E7302; -extern ? D_800E7380; -extern ? D_800E7720; -extern ? D_800F0C7C; -extern f32 D_800F1F24; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_800A79F4(u8, s8 *); /* extern */ extern s32 gNmiUnknown1; extern s32 gNmiUnknown4; -extern s32 gGlobalTimer; +extern s32 gPlayerWinningIndex; +static ? D_800E7300; /* unable to generate initializer */ +static s16 D_800E7302; /* unable to generate initializer */ +static ? D_800E7380; /* unable to generate initializer */ +static s8 *D_800E7720[2] = { "WINNER!", "LOSER!" }; +static s8 D_800F0C7C[3] = { 0xA1, 0xBC, 0 }; /* const */ void func_800A69C8(s32 arg0) { - ? sp74; + s8 sp74; u8 *sp68; - f32 temp_f22; - s32 temp_s0; - s32 temp_s3; + ? *var_s1; + ? *var_s2; s32 temp_v0; - s32 phi_s0; - s32 phi_v1; - u8 *phi_s4; - ? *phi_s1; - ? *phi_s2; + s32 var_s0; + s32 var_v1; + s8 *temp_s3; + u8 *var_s4; - phi_s0 = 0; - if (D_8018EDF3 > ZERO_PLAYERS_SELECTED) { - temp_f22 = D_800F1F24; - phi_s1 = &D_800E7300; - phi_s2 = &D_800E7380; - phi_s4 = sp68; + var_s0 = 0; + if (D_8018EDF3 > 0) { + var_s2 = &D_800E7380; + var_s1 = &D_800E7300; + var_s4 = sp68; do { temp_v0 = gModeSelection; - phi_v1 = 0; - phi_v1 = 0; - phi_v1 = 0; - if (temp_v0 != VERSUS) { - if (temp_v0 != BATTLE) { - - } else { - if (phi_s0 != gPlayerWinningIndex) { - phi_v1 = 1; - } - phi_s4 = gNmiUnknown4 + phi_s0; + var_v1 = 0; + switch (temp_v0) { /* irregular */ + case 2: + if (gPlayerPositions[var_s0] != 0) { + var_v1 = 1; } - } else { - if (gPlayerPositions[phi_s0] != 0) { - phi_v1 = 1; + var_s4 = gNmiUnknown1 + var_s0; + break; + case 3: + if (var_s0 != gPlayerWinningIndex) { + var_v1 = 1; } - phi_s4 = gNmiUnknown1 + phi_s0; + var_s4 = gNmiUnknown4 + var_s0; + break; } - temp_s3 = *(&D_800E7720 + (phi_v1 * 4)); - if (phi_v1 != 0) { - set_text_color(TEXT_BLUE); + temp_s3 = D_800E7720[var_v1]; + if (var_v1 != 0) { + set_text_color(0); } else { - set_text_color(gGlobalTimer % 3); + set_text_color((s32) gGlobalTimer % 3); } - func_800A79F4(*phi_s4, &sp74); - text_draw(phi_s1->unk0 + 0x10, phi_s1->unk2 + 0x75, &sp74, 0, 1.0f, 1.0f); - func_80093754(phi_s2->unk0, phi_s2->unk2, temp_s3, 0, temp_f22, 1.0f); - temp_s0 = phi_s0 + 1; - phi_s0 = temp_s0; - phi_s1 += 8; - phi_s2 += 8; - } while (temp_s0 < D_8018EDF3); - sp68 = phi_s4; + func_800A79F4(*var_s4, &sp74); + text_draw(var_s1->unk0 + 0x10, var_s1->unk2 + 0x75, &sp74, 0, 1.0f, 1.0f); + func_80093754((s32) var_s2->unk0, (s32) var_s2->unk2, temp_s3, 0, 0.65f, 1.0f); + var_s0 += 1; + var_s1 += 8; + var_s2 += 8; + } while (var_s0 < D_8018EDF3); + sp68 = var_s4; } - set_text_color(TEXT_BLUE); - text_draw(0x9E, D_800E7302 + 0x6D, &D_800F0C7C, 0, 1.0f, 1.0f); + set_text_color(0); + text_draw(0x0000009E, D_800E7302 + 0x6D, D_800F0C7C, 0, 1.0f, 1.0f); } #else GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A69C8.s") @@ -11663,55 +11509,47 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A6CC0.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800A79F4(s32, ? *); // extern -? set_text_color(s32); // extern -? text_draw(s32, s32, ? *, ?, f32, f32); // extern +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_800A79F4(s32, s8 *); /* extern */ extern s32 gPlayerWinningIndex; -extern ? D_800E7300; +static ? D_800E7300; /* unable to generate initializer */ void func_800A6D94(s32 arg0, s32 arg1, s32 arg2) { - ? sp30; + s8 sp30; s32 sp24; + s32 var_v0; void *temp_v0; - s32 phi_v0; - phi_v0 = 0; + var_v0 = 0; if (arg1 != gPlayerWinningIndex) { - phi_v0 = 1; + var_v0 = 1; } - sp24 = *(arg2 + arg1); - if (phi_v0 != 0) { - set_text_color(TEXT_BLUE); + sp24 = (s32) *(arg2 + arg1); + if (var_v0 != 0) { + set_text_color(0); } else { - set_text_color(gModeSelection % 3); + set_text_color((s32) gModeSelection % 3); } func_800A79F4(sp24, &sp30); temp_v0 = ((arg0 << 5) + (arg1 * 8)) - 0x40 + &D_800E7300; - text_draw((temp_v0->unk0 + 0x20) - ((32.0f * 0.75f) / 2.0f), temp_v0->unk2 + 0x75, &sp30, 0, 0.75f, 0.75f); + text_draw((s32) ((f32) (temp_v0->unk0 + 0x20) - ((32.0f * 0.75f) / 2.0f)), temp_v0->unk2 + 0x75, &sp30, 0, 0.75f, 0.75f); } #else GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A6D94.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? convert_number_to_ascii(u8, ? *); // extern -? set_text_color(s32); // extern -? text_draw(s32, s32, ? *, ?, f32, f32); // extern -extern ? D_800E7300; -extern ? D_800F0C80; -extern ? D_800F0C88; -extern ? D_800F0C90; -extern f32 D_800F1F28; -extern s32 gGlobalTimer; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +static ? D_800E7300; /* unable to generate initializer */ +static s8 D_800F0C80[8] = { 0x31, 0x20, 0xA3, -0x0D, 0x20, 0xA1, 0xBC, 0 }; /* const */ +static s8 D_800F0C88[8] = { 0x32, 0x20, 0xA3, -0x12, 0x20, 0xA1, 0xBC, 0 }; /* const */ +static s8 D_800F0C90[8] = { 0x33, 0x20, 0xA3, -0x0E, 0x20, 0xA1, 0xBC, 0 }; /* const */ void func_800A6E94(s32 arg0, s32 arg1, s32 arg2) { - ? sp40; + s8 sp40; s32 sp3C; s32 sp38; u8 *sp30; - f32 temp_f20; s32 temp_t8; u8 *temp_v0; void *temp_s0; @@ -11719,36 +11557,35 @@ void func_800A6E94(s32 arg0, s32 arg1, s32 arg2) { temp_t8 = gPlayerPositions[arg1]; sp3C = temp_t8; if (temp_t8 == 0) { - set_text_color(gGlobalTimer % 3); + set_text_color((s32) gGlobalTimer % 3); } else { - set_text_color(TEXT_YELLOW); + set_text_color(3); } temp_s0 = ((arg0 << 5) + (arg1 * 8)) - 0x40 + &D_800E7300; - temp_f20 = D_800F1F28; - text_draw(temp_s0->unk0 + 4, temp_s0->unk2 + 0x5A, &D_800F0C80, 0, temp_f20, temp_f20); + text_draw(temp_s0->unk0 + 4, temp_s0->unk2 + 0x5A, D_800F0C80, 0, 0.8f, 0.8f); temp_v0 = (arg1 * 3) + arg2; sp30 = temp_v0; - convert_number_to_ascii(*temp_v0, &sp40); - text_draw(temp_s0->unk0 + 0x2D, temp_s0->unk2 + 0x5A, &sp40, 0, temp_f20, temp_f20); + convert_number_to_ascii((s32) *temp_v0, &sp40); + text_draw(temp_s0->unk0 + 0x2D, temp_s0->unk2 + 0x5A, &sp40, 0, 0.8f, 0.8f); if (sp3C == 1) { sp38 = 1; - set_text_color(gGlobalTimer % 3); + set_text_color((s32) gGlobalTimer % 3); } else { sp38 = 1; - set_text_color(TEXT_BLUE); + set_text_color(0); } sp38 = sp38; - text_draw(temp_s0->unk0 + 4, temp_s0->unk2 + 0x69, &D_800F0C88, 0, temp_f20, temp_f20); - convert_number_to_ascii(sp30->unk1, &sp40); - text_draw(temp_s0->unk0 + 0x2D, temp_s0->unk2 + 0x69, &sp40, 0, temp_f20, temp_f20); + text_draw(temp_s0->unk0 + 4, temp_s0->unk2 + 0x69, D_800F0C88, 0, 0.8f, 0.8f); + convert_number_to_ascii((s32) sp30->unk1, &sp40); + text_draw(temp_s0->unk0 + 0x2D, temp_s0->unk2 + 0x69, &sp40, 0, 0.8f, 0.8f); if ((sp38 + 1) == sp3C) { - set_text_color(gGlobalTimer % 3); + set_text_color((s32) gGlobalTimer % 3); } else { - set_text_color(TEXT_RED); + set_text_color(2); } - text_draw(temp_s0->unk0 + 4, temp_s0->unk2 + 0x78, &D_800F0C90, 0, temp_f20, temp_f20); - convert_number_to_ascii(sp30->unk2, &sp40); - text_draw(temp_s0->unk0 + 0x2D, temp_s0->unk2 + 0x78, &sp40, 0, temp_f20, temp_f20); + text_draw(temp_s0->unk0 + 4, temp_s0->unk2 + 0x78, D_800F0C90, 0, 0.8f, 0.8f); + convert_number_to_ascii((s32) sp30->unk2, &sp40); + text_draw(temp_s0->unk0 + 0x2D, temp_s0->unk2 + 0x78, &sp40, 0, 0.8f, 0.8f); } #else GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A6E94.s") @@ -11851,12 +11688,8 @@ void func_800A75A0(struct_8018D9E0_entry *arg0) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit dacbf209f1bb5d4acaecaf1fefff331d60ffd80c -? convert_number_to_ascii(s32, s8 *); /* extern */ -? draw_text(s32, s32, s8 *, ?, f32, f32); /* extern */ -s32 get_string_width(s8 *); /* extern */ -? set_text_color(s32); /* extern */ -extern s8 D_802874F5; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +? func_800A79F4(s32, s8 *); /* extern */ static s8 *D_800E7AA4[9] = { "YOU PLACED", " st", @@ -11867,14 +11700,14 @@ static s8 *D_800E7AA4[9] = { " th", " th", " th", -}; /* const */ +}; void func_800A761C(struct_8018D9E0_entry *arg0) { s32 sp48; s32 sp44; s8 sp3D; s8 sp3C; - s8 sp38; + s32 sp38; s8 **sp34; f32 temp_f8; s32 temp_a0; @@ -11884,15 +11717,15 @@ void func_800A761C(struct_8018D9E0_entry *arg0) { sp38 = temp_a0; func_800A79F4(temp_a0, &sp3C); temp_f8 = (f32) (get_string_width(*D_800E7AA4) + 5) * 1.2f; - temp_v1 = &D_800E7AA4[(s32) sp38]; + temp_v1 = &D_800E7AA4[sp38]; sp34 = temp_v1; sp48 = (s32) (temp_f8 / 2.0f); sp44 = (s32) (((f32) (get_string_width(*temp_v1) + 5) * 1.2f) / 2.0f); - set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_2); + set_text_color(5); draw_text(arg0->column - sp44, arg0->row, *D_800E7AA4, 0, 1.2f, 1.2f); set_text_color((s32) gGlobalTimer % 3); draw_text(arg0->column + sp48, arg0->row, *sp34, 0, 1.2f, 1.2f); - convert_number_to_ascii((s32) sp38, &sp3C); + convert_number_to_ascii(sp38, &sp3C); func_800939C8((arg0->column + sp48) - 0x18, arg0->row, &sp3D, 0, 2.0f, 2.0f); } #else @@ -13472,11 +13305,9 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A9C40.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 06ada559d7a32fdab49fa2d619cdfa027615bcda -? func_800A91D8(s16, s16); /* extern */ -extern s8 D_8018EDF3; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern s8 gMainMenuSelectionDepth; -static ? D_800E70A0; /* unable to generate initializer; const */ +static ? D_800E70A0; /* unable to generate initializer */ void func_800A9D5C(struct_8018D9E0_entry *arg0) { void *sp1C; @@ -13485,7 +13316,7 @@ void func_800A9D5C(struct_8018D9E0_entry *arg0) { void *temp_v0_2; if (arg0->type == (D_8018EDF3 + 0xA)) { - arg0->priority = 0xA; + arg0->priority = 0x0A; } else { arg0->priority = 6; } @@ -13494,16 +13325,16 @@ void func_800A9D5C(struct_8018D9E0_entry *arg0) { case 2: temp_v0 = gMainMenuSelectionDepth; if ((temp_v0 == 7) || (temp_v0 == 8)) { - arg0->column = 0x80; - arg0->row = 0x3E; + arg0->column = 0x00000080; + arg0->row = 0x0000003E; return; } - func_800A91D8(0x80, 0x3E); + func_800A91D8(arg0, 0x00000080, 0x0000003E); return; case 3: temp_v0_2 = (arg0->type * 8) - 0x50 + &D_800E70A0; sp1C = temp_v0_2; - func_800A91D8(temp_v0_2->unk0, temp_v0_2->unk2); + func_800A91D8(arg0, (s32) temp_v0_2->unk0, (s32) temp_v0_2->unk2); if ((temp_v0_2->unk0 == arg0->column) && (temp_v0_2->unk2 == arg0->row)) { arg0->unk4 = 0; } @@ -13520,18 +13351,14 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A9D5C.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 06ada559d7a32fdab49fa2d619cdfa027615bcda -? func_800A91D8(struct_8018D9E0_entry *, s32, s32); /* extern */ -? func_800A92E8(struct_8018D9E0_entry *, s32); /* extern */ -void *func_800AAE68(s32, s8, s32); /* extern */ -extern s8 D_8018EDF3; +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +extern ? D_800E86AC; +extern ? gGameModeFromNumPlayersAndRowSelection; extern s8 gMainMenuSelectionDepth; -static ? D_800E70E8; /* unable to generate initializer; const */ -static ? gGameModeFromNumPlayersAndRowSelection; /* unable to generate initializer; const */ -static ? gGameModeRowSelectionForNumPlayers; /* unable to generate initializer; const */ +static ? D_800E70E8; /* unable to generate initializer */ void func_800A9E58(struct_8018D9E0_entry *arg0) { - void *sp2C; + struct_8018D9E0_entry *sp2C; s16 *sp28; s32 sp24; s32 sp20; @@ -13543,18 +13370,18 @@ void func_800A9E58(struct_8018D9E0_entry *arg0) { s32 temp_t5_2; s32 temp_t6; s32 temp_v1; + s32 var_a3; s8 temp_a2; s8 temp_t2; s8 temp_t5; s8 temp_t9; s8 temp_v0; - void *temp_v0_2; - void *temp_v0_3; - void *temp_v0_4; - void *temp_v0_5; + struct_8018D9E0_entry *temp_v0_2; + struct_8018D9E0_entry *temp_v0_3; + struct_8018D9E0_entry *temp_v0_4; + struct_8018D9E0_entry *temp_v0_5; void *temp_v1_2; void *temp_v1_4; - s32 phi_a3; temp_t6 = arg0->type; switch (temp_t6) { /* switch 1 */ @@ -13562,28 +13389,28 @@ void func_800A9E58(struct_8018D9E0_entry *arg0) { case 19: /* switch 1 */ case 20: /* switch 1 */ case 21: /* switch 1 */ - sp24 = 0x12; + sp24 = 0x00000012; sp1C = 2; sp20 = 0; break; case 22: /* switch 1 */ case 23: /* switch 1 */ - sp24 = 0x16; + var_a3 = 2; + sp24 = 0x00000016; sp1C = 2; - phi_a3 = 2; block_5: - sp20 = phi_a3; + sp20 = var_a3; break; case 24: /* switch 1 */ case 25: /* switch 1 */ - sp24 = 0x18; + var_a3 = 1; + sp24 = 0x00000018; sp1C = 1; - phi_a3 = 1; goto block_5; } temp_v0 = D_8018EDF3; temp_v1 = arg0->unk4; - temp_a2 = *(&gGameModeRowSelectionForNumPlayers + temp_v0); + temp_a2 = *(&D_800E86AC - 1 + temp_v0); temp_a1 = *(&gGameModeFromNumPlayersAndRowSelection + ((temp_v0 * 0xC) + (temp_a2 * 4))); switch (temp_v1) { /* switch 5; irregular */ case 0: /* switch 5 */ @@ -13599,19 +13426,19 @@ block_5: case 6: /* switch 2 */ arg0->visible = 1; temp_v0_2 = func_800AAE68(temp_a1, temp_a2, sp20); - arg0->column = temp_v0_2->unkC; + arg0->column = temp_v0_2->column; arg0->unk1C = 0; arg0->unk4 = 1; - arg0->row = (*(&gGameModeRowSelectionForNumPlayers + D_8018EDF3) * 0x12) + temp_v0_2->unk10 + 0x41; + arg0->row = (*(&D_800E86AC - 1 + D_8018EDF3) * 0x12) + temp_v0_2->row + 0x41; return; case 7: /* switch 2 */ case 8: /* switch 2 */ temp_v0_3 = func_800AAE68(temp_a1, temp_a2, sp20); - temp_v1_2 = (arg0->type * 8) + -(s32) (sp24 * 8) + &D_800E70E8; - arg0->column = temp_v0_3->unkC + temp_v1_2->unk0; - temp_t5_2 = (*(&gGameModeRowSelectionForNumPlayers + D_8018EDF3) * 0x12) + temp_v0_3->unk10 + temp_v1_2->unk2; + temp_v1_2 = (arg0->type * 8) + -(sp24 * 8) + &D_800E70E8; + arg0->column = temp_v0_3->column + temp_v1_2->unk0; + temp_t5_2 = (*(&D_800E86AC - 1 + D_8018EDF3) * 0x12) + temp_v0_3->row + temp_v1_2->unk2; arg0->row = temp_t5_2; - arg0->unk1C = temp_t5_2 - temp_v0_3->unk10; + arg0->unk1C = temp_t5_2 - temp_v0_3->row; arg0->visible = 1; arg0->unk4 = 2; return; @@ -13637,16 +13464,16 @@ block_37: arg0->unk4 = 0; } temp_v0_4 = func_800AAE68(temp_a1, temp_a2, sp20); - arg0->column = temp_v0_4->unkC + arg0->unk1C; - temp_v1_3 = (arg0->type * 8) + -(s32) (sp24 * 8) + &D_800E70E8; + arg0->column = temp_v0_4->column + arg0->unk1C; + temp_v1_3 = (arg0->type * 8) + -(sp24 * 8) + &D_800E70E8; sp2C = temp_v0_4; sp28 = temp_v1_3; - func_800A92E8(arg0, temp_v0_4->unkC + *temp_v1_3); - temp_t2_2 = arg0->column - sp2C->unkC; + func_800A92E8(arg0, temp_v0_4->column + *temp_v1_3); + temp_t2_2 = arg0->column - sp2C->column; arg0->unk1C = temp_t2_2; if (*temp_v1_3 == temp_t2_2) { arg0->unk4 = 2; - arg0->unk1C = arg0->row - sp2C->unk10; + arg0->unk1C = arg0->row - sp2C->row; return; } return; @@ -13673,13 +13500,13 @@ block_37: arg0->unk4 = 0; } temp_v0_5 = func_800AAE68(temp_a1, temp_a2, sp20); - temp_v1_4 = (arg0->type * 8) + -(s32) (sp24 * 8) + &D_800E70E8; - temp_a1_2 = temp_v0_5->unkC + temp_v1_4->unk0; + temp_v1_4 = (arg0->type * 8) + -(sp24 * 8) + &D_800E70E8; + temp_a1_2 = temp_v0_5->column + temp_v1_4->unk0; arg0->column = temp_a1_2; - arg0->row = temp_v0_5->unk10 + arg0->unk1C; + arg0->row = temp_v0_5->row + arg0->unk1C; sp2C = temp_v0_5; - func_800A91D8(arg0, temp_a1_2, (*(&gGameModeRowSelectionForNumPlayers + D_8018EDF3) * 0x12) + temp_v0_5->unk10 + temp_v1_4->unk2); - arg0->unk1C = arg0->row - sp2C->unk10; + func_800A91D8(arg0, temp_a1_2, (*(&D_800E86AC - 1 + D_8018EDF3) * 0x12) + temp_v0_5->row + temp_v1_4->unk2); + arg0->unk1C = arg0->row - sp2C->row; return; default: /* switch 4 */ arg0->visible = 0; @@ -13693,10 +13520,9 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A9E58.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 06ada559d7a32fdab49fa2d619cdfa027615bcda -? func_800A91D8(s16, s16); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern s8 gMainMenuSelectionDepth; -static ? D_800E70A0; /* unable to generate initializer; const */ +static ? D_800E70A0; /* unable to generate initializer */ void func_800AA280(struct_8018D9E0_entry *arg0) { s8 temp_v1; @@ -13704,66 +13530,64 @@ void func_800AA280(struct_8018D9E0_entry *arg0) { temp_v1 = gMainMenuSelectionDepth; temp_v0 = (arg0->type * 8) - 0x50 + &D_800E70A0; - if ((temp_v1 == CONFIRM_OK_SELECTION_FROM_BACK_OUT) || (temp_v1 == TIME_TRAILS_DATA_SELECTION_FROM_BACK_OUT)) { + if ((temp_v1 == 7) || (temp_v1 == 8)) { arg0->column = (s32) temp_v0->unk0; arg0->row = (s32) temp_v0->unk2; return; } - func_800A91D8(temp_v0->unk0, temp_v0->unk2); + func_800A91D8(arg0, (s32) temp_v0->unk0, (s32) temp_v0->unk2); } #else GLOBAL_ASM("asm/non_matchings/code_80091750/func_800AA280.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 06ada559d7a32fdab49fa2d619cdfa027615bcda +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc s32 check_for_controller_pak(?); /* extern */ -s32 osPfsFindFile(? *, u16, s32, ? *, ? *, ? *); /* extern */ -s32 osPfsFreeBlocks(? *, s32 *); /* extern */ -s32 osPfsInit(OSMesgQueue *, ? *, ?); /* extern */ -s32 osPfsNumFiles(? *, s32 *, s32 *); /* extern */ -extern ? D_8018E868; +extern ? D_800E86AC; +extern u16 D_800E86F0; +extern u32 D_800E86F4; +extern s8 D_800E86F8; +extern u8 D_800F2E64; +extern u8 D_800F2E74; +extern OSPfs D_8018E868; extern s32 D_8018EB78; extern s32 D_8018EB7C; -extern ? D_8018EB84; -extern s8 D_8018EDF3; +extern s32 D_8018EB84; extern s8 gMainMenuSelectionDepth; -static u16 D_800E86F0; /* unable to generate initializer; const */ -static s32 D_800E86F4 = 0x4E4B544A; /* const */ -static s8 D_800E86F8 = 0; /* const */ -static ? D_800F2E64; /* unable to generate initializer; const */ -static ? D_800F2E74; /* unable to generate initializer; const */ -static ? gGameModeRowSelectionForNumPlayers; /* unable to generate initializer; const */ void func_800AA2EC(struct_8018D9E0_entry *arg0) { s32 sp20; s32 temp_v0_2; s32 temp_v0_3; + s32 var_t1; s8 temp_t6; s8 temp_v0; - s32 phi_t1; temp_t6 = gMainMenuSelectionDepth; - phi_t1 = 0; + var_t1 = 0; switch (temp_t6) { - case OPTIONS_SELECTION: - case DATA_SELECTION: - case PLAYER_NUM_SELECTION: - case GAME_MODE_SELECTION: + case 1: + case 2: + case 3: + case 4: arg0->unk4 = 0; return; - case GAME_MODE_CC_OR_TIME_TRIALS_OPTIONS_SELECTION: - case CONFIRM_OK_SELECTION: - case CONFIRM_OK_SELECTION_FROM_BACK_OUT: - case TIME_TRAILS_DATA_SELECTION_FROM_BACK_OUT: - if ((arg0->unk4 == 0) && (temp_v0 = D_8018EDF3, (temp_v0 == 1)) && (*(&gGameModeRowSelectionForNumPlayers + temp_v0) == 1)) { + case 5: + case 6: + case 7: + case 8: + if ((arg0->unk4 == 0) && (temp_v0 = D_8018EDF3, (temp_v0 == 1)) && (*(&D_800E86AC - 1 + temp_v0) == 1)) { if (D_800E86F8 != 0) { sp20 = 0; temp_v0_2 = osPfsFindFile(&D_8018E868, D_800E86F0, D_800E86F4, &D_800F2E64, &D_800F2E74, &D_8018EB84); + var_t1 = 0; switch (temp_v0_2) { /* switch 1; irregular */ + case 5: /* switch 1 */ + break; case 0: /* switch 1 */ arg0->unk4 = 1; - phi_t1 = 1; + var_t1 = 1; break; default: /* switch 1 */ case 2: /* switch 1 */ @@ -13771,8 +13595,7 @@ void func_800AA2EC(struct_8018D9E0_entry *arg0) { break; } } - case 5: /* switch 1 */ - if (phi_t1 == 0) { + if (var_t1 == 0) { if (D_800E86F8 == 0) { if (check_for_controller_pak(0) == 0) { arg0->unk4 = 2; @@ -13782,8 +13605,8 @@ void func_800AA2EC(struct_8018D9E0_entry *arg0) { if (temp_v0_3 != 0) { if (temp_v0_3 != 1) { if (temp_v0_3 != 4) { - if (temp_v0_3 != 0xA) { - if (temp_v0_3 == 0xB) { + if (temp_v0_3 != 0x0000000A) { + if (temp_v0_3 == 0x0000000B) { goto block_22; } goto block_24; @@ -14446,9 +14269,8 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_800AB098.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 06ada559d7a32fdab49fa2d619cdfa027615bcda -? func_800A91D8(s16, s16); /* extern */ -static ? D_800E7148; /* unable to generate initializer; const */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +static ? D_800E7148; /* unable to generate initializer */ void func_800AB164(struct_8018D9E0_entry *arg0) { void *sp1C; @@ -14457,7 +14279,7 @@ void func_800AB164(struct_8018D9E0_entry *arg0) { void *temp_v0_2; if (arg0->type == (gCupSelection + 0x53)) { - arg0->priority = 0xA; + arg0->priority = 0x0A; } else { arg0->priority = 4; } @@ -14469,12 +14291,12 @@ void func_800AB164(struct_8018D9E0_entry *arg0) { arg0->row = (s32) temp_v0->unk2; return; case 2: - func_800A91D8(0x80, 0x3B); + func_800A91D8(arg0, 0x00000080, 0x0000003B); return; case 3: temp_v0_2 = (arg0->type * 8) - 0x298 + &D_800E7148; sp1C = temp_v0_2; - func_800A91D8(temp_v0_2->unk0, temp_v0_2->unk2); + func_800A91D8(arg0, (s32) temp_v0_2->unk0, (s32) temp_v0_2->unk2); if ((temp_v0_2->unk0 == arg0->column) && (temp_v0_2->unk2 == arg0->row)) { arg0->unk4 = 0; } @@ -14718,10 +14540,9 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_800AB314.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 06ada559d7a32fdab49fa2d619cdfa027615bcda -? func_800A9208(s16); /* extern */ -static ? D_800E7248; /* unable to generate initializer; const */ -static ? D_800E7258; /* unable to generate initializer; const */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +static ? D_800E7248; /* unable to generate initializer */ +static ? D_800E7258; /* unable to generate initializer */ void func_800AB904(struct_8018D9E0_entry *arg0) { s16 temp_a1; @@ -14733,7 +14554,7 @@ void func_800AB904(struct_8018D9E0_entry *arg0) { case 1: temp_a1 = *((arg0->type * 8) - 0x328 + &D_800E7248); if (temp_a1 != arg0->column) { - func_800A9208(temp_a1); + func_800A9208(arg0, (s32) temp_a1); return; } return; @@ -14741,7 +14562,7 @@ void func_800AB904(struct_8018D9E0_entry *arg0) { case 3: temp_a1_2 = *((arg0->type * 8) - 0x328 + &D_800E7258); if (temp_a1_2 != arg0->column) { - func_800A9208(temp_a1_2); + func_800A9208(arg0, (s32) temp_a1_2); } break; } @@ -14923,8 +14744,7 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_800ABC38.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 06ada559d7a32fdab49fa2d619cdfa027615bcda -? func_800A9208(struct_8018D9E0_entry *, s32); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc s8 *D_800E7500[9] = { "mushroom cup", "flower cup", @@ -14935,7 +14755,7 @@ s8 *D_800E7500[9] = { "flower cup", "star cup", "special cup", -}; /* const */ +}; void func_800ABCF4(struct_8018D9E0_entry *arg0) { f64 temp_f0; @@ -15669,26 +15489,12 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_800ACC50.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 06ada559d7a32fdab49fa2d619cdfa027615bcda -? func_800A9208(struct_8018D9E0_entry *, s16, s32); /* extern */ -? func_800A9278(struct_8018D9E0_entry *, s16); /* extern */ -? func_800C90F4(s32, s32, s32); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc ? func_800CA24C(s32); /* extern */ extern ? D_8018DEE4; -extern s8 D_8018EDF3; extern s32 gPlayerWinningIndex; -static ? D_800E72F8; /* unable to generate initializer; const */ -static ? D_800E7300; /* unable to generate initializer; const */ -static MkAnimation *gCharacterCelebrateAnimation[8] = { - D_02006718, - D_02006900, - D_02006CD0, - D_02006EB8, - D_020070A0, - D_02007290, - D_02007478, - D_02006AE8, -}; /* const */ +static ? D_800E72F8; /* unable to generate initializer */ +static ? D_800E7300; /* unable to generate initializer */ static MkAnimation *D_800E83A0[8] = { D_02006778, D_02006960, @@ -15698,11 +15504,29 @@ static MkAnimation *D_800E83A0[8] = { D_020072F0, D_020074D8, D_02006B48, -}; /* const */ -static s32 D_800E8440[8] = { 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA }; /* const */ -static ? D_800E85F7; /* unable to generate initializer; const */ +}; +static s32 D_800E8440[8] = { + 0x0000000A, + 0x0000000A, + 0x0000000A, + 0x0000000A, + 0x0000000A, + 0x0000000A, + 0x0000000A, + 0x0000000A, +}; +static ? D_800E85F7; /* unable to generate initializer */ +static MkAnimation *gCharacterCelebrateAnimation[8] = { + D_02006718, + D_02006900, + D_02006CD0, + D_02006EB8, + D_020070A0, + D_02007290, + D_02007478, + D_02006AE8, +}; static ? D_800EFD64; /* unable to generate initializer; const */ -s8 gCharacterSelections[4]; /* unable to generate initializer; const */ void func_800ACF40(struct_8018D9E0_entry *arg0) { s16 *sp3C; @@ -15716,8 +15540,8 @@ void func_800ACF40(struct_8018D9E0_entry *arg0) { s32 temp_t7_2; s32 temp_v0; s32 temp_v0_3; + s32 var_v1; s8 temp_a1; - s32 phi_v1; temp_v0 = arg0->type; temp_t7 = arg0->unk4; @@ -15732,8 +15556,8 @@ void func_800ACF40(struct_8018D9E0_entry *arg0) { case 1: temp_v0_2 = ((D_8018EDF3 << 5) + (temp_a2 * 8)) - 0x40 + &D_800E7300; sp3C = temp_v0_2; - func_800A9208(arg0, *temp_v0_2, temp_a2); - func_800A9278(arg0, sp3C->unk2); + func_800A9208(arg0, (s32) *temp_v0_2); + func_800A9278(arg0, (s32) sp3C->unk2); if (sp3C->unk0 == arg0->column) { arg0->unk4 = 2; arg0->unk20 = 0; @@ -15743,12 +15567,12 @@ void func_800ACF40(struct_8018D9E0_entry *arg0) { return; case 2: temp_v0_3 = gModeSelection; - phi_v1 = 0; + var_v1 = 0; switch (temp_v0_3) { /* switch 1; irregular */ case 2: /* switch 1 */ if (gPlayerPositions[temp_a2] != 0) { block_11: - phi_v1 = 1; + var_v1 = 1; } break; case 3: /* switch 1 */ @@ -15757,20 +15581,20 @@ block_11: } break; } - if (phi_v1 == 0) { + if (var_v1 == 0) { temp_t7_2 = arg0->unk20 + 1; arg0->unk20 = temp_t7_2; if (temp_t7_2 >= 0x1F) { sp34 = (s32) temp_a1; sp38 = temp_a2; - if (find_8018D9E0_entry_dupe(0xB0)->unk4 >= 2) { + if (find_8018D9E0_entry_dupe(0x000000B0)->unk4 >= 2) { sp38 = temp_a2; func_8009A640(arg0->D_8018DEE0_index, 0, temp_a2, segmented_to_virtual_dupe(gCharacterCelebrateAnimation[temp_a1])); arg0->unk4 = 3; temp_a0 = temp_a2 & 0xFF; sp24 = temp_a0; func_800CA24C(temp_a0); - func_800C90F4(temp_a0, (gCharacterSelections[temp_a2] * 0x10) + 0x29008007, temp_a2); + func_800C90F4((u8) temp_a0, (gCharacterSelections[temp_a2] * 0x10) + 0x29008007); return; } } @@ -16649,10 +16473,38 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_800AE218.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 06ada559d7a32fdab49fa2d619cdfa027615bcda -? func_800A9208(struct_8018D9E0_entry *, ?); /* extern */ -? func_800A94C8(struct_8018D9E0_entry *, ?, ?); /* extern */ -? func_800C90F4(?, s32); /* extern */ +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +static s8 D_800E7780[0x1D] = { + 0x4E, + 0x4F, + 0x57, + 0x2D, + 0x4D, + 0x45, + 0x45, + 0x54, + 0x20, + 0x54, + 0x48, + 0x45, + 0x20, + 0x43, + 0x4F, + 0x55, + 0x52, + 0x53, + 0x45, + 0x20, + 0x47, + 0x48, + 0x4F, + 0x53, + 0x54, + 0x21, + 0x21, + 0x21, + 0, +}; void func_800AEC54(struct_8018D9E0_entry *arg0) { s32 temp_t5; @@ -16663,13 +16515,13 @@ void func_800AEC54(struct_8018D9E0_entry *arg0) { switch (temp_t6) { case 0: arg0->column = (get_string_width("NOW-MEET THE COURSE GHOST!!!") / 2) + 0x140; - arg0->row = 0xDA; + arg0->row = 0x000000DA; arg0->unk4 = 1; - func_800C90F4(0, (D_80162DE4 * 0x10) + 0x29008001); + func_800C90F4(0U, (D_80162DE4 * 0x10) + 0x29008001); return; case 1: - func_800A9208(arg0, 0xA0); - if (arg0->column == 0xA0) { + func_800A9208(arg0, 0x000000A0); + if (arg0->column == 0x000000A0) { arg0->unk4 = 2; arg0->unk1C = 0; return; @@ -16693,8 +16545,8 @@ void func_800AEC54(struct_8018D9E0_entry *arg0) { return; } case 3: - func_800A94C8(arg0, 0xA0, -1); - if (((arg0->column + 0x14) == -(s32) (get_string_width("NOW-MEET THE COURSE GHOST!!!") / 2)) && (arg0->unk4 == 3)) { + func_800A94C8(arg0, 0x000000A0, -1); + if (((arg0->column + 0x14) == -(get_string_width("NOW-MEET THE COURSE GHOST!!!") / 2)) && (arg0->unk4 == 3)) { arg0->unk4 = 4; } break; @@ -17075,11 +16927,7 @@ void func_800AF480(struct_8018D9E0_entry *arg0) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 06ada559d7a32fdab49fa2d619cdfa027615bcda -? func_800A9208(struct_8018D9E0_entry *, s32); /* extern */ -? func_800A94C8(struct_8018D9E0_entry *, s32, ?); /* extern */ -extern ? D_802854B0; - +//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc void func_800AF4DC(struct_8018D9E0_entry *arg0) { struct_802850C0_entry *sp20; f64 temp_f0; @@ -17098,7 +16946,7 @@ void func_800AF4DC(struct_8018D9E0_entry *arg0) { arg0->unk4 = 1; arg0->column = (s32) temp_v1->startingColumn; sp20 = temp_v1; - arg0->unk20 = (s32) ((((f32) get_string_width(*(&D_802854B0 + (temp_v0 * 4))) * temp_v1->textScaling) / 2.0f) + (f32) temp_v1->columnExtra); + arg0->unk20 = (s32) ((((f32) get_string_width(D_802854B0[temp_v0]) * temp_v1->textScaling) / 2.0f) + (f32) temp_v1->columnExtra); /* fallthrough */ case 1: func_800A9208(arg0, arg0->unk20); diff --git a/src/math_util_2.c b/src/math_util_2.c index b5bf241b8..61c5af1e3 100644 --- a/src/math_util_2.c +++ b/src/math_util_2.c @@ -5,6 +5,7 @@ #include "main.h" #include "variables.h" #include "math_util.h" +#include "objects.h" #include "memory.h" @@ -790,8 +791,6 @@ void func_80042760(Mat4 arg0, Vec3f arg1, Vec3f arg2, f32 arg3) { arg0[3][3] = 1.0f; } -extern struct_80165C18_entry D_80165C18[]; - /** * @brief Tried to put the definitions in the declares. However, sp3C wants to be at the top. * Something may be possible with some padding. Couldn't find a way though. So we get big mess. diff --git a/src/math_util_2.h b/src/math_util_2.h index 8a6e8cc04..f4dcced42 100644 --- a/src/math_util_2.h +++ b/src/math_util_2.h @@ -87,7 +87,4 @@ extern s8 D_80165840[]; extern s8 D_801658FE; extern s32 D_8018D120; -// This is also used in 80071F00 -extern struct_80165C18_entry D_80165C18[]; - #endif // MATH_UTIL_2_H diff --git a/src/skybox_and_splitscreen.c b/src/skybox_and_splitscreen.c index 0cb16c23a..edbf371ec 100644 --- a/src/skybox_and_splitscreen.c +++ b/src/skybox_and_splitscreen.c @@ -283,8 +283,7 @@ extern s32 D_800DC5D8; */ void select_framebuffer(void) { gDPSetColorImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, SCREEN_WIDTH, VIRTUAL_TO_PHYSICAL(gPhysicalFramebuffers[sRenderingFramebuffer])); - gDPSetFillColor(gDisplayListHead++, ((D_800DC5D0 << 8 & 0xF800 | (D_800DC5D4 * 8) & 0x7C0 | D_800DC5D8 >> 2 & 0x3E | 1) << 16) | - (D_800DC5D0 << 8 & 0xF800 | (D_800DC5D4 * 8) & 0x7C0 | (D_800DC5D8 >> 2) & 0x3E | 1)); + gDPSetFillColor(gDisplayListHead++, GPACK_RGBA5551(D_800DC5D0, D_800DC5D4, D_800DC5D8, 1) << 0x10 | GPACK_RGBA5551(D_800DC5D0, D_800DC5D4, D_800DC5D8, 1)); gDPPipeSync(gDisplayListHead++); gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT); gDPFillRectangle(gDisplayListHead++, 0, 0, SCREEN_WIDTH-1, SCREEN_HEIGHT-1);