diff --git a/asm/non_matchings/code_80281FA0/func_80282050.s b/asm/non_matchings/code_80281FA0/func_80282050.s deleted file mode 100644 index 31dcf9fe3..000000000 --- a/asm/non_matchings/code_80281FA0/func_80282050.s +++ /dev/null @@ -1,43 +0,0 @@ -glabel func_80282050 -/* 125690 80282050 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 125694 80282054 AFBF001C */ sw $ra, 0x1c($sp) -/* 125698 80282058 AFA40038 */ sw $a0, 0x38($sp) -/* 12569C 8028205C AFB00018 */ sw $s0, 0x18($sp) -/* 1256A0 80282060 AFA60040 */ sw $a2, 0x40($sp) -/* 1256A4 80282064 0C0A0802 */ jal func_80282008 -/* 1256A8 80282068 27A4002C */ addiu $a0, $sp, 0x2c -/* 1256AC 8028206C 97B00042 */ lhu $s0, 0x42($sp) -/* 1256B0 80282070 0C0AE006 */ jal sins -/* 1256B4 80282074 02002025 */ move $a0, $s0 -/* 1256B8 80282078 E7A00028 */ swc1 $f0, 0x28($sp) -/* 1256BC 8028207C 0C0AE00E */ jal coss -/* 1256C0 80282080 3204FFFF */ andi $a0, $s0, 0xffff -/* 1256C4 80282084 C7A40034 */ lwc1 $f4, 0x34($sp) -/* 1256C8 80282088 C7A60028 */ lwc1 $f6, 0x28($sp) -/* 1256CC 8028208C C7AA002C */ lwc1 $f10, 0x2c($sp) -/* 1256D0 80282090 8FA20038 */ lw $v0, 0x38($sp) -/* 1256D4 80282094 46062202 */ mul.s $f8, $f4, $f6 -/* 1256D8 80282098 3204FFFF */ andi $a0, $s0, 0xffff -/* 1256DC 8028209C 460A0402 */ mul.s $f16, $f0, $f10 -/* 1256E0 802820A0 46088480 */ add.s $f18, $f16, $f8 -/* 1256E4 802820A4 E4520000 */ swc1 $f18, ($v0) -/* 1256E8 802820A8 C7A40030 */ lwc1 $f4, 0x30($sp) -/* 1256EC 802820AC 0C0AE00E */ jal coss -/* 1256F0 802820B0 E4440004 */ swc1 $f4, 4($v0) -/* 1256F4 802820B4 E7A00028 */ swc1 $f0, 0x28($sp) -/* 1256F8 802820B8 0C0AE006 */ jal sins -/* 1256FC 802820BC 3204FFFF */ andi $a0, $s0, 0xffff -/* 125700 802820C0 C7A60034 */ lwc1 $f6, 0x34($sp) -/* 125704 802820C4 C7AA0028 */ lwc1 $f10, 0x28($sp) -/* 125708 802820C8 C7A8002C */ lwc1 $f8, 0x2c($sp) -/* 12570C 802820CC 8FAE0038 */ lw $t6, 0x38($sp) -/* 125710 802820D0 460A3402 */ mul.s $f16, $f6, $f10 -/* 125714 802820D4 00000000 */ nop -/* 125718 802820D8 46080482 */ mul.s $f18, $f0, $f8 -/* 12571C 802820DC 46128101 */ sub.s $f4, $f16, $f18 -/* 125720 802820E0 E5C40008 */ swc1 $f4, 8($t6) -/* 125724 802820E4 8FBF001C */ lw $ra, 0x1c($sp) -/* 125728 802820E8 8FB00018 */ lw $s0, 0x18($sp) -/* 12572C 802820EC 27BD0038 */ addiu $sp, $sp, 0x38 -/* 125730 802820F0 03E00008 */ jr $ra -/* 125734 802820F4 00000000 */ nop diff --git a/asm/non_matchings/code_80281FA0/func_802820F8.s b/asm/non_matchings/code_80281FA0/func_802820F8.s deleted file mode 100644 index 30cc834c1..000000000 --- a/asm/non_matchings/code_80281FA0/func_802820F8.s +++ /dev/null @@ -1,43 +0,0 @@ -glabel func_802820F8 -/* 125738 802820F8 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 12573C 802820FC AFBF001C */ sw $ra, 0x1c($sp) -/* 125740 80282100 AFA40038 */ sw $a0, 0x38($sp) -/* 125744 80282104 AFB00018 */ sw $s0, 0x18($sp) -/* 125748 80282108 AFA60040 */ sw $a2, 0x40($sp) -/* 12574C 8028210C 0C0A0802 */ jal func_80282008 -/* 125750 80282110 27A4002C */ addiu $a0, $sp, 0x2c -/* 125754 80282114 97B00042 */ lhu $s0, 0x42($sp) -/* 125758 80282118 0C0AE00E */ jal coss -/* 12575C 8028211C 02002025 */ move $a0, $s0 -/* 125760 80282120 E7A00028 */ swc1 $f0, 0x28($sp) -/* 125764 80282124 0C0AE006 */ jal sins -/* 125768 80282128 3204FFFF */ andi $a0, $s0, 0xffff -/* 12576C 8028212C C7A40034 */ lwc1 $f4, 0x34($sp) -/* 125770 80282130 C7A60028 */ lwc1 $f6, 0x28($sp) -/* 125774 80282134 C7AA0030 */ lwc1 $f10, 0x30($sp) -/* 125778 80282138 8FAE0038 */ lw $t6, 0x38($sp) -/* 12577C 8028213C 46062202 */ mul.s $f8, $f4, $f6 -/* 125780 80282140 3204FFFF */ andi $a0, $s0, 0xffff -/* 125784 80282144 460A0402 */ mul.s $f16, $f0, $f10 -/* 125788 80282148 46104481 */ sub.s $f18, $f8, $f16 -/* 12578C 8028214C 0C0AE006 */ jal sins -/* 125790 80282150 E5D20008 */ swc1 $f18, 8($t6) -/* 125794 80282154 E7A00028 */ swc1 $f0, 0x28($sp) -/* 125798 80282158 0C0AE00E */ jal coss -/* 12579C 8028215C 3204FFFF */ andi $a0, $s0, 0xffff -/* 1257A0 80282160 C7A40034 */ lwc1 $f4, 0x34($sp) -/* 1257A4 80282164 C7A60028 */ lwc1 $f6, 0x28($sp) -/* 1257A8 80282168 C7A80030 */ lwc1 $f8, 0x30($sp) -/* 1257AC 8028216C 8FAF0038 */ lw $t7, 0x38($sp) -/* 1257B0 80282170 46062282 */ mul.s $f10, $f4, $f6 -/* 1257B4 80282174 00000000 */ nop -/* 1257B8 80282178 46080402 */ mul.s $f16, $f0, $f8 -/* 1257BC 8028217C 460A8480 */ add.s $f18, $f16, $f10 -/* 1257C0 80282180 E5F20004 */ swc1 $f18, 4($t7) -/* 1257C4 80282184 C7A4002C */ lwc1 $f4, 0x2c($sp) -/* 1257C8 80282188 E5E40000 */ swc1 $f4, ($t7) -/* 1257CC 8028218C 8FBF001C */ lw $ra, 0x1c($sp) -/* 1257D0 80282190 8FB00018 */ lw $s0, 0x18($sp) -/* 1257D4 80282194 27BD0038 */ addiu $sp, $sp, 0x38 -/* 1257D8 80282198 03E00008 */ jr $ra -/* 1257DC 8028219C 00000000 */ nop diff --git a/asm/non_matchings/code_80281FA0/func_80282454.s b/asm/non_matchings/code_80281FA0/func_80282454.s deleted file mode 100644 index 42f25a27d..000000000 --- a/asm/non_matchings/code_80281FA0/func_80282454.s +++ /dev/null @@ -1,45 +0,0 @@ -glabel func_80282454 -/* 125A94 80282454 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 125A98 80282458 AFBF0014 */ sw $ra, 0x14($sp) -/* 125A9C 8028245C AFA60038 */ sw $a2, 0x38($sp) -/* 125AA0 80282460 AFA7003C */ sw $a3, 0x3c($sp) -/* 125AA4 80282464 C4860000 */ lwc1 $f6, ($a0) -/* 125AA8 80282468 C4A40000 */ lwc1 $f4, ($a1) -/* 125AAC 8028246C C48A0004 */ lwc1 $f10, 4($a0) -/* 125AB0 80282470 C4A80004 */ lwc1 $f8, 4($a1) -/* 125AB4 80282474 46062001 */ sub.s $f0, $f4, $f6 -/* 125AB8 80282478 C4860008 */ lwc1 $f6, 8($a0) -/* 125ABC 8028247C C4A40008 */ lwc1 $f4, 8($a1) -/* 125AC0 80282480 460A4081 */ sub.s $f2, $f8, $f10 -/* 125AC4 80282484 46000402 */ mul.s $f16, $f0, $f0 -/* 125AC8 80282488 E7A0002C */ swc1 $f0, 0x2c($sp) -/* 125ACC 8028248C 46062381 */ sub.s $f14, $f4, $f6 -/* 125AD0 80282490 E7A20028 */ swc1 $f2, 0x28($sp) -/* 125AD4 80282494 460E7482 */ mul.s $f18, $f14, $f14 -/* 125AD8 80282498 E7AE0024 */ swc1 $f14, 0x24($sp) -/* 125ADC 8028249C E7B0001C */ swc1 $f16, 0x1c($sp) -/* 125AE0 802824A0 46021202 */ mul.s $f8, $f2, $f2 -/* 125AE4 802824A4 E7B20018 */ swc1 $f18, 0x18($sp) -/* 125AE8 802824A8 46088280 */ add.s $f10, $f16, $f8 -/* 125AEC 802824AC 0C033850 */ jal sqrtf -/* 125AF0 802824B0 46125300 */ add.s $f12, $f10, $f18 -/* 125AF4 802824B4 C7B0001C */ lwc1 $f16, 0x1c($sp) -/* 125AF8 802824B8 C7B20018 */ lwc1 $f18, 0x18($sp) -/* 125AFC 802824BC 8FAE0038 */ lw $t6, 0x38($sp) -/* 125B00 802824C0 46128300 */ add.s $f12, $f16, $f18 -/* 125B04 802824C4 0C033850 */ jal sqrtf -/* 125B08 802824C8 E5C00000 */ swc1 $f0, ($t6) -/* 125B0C 802824CC C7AC0028 */ lwc1 $f12, 0x28($sp) -/* 125B10 802824D0 0C0ADE0C */ jal atan2s -/* 125B14 802824D4 46000386 */ mov.s $f14, $f0 -/* 125B18 802824D8 8FAF003C */ lw $t7, 0x3c($sp) -/* 125B1C 802824DC A5E20000 */ sh $v0, ($t7) -/* 125B20 802824E0 C7AE0024 */ lwc1 $f14, 0x24($sp) -/* 125B24 802824E4 0C0ADE0C */ jal atan2s -/* 125B28 802824E8 C7AC002C */ lwc1 $f12, 0x2c($sp) -/* 125B2C 802824EC 8FB80040 */ lw $t8, 0x40($sp) -/* 125B30 802824F0 A7020000 */ sh $v0, ($t8) -/* 125B34 802824F4 8FBF0014 */ lw $ra, 0x14($sp) -/* 125B38 802824F8 27BD0030 */ addiu $sp, $sp, 0x30 -/* 125B3C 802824FC 03E00008 */ jr $ra -/* 125B40 80282500 00000000 */ nop diff --git a/asm/non_matchings/code_80281FA0/func_80282504.s b/asm/non_matchings/code_80281FA0/func_80282504.s deleted file mode 100644 index 36d69ae44..000000000 --- a/asm/non_matchings/code_80281FA0/func_80282504.s +++ /dev/null @@ -1,50 +0,0 @@ -glabel func_80282504 -/* 125B44 80282504 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 125B48 80282508 AFA40028 */ sw $a0, 0x28($sp) -/* 125B4C 8028250C AFBF0014 */ sw $ra, 0x14($sp) -/* 125B50 80282510 30E4FFFF */ andi $a0, $a3, 0xffff -/* 125B54 80282514 AFA5002C */ sw $a1, 0x2c($sp) -/* 125B58 80282518 AFA60030 */ sw $a2, 0x30($sp) -/* 125B5C 8028251C AFA70034 */ sw $a3, 0x34($sp) -/* 125B60 80282520 0C0AE00E */ jal coss -/* 125B64 80282524 AFA40020 */ sw $a0, 0x20($sp) -/* 125B68 80282528 97A4003A */ lhu $a0, 0x3a($sp) -/* 125B6C 8028252C E7A00024 */ swc1 $f0, 0x24($sp) -/* 125B70 80282530 0C0AE006 */ jal sins -/* 125B74 80282534 AFA4001C */ sw $a0, 0x1c($sp) -/* 125B78 80282538 C7A40030 */ lwc1 $f4, 0x30($sp) -/* 125B7C 8028253C C7A60024 */ lwc1 $f6, 0x24($sp) -/* 125B80 80282540 8FB80028 */ lw $t8, 0x28($sp) -/* 125B84 80282544 8FB9002C */ lw $t9, 0x2c($sp) -/* 125B88 80282548 46062202 */ mul.s $f8, $f4, $f6 -/* 125B8C 8028254C C7100000 */ lwc1 $f16, ($t8) -/* 125B90 80282550 46080282 */ mul.s $f10, $f0, $f8 -/* 125B94 80282554 46105480 */ add.s $f18, $f10, $f16 -/* 125B98 80282558 E7320000 */ swc1 $f18, ($t9) -/* 125B9C 8028255C 0C0AE006 */ jal sins -/* 125BA0 80282560 97A40022 */ lhu $a0, 0x22($sp) -/* 125BA4 80282564 C7A40030 */ lwc1 $f4, 0x30($sp) -/* 125BA8 80282568 8FA80028 */ lw $t0, 0x28($sp) -/* 125BAC 8028256C 8FA9002C */ lw $t1, 0x2c($sp) -/* 125BB0 80282570 46040182 */ mul.s $f6, $f0, $f4 -/* 125BB4 80282574 C5080004 */ lwc1 $f8, 4($t0) -/* 125BB8 80282578 46083280 */ add.s $f10, $f6, $f8 -/* 125BBC 8028257C E52A0004 */ swc1 $f10, 4($t1) -/* 125BC0 80282580 0C0AE00E */ jal coss -/* 125BC4 80282584 97A40022 */ lhu $a0, 0x22($sp) -/* 125BC8 80282588 E7A00024 */ swc1 $f0, 0x24($sp) -/* 125BCC 8028258C 0C0AE00E */ jal coss -/* 125BD0 80282590 97A4001E */ lhu $a0, 0x1e($sp) -/* 125BD4 80282594 C7B00030 */ lwc1 $f16, 0x30($sp) -/* 125BD8 80282598 C7B20024 */ lwc1 $f18, 0x24($sp) -/* 125BDC 8028259C 8FAA0028 */ lw $t2, 0x28($sp) -/* 125BE0 802825A0 8FAB002C */ lw $t3, 0x2c($sp) -/* 125BE4 802825A4 46128102 */ mul.s $f4, $f16, $f18 -/* 125BE8 802825A8 C5480008 */ lwc1 $f8, 8($t2) -/* 125BEC 802825AC 46040182 */ mul.s $f6, $f0, $f4 -/* 125BF0 802825B0 46083280 */ add.s $f10, $f6, $f8 -/* 125BF4 802825B4 E56A0008 */ swc1 $f10, 8($t3) -/* 125BF8 802825B8 8FBF0014 */ lw $ra, 0x14($sp) -/* 125BFC 802825BC 27BD0028 */ addiu $sp, $sp, 0x28 -/* 125C00 802825C0 03E00008 */ jr $ra -/* 125C04 802825C4 00000000 */ nop diff --git a/asm/non_matchings/code_80281FA0/func_802825C8.s b/asm/non_matchings/code_80281FA0/func_802825C8.s deleted file mode 100644 index 48fbc1a92..000000000 --- a/asm/non_matchings/code_80281FA0/func_802825C8.s +++ /dev/null @@ -1,79 +0,0 @@ -glabel func_802825C8 -/* 125C08 802825C8 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 125C0C 802825CC AFBF0024 */ sw $ra, 0x24($sp) -/* 125C10 802825D0 AFB10020 */ sw $s1, 0x20($sp) -/* 125C14 802825D4 AFB0001C */ sw $s0, 0x1c($sp) -/* 125C18 802825D8 AFA40048 */ sw $a0, 0x48($sp) -/* 125C1C 802825DC 00E08025 */ move $s0, $a3 -/* 125C20 802825E0 00C08825 */ move $s1, $a2 -/* 125C24 802825E4 F7B40010 */ sdc1 $f20, 0x10($sp) -/* 125C28 802825E8 AFA5004C */ sw $a1, 0x4c($sp) -/* 125C2C 802825EC 0C0A0802 */ jal func_80282008 -/* 125C30 802825F0 27A4003C */ addiu $a0, $sp, 0x3c -/* 125C34 802825F4 0C0AE00E */ jal coss -/* 125C38 802825F8 96040000 */ lhu $a0, ($s0) -/* 125C3C 802825FC 46000506 */ mov.s $f20, $f0 -/* 125C40 80282600 0C0AE006 */ jal sins -/* 125C44 80282604 96040000 */ lhu $a0, ($s0) -/* 125C48 80282608 C6240008 */ lwc1 $f4, 8($s1) -/* 125C4C 8028260C C6280004 */ lwc1 $f8, 4($s1) -/* 125C50 80282610 46142182 */ mul.s $f6, $f4, $f20 -/* 125C54 80282614 00000000 */ nop -/* 125C58 80282618 46080282 */ mul.s $f10, $f0, $f8 -/* 125C5C 8028261C 460A3401 */ sub.s $f16, $f6, $f10 -/* 125C60 80282620 46008487 */ neg.s $f18, $f16 -/* 125C64 80282624 E7B20038 */ swc1 $f18, 0x38($sp) -/* 125C68 80282628 0C0AE006 */ jal sins -/* 125C6C 8028262C 96040000 */ lhu $a0, ($s0) -/* 125C70 80282630 46000506 */ mov.s $f20, $f0 -/* 125C74 80282634 0C0AE00E */ jal coss -/* 125C78 80282638 96040000 */ lhu $a0, ($s0) -/* 125C7C 8028263C C6240004 */ lwc1 $f4, 4($s1) -/* 125C80 80282640 C6260008 */ lwc1 $f6, 8($s1) -/* 125C84 80282644 46040202 */ mul.s $f8, $f0, $f4 -/* 125C88 80282648 00000000 */ nop -/* 125C8C 8028264C 46143282 */ mul.s $f10, $f6, $f20 -/* 125C90 80282650 460A4400 */ add.s $f16, $f8, $f10 -/* 125C94 80282654 E7B00034 */ swc1 $f16, 0x34($sp) -/* 125C98 80282658 C6320000 */ lwc1 $f18, ($s1) -/* 125C9C 8028265C E7B20030 */ swc1 $f18, 0x30($sp) -/* 125CA0 80282660 0C0AE006 */ jal sins -/* 125CA4 80282664 96040002 */ lhu $a0, 2($s0) -/* 125CA8 80282668 46000506 */ mov.s $f20, $f0 -/* 125CAC 8028266C 0C0AE00E */ jal coss -/* 125CB0 80282670 96040002 */ lhu $a0, 2($s0) -/* 125CB4 80282674 C7A60038 */ lwc1 $f6, 0x38($sp) -/* 125CB8 80282678 8FA2004C */ lw $v0, 0x4c($sp) -/* 125CBC 8028267C C7B00030 */ lwc1 $f16, 0x30($sp) -/* 125CC0 80282680 46143202 */ mul.s $f8, $f6, $f20 -/* 125CC4 80282684 C4440000 */ lwc1 $f4, ($v0) -/* 125CC8 80282688 8FA30048 */ lw $v1, 0x48($sp) -/* 125CCC 8028268C 46100482 */ mul.s $f18, $f0, $f16 -/* 125CD0 80282690 46082280 */ add.s $f10, $f4, $f8 -/* 125CD4 80282694 460A9180 */ add.s $f6, $f18, $f10 -/* 125CD8 80282698 E4660000 */ swc1 $f6, ($v1) -/* 125CDC 8028269C C7A40034 */ lwc1 $f4, 0x34($sp) -/* 125CE0 802826A0 C4480004 */ lwc1 $f8, 4($v0) -/* 125CE4 802826A4 46082400 */ add.s $f16, $f4, $f8 -/* 125CE8 802826A8 E4700004 */ swc1 $f16, 4($v1) -/* 125CEC 802826AC 0C0AE00E */ jal coss -/* 125CF0 802826B0 96040002 */ lhu $a0, 2($s0) -/* 125CF4 802826B4 46000506 */ mov.s $f20, $f0 -/* 125CF8 802826B8 0C0AE006 */ jal sins -/* 125CFC 802826BC 96040002 */ lhu $a0, 2($s0) -/* 125D00 802826C0 C7AA0038 */ lwc1 $f10, 0x38($sp) -/* 125D04 802826C4 8FAE004C */ lw $t6, 0x4c($sp) -/* 125D08 802826C8 C7A80030 */ lwc1 $f8, 0x30($sp) -/* 125D0C 802826CC 46145182 */ mul.s $f6, $f10, $f20 -/* 125D10 802826D0 C5D20008 */ lwc1 $f18, 8($t6) -/* 125D14 802826D4 8FAF0048 */ lw $t7, 0x48($sp) -/* 125D18 802826D8 46080402 */ mul.s $f16, $f0, $f8 -/* 125D1C 802826DC 46069100 */ add.s $f4, $f18, $f6 -/* 125D20 802826E0 46102281 */ sub.s $f10, $f4, $f16 -/* 125D24 802826E4 E5EA0008 */ swc1 $f10, 8($t7) -/* 125D28 802826E8 8FBF0024 */ lw $ra, 0x24($sp) -/* 125D2C 802826EC 8FB10020 */ lw $s1, 0x20($sp) -/* 125D30 802826F0 8FB0001C */ lw $s0, 0x1c($sp) -/* 125D34 802826F4 D7B40010 */ ldc1 $f20, 0x10($sp) -/* 125D38 802826F8 03E00008 */ jr $ra -/* 125D3C 802826FC 27BD0048 */ addiu $sp, $sp, 0x48 diff --git a/asm/non_matchings/code_80281FA0/func_80282F44.s b/asm/non_matchings/code_80281FA0/func_80282F44.s index ff2227021..39bd03917 100644 --- a/asm/non_matchings/code_80281FA0/func_80282F44.s +++ b/asm/non_matchings/code_80281FA0/func_80282F44.s @@ -9,12 +9,12 @@ glabel func_80282F44 /* 1265A0 80282F60 8CC50000 */ lw $a1, ($a2) /* 1265A4 80282F64 8CC60004 */ lw $a2, 4($a2) /* 1265A8 80282F68 8E270008 */ lw $a3, 8($s1) -/* 1265AC 80282F6C 0C0A07E8 */ jal func_80281FA0 +/* 1265AC 80282F6C 0C0A07E8 */ jal vec3f_set_dupe /* 1265B0 80282F70 27A40044 */ addiu $a0, $sp, 0x44 /* 1265B4 80282F74 27A40038 */ addiu $a0, $sp, 0x38 /* 1265B8 80282F78 8E25000C */ lw $a1, 0xc($s1) /* 1265BC 80282F7C 8E260010 */ lw $a2, 0x10($s1) -/* 1265C0 80282F80 0C0A07E8 */ jal func_80281FA0 +/* 1265C0 80282F80 0C0A07E8 */ jal vec3f_set_dupe /* 1265C4 80282F84 8E270014 */ lw $a3, 0x14($s1) /* 1265C8 80282F88 8FA30060 */ lw $v1, 0x60($sp) /* 1265CC 80282F8C 24010001 */ li $at, 1 diff --git a/asm/non_matchings/code_80281FA0/func_80283430.s b/asm/non_matchings/code_80281FA0/func_80283430.s index c7b0794ef..0dad203cb 100644 --- a/asm/non_matchings/code_80281FA0/func_80283430.s +++ b/asm/non_matchings/code_80281FA0/func_80283430.s @@ -22,7 +22,7 @@ glabel func_80283430 /* 126AC0 80283480 3C0743FA */ lui $a3, 0x43fa /* 126AC4 80283484 4405A000 */ mfc1 $a1, $f20 /* 126AC8 80283488 4406A000 */ mfc1 $a2, $f20 -/* 126ACC 8028348C 0C0A07E8 */ jal func_80281FA0 +/* 126ACC 8028348C 0C0A07E8 */ jal vec3f_set_dupe /* 126AD0 80283490 00000000 */ nop /* 126AD4 80283494 3C048028 */ lui $a0, %hi(D_80287710) # $a0, 0x8028 /* 126AD8 80283498 0C0A07F7 */ jal func_80281FDC @@ -31,13 +31,13 @@ glabel func_80283430 /* 126AE4 802834A4 4405A000 */ mfc1 $a1, $f20 /* 126AE8 802834A8 4406A000 */ mfc1 $a2, $f20 /* 126AEC 802834AC 24847704 */ addiu $a0, %lo(D_80287704) # addiu $a0, $a0, 0x7704 -/* 126AF0 802834B0 0C0A07E8 */ jal func_80281FA0 +/* 126AF0 802834B0 0C0A07E8 */ jal vec3f_set_dupe /* 126AF4 802834B4 3C0743FA */ lui $a3, 0x43fa /* 126AF8 802834B8 3C048028 */ lui $a0, %hi(D_8028771C) # $a0, 0x8028 /* 126AFC 802834BC 4405A000 */ mfc1 $a1, $f20 /* 126B00 802834C0 4407A000 */ mfc1 $a3, $f20 /* 126B04 802834C4 2484771C */ addiu $a0, %lo(D_8028771C) # addiu $a0, $a0, 0x771c -/* 126B08 802834C8 0C0A07E8 */ jal func_80281FA0 +/* 126B08 802834C8 0C0A07E8 */ jal vec3f_set_dupe /* 126B0C 802834CC 3C063F80 */ lui $a2, 0x3f80 /* 126B10 802834D0 3C018028 */ lui $at, %hi(D_802876F8) # $at, 0x8028 /* 126B14 802834D4 3C048028 */ lui $a0, %hi(D_80287728) # $a0, 0x8028 diff --git a/asm/non_matchings/code_80281FA0/func_80283648.s b/asm/non_matchings/code_80281FA0/func_80283648.s index 8ee5c6f83..e0babac5c 100644 --- a/asm/non_matchings/code_80281FA0/func_80283648.s +++ b/asm/non_matchings/code_80281FA0/func_80283648.s @@ -5,15 +5,15 @@ glabel func_80283648 /* 126C94 80283654 0C0A0D0A */ jal func_80283428 /* 126C98 80283658 00808025 */ move $s0, $a0 /* 126C9C 8028365C 27A40058 */ addiu $a0, $sp, 0x58 -/* 126CA0 80283660 0C0A0802 */ jal func_80282008 +/* 126CA0 80283660 0C0A0802 */ jal vec3f_copy_dupe /* 126CA4 80283664 02002825 */ move $a1, $s0 /* 126CA8 80283668 2605000C */ addiu $a1, $s0, 0xc /* 126CAC 8028366C AFA50034 */ sw $a1, 0x34($sp) -/* 126CB0 80283670 0C0A0802 */ jal func_80282008 +/* 126CB0 80283670 0C0A0802 */ jal vec3f_copy_dupe /* 126CB4 80283674 27A4004C */ addiu $a0, $sp, 0x4c /* 126CB8 80283678 26050018 */ addiu $a1, $s0, 0x18 /* 126CBC 8028367C AFA50030 */ sw $a1, 0x30($sp) -/* 126CC0 80283680 0C0A0802 */ jal func_80282008 +/* 126CC0 80283680 0C0A0802 */ jal vec3f_copy_dupe /* 126CC4 80283684 27A40040 */ addiu $a0, $sp, 0x40 /* 126CC8 80283688 3C048028 */ lui $a0, %hi(D_802876E0) # $a0, 0x8028 /* 126CCC 8028368C 248476E0 */ addiu $a0, %lo(D_802876E0) # addiu $a0, $a0, 0x76e0 @@ -25,11 +25,11 @@ glabel func_80283648 /* 126CE4 802836A4 A02376FC */ sb $v1, %lo(D_802876FC)($at) /* 126CE8 802836A8 3C048028 */ lui $a0, %hi(D_802876EC) # $a0, 0x8028 /* 126CEC 802836AC 248476EC */ addiu $a0, %lo(D_802876EC) # addiu $a0, $a0, 0x76ec -/* 126CF0 802836B0 0C0A0802 */ jal func_80282008 +/* 126CF0 802836B0 0C0A0802 */ jal vec3f_copy_dupe /* 126CF4 802836B4 02002825 */ move $a1, $s0 /* 126CF8 802836B8 3C048028 */ lui $a0, %hi(D_802876E0) # $a0, 0x8028 /* 126CFC 802836BC 248476E0 */ addiu $a0, %lo(D_802876E0) # addiu $a0, $a0, 0x76e0 -/* 126D00 802836C0 0C0A0802 */ jal func_80282008 +/* 126D00 802836C0 0C0A0802 */ jal vec3f_copy_dupe /* 126D04 802836C4 8FA50034 */ lw $a1, 0x34($sp) /* 126D08 802836C8 3C048028 */ lui $a0, %hi(D_802876E0) # $a0, 0x8028 /* 126D0C 802836CC 0C0A12BA */ jal func_80284AE8 @@ -155,11 +155,11 @@ glabel func_80283648 /* 126EC4 80283884 46009107 */ neg.s $f4, $f18 /* 126EC8 80283888 02002025 */ move $a0, $s0 /* 126ECC 8028388C 46040182 */ mul.s $f6, $f0, $f4 -/* 126ED0 80283890 0C0A0802 */ jal func_80282008 +/* 126ED0 80283890 0C0A0802 */ jal vec3f_copy_dupe /* 126ED4 80283894 E6060020 */ swc1 $f6, 0x20($s0) /* 126ED8 80283898 3C058028 */ lui $a1, %hi(D_802876E0) # $a1, 0x8028 /* 126EDC 8028389C 24A576E0 */ addiu $a1, %lo(D_802876E0) # addiu $a1, $a1, 0x76e0 -/* 126EE0 802838A0 0C0A0802 */ jal func_80282008 +/* 126EE0 802838A0 0C0A0802 */ jal vec3f_copy_dupe /* 126EE4 802838A4 8FA40034 */ lw $a0, 0x34($sp) /* 126EE8 802838A8 3C08800E */ lui $t0, %hi(D_800DC50C) # $t0, 0x800e /* 126EEC 802838AC 8D08C50C */ lw $t0, %lo(D_800DC50C)($t0) @@ -194,15 +194,15 @@ glabel func_80283648 /* 126F5C 8028391C 248476E0 */ addiu $a0, %lo(D_802876E0) # addiu $a0, $a0, 0x76e0 /* 126F60 80283920 3C048028 */ lui $a0, %hi(D_80287710) # $a0, 0x8028 /* 126F64 80283924 24847710 */ addiu $a0, %lo(D_80287710) # addiu $a0, $a0, 0x7710 -/* 126F68 80283928 0C0A0802 */ jal func_80282008 +/* 126F68 80283928 0C0A0802 */ jal vec3f_copy_dupe /* 126F6C 8028392C 02002825 */ move $a1, $s0 /* 126F70 80283930 3C048028 */ lui $a0, %hi(D_80287704) # $a0, 0x8028 /* 126F74 80283934 24847704 */ addiu $a0, %lo(D_80287704) # addiu $a0, $a0, 0x7704 -/* 126F78 80283938 0C0A0802 */ jal func_80282008 +/* 126F78 80283938 0C0A0802 */ jal vec3f_copy_dupe /* 126F7C 8028393C 8FA50034 */ lw $a1, 0x34($sp) /* 126F80 80283940 3C048028 */ lui $a0, %hi(D_8028771C) # $a0, 0x8028 /* 126F84 80283944 2484771C */ addiu $a0, %lo(D_8028771C) # addiu $a0, $a0, 0x771c -/* 126F88 80283948 0C0A0802 */ jal func_80282008 +/* 126F88 80283948 0C0A0802 */ jal vec3f_copy_dupe /* 126F8C 8028394C 8FA50030 */ lw $a1, 0x30($sp) /* 126F90 80283950 8FBF0024 */ lw $ra, 0x24($sp) /* 126F94 80283954 3C028028 */ lui $v0, %hi(D_802876D8) # $v0, 0x8028 diff --git a/src/code_80281FA0.c b/src/code_80281FA0.c index c6d11f742..72f0c80a0 100644 --- a/src/code_80281FA0.c +++ b/src/code_80281FA0.c @@ -3,18 +3,19 @@ #include #include #include "variables.h" +#include "math_util.h" #include "code_80281FA0.h" -void func_80281FA0(Vec3f arg0, f32 arg1, f32 arg2, f32 arg3) { - arg0[0] = arg1; - arg0[1] = arg2; - arg0[2] = arg3; +void vec3f_set_dupe(Vec3f dest, f32 arg1, f32 arg2, f32 arg3) { + dest[0] = arg1; + dest[1] = arg2; + dest[2] = arg3; } -void func_80281FC0(Vec3s arg0, s16 arg1, s16 arg2, s16 arg3) { - arg0[0] = arg1; - arg0[1] = arg2; - arg0[2] = arg3; +void vec3s_set_dupe(Vec3s dest, s16 arg1, s16 arg2, s16 arg3) { + dest[0] = arg1; + dest[1] = arg2; + dest[2] = arg3; } void func_80281FDC(Vec3f arg0) { @@ -29,16 +30,16 @@ void func_80281FF4(Vec3s arg0) { arg0[0] = arg0[2]; } -void func_80282008(Vec3f arg0, Vec3f arg1) { - arg0[0] = arg1[0]; - arg0[1] = arg1[1]; - arg0[2] = arg1[2]; +void vec3f_copy_dupe(Vec3f dest, Vec3f src) { + dest[0] = src[0]; + dest[1] = src[1]; + dest[2] = src[2]; } -void func_80282024(Vec3s arg0, Vec3s arg1) { - arg0[0] = arg1[0]; - arg0[1] = arg1[1]; - arg0[2] = arg1[2]; +void vec3s_copy_dupe(Vec3s dest, Vec3s src) { + dest[0] = src[0]; + dest[1] = src[1]; + dest[2] = src[2]; } void func_80282040(void) { @@ -49,47 +50,23 @@ void func_80282048(void) { } -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -// ? func_80282008(f32 *); // extern -f32 sins(u16); // extern -f32 coss(u16); // extern +UNUSED void func_80282050(Vec3f dest, Vec3f src, s16 angle) { + Vec3f sp2C; -UNUSED void func_80282050(Vec3f arg0, UNUSED f32 arg1, u16 arg2) { - Vec3f sp20; - Vec3f sp30; - // f32 sp28 = sins(arg2); - - func_80282008(arg0, sp30); - arg0[0] = (coss(arg2 & 0xFFFF) * sp20[2]) + (sp30[1] * sins(arg2)); - arg0[1] = sp30[0]; - // sp28 = coss(arg2 & 0xFFFF); - arg0[2] = (sp30[1] * coss(arg2 & 0xFFFF)) - (sins(arg2 & 0xFFFF) * sp20[2]); + vec3f_copy_dupe(sp2C, src); + dest[0] = (sp2C[2] * sins(angle)) + (sp2C[0] * coss(angle)); + dest[1] = sp2C[1]; + dest[2] = (sp2C[2] * coss(angle)) - (sp2C[0] * sins(angle)); } -#else -GLOBAL_ASM("asm/non_matchings/code_80281FA0/func_80282050.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80282008(f32 *); // extern -f32 sins(u16); // extern -f32 coss(u16); // extern +UNUSED void func_802820F8(f32 *dest, f32 *src, s16 angle) { + Vec3f sp2C; -UNUSED void func_802820F8(void *arg0, u16 arg2) { - f32 sp2C; - f32 sp28; - - func_80282008(&sp2C); - sp28 = coss(arg2); - arg0->unk8 = (sp34 * sp28) - (sins(arg2 & 0xFFFF) * sp30); - sp28 = sins(arg2 & 0xFFFF); - arg0->unk4 = (coss(arg2 & 0xFFFF) * sp30) + (sp34 * sp28); - arg0->unk0 = sp2C; + vec3f_copy_dupe(sp2C, src); + dest[2] = (sp2C[2] * coss(angle)) - (sp2C[1] * sins(angle)); + dest[1] = (sp2C[2] * sins(angle)) + (sp2C[1] * coss(angle)); + dest[0] = sp2C[0]; } -#else -GLOBAL_ASM("asm/non_matchings/code_80281FA0/func_802820F8.s") -#endif // Called just before fish shoots trophy at awards cutscene. s32 func_802821A0(f32 *arg0, f32 arg1, f32 arg2) { @@ -191,95 +168,38 @@ void func_80282434(s32 arg0) { func_8028240C(); } -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s16 atan2s(f32, f32); // extern +void func_80282454(Vec3f arg0, Vec3f arg1, f32 *distance, s16 *arg3, s16 *arg4) { + f32 xdist; + f32 ydist; + f32 zdist; -void func_80282454(void *arg0, void *arg1, f32 *arg2, s16 *arg3, s16 *arg4) { - f32 sp2C; - f32 sp28; - f32 sp24; - f32 sp1C; - f32 sp18; - f32 temp_f0; - f32 temp_f14; - f32 temp_f16; - f32 temp_f18; - f32 temp_f2; - - temp_f0 = arg1->unk0 - arg0->unk0; - temp_f2 = arg1->unk4 - arg0->unk4; - temp_f16 = temp_f0 * temp_f0; - sp2C = temp_f0; - temp_f14 = arg1->unk8 - arg0->unk8; - sp28 = temp_f2; - temp_f18 = temp_f14 * temp_f14; - sp24 = temp_f14; - sp1C = temp_f16; - sp18 = temp_f18; - *arg2 = sqrtf(temp_f16 + (temp_f2 * temp_f2) + temp_f18); - *arg3 = atan2s(sp28, sqrtf(temp_f16 + temp_f18)); - *arg4 = atan2s(sp2C, temp_f14); + xdist = arg1[0] - arg0[0]; + ydist = arg1[1] - arg0[1]; + zdist = arg1[2] - arg0[2]; + *distance = sqrtf((xdist * xdist) + (ydist * ydist) + (zdist * zdist)); + *arg3 = atan2s(ydist, sqrtf((xdist * xdist) + (zdist * zdist))); + *arg4 = atan2s(xdist, zdist); } -#else -GLOBAL_ASM("asm/non_matchings/code_80281FA0/func_80282454.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -f32 sins(u16); // extern -f32 coss(u16); // extern - -void func_80282504(void *arg0, void *arg1, f32 arg2, s32 arg3, u16 arg4) { - f32 sp24; - s32 sp20; - s32 sp1C; - s32 temp_a0; - - temp_a0 = arg3 & 0xFFFF; - sp20 = temp_a0; - sp24 = coss(temp_a0); - sp1C = arg4; - arg1->unk0 = (sins(arg4) * (arg2 * sp24)) + arg0->unk0; - arg1->unk4 = (sins(sp22) * arg2) + arg0->unk4; - sp24 = coss(sp22); - arg1->unk8 = (coss(sp1E) * (arg2 * sp24)) + arg0->unk8; +void func_80282504(Vec3f arg0, Vec3f arg1, f32 arg2, s16 arg3, s16 arg4) { + arg1[0] = arg0[0] + (arg2 * coss(arg3) * sins(arg4)); + arg1[1] = arg0[1] + (arg2 * sins(arg3)); + arg1[2] = arg0[2] + (arg2 * coss(arg3) * coss(arg4)); } -#else -GLOBAL_ASM("asm/non_matchings/code_80281FA0/func_80282504.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80282008(? *); // extern -f32 sins(u16); // extern -f32 coss(u16); // extern +UNUSED void func_802825C8(Vec3f arg0, Vec3f arg1, Vec3f arg2, Vec3s arg3) { + Vec3f sp3C; + Vec3f sp30; -void func_802825C8(void *arg0, void *arg1, void *arg2, void *arg3) { - ? sp3C; - f32 sp38; - f32 sp34; - f32 sp30; - f32 temp_f20; - f32 temp_f20_2; - f32 temp_f20_3; - f32 temp_f20_4; - - func_80282008(&sp3C); - temp_f20 = coss(arg3->unk0); - sp38 = -((arg2->unk8 * temp_f20) - (sins(arg3->unk0) * arg2->unk4)); - temp_f20_2 = sins(arg3->unk0); - sp34 = (coss(arg3->unk0) * arg2->unk4) + (arg2->unk8 * temp_f20_2); - sp30 = arg2->unk0; - temp_f20_3 = sins(arg3->unk2); - arg0->unk0 = (coss(arg3->unk2) * sp30) + (arg1->unk0 + (sp38 * temp_f20_3)); - arg0->unk4 = sp34 + arg1->unk4; - temp_f20_4 = coss(arg3->unk2); - arg0->unk8 = (arg1->unk8 + (sp38 * temp_f20_4)) - (sins(arg3->unk2) * sp30); + // What's up with this? Why do we copy arg1 to an unused local variable? + vec3f_copy_dupe(sp3C, arg1); + sp30[2] = -((arg2[2] * coss(arg3[0])) - (arg2[1] * sins(arg3[0]))); + sp30[1] = (arg2[2] * sins(arg3[0])) + (arg2[1] * coss(arg3[0])); + sp30[0] = arg2[0]; + arg0[0] = arg1[0] + (sp30[2] * sins(arg3[1])) + (sp30[0] * coss(arg3[1])); + arg0[1] = arg1[1] + sp30[1]; + arg0[2] = arg1[2] + (sp30[2] * coss(arg3[1])) - (sp30[0] * sins(arg3[1])); } -#else -GLOBAL_ASM("asm/non_matchings/code_80281FA0/func_802825C8.s") -#endif #ifdef MIPS_TO_C //generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 @@ -536,7 +456,7 @@ void func_80282F00(s16 *arg0, s16 arg1) { #ifdef MIPS_TO_C //generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80281FA0(?32 *, ?32, ?32, ?32); // extern +? vec3f_set_dupe(?32 *, ?32, ?32, ?32); // extern s32 func_80282364(void *, ?, s16); // extern ? func_80282454(?32 *, ?32 *, s32 *, s16 *, s16 *); // extern ? func_80282504(?32 *, ?32 *, s32, s16, s32); // extern @@ -554,8 +474,8 @@ void func_80282F44(s32 arg0, void *arg1, void *arg2) { s32 temp_t9; void *temp_s0; - func_80281FA0(&sp44, arg2->unk0, arg2->unk4, arg2->unk8); - func_80281FA0(&sp38, arg2->unkC, arg2->unk10, arg2->unk14); + vec3f_set_dupe(&sp44, arg2->unk0, arg2->unk4, arg2->unk8); + vec3f_set_dupe(&sp38, arg2->unkC, arg2->unk10, arg2->unk14); if ((arg0 == 0) || (arg0 == 1)) { if ((arg1->unk48 != 0) || (arg1->unk4A != 0)) { func_80282454(&sp44, &sp38, &sp5C, &sp50, &sp52); @@ -650,35 +570,31 @@ s32 func_80283330(s32 arg0) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80283330(?, s32 *); // extern -extern ? D_802856D4; -extern s8 D_802874F5; -extern s32 D_802876D8; +//generated by m2c commit bece1d6db17040749f77dbbd090363cc6fb926f9 +static ? D_802856D4; /* unable to generate initializer */ -s32 func_8028336C(s32 arg0, ? arg1) { +s32 func_8028336C(s32 arg0, Camera *camera) { ? sp20; s32 temp_v1; s32 temp_v1_2; temp_v1 = D_802876D8; - sp20.unk0 = D_802856D4.unk0; - sp20.unk4 = D_802856D4.unk4; + sp20.unk0 = (s32) D_802856D4.unk0; + sp20.unk4 = (s32) D_802856D4.unk4; if (temp_v1 != 0) { return temp_v1; } temp_v1_2 = D_800DC50C; - if (temp_v1_2 != 5) { - if (temp_v1_2 != 9) { - - } else { - D_802876D8 = 6; - } - } else { - D_802876D8 = *(&sp20 + D_802874F5); + switch (temp_v1_2) { /* irregular */ + case 5: + D_802876D8 = (s32) *(&sp20 + D_802874F5); + break; + case 9: + D_802876D8 = 6; + break; } if (temp_v1_2 == 9) { - func_80283330(6, &D_802876D8); + func_80283330(6); } return D_802876D8; } @@ -691,58 +607,42 @@ s32 func_80283428(void) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80281FA0(? *, f32, f32, f32); // extern -? func_80281FDC(? *); // extern -? func_80281FF4(? *); // extern -? func_8028240C(); // extern -extern u16 D_800DC5E4; -extern f32 D_802856B0; -extern f32 D_802856B4; -extern f32 D_802856B8; -extern f32 D_802856C0; -extern s32 D_802856C4; -extern s16 D_802876D0; -extern s16 D_802876D2; -extern s32 D_802876D4; -extern s32 D_802876D8; -extern ? D_802876E0; -extern ? D_802876EC; +//generated by m2c commit bece1d6db17040749f77dbbd090363cc6fb926f9 +extern f32 D_802876EC; extern f32 D_802876F8; extern f32 D_80287700; -extern ? D_80287704; -extern ? D_80287710; -extern ? D_8028771C; -extern ? D_80287728; -extern ? D_8028772E; -extern ? D_80287734; -extern ? D_8028773A; +extern f32 D_80287704; +extern f32 D_80287710; +extern f32 D_8028771C; +extern s16 D_80287728; +extern s16 D_8028772E; +extern s16 D_80287734; +extern s16 D_8028773A; extern s16 D_80287740; extern f32 D_8028774E; -extern ? D_80287750; -extern ? D_8028775C; -extern ? D_80287818; +extern f32 D_80287750; +extern s16 D_8028775C; extern ? D_80287824; -extern ? D_80287998; -extern ? D_80287B18; +static s32 D_802856C4 = 0; +f32 D_802856B0 = 98.0f; +f32 D_802856B4 = 12.0f; +f32 D_802856B8 = 52.0f; +f32 D_802856C0 = 0.0f; void func_80283430(void) { - ? *temp_a0; - ? *temp_s0; - u32 temp_v0; - ? *phi_a0; - ? *phi_v0; - ? *phi_s1; - ? *phi_s0; + f32 *var_s1; + s16 *var_s0; + s32 *var_a0; + s32 *var_v0; D_802876D8 = 0; D_802876E0.unk1C = 0; - D_802856C4 = D_800DC5E4; + D_802856C4 = (s32) D_800DC5E4; func_80281FDC(&D_802876EC); - func_80281FA0(&D_802876E0, 0.0f, 0.0f, 500.0f); + vec3f_set_dupe((f32 *) &D_802876E0, 0.0f, 0.0f, 500.0f); func_80281FDC(&D_80287710); - func_80281FA0(&D_80287704, 0.0f, 0.0f, 500.0f); - func_80281FA0(&D_8028771C, 0.0f, 1.0f, 0.0f); + vec3f_set_dupe(&D_80287704, 0.0f, 0.0f, 500.0f); + vec3f_set_dupe(&D_8028771C, 0.0f, 1.0f, 0.0f); D_802876F8 = 0.0f; func_80281FF4(&D_80287728); func_80281FF4(&D_8028772E); @@ -753,32 +653,29 @@ void func_80283430(void) { D_8028774E = 0.0f; D_8028774E = 0; D_8028774E = 0; - D_80287700 = D_80150130; + D_80287700 = *D_80150130; D_802876D0 = 0; D_802876D2 = 0; D_802876D4 = 0; func_8028240C(); - phi_a0 = &D_80287818; - phi_v0 = &D_80287998; + var_v0 = &D_80287998; + var_a0 = &D_80287818; do { - temp_v0 = phi_v0 + 0xC; - temp_a0 = phi_a0 + 0xC; - temp_a0->unk-C = -1; - temp_v0->unk-C = -1; - phi_a0 = temp_a0; - phi_v0 = temp_v0; - } while (temp_v0 < &D_80287B18); - phi_s1 = &D_80287750; - phi_s0 = &D_8028775C; + var_v0 += 0xC; + var_a0 += 0xC; + var_a0->unk-C = -1; + var_v0->unk-C = -1; + } while ((u32) var_v0 < (u32) &D_80287B18); + var_s0 = &D_8028775C; + var_s1 = &D_80287750; do { - func_80281FDC(phi_s1); - func_80281FF4(phi_s0); - temp_s0 = phi_s0 + 0x14; - phi_s1 += 0x14; - phi_s0 = temp_s0; - } while (temp_s0 != &D_80287824); + func_80281FDC(var_s1); + func_80281FF4(var_s0); + var_s0 += 0x14; + var_s1 += 0x14; + } while (var_s0 != &D_80287824); D_802856C0 = 0.0f; - if (D_800DC50C == ENDING_SEQUENCE) { + if (D_800DC50C == 5) { D_802856B0 = 120.0f; D_802856B4 = 12.0f; D_802856B8 = 120.0f; @@ -793,109 +690,95 @@ GLOBAL_ASM("asm/non_matchings/code_80281FA0/func_80283430.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80282008(? *, ? *); // extern -? func_80282454(? *, ? *, s32 *, s16 *, s16 *); // extern -? func_80282504(? *, ? *, s32, s16, s32); // extern -? func_80282F44(?, ? *, ? *); // extern -? func_80283100(? *, f32 *); // extern -s32 func_8028336C(? *, ? *); // extern -? func_80283428(); // extern -? func_80284AE8(? *); // extern -f32 sins(u16); // extern -f32 coss(u16); // extern -extern s32 D_802876D8; -extern ? D_802876E0; -extern ? D_802876EC; +//generated by m2c commit bece1d6db17040749f77dbbd090363cc6fb926f9 +? func_80282F44(?, s32 *, Camera *); /* extern */ +? func_80283100(s32 *, f32 *); /* extern */ +s32 func_8028336C(s32 *, Camera *); /* extern */ +? func_80284AE8(s32 *); /* extern */ +extern f32 D_802876EC; extern f32 D_802876F8; extern s8 D_802876FC; -extern ? D_80287704; -extern ? D_80287710; -extern ? D_8028771C; +extern f32 D_80287704; +extern f32 D_80287710; +extern f32 D_8028771C; -s32 func_80283648(? *arg0) { +s32 func_80283648(Camera *camera) { s16 sp6E; s16 sp6C; - s32 sp64; - ? sp58; - ? sp4C; - ? sp40; + f32 sp64; + f32 sp58; + f32 sp4C; + f32 sp40; f32 sp38; - ? *sp34; - ? *sp30; + f32 *sp34; + f32 *sp30; s32 sp2C; - ? *temp_a1; - ? *temp_a1_2; - f32 temp_f2; + f32 *temp_a1; + f32 *temp_a1_2; + f32 var_f0; + f32 var_f2; + s16 var_a3; s32 temp_t9; s8 temp_v1; - s32 phi_a3; - s16 phi_a3_2; - f32 phi_f2; - f32 phi_f2_2; - f32 phi_f0; func_80283428(); - func_80282008(&sp58, arg0); - temp_a1 = arg0 + 0xC; + vec3f_copy_dupe(&sp58, camera->pos); + temp_a1 = &camera->unk; sp34 = temp_a1; - func_80282008(&sp4C, temp_a1); - temp_a1_2 = arg0 + 0x18; + vec3f_copy_dupe(&sp4C, temp_a1); + temp_a1_2 = &camera->angleX; sp30 = temp_a1_2; - func_80282008(&sp40, temp_a1_2); - temp_v1 = func_8028336C(&D_802876E0, arg0) & 0xFF; + vec3f_copy_dupe(&sp40, temp_a1_2); + temp_v1 = func_8028336C(&D_802876E0, camera) & 0xFF; D_802876FC = temp_v1; if (temp_v1 != 0) { - func_80282008(&D_802876EC, arg0); - func_80282008(&D_802876E0, sp34); + vec3f_copy_dupe(&D_802876EC, camera->pos); + vec3f_copy_dupe((f32 *) &D_802876E0, sp34); func_80284AE8(&D_802876E0); - func_80282454(&D_802876EC, &D_802876E0, &sp64, &sp6E, &sp6C); - phi_a3 = sp6E; - if (sp6E >= 0x3800) { - phi_a3 = 0x3800; + func_80282454(&D_802876EC, (f32 *) &D_802876E0, &sp64, &sp6E, &sp6C); + var_a3 = sp6E; + if (var_a3 >= 0x3800) { + var_a3 = 0x3800; } - phi_a3_2 = phi_a3; - if (phi_a3 < -0x37FF) { - phi_a3_2 = -0x3800; + if (var_a3 < -0x37FF) { + var_a3 = -0x3800; } - if ((phi_a3_2 == 0x3800) || (sp6E = phi_a3_2, (phi_a3_2 == -0x3800))) { - sp6E = phi_a3_2; - func_80282504(&D_802876EC, &D_802876E0, sp64, phi_a3_2, sp6C); + if ((var_a3 == 0x3800) || (sp6E = var_a3, (var_a3 == -0x3800))) { + sp6E = var_a3; + func_80282504(&D_802876EC, (f32 *) &D_802876E0, sp64, var_a3, (s16) (s32) sp6C); } - temp_f2 = D_802876F8; - phi_f2 = temp_f2; - if (temp_f2 > 65536.0f) { - phi_f2 = temp_f2 - 65536.0f; + var_f2 = D_802876F8; + if (var_f2 > 65536.0f) { + var_f2 -= 65536.0f; } - phi_f2_2 = phi_f2; - if (phi_f2 < -65536.0f) { - phi_f2_2 = phi_f2 + 65536.0f; + if (var_f2 < -65536.0f) { + var_f2 += 65536.0f; } - D_802876F8 = phi_f2_2; - phi_f0 = phi_f2_2; - if (phi_f2_2 < 0.0f) { - phi_f0 = 65536.0f + phi_f2_2; + D_802876F8 = var_f2; + var_f0 = var_f2; + if (var_f2 < 0.0f) { + var_f0 = 65536.0f + var_f2; } - temp_t9 = phi_f0 & 0xFFFF; + temp_t9 = (u32) var_f0 & 0xFFFF; sp2C = temp_t9; - sp38 = sins(65536.0f, temp_t9); - arg0->unk18 = coss(sp6C) * sp38; - arg0->unk1C = coss(sp2E); - sp38 = sins((bitwise f32) sp2E); - arg0->unk20 = sins((bitwise f32) sp6C) * -sp38; - func_80282008(arg0, &D_802876EC); - func_80282008(sp34, &D_802876E0); - if ((D_800DC50C == CREDITS_SEQUENCE) && (gIsMirrorMode != 0)) { - arg0->unk0 = -arg0->unk0; - arg0->unkC = -arg0->unkC; + sp38 = sins((u16) temp_t9); + camera->angleX = coss((u16) sp6C) * sp38; + camera->angleY = coss(unksp2E); + sp38 = sins(unksp2E); + camera->angleZ = sins((u16) sp6C) * -sp38; + vec3f_copy_dupe(camera->pos, &D_802876EC); + vec3f_copy_dupe(sp34, (f32 *) &D_802876E0); + if ((D_800DC50C == 9) && (gIsMirrorMode != 0)) { + camera->pos[0] = -camera->pos[0]; + camera->unk = -camera->unk; } } - func_80282F44(0, &D_802876E0, arg0); - func_80282F44(1, &D_802876E0, arg0); - func_80283100(&D_802876E0, &D_80150130); - func_80282008(&D_80287710, arg0); - func_80282008(&D_80287704, sp34); - func_80282008(&D_8028771C, sp30); + func_80282F44(0, &D_802876E0, camera); + func_80282F44(1, &D_802876E0, camera); + func_80283100(&D_802876E0, D_80150130); + vec3f_copy_dupe(&D_80287710, camera->pos); + vec3f_copy_dupe(&D_80287704, sp34); + vec3f_copy_dupe(&D_8028771C, sp30); return D_802876D8; } #else @@ -1030,7 +913,7 @@ void func_80283EA0(s32 arg0) { } void func_80283ED0(Vec3f arg0) { - func_80282008(arg0, &gPlayerTwo->pos[0]); + vec3f_copy_dupe(arg0, &gPlayerTwo->pos[0]); } void func_80283EF8(Vec3f arg0) { @@ -1046,7 +929,7 @@ void func_80283F6C(s32 arg0) { } void func_80283FCC(Vec3f arg0) { - func_80282008(arg0, &gPlayerThree->pos[0]); + vec3f_copy_dupe(arg0, &gPlayerThree->pos[0]); } void func_80283FF4(Vec3f arg0) { @@ -1100,7 +983,7 @@ GLOBAL_ASM("asm/non_matchings/code_80281FA0/func_80284184.s") void func_802841E8(Vec3f arg0) { func_80282E58(arg0, &D_80285940, 0); - func_80281FA0(arg0, -3202.0f, 90.0f, -478.0f); + vec3f_set_dupe(arg0, -3202.0f, 90.0f, -478.0f); } void func_8028422C(s32 arg0) { @@ -1230,16 +1113,33 @@ GLOBAL_ASM("asm/non_matchings/code_80281FA0/func_802846E4.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80280268(u8); // extern -? func_80282D90(s32, s32, s32, ?); // extern -? func_802832C4(? *, s32, s16, s16); // extern -extern u16 D_800DC5E4; -extern f32 D_802856B4; -extern ? D_80286A04; -extern ? D_80286A10; -extern ? D_80286B34; -extern s16 D_802876D2; +//generated by m2c commit bece1d6db17040749f77dbbd090363cc6fb926f9 +? func_80280268(u8); /* extern */ +static ? D_80286A04; /* unable to generate initializer */ +static ? D_80286A10; /* unable to generate initializer */ +static u16 D_80286B34[0x14] = { + 0x0096, + 0x00F3, + 0x00F3, + 0x00F3, + 0x00F3, + 0x00F3, + 0x00F3, + 0x00F3, + 0x00F3, + 0x00F3, + 0x00F3, + 0x00F3, + 0x00F3, + 0x00F3, + 0x00F2, + 0x00F2, + 0x00F2, + 0x00F9, + 0x00F0, + 0, +}; +f32 D_802856B4 = 12.0f; void func_802847CC(s32 arg0) { u16 sp2E; @@ -1248,59 +1148,59 @@ void func_802847CC(s32 arg0) { f32 temp_f4; s16 temp_a2; s16 temp_a2_2; - s32 temp_f6; + s32 var_t9; u16 temp_v0; u16 temp_v0_5; u8 temp_v0_2; void *temp_v0_3; void *temp_v0_4; - s32 phi_t9; temp_f4 = D_802856B4; - temp_f6 = temp_f4; temp_v0 = *(&D_80286A10 + (D_800DC5E4 * 0x10)); - if ((MIPS2C_ERROR(cfc1) & 0x78) != 0) { - if ((MIPS2C_ERROR(cfc1) & 0x78) == 0) { - phi_t9 = (temp_f4 - 2.1474836e9f) | 0x80000000; + if ((M2C_ERROR(cfc1) & 0x78) != 0) { + if ((M2C_ERROR(cfc1) & 0x78) == 0) { + var_t9 = (s32) (temp_f4 - 2.1474836e9f) | 0x80000000; } else { goto block_3; } } else { - phi_t9 = temp_f6; - if (temp_f6 < 0) { + var_t9 = (s32) temp_f4; + if (var_t9 < 0) { block_3: - phi_t9 = -1; + var_t9 = -1; } } - sp2E = (temp_v0 - phi_t9) - 0xA; + sp2E = (temp_v0 - var_t9) - 0xA; sp2C = temp_v0; - func_802832C4(&func_80283CD0, arg0, 0, 0); - func_802832C4(&func_80283A00, arg0, 8, 8); - func_802832C4(&func_80283C78, arg0, 0x95, 0x95); - func_802832C4(&func_80282434, arg0, 0, 0); + func_802832C4(func_80283CD0, arg0, 0, 0); + func_802832C4(func_80283A00, arg0, 8, 8); + func_802832C4(func_80283C78, arg0, 0x0095, 0x0095); + func_802832C4(func_80282434, arg0, 0, 0); temp_v0_2 = *(&D_80286A04 + (D_800DC5E4 * 0x10)); - if (temp_v0_2 != 1) { - if (temp_v0_2 != 2) { - func_802832C4(&func_802839E0, arg0, 0, 0); - sp24 = sp2E; - func_802832C4(&func_802839CC, arg0, sp2E, sp2E); - temp_a2 = sp2E - 0x14; - func_802832C4(&func_802839E0, arg0, temp_a2, temp_a2); - temp_v0_3 = (D_800DC5E4 * 0x10) + &D_80286A04; - func_80282D90(arg0, temp_v0_3->unk4, temp_v0_3->unk8, 0); - } else { - func_802832C4(&func_802839E0, arg0, 0, 0); - func_802832C4(&func_80283D04, arg0, 0xF7, 0xF7); - temp_v0_4 = (D_800DC5E4 * 0x10) + &D_80286A04; - func_80282D90(arg0, temp_v0_4->unk4, temp_v0_4->unk8, 0); - } - } else { - func_802832C4(&func_802839CC, arg0, 0, -1); + switch (temp_v0_2) { /* irregular */ + case 1: + func_802832C4(func_802839CC, arg0, 0, -1); + temp_a2 = sp2E - 0x14; + func_802832C4(func_802839E0, arg0, temp_a2, temp_a2); + break; + case 2: + func_802832C4(func_802839B4, arg0, 0, 0); + func_802832C4(func_80283D04, arg0, 0x00F7, 0x00F7); + temp_v0_3 = (D_800DC5E4 * 0x10) + &D_80286A04; + func_80282D90(arg0, temp_v0_3->unk4, temp_v0_3->unk8, 0); + break; + default: + func_802832C4(func_802839B4, arg0, 0, 0); + sp24 = (s32) sp2E; + func_802832C4(func_802839CC, arg0, (s16) sp2E, (s16) sp2E); temp_a2_2 = sp2E - 0x14; - func_802832C4(&func_802839E0, arg0, temp_a2_2, temp_a2_2); + func_802832C4(func_802839E0, arg0, temp_a2_2, temp_a2_2); + temp_v0_4 = (D_800DC5E4 * 0x10) + &D_80286A04; + func_80282D90(arg0, temp_v0_4->unk4, temp_v0_4->unk8, 0); + break; } - if (gCCSelection == CC_EXTRA) { - sp2C = *(&D_80286B34 + (D_800DC5E4 * 2)); + if (gCCSelection == 3) { + sp2C = D_80286B34[D_800DC5E4]; } if (sp2C == D_802876D2) { temp_v0_5 = D_800DC5E4; diff --git a/src/code_80281FA0.h b/src/code_80281FA0.h index 389d62a33..6326ba569 100644 --- a/src/code_80281FA0.h +++ b/src/code_80281FA0.h @@ -5,20 +5,25 @@ /* Function Prototypes */ -void func_80281FA0(Vec3f, f32, f32, f32); -void func_80281FC0(Vec3s, s16, s16, s16); +void vec3f_set_dupe(Vec3f, f32, f32, f32); +void vec3s_set_dupe(Vec3s, s16, s16, s16); void func_80281FDC(Vec3f); void func_80281FF4(Vec3s); -void func_80282008(Vec3f, Vec3f); -void func_80282024(Vec3s, Vec3s); +void vec3f_copy_dupe(Vec3f, Vec3f); +void vec3s_copy_dupe(Vec3s, Vec3s); void func_80282040(); void func_80282048(); +void func_80282050(Vec3f, Vec3f, s16); +void func_802820F8(Vec3f, Vec3f, s16); s32 func_802821A0(f32*, f32, f32); s32 func_80282200(s16*, s16, s16); s32 func_802822AC(f32*, f32, f32); s32 func_80282364(s16*, s16, s16); void func_8028240C(); void func_80282434(s32); +void func_80282454(Vec3f, Vec3f, f32*, s16*, s16*); +void func_80282504(Vec3f, Vec3f, f32, s16, s16); +void func_802825C8(Vec3f, Vec3f, Vec3f, Vec3s); s32 func_80282D90(s32, s32, s32, s32); void func_80282E58(s32, s32, s32); void func_80282F00(s16*, s16);