From 04e9e00227b763cce40e300f40efc18fa76f2904 Mon Sep 17 00:00:00 2001 From: Tyler McGavran Date: Wed, 9 Aug 2023 21:16:00 -0400 Subject: [PATCH] Some matches in code_80086E70 (#361) Signed-off-by: Taggerung --- .../code_80086E70/func_800880E4.s | 29 -- .../code_80086E70/func_80088178.s | 47 --- .../code_80086E70/func_800882B0.s | 47 --- .../code_80086E70/func_8008A920.s | 39 -- .../code_80086E70/func_8008A9B8.s | 36 -- .../code_80086E70/func_8008AB10.s | 47 --- .../code_80086E70/func_8008AE9C.s | 82 ---- .../code_80086E70/func_8008B038.s | 82 ---- .../code_80086E70/func_8008BF64.s | 24 -- include/objects.h | 4 +- src/code_80086E70.c | 391 ++++++------------ src/code_80086E70.h | 24 +- 12 files changed, 148 insertions(+), 704 deletions(-) delete mode 100644 asm/non_matchings/code_80086E70/func_800880E4.s delete mode 100644 asm/non_matchings/code_80086E70/func_80088178.s delete mode 100644 asm/non_matchings/code_80086E70/func_800882B0.s delete mode 100644 asm/non_matchings/code_80086E70/func_8008A920.s delete mode 100644 asm/non_matchings/code_80086E70/func_8008A9B8.s delete mode 100644 asm/non_matchings/code_80086E70/func_8008AB10.s delete mode 100644 asm/non_matchings/code_80086E70/func_8008AE9C.s delete mode 100644 asm/non_matchings/code_80086E70/func_8008B038.s delete mode 100644 asm/non_matchings/code_80086E70/func_8008BF64.s diff --git a/asm/non_matchings/code_80086E70/func_800880E4.s b/asm/non_matchings/code_80086E70/func_800880E4.s deleted file mode 100644 index afe1813b6..000000000 --- a/asm/non_matchings/code_80086E70/func_800880E4.s +++ /dev/null @@ -1,29 +0,0 @@ -glabel func_800880E4 -/* 088CE4 800880E4 000470C0 */ sll $t6, $a0, 3 -/* 088CE8 800880E8 01C47023 */ subu $t6, $t6, $a0 -/* 088CEC 800880EC 000E7140 */ sll $t6, $t6, 5 -/* 088CF0 800880F0 3C028016 */ lui $v0, %hi(D_80165C94) # 0x8016 -/* 088CF4 800880F4 004E1021 */ addu $v0, $v0, $t6 -/* 088CF8 800880F8 3C058016 */ lui $a1, %hi(D_80165760) # $a1, 0x8016 -/* 088CFC 800880FC 3C068016 */ lui $a2, %hi(D_80165770) # $a2, 0x8016 -/* 088D00 80088100 3C078016 */ lui $a3, %hi(D_80165780) # $a3, 0x8016 -/* 088D04 80088104 3C038016 */ lui $v1, %hi(D_80165784) # $v1, 0x8016 -/* 088D08 80088108 8C425C94 */ lw $v0, %lo(D_80165C94)($v0) # 0x5c94($v0) -/* 088D0C 8008810C 24635784 */ addiu $v1, %lo(D_80165784) # addiu $v1, $v1, 0x5784 -/* 088D10 80088110 24E75780 */ addiu $a3, %lo(D_80165780) # addiu $a3, $a3, 0x5780 -/* 088D14 80088114 24C65770 */ addiu $a2, %lo(D_80165770) # addiu $a2, $a2, 0x5770 -/* 088D18 80088118 24A55760 */ addiu $a1, %lo(D_80165760) # addiu $a1, $a1, 0x5760 -.L8008811C: -/* 088D1C 8008811C 844F0000 */ lh $t7, ($v0) -/* 088D20 80088120 24E70002 */ addiu $a3, $a3, 2 -/* 088D24 80088124 24A50002 */ addiu $a1, $a1, 2 -/* 088D28 80088128 A4AFFFFE */ sh $t7, -2($a1) -/* 088D2C 8008812C 84580002 */ lh $t8, 2($v0) -/* 088D30 80088130 24C60002 */ addiu $a2, $a2, 2 -/* 088D34 80088134 24420008 */ addiu $v0, $v0, 8 -/* 088D38 80088138 A4D8FFFE */ sh $t8, -2($a2) -/* 088D3C 8008813C 8459FFFC */ lh $t9, -4($v0) -/* 088D40 80088140 14E3FFF6 */ bne $a3, $v1, .L8008811C -/* 088D44 80088144 A4F9FFFE */ sh $t9, -2($a3) -/* 088D48 80088148 03E00008 */ jr $ra -/* 088D4C 8008814C 00000000 */ nop diff --git a/asm/non_matchings/code_80086E70/func_80088178.s b/asm/non_matchings/code_80086E70/func_80088178.s deleted file mode 100644 index 416db3802..000000000 --- a/asm/non_matchings/code_80086E70/func_80088178.s +++ /dev/null @@ -1,47 +0,0 @@ -glabel func_80088178 -/* 088D78 80088178 3C028016 */ lui $v0, %hi(D_80165760) # $v0, 0x8016 -/* 088D7C 8008817C 3C038016 */ lui $v1, %hi(D_80165780) # $v1, 0x8016 -/* 088D80 80088180 24425760 */ addiu $v0, %lo(D_80165760) # addiu $v0, $v0, 0x5760 -/* 088D84 80088184 844E0002 */ lh $t6, 2($v0) -/* 088D88 80088188 844F0000 */ lh $t7, ($v0) -/* 088D8C 8008818C 24635780 */ addiu $v1, %lo(D_80165780) # addiu $v1, $v1, 0x5780 -/* 088D90 80088190 84790002 */ lh $t9, 2($v1) -/* 088D94 80088194 84680000 */ lh $t0, ($v1) -/* 088D98 80088198 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 088D9C 8008819C 01CFC023 */ subu $t8, $t6, $t7 -/* 088DA0 800881A0 44989000 */ mtc1 $t8, $f18 -/* 088DA4 800881A4 03284823 */ subu $t1, $t9, $t0 -/* 088DA8 800881A8 44898000 */ mtc1 $t1, $f16 -/* 088DAC 800881AC 46809320 */ cvt.s.w $f12, $f18 -/* 088DB0 800881B0 AFBF0014 */ sw $ra, 0x14($sp) -/* 088DB4 800881B4 AFA40018 */ sw $a0, 0x18($sp) -/* 088DB8 800881B8 AFA5001C */ sw $a1, 0x1c($sp) -/* 088DBC 800881BC 0C0ADE0C */ jal atan2s -/* 088DC0 800881C0 468083A0 */ cvt.s.w $f14, $f16 -/* 088DC4 800881C4 8FAA0018 */ lw $t2, 0x18($sp) -/* 088DC8 800881C8 3C0C8016 */ lui $t4, %hi(D_80165C18) # $t4, 0x8016 -/* 088DCC 800881CC 258C5C18 */ addiu $t4, %lo(D_80165C18) # addiu $t4, $t4, 0x5c18 -/* 088DD0 800881D0 000A58C0 */ sll $t3, $t2, 3 -/* 088DD4 800881D4 016A5823 */ subu $t3, $t3, $t2 -/* 088DD8 800881D8 000B5940 */ sll $t3, $t3, 5 -/* 088DDC 800881DC 016C1821 */ addu $v1, $t3, $t4 -/* 088DE0 800881E0 946400C0 */ lhu $a0, 0xc0($v1) -/* 088DE4 800881E4 8FA6001C */ lw $a2, 0x1c($sp) -/* 088DE8 800881E8 00442823 */ subu $a1, $v0, $a0 -/* 088DEC 800881EC 00057C00 */ sll $t7, $a1, 0x10 -/* 088DF0 800881F0 000F2C03 */ sra $a1, $t7, 0x10 -/* 088DF4 800881F4 18A00004 */ blez $a1, .L80088208 -/* 088DF8 800881F8 0006CA00 */ sll $t9, $a2, 8 -/* 088DFC 800881FC 00994021 */ addu $t0, $a0, $t9 -/* 088E00 80088200 10000005 */ b .L80088218 -/* 088E04 80088204 A46800C0 */ sh $t0, 0xc0($v1) -.L80088208: -/* 088E08 80088208 04A10003 */ bgez $a1, .L80088218 -/* 088E0C 8008820C 00064A00 */ sll $t1, $a2, 8 -/* 088E10 80088210 00895023 */ subu $t2, $a0, $t1 -/* 088E14 80088214 A46A00C0 */ sh $t2, 0xc0($v1) -.L80088218: -/* 088E18 80088218 8FBF0014 */ lw $ra, 0x14($sp) -/* 088E1C 8008821C 27BD0018 */ addiu $sp, $sp, 0x18 -/* 088E20 80088220 03E00008 */ jr $ra -/* 088E24 80088224 00000000 */ nop diff --git a/asm/non_matchings/code_80086E70/func_800882B0.s b/asm/non_matchings/code_80086E70/func_800882B0.s deleted file mode 100644 index f1e7dfbce..000000000 --- a/asm/non_matchings/code_80086E70/func_800882B0.s +++ /dev/null @@ -1,47 +0,0 @@ -glabel func_800882B0 -/* 088EB0 800882B0 3C188016 */ lui $t8, %hi(D_80165762) # $t8, 0x8016 -/* 088EB4 800882B4 87185762 */ lh $t8, %lo(D_80165762)($t8) -/* 088EB8 800882B8 000470C0 */ sll $t6, $a0, 3 -/* 088EBC 800882BC 01C47023 */ subu $t6, $t6, $a0 -/* 088EC0 800882C0 44982000 */ mtc1 $t8, $f4 -/* 088EC4 800882C4 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 088EC8 800882C8 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 088ECC 800882CC 468021A0 */ cvt.s.w $f6, $f4 -/* 088ED0 800882D0 000E7140 */ sll $t6, $t6, 5 -/* 088ED4 800882D4 01CF3021 */ addu $a2, $t6, $t7 -/* 088ED8 800882D8 C4C80028 */ lwc1 $f8, 0x28($a2) -/* 088EDC 800882DC 3C098016 */ lui $t1, %hi(D_80165772) # $t1, 0x8016 -/* 088EE0 800882E0 85295772 */ lh $t1, %lo(D_80165772)($t1) -/* 088EE4 800882E4 46083001 */ sub.s $f0, $f6, $f8 -/* 088EE8 800882E8 3C0B8016 */ lui $t3, %hi(D_80165782) # $t3, 0x8016 -/* 088EEC 800882EC 44899000 */ mtc1 $t1, $f18 -/* 088EF0 800882F0 856B5782 */ lh $t3, %lo(D_80165782)($t3) -/* 088EF4 800882F4 46000282 */ mul.s $f10, $f0, $f0 -/* 088EF8 800882F8 C4C6002C */ lwc1 $f6, 0x2c($a2) -/* 088EFC 800882FC 00A50019 */ multu $a1, $a1 -/* 088F00 80088300 00001825 */ move $v1, $zero -/* 088F04 80088304 46809120 */ cvt.s.w $f4, $f18 -/* 088F08 80088308 4600540D */ trunc.w.s $f16, $f10 -/* 088F0C 8008830C 00007812 */ mflo $t7 -/* 088F10 80088310 46062081 */ sub.s $f2, $f4, $f6 -/* 088F14 80088314 44028000 */ mfc1 $v0, $f16 -/* 088F18 80088318 448B8000 */ mtc1 $t3, $f16 -/* 088F1C 8008831C C4C40030 */ lwc1 $f4, 0x30($a2) -/* 088F20 80088320 46021202 */ mul.s $f8, $f2, $f2 -/* 088F24 80088324 468084A0 */ cvt.s.w $f18, $f16 -/* 088F28 80088328 4600428D */ trunc.w.s $f10, $f8 -/* 088F2C 8008832C 46049301 */ sub.s $f12, $f18, $f4 -/* 088F30 80088330 44075000 */ mfc1 $a3, $f10 -/* 088F34 80088334 460C6182 */ mul.s $f6, $f12, $f12 -/* 088F38 80088338 00476821 */ addu $t5, $v0, $a3 -/* 088F3C 8008833C 4600320D */ trunc.w.s $f8, $f6 -/* 088F40 80088340 44084000 */ mfc1 $t0, $f8 -/* 088F44 80088344 00000000 */ nop -/* 088F48 80088348 01A87021 */ addu $t6, $t5, $t0 -/* 088F4C 8008834C 01CFC023 */ subu $t8, $t6, $t7 -/* 088F50 80088350 1F000002 */ bgtz $t8, .L8008835C -/* 088F54 80088354 00000000 */ nop -/* 088F58 80088358 24030001 */ li $v1, 1 -.L8008835C: -/* 088F5C 8008835C 03E00008 */ jr $ra -/* 088F60 80088360 00601025 */ move $v0, $v1 diff --git a/asm/non_matchings/code_80086E70/func_8008A920.s b/asm/non_matchings/code_80086E70/func_8008A920.s deleted file mode 100644 index 1092daf7e..000000000 --- a/asm/non_matchings/code_80086E70/func_8008A920.s +++ /dev/null @@ -1,39 +0,0 @@ -glabel func_8008A920 -/* 08B520 8008A920 000470C0 */ sll $t6, $a0, 3 -/* 08B524 8008A924 01C47023 */ subu $t6, $t6, $a0 -/* 08B528 8008A928 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 08B52C 8008A92C 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 08B530 8008A930 000E7140 */ sll $t6, $t6, 5 -/* 08B534 8008A934 01CF1821 */ addu $v1, $t6, $t7 -/* 08B538 8008A938 8C62007C */ lw $v0, 0x7c($v1) -/* 08B53C 8008A93C 84580008 */ lh $t8, 8($v0) -/* 08B540 8008A940 84590000 */ lh $t9, ($v0) -/* 08B544 8008A944 84490006 */ lh $t1, 6($v0) -/* 08B548 8008A948 03194023 */ subu $t0, $t8, $t9 -/* 08B54C 8008A94C 44882000 */ mtc1 $t0, $f4 -/* 08B550 8008A950 44894000 */ mtc1 $t1, $f8 -/* 08B554 8008A954 468021A0 */ cvt.s.w $f6, $f4 -/* 08B558 8008A958 468042A0 */ cvt.s.w $f10, $f8 -/* 08B55C 8008A95C 460A3403 */ div.s $f16, $f6, $f10 -/* 08B560 8008A960 E4700038 */ swc1 $f16, 0x38($v1) -/* 08B564 8008A964 844B0002 */ lh $t3, 2($v0) -/* 08B568 8008A968 844A000A */ lh $t2, 0xa($v0) -/* 08B56C 8008A96C 844D0006 */ lh $t5, 6($v0) -/* 08B570 8008A970 014B6023 */ subu $t4, $t2, $t3 -/* 08B574 8008A974 448C9000 */ mtc1 $t4, $f18 -/* 08B578 8008A978 448D4000 */ mtc1 $t5, $f8 -/* 08B57C 8008A97C 46809120 */ cvt.s.w $f4, $f18 -/* 08B580 8008A980 468041A0 */ cvt.s.w $f6, $f8 -/* 08B584 8008A984 46062283 */ div.s $f10, $f4, $f6 -/* 08B588 8008A988 E46A003C */ swc1 $f10, 0x3c($v1) -/* 08B58C 8008A98C 844F0004 */ lh $t7, 4($v0) -/* 08B590 8008A990 844E000C */ lh $t6, 0xc($v0) -/* 08B594 8008A994 84590006 */ lh $t9, 6($v0) -/* 08B598 8008A998 01CFC023 */ subu $t8, $t6, $t7 -/* 08B59C 8008A99C 44988000 */ mtc1 $t8, $f16 -/* 08B5A0 8008A9A0 44994000 */ mtc1 $t9, $f8 -/* 08B5A4 8008A9A4 468084A0 */ cvt.s.w $f18, $f16 -/* 08B5A8 8008A9A8 46804120 */ cvt.s.w $f4, $f8 -/* 08B5AC 8008A9AC 46049183 */ div.s $f6, $f18, $f4 -/* 08B5B0 8008A9B0 03E00008 */ jr $ra -/* 08B5B4 8008A9B4 E4660040 */ swc1 $f6, 0x40($v1) diff --git a/asm/non_matchings/code_80086E70/func_8008A9B8.s b/asm/non_matchings/code_80086E70/func_8008A9B8.s deleted file mode 100644 index 0eeabf70b..000000000 --- a/asm/non_matchings/code_80086E70/func_8008A9B8.s +++ /dev/null @@ -1,36 +0,0 @@ -glabel func_8008A9B8 -/* 08B5B8 8008A9B8 000470C0 */ sll $t6, $a0, 3 -/* 08B5BC 8008A9BC 01C47023 */ subu $t6, $t6, $a0 -/* 08B5C0 8008A9C0 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 08B5C4 8008A9C4 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 08B5C8 8008A9C8 000E7140 */ sll $t6, $t6, 5 -/* 08B5CC 8008A9CC 01CF1021 */ addu $v0, $t6, $t7 -/* 08B5D0 8008A9D0 8C58007C */ lw $t8, 0x7c($v0) -/* 08B5D4 8008A9D4 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 08B5D8 8008A9D8 AFBF0014 */ sw $ra, 0x14($sp) -/* 08B5DC 8008A9DC 27190008 */ addiu $t9, $t8, 8 -/* 08B5E0 8008A9E0 AC59007C */ sw $t9, 0x7c($v0) -/* 08B5E4 8008A9E4 87290006 */ lh $t1, 6($t9) -/* 08B5E8 8008A9E8 240A2710 */ li $t2, 10000 -/* 08B5EC 8008A9EC 03204025 */ move $t0, $t9 -/* 08B5F0 8008A9F0 0149001A */ div $zero, $t2, $t1 -/* 08B5F4 8008A9F4 00005812 */ mflo $t3 -/* 08B5F8 8008A9F8 A44B009A */ sh $t3, 0x9a($v0) -/* 08B5FC 8008A9FC 15200002 */ bnez $t1, .L8008AA08 -/* 08B600 8008AA00 00000000 */ nop -/* 08B604 8008AA04 0007000D */ break 7 -.L8008AA08: -/* 08B608 8008AA08 2401FFFF */ li $at, -1 -/* 08B60C 8008AA0C 15210004 */ bne $t1, $at, .L8008AA20 -/* 08B610 8008AA10 3C018000 */ lui $at, 0x8000 -/* 08B614 8008AA14 15410002 */ bne $t2, $at, .L8008AA20 -/* 08B618 8008AA18 00000000 */ nop -/* 08B61C 8008AA1C 0006000D */ break 6 -.L8008AA20: -/* 08B620 8008AA20 A4400098 */ sh $zero, 0x98($v0) -/* 08B624 8008AA24 0C022A48 */ jal func_8008A920 -/* 08B628 8008AA28 00000000 */ nop -/* 08B62C 8008AA2C 8FBF0014 */ lw $ra, 0x14($sp) -/* 08B630 8008AA30 27BD0018 */ addiu $sp, $sp, 0x18 -/* 08B634 8008AA34 03E00008 */ jr $ra -/* 08B638 8008AA38 00000000 */ nop diff --git a/asm/non_matchings/code_80086E70/func_8008AB10.s b/asm/non_matchings/code_80086E70/func_8008AB10.s deleted file mode 100644 index c6f388cc0..000000000 --- a/asm/non_matchings/code_80086E70/func_8008AB10.s +++ /dev/null @@ -1,47 +0,0 @@ -glabel func_8008AB10 -/* 08B710 8008AB10 000470C0 */ sll $t6, $a0, 3 -/* 08B714 8008AB14 01C47023 */ subu $t6, $t6, $a0 -/* 08B718 8008AB18 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 08B71C 8008AB1C 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 08B720 8008AB20 000E7140 */ sll $t6, $t6, 5 -/* 08B724 8008AB24 01CF1021 */ addu $v0, $t6, $t7 -/* 08B728 8008AB28 C4440028 */ lwc1 $f4, 0x28($v0) -/* 08B72C 8008AB2C C4460038 */ lwc1 $f6, 0x38($v0) -/* 08B730 8008AB30 C44A002C */ lwc1 $f10, 0x2c($v0) -/* 08B734 8008AB34 C450003C */ lwc1 $f16, 0x3c($v0) -/* 08B738 8008AB38 46062200 */ add.s $f8, $f4, $f6 -/* 08B73C 8008AB3C C4460040 */ lwc1 $f6, 0x40($v0) -/* 08B740 8008AB40 C4440030 */ lwc1 $f4, 0x30($v0) -/* 08B744 8008AB44 94580098 */ lhu $t8, 0x98($v0) -/* 08B748 8008AB48 9459009A */ lhu $t9, 0x9a($v0) -/* 08B74C 8008AB4C E4480028 */ swc1 $f8, 0x28($v0) -/* 08B750 8008AB50 46105480 */ add.s $f18, $f10, $f16 -/* 08B754 8008AB54 03194021 */ addu $t0, $t8, $t9 -/* 08B758 8008AB58 3109FFFF */ andi $t1, $t0, 0xffff -/* 08B75C 8008AB5C 46062200 */ add.s $f8, $f4, $f6 -/* 08B760 8008AB60 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 08B764 8008AB64 29212710 */ slti $at, $t1, 0x2710 -/* 08B768 8008AB68 AFBF0014 */ sw $ra, 0x14($sp) -/* 08B76C 8008AB6C E452002C */ swc1 $f18, 0x2c($v0) -/* 08B770 8008AB70 E4480030 */ swc1 $f8, 0x30($v0) -/* 08B774 8008AB74 1420000E */ bnez $at, .L8008ABB0 -/* 08B778 8008AB78 A4480098 */ sh $t0, 0x98($v0) -/* 08B77C 8008AB7C 944A0096 */ lhu $t2, 0x96($v0) -/* 08B780 8008AB80 944E0094 */ lhu $t6, 0x94($v0) -/* 08B784 8008AB84 254B0001 */ addiu $t3, $t2, 1 -/* 08B788 8008AB88 316CFFFF */ andi $t4, $t3, 0xffff -/* 08B78C 8008AB8C 258D0001 */ addiu $t5, $t4, 1 -/* 08B790 8008AB90 15AE0005 */ bne $t5, $t6, .L8008ABA8 -/* 08B794 8008AB94 A44B0096 */ sh $t3, 0x96($v0) -/* 08B798 8008AB98 844F00AE */ lh $t7, 0xae($v0) -/* 08B79C 8008AB9C 25F80001 */ addiu $t8, $t7, 1 -/* 08B7A0 8008ABA0 10000003 */ b .L8008ABB0 -/* 08B7A4 8008ABA4 A45800AE */ sh $t8, 0xae($v0) -.L8008ABA8: -/* 08B7A8 8008ABA8 0C022A6E */ jal func_8008A9B8 -/* 08B7AC 8008ABAC 00000000 */ nop -.L8008ABB0: -/* 08B7B0 8008ABB0 8FBF0014 */ lw $ra, 0x14($sp) -/* 08B7B4 8008ABB4 27BD0018 */ addiu $sp, $sp, 0x18 -/* 08B7B8 8008ABB8 03E00008 */ jr $ra -/* 08B7BC 8008ABBC 00000000 */ nop diff --git a/asm/non_matchings/code_80086E70/func_8008AE9C.s b/asm/non_matchings/code_80086E70/func_8008AE9C.s deleted file mode 100644 index 0b56888a4..000000000 --- a/asm/non_matchings/code_80086E70/func_8008AE9C.s +++ /dev/null @@ -1,82 +0,0 @@ -glabel func_8008AE9C -/* 08BA9C 8008AE9C 3C038016 */ lui $v1, %hi(D_80165760) # $v1, 0x8016 -/* 08BAA0 8008AEA0 24635760 */ addiu $v1, %lo(D_80165760) # addiu $v1, $v1, 0x5760 -/* 08BAA4 8008AEA4 84780000 */ lh $t8, ($v1) -/* 08BAA8 8008AEA8 84790002 */ lh $t9, 2($v1) -/* 08BAAC 8008AEAC 3C058018 */ lui $a1, %hi(D_80183DC8) # $a1, 0x8018 -/* 08BAB0 8008AEB0 44982000 */ mtc1 $t8, $f4 -/* 08BAB4 8008AEB4 44995000 */ mtc1 $t9, $f10 -/* 08BAB8 8008AEB8 24A53DC8 */ addiu $a1, %lo(D_80183DC8) # addiu $a1, $a1, 0x3dc8 -/* 08BABC 8008AEBC 468021A0 */ cvt.s.w $f6, $f4 -/* 08BAC0 8008AEC0 C4A20000 */ lwc1 $f2, ($a1) -/* 08BAC4 8008AEC4 C4AC0004 */ lwc1 $f12, 4($a1) -/* 08BAC8 8008AEC8 84680004 */ lh $t0, 4($v1) -/* 08BACC 8008AECC 84690006 */ lh $t1, 6($v1) -/* 08BAD0 8008AED0 46805420 */ cvt.s.w $f16, $f10 -/* 08BAD4 8008AED4 46061202 */ mul.s $f8, $f2, $f6 -/* 08BAD8 8008AED8 44883000 */ mtc1 $t0, $f6 -/* 08BADC 8008AEDC C4AE0008 */ lwc1 $f14, 8($a1) -/* 08BAE0 8008AEE0 C4A0000C */ lwc1 $f0, 0xc($a1) -/* 08BAE4 8008AEE4 3C068016 */ lui $a2, %hi(D_80165770) # $a2, 0x8016 -/* 08BAE8 8008AEE8 46106482 */ mul.s $f18, $f12, $f16 -/* 08BAEC 8008AEEC 24C65770 */ addiu $a2, %lo(D_80165770) # addiu $a2, $a2, 0x5770 -/* 08BAF0 8008AEF0 84CA0000 */ lh $t2, ($a2) -/* 08BAF4 8008AEF4 84CB0002 */ lh $t3, 2($a2) -/* 08BAF8 8008AEF8 000470C0 */ sll $t6, $a0, 3 -/* 08BAFC 8008AEFC 01C47023 */ subu $t6, $t6, $a0 -/* 08BB00 8008AF00 468032A0 */ cvt.s.w $f10, $f6 -/* 08BB04 8008AF04 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 08BB08 8008AF08 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 08BB0C 8008AF0C 000E7140 */ sll $t6, $t6, 5 -/* 08BB10 8008AF10 01CF1021 */ addu $v0, $t6, $t7 -/* 08BB14 8008AF14 46124100 */ add.s $f4, $f8, $f18 -/* 08BB18 8008AF18 44899000 */ mtc1 $t1, $f18 -/* 08BB1C 8008AF1C 460A7402 */ mul.s $f16, $f14, $f10 -/* 08BB20 8008AF20 84CC0004 */ lh $t4, 4($a2) -/* 08BB24 8008AF24 84CD0006 */ lh $t5, 6($a2) -/* 08BB28 8008AF28 3C078016 */ lui $a3, %hi(D_80165780) # $a3, 0x8016 -/* 08BB2C 8008AF2C 24E75780 */ addiu $a3, %lo(D_80165780) # addiu $a3, $a3, 0x5780 -/* 08BB30 8008AF30 84EE0000 */ lh $t6, ($a3) -/* 08BB34 8008AF34 468091A0 */ cvt.s.w $f6, $f18 -/* 08BB38 8008AF38 84EF0002 */ lh $t7, 2($a3) -/* 08BB3C 8008AF3C 84F80004 */ lh $t8, 4($a3) -/* 08BB40 8008AF40 84F90006 */ lh $t9, 6($a3) -/* 08BB44 8008AF44 46102200 */ add.s $f8, $f4, $f16 -/* 08BB48 8008AF48 46003282 */ mul.s $f10, $f6, $f0 -/* 08BB4C 8008AF4C 448A8000 */ mtc1 $t2, $f16 -/* 08BB50 8008AF50 00000000 */ nop -/* 08BB54 8008AF54 468084A0 */ cvt.s.w $f18, $f16 -/* 08BB58 8008AF58 46085100 */ add.s $f4, $f10, $f8 -/* 08BB5C 8008AF5C 448B5000 */ mtc1 $t3, $f10 -/* 08BB60 8008AF60 46121182 */ mul.s $f6, $f2, $f18 -/* 08BB64 8008AF64 448C9000 */ mtc1 $t4, $f18 -/* 08BB68 8008AF68 E4440038 */ swc1 $f4, 0x38($v0) -/* 08BB6C 8008AF6C 46805220 */ cvt.s.w $f8, $f10 -/* 08BB70 8008AF70 468092A0 */ cvt.s.w $f10, $f18 -/* 08BB74 8008AF74 46086102 */ mul.s $f4, $f12, $f8 -/* 08BB78 8008AF78 46043400 */ add.s $f16, $f6, $f4 -/* 08BB7C 8008AF7C 448D2000 */ mtc1 $t5, $f4 -/* 08BB80 8008AF80 460A7202 */ mul.s $f8, $f14, $f10 -/* 08BB84 8008AF84 468024A0 */ cvt.s.w $f18, $f4 -/* 08BB88 8008AF88 46088180 */ add.s $f6, $f16, $f8 -/* 08BB8C 8008AF8C 46009282 */ mul.s $f10, $f18, $f0 -/* 08BB90 8008AF90 448E4000 */ mtc1 $t6, $f8 -/* 08BB94 8008AF94 00000000 */ nop -/* 08BB98 8008AF98 46804120 */ cvt.s.w $f4, $f8 -/* 08BB9C 8008AF9C 46065400 */ add.s $f16, $f10, $f6 -/* 08BBA0 8008AFA0 448F5000 */ mtc1 $t7, $f10 -/* 08BBA4 8008AFA4 46041482 */ mul.s $f18, $f2, $f4 -/* 08BBA8 8008AFA8 44982000 */ mtc1 $t8, $f4 -/* 08BBAC 8008AFAC E450003C */ swc1 $f16, 0x3c($v0) -/* 08BBB0 8008AFB0 468051A0 */ cvt.s.w $f6, $f10 -/* 08BBB4 8008AFB4 468022A0 */ cvt.s.w $f10, $f4 -/* 08BBB8 8008AFB8 46066402 */ mul.s $f16, $f12, $f6 -/* 08BBBC 8008AFBC 46109200 */ add.s $f8, $f18, $f16 -/* 08BBC0 8008AFC0 44998000 */ mtc1 $t9, $f16 -/* 08BBC4 8008AFC4 460A7182 */ mul.s $f6, $f14, $f10 -/* 08BBC8 8008AFC8 46808120 */ cvt.s.w $f4, $f16 -/* 08BBCC 8008AFCC 46064480 */ add.s $f18, $f8, $f6 -/* 08BBD0 8008AFD0 46002282 */ mul.s $f10, $f4, $f0 -/* 08BBD4 8008AFD4 46125200 */ add.s $f8, $f10, $f18 -/* 08BBD8 8008AFD8 03E00008 */ jr $ra -/* 08BBDC 8008AFDC E4480040 */ swc1 $f8, 0x40($v0) diff --git a/asm/non_matchings/code_80086E70/func_8008B038.s b/asm/non_matchings/code_80086E70/func_8008B038.s deleted file mode 100644 index 7c7d6aad4..000000000 --- a/asm/non_matchings/code_80086E70/func_8008B038.s +++ /dev/null @@ -1,82 +0,0 @@ -glabel func_8008B038 -/* 08BC38 8008B038 3C038016 */ lui $v1, %hi(D_80165760) # $v1, 0x8016 -/* 08BC3C 8008B03C 24635760 */ addiu $v1, %lo(D_80165760) # addiu $v1, $v1, 0x5760 -/* 08BC40 8008B040 84780000 */ lh $t8, ($v1) -/* 08BC44 8008B044 84790002 */ lh $t9, 2($v1) -/* 08BC48 8008B048 3C058018 */ lui $a1, %hi(D_80183DA8) # $a1, 0x8018 -/* 08BC4C 8008B04C 44982000 */ mtc1 $t8, $f4 -/* 08BC50 8008B050 44995000 */ mtc1 $t9, $f10 -/* 08BC54 8008B054 24A53DA8 */ addiu $a1, %lo(D_80183DA8) # addiu $a1, $a1, 0x3da8 -/* 08BC58 8008B058 468021A0 */ cvt.s.w $f6, $f4 -/* 08BC5C 8008B05C C4A20000 */ lwc1 $f2, ($a1) -/* 08BC60 8008B060 C4AC0004 */ lwc1 $f12, 4($a1) -/* 08BC64 8008B064 84680004 */ lh $t0, 4($v1) -/* 08BC68 8008B068 84690006 */ lh $t1, 6($v1) -/* 08BC6C 8008B06C 46805420 */ cvt.s.w $f16, $f10 -/* 08BC70 8008B070 46061202 */ mul.s $f8, $f2, $f6 -/* 08BC74 8008B074 44883000 */ mtc1 $t0, $f6 -/* 08BC78 8008B078 C4AE0008 */ lwc1 $f14, 8($a1) -/* 08BC7C 8008B07C C4A0000C */ lwc1 $f0, 0xc($a1) -/* 08BC80 8008B080 3C068016 */ lui $a2, %hi(D_80165770) # $a2, 0x8016 -/* 08BC84 8008B084 46106482 */ mul.s $f18, $f12, $f16 -/* 08BC88 8008B088 24C65770 */ addiu $a2, %lo(D_80165770) # addiu $a2, $a2, 0x5770 -/* 08BC8C 8008B08C 84CA0000 */ lh $t2, ($a2) -/* 08BC90 8008B090 84CB0002 */ lh $t3, 2($a2) -/* 08BC94 8008B094 000470C0 */ sll $t6, $a0, 3 -/* 08BC98 8008B098 01C47023 */ subu $t6, $t6, $a0 -/* 08BC9C 8008B09C 468032A0 */ cvt.s.w $f10, $f6 -/* 08BCA0 8008B0A0 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 08BCA4 8008B0A4 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 08BCA8 8008B0A8 000E7140 */ sll $t6, $t6, 5 -/* 08BCAC 8008B0AC 01CF1021 */ addu $v0, $t6, $t7 -/* 08BCB0 8008B0B0 46124100 */ add.s $f4, $f8, $f18 -/* 08BCB4 8008B0B4 44899000 */ mtc1 $t1, $f18 -/* 08BCB8 8008B0B8 460A7402 */ mul.s $f16, $f14, $f10 -/* 08BCBC 8008B0BC 84CC0004 */ lh $t4, 4($a2) -/* 08BCC0 8008B0C0 84CD0006 */ lh $t5, 6($a2) -/* 08BCC4 8008B0C4 3C078016 */ lui $a3, %hi(D_80165780) # $a3, 0x8016 -/* 08BCC8 8008B0C8 24E75780 */ addiu $a3, %lo(D_80165780) # addiu $a3, $a3, 0x5780 -/* 08BCCC 8008B0CC 84EE0000 */ lh $t6, ($a3) -/* 08BCD0 8008B0D0 468091A0 */ cvt.s.w $f6, $f18 -/* 08BCD4 8008B0D4 84EF0002 */ lh $t7, 2($a3) -/* 08BCD8 8008B0D8 84F80004 */ lh $t8, 4($a3) -/* 08BCDC 8008B0DC 84F90006 */ lh $t9, 6($a3) -/* 08BCE0 8008B0E0 46102200 */ add.s $f8, $f4, $f16 -/* 08BCE4 8008B0E4 46003282 */ mul.s $f10, $f6, $f0 -/* 08BCE8 8008B0E8 448A8000 */ mtc1 $t2, $f16 -/* 08BCEC 8008B0EC 00000000 */ nop -/* 08BCF0 8008B0F0 468084A0 */ cvt.s.w $f18, $f16 -/* 08BCF4 8008B0F4 46085100 */ add.s $f4, $f10, $f8 -/* 08BCF8 8008B0F8 448B5000 */ mtc1 $t3, $f10 -/* 08BCFC 8008B0FC 46121182 */ mul.s $f6, $f2, $f18 -/* 08BD00 8008B100 448C9000 */ mtc1 $t4, $f18 -/* 08BD04 8008B104 E4440028 */ swc1 $f4, 0x28($v0) -/* 08BD08 8008B108 46805220 */ cvt.s.w $f8, $f10 -/* 08BD0C 8008B10C 468092A0 */ cvt.s.w $f10, $f18 -/* 08BD10 8008B110 46086102 */ mul.s $f4, $f12, $f8 -/* 08BD14 8008B114 46043400 */ add.s $f16, $f6, $f4 -/* 08BD18 8008B118 448D2000 */ mtc1 $t5, $f4 -/* 08BD1C 8008B11C 460A7202 */ mul.s $f8, $f14, $f10 -/* 08BD20 8008B120 468024A0 */ cvt.s.w $f18, $f4 -/* 08BD24 8008B124 46088180 */ add.s $f6, $f16, $f8 -/* 08BD28 8008B128 46009282 */ mul.s $f10, $f18, $f0 -/* 08BD2C 8008B12C 448E4000 */ mtc1 $t6, $f8 -/* 08BD30 8008B130 00000000 */ nop -/* 08BD34 8008B134 46804120 */ cvt.s.w $f4, $f8 -/* 08BD38 8008B138 46065400 */ add.s $f16, $f10, $f6 -/* 08BD3C 8008B13C 448F5000 */ mtc1 $t7, $f10 -/* 08BD40 8008B140 46041482 */ mul.s $f18, $f2, $f4 -/* 08BD44 8008B144 44982000 */ mtc1 $t8, $f4 -/* 08BD48 8008B148 E450002C */ swc1 $f16, 0x2c($v0) -/* 08BD4C 8008B14C 468051A0 */ cvt.s.w $f6, $f10 -/* 08BD50 8008B150 468022A0 */ cvt.s.w $f10, $f4 -/* 08BD54 8008B154 46066402 */ mul.s $f16, $f12, $f6 -/* 08BD58 8008B158 46109200 */ add.s $f8, $f18, $f16 -/* 08BD5C 8008B15C 44998000 */ mtc1 $t9, $f16 -/* 08BD60 8008B160 460A7182 */ mul.s $f6, $f14, $f10 -/* 08BD64 8008B164 46808120 */ cvt.s.w $f4, $f16 -/* 08BD68 8008B168 46064480 */ add.s $f18, $f8, $f6 -/* 08BD6C 8008B16C 46002282 */ mul.s $f10, $f4, $f0 -/* 08BD70 8008B170 46125200 */ add.s $f8, $f10, $f18 -/* 08BD74 8008B174 03E00008 */ jr $ra -/* 08BD78 8008B178 E4480030 */ swc1 $f8, 0x30($v0) diff --git a/asm/non_matchings/code_80086E70/func_8008BF64.s b/asm/non_matchings/code_80086E70/func_8008BF64.s deleted file mode 100644 index 46d084d92..000000000 --- a/asm/non_matchings/code_80086E70/func_8008BF64.s +++ /dev/null @@ -1,24 +0,0 @@ -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 -/* 08CB70 8008BF70 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 -/* 08CB74 8008BF74 000E7140 */ sll $t6, $t6, 5 -/* 08CB78 8008BF78 01CF1021 */ addu $v0, $t6, $t7 -/* 08CB7C 8008BF7C 3C038018 */ lui $v1, %hi(D_80183E40) # $v1, 0x8018 -/* 08CB80 8008BF80 3C058018 */ lui $a1, %hi(D_80183E80) # $a1, 0x8018 -/* 08CB84 8008BF84 C4440004 */ lwc1 $f4, 4($v0) -/* 08CB88 8008BF88 C4460008 */ lwc1 $f6, 8($v0) -/* 08CB8C 8008BF8C C448000C */ lwc1 $f8, 0xc($v0) -/* 08CB90 8008BF90 945800BE */ lhu $t8, 0xbe($v0) -/* 08CB94 8008BF94 945900C0 */ lhu $t9, 0xc0($v0) -/* 08CB98 8008BF98 944800C2 */ lhu $t0, 0xc2($v0) -/* 08CB9C 8008BF9C 24A53E80 */ addiu $a1, %lo(D_80183E80) # addiu $a1, $a1, 0x3e80 -/* 08CBA0 8008BFA0 24633E40 */ addiu $v1, %lo(D_80183E40) # addiu $v1, $v1, 0x3e40 -/* 08CBA4 8008BFA4 E4640000 */ swc1 $f4, ($v1) -/* 08CBA8 8008BFA8 E4660004 */ swc1 $f6, 4($v1) -/* 08CBAC 8008BFAC E4680008 */ swc1 $f8, 8($v1) -/* 08CBB0 8008BFB0 A4B80000 */ sh $t8, ($a1) -/* 08CBB4 8008BFB4 A4B90002 */ sh $t9, 2($a1) -/* 08CBB8 8008BFB8 03E00008 */ jr $ra -/* 08CBBC 8008BFBC A4A80004 */ sh $t0, 4($a1) diff --git a/include/objects.h b/include/objects.h index 8ac986147..299c835cc 100644 --- a/include/objects.h +++ b/include/objects.h @@ -35,8 +35,8 @@ typedef struct /* 0x70 */ Gfx *unk_070; /* 0x74 */ Vtx *unk_074; // For at least 1 object type this is meant to be a Vtx*. See func_800555BC /* 0x78 */ s8 unk_078[0x04]; - /* 0x7C */ s32 unk_07C; - /* 0x80 */ u16 *unk_080; // unk_080[][4]? + /* 0x7C */ Vec4s *unk_07C; + /* 0x80 */ Vec4s *unk_080; // unk_080[][4]? /* 0x84 */ s16 unk_084[0xA]; /* 0x98 */ u16 unk_098; /* 0x9A */ s16 unk_09A; diff --git a/src/code_80086E70.c b/src/code_80086E70.c index b6cd7d9f9..83144e176 100644 --- a/src/code_80086E70.c +++ b/src/code_80086E70.c @@ -405,74 +405,34 @@ UNUSED void func_800880DC(void) { } -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern s16 D_80165760; -extern s16 D_80165770; -extern s16 D_80165780; -extern s16 D_80165784; -extern ? D_80165C94; - -void func_800880E4(s32 arg0) { - ? *temp_a1; - ? *temp_a2; - ? *temp_a3; - void *temp_v0; - void *phi_v0; - ? *phi_a1; - ? *phi_a2; - ? *phi_a3; - - phi_v0 = *(&D_80165C94 + (arg0 * 0xE0)); - phi_a1 = &D_80165760; - phi_a2 = &D_80165770; - phi_a3 = &D_80165780; - do { - temp_a3 = phi_a3 + 2; - temp_a1 = phi_a1 + 2; - temp_a1->unk-2 = phi_v0->unk0; - temp_a2 = phi_a2 + 2; - temp_v0 = phi_v0 + 8; - temp_a2->unk-2 = phi_v0->unk2; - temp_a3->unk-2 = temp_v0->unk-4; - phi_v0 = temp_v0; - phi_a1 = temp_a1; - phi_a2 = temp_a2; - phi_a3 = temp_a3; - } while (temp_a3 != &D_80165784); +void func_800880E4(s32 objectIndex) { + Vec4s *phi_v0; + s32 someIndex; + phi_v0 = D_80165C18[objectIndex].unk_07C; + for (someIndex = 0; someIndex < 2; someIndex++, phi_v0++) { + D_80165760[someIndex] = (*phi_v0)[0]; + D_80165770[someIndex] = (*phi_v0)[1]; + D_80165780[someIndex] = (*phi_v0)[2]; + } } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_800880E4.s") -#endif void func_80088150(s32 arg0) { - D_80165C18[arg0].unk_07C += 8; + D_80165C18[arg0].unk_07C++; } -#ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -extern s16 D_80165760; -extern s16 D_80165780; - void func_80088178(s32 objectIndex, s32 arg1) { s16 temp_a1; struct_80165C18_entry *temp_v1; - u16 temp_a0; temp_v1 = &D_80165C18[objectIndex]; - temp_a0 = temp_v1->unk_0BE[1]; - temp_a1 = atan2s((f32) (D_80165760.unk2 - D_80165760.unk0), (f32) (D_80165780.unk2 - D_80165780.unk0)) - temp_a0; + temp_a1 = atan2s(D_80165760[1] - D_80165760[0], D_80165780[1] - D_80165780[0]); + temp_a1 -= temp_v1->unk_0BE[1]; if (temp_a1 > 0) { - temp_v1->unk_0BE[1] = temp_a0 + (arg1 << 8); - return; - } - if (temp_a1 < 0) { - temp_v1->unk_0BE[1] = temp_a0 - (arg1 << 8); + temp_v1->unk_0BE[1] += (arg1 << 8); + } else if (temp_a1 < 0) { + temp_v1->unk_0BE[1] -= (arg1 << 8); } } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_80088178.s") -#endif #ifdef MIPS_TO_C //generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc @@ -494,48 +454,32 @@ void func_80088228(s32 objectIndex) { GLOBAL_ASM("asm/non_matchings/code_80086E70/func_80088228.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern s16 D_80165762; -extern s16 D_80165772; -extern s16 D_80165782; -extern struct_80165C18_entry D_80165C18; +s32 func_800882B0(s32 objectIndex, s32 arg1) { + s32 temp_f0; + s32 temp_f12; + s32 temp_f2; + s32 var_v1; -s32 func_800882B0(s32 arg0, s32 arg1) { - f32 temp_f0; - f32 temp_f12; - f32 temp_f2; - void *temp_a2; - ? phi_v1; - - temp_a2 = (arg0 * 0xE0) + &D_80165C18; - temp_f0 = D_80165762 - temp_a2->unk28; - temp_f2 = D_80165772 - temp_a2->unk2C; - temp_f12 = D_80165782 - temp_a2->unk30; - phi_v1 = 0; - if ((((temp_f0 * temp_f0) + (temp_f2 * temp_f2) + (temp_f12 * temp_f12)) - (arg1 * arg1)) <= 0) { - phi_v1 = 1; + var_v1 = 0; + temp_f0 = (s32)((D_80165760[1] - D_80165C18[objectIndex].unk_028[0]) * (D_80165760[1] - D_80165C18[objectIndex].unk_028[0])); + temp_f12 = (s32)((D_80165770[1] - D_80165C18[objectIndex].unk_028[1]) * (D_80165770[1] - D_80165C18[objectIndex].unk_028[1])); + temp_f2 = (s32)((D_80165780[1] - D_80165C18[objectIndex].unk_028[2]) * (D_80165780[1] - D_80165C18[objectIndex].unk_028[2])); + if ((temp_f0 + temp_f12 + temp_f2 - (arg1 * arg1)) <= 0) { + var_v1 = 1; } - return phi_v1; + return var_v1; } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_800882B0.s") -#endif #ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -void func_800880E4(); /* extern */ -void func_80088178(s32, ?); /* extern */ -s32 func_800882B0(s32, ?); /* extern */ - +//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Aug-09-2023 void func_80088364(s32 objectIndex) { s16 temp_t9; struct_80165C18_entry *temp_v0; - func_800880E4(); + func_800880E4(objectIndex); func_80088178(objectIndex, 1); func_800876A0(objectIndex); - if (func_800882B0(objectIndex, 0xA) != 0) { + if (func_800882B0(objectIndex, 0x0000000A) != 0) { temp_v0 = &D_80165C18[objectIndex]; temp_t9 = (u16) temp_v0->unk_084[9] + 1; temp_v0->unk_084[9] = temp_t9; @@ -1363,40 +1307,25 @@ s32 func_8008A8B0(s16 arg0, s16 arg1) { return var_v1; } -#ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc void func_8008A920(s32 objectIndex) { - s32 temp_v0; - struct_80165C18_entry *temp_v1; + Vec4s *temp_v0; - 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; + temp_v0 = D_80165C18[objectIndex].unk_07C; + D_80165C18[objectIndex].unk_038[0] = (f32) (temp_v0[1][0] - temp_v0[0][0]) / (f32) temp_v0[0][3]; + D_80165C18[objectIndex].unk_038[1] = (f32) (temp_v0[1][1] - temp_v0[0][1]) / (f32) temp_v0[0][3]; + D_80165C18[objectIndex].unk_038[2] = (f32) (temp_v0[1][2] - temp_v0[0][2]) / (f32) temp_v0[0][3]; } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008A920.s") -#endif - -#ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -void func_8008A920(); /* extern */ void func_8008A9B8(s32 objectIndex) { s32 temp_t9; struct_80165C18_entry *temp_v0; 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_07C++; + temp_v0->unk_09A = (s16) (0x2710 / (s16) (*temp_v0->unk_07C)[3]); temp_v0->unk_098 = 0; - func_8008A920(); + func_8008A920(objectIndex); } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008A9B8.s") -#endif #ifdef MIPS_TO_C //generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc @@ -1423,34 +1352,24 @@ void func_8008AA3C(s32 objectIndex) { GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008AA3C.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -void func_8008A9B8(); /* extern */ - void func_8008AB10(s32 objectIndex) { - s16 temp_t0; s16 temp_t3; struct_80165C18_entry *temp_v0; 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 = (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_098 += (u16)temp_v0->unk_09A; + if (temp_v0->unk_098 >= 0x2710) { + temp_v0->unk_084[9] = (u16)temp_v0->unk_084[9] + 1; + if (((u16)temp_v0->unk_084[9] + 1) == (u16) temp_v0->unk_084[8]) { temp_v0->unk_0AE += 1; - return; + } else { + func_8008A9B8(objectIndex); } - func_8008A9B8(); } } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008AB10.s") -#endif UNUSED void func_8008ABC0(s32 arg0) { switch (D_80165C18[arg0].unk_0AE) { @@ -1501,26 +1420,23 @@ UNUSED void func_8008ACD8(void) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern f64 D_800EF4F8; -extern f64 D_800EF500; - -void func_8008ACE0(void *arg0, f32 arg1) { +//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Aug-09-2023 +void func_8008ACE0(f32 *arg0, f32 arg1) { f32 temp_f14; f32 temp_f2; f64 temp_f0; f64 temp_f16; f64 temp_f18; - temp_f0 = arg1; - temp_f2 = 1.0 - temp_f0; + temp_f0 = (f64) arg1; + temp_f2 = (f32) (1.0 - temp_f0); temp_f14 = arg1 * arg1; - temp_f18 = temp_f14; - temp_f16 = temp_f14 * arg1; - arg0->unk0 = (temp_f2 * temp_f2 * temp_f2) / 6.0; - arg0->unk4 = ((temp_f16 * 0.5) - temp_f18) + D_800EF4F8; - arg0->unk8 = (temp_f16 * -0.5) + (0.5 * temp_f18) + (0.5 * temp_f0) + D_800EF500; - arg0->unkC = temp_f16 / 6.0; + temp_f18 = (f64) temp_f14; + temp_f16 = (f64) (temp_f14 * arg1); + arg0->unk0 = (f32) ((f64) (temp_f2 * temp_f2 * temp_f2) / 6.0); + arg0->unk4 = (f32) (((temp_f16 * 0.5) - temp_f18) + 0.6666666666666666); + arg0->unk8 = (f32) ((temp_f16 * -0.5) + (0.5 * temp_f18) + (0.5 * temp_f0) + 0.16666666666666666); + arg0->unkC = (f32) (temp_f16 / 6.0); } #else GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008ACE0.s") @@ -1535,21 +1451,21 @@ UNUSED void func_8008ADC8(void) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void func_8008ADD0(void *arg0, f32 arg1) { +//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Aug-09-2023 +void func_8008ADD0(f32 *arg0, f32 arg1) { f64 temp_f0; f64 temp_f14; f64 temp_f16; f64 temp_f2; - temp_f0 = arg1; + temp_f0 = (f64) arg1; temp_f16 = 2.0 * temp_f0; - temp_f2 = 1.0 - temp_f0; - temp_f14 = arg1 * arg1; - arg0->unk0 = temp_f2 * -0.5 * temp_f2; - arg0->unk4 = (temp_f14 * 1.5) - temp_f16; - arg0->unk8 = (((temp_f14 * 3.0) - temp_f16) - 1.0) * -0.5; - arg0->unkC = temp_f14 * 0.5; + temp_f2 = (f64) (f32) (1.0 - temp_f0); + temp_f14 = (f64) (arg1 * arg1); + arg0->unk0 = (f32) (temp_f2 * -0.5 * temp_f2); + arg0->unk4 = (f32) ((temp_f14 * 1.5) - temp_f16); + arg0->unk8 = (f32) ((((temp_f14 * 3.0) - temp_f16) - 1.0) * -0.5); + arg0->unkC = (f32) (temp_f14 * 0.5); } #else GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008ADD0.s") @@ -1563,37 +1479,18 @@ UNUSED void func_8008AE94(void) { } -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern s16 D_80165760; -extern s16 D_80165770; -extern s16 D_80165780; -extern struct_80165C18_entry D_80165C18; -extern s32 D_80183DC8; +void func_8008AE9C(s32 objectIndex) { + struct_80165C18_entry *temp_v0; -void func_8008AE9C(s32 arg0) { - f32 temp_f0; - f32 temp_f12; - f32 temp_f14; - f32 temp_f2; - void *temp_v0; - - temp_f2 = D_80183DC8.unk0; - temp_f12 = D_80183DC8.unk4; - temp_f14 = D_80183DC8.unk8; - temp_f0 = D_80183DC8.unkC; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unk38 = (D_80165760.unk6 * temp_f0) + ((temp_f2 * D_80165760.unk0) + (temp_f12 * D_80165760.unk2) + (temp_f14 * D_80165760.unk4)); - temp_v0->unk3C = (D_80165770.unk6 * temp_f0) + ((temp_f2 * D_80165770.unk0) + (temp_f12 * D_80165770.unk2) + (temp_f14 * D_80165770.unk4)); - temp_v0->unk40 = (D_80165780.unk6 * temp_f0) + ((temp_f2 * D_80165780.unk0) + (temp_f12 * D_80165780.unk2) + (temp_f14 * D_80165780.unk4)); + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_038[0] = (D_80183DC8[0] * D_80165760[0]) + (D_80183DC8[1] * D_80165760[1]) + (D_80183DC8[2] * D_80165760[2]) + (D_80183DC8[3] * D_80165760[3]); + temp_v0->unk_038[1] = (D_80183DC8[0] * D_80165770[0]) + (D_80183DC8[1] * D_80165770[1]) + (D_80183DC8[2] * D_80165770[2]) + (D_80183DC8[3] * D_80165770[3]); + temp_v0->unk_038[2] = (D_80183DC8[0] * D_80165780[0]) + (D_80183DC8[1] * D_80165780[1]) + (D_80183DC8[2] * D_80165780[2]) + (D_80183DC8[3] * D_80165780[3]); } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008AE9C.s") -#endif -void func_8008AFE0(s32 arg0, f32 arg1) { - func_8008ADD0((s32 *)&D_80183DC8, arg1); - func_8008AE9C(arg0); +void func_8008AFE0(s32 objectIndex, f32 arg1) { + func_8008ADD0(D_80183DC8, arg1); + func_8008AE9C(objectIndex); } UNUSED void func_8008B018(void) { @@ -1612,37 +1509,18 @@ UNUSED void func_8008B030(void) { } -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern s16 D_80165760; -extern s16 D_80165770; -extern s16 D_80165780; -extern struct_80165C18_entry D_80165C18; -extern s32 D_80183DA8; +void func_8008B038(s32 objectIndex) { + struct_80165C18_entry *temp_v0; -void func_8008B038(s32 arg0) { - f32 temp_f0; - f32 temp_f12; - f32 temp_f14; - f32 temp_f2; - void *temp_v0; - - temp_f2 = D_80183DA8.unk0; - temp_f12 = D_80183DA8.unk4; - temp_f14 = D_80183DA8.unk8; - temp_f0 = D_80183DA8.unkC; - temp_v0 = (arg0 * 0xE0) + &D_80165C18; - temp_v0->unk28 = (D_80165760.unk6 * temp_f0) + ((temp_f2 * D_80165760.unk0) + (temp_f12 * D_80165760.unk2) + (temp_f14 * D_80165760.unk4)); - temp_v0->unk2C = (D_80165770.unk6 * temp_f0) + ((temp_f2 * D_80165770.unk0) + (temp_f12 * D_80165770.unk2) + (temp_f14 * D_80165770.unk4)); - temp_v0->unk30 = (D_80165780.unk6 * temp_f0) + ((temp_f2 * D_80165780.unk0) + (temp_f12 * D_80165780.unk2) + (temp_f14 * D_80165780.unk4)); + temp_v0 = &D_80165C18[objectIndex]; + temp_v0->unk_028[0] = (D_80183DA8[0] * D_80165760[0]) + (D_80183DA8[1] * D_80165760[1]) + (D_80183DA8[2] * D_80165760[2]) + (D_80183DA8[3] * D_80165760[3]); + temp_v0->unk_028[1] = (D_80183DA8[0] * D_80165770[0]) + (D_80183DA8[1] * D_80165770[1]) + (D_80183DA8[2] * D_80165770[2]) + (D_80183DA8[3] * D_80165770[3]); + temp_v0->unk_028[2] = (D_80183DA8[0] * D_80165780[0]) + (D_80183DA8[1] * D_80165780[1]) + (D_80183DA8[2] * D_80165780[2]) + (D_80183DA8[3] * D_80165780[3]); } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008B038.s") -#endif -void func_8008B17C(s32 arg0, f32 arg1) { - func_8008ACE0((s32 *) &D_80183DA8, arg1); - func_8008B038(arg0); +void func_8008B17C(s32 objectIndex, f32 arg1) { + func_8008ACE0(D_80183DA8, arg1); + func_8008B038(objectIndex); } UNUSED void func_8008B1B4(void) { @@ -1701,38 +1579,33 @@ GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008B1D4.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern s16 D_80165760; +//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Aug-09-2023 extern s16 D_80165762; extern s16 D_80165764; extern s16 D_80165766; -extern s16 D_80165770; extern s16 D_80165772; extern s16 D_80165774; extern s16 D_80165776; -extern s16 D_80165780; extern s16 D_80165782; extern s16 D_80165784; extern s16 D_80165786; -void func_8008B284(s32 arg0) { +void func_8008B284(s32 objectIndex) { s32 sp0; - s16 *temp_v0_2; + s16 (*temp_v0)[4]; + s16 (*var_v0)[4]; + s16 (*var_v0_2)[4]; + s16 *var_v0_3; s16 temp_a1; + struct_80165C18_entry *temp_v1; u16 temp_a2; - void *temp_v0; - void *temp_v0_3; - void *temp_v1; - s16 *phi_v0; - void *phi_v0_2; - void *phi_v0_3; - temp_v1 = (arg0 * 0xE0) + &D_80165C18; - temp_a2 = temp_v1->unk94; - temp_a1 = temp_v1->unk96; - temp_v0 = temp_v1->unk7C; + temp_v1 = &D_80165C18[objectIndex]; + temp_a2 = (u16) temp_v1->unk_084[8]; + temp_a1 = temp_v1->unk_084[9]; + temp_v0 = temp_v1->unk_07C; if ((temp_a2 - 4) >= temp_a1) { - sp0 = 0x2710; + sp0 = 0x00002710; } else if ((temp_a1 + 3) == temp_a2) { sp0 = 2; } else if ((temp_a1 + 2) == temp_a2) { @@ -1740,33 +1613,31 @@ void func_8008B284(s32 arg0) { } else if ((temp_a1 + 1) == temp_a2) { sp0 = 0; } - D_80165760 = temp_v0->unk0; - temp_v0_2 = temp_v0 + 8; - D_80165770 = temp_v0->unk2; - D_80165780 = temp_v0_2->unk-4; - phi_v0 = temp_v0_2; + *D_80165760 = temp_v0[0][0]; + var_v0 = temp_v0 + 8; + *D_80165770 = temp_v0[0][1]; + *D_80165780 = var_v0->unk-4; if (sp0 == 0) { - phi_v0 = temp_v1->unk80 + 2; + var_v0 = (s16 (*)[4]) &temp_v1->unk_080[0][1]; } - temp_v0_3 = phi_v0 + 8; - D_80165762 = *phi_v0; - D_80165772 = temp_v0_3->unk-6; - D_80165782 = temp_v0_3->unk-4; - phi_v0_2 = temp_v0_3; + var_v0_2 = var_v0 + 8; + D_80165762 = var_v0[0][0]; + D_80165772 = var_v0_2->unk-6; + D_80165782 = var_v0_2->unk-4; if (sp0 == 1) { - phi_v0_2 = temp_v1->unk80 + 2; + var_v0_2 = (s16 (*)[4]) &temp_v1->unk_080[0][1]; } - D_80165764 = phi_v0_2->unk0; - D_80165774 = phi_v0_2->unk2; - D_80165784 = phi_v0_2->unk4; + D_80165764 = var_v0_2[0][0]; + D_80165774 = var_v0_2[0][1]; + D_80165784 = var_v0_2[0][2]; if (sp0 == 2) { - phi_v0_3 = temp_v1->unk80 + 2; + var_v0_3 = &temp_v1->unk_080[0][1]; } else { - phi_v0_3 = phi_v0_2 + 8; + var_v0_3 = *(var_v0_2 + 8); } - D_80165766 = phi_v0_3->unk0; - D_80165776 = phi_v0_3->unk2; - D_80165786 = phi_v0_3->unk4; + D_80165766 = var_v0_3->unk0; + D_80165776 = var_v0_3->unk2; + D_80165786 = var_v0_3->unk4; } #else GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008B284.s") @@ -1794,16 +1665,14 @@ GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008B3E4.s") void func_8008B44C(s32 arg0) { D_80165C18[arg0].unk_098 = 0; - D_80165C18[arg0].unk_07C += 8; + D_80165C18[arg0].unk_07C++; } #ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -void func_8008B1D4(s32); /* extern */ -void func_8008B284(s32); /* extern */ -void func_8008B3E4(); /* extern */ -extern f64 D_800EF508; -extern f64 D_800EF510; +//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Aug-09-2023 +? func_8008B1D4(s32); /* extern */ +? func_8008B284(s32); /* extern */ +? func_8008B3E4(); /* extern */ void func_8008B478(s32 objectIndex, s32 arg1) { f32 sp34; @@ -1811,7 +1680,7 @@ void func_8008B478(s32 objectIndex, s32 arg1) { f32 temp_f0; f32 temp_f0_2; f32 var_f6; - s32 temp_v0; + s16 (*temp_v0)[4]; struct_80165C18_entry *temp_v1; u16 temp_t9; u32 temp_t3; @@ -1823,7 +1692,7 @@ void func_8008B478(s32 objectIndex, s32 arg1) { func_8008B1D4(objectIndex); } temp_v1 = &D_80165C18[objectIndex]; - temp_t9 = (u16) temp_v1->unk_098; + temp_t9 = temp_v1->unk_098; var_f6 = (f32) temp_t9; if ((s32) temp_t9 < 0) { var_f6 += 4294967296.0f; @@ -1837,10 +1706,10 @@ void func_8008B478(s32 objectIndex, s32 arg1) { func_8008AFE0(objectIndex, sp34); } temp_v0 = temp_v1->unk_07C; - temp_f0_2 = (f32) temp_v0->unk6; + temp_f0_2 = (f32) temp_v0[0][3]; 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; + temp_v1->unk_098 += temp_t3; } #else GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008B478.s") @@ -2063,25 +1932,17 @@ void func_8008BF18(s32 objectIndex) { D_80165C18[objectIndex].pos[2] = D_80165C18[objectIndex].unk_010[2] + D_80165C18[objectIndex].unk_028[2]; } -#ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -extern f32 D_80183E40; -extern s16 D_80183E80; - void func_8008BF64(s32 objectIndex) { struct_80165C18_entry *temp_v0; temp_v0 = &D_80165C18[objectIndex]; - D_80183E40.unk0 = (f32) temp_v0->pos[0]; - D_80183E40.unk4 = (f32) temp_v0->pos[1]; - D_80183E40.unk8 = (f32) temp_v0->pos[2]; - D_80183E80.unk0 = (u16) temp_v0->unk_0BE[0]; - D_80183E80.unk2 = (u16) temp_v0->unk_0BE[1]; - D_80183E80.unk4 = (u16) temp_v0->unk_0BE[2]; + D_80183E40[0] = temp_v0->pos[0]; + D_80183E40[1] = temp_v0->pos[1]; + D_80183E40[2] = temp_v0->pos[2]; + D_80183E80[0] = temp_v0->unk_0BE[0]; + D_80183E80[1] = temp_v0->unk_0BE[1]; + D_80183E80[2] = temp_v0->unk_0BE[2]; } -#else -GLOBAL_ASM("asm/non_matchings/code_80086E70/func_8008BF64.s") -#endif void func_8008BFC0(s32 objectIndex) { D_80165C18[objectIndex].unk_09C = D_80165C18[objectIndex].pos[0]; diff --git a/src/code_80086E70.h b/src/code_80086E70.h index 6da01b40c..0c0ec0b0a 100644 --- a/src/code_80086E70.h +++ b/src/code_80086E70.h @@ -53,7 +53,10 @@ 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_800880E4(s32); void func_80088150(s32); +void func_80088178(s32, s32); +s32 func_800882B0(s32, s32); s32 func_8008847C(s32); s32 func_80088538(s32); s32 func_8008861C(s32); @@ -106,6 +109,9 @@ void func_8008A850(s32); s32 func_8008A870(Player*); s32 func_8008A890(Camera*); s32 func_8008A8B0(s16, s16); +void func_8008A920(s32); +void func_8008A9B8(s32); +void func_8008AB10(s32); void func_8008ABC0(s32); void func_8008AC40(s32); void func_8008ACC0(); @@ -116,13 +122,15 @@ void func_8008ADC0(); void func_8008ADC8(); void func_8008AE8C(); void func_8008AE94(); -void func_8008ADD0(s32*, f32); +void func_8008AE9C(s32); +void func_8008ADD0(f32*, 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_8008B038(s32); +void func_8008ACE0(f32*,f32); void func_8008B17C(s32, f32); void func_8008B1B4(); void func_8008B1BC(); @@ -146,18 +154,26 @@ void func_8008BE0C(s32, s16, u16); void func_8008BEA4(s32, u16, u16); void func_8008BFC0(s32); void func_8008BF18(s32); +void func_8008BF64(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 D_80183DA8[]; +extern f32 D_80183DC8[]; extern f32 gVBlankTimer; extern UnkActorInner D_8018C3B0; extern Player *gPlayerOne; extern Player *gPlayerOneCopy; extern s16 gCurrentCourseId; +extern Vec4s D_80165760; +extern Vec4s D_80165770; +extern Vec4s D_80165780; + +extern Vec3f D_80183E40; +extern Vec3su D_80183E80; + #endif