From e270cd96bf783dea107b523718494d4a90203223 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Sun, 4 Oct 2020 00:42:10 +0200 Subject: [PATCH] ovl_En_Box OK, documented (#356) * ovl_En_Box OK, documented * Update spec * Removed useless union * renames, remove comments, move internal enums from header * stylistic changes * Remove unneeded prototypes and use documentation format for doc comments * Misread git's merge solution * EnBox_SetupAction and Actor_SpawnAsChild * Cleanup * Merge effects, defines for movement flags, swap dList and dListHead, cleanup... --- .../actors/ovl_En_Box/EnBox_Destroy.s | 14 - .../overlays/actors/ovl_En_Box/EnBox_Draw.s | 169 ----- .../overlays/actors/ovl_En_Box/EnBox_Init.s | 318 --------- .../overlays/actors/ovl_En_Box/EnBox_Update.s | 89 --- .../actors/ovl_En_Box/func_809C8DC0.s | 3 - .../actors/ovl_En_Box/func_809C8DC8.s | 37 - .../actors/ovl_En_Box/func_809C92F4.s | 72 -- .../actors/ovl_En_Box/func_809C93F8.s | 47 -- .../actors/ovl_En_Box/func_809C94AC.s | 114 --- .../actors/ovl_En_Box/func_809C9630.s | 60 -- .../actors/ovl_En_Box/func_809C9700.s | 115 ---- .../actors/ovl_En_Box/func_809C988C.s | 37 - .../actors/ovl_En_Box/func_809C990C.s | 54 -- .../actors/ovl_En_Box/func_809C99C4.s | 51 -- .../actors/ovl_En_Box/func_809C9A7C.s | 48 -- .../actors/ovl_En_Box/func_809C9B28.s | 167 ----- .../actors/ovl_En_Box/func_809C9D70.s | 118 ---- .../actors/ovl_En_Box/func_809C9EF8.s | 203 ------ .../actors/ovl_En_Box/func_809CA2D8.s | 107 --- .../actors/ovl_En_Box/func_809CA448.s | 36 - .../actors/ovl_En_Box/func_809CA4A0.s | 44 -- .../actors/ovl_En_Box/func_809CA518.s | 44 -- data/overlays/actors/z_en_box.bss.s | 13 - data/overlays/actors/z_en_box.data.s | 26 - data/overlays/actors/z_en_box.reloc.s | 13 - include/functions.h | 8 +- spec | 4 +- src/overlays/actors/ovl_En_Box/z_en_box.c | 647 +++++++++++++++++- src/overlays/actors/ovl_En_Box/z_en_box.h | 42 +- .../actors/ovl_player_actor/z_player.c | 6 +- undefined_syms.txt | 11 + 31 files changed, 680 insertions(+), 2037 deletions(-) delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Box/EnBox_Destroy.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Box/EnBox_Draw.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Box/EnBox_Init.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Box/EnBox_Update.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Box/func_809C8DC0.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Box/func_809C8DC8.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Box/func_809C92F4.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Box/func_809C93F8.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Box/func_809C94AC.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Box/func_809C9630.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Box/func_809C9700.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Box/func_809C988C.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Box/func_809C990C.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Box/func_809C99C4.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Box/func_809C9A7C.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Box/func_809C9B28.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Box/func_809C9D70.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Box/func_809C9EF8.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Box/func_809CA2D8.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Box/func_809CA448.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Box/func_809CA4A0.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Box/func_809CA518.s delete mode 100644 data/overlays/actors/z_en_box.bss.s delete mode 100644 data/overlays/actors/z_en_box.data.s delete mode 100644 data/overlays/actors/z_en_box.reloc.s diff --git a/asm/non_matchings/overlays/actors/ovl_En_Box/EnBox_Destroy.s b/asm/non_matchings/overlays/actors/ovl_En_Box/EnBox_Destroy.s deleted file mode 100644 index 0aeaf3f9fd..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Box/EnBox_Destroy.s +++ /dev/null @@ -1,14 +0,0 @@ -glabel EnBox_Destroy -/* 00504 809C92C4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00508 809C92C8 AFA40018 */ sw $a0, 0x0018($sp) -/* 0050C 809C92CC 8FAE0018 */ lw $t6, 0x0018($sp) -/* 00510 809C92D0 AFBF0014 */ sw $ra, 0x0014($sp) -/* 00514 809C92D4 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 00518 809C92D8 24A50810 */ addiu $a1, $a1, 0x0810 ## $a1 = 00000810 -/* 0051C 809C92DC 0C00FB56 */ jal DynaPolyInfo_Free - ## DynaPolyInfo_delReserve -/* 00520 809C92E0 8DC6014C */ lw $a2, 0x014C($t6) ## 0000014C -/* 00524 809C92E4 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00528 809C92E8 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 0052C 809C92EC 03E00008 */ jr $ra -/* 00530 809C92F0 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Box/EnBox_Draw.s b/asm/non_matchings/overlays/actors/ovl_En_Box/EnBox_Draw.s deleted file mode 100644 index 75e702008e..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Box/EnBox_Draw.s +++ /dev/null @@ -1,169 +0,0 @@ -.rdata -glabel D_809CA8D0 - .asciz "../z_en_box.c" - .balign 4 - -glabel D_809CA8E0 - .asciz "../z_en_box.c" - .balign 4 - -.text -glabel EnBox_Draw -/* 017D0 809CA590 27BDFF90 */ addiu $sp, $sp, 0xFF90 ## $sp = FFFFFF90 -/* 017D4 809CA594 AFBF002C */ sw $ra, 0x002C($sp) -/* 017D8 809CA598 AFB10028 */ sw $s1, 0x0028($sp) -/* 017DC 809CA59C AFB00024 */ sw $s0, 0x0024($sp) -/* 017E0 809CA5A0 AFA50074 */ sw $a1, 0x0074($sp) -/* 017E4 809CA5A4 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000 -/* 017E8 809CA5A8 00808825 */ or $s1, $a0, $zero ## $s1 = 00000000 -/* 017EC 809CA5AC 3C06809D */ lui $a2, %hi(D_809CA8D0) ## $a2 = 809D0000 -/* 017F0 809CA5B0 24C6A8D0 */ addiu $a2, $a2, %lo(D_809CA8D0) ## $a2 = 809CA8D0 -/* 017F4 809CA5B4 27A40058 */ addiu $a0, $sp, 0x0058 ## $a0 = FFFFFFE8 -/* 017F8 809CA5B8 2407062D */ addiu $a3, $zero, 0x062D ## $a3 = 0000062D -/* 017FC 809CA5BC 0C031AB1 */ jal Graph_OpenDisps -/* 01800 809CA5C0 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000 -/* 01804 809CA5C4 922301F7 */ lbu $v1, 0x01F7($s1) ## 000001F7 -/* 01808 809CA5C8 240100FF */ addiu $at, $zero, 0x00FF ## $at = 000000FF -/* 0180C 809CA5CC 54610008 */ bnel $v1, $at, .L809CA5F0 -/* 01810 809CA5D0 8E2F0004 */ lw $t7, 0x0004($s1) ## 00000004 -/* 01814 809CA5D4 922201F9 */ lbu $v0, 0x01F9($s1) ## 000001F9 -/* 01818 809CA5D8 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004 -/* 0181C 809CA5DC 10410003 */ beq $v0, $at, .L809CA5EC -/* 01820 809CA5E0 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006 -/* 01824 809CA5E4 5441000D */ bnel $v0, $at, .L809CA61C -/* 01828 809CA5E8 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0 -.L809CA5EC: -/* 0182C 809CA5EC 8E2F0004 */ lw $t7, 0x0004($s1) ## 00000004 -.L809CA5F0: -/* 01830 809CA5F0 24010080 */ addiu $at, $zero, 0x0080 ## $at = 00000080 -/* 01834 809CA5F4 31F80080 */ andi $t8, $t7, 0x0080 ## $t8 = 00000000 -/* 01838 809CA5F8 13010030 */ beq $t8, $at, .L809CA6BC -/* 0183C 809CA5FC 00000000 */ nop -/* 01840 809CA600 922201F9 */ lbu $v0, 0x01F9($s1) ## 000001F9 -/* 01844 809CA604 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004 -/* 01848 809CA608 10410003 */ beq $v0, $at, .L809CA618 -/* 0184C 809CA60C 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006 -/* 01850 809CA610 1441002A */ bne $v0, $at, .L809CA6BC -/* 01854 809CA614 00000000 */ nop -.L809CA618: -/* 01858 809CA618 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0 -.L809CA61C: -/* 0185C 809CA61C 3C08E700 */ lui $t0, 0xE700 ## $t0 = E7000000 -/* 01860 809CA620 3C0AFB00 */ lui $t2, 0xFB00 ## $t2 = FB000000 -/* 01864 809CA624 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008 -/* 01868 809CA628 AE1902C0 */ sw $t9, 0x02C0($s0) ## 000002C0 -/* 0186C 809CA62C AC480000 */ sw $t0, 0x0000($v0) ## 00000000 -/* 01870 809CA630 AC400004 */ sw $zero, 0x0004($v0) ## 00000004 -/* 01874 809CA634 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0 -/* 01878 809CA638 240B00FF */ addiu $t3, $zero, 0x00FF ## $t3 = 000000FF -/* 0187C 809CA63C 3C0DDB06 */ lui $t5, 0xDB06 ## $t5 = DB060000 -/* 01880 809CA640 24490008 */ addiu $t1, $v0, 0x0008 ## $t1 = 00000008 -/* 01884 809CA644 AE0902C0 */ sw $t1, 0x02C0($s0) ## 000002C0 -/* 01888 809CA648 AC4A0000 */ sw $t2, 0x0000($v0) ## 00000000 -/* 0188C 809CA64C AC4B0004 */ sw $t3, 0x0004($v0) ## 00000004 -/* 01890 809CA650 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0 -/* 01894 809CA654 35AD0020 */ ori $t5, $t5, 0x0020 ## $t5 = DB060020 -/* 01898 809CA658 244C0008 */ addiu $t4, $v0, 0x0008 ## $t4 = 00000008 -/* 0189C 809CA65C AE0C02C0 */ sw $t4, 0x02C0($s0) ## 000002C0 -/* 018A0 809CA660 AC4D0000 */ sw $t5, 0x0000($v0) ## 00000000 -/* 018A4 809CA664 8FAE0074 */ lw $t6, 0x0074($sp) -/* 018A8 809CA668 8DC40000 */ lw $a0, 0x0000($t6) ## 00000000 -/* 018AC 809CA66C 0C272912 */ jal func_809CA448 -/* 018B0 809CA670 AFA2004C */ sw $v0, 0x004C($sp) -/* 018B4 809CA674 8FA3004C */ lw $v1, 0x004C($sp) -/* 018B8 809CA678 AC620004 */ sw $v0, 0x0004($v1) ## 00000004 -/* 018BC 809CA67C 8FAF0074 */ lw $t7, 0x0074($sp) -/* 018C0 809CA680 0C024F46 */ jal func_80093D18 -/* 018C4 809CA684 8DE40000 */ lw $a0, 0x0000($t7) ## 00000000 -/* 018C8 809CA688 8E250168 */ lw $a1, 0x0168($s1) ## 00000168 -/* 018CC 809CA68C 8E260184 */ lw $a2, 0x0184($s1) ## 00000184 -/* 018D0 809CA690 3C18809D */ lui $t8, %hi(func_809CA2D8) ## $t8 = 809D0000 -/* 018D4 809CA694 2718A2D8 */ addiu $t8, $t8, %lo(func_809CA2D8) ## $t8 = 809CA2D8 -/* 018D8 809CA698 AFB80010 */ sw $t8, 0x0010($sp) -/* 018DC 809CA69C AFB10014 */ sw $s1, 0x0014($sp) -/* 018E0 809CA6A0 8E1902C0 */ lw $t9, 0x02C0($s0) ## 000002C0 -/* 018E4 809CA6A4 8FA40074 */ lw $a0, 0x0074($sp) -/* 018E8 809CA6A8 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000 -/* 018EC 809CA6AC 0C0288A2 */ jal SkelAnime_Draw2 -/* 018F0 809CA6B0 AFB90018 */ sw $t9, 0x0018($sp) -/* 018F4 809CA6B4 1000003E */ beq $zero, $zero, .L809CA7B0 -/* 018F8 809CA6B8 AE0202C0 */ sw $v0, 0x02C0($s0) ## 000002C0 -.L809CA6BC: -/* 018FC 809CA6BC 5060003D */ beql $v1, $zero, .L809CA7B4 -/* 01900 809CA6C0 8FAD0074 */ lw $t5, 0x0074($sp) -/* 01904 809CA6C4 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0 -/* 01908 809CA6C8 3C09E700 */ lui $t1, 0xE700 ## $t1 = E7000000 -/* 0190C 809CA6CC 24480008 */ addiu $t0, $v0, 0x0008 ## $t0 = 00000008 -/* 01910 809CA6D0 AE0802D0 */ sw $t0, 0x02D0($s0) ## 000002D0 -/* 01914 809CA6D4 AC400004 */ sw $zero, 0x0004($v0) ## 00000004 -/* 01918 809CA6D8 AC490000 */ sw $t1, 0x0000($v0) ## 00000000 -/* 0191C 809CA6DC 8FAA0074 */ lw $t2, 0x0074($sp) -/* 01920 809CA6E0 0C024F61 */ jal func_80093D84 -/* 01924 809CA6E4 8D440000 */ lw $a0, 0x0000($t2) ## 00000000 -/* 01928 809CA6E8 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0 -/* 0192C 809CA6EC 3C0CFB00 */ lui $t4, 0xFB00 ## $t4 = FB000000 -/* 01930 809CA6F0 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004 -/* 01934 809CA6F4 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008 -/* 01938 809CA6F8 AE0B02D0 */ sw $t3, 0x02D0($s0) ## 000002D0 -/* 0193C 809CA6FC AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000 -/* 01940 809CA700 922E01F7 */ lbu $t6, 0x01F7($s1) ## 000001F7 -/* 01944 809CA704 AC4E0004 */ sw $t6, 0x0004($v0) ## 00000004 -/* 01948 809CA708 922201F9 */ lbu $v0, 0x01F9($s1) ## 000001F9 -/* 0194C 809CA70C 10410003 */ beq $v0, $at, .L809CA71C -/* 01950 809CA710 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006 -/* 01954 809CA714 5441000F */ bnel $v0, $at, .L809CA754 -/* 01958 809CA718 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0 -.L809CA71C: -/* 0195C 809CA71C 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0 -/* 01960 809CA720 3C18DB06 */ lui $t8, 0xDB06 ## $t8 = DB060000 -/* 01964 809CA724 37180020 */ ori $t8, $t8, 0x0020 ## $t8 = DB060020 -/* 01968 809CA728 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008 -/* 0196C 809CA72C AE0F02D0 */ sw $t7, 0x02D0($s0) ## 000002D0 -/* 01970 809CA730 AC580000 */ sw $t8, 0x0000($v0) ## 00000000 -/* 01974 809CA734 8FB90074 */ lw $t9, 0x0074($sp) -/* 01978 809CA738 8F240000 */ lw $a0, 0x0000($t9) ## 00000000 -/* 0197C 809CA73C 0C272946 */ jal func_809CA518 -/* 01980 809CA740 AFA20040 */ sw $v0, 0x0040($sp) -/* 01984 809CA744 8FA30040 */ lw $v1, 0x0040($sp) -/* 01988 809CA748 1000000D */ beq $zero, $zero, .L809CA780 -/* 0198C 809CA74C AC620004 */ sw $v0, 0x0004($v1) ## 00000004 -/* 01990 809CA750 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0 -.L809CA754: -/* 01994 809CA754 3C09DB06 */ lui $t1, 0xDB06 ## $t1 = DB060000 -/* 01998 809CA758 35290020 */ ori $t1, $t1, 0x0020 ## $t1 = DB060020 -/* 0199C 809CA75C 24480008 */ addiu $t0, $v0, 0x0008 ## $t0 = 00000008 -/* 019A0 809CA760 AE0802D0 */ sw $t0, 0x02D0($s0) ## 000002D0 -/* 019A4 809CA764 AC490000 */ sw $t1, 0x0000($v0) ## 00000000 -/* 019A8 809CA768 8FAA0074 */ lw $t2, 0x0074($sp) -/* 019AC 809CA76C 8D440000 */ lw $a0, 0x0000($t2) ## 00000000 -/* 019B0 809CA770 0C272928 */ jal func_809CA4A0 -/* 019B4 809CA774 AFA2003C */ sw $v0, 0x003C($sp) -/* 019B8 809CA778 8FA3003C */ lw $v1, 0x003C($sp) -/* 019BC 809CA77C AC620004 */ sw $v0, 0x0004($v1) ## 00000004 -.L809CA780: -/* 019C0 809CA780 8E250168 */ lw $a1, 0x0168($s1) ## 00000168 -/* 019C4 809CA784 8E260184 */ lw $a2, 0x0184($s1) ## 00000184 -/* 019C8 809CA788 3C0B809D */ lui $t3, %hi(func_809CA2D8) ## $t3 = 809D0000 -/* 019CC 809CA78C 256BA2D8 */ addiu $t3, $t3, %lo(func_809CA2D8) ## $t3 = 809CA2D8 -/* 019D0 809CA790 AFAB0010 */ sw $t3, 0x0010($sp) -/* 019D4 809CA794 AFB10014 */ sw $s1, 0x0014($sp) -/* 019D8 809CA798 8E0C02D0 */ lw $t4, 0x02D0($s0) ## 000002D0 -/* 019DC 809CA79C 8FA40074 */ lw $a0, 0x0074($sp) -/* 019E0 809CA7A0 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000 -/* 019E4 809CA7A4 0C0288A2 */ jal SkelAnime_Draw2 -/* 019E8 809CA7A8 AFAC0018 */ sw $t4, 0x0018($sp) -/* 019EC 809CA7AC AE0202D0 */ sw $v0, 0x02D0($s0) ## 000002D0 -.L809CA7B0: -/* 019F0 809CA7B0 8FAD0074 */ lw $t5, 0x0074($sp) -.L809CA7B4: -/* 019F4 809CA7B4 3C06809D */ lui $a2, %hi(D_809CA8E0) ## $a2 = 809D0000 -/* 019F8 809CA7B8 24C6A8E0 */ addiu $a2, $a2, %lo(D_809CA8E0) ## $a2 = 809CA8E0 -/* 019FC 809CA7BC 27A40058 */ addiu $a0, $sp, 0x0058 ## $a0 = FFFFFFE8 -/* 01A00 809CA7C0 24070667 */ addiu $a3, $zero, 0x0667 ## $a3 = 00000667 -/* 01A04 809CA7C4 0C031AD5 */ jal Graph_CloseDisps -/* 01A08 809CA7C8 8DA50000 */ lw $a1, 0x0000($t5) ## 00000000 -/* 01A0C 809CA7CC 8FBF002C */ lw $ra, 0x002C($sp) -/* 01A10 809CA7D0 8FB00024 */ lw $s0, 0x0024($sp) -/* 01A14 809CA7D4 8FB10028 */ lw $s1, 0x0028($sp) -/* 01A18 809CA7D8 03E00008 */ jr $ra -/* 01A1C 809CA7DC 27BD0070 */ addiu $sp, $sp, 0x0070 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Box/EnBox_Init.s b/asm/non_matchings/overlays/actors/ovl_En_Box/EnBox_Init.s deleted file mode 100644 index 11df0c3715..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Box/EnBox_Init.s +++ /dev/null @@ -1,318 +0,0 @@ -glabel EnBox_Init -/* 00094 809C8E54 3C028016 */ lui $v0, %hi(gSaveContext+4) -/* 00098 809C8E58 8C42E664 */ lw $v0, %lo(gSaveContext+4)($v0) -/* 0009C 809C8E5C 27BDFFA8 */ addiu $sp, $sp, 0xFFA8 ## $sp = FFFFFFA8 -/* 000A0 809C8E60 AFB00024 */ sw $s0, 0x0024($sp) -/* 000A4 809C8E64 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 000A8 809C8E68 3C04809D */ lui $a0, %hi(D_809CA800) ## $a0 = 809D0000 -/* 000AC 809C8E6C 00027080 */ sll $t6, $v0, 2 -/* 000B0 809C8E70 008E2021 */ addu $a0, $a0, $t6 -/* 000B4 809C8E74 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00 -/* 000B8 809C8E78 8C84A800 */ lw $a0, %lo(D_809CA800)($a0) -/* 000BC 809C8E7C AFBF002C */ sw $ra, 0x002C($sp) -/* 000C0 809C8E80 AFB10028 */ sw $s1, 0x0028($sp) -/* 000C4 809C8E84 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000 -/* 000C8 809C8E88 AFA00048 */ sw $zero, 0x0048($sp) -/* 000CC 809C8E8C E7A40044 */ swc1 $f4, 0x0044($sp) -/* 000D0 809C8E90 0C028800 */ jal SkelAnime_GetFrameCount - -/* 000D4 809C8E94 AFA4004C */ sw $a0, 0x004C($sp) -/* 000D8 809C8E98 44823000 */ mtc1 $v0, $f6 ## $f6 = 0.00 -/* 000DC 809C8E9C 3C05809D */ lui $a1, %hi(D_809CA810) ## $a1 = 809D0000 -/* 000E0 809C8EA0 24A5A810 */ addiu $a1, $a1, %lo(D_809CA810) ## $a1 = 809CA810 -/* 000E4 809C8EA4 46803220 */ cvt.s.w $f8, $f6 -/* 000E8 809C8EA8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 000EC 809C8EAC 0C01E037 */ jal Actor_ProcessInitChain - -/* 000F0 809C8EB0 E7A80040 */ swc1 $f8, 0x0040($sp) -/* 000F4 809C8EB4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 000F8 809C8EB8 0C010D20 */ jal DynaPolyInfo_SetActorMove - -/* 000FC 809C8EBC 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 00100 809C8EC0 3C040600 */ lui $a0, 0x0600 ## $a0 = 06000000 -/* 00104 809C8EC4 24845FC8 */ addiu $a0, $a0, 0x5FC8 ## $a0 = 06005FC8 -/* 00108 809C8EC8 0C010620 */ jal DynaPolyInfo_Alloc - -/* 0010C 809C8ECC 27A50048 */ addiu $a1, $sp, 0x0048 ## $a1 = FFFFFFF0 -/* 00110 809C8ED0 26250810 */ addiu $a1, $s1, 0x0810 ## $a1 = 00000810 -/* 00114 809C8ED4 AFA50030 */ sw $a1, 0x0030($sp) -/* 00118 809C8ED8 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 0011C 809C8EDC 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000 -/* 00120 809C8EE0 0C00FA9D */ jal DynaPolyInfo_RegisterActor - ## DynaPolyInfo_setActor -/* 00124 809C8EE4 8FA70048 */ lw $a3, 0x0048($sp) -/* 00128 809C8EE8 AE02014C */ sw $v0, 0x014C($s0) ## 0000014C -/* 0012C 809C8EEC 8FA50030 */ lw $a1, 0x0030($sp) -/* 00130 809C8EF0 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00134 809C8EF4 0C00FB2A */ jal func_8003ECA8 -/* 00138 809C8EF8 00403025 */ or $a2, $v0, $zero ## $a2 = 00000000 -/* 0013C 809C8EFC 860F001C */ lh $t7, 0x001C($s0) ## 0000001C -/* 00140 809C8F00 3C01C0B0 */ lui $at, 0xC0B0 ## $at = C0B00000 -/* 00144 809C8F04 44815000 */ mtc1 $at, $f10 ## $f10 = -5.50 -/* 00148 809C8F08 3C01C248 */ lui $at, 0xC248 ## $at = C2480000 -/* 0014C 809C8F0C 86080034 */ lh $t0, 0x0034($s0) ## 00000034 -/* 00150 809C8F10 44818000 */ mtc1 $at, $f16 ## $f16 = -50.00 -/* 00154 809C8F14 8605001C */ lh $a1, 0x001C($s0) ## 0000001C -/* 00158 809C8F18 000FC303 */ sra $t8, $t7, 12 -/* 0015C 809C8F1C 3319000F */ andi $t9, $t8, 0x000F ## $t9 = 00000000 -/* 00160 809C8F20 A20001F6 */ sb $zero, 0x01F6($s0) ## 000001F6 -/* 00164 809C8F24 A21901F9 */ sb $t9, 0x01F9($s0) ## 000001F9 -/* 00168 809C8F28 A20001FA */ sb $zero, 0x01FA($s0) ## 000001FA -/* 0016C 809C8F2C A20001FB */ sb $zero, 0x01FB($s0) ## 000001FB -/* 00170 809C8F30 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00174 809C8F34 E60A006C */ swc1 $f10, 0x006C($s0) ## 0000006C -/* 00178 809C8F38 A20801F8 */ sb $t0, 0x01F8($s0) ## 000001F8 -/* 0017C 809C8F3C E6100070 */ swc1 $f16, 0x0070($s0) ## 00000070 -/* 00180 809C8F40 0C00B32C */ jal Flags_GetTreasure - -/* 00184 809C8F44 30A5001F */ andi $a1, $a1, 0x001F ## $a1 = 00000000 -/* 00188 809C8F48 1040000E */ beq $v0, $zero, .L809C8F84 -/* 0018C 809C8F4C 240900FF */ addiu $t1, $zero, 0x00FF ## $t1 = 000000FF -/* 00190 809C8F50 240A0064 */ addiu $t2, $zero, 0x0064 ## $t2 = 00000064 -/* 00194 809C8F54 3C05809D */ lui $a1, %hi(func_809C9D70) ## $a1 = 809D0000 -/* 00198 809C8F58 A20901F7 */ sb $t1, 0x01F7($s0) ## 000001F7 -/* 0019C 809C8F5C A20A01FA */ sb $t2, 0x01FA($s0) ## 000001FA -/* 001A0 809C8F60 24A59D70 */ addiu $a1, $a1, %lo(func_809C9D70) ## $a1 = 809C9D70 -/* 001A4 809C8F64 0C272370 */ jal func_809C8DC0 -/* 001A8 809C8F68 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 001AC 809C8F6C 920B01F6 */ lbu $t3, 0x01F6($s0) ## 000001F6 -/* 001B0 809C8F70 356C0010 */ ori $t4, $t3, 0x0010 ## $t4 = 00000010 -/* 001B4 809C8F74 A20C01F6 */ sb $t4, 0x01F6($s0) ## 000001F6 -/* 001B8 809C8F78 C7B20040 */ lwc1 $f18, 0x0040($sp) -/* 001BC 809C8F7C 10000092 */ beq $zero, $zero, .L809C91C8 -/* 001C0 809C8F80 E7B20044 */ swc1 $f18, 0x0044($sp) -.L809C8F84: -/* 001C4 809C8F84 920201F9 */ lbu $v0, 0x01F9($s0) ## 000001F9 -/* 001C8 809C8F88 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003 -/* 001CC 809C8F8C 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 001D0 809C8F90 10410003 */ beq $v0, $at, .L809C8FA0 -/* 001D4 809C8F94 24010008 */ addiu $at, $zero, 0x0008 ## $at = 00000008 -/* 001D8 809C8F98 54410021 */ bnel $v0, $at, .L809C9020 -/* 001DC 809C8F9C 920201F9 */ lbu $v0, 0x01F9($s0) ## 000001F9 -.L809C8FA0: -/* 001E0 809C8FA0 0C00B2D0 */ jal Flags_GetSwitch - -/* 001E4 809C8FA4 920501F8 */ lbu $a1, 0x01F8($s0) ## 000001F8 -/* 001E8 809C8FA8 1440001C */ bne $v0, $zero, .L809C901C -/* 001EC 809C8FAC 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 001F0 809C8FB0 8FA50030 */ lw $a1, 0x0030($sp) -/* 001F4 809C8FB4 0C00FAFE */ jal func_8003EBF8 -/* 001F8 809C8FB8 8E06014C */ lw $a2, 0x014C($s0) ## 0000014C -/* 001FC 809C8FBC 0C03F66B */ jal Math_Rand_ZeroOne - ## Rand.Next() float -/* 00200 809C8FC0 00000000 */ nop -/* 00204 809C8FC4 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000 -/* 00208 809C8FC8 44812000 */ mtc1 $at, $f4 ## $f4 = 0.50 -/* 0020C 809C8FCC 3C05809D */ lui $a1, %hi(func_809C9630) ## $a1 = 809D0000 -/* 00210 809C8FD0 240FFFF4 */ addiu $t7, $zero, 0xFFF4 ## $t7 = FFFFFFF4 -/* 00214 809C8FD4 4604003C */ c.lt.s $f0, $f4 -/* 00218 809C8FD8 24A59630 */ addiu $a1, $a1, %lo(func_809C9630) ## $a1 = 809C9630 -/* 0021C 809C8FDC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00220 809C8FE0 45000004 */ bc1f .L809C8FF4 -/* 00224 809C8FE4 00000000 */ nop -/* 00228 809C8FE8 920D01F6 */ lbu $t5, 0x01F6($s0) ## 000001F6 -/* 0022C 809C8FEC 35AE0004 */ ori $t6, $t5, 0x0004 ## $t6 = 00000004 -/* 00230 809C8FF0 A20E01F6 */ sb $t6, 0x01F6($s0) ## 000001F6 -.L809C8FF4: -/* 00234 809C8FF4 0C272370 */ jal func_809C8DC0 -/* 00238 809C8FF8 AE0F01A8 */ sw $t7, 0x01A8($s0) ## 000001A8 -/* 0023C 809C8FFC 921801F6 */ lbu $t8, 0x01F6($s0) ## 000001F6 -/* 00240 809C9000 8E080004 */ lw $t0, 0x0004($s0) ## 00000004 -/* 00244 809C9004 A20001F7 */ sb $zero, 0x01F7($s0) ## 000001F7 -/* 00248 809C9008 37190001 */ ori $t9, $t8, 0x0001 ## $t9 = 00000001 -/* 0024C 809C900C 35090010 */ ori $t1, $t0, 0x0010 ## $t1 = 00000010 -/* 00250 809C9010 A21901F6 */ sb $t9, 0x01F6($s0) ## 000001F6 -/* 00254 809C9014 1000006C */ beq $zero, $zero, .L809C91C8 -/* 00258 809C9018 AE090004 */ sw $t1, 0x0004($s0) ## 00000004 -.L809C901C: -/* 0025C 809C901C 920201F9 */ lbu $v0, 0x01F9($s0) ## 000001F9 -.L809C9020: -/* 00260 809C9020 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001 -/* 00264 809C9024 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00268 809C9028 10410003 */ beq $v0, $at, .L809C9038 -/* 0026C 809C902C 24010007 */ addiu $at, $zero, 0x0007 ## $at = 00000007 -/* 00270 809C9030 5441001A */ bnel $v0, $at, .L809C909C -/* 00274 809C9034 920201F9 */ lbu $v0, 0x01F9($s0) ## 000001F9 -.L809C9038: -/* 00278 809C9038 0C00B337 */ jal Flags_GetClear - -/* 0027C 809C903C 82050003 */ lb $a1, 0x0003($s0) ## 00000003 -/* 00280 809C9040 14400015 */ bne $v0, $zero, .L809C9098 -/* 00284 809C9044 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00288 809C9048 3C05809D */ lui $a1, %hi(func_809C990C) ## $a1 = 809D0000 -/* 0028C 809C904C 0C272370 */ jal func_809C8DC0 -/* 00290 809C9050 24A5990C */ addiu $a1, $a1, %lo(func_809C990C) ## $a1 = 809C990C -/* 00294 809C9054 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00298 809C9058 8FA50030 */ lw $a1, 0x0030($sp) -/* 0029C 809C905C 0C00FAFE */ jal func_8003EBF8 -/* 002A0 809C9060 8E06014C */ lw $a2, 0x014C($s0) ## 0000014C -/* 002A4 809C9064 3C014248 */ lui $at, 0x4248 ## $at = 42480000 -/* 002A8 809C9068 44814000 */ mtc1 $at, $f8 ## $f8 = 50.00 -/* 002AC 809C906C C606000C */ lwc1 $f6, 0x000C($s0) ## 0000000C -/* 002B0 809C9070 920A01F6 */ lbu $t2, 0x01F6($s0) ## 000001F6 -/* 002B4 809C9074 8E0C0004 */ lw $t4, 0x0004($s0) ## 00000004 -/* 002B8 809C9078 46083281 */ sub.s $f10, $f6, $f8 -/* 002BC 809C907C 354B0001 */ ori $t3, $t2, 0x0001 ## $t3 = 00000001 -/* 002C0 809C9080 358D0010 */ ori $t5, $t4, 0x0010 ## $t5 = 00000010 -/* 002C4 809C9084 A20B01F6 */ sb $t3, 0x01F6($s0) ## 000001F6 -/* 002C8 809C9088 E60A0028 */ swc1 $f10, 0x0028($s0) ## 00000028 -/* 002CC 809C908C A20001F7 */ sb $zero, 0x01F7($s0) ## 000001F7 -/* 002D0 809C9090 1000004D */ beq $zero, $zero, .L809C91C8 -/* 002D4 809C9094 AE0D0004 */ sw $t5, 0x0004($s0) ## 00000004 -.L809C9098: -/* 002D8 809C9098 920201F9 */ lbu $v0, 0x01F9($s0) ## 000001F9 -.L809C909C: -/* 002DC 809C909C 24010009 */ addiu $at, $zero, 0x0009 ## $at = 00000009 -/* 002E0 809C90A0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 002E4 809C90A4 10410004 */ beq $v0, $at, .L809C90B8 -/* 002E8 809C90A8 3C05809D */ lui $a1, %hi(func_809C9700) ## $a1 = 809D0000 -/* 002EC 809C90AC 2401000A */ addiu $at, $zero, 0x000A ## $at = 0000000A -/* 002F0 809C90B0 54410019 */ bnel $v0, $at, .L809C9118 -/* 002F4 809C90B4 2401000B */ addiu $at, $zero, 0x000B ## $at = 0000000B -.L809C90B8: -/* 002F8 809C90B8 0C272370 */ jal func_809C8DC0 -/* 002FC 809C90BC 24A59700 */ addiu $a1, $a1, %lo(func_809C9700) ## $a1 = 809C9700 -/* 00300 809C90C0 8E0E0004 */ lw $t6, 0x0004($s0) ## 00000004 -/* 00304 809C90C4 3C010200 */ lui $at, 0x0200 ## $at = 02000000 -/* 00308 809C90C8 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 0030C 809C90CC 01C17825 */ or $t7, $t6, $at ## $t7 = 02000000 -/* 00310 809C90D0 AE0F0004 */ sw $t7, 0x0004($s0) ## 00000004 -/* 00314 809C90D4 8FA50030 */ lw $a1, 0x0030($sp) -/* 00318 809C90D8 0C00FAFE */ jal func_8003EBF8 -/* 0031C 809C90DC 8E06014C */ lw $a2, 0x014C($s0) ## 0000014C -/* 00320 809C90E0 3C014248 */ lui $at, 0x4248 ## $at = 42480000 -/* 00324 809C90E4 44819000 */ mtc1 $at, $f18 ## $f18 = 50.00 -/* 00328 809C90E8 C610000C */ lwc1 $f16, 0x000C($s0) ## 0000000C -/* 0032C 809C90EC 921801F6 */ lbu $t8, 0x01F6($s0) ## 000001F6 -/* 00330 809C90F0 8E080004 */ lw $t0, 0x0004($s0) ## 00000004 -/* 00334 809C90F4 46128101 */ sub.s $f4, $f16, $f18 -/* 00338 809C90F8 37190001 */ ori $t9, $t8, 0x0001 ## $t9 = 00000001 -/* 0033C 809C90FC 35090010 */ ori $t1, $t0, 0x0010 ## $t1 = 00000010 -/* 00340 809C9100 A21901F6 */ sb $t9, 0x01F6($s0) ## 000001F6 -/* 00344 809C9104 E6040028 */ swc1 $f4, 0x0028($s0) ## 00000028 -/* 00348 809C9108 A20001F7 */ sb $zero, 0x01F7($s0) ## 000001F7 -/* 0034C 809C910C 1000002E */ beq $zero, $zero, .L809C91C8 -/* 00350 809C9110 AE090004 */ sw $t1, 0x0004($s0) ## 00000004 -/* 00354 809C9114 2401000B */ addiu $at, $zero, 0x000B ## $at = 0000000B -.L809C9118: -/* 00358 809C9118 14410019 */ bne $v0, $at, .L809C9180 -/* 0035C 809C911C 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00360 809C9120 0C00B2D0 */ jal Flags_GetSwitch - -/* 00364 809C9124 920501F8 */ lbu $a1, 0x01F8($s0) ## 000001F8 -/* 00368 809C9128 14400015 */ bne $v0, $zero, .L809C9180 -/* 0036C 809C912C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00370 809C9130 3C05809D */ lui $a1, %hi(func_809C988C) ## $a1 = 809D0000 -/* 00374 809C9134 0C272370 */ jal func_809C8DC0 -/* 00378 809C9138 24A5988C */ addiu $a1, $a1, %lo(func_809C988C) ## $a1 = 809C988C -/* 0037C 809C913C 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00380 809C9140 8FA50030 */ lw $a1, 0x0030($sp) -/* 00384 809C9144 0C00FAFE */ jal func_8003EBF8 -/* 00388 809C9148 8E06014C */ lw $a2, 0x014C($s0) ## 0000014C -/* 0038C 809C914C 3C014248 */ lui $at, 0x4248 ## $at = 42480000 -/* 00390 809C9150 44814000 */ mtc1 $at, $f8 ## $f8 = 50.00 -/* 00394 809C9154 C606000C */ lwc1 $f6, 0x000C($s0) ## 0000000C -/* 00398 809C9158 920A01F6 */ lbu $t2, 0x01F6($s0) ## 000001F6 -/* 0039C 809C915C 8E0C0004 */ lw $t4, 0x0004($s0) ## 00000004 -/* 003A0 809C9160 46083281 */ sub.s $f10, $f6, $f8 -/* 003A4 809C9164 354B0001 */ ori $t3, $t2, 0x0001 ## $t3 = 00000001 -/* 003A8 809C9168 358D0010 */ ori $t5, $t4, 0x0010 ## $t5 = 00000010 -/* 003AC 809C916C A20B01F6 */ sb $t3, 0x01F6($s0) ## 000001F6 -/* 003B0 809C9170 E60A0028 */ swc1 $f10, 0x0028($s0) ## 00000028 -/* 003B4 809C9174 A20001F7 */ sb $zero, 0x01F7($s0) ## 000001F7 -/* 003B8 809C9178 10000013 */ beq $zero, $zero, .L809C91C8 -/* 003BC 809C917C AE0D0004 */ sw $t5, 0x0004($s0) ## 00000004 -.L809C9180: -/* 003C0 809C9180 920201F9 */ lbu $v0, 0x01F9($s0) ## 000001F9 -/* 003C4 809C9184 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004 -/* 003C8 809C9188 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 003CC 809C918C 10410004 */ beq $v0, $at, .L809C91A0 -/* 003D0 809C9190 3C05809D */ lui $a1, %hi(func_809C9B28) ## $a1 = 809D0000 -/* 003D4 809C9194 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006 -/* 003D8 809C9198 14410004 */ bne $v0, $at, .L809C91AC -/* 003DC 809C919C 00000000 */ nop -.L809C91A0: -/* 003E0 809C91A0 8E0E0004 */ lw $t6, 0x0004($s0) ## 00000004 -/* 003E4 809C91A4 35CF0080 */ ori $t7, $t6, 0x0080 ## $t7 = 00000080 -/* 003E8 809C91A8 AE0F0004 */ sw $t7, 0x0004($s0) ## 00000004 -.L809C91AC: -/* 003EC 809C91AC 0C272370 */ jal func_809C8DC0 -/* 003F0 809C91B0 24A59B28 */ addiu $a1, $a1, %lo(func_809C9B28) ## $a1 = 809C9B28 -/* 003F4 809C91B4 921801F6 */ lbu $t8, 0x01F6($s0) ## 000001F6 -/* 003F8 809C91B8 37080001 */ ori $t0, $t8, 0x0001 ## $t0 = 00000001 -/* 003FC 809C91BC A20801F6 */ sb $t0, 0x01F6($s0) ## 000001F6 -/* 00400 809C91C0 35090010 */ ori $t1, $t0, 0x0010 ## $t1 = 00000011 -/* 00404 809C91C4 A20901F6 */ sb $t1, 0x01F6($s0) ## 000001F6 -.L809C91C8: -/* 00408 809C91C8 A60000B8 */ sh $zero, 0x00B8($s0) ## 000000B8 -/* 0040C 809C91CC 860A0032 */ lh $t2, 0x0032($s0) ## 00000032 -/* 00410 809C91D0 860200B8 */ lh $v0, 0x00B8($s0) ## 000000B8 -/* 00414 809C91D4 34018000 */ ori $at, $zero, 0x8000 ## $at = 00008000 -/* 00418 809C91D8 01415821 */ addu $t3, $t2, $at -/* 0041C 809C91DC A60B0032 */ sh $t3, 0x0032($s0) ## 00000032 -/* 00420 809C91E0 A6020034 */ sh $v0, 0x0034($s0) ## 00000034 -/* 00424 809C91E4 A6020018 */ sh $v0, 0x0018($s0) ## 00000018 -/* 00428 809C91E8 26050164 */ addiu $a1, $s0, 0x0164 ## $a1 = 00000164 -/* 0042C 809C91EC 3C060600 */ lui $a2, 0x0600 ## $a2 = 06000000 -/* 00430 809C91F0 260C01B8 */ addiu $t4, $s0, 0x01B8 ## $t4 = 000001B8 -/* 00434 809C91F4 260D01D6 */ addiu $t5, $s0, 0x01D6 ## $t5 = 000001D6 -/* 00438 809C91F8 240E0005 */ addiu $t6, $zero, 0x0005 ## $t6 = 00000005 -/* 0043C 809C91FC AFAE0018 */ sw $t6, 0x0018($sp) -/* 00440 809C9200 AFAD0014 */ sw $t5, 0x0014($sp) -/* 00444 809C9204 AFAC0010 */ sw $t4, 0x0010($sp) -/* 00448 809C9208 24C647D8 */ addiu $a2, $a2, 0x47D8 ## $a2 = 060047D8 -/* 0044C 809C920C AFA50034 */ sw $a1, 0x0034($sp) -/* 00450 809C9210 8FA7004C */ lw $a3, 0x004C($sp) -/* 00454 809C9214 0C02915F */ jal SkelAnime_Init - -/* 00458 809C9218 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 0045C 809C921C C7B00040 */ lwc1 $f16, 0x0040($sp) -/* 00460 809C9220 44809000 */ mtc1 $zero, $f18 ## $f18 = 0.00 -/* 00464 809C9224 240F0002 */ addiu $t7, $zero, 0x0002 ## $t7 = 00000002 -/* 00468 809C9228 AFAF0014 */ sw $t7, 0x0014($sp) -/* 0046C 809C922C 8FA40034 */ lw $a0, 0x0034($sp) -/* 00470 809C9230 8FA5004C */ lw $a1, 0x004C($sp) -/* 00474 809C9234 3C063FC0 */ lui $a2, 0x3FC0 ## $a2 = 3FC00000 -/* 00478 809C9238 8FA70044 */ lw $a3, 0x0044($sp) -/* 0047C 809C923C E7B00010 */ swc1 $f16, 0x0010($sp) -/* 00480 809C9240 0C029468 */ jal SkelAnime_ChangeAnim - -/* 00484 809C9244 E7B20018 */ swc1 $f18, 0x0018($sp) -/* 00488 809C9248 920201F9 */ lbu $v0, 0x01F9($s0) ## 000001F9 -/* 0048C 809C924C 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005 -/* 00490 809C9250 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00494 809C9254 10410008 */ beq $v0, $at, .L809C9278 -/* 00498 809C9258 3C053BA3 */ lui $a1, 0x3BA3 ## $a1 = 3BA30000 -/* 0049C 809C925C 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006 -/* 004A0 809C9260 10410005 */ beq $v0, $at, .L809C9278 -/* 004A4 809C9264 24010007 */ addiu $at, $zero, 0x0007 ## $at = 00000007 -/* 004A8 809C9268 10410003 */ beq $v0, $at, .L809C9278 -/* 004AC 809C926C 24010008 */ addiu $at, $zero, 0x0008 ## $at = 00000008 -/* 004B0 809C9270 54410009 */ bnel $v0, $at, .L809C9298 -/* 004B4 809C9274 3C053C23 */ lui $a1, 0x3C23 ## $a1 = 3C230000 -.L809C9278: -/* 004B8 809C9278 0C00B58B */ jal Actor_SetScale - -/* 004BC 809C927C 34A5D70A */ ori $a1, $a1, 0xD70A ## $a1 = 3C23D70A -/* 004C0 809C9280 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 004C4 809C9284 0C00B56E */ jal Actor_SetHeight - -/* 004C8 809C9288 3C0541A0 */ lui $a1, 0x41A0 ## $a1 = 41A00000 -/* 004CC 809C928C 10000009 */ beq $zero, $zero, .L809C92B4 -/* 004D0 809C9290 8FBF002C */ lw $ra, 0x002C($sp) -/* 004D4 809C9294 3C053C23 */ lui $a1, 0x3C23 ## $a1 = 3C230000 -.L809C9298: -/* 004D8 809C9298 34A5D70A */ ori $a1, $a1, 0xD70A ## $a1 = 3C23D70A -/* 004DC 809C929C 0C00B58B */ jal Actor_SetScale - -/* 004E0 809C92A0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 004E4 809C92A4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 004E8 809C92A8 0C00B56E */ jal Actor_SetHeight - -/* 004EC 809C92AC 3C054220 */ lui $a1, 0x4220 ## $a1 = 42200000 -/* 004F0 809C92B0 8FBF002C */ lw $ra, 0x002C($sp) -.L809C92B4: -/* 004F4 809C92B4 8FB00024 */ lw $s0, 0x0024($sp) -/* 004F8 809C92B8 8FB10028 */ lw $s1, 0x0028($sp) -/* 004FC 809C92BC 03E00008 */ jr $ra -/* 00500 809C92C0 27BD0058 */ addiu $sp, $sp, 0x0058 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Box/EnBox_Update.s b/asm/non_matchings/overlays/actors/ovl_En_Box/EnBox_Update.s deleted file mode 100644 index 75e0df342c..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Box/EnBox_Update.s +++ /dev/null @@ -1,89 +0,0 @@ -glabel EnBox_Update -/* 013E0 809CA1A0 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8 -/* 013E4 809CA1A4 AFBF0024 */ sw $ra, 0x0024($sp) -/* 013E8 809CA1A8 AFB00020 */ sw $s0, 0x0020($sp) -/* 013EC 809CA1AC AFA5002C */ sw $a1, 0x002C($sp) -/* 013F0 809CA1B0 908201F6 */ lbu $v0, 0x01F6($a0) ## 000001F6 -/* 013F4 809CA1B4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 013F8 809CA1B8 304E0010 */ andi $t6, $v0, 0x0010 ## $t6 = 00000000 -/* 013FC 809CA1BC 11C00004 */ beq $t6, $zero, .L809CA1D0 -/* 01400 809CA1C0 304FFFEF */ andi $t7, $v0, 0xFFEF ## $t7 = 00000000 -/* 01404 809CA1C4 A08F01F6 */ sb $t7, 0x01F6($a0) ## 000001F6 -/* 01408 809CA1C8 0C272372 */ jal func_809C8DC8 -/* 0140C 809CA1CC 8FA5002C */ lw $a1, 0x002C($sp) -.L809CA1D0: -/* 01410 809CA1D0 8E1901B4 */ lw $t9, 0x01B4($s0) ## 000001B4 -/* 01414 809CA1D4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 01418 809CA1D8 8FA5002C */ lw $a1, 0x002C($sp) -/* 0141C 809CA1DC 0320F809 */ jalr $ra, $t9 -/* 01420 809CA1E0 00000000 */ nop -/* 01424 809CA1E4 921801F6 */ lbu $t8, 0x01F6($s0) ## 000001F6 -/* 01428 809CA1E8 33080001 */ andi $t0, $t8, 0x0001 ## $t0 = 00000000 -/* 0142C 809CA1EC 5500000D */ bnel $t0, $zero, .L809CA224 -/* 01430 809CA1F0 920201F9 */ lbu $v0, 0x01F9($s0) ## 000001F9 -/* 01434 809CA1F4 0C00B638 */ jal Actor_MoveForward - -/* 01438 809CA1F8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 0143C 809CA1FC 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00 -/* 01440 809CA200 2409001C */ addiu $t1, $zero, 0x001C ## $t1 = 0000001C -/* 01444 809CA204 AFA90014 */ sw $t1, 0x0014($sp) -/* 01448 809CA208 44060000 */ mfc1 $a2, $f0 -/* 0144C 809CA20C 44070000 */ mfc1 $a3, $f0 -/* 01450 809CA210 8FA4002C */ lw $a0, 0x002C($sp) -/* 01454 809CA214 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 01458 809CA218 0C00B92D */ jal func_8002E4B4 -/* 0145C 809CA21C E7A00010 */ swc1 $f0, 0x0010($sp) -/* 01460 809CA220 920201F9 */ lbu $v0, 0x01F9($s0) ## 000001F9 -.L809CA224: -/* 01464 809CA224 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005 -/* 01468 809CA228 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 0146C 809CA22C 10410007 */ beq $v0, $at, .L809CA24C -/* 01470 809CA230 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006 -/* 01474 809CA234 10410005 */ beq $v0, $at, .L809CA24C -/* 01478 809CA238 24010007 */ addiu $at, $zero, 0x0007 ## $at = 00000007 -/* 0147C 809CA23C 10410003 */ beq $v0, $at, .L809CA24C -/* 01480 809CA240 24010008 */ addiu $at, $zero, 0x0008 ## $at = 00000008 -/* 01484 809CA244 14410005 */ bne $v0, $at, .L809CA25C -/* 01488 809CA248 3C054220 */ lui $a1, 0x4220 ## $a1 = 42200000 -.L809CA24C: -/* 0148C 809CA24C 0C00B56E */ jal Actor_SetHeight - -/* 01490 809CA250 3C0541A0 */ lui $a1, 0x41A0 ## $a1 = 41A00000 -/* 01494 809CA254 10000004 */ beq $zero, $zero, .L809CA268 -/* 01498 809CA258 860A001C */ lh $t2, 0x001C($s0) ## 0000001C -.L809CA25C: -/* 0149C 809CA25C 0C00B56E */ jal Actor_SetHeight - -/* 014A0 809CA260 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 014A4 809CA264 860A001C */ lh $t2, 0x001C($s0) ## 0000001C -.L809CA268: -/* 014A8 809CA268 2401007C */ addiu $at, $zero, 0x007C ## $at = 0000007C -/* 014AC 809CA26C 000A5943 */ sra $t3, $t2, 5 -/* 014B0 809CA270 316C007F */ andi $t4, $t3, 0x007F ## $t4 = 00000000 -/* 014B4 809CA274 55810014 */ bnel $t4, $at, .L809CA2C8 -/* 014B8 809CA278 8FBF0024 */ lw $ra, 0x0024($sp) -/* 014BC 809CA27C 8E0E01B4 */ lw $t6, 0x01B4($s0) ## 000001B4 -/* 014C0 809CA280 3C0D809D */ lui $t5, %hi(func_809C9D70) ## $t5 = 809D0000 -/* 014C4 809CA284 25AD9D70 */ addiu $t5, $t5, %lo(func_809C9D70) ## $t5 = 809C9D70 -/* 014C8 809CA288 15AE000E */ bne $t5, $t6, .L809CA2C4 -/* 014CC 809CA28C 3C014234 */ lui $at, 0x4234 ## $at = 42340000 -/* 014D0 809CA290 44812000 */ mtc1 $at, $f4 ## $f4 = 45.00 -/* 014D4 809CA294 C606017C */ lwc1 $f6, 0x017C($s0) ## 0000017C -/* 014D8 809CA298 4606203C */ c.lt.s $f4, $f6 -/* 014DC 809CA29C 00000000 */ nop -/* 014E0 809CA2A0 45020009 */ bc1fl .L809CA2C8 -/* 014E4 809CA2A4 8FBF0024 */ lw $ra, 0x0024($sp) -/* 014E8 809CA2A8 920F01FA */ lbu $t7, 0x01FA($s0) ## 000001FA -/* 014EC 809CA2AC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 014F0 809CA2B0 29E10064 */ slti $at, $t7, 0x0064 -/* 014F4 809CA2B4 50200004 */ beql $at, $zero, .L809CA2C8 -/* 014F8 809CA2B8 8FBF0024 */ lw $ra, 0x0024($sp) -/* 014FC 809CA2BC 0C2727BE */ jal func_809C9EF8 -/* 01500 809CA2C0 8FA5002C */ lw $a1, 0x002C($sp) -.L809CA2C4: -/* 01504 809CA2C4 8FBF0024 */ lw $ra, 0x0024($sp) -.L809CA2C8: -/* 01508 809CA2C8 8FB00020 */ lw $s0, 0x0020($sp) -/* 0150C 809CA2CC 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000 -/* 01510 809CA2D0 03E00008 */ jr $ra -/* 01514 809CA2D4 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C8DC0.s b/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C8DC0.s deleted file mode 100644 index 4d62602504..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C8DC0.s +++ /dev/null @@ -1,3 +0,0 @@ -glabel func_809C8DC0 -/* 00000 809C8DC0 03E00008 */ jr $ra -/* 00004 809C8DC4 AC8501B4 */ sw $a1, 0x01B4($a0) ## 000001B4 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C8DC8.s b/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C8DC8.s deleted file mode 100644 index 60aa4734fd..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C8DC8.s +++ /dev/null @@ -1,37 +0,0 @@ -glabel func_809C8DC8 -/* 00008 809C8DC8 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8 -/* 0000C 809C8DCC AFBF001C */ sw $ra, 0x001C($sp) -/* 00010 809C8DD0 AFA5003C */ sw $a1, 0x003C($sp) -/* 00014 809C8DD4 8C8F0024 */ lw $t7, 0x0024($a0) ## 00000024 -/* 00018 809C8DD8 27A20020 */ addiu $v0, $sp, 0x0020 ## $v0 = FFFFFFE8 -/* 0001C 809C8DDC 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 -/* 00020 809C8DE0 AC4F0000 */ sw $t7, 0x0000($v0) ## FFFFFFE8 -/* 00024 809C8DE4 8C8E0028 */ lw $t6, 0x0028($a0) ## 00000028 -/* 00028 809C8DE8 44813000 */ mtc1 $at, $f6 ## $f6 = 1.00 -/* 0002C 809C8DEC 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000 -/* 00030 809C8DF0 AC4E0004 */ sw $t6, 0x0004($v0) ## FFFFFFEC -/* 00034 809C8DF4 8C8F002C */ lw $t7, 0x002C($a0) ## 0000002C -/* 00038 809C8DF8 27A50030 */ addiu $a1, $sp, 0x0030 ## $a1 = FFFFFFF8 -/* 0003C 809C8DFC 27A6002C */ addiu $a2, $sp, 0x002C ## $a2 = FFFFFFF4 -/* 00040 809C8E00 AC4F0008 */ sw $t7, 0x0008($v0) ## FFFFFFF0 -/* 00044 809C8E04 C7A40024 */ lwc1 $f4, 0x0024($sp) -/* 00048 809C8E08 8FA4003C */ lw $a0, 0x003C($sp) -/* 0004C 809C8E0C AFA70038 */ sw $a3, 0x0038($sp) -/* 00050 809C8E10 46062200 */ add.s $f8, $f4, $f6 -/* 00054 809C8E14 AFA20010 */ sw $v0, 0x0010($sp) -/* 00058 809C8E18 248407C0 */ addiu $a0, $a0, 0x07C0 ## $a0 = 000007C0 -/* 0005C 809C8E1C 0C00F269 */ jal func_8003C9A4 -/* 00060 809C8E20 E7A80024 */ swc1 $f8, 0x0024($sp) -/* 00064 809C8E24 3C01C6FA */ lui $at, 0xC6FA ## $at = C6FA0000 -/* 00068 809C8E28 44815000 */ mtc1 $at, $f10 ## $f10 = -32000.00 -/* 0006C 809C8E2C 8FA70038 */ lw $a3, 0x0038($sp) -/* 00070 809C8E30 460A0032 */ c.eq.s $f0, $f10 -/* 00074 809C8E34 00000000 */ nop -/* 00078 809C8E38 45030003 */ bc1tl .L809C8E48 -/* 0007C 809C8E3C 8FBF001C */ lw $ra, 0x001C($sp) -/* 00080 809C8E40 E4E00028 */ swc1 $f0, 0x0028($a3) ## 00000028 -/* 00084 809C8E44 8FBF001C */ lw $ra, 0x001C($sp) -.L809C8E48: -/* 00088 809C8E48 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000 -/* 0008C 809C8E4C 03E00008 */ jr $ra -/* 00090 809C8E50 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C92F4.s b/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C92F4.s deleted file mode 100644 index bc68a9d04f..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C92F4.s +++ /dev/null @@ -1,72 +0,0 @@ -glabel func_809C92F4 -/* 00534 809C92F4 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8 -/* 00538 809C92F8 AFBF001C */ sw $ra, 0x001C($sp) -/* 0053C 809C92FC AFB00018 */ sw $s0, 0x0018($sp) -/* 00540 809C9300 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000 -/* 00544 809C9304 AFA40028 */ sw $a0, 0x0028($sp) -/* 00548 809C9308 AFA60030 */ sw $a2, 0x0030($sp) -/* 0054C 809C930C 0C03F66B */ jal Math_Rand_ZeroOne - ## Rand.Next() float -/* 00550 809C9310 AFA70034 */ sw $a3, 0x0034($sp) -/* 00554 809C9314 3C0141C8 */ lui $at, 0x41C8 ## $at = 41C80000 -/* 00558 809C9318 44812000 */ mtc1 $at, $f4 ## $f4 = 25.00 -/* 0055C 809C931C 00000000 */ nop -/* 00560 809C9320 46040182 */ mul.s $f6, $f0, $f4 -/* 00564 809C9324 0C03F66B */ jal Math_Rand_ZeroOne - ## Rand.Next() float -/* 00568 809C9328 E7A60024 */ swc1 $f6, 0x0024($sp) -/* 0056C 809C932C 3C014780 */ lui $at, 0x4780 ## $at = 47800000 -/* 00570 809C9330 44814000 */ mtc1 $at, $f8 ## $f8 = 65536.00 -/* 00574 809C9334 8FAF0028 */ lw $t7, 0x0028($sp) -/* 00578 809C9338 46080282 */ mul.s $f10, $f0, $f8 -/* 0057C 809C933C 4600540D */ trunc.w.s $f16, $f10 -/* 00580 809C9340 44028000 */ mfc1 $v0, $f16 -/* 00584 809C9344 00000000 */ nop -/* 00588 809C9348 A7A20022 */ sh $v0, 0x0022($sp) -/* 0058C 809C934C 8DF90024 */ lw $t9, 0x0024($t7) ## 00000024 -/* 00590 809C9350 00022400 */ sll $a0, $v0, 16 -/* 00594 809C9354 00042403 */ sra $a0, $a0, 16 -/* 00598 809C9358 AE190000 */ sw $t9, 0x0000($s0) ## 00000000 -/* 0059C 809C935C 8DF80028 */ lw $t8, 0x0028($t7) ## 00000028 -/* 005A0 809C9360 AE180004 */ sw $t8, 0x0004($s0) ## 00000004 -/* 005A4 809C9364 8DF9002C */ lw $t9, 0x002C($t7) ## 0000002C -/* 005A8 809C9368 0C01DE1C */ jal Math_Sins - ## sins? -/* 005AC 809C936C AE190008 */ sw $t9, 0x0008($s0) ## 00000008 -/* 005B0 809C9370 C7A40024 */ lwc1 $f4, 0x0024($sp) -/* 005B4 809C9374 C6120000 */ lwc1 $f18, 0x0000($s0) ## 00000000 -/* 005B8 809C9378 46040182 */ mul.s $f6, $f0, $f4 -/* 005BC 809C937C 46069200 */ add.s $f8, $f18, $f6 -/* 005C0 809C9380 E6080000 */ swc1 $f8, 0x0000($s0) ## 00000000 -/* 005C4 809C9384 0C01DE0D */ jal Math_Coss - ## coss? -/* 005C8 809C9388 87A40022 */ lh $a0, 0x0022($sp) -/* 005CC 809C938C C7B00024 */ lwc1 $f16, 0x0024($sp) -/* 005D0 809C9390 C60A0008 */ lwc1 $f10, 0x0008($s0) ## 00000008 -/* 005D4 809C9394 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 -/* 005D8 809C9398 46100102 */ mul.s $f4, $f0, $f16 -/* 005DC 809C939C 44813000 */ mtc1 $at, $f6 ## $f6 = 1.00 -/* 005E0 809C93A0 46045480 */ add.s $f18, $f10, $f4 -/* 005E4 809C93A4 E6120008 */ swc1 $f18, 0x0008($s0) ## 00000008 -/* 005E8 809C93A8 8FA80030 */ lw $t0, 0x0030($sp) -/* 005EC 809C93AC E5060004 */ swc1 $f6, 0x0004($t0) ## 00000004 -/* 005F0 809C93B0 0C01DE1C */ jal Math_Sins - ## sins? -/* 005F4 809C93B4 87A40022 */ lh $a0, 0x0022($sp) -/* 005F8 809C93B8 8FA90030 */ lw $t1, 0x0030($sp) -/* 005FC 809C93BC E5200000 */ swc1 $f0, 0x0000($t1) ## 00000000 -/* 00600 809C93C0 0C01DE0D */ jal Math_Coss - ## coss? -/* 00604 809C93C4 87A40022 */ lh $a0, 0x0022($sp) -/* 00608 809C93C8 8FA20034 */ lw $v0, 0x0034($sp) -/* 0060C 809C93CC 8FAA0030 */ lw $t2, 0x0030($sp) -/* 00610 809C93D0 44801000 */ mtc1 $zero, $f2 ## $f2 = 0.00 -/* 00614 809C93D4 E5400008 */ swc1 $f0, 0x0008($t2) ## 00000008 -/* 00618 809C93D8 E4420000 */ swc1 $f2, 0x0000($v0) ## 00000000 -/* 0061C 809C93DC E4420004 */ swc1 $f2, 0x0004($v0) ## 00000004 -/* 00620 809C93E0 E4420008 */ swc1 $f2, 0x0008($v0) ## 00000008 -/* 00624 809C93E4 8FBF001C */ lw $ra, 0x001C($sp) -/* 00628 809C93E8 8FB00018 */ lw $s0, 0x0018($sp) -/* 0062C 809C93EC 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000 -/* 00630 809C93F0 03E00008 */ jr $ra -/* 00634 809C93F4 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C93F8.s b/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C93F8.s deleted file mode 100644 index b214dd48ba..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C93F8.s +++ /dev/null @@ -1,47 +0,0 @@ -glabel func_809C93F8 -/* 00638 809C93F8 27BDFF90 */ addiu $sp, $sp, 0xFF90 ## $sp = FFFFFF90 -/* 0063C 809C93FC AFB60040 */ sw $s6, 0x0040($sp) -/* 00640 809C9400 AFB5003C */ sw $s5, 0x003C($sp) -/* 00644 809C9404 AFB40038 */ sw $s4, 0x0038($sp) -/* 00648 809C9408 AFB30034 */ sw $s3, 0x0034($sp) -/* 0064C 809C940C AFB20030 */ sw $s2, 0x0030($sp) -/* 00650 809C9410 AFB1002C */ sw $s1, 0x002C($sp) -/* 00654 809C9414 AFB00028 */ sw $s0, 0x0028($sp) -/* 00658 809C9418 0080A025 */ or $s4, $a0, $zero ## $s4 = 00000000 -/* 0065C 809C941C 00A0A825 */ or $s5, $a1, $zero ## $s5 = 00000000 -/* 00660 809C9420 AFBF0044 */ sw $ra, 0x0044($sp) -/* 00664 809C9424 00008025 */ or $s0, $zero, $zero ## $s0 = 00000000 -/* 00668 809C9428 27B10060 */ addiu $s1, $sp, 0x0060 ## $s1 = FFFFFFF0 -/* 0066C 809C942C 27B20054 */ addiu $s2, $sp, 0x0054 ## $s2 = FFFFFFE4 -/* 00670 809C9430 27B30048 */ addiu $s3, $sp, 0x0048 ## $s3 = FFFFFFD8 -/* 00674 809C9434 24160014 */ addiu $s6, $zero, 0x0014 ## $s6 = 00000014 -/* 00678 809C9438 02802025 */ or $a0, $s4, $zero ## $a0 = 00000000 -.L809C943C: -/* 0067C 809C943C 02202825 */ or $a1, $s1, $zero ## $a1 = FFFFFFF0 -/* 00680 809C9440 02403025 */ or $a2, $s2, $zero ## $a2 = FFFFFFE4 -/* 00684 809C9444 0C2724BD */ jal func_809C92F4 -/* 00688 809C9448 02603825 */ or $a3, $s3, $zero ## $a3 = FFFFFFD8 -/* 0068C 809C944C 240E0064 */ addiu $t6, $zero, 0x0064 ## $t6 = 00000064 -/* 00690 809C9450 240F001E */ addiu $t7, $zero, 0x001E ## $t7 = 0000001E -/* 00694 809C9454 2418000F */ addiu $t8, $zero, 0x000F ## $t8 = 0000000F -/* 00698 809C9458 AFB80018 */ sw $t8, 0x0018($sp) -/* 0069C 809C945C AFAF0014 */ sw $t7, 0x0014($sp) -/* 006A0 809C9460 AFAE0010 */ sw $t6, 0x0010($sp) -/* 006A4 809C9464 02A02025 */ or $a0, $s5, $zero ## $a0 = 00000000 -/* 006A8 809C9468 02202825 */ or $a1, $s1, $zero ## $a1 = FFFFFFF0 -/* 006AC 809C946C 02403025 */ or $a2, $s2, $zero ## $a2 = FFFFFFE4 -/* 006B0 809C9470 0C00A1CF */ jal func_8002873C -/* 006B4 809C9474 02603825 */ or $a3, $s3, $zero ## $a3 = FFFFFFD8 -/* 006B8 809C9478 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000001 -/* 006BC 809C947C 5616FFEF */ bnel $s0, $s6, .L809C943C -/* 006C0 809C9480 02802025 */ or $a0, $s4, $zero ## $a0 = 00000000 -/* 006C4 809C9484 8FBF0044 */ lw $ra, 0x0044($sp) -/* 006C8 809C9488 8FB00028 */ lw $s0, 0x0028($sp) -/* 006CC 809C948C 8FB1002C */ lw $s1, 0x002C($sp) -/* 006D0 809C9490 8FB20030 */ lw $s2, 0x0030($sp) -/* 006D4 809C9494 8FB30034 */ lw $s3, 0x0034($sp) -/* 006D8 809C9498 8FB40038 */ lw $s4, 0x0038($sp) -/* 006DC 809C949C 8FB5003C */ lw $s5, 0x003C($sp) -/* 006E0 809C94A0 8FB60040 */ lw $s6, 0x0040($sp) -/* 006E4 809C94A4 03E00008 */ jr $ra -/* 006E8 809C94A8 27BD0070 */ addiu $sp, $sp, 0x0070 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C94AC.s b/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C94AC.s deleted file mode 100644 index 942be22beb..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C94AC.s +++ /dev/null @@ -1,114 +0,0 @@ -.late_rodata -glabel D_809CA8F0 - .word 0x3F0CCCCD -glabel D_809CA8F4 - .word 0x3F266666 - -.text -glabel func_809C94AC -/* 006EC 809C94AC 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8 -/* 006F0 809C94B0 AFBF0024 */ sw $ra, 0x0024($sp) -/* 006F4 809C94B4 AFB00020 */ sw $s0, 0x0020($sp) -/* 006F8 809C94B8 AFA5002C */ sw $a1, 0x002C($sp) -/* 006FC 809C94BC 908F01F6 */ lbu $t7, 0x01F6($a0) ## 000001F6 -/* 00700 809C94C0 94990088 */ lhu $t9, 0x0088($a0) ## 00000088 -/* 00704 809C94C4 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE -/* 00708 809C94C8 240E00FF */ addiu $t6, $zero, 0x00FF ## $t6 = 000000FF -/* 0070C 809C94CC 01E1C024 */ and $t8, $t7, $at -/* 00710 809C94D0 33280001 */ andi $t0, $t9, 0x0001 ## $t0 = 00000000 -/* 00714 809C94D4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00718 809C94D8 A08E01F7 */ sb $t6, 0x01F7($a0) ## 000001F7 -/* 0071C 809C94DC 11000039 */ beq $t0, $zero, .L809C95C4 -/* 00720 809C94E0 A09801F6 */ sb $t8, 0x01F6($a0) ## 000001F6 -/* 00724 809C94E4 370A0002 */ ori $t2, $t8, 0x0002 ## $t2 = 00000002 -/* 00728 809C94E8 314200FF */ andi $v0, $t2, 0x00FF ## $v0 = 00000002 -/* 0072C 809C94EC 304B0004 */ andi $t3, $v0, 0x0004 ## $t3 = 00000000 -/* 00730 809C94F0 11600004 */ beq $t3, $zero, .L809C9504 -/* 00734 809C94F4 A08A01F6 */ sb $t2, 0x01F6($a0) ## 000001F6 -/* 00738 809C94F8 304CFFFB */ andi $t4, $v0, 0xFFFB ## $t4 = 00000002 -/* 0073C 809C94FC 10000003 */ beq $zero, $zero, .L809C950C -/* 00740 809C9500 A08C01F6 */ sb $t4, 0x01F6($a0) ## 000001F6 -.L809C9504: -/* 00744 809C9504 344D0004 */ ori $t5, $v0, 0x0004 ## $t5 = 00000006 -/* 00748 809C9508 A20D01F6 */ sb $t5, 0x01F6($s0) ## 000001F6 -.L809C950C: -/* 0074C 809C950C 920E01F9 */ lbu $t6, 0x01F9($s0) ## 000001F9 -/* 00750 809C9510 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003 -/* 00754 809C9514 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00758 809C9518 15C10008 */ bne $t6, $at, .L809C953C -/* 0075C 809C951C 3C05809D */ lui $a1, %hi(func_809C9B28) ## $a1 = 809D0000 -/* 00760 809C9520 C6040060 */ lwc1 $f4, 0x0060($s0) ## 00000060 -/* 00764 809C9524 3C01809D */ lui $at, %hi(D_809CA8F0) ## $at = 809D0000 -/* 00768 809C9528 C428A8F0 */ lwc1 $f8, %lo(D_809CA8F0)($at) -/* 0076C 809C952C 46002187 */ neg.s $f6, $f4 -/* 00770 809C9530 46083282 */ mul.s $f10, $f6, $f8 -/* 00774 809C9534 10000007 */ beq $zero, $zero, .L809C9554 -/* 00778 809C9538 E60A0060 */ swc1 $f10, 0x0060($s0) ## 00000060 -.L809C953C: -/* 0077C 809C953C C6100060 */ lwc1 $f16, 0x0060($s0) ## 00000060 -/* 00780 809C9540 3C01809D */ lui $at, %hi(D_809CA8F4) ## $at = 809D0000 -/* 00784 809C9544 C424A8F4 */ lwc1 $f4, %lo(D_809CA8F4)($at) -/* 00788 809C9548 46008487 */ neg.s $f18, $f16 -/* 0078C 809C954C 46049182 */ mul.s $f6, $f18, $f4 -/* 00790 809C9550 E6060060 */ swc1 $f6, 0x0060($s0) ## 00000060 -.L809C9554: -/* 00794 809C9554 3C0140B0 */ lui $at, 0x40B0 ## $at = 40B00000 -/* 00798 809C9558 44815000 */ mtc1 $at, $f10 ## $f10 = 5.50 -/* 0079C 809C955C C6080060 */ lwc1 $f8, 0x0060($s0) ## 00000060 -/* 007A0 809C9560 24A59B28 */ addiu $a1, $a1, %lo(func_809C9B28) ## $a1 = 809C9B28 -/* 007A4 809C9564 460A403C */ c.lt.s $f8, $f10 -/* 007A8 809C9568 00000000 */ nop -/* 007AC 809C956C 45000008 */ bc1f .L809C9590 -/* 007B0 809C9570 00000000 */ nop -/* 007B4 809C9574 C6100080 */ lwc1 $f16, 0x0080($s0) ## 00000080 -/* 007B8 809C9578 A60000B8 */ sh $zero, 0x00B8($s0) ## 000000B8 -/* 007BC 809C957C 0C272370 */ jal func_809C8DC0 -/* 007C0 809C9580 E6100028 */ swc1 $f16, 0x0028($s0) ## 00000028 -/* 007C4 809C9584 8FA4002C */ lw $a0, 0x002C($sp) -/* 007C8 809C9588 0C0200FC */ jal func_800803F0 -/* 007CC 809C958C 860501AE */ lh $a1, 0x01AE($s0) ## 000001AE -.L809C9590: -/* 007D0 809C9590 3C078013 */ lui $a3, %hi(D_801333E0) -/* 007D4 809C9594 3C0F8013 */ lui $t7, %hi(D_801333E8) -/* 007D8 809C9598 24E733E0 */ addiu $a3, %lo(D_801333E0) -/* 007DC 809C959C 25EF33E8 */ addiu $t7, %lo(D_801333E8) -/* 007E0 809C95A0 AFAF0014 */ sw $t7, 0x0014($sp) -/* 007E4 809C95A4 AFA70010 */ sw $a3, 0x0010($sp) -/* 007E8 809C95A8 24042856 */ addiu $a0, $zero, 0x2856 ## $a0 = 00002856 -/* 007EC 809C95AC 260500E4 */ addiu $a1, $s0, 0x00E4 ## $a1 = 000000E4 -/* 007F0 809C95B0 0C03DCE3 */ jal Audio_PlaySoundGeneral - -/* 007F4 809C95B4 24060004 */ addiu $a2, $zero, 0x0004 ## $a2 = 00000004 -/* 007F8 809C95B8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 007FC 809C95BC 0C2724FE */ jal func_809C93F8 -/* 00800 809C95C0 8FA5002C */ lw $a1, 0x002C($sp) -.L809C95C4: -/* 00804 809C95C4 921801F6 */ lbu $t8, 0x01F6($s0) ## 000001F6 -/* 00808 809C95C8 C6120028 */ lwc1 $f18, 0x0028($s0) ## 00000028 -/* 0080C 809C95CC C6040080 */ lwc1 $f4, 0x0080($s0) ## 00000080 -/* 00810 809C95D0 33190004 */ andi $t9, $t8, 0x0004 ## $t9 = 00000000 -/* 00814 809C95D4 13200009 */ beq $t9, $zero, .L809C95FC -/* 00818 809C95D8 46049001 */ sub.s $f0, $f18, $f4 -/* 0081C 809C95DC 3C014248 */ lui $at, 0x4248 ## $at = 42480000 -/* 00820 809C95E0 44813000 */ mtc1 $at, $f6 ## $f6 = 50.00 -/* 00824 809C95E4 00000000 */ nop -/* 00828 809C95E8 46060202 */ mul.s $f8, $f0, $f6 -/* 0082C 809C95EC 4600428D */ trunc.w.s $f10, $f8 -/* 00830 809C95F0 44095000 */ mfc1 $t1, $f10 -/* 00834 809C95F4 10000009 */ beq $zero, $zero, .L809C961C -/* 00838 809C95F8 A60900B8 */ sh $t1, 0x00B8($s0) ## 000000B8 -.L809C95FC: -/* 0083C 809C95FC 3C014248 */ lui $at, 0x4248 ## $at = 42480000 -/* 00840 809C9600 44819000 */ mtc1 $at, $f18 ## $f18 = 50.00 -/* 00844 809C9604 46000407 */ neg.s $f16, $f0 -/* 00848 809C9608 46128102 */ mul.s $f4, $f16, $f18 -/* 0084C 809C960C 4600218D */ trunc.w.s $f6, $f4 -/* 00850 809C9610 440B3000 */ mfc1 $t3, $f6 -/* 00854 809C9614 00000000 */ nop -/* 00858 809C9618 A60B00B8 */ sh $t3, 0x00B8($s0) ## 000000B8 -.L809C961C: -/* 0085C 809C961C 8FBF0024 */ lw $ra, 0x0024($sp) -/* 00860 809C9620 8FB00020 */ lw $s0, 0x0020($sp) -/* 00864 809C9624 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000 -/* 00868 809C9628 03E00008 */ jr $ra -/* 0086C 809C962C 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C9630.s b/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C9630.s deleted file mode 100644 index baa4e60cf4..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C9630.s +++ /dev/null @@ -1,60 +0,0 @@ -glabel func_809C9630 -/* 00870 809C9630 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8 -/* 00874 809C9634 AFBF0024 */ sw $ra, 0x0024($sp) -/* 00878 809C9638 AFB10020 */ sw $s1, 0x0020($sp) -/* 0087C 809C963C AFB0001C */ sw $s0, 0x001C($sp) -/* 00880 809C9640 8482001C */ lh $v0, 0x001C($a0) ## 0000001C -/* 00884 809C9644 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00888 809C9648 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000 -/* 0088C 809C964C 3042001F */ andi $v0, $v0, 0x001F ## $v0 = 00000000 -/* 00890 809C9650 28410014 */ slti $at, $v0, 0x0014 -/* 00894 809C9654 14200005 */ bne $at, $zero, .L809C966C -/* 00898 809C9658 28410020 */ slti $at, $v0, 0x0020 -/* 0089C 809C965C 50200004 */ beql $at, $zero, .L809C9670 -/* 008A0 809C9660 8E0201A8 */ lw $v0, 0x01A8($s0) ## 000001A8 -/* 008A4 809C9664 0C00BD7C */ jal func_8002F5F0 -/* 008A8 809C9668 00000000 */ nop -.L809C966C: -/* 008AC 809C966C 8E0201A8 */ lw $v0, 0x01A8($s0) ## 000001A8 -.L809C9670: -/* 008B0 809C9670 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 008B4 809C9674 3C05809D */ lui $a1, %hi(func_809C94AC) ## $a1 = 809D0000 -/* 008B8 809C9678 04400010 */ bltz $v0, .L809C96BC -/* 008BC 809C967C 2841FFF5 */ slti $at, $v0, 0xFFF5 -/* 008C0 809C9680 0C272370 */ jal func_809C8DC0 -/* 008C4 809C9684 24A594AC */ addiu $a1, $a1, %lo(func_809C94AC) ## $a1 = 809C94AC -/* 008C8 809C9688 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 008CC 809C968C 24051194 */ addiu $a1, $zero, 0x1194 ## $a1 = 00001194 -/* 008D0 809C9690 2406270F */ addiu $a2, $zero, 0x270F ## $a2 = 0000270F -/* 008D4 809C9694 02003825 */ or $a3, $s0, $zero ## $a3 = 00000000 -/* 008D8 809C9698 0C02003E */ jal func_800800F8 -/* 008DC 809C969C AFA00010 */ sw $zero, 0x0010($sp) -/* 008E0 809C96A0 AE0201AC */ sw $v0, 0x01AC($s0) ## 000001AC -/* 008E4 809C96A4 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 008E8 809C96A8 26250810 */ addiu $a1, $s1, 0x0810 ## $a1 = 00000810 -/* 008EC 809C96AC 0C00FB14 */ jal func_8003EC50 -/* 008F0 809C96B0 8E06014C */ lw $a2, 0x014C($s0) ## 0000014C -/* 008F4 809C96B4 1000000E */ beq $zero, $zero, .L809C96F0 -/* 008F8 809C96B8 8FBF0024 */ lw $ra, 0x0024($sp) -.L809C96BC: -/* 008FC 809C96BC 14200004 */ bne $at, $zero, .L809C96D0 -/* 00900 809C96C0 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00904 809C96C4 244E0001 */ addiu $t6, $v0, 0x0001 ## $t6 = 00000001 -/* 00908 809C96C8 10000008 */ beq $zero, $zero, .L809C96EC -/* 0090C 809C96CC AE0E01A8 */ sw $t6, 0x01A8($s0) ## 000001A8 -.L809C96D0: -/* 00910 809C96D0 0C00B2D0 */ jal Flags_GetSwitch - -/* 00914 809C96D4 920501F8 */ lbu $a1, 0x01F8($s0) ## 000001F8 -/* 00918 809C96D8 50400005 */ beql $v0, $zero, .L809C96F0 -/* 0091C 809C96DC 8FBF0024 */ lw $ra, 0x0024($sp) -/* 00920 809C96E0 8E0F01A8 */ lw $t7, 0x01A8($s0) ## 000001A8 -/* 00924 809C96E4 25F80001 */ addiu $t8, $t7, 0x0001 ## $t8 = 00000001 -/* 00928 809C96E8 AE1801A8 */ sw $t8, 0x01A8($s0) ## 000001A8 -.L809C96EC: -/* 0092C 809C96EC 8FBF0024 */ lw $ra, 0x0024($sp) -.L809C96F0: -/* 00930 809C96F0 8FB0001C */ lw $s0, 0x001C($sp) -/* 00934 809C96F4 8FB10020 */ lw $s1, 0x0020($sp) -/* 00938 809C96F8 03E00008 */ jr $ra -/* 0093C 809C96FC 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C9700.s b/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C9700.s deleted file mode 100644 index 239f8a4515..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C9700.s +++ /dev/null @@ -1,115 +0,0 @@ -.late_rodata -glabel D_809CA8F8 - .word 0x46AFC800 - -.text -glabel func_809C9700 -/* 00940 809C9700 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8 -/* 00944 809C9704 AFBF001C */ sw $ra, 0x001C($sp) -/* 00948 809C9708 AFB00018 */ sw $s0, 0x0018($sp) -/* 0094C 809C970C 8482001C */ lh $v0, 0x001C($a0) ## 0000001C -/* 00950 809C9710 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00954 809C9714 00A03025 */ or $a2, $a1, $zero ## $a2 = 00000000 -/* 00958 809C9718 3042001F */ andi $v0, $v0, 0x001F ## $v0 = 00000000 -/* 0095C 809C971C 28410014 */ slti $at, $v0, 0x0014 -/* 00960 809C9720 14200009 */ bne $at, $zero, .L809C9748 -/* 00964 809C9724 8CA31C44 */ lw $v1, 0x1C44($a1) ## 00001C44 -/* 00968 809C9728 28410020 */ slti $at, $v0, 0x0020 -/* 0096C 809C972C 50200007 */ beql $at, $zero, .L809C974C -/* 00970 809C9730 26040024 */ addiu $a0, $s0, 0x0024 ## $a0 = 00000024 -/* 00974 809C9734 AFA30020 */ sw $v1, 0x0020($sp) -/* 00978 809C9738 0C00BD7C */ jal func_8002F5F0 -/* 0097C 809C973C AFA6002C */ sw $a2, 0x002C($sp) -/* 00980 809C9740 8FA30020 */ lw $v1, 0x0020($sp) -/* 00984 809C9744 8FA6002C */ lw $a2, 0x002C($sp) -.L809C9748: -/* 00988 809C9748 26040024 */ addiu $a0, $s0, 0x0024 ## $a0 = 00000024 -.L809C974C: -/* 0098C 809C974C 24650024 */ addiu $a1, $v1, 0x0024 ## $a1 = 00000024 -/* 00990 809C9750 AFA30020 */ sw $v1, 0x0020($sp) -/* 00994 809C9754 0C032D94 */ jal Math3D_Vec3fDistSq -/* 00998 809C9758 AFA6002C */ sw $a2, 0x002C($sp) -/* 0099C 809C975C 3C01809D */ lui $at, %hi(D_809CA8F8) ## $at = 809D0000 -/* 009A0 809C9760 C424A8F8 */ lwc1 $f4, %lo(D_809CA8F8)($at) -/* 009A4 809C9764 8FA30020 */ lw $v1, 0x0020($sp) -/* 009A8 809C9768 8FA6002C */ lw $a2, 0x002C($sp) -/* 009AC 809C976C 4600203C */ c.lt.s $f4, $f0 -/* 009B0 809C9770 00000000 */ nop -/* 009B4 809C9774 45020004 */ bc1fl .L809C9788 -/* 009B8 809C9778 920201FB */ lbu $v0, 0x01FB($s0) ## 000001FB -/* 009BC 809C977C 1000003E */ beq $zero, $zero, .L809C9878 -/* 009C0 809C9780 A20001FB */ sb $zero, 0x01FB($s0) ## 000001FB -/* 009C4 809C9784 920201FB */ lbu $v0, 0x01FB($s0) ## 000001FB -.L809C9788: -/* 009C8 809C9788 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001 -/* 009CC 809C978C 1440000C */ bne $v0, $zero, .L809C97C0 -/* 009D0 809C9790 00000000 */ nop -/* 009D4 809C9794 8C620680 */ lw $v0, 0x0680($v1) ## 00000680 -/* 009D8 809C9798 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001 -/* 009DC 809C979C 000271C0 */ sll $t6, $v0, 7 -/* 009E0 809C97A0 05C20006 */ bltzl $t6, .L809C97BC -/* 009E4 809C97A4 A21801FB */ sb $t8, 0x01FB($s0) ## 000001FB -/* 009E8 809C97A8 3C010080 */ lui $at, 0x0080 ## $at = 00800000 -/* 009EC 809C97AC 00417825 */ or $t7, $v0, $at ## $t7 = 00800000 -/* 009F0 809C97B0 10000031 */ beq $zero, $zero, .L809C9878 -/* 009F4 809C97B4 AC6F0680 */ sw $t7, 0x0680($v1) ## 00000680 -/* 009F8 809C97B8 A21801FB */ sb $t8, 0x01FB($s0) ## 000001FB -.L809C97BC: -/* 009FC 809C97BC 330200FF */ andi $v0, $t8, 0x00FF ## $v0 = 00000001 -.L809C97C0: -/* 00A00 809C97C0 14410006 */ bne $v0, $at, .L809C97DC -/* 00A04 809C97C4 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000 -/* 00A08 809C97C8 0C042F56 */ jal func_8010BD58 -/* 00A0C 809C97CC 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001 -/* 00A10 809C97D0 24190002 */ addiu $t9, $zero, 0x0002 ## $t9 = 00000002 -/* 00A14 809C97D4 10000028 */ beq $zero, $zero, .L809C9878 -/* 00A18 809C97D8 A21901FB */ sb $t9, 0x01FB($s0) ## 000001FB -.L809C97DC: -/* 00A1C 809C97DC 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002 -/* 00A20 809C97E0 14410025 */ bne $v0, $at, .L809C9878 -/* 00A24 809C97E4 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 00A28 809C97E8 00C11021 */ addu $v0, $a2, $at -/* 00A2C 809C97EC 944804C6 */ lhu $t0, 0x04C6($v0) ## 000004C6 -/* 00A30 809C97F0 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004 -/* 00A34 809C97F4 55010021 */ bnel $t0, $at, .L809C987C -/* 00A38 809C97F8 8FBF001C */ lw $ra, 0x001C($sp) -/* 00A3C 809C97FC 944304C4 */ lhu $v1, 0x04C4($v0) ## 000004C4 -/* 00A40 809C9800 24010008 */ addiu $at, $zero, 0x0008 ## $at = 00000008 -/* 00A44 809C9804 54610005 */ bnel $v1, $at, .L809C981C -/* 00A48 809C9808 24010009 */ addiu $at, $zero, 0x0009 ## $at = 00000009 -/* 00A4C 809C980C 920901F9 */ lbu $t1, 0x01F9($s0) ## 000001F9 -/* 00A50 809C9810 24010009 */ addiu $at, $zero, 0x0009 ## $at = 00000009 -/* 00A54 809C9814 11210007 */ beq $t1, $at, .L809C9834 -/* 00A58 809C9818 24010009 */ addiu $at, $zero, 0x0009 ## $at = 00000009 -.L809C981C: -/* 00A5C 809C981C 54610016 */ bnel $v1, $at, .L809C9878 -/* 00A60 809C9820 A20001FB */ sb $zero, 0x01FB($s0) ## 000001FB -/* 00A64 809C9824 920A01F9 */ lbu $t2, 0x01F9($s0) ## 000001F9 -/* 00A68 809C9828 2401000A */ addiu $at, $zero, 0x000A ## $at = 0000000A -/* 00A6C 809C982C 55410012 */ bnel $t2, $at, .L809C9878 -/* 00A70 809C9830 A20001FB */ sb $zero, 0x01FB($s0) ## 000001FB -.L809C9834: -/* 00A74 809C9834 8E0B0004 */ lw $t3, 0x0004($s0) ## 00000004 -/* 00A78 809C9838 3C01FDFF */ lui $at, 0xFDFF ## $at = FDFF0000 -/* 00A7C 809C983C 3421FFFF */ ori $at, $at, 0xFFFF ## $at = FDFFFFFF -/* 00A80 809C9840 01616024 */ and $t4, $t3, $at -/* 00A84 809C9844 AE0C0004 */ sw $t4, 0x0004($s0) ## 00000004 -/* 00A88 809C9848 3C05809D */ lui $a1, %hi(func_809C99C4) ## $a1 = 809D0000 -/* 00A8C 809C984C 24A599C4 */ addiu $a1, $a1, %lo(func_809C99C4) ## $a1 = 809C99C4 -/* 00A90 809C9850 AFA6002C */ sw $a2, 0x002C($sp) -/* 00A94 809C9854 0C272370 */ jal func_809C8DC0 -/* 00A98 809C9858 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00A9C 809C985C 8FA4002C */ lw $a0, 0x002C($sp) -/* 00AA0 809C9860 0C020120 */ jal func_80080480 -/* 00AA4 809C9864 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 00AA8 809C9868 AE0001A8 */ sw $zero, 0x01A8($s0) ## 000001A8 -/* 00AAC 809C986C 10000002 */ beq $zero, $zero, .L809C9878 -/* 00AB0 809C9870 A20001FB */ sb $zero, 0x01FB($s0) ## 000001FB -/* 00AB4 809C9874 A20001FB */ sb $zero, 0x01FB($s0) ## 000001FB -.L809C9878: -/* 00AB8 809C9878 8FBF001C */ lw $ra, 0x001C($sp) -.L809C987C: -/* 00ABC 809C987C 8FB00018 */ lw $s0, 0x0018($sp) -/* 00AC0 809C9880 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000 -/* 00AC4 809C9884 03E00008 */ jr $ra -/* 00AC8 809C9888 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C988C.s b/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C988C.s deleted file mode 100644 index fbcb3e7512..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C988C.s +++ /dev/null @@ -1,37 +0,0 @@ -glabel func_809C988C -/* 00ACC 809C988C 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 00AD0 809C9890 AFBF001C */ sw $ra, 0x001C($sp) -/* 00AD4 809C9894 AFB00018 */ sw $s0, 0x0018($sp) -/* 00AD8 809C9898 AFA50024 */ sw $a1, 0x0024($sp) -/* 00ADC 809C989C 8482001C */ lh $v0, 0x001C($a0) ## 0000001C -/* 00AE0 809C98A0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00AE4 809C98A4 3042001F */ andi $v0, $v0, 0x001F ## $v0 = 00000000 -/* 00AE8 809C98A8 28410014 */ slti $at, $v0, 0x0014 -/* 00AEC 809C98AC 14200005 */ bne $at, $zero, .L809C98C4 -/* 00AF0 809C98B0 28410020 */ slti $at, $v0, 0x0020 -/* 00AF4 809C98B4 50200004 */ beql $at, $zero, .L809C98C8 -/* 00AF8 809C98B8 8FA40024 */ lw $a0, 0x0024($sp) -/* 00AFC 809C98BC 0C00BD7C */ jal func_8002F5F0 -/* 00B00 809C98C0 00000000 */ nop -.L809C98C4: -/* 00B04 809C98C4 8FA40024 */ lw $a0, 0x0024($sp) -.L809C98C8: -/* 00B08 809C98C8 0C00B2D0 */ jal Flags_GetSwitch - -/* 00B0C 809C98CC 920501F8 */ lbu $a1, 0x01F8($s0) ## 000001F8 -/* 00B10 809C98D0 10400009 */ beq $v0, $zero, .L809C98F8 -/* 00B14 809C98D4 8FA40024 */ lw $a0, 0x0024($sp) -/* 00B18 809C98D8 0C020120 */ jal func_80080480 -/* 00B1C 809C98DC 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 00B20 809C98E0 3C05809D */ lui $a1, %hi(func_809C99C4) ## $a1 = 809D0000 -/* 00B24 809C98E4 24A599C4 */ addiu $a1, $a1, %lo(func_809C99C4) ## $a1 = 809C99C4 -/* 00B28 809C98E8 0C272370 */ jal func_809C8DC0 -/* 00B2C 809C98EC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00B30 809C98F0 240EFFE2 */ addiu $t6, $zero, 0xFFE2 ## $t6 = FFFFFFE2 -/* 00B34 809C98F4 AE0E01A8 */ sw $t6, 0x01A8($s0) ## 000001A8 -.L809C98F8: -/* 00B38 809C98F8 8FBF001C */ lw $ra, 0x001C($sp) -/* 00B3C 809C98FC 8FB00018 */ lw $s0, 0x0018($sp) -/* 00B40 809C9900 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 -/* 00B44 809C9904 03E00008 */ jr $ra -/* 00B48 809C9908 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C990C.s b/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C990C.s deleted file mode 100644 index 450c29c394..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C990C.s +++ /dev/null @@ -1,54 +0,0 @@ -glabel func_809C990C -/* 00B4C 809C990C 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 00B50 809C9910 AFBF001C */ sw $ra, 0x001C($sp) -/* 00B54 809C9914 AFB10018 */ sw $s1, 0x0018($sp) -/* 00B58 809C9918 AFB00014 */ sw $s0, 0x0014($sp) -/* 00B5C 809C991C 8482001C */ lh $v0, 0x001C($a0) ## 0000001C -/* 00B60 809C9920 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00B64 809C9924 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000 -/* 00B68 809C9928 3042001F */ andi $v0, $v0, 0x001F ## $v0 = 00000000 -/* 00B6C 809C992C 28410014 */ slti $at, $v0, 0x0014 -/* 00B70 809C9930 14200005 */ bne $at, $zero, .L809C9948 -/* 00B74 809C9934 28410020 */ slti $at, $v0, 0x0020 -/* 00B78 809C9938 50200004 */ beql $at, $zero, .L809C994C -/* 00B7C 809C993C 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00B80 809C9940 0C00BD7C */ jal func_8002F5F0 -/* 00B84 809C9944 00000000 */ nop -.L809C9948: -/* 00B88 809C9948 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -.L809C994C: -/* 00B8C 809C994C 0C00B349 */ jal Flags_GetTempClear - -/* 00B90 809C9950 82050003 */ lb $a1, 0x0003($s0) ## 00000003 -/* 00B94 809C9954 50400017 */ beql $v0, $zero, .L809C99B4 -/* 00B98 809C9958 8FBF001C */ lw $ra, 0x001C($sp) -/* 00B9C 809C995C 0C023A62 */ jal Player_InCsMode -/* 00BA0 809C9960 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00BA4 809C9964 14400012 */ bne $v0, $zero, .L809C99B0 -/* 00BA8 809C9968 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00BAC 809C996C 0C00B33C */ jal Flags_SetClear - -/* 00BB0 809C9970 82050003 */ lb $a1, 0x0003($s0) ## 00000003 -/* 00BB4 809C9974 3C05809D */ lui $a1, %hi(func_809C99C4) ## $a1 = 809D0000 -/* 00BB8 809C9978 24A599C4 */ addiu $a1, $a1, %lo(func_809C99C4) ## $a1 = 809C99C4 -/* 00BBC 809C997C 0C272370 */ jal func_809C8DC0 -/* 00BC0 809C9980 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00BC4 809C9984 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00BC8 809C9988 0C020120 */ jal func_80080480 -/* 00BCC 809C998C 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 00BD0 809C9990 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00BD4 809C9994 0C0201CA */ jal func_80080728 -/* 00BD8 809C9998 92050002 */ lbu $a1, 0x0002($s0) ## 00000002 -/* 00BDC 809C999C 10400003 */ beq $v0, $zero, .L809C99AC -/* 00BE0 809C99A0 240EFFE2 */ addiu $t6, $zero, 0xFFE2 ## $t6 = FFFFFFE2 -/* 00BE4 809C99A4 10000002 */ beq $zero, $zero, .L809C99B0 -/* 00BE8 809C99A8 AE0001A8 */ sw $zero, 0x01A8($s0) ## 000001A8 -.L809C99AC: -/* 00BEC 809C99AC AE0E01A8 */ sw $t6, 0x01A8($s0) ## 000001A8 -.L809C99B0: -/* 00BF0 809C99B0 8FBF001C */ lw $ra, 0x001C($sp) -.L809C99B4: -/* 00BF4 809C99B4 8FB00014 */ lw $s0, 0x0014($sp) -/* 00BF8 809C99B8 8FB10018 */ lw $s1, 0x0018($sp) -/* 00BFC 809C99BC 03E00008 */ jr $ra -/* 00C00 809C99C0 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C99C4.s b/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C99C4.s deleted file mode 100644 index f4f73e847e..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C99C4.s +++ /dev/null @@ -1,51 +0,0 @@ -glabel func_809C99C4 -/* 00C04 809C99C4 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8 -/* 00C08 809C99C8 AFBF0034 */ sw $ra, 0x0034($sp) -/* 00C0C 809C99CC AFB00030 */ sw $s0, 0x0030($sp) -/* 00C10 809C99D0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00C14 809C99D4 0C016C66 */ jal func_8005B198 -/* 00C18 809C99D8 AFA5003C */ sw $a1, 0x003C($sp) -/* 00C1C 809C99DC 920E0002 */ lbu $t6, 0x0002($s0) ## 00000002 -/* 00C20 809C99E0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00C24 809C99E4 3C05809D */ lui $a1, %hi(func_809C9A7C) ## $a1 = 809D0000 -/* 00C28 809C99E8 104E0004 */ beq $v0, $t6, .L809C99FC -/* 00C2C 809C99EC 00000000 */ nop -/* 00C30 809C99F0 8E0F01A8 */ lw $t7, 0x01A8($s0) ## 000001A8 -/* 00C34 809C99F4 51E0001D */ beql $t7, $zero, .L809C9A6C -/* 00C38 809C99F8 8FBF0034 */ lw $ra, 0x0034($sp) -.L809C99FC: -/* 00C3C 809C99FC 0C272370 */ jal func_809C8DC0 -/* 00C40 809C9A00 24A59A7C */ addiu $a1, $a1, %lo(func_809C9A7C) ## $a1 = 809C9A7C -/* 00C44 809C9A04 C604000C */ lwc1 $f4, 0x000C($s0) ## 0000000C -/* 00C48 809C9A08 8FA5003C */ lw $a1, 0x003C($sp) -/* 00C4C 809C9A0C AE0001A8 */ sw $zero, 0x01A8($s0) ## 000001A8 -/* 00C50 809C9A10 8E070008 */ lw $a3, 0x0008($s0) ## 00000008 -/* 00C54 809C9A14 E7A40010 */ swc1 $f4, 0x0010($sp) -/* 00C58 809C9A18 C6060010 */ lwc1 $f6, 0x0010($s0) ## 00000010 -/* 00C5C 809C9A1C 24180011 */ addiu $t8, $zero, 0x0011 ## $t8 = 00000011 -/* 00C60 809C9A20 AFB80024 */ sw $t8, 0x0024($sp) -/* 00C64 809C9A24 AFA00020 */ sw $zero, 0x0020($sp) -/* 00C68 809C9A28 AFA0001C */ sw $zero, 0x001C($sp) -/* 00C6C 809C9A2C AFA00018 */ sw $zero, 0x0018($sp) -/* 00C70 809C9A30 2406008C */ addiu $a2, $zero, 0x008C ## $a2 = 0000008C -/* 00C74 809C9A34 24A41C24 */ addiu $a0, $a1, 0x1C24 ## $a0 = 00001C24 -/* 00C78 809C9A38 0C00C7D4 */ jal Actor_Spawn - ## ActorSpawn -/* 00C7C 809C9A3C E7A60014 */ swc1 $f6, 0x0014($sp) -/* 00C80 809C9A40 3C078013 */ lui $a3, %hi(D_801333E0) -/* 00C84 809C9A44 3C198013 */ lui $t9, %hi(D_801333E8) -/* 00C88 809C9A48 24E733E0 */ addiu $a3, %lo(D_801333E0) -/* 00C8C 809C9A4C 273933E8 */ addiu $t9, %lo(D_801333E8) -/* 00C90 809C9A50 AFB90014 */ sw $t9, 0x0014($sp) -/* 00C94 809C9A54 AFA70010 */ sw $a3, 0x0010($sp) -/* 00C98 809C9A58 2404287B */ addiu $a0, $zero, 0x287B ## $a0 = 0000287B -/* 00C9C 809C9A5C 260500E4 */ addiu $a1, $s0, 0x00E4 ## $a1 = 000000E4 -/* 00CA0 809C9A60 0C03DCE3 */ jal Audio_PlaySoundGeneral - -/* 00CA4 809C9A64 24060004 */ addiu $a2, $zero, 0x0004 ## $a2 = 00000004 -/* 00CA8 809C9A68 8FBF0034 */ lw $ra, 0x0034($sp) -.L809C9A6C: -/* 00CAC 809C9A6C 8FB00030 */ lw $s0, 0x0030($sp) -/* 00CB0 809C9A70 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000 -/* 00CB4 809C9A74 03E00008 */ jr $ra -/* 00CB8 809C9A78 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C9A7C.s b/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C9A7C.s deleted file mode 100644 index ece24c5def..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C9A7C.s +++ /dev/null @@ -1,48 +0,0 @@ -glabel func_809C9A7C -/* 00CBC 809C9A7C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00CC0 809C9A80 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000 -/* 00CC4 809C9A84 AFBF0014 */ sw $ra, 0x0014($sp) -/* 00CC8 809C9A88 AFA5001C */ sw $a1, 0x001C($sp) -/* 00CCC 809C9A8C 8CE6014C */ lw $a2, 0x014C($a3) ## 0000014C -/* 00CD0 809C9A90 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 00CD4 809C9A94 24A50810 */ addiu $a1, $a1, 0x0810 ## $a1 = 00000810 -/* 00CD8 809C9A98 0C00FB14 */ jal func_8003EC50 -/* 00CDC 809C9A9C AFA70018 */ sw $a3, 0x0018($sp) -/* 00CE0 809C9AA0 8FA70018 */ lw $a3, 0x0018($sp) -/* 00CE4 809C9AA4 8CE201A8 */ lw $v0, 0x01A8($a3) ## 000001A8 -/* 00CE8 809C9AA8 04410004 */ bgez $v0, .L809C9ABC -/* 00CEC 809C9AAC 28410028 */ slti $at, $v0, 0x0028 -/* 00CF0 809C9AB0 244F0001 */ addiu $t7, $v0, 0x0001 ## $t7 = 00000001 -/* 00CF4 809C9AB4 10000018 */ beq $zero, $zero, .L809C9B18 -/* 00CF8 809C9AB8 ACEF01A8 */ sw $t7, 0x01A8($a3) ## 000001A8 -.L809C9ABC: -/* 00CFC 809C9ABC 10200008 */ beq $at, $zero, .L809C9AE0 -/* 00D00 809C9AC0 3C013FA0 */ lui $at, 0x3FA0 ## $at = 3FA00000 -/* 00D04 809C9AC4 44813000 */ mtc1 $at, $f6 ## $f6 = 1.25 -/* 00D08 809C9AC8 C4E40028 */ lwc1 $f4, 0x0028($a3) ## 00000028 -/* 00D0C 809C9ACC 24580001 */ addiu $t8, $v0, 0x0001 ## $t8 = 00000001 -/* 00D10 809C9AD0 ACF801A8 */ sw $t8, 0x01A8($a3) ## 000001A8 -/* 00D14 809C9AD4 46062200 */ add.s $f8, $f4, $f6 -/* 00D18 809C9AD8 1000000F */ beq $zero, $zero, .L809C9B18 -/* 00D1C 809C9ADC E4E80028 */ swc1 $f8, 0x0028($a3) ## 00000028 -.L809C9AE0: -/* 00D20 809C9AE0 2841003C */ slti $at, $v0, 0x003C -/* 00D24 809C9AE4 10200009 */ beq $at, $zero, .L809C9B0C -/* 00D28 809C9AE8 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000 -/* 00D2C 809C9AEC 90F901F7 */ lbu $t9, 0x01F7($a3) ## 000001F7 -/* 00D30 809C9AF0 C4EA000C */ lwc1 $f10, 0x000C($a3) ## 0000000C -/* 00D34 809C9AF4 24490001 */ addiu $t1, $v0, 0x0001 ## $t1 = 00000001 -/* 00D38 809C9AF8 2728000C */ addiu $t0, $t9, 0x000C ## $t0 = 0000000C -/* 00D3C 809C9AFC A0E801F7 */ sb $t0, 0x01F7($a3) ## 000001F7 -/* 00D40 809C9B00 ACE901A8 */ sw $t1, 0x01A8($a3) ## 000001A8 -/* 00D44 809C9B04 10000004 */ beq $zero, $zero, .L809C9B18 -/* 00D48 809C9B08 E4EA0028 */ swc1 $f10, 0x0028($a3) ## 00000028 -.L809C9B0C: -/* 00D4C 809C9B0C 3C05809D */ lui $a1, %hi(func_809C9B28) ## $a1 = 809D0000 -/* 00D50 809C9B10 0C272370 */ jal func_809C8DC0 -/* 00D54 809C9B14 24A59B28 */ addiu $a1, $a1, %lo(func_809C9B28) ## $a1 = 809C9B28 -.L809C9B18: -/* 00D58 809C9B18 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00D5C 809C9B1C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00D60 809C9B20 03E00008 */ jr $ra -/* 00D64 809C9B24 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C9B28.s b/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C9B28.s deleted file mode 100644 index 2b82619dd9..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C9B28.s +++ /dev/null @@ -1,167 +0,0 @@ -.rdata -glabel D_809CA830 - .asciz "Actor_Environment_Tbox_On() %d\n" - .balign 4 - -.text -glabel func_809C9B28 -/* 00D68 809C9B28 27BDFF98 */ addiu $sp, $sp, 0xFF98 ## $sp = FFFFFF98 -/* 00D6C 809C9B2C AFBF003C */ sw $ra, 0x003C($sp) -/* 00D70 809C9B30 AFB00038 */ sw $s0, 0x0038($sp) -/* 00D74 809C9B34 AFA5006C */ sw $a1, 0x006C($sp) -/* 00D78 809C9B38 908F01F6 */ lbu $t7, 0x01F6($a0) ## 000001F6 -/* 00D7C 809C9B3C 848201F4 */ lh $v0, 0x01F4($a0) ## 000001F4 -/* 00D80 809C9B40 240E00FF */ addiu $t6, $zero, 0x00FF ## $t6 = 000000FF -/* 00D84 809C9B44 35F80001 */ ori $t8, $t7, 0x0001 ## $t8 = 00000001 -/* 00D88 809C9B48 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00D8C 809C9B4C A08E01F7 */ sb $t6, 0x01F7($a0) ## 000001F7 -/* 00D90 809C9B50 1040004C */ beq $v0, $zero, .L809C9C84 -/* 00D94 809C9B54 A09801F6 */ sb $t8, 0x01F6($a0) ## 000001F6 -/* 00D98 809C9B58 3C038016 */ lui $v1, %hi(gSaveContext+4) -/* 00D9C 809C9B5C 04410003 */ bgez $v0, .L809C9B6C -/* 00DA0 809C9B60 8C63E664 */ lw $v1, %lo(gSaveContext+4)($v1) -/* 00DA4 809C9B64 10000002 */ beq $zero, $zero, .L809C9B70 -/* 00DA8 809C9B68 24020002 */ addiu $v0, $zero, 0x0002 ## $v0 = 00000002 -.L809C9B6C: -/* 00DAC 809C9B6C 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000 -.L809C9B70: -/* 00DB0 809C9B70 0002C880 */ sll $t9, $v0, 2 -/* 00DB4 809C9B74 00034080 */ sll $t0, $v1, 2 -/* 00DB8 809C9B78 03284821 */ addu $t1, $t9, $t0 -/* 00DBC 809C9B7C 3C05809D */ lui $a1, %hi(D_809CA800) ## $a1 = 809D0000 -/* 00DC0 809C9B80 00A92821 */ addu $a1, $a1, $t1 -/* 00DC4 809C9B84 8CA4A800 */ lw $a0, %lo(D_809CA800)($a1) -/* 00DC8 809C9B88 0C028800 */ jal SkelAnime_GetFrameCount - -/* 00DCC 809C9B8C AFA40060 */ sw $a0, 0x0060($sp) -/* 00DD0 809C9B90 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00 -/* 00DD4 809C9B94 44804000 */ mtc1 $zero, $f8 ## $f8 = 0.00 -/* 00DD8 809C9B98 240A0002 */ addiu $t2, $zero, 0x0002 ## $t2 = 00000002 -/* 00DDC 809C9B9C 468021A0 */ cvt.s.w $f6, $f4 -/* 00DE0 809C9BA0 8FA50060 */ lw $a1, 0x0060($sp) -/* 00DE4 809C9BA4 AFAA0014 */ sw $t2, 0x0014($sp) -/* 00DE8 809C9BA8 26040164 */ addiu $a0, $s0, 0x0164 ## $a0 = 00000164 -/* 00DEC 809C9BAC 3C063FC0 */ lui $a2, 0x3FC0 ## $a2 = 3FC00000 -/* 00DF0 809C9BB0 24070000 */ addiu $a3, $zero, 0x0000 ## $a3 = 00000000 -/* 00DF4 809C9BB4 E7A60010 */ swc1 $f6, 0x0010($sp) -/* 00DF8 809C9BB8 0C029468 */ jal SkelAnime_ChangeAnim - -/* 00DFC 809C9BBC E7A80018 */ swc1 $f8, 0x0018($sp) -/* 00E00 809C9BC0 3C05809D */ lui $a1, %hi(func_809C9D70) ## $a1 = 809D0000 -/* 00E04 809C9BC4 24A59D70 */ addiu $a1, $a1, %lo(func_809C9D70) ## $a1 = 809C9D70 -/* 00E08 809C9BC8 0C272370 */ jal func_809C8DC0 -/* 00E0C 809C9BCC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00E10 809C9BD0 860B01F4 */ lh $t3, 0x01F4($s0) ## 000001F4 -/* 00E14 809C9BD4 59600021 */ blezl $t3, .L809C9C5C -/* 00E18 809C9BD8 8605001C */ lh $a1, 0x001C($s0) ## 0000001C -/* 00E1C 809C9BDC 920201F9 */ lbu $v0, 0x01F9($s0) ## 000001F9 -/* 00E20 809C9BE0 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005 -/* 00E24 809C9BE4 1041001C */ beq $v0, $at, .L809C9C58 -/* 00E28 809C9BE8 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006 -/* 00E2C 809C9BEC 1041001A */ beq $v0, $at, .L809C9C58 -/* 00E30 809C9BF0 24010007 */ addiu $at, $zero, 0x0007 ## $at = 00000007 -/* 00E34 809C9BF4 10410018 */ beq $v0, $at, .L809C9C58 -/* 00E38 809C9BF8 24010008 */ addiu $at, $zero, 0x0008 ## $at = 00000008 -/* 00E3C 809C9BFC 50410017 */ beql $v0, $at, .L809C9C5C -/* 00E40 809C9C00 8605001C */ lh $a1, 0x001C($s0) ## 0000001C -/* 00E44 809C9C04 C60A0024 */ lwc1 $f10, 0x0024($s0) ## 00000024 -/* 00E48 809C9C08 8FA6006C */ lw $a2, 0x006C($sp) -/* 00E4C 809C9C0C 240FFFFF */ addiu $t7, $zero, 0xFFFF ## $t7 = FFFFFFFF -/* 00E50 809C9C10 E7AA0010 */ swc1 $f10, 0x0010($sp) -/* 00E54 809C9C14 C6100028 */ lwc1 $f16, 0x0028($s0) ## 00000028 -/* 00E58 809C9C18 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 00E5C 809C9C1C 240700AA */ addiu $a3, $zero, 0x00AA ## $a3 = 000000AA -/* 00E60 809C9C20 E7B00014 */ swc1 $f16, 0x0014($sp) -/* 00E64 809C9C24 C612002C */ lwc1 $f18, 0x002C($s0) ## 0000002C -/* 00E68 809C9C28 24C41C24 */ addiu $a0, $a2, 0x1C24 ## $a0 = 00001C24 -/* 00E6C 809C9C2C E7B20018 */ swc1 $f18, 0x0018($sp) -/* 00E70 809C9C30 860C00B4 */ lh $t4, 0x00B4($s0) ## 000000B4 -/* 00E74 809C9C34 AFAC001C */ sw $t4, 0x001C($sp) -/* 00E78 809C9C38 860D00B6 */ lh $t5, 0x00B6($s0) ## 000000B6 -/* 00E7C 809C9C3C AFAD0020 */ sw $t5, 0x0020($sp) -/* 00E80 809C9C40 860E00B8 */ lh $t6, 0x00B8($s0) ## 000000B8 -/* 00E84 809C9C44 AFAF0028 */ sw $t7, 0x0028($sp) -/* 00E88 809C9C48 0C00C916 */ jal Actor_SpawnAsChild - -/* 00E8C 809C9C4C AFAE0024 */ sw $t6, 0x0024($sp) -/* 00E90 809C9C50 0C03D719 */ jal func_800F5C64 -/* 00E94 809C9C54 2404092B */ addiu $a0, $zero, 0x092B ## $a0 = 0000092B -.L809C9C58: -/* 00E98 809C9C58 8605001C */ lh $a1, 0x001C($s0) ## 0000001C -.L809C9C5C: -/* 00E9C 809C9C5C 3C04809D */ lui $a0, %hi(D_809CA830) ## $a0 = 809D0000 -/* 00EA0 809C9C60 2484A830 */ addiu $a0, $a0, %lo(D_809CA830) ## $a0 = 809CA830 -/* 00EA4 809C9C64 0C00084C */ jal osSyncPrintf - -/* 00EA8 809C9C68 30A5001F */ andi $a1, $a1, 0x001F ## $a1 = 00000000 -/* 00EAC 809C9C6C 8605001C */ lh $a1, 0x001C($s0) ## 0000001C -/* 00EB0 809C9C70 8FA4006C */ lw $a0, 0x006C($sp) -/* 00EB4 809C9C74 0C00B331 */ jal Flags_SetTreasure - -/* 00EB8 809C9C78 30A5001F */ andi $a1, $a1, 0x001F ## $a1 = 00000000 -/* 00EBC 809C9C7C 10000038 */ beq $zero, $zero, .L809C9D60 -/* 00EC0 809C9C80 8FBF003C */ lw $ra, 0x003C($sp) -.L809C9C84: -/* 00EC4 809C9C84 8FB8006C */ lw $t8, 0x006C($sp) -/* 00EC8 809C9C88 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00ECC 809C9C8C 27A5004C */ addiu $a1, $sp, 0x004C ## $a1 = FFFFFFE4 -/* 00ED0 809C9C90 8F021C44 */ lw $v0, 0x1C44($t8) ## 00001C44 -/* 00ED4 809C9C94 0C00B6F4 */ jal func_8002DBD0 -/* 00ED8 809C9C98 24460024 */ addiu $a2, $v0, 0x0024 ## $a2 = 00000024 -/* 00EDC 809C9C9C 3C01C248 */ lui $at, 0xC248 ## $at = C2480000 -/* 00EE0 809C9CA0 C7A00054 */ lwc1 $f0, 0x0054($sp) -/* 00EE4 809C9CA4 44812000 */ mtc1 $at, $f4 ## $f4 = -50.00 -/* 00EE8 809C9CA8 00000000 */ nop -/* 00EEC 809C9CAC 4600203C */ c.lt.s $f4, $f0 -/* 00EF0 809C9CB0 00000000 */ nop -/* 00EF4 809C9CB4 45020021 */ bc1fl .L809C9D3C -/* 00EF8 809C9CB8 8605001C */ lh $a1, 0x001C($s0) ## 0000001C -/* 00EFC 809C9CBC 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00 -/* 00F00 809C9CC0 3C014120 */ lui $at, 0x4120 ## $at = 41200000 -/* 00F04 809C9CC4 4606003C */ c.lt.s $f0, $f6 -/* 00F08 809C9CC8 C7A00050 */ lwc1 $f0, 0x0050($sp) -/* 00F0C 809C9CCC 4502001B */ bc1fl .L809C9D3C -/* 00F10 809C9CD0 8605001C */ lh $a1, 0x001C($s0) ## 0000001C -/* 00F14 809C9CD4 44814000 */ mtc1 $at, $f8 ## $f8 = 10.00 -/* 00F18 809C9CD8 46000005 */ abs.s $f0, $f0 -/* 00F1C 809C9CDC 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000 -/* 00F20 809C9CE0 4608003C */ c.lt.s $f0, $f8 -/* 00F24 809C9CE4 C7A0004C */ lwc1 $f0, 0x004C($sp) -/* 00F28 809C9CE8 45020014 */ bc1fl .L809C9D3C -/* 00F2C 809C9CEC 8605001C */ lh $a1, 0x001C($s0) ## 0000001C -/* 00F30 809C9CF0 44815000 */ mtc1 $at, $f10 ## $f10 = 20.00 -/* 00F34 809C9CF4 46000005 */ abs.s $f0, $f0 -/* 00F38 809C9CF8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00F3C 809C9CFC 460A003C */ c.lt.s $f0, $f10 -/* 00F40 809C9D00 24053000 */ addiu $a1, $zero, 0x3000 ## $a1 = 00003000 -/* 00F44 809C9D04 4502000D */ bc1fl .L809C9D3C -/* 00F48 809C9D08 8605001C */ lh $a1, 0x001C($s0) ## 0000001C -/* 00F4C 809C9D0C 0C00B7F2 */ jal func_8002DFC8 -/* 00F50 809C9D10 8FA6006C */ lw $a2, 0x006C($sp) -/* 00F54 809C9D14 50400009 */ beql $v0, $zero, .L809C9D3C -/* 00F58 809C9D18 8605001C */ lh $a1, 0x001C($s0) ## 0000001C -/* 00F5C 809C9D1C 8606001C */ lh $a2, 0x001C($s0) ## 0000001C -/* 00F60 809C9D20 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00F64 809C9D24 8FA5006C */ lw $a1, 0x006C($sp) -/* 00F68 809C9D28 00063143 */ sra $a2, $a2, 5 -/* 00F6C 809C9D2C 30C6007F */ andi $a2, $a2, 0x007F ## $a2 = 00000000 -/* 00F70 809C9D30 0C00BD55 */ jal func_8002F554 -/* 00F74 809C9D34 00063023 */ subu $a2, $zero, $a2 -/* 00F78 809C9D38 8605001C */ lh $a1, 0x001C($s0) ## 0000001C -.L809C9D3C: -/* 00F7C 809C9D3C 8FA4006C */ lw $a0, 0x006C($sp) -/* 00F80 809C9D40 0C00B32C */ jal Flags_GetTreasure - -/* 00F84 809C9D44 30A5001F */ andi $a1, $a1, 0x001F ## $a1 = 00000000 -/* 00F88 809C9D48 10400004 */ beq $v0, $zero, .L809C9D5C -/* 00F8C 809C9D4C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00F90 809C9D50 3C05809D */ lui $a1, %hi(func_809C9D70) ## $a1 = 809D0000 -/* 00F94 809C9D54 0C272370 */ jal func_809C8DC0 -/* 00F98 809C9D58 24A59D70 */ addiu $a1, $a1, %lo(func_809C9D70) ## $a1 = 809C9D70 -.L809C9D5C: -/* 00F9C 809C9D5C 8FBF003C */ lw $ra, 0x003C($sp) -.L809C9D60: -/* 00FA0 809C9D60 8FB00038 */ lw $s0, 0x0038($sp) -/* 00FA4 809C9D64 27BD0068 */ addiu $sp, $sp, 0x0068 ## $sp = 00000000 -/* 00FA8 809C9D68 03E00008 */ jr $ra -/* 00FAC 809C9D6C 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C9D70.s b/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C9D70.s deleted file mode 100644 index 7961a6f568..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C9D70.s +++ /dev/null @@ -1,118 +0,0 @@ -.late_rodata -glabel D_809CA8FC - .word 0x387BA882 - -.text -glabel func_809C9D70 -/* 00FB0 809C9D70 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0 -/* 00FB4 809C9D74 AFBF0024 */ sw $ra, 0x0024($sp) -/* 00FB8 809C9D78 AFB00020 */ sw $s0, 0x0020($sp) -/* 00FBC 809C9D7C AFA50034 */ sw $a1, 0x0034($sp) -/* 00FC0 809C9D80 8C8E0004 */ lw $t6, 0x0004($a0) ## 00000004 -/* 00FC4 809C9D84 2401FF7F */ addiu $at, $zero, 0xFF7F ## $at = FFFFFF7F -/* 00FC8 809C9D88 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00FCC 809C9D8C 01C17824 */ and $t7, $t6, $at -/* 00FD0 809C9D90 AC8F0004 */ sw $t7, 0x0004($a0) ## 00000004 -/* 00FD4 809C9D94 24840164 */ addiu $a0, $a0, 0x0164 ## $a0 = 00000164 -/* 00FD8 809C9D98 0C02927F */ jal SkelAnime_FrameUpdateMatrix - -/* 00FDC 809C9D9C AFA40028 */ sw $a0, 0x0028($sp) -/* 00FE0 809C9DA0 1040001D */ beq $v0, $zero, .L809C9E18 -/* 00FE4 809C9DA4 3C0541F0 */ lui $a1, 0x41F0 ## $a1 = 41F00000 -/* 00FE8 809C9DA8 860201F4 */ lh $v0, 0x01F4($s0) ## 000001F4 -/* 00FEC 809C9DAC 1840000E */ blez $v0, .L809C9DE8 -/* 00FF0 809C9DB0 2841FF89 */ slti $at, $v0, 0xFF89 -/* 00FF4 809C9DB4 28410078 */ slti $at, $v0, 0x0078 -/* 00FF8 809C9DB8 10200003 */ beq $at, $zero, .L809C9DC8 -/* 00FFC 809C9DBC 24580001 */ addiu $t8, $v0, 0x0001 ## $t8 = 00000001 -/* 01000 809C9DC0 10000048 */ beq $zero, $zero, .L809C9EE4 -/* 01004 809C9DC4 A61801F4 */ sh $t8, 0x01F4($s0) ## 000001F4 -.L809C9DC8: -/* 01008 809C9DC8 44801000 */ mtc1 $zero, $f2 ## $f2 = 0.00 -/* 0100C 809C9DCC 3C063D4C */ lui $a2, 0x3D4C ## $a2 = 3D4C0000 -/* 01010 809C9DD0 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3D4CCCCD -/* 01014 809C9DD4 44051000 */ mfc1 $a1, $f2 -/* 01018 809C9DD8 0C01DE80 */ jal Math_ApproxF - -/* 0101C 809C9DDC 260401B0 */ addiu $a0, $s0, 0x01B0 ## $a0 = 000001B0 -/* 01020 809C9DE0 10000041 */ beq $zero, $zero, .L809C9EE8 -/* 01024 809C9DE4 8FBF0024 */ lw $ra, 0x0024($sp) -.L809C9DE8: -/* 01028 809C9DE8 14200003 */ bne $at, $zero, .L809C9DF8 -/* 0102C 809C9DEC 2459FFFF */ addiu $t9, $v0, 0xFFFF ## $t9 = FFFFFFFF -/* 01030 809C9DF0 1000003C */ beq $zero, $zero, .L809C9EE4 -/* 01034 809C9DF4 A61901F4 */ sh $t9, 0x01F4($s0) ## 000001F4 -.L809C9DF8: -/* 01038 809C9DF8 44801000 */ mtc1 $zero, $f2 ## $f2 = 0.00 -/* 0103C 809C9DFC 3C063D4C */ lui $a2, 0x3D4C ## $a2 = 3D4C0000 -/* 01040 809C9E00 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3D4CCCCD -/* 01044 809C9E04 44051000 */ mfc1 $a1, $f2 -/* 01048 809C9E08 0C01DE80 */ jal Math_ApproxF - -/* 0104C 809C9E0C 260401B0 */ addiu $a0, $s0, 0x01B0 ## $a0 = 000001B0 -/* 01050 809C9E10 10000035 */ beq $zero, $zero, .L809C9EE8 -/* 01054 809C9E14 8FBF0024 */ lw $ra, 0x0024($sp) -.L809C9E18: -/* 01058 809C9E18 A7A0002E */ sh $zero, 0x002E($sp) -/* 0105C 809C9E1C 0C0295B2 */ jal func_800A56C8 -/* 01060 809C9E20 8FA40028 */ lw $a0, 0x0028($sp) -/* 01064 809C9E24 10400004 */ beq $v0, $zero, .L809C9E38 -/* 01068 809C9E28 8FA40028 */ lw $a0, 0x0028($sp) -/* 0106C 809C9E2C 2404281F */ addiu $a0, $zero, 0x281F ## $a0 = 0000281F -/* 01070 809C9E30 10000006 */ beq $zero, $zero, .L809C9E4C -/* 01074 809C9E34 A7A4002E */ sh $a0, 0x002E($sp) -.L809C9E38: -/* 01078 809C9E38 0C0295B2 */ jal func_800A56C8 -/* 0107C 809C9E3C 3C0542B4 */ lui $a1, 0x42B4 ## $a1 = 42B40000 -/* 01080 809C9E40 10400002 */ beq $v0, $zero, .L809C9E4C -/* 01084 809C9E44 24082820 */ addiu $t0, $zero, 0x2820 ## $t0 = 00002820 -/* 01088 809C9E48 A7A8002E */ sh $t0, 0x002E($sp) -.L809C9E4C: -/* 0108C 809C9E4C 97A4002E */ lhu $a0, 0x002E($sp) -/* 01090 809C9E50 3C078013 */ lui $a3, %hi(D_801333E0) -/* 01094 809C9E54 24E733E0 */ addiu $a3, %lo(D_801333E0) -/* 01098 809C9E58 10800007 */ beq $a0, $zero, .L809C9E78 -/* 0109C 809C9E5C 260500E4 */ addiu $a1, $s0, 0x00E4 ## $a1 = 000000E4 -/* 010A0 809C9E60 3C098013 */ lui $t1, %hi(D_801333E8) -/* 010A4 809C9E64 252933E8 */ addiu $t1, %lo(D_801333E8) -/* 010A8 809C9E68 AFA90014 */ sw $t1, 0x0014($sp) -/* 010AC 809C9E6C 24060004 */ addiu $a2, $zero, 0x0004 ## $a2 = 00000004 -/* 010B0 809C9E70 0C03DCE3 */ jal Audio_PlaySoundGeneral - -/* 010B4 809C9E74 AFA70010 */ sw $a3, 0x0010($sp) -.L809C9E78: -/* 010B8 809C9E78 8E0A0184 */ lw $t2, 0x0184($s0) ## 00000184 -/* 010BC 809C9E7C 240B7D00 */ addiu $t3, $zero, 0x7D00 ## $t3 = 00007D00 -/* 010C0 809C9E80 85420016 */ lh $v0, 0x0016($t2) ## 00000016 -/* 010C4 809C9E84 18400017 */ blez $v0, .L809C9EE4 -/* 010C8 809C9E88 01626023 */ subu $t4, $t3, $v0 -/* 010CC 809C9E8C 448C2000 */ mtc1 $t4, $f4 ## $f4 = 0.00 -/* 010D0 809C9E90 3C01809D */ lui $at, %hi(D_809CA8FC) ## $at = 809D0000 -/* 010D4 809C9E94 C428A8FC */ lwc1 $f8, %lo(D_809CA8FC)($at) -/* 010D8 809C9E98 468021A0 */ cvt.s.w $f6, $f4 -/* 010DC 809C9E9C 44801000 */ mtc1 $zero, $f2 ## $f2 = 0.00 -/* 010E0 809C9EA0 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 -/* 010E4 809C9EA4 46083282 */ mul.s $f10, $f6, $f8 -/* 010E8 809C9EA8 E60A01B0 */ swc1 $f10, 0x01B0($s0) ## 000001B0 -/* 010EC 809C9EAC C60001B0 */ lwc1 $f0, 0x01B0($s0) ## 000001B0 -/* 010F0 809C9EB0 4602003C */ c.lt.s $f0, $f2 -/* 010F4 809C9EB4 00000000 */ nop -/* 010F8 809C9EB8 45020004 */ bc1fl .L809C9ECC -/* 010FC 809C9EBC 44811000 */ mtc1 $at, $f2 ## $f2 = 1.00 -/* 01100 809C9EC0 10000008 */ beq $zero, $zero, .L809C9EE4 -/* 01104 809C9EC4 E60201B0 */ swc1 $f2, 0x01B0($s0) ## 000001B0 -/* 01108 809C9EC8 44811000 */ mtc1 $at, $f2 ## $f2 = 1.00 -.L809C9ECC: -/* 0110C 809C9ECC 00000000 */ nop -/* 01110 809C9ED0 4600103C */ c.lt.s $f2, $f0 -/* 01114 809C9ED4 00000000 */ nop -/* 01118 809C9ED8 45020003 */ bc1fl .L809C9EE8 -/* 0111C 809C9EDC 8FBF0024 */ lw $ra, 0x0024($sp) -/* 01120 809C9EE0 E60201B0 */ swc1 $f2, 0x01B0($s0) ## 000001B0 -.L809C9EE4: -/* 01124 809C9EE4 8FBF0024 */ lw $ra, 0x0024($sp) -.L809C9EE8: -/* 01128 809C9EE8 8FB00020 */ lw $s0, 0x0020($sp) -/* 0112C 809C9EEC 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000 -/* 01130 809C9EF0 03E00008 */ jr $ra -/* 01134 809C9EF4 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C9EF8.s b/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C9EF8.s deleted file mode 100644 index 92c85b6e1c..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809C9EF8.s +++ /dev/null @@ -1,203 +0,0 @@ -.late_rodata -glabel D_809CA900 - .float 0.3 - -glabel D_809CA904 - .float 0.8 - -glabel D_809CA908 - .word 0x3FE66666 -glabel D_809CA90C - .float 1.6 - -glabel D_809CA910 - .word 0x3FE66666, 0x00000000, 0x00000000, 0x00000000 - -.text -glabel func_809C9EF8 -/* 01138 809C9EF8 27BDFFA8 */ addiu $sp, $sp, 0xFFA8 ## $sp = FFFFFFA8 -/* 0113C 809C9EFC 3C0F809D */ lui $t7, %hi(D_809CA814) ## $t7 = 809D0000 -/* 01140 809C9F00 AFBF0024 */ sw $ra, 0x0024($sp) -/* 01144 809C9F04 AFB00020 */ sw $s0, 0x0020($sp) -/* 01148 809C9F08 AFA5005C */ sw $a1, 0x005C($sp) -/* 0114C 809C9F0C 25EFA814 */ addiu $t7, $t7, %lo(D_809CA814) ## $t7 = 809CA814 -/* 01150 809C9F10 8DF90000 */ lw $t9, 0x0000($t7) ## 809CA814 -/* 01154 809C9F14 27AE0040 */ addiu $t6, $sp, 0x0040 ## $t6 = FFFFFFE8 -/* 01158 809C9F18 8DF80004 */ lw $t8, 0x0004($t7) ## 809CA818 -/* 0115C 809C9F1C ADD90000 */ sw $t9, 0x0000($t6) ## FFFFFFE8 -/* 01160 809C9F20 8DF90008 */ lw $t9, 0x0008($t7) ## 809CA81C -/* 01164 809C9F24 3C09809D */ lui $t1, %hi(D_809CA820) ## $t1 = 809D0000 -/* 01168 809C9F28 2529A820 */ addiu $t1, $t1, %lo(D_809CA820) ## $t1 = 809CA820 -/* 0116C 809C9F2C ADD80004 */ sw $t8, 0x0004($t6) ## FFFFFFEC -/* 01170 809C9F30 ADD90008 */ sw $t9, 0x0008($t6) ## FFFFFFF0 -/* 01174 809C9F34 8D2B0000 */ lw $t3, 0x0000($t1) ## 809CA820 -/* 01178 809C9F38 27A80034 */ addiu $t0, $sp, 0x0034 ## $t0 = FFFFFFDC -/* 0117C 809C9F3C 8D2A0004 */ lw $t2, 0x0004($t1) ## 809CA824 -/* 01180 809C9F40 AD0B0000 */ sw $t3, 0x0000($t0) ## FFFFFFDC -/* 01184 809C9F44 8D2B0008 */ lw $t3, 0x0008($t1) ## 809CA828 -/* 01188 809C9F48 AD0A0004 */ sw $t2, 0x0004($t0) ## FFFFFFE0 -/* 0118C 809C9F4C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 01190 809C9F50 AD0B0008 */ sw $t3, 0x0008($t0) ## FFFFFFE4 -/* 01194 809C9F54 908C01FA */ lbu $t4, 0x01FA($a0) ## 000001FA -/* 01198 809C9F58 240531F1 */ addiu $a1, $zero, 0x31F1 ## $a1 = 000031F1 -/* 0119C 809C9F5C 258D0001 */ addiu $t5, $t4, 0x0001 ## $t5 = 00000001 -/* 011A0 809C9F60 0C00BE5D */ jal func_8002F974 -/* 011A4 809C9F64 A08D01FA */ sb $t5, 0x01FA($a0) ## 000001FA -/* 011A8 809C9F68 0C03F66B */ jal Math_Rand_ZeroOne - ## Rand.Next() float -/* 011AC 809C9F6C 00000000 */ nop -/* 011B0 809C9F70 3C01809D */ lui $at, %hi(D_809CA900) ## $at = 809D0000 -/* 011B4 809C9F74 C424A900 */ lwc1 $f4, %lo(D_809CA900)($at) -/* 011B8 809C9F78 4604003C */ c.lt.s $f0, $f4 -/* 011BC 809C9F7C 00000000 */ nop -/* 011C0 809C9F80 45020083 */ bc1fl .L809CA190 -/* 011C4 809C9F84 8FBF0024 */ lw $ra, 0x0024($sp) -/* 011C8 809C9F88 0C03F66B */ jal Math_Rand_ZeroOne - ## Rand.Next() float -/* 011CC 809C9F8C 00000000 */ nop -/* 011D0 809C9F90 8E180024 */ lw $t8, 0x0024($s0) ## 00000024 -/* 011D4 809C9F94 27AE004C */ addiu $t6, $sp, 0x004C ## $t6 = FFFFFFF4 -/* 011D8 809C9F98 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 -/* 011DC 809C9F9C ADD80000 */ sw $t8, 0x0000($t6) ## FFFFFFF4 -/* 011E0 809C9FA0 8E0F0028 */ lw $t7, 0x0028($s0) ## 00000028 -/* 011E4 809C9FA4 46000180 */ add.s $f6, $f0, $f0 -/* 011E8 809C9FA8 44814000 */ mtc1 $at, $f8 ## $f8 = 1.00 -/* 011EC 809C9FAC ADCF0004 */ sw $t7, 0x0004($t6) ## FFFFFFF8 -/* 011F0 809C9FB0 8E18002C */ lw $t8, 0x002C($s0) ## 0000002C -/* 011F4 809C9FB4 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005 -/* 011F8 809C9FB8 46083081 */ sub.s $f2, $f6, $f8 -/* 011FC 809C9FBC ADD80008 */ sw $t8, 0x0008($t6) ## FFFFFFFC -/* 01200 809C9FC0 920201F9 */ lbu $v0, 0x01F9($s0) ## 000001F9 -/* 01204 809C9FC4 10410007 */ beq $v0, $at, .L809C9FE4 -/* 01208 809C9FC8 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006 -/* 0120C 809C9FCC 10410005 */ beq $v0, $at, .L809C9FE4 -/* 01210 809C9FD0 24010007 */ addiu $at, $zero, 0x0007 ## $at = 00000007 -/* 01214 809C9FD4 10410003 */ beq $v0, $at, .L809C9FE4 -/* 01218 809C9FD8 24010008 */ addiu $at, $zero, 0x0008 ## $at = 00000008 -/* 0121C 809C9FDC 54410034 */ bnel $v0, $at, .L809CA0B0 -/* 01220 809C9FE0 86040032 */ lh $a0, 0x0032($s0) ## 00000032 -.L809C9FE4: -/* 01224 809C9FE4 86040032 */ lh $a0, 0x0032($s0) ## 00000032 -/* 01228 809C9FE8 E7A20030 */ swc1 $f2, 0x0030($sp) -/* 0122C 809C9FEC 24844000 */ addiu $a0, $a0, 0x4000 ## $a0 = 00004000 -/* 01230 809C9FF0 00042400 */ sll $a0, $a0, 16 -/* 01234 809C9FF4 0C01DE1C */ jal Math_Sins - ## sins? -/* 01238 809C9FF8 00042403 */ sra $a0, $a0, 16 -/* 0123C 809C9FFC 3C014120 */ lui $at, 0x4120 ## $at = 41200000 -/* 01240 809CA000 44815000 */ mtc1 $at, $f10 ## $f10 = 10.00 -/* 01244 809CA004 C7A20030 */ lwc1 $f2, 0x0030($sp) -/* 01248 809CA008 C7B0004C */ lwc1 $f16, 0x004C($sp) -/* 0124C 809CA00C 460A1302 */ mul.s $f12, $f2, $f10 -/* 01250 809CA010 00000000 */ nop -/* 01254 809CA014 46006482 */ mul.s $f18, $f12, $f0 -/* 01258 809CA018 46128100 */ add.s $f4, $f16, $f18 -/* 0125C 809CA01C E7A4004C */ swc1 $f4, 0x004C($sp) -/* 01260 809CA020 86040032 */ lh $a0, 0x0032($s0) ## 00000032 -/* 01264 809CA024 E7AC0028 */ swc1 $f12, 0x0028($sp) -/* 01268 809CA028 24844000 */ addiu $a0, $a0, 0x4000 ## $a0 = 00004000 -/* 0126C 809CA02C 00042400 */ sll $a0, $a0, 16 -/* 01270 809CA030 0C01DE0D */ jal Math_Coss - ## coss? -/* 01274 809CA034 00042403 */ sra $a0, $a0, 16 -/* 01278 809CA038 C7AC0028 */ lwc1 $f12, 0x0028($sp) -/* 0127C 809CA03C C7A60054 */ lwc1 $f6, 0x0054($sp) -/* 01280 809CA040 46006202 */ mul.s $f8, $f12, $f0 -/* 01284 809CA044 46083280 */ add.s $f10, $f6, $f8 -/* 01288 809CA048 0C03F66B */ jal Math_Rand_ZeroOne - ## Rand.Next() float -/* 0128C 809CA04C E7AA0054 */ swc1 $f10, 0x0054($sp) -/* 01290 809CA050 46000400 */ add.s $f16, $f0, $f0 -/* 01294 809CA054 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 -/* 01298 809CA058 44819000 */ mtc1 $at, $f18 ## $f18 = 1.00 -/* 0129C 809CA05C 86040032 */ lh $a0, 0x0032($s0) ## 00000032 -/* 012A0 809CA060 46128081 */ sub.s $f2, $f16, $f18 -/* 012A4 809CA064 0C01DE1C */ jal Math_Sins - ## sins? -/* 012A8 809CA068 E7A20030 */ swc1 $f2, 0x0030($sp) -/* 012AC 809CA06C 3C01809D */ lui $at, %hi(D_809CA904) ## $at = 809D0000 -/* 012B0 809CA070 C424A904 */ lwc1 $f4, %lo(D_809CA904)($at) -/* 012B4 809CA074 C7A20030 */ lwc1 $f2, 0x0030($sp) -/* 012B8 809CA078 3C01809D */ lui $at, %hi(D_809CA908) ## $at = 809D0000 -/* 012BC 809CA07C C428A908 */ lwc1 $f8, %lo(D_809CA908)($at) -/* 012C0 809CA080 46041302 */ mul.s $f12, $f2, $f4 -/* 012C4 809CA084 E7A80044 */ swc1 $f8, 0x0044($sp) -/* 012C8 809CA088 460C0182 */ mul.s $f6, $f0, $f12 -/* 012CC 809CA08C E7A60040 */ swc1 $f6, 0x0040($sp) -/* 012D0 809CA090 86040032 */ lh $a0, 0x0032($s0) ## 00000032 -/* 012D4 809CA094 0C01DE0D */ jal Math_Coss - ## coss? -/* 012D8 809CA098 E7AC0028 */ swc1 $f12, 0x0028($sp) -/* 012DC 809CA09C C7AC0028 */ lwc1 $f12, 0x0028($sp) -/* 012E0 809CA0A0 460C0282 */ mul.s $f10, $f0, $f12 -/* 012E4 809CA0A4 10000032 */ beq $zero, $zero, .L809CA170 -/* 012E8 809CA0A8 E7AA0048 */ swc1 $f10, 0x0048($sp) -/* 012EC 809CA0AC 86040032 */ lh $a0, 0x0032($s0) ## 00000032 -.L809CA0B0: -/* 012F0 809CA0B0 E7A20030 */ swc1 $f2, 0x0030($sp) -/* 012F4 809CA0B4 24844000 */ addiu $a0, $a0, 0x4000 ## $a0 = 00004000 -/* 012F8 809CA0B8 00042400 */ sll $a0, $a0, 16 -/* 012FC 809CA0BC 0C01DE1C */ jal Math_Sins - ## sins? -/* 01300 809CA0C0 00042403 */ sra $a0, $a0, 16 -/* 01304 809CA0C4 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000 -/* 01308 809CA0C8 44818000 */ mtc1 $at, $f16 ## $f16 = 20.00 -/* 0130C 809CA0CC C7A20030 */ lwc1 $f2, 0x0030($sp) -/* 01310 809CA0D0 C7B2004C */ lwc1 $f18, 0x004C($sp) -/* 01314 809CA0D4 46101302 */ mul.s $f12, $f2, $f16 -/* 01318 809CA0D8 00000000 */ nop -/* 0131C 809CA0DC 46006102 */ mul.s $f4, $f12, $f0 -/* 01320 809CA0E0 46049180 */ add.s $f6, $f18, $f4 -/* 01324 809CA0E4 E7A6004C */ swc1 $f6, 0x004C($sp) -/* 01328 809CA0E8 86040032 */ lh $a0, 0x0032($s0) ## 00000032 -/* 0132C 809CA0EC E7AC0028 */ swc1 $f12, 0x0028($sp) -/* 01330 809CA0F0 24844000 */ addiu $a0, $a0, 0x4000 ## $a0 = 00004000 -/* 01334 809CA0F4 00042400 */ sll $a0, $a0, 16 -/* 01338 809CA0F8 0C01DE0D */ jal Math_Coss - ## coss? -/* 0133C 809CA0FC 00042403 */ sra $a0, $a0, 16 -/* 01340 809CA100 C7AC0028 */ lwc1 $f12, 0x0028($sp) -/* 01344 809CA104 C7A80054 */ lwc1 $f8, 0x0054($sp) -/* 01348 809CA108 46006282 */ mul.s $f10, $f12, $f0 -/* 0134C 809CA10C 460A4400 */ add.s $f16, $f8, $f10 -/* 01350 809CA110 0C03F66B */ jal Math_Rand_ZeroOne - ## Rand.Next() float -/* 01354 809CA114 E7B00054 */ swc1 $f16, 0x0054($sp) -/* 01358 809CA118 46000480 */ add.s $f18, $f0, $f0 -/* 0135C 809CA11C 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 -/* 01360 809CA120 44812000 */ mtc1 $at, $f4 ## $f4 = 1.00 -/* 01364 809CA124 86040032 */ lh $a0, 0x0032($s0) ## 00000032 -/* 01368 809CA128 46049081 */ sub.s $f2, $f18, $f4 -/* 0136C 809CA12C 0C01DE1C */ jal Math_Sins - ## sins? -/* 01370 809CA130 E7A20030 */ swc1 $f2, 0x0030($sp) -/* 01374 809CA134 3C01809D */ lui $at, %hi(D_809CA90C) ## $at = 809D0000 -/* 01378 809CA138 C426A90C */ lwc1 $f6, %lo(D_809CA90C)($at) -/* 0137C 809CA13C C7A20030 */ lwc1 $f2, 0x0030($sp) -/* 01380 809CA140 3C01809D */ lui $at, %hi(D_809CA910) ## $at = 809D0000 -/* 01384 809CA144 C42AA910 */ lwc1 $f10, %lo(D_809CA910)($at) -/* 01388 809CA148 46061302 */ mul.s $f12, $f2, $f6 -/* 0138C 809CA14C E7AA0044 */ swc1 $f10, 0x0044($sp) -/* 01390 809CA150 460C0202 */ mul.s $f8, $f0, $f12 -/* 01394 809CA154 E7A80040 */ swc1 $f8, 0x0040($sp) -/* 01398 809CA158 86040032 */ lh $a0, 0x0032($s0) ## 00000032 -/* 0139C 809CA15C 0C01DE0D */ jal Math_Coss - ## coss? -/* 013A0 809CA160 E7AC0028 */ swc1 $f12, 0x0028($sp) -/* 013A4 809CA164 C7AC0028 */ lwc1 $f12, 0x0028($sp) -/* 013A8 809CA168 460C0402 */ mul.s $f16, $f0, $f12 -/* 013AC 809CA16C E7B00048 */ swc1 $f16, 0x0048($sp) -.L809CA170: -/* 013B0 809CA170 24190096 */ addiu $t9, $zero, 0x0096 ## $t9 = 00000096 -/* 013B4 809CA174 AFB90010 */ sw $t9, 0x0010($sp) -/* 013B8 809CA178 8FA4005C */ lw $a0, 0x005C($sp) -/* 013BC 809CA17C 27A5004C */ addiu $a1, $sp, 0x004C ## $a1 = FFFFFFF4 -/* 013C0 809CA180 27A60040 */ addiu $a2, $sp, 0x0040 ## $a2 = FFFFFFE8 -/* 013C4 809CA184 0C00AA91 */ jal EffectSsIceSmoke_Spawn -/* 013C8 809CA188 27A70034 */ addiu $a3, $sp, 0x0034 ## $a3 = FFFFFFDC -/* 013CC 809CA18C 8FBF0024 */ lw $ra, 0x0024($sp) -.L809CA190: -/* 013D0 809CA190 8FB00020 */ lw $s0, 0x0020($sp) -/* 013D4 809CA194 27BD0058 */ addiu $sp, $sp, 0x0058 ## $sp = 00000000 -/* 013D8 809CA198 03E00008 */ jr $ra -/* 013DC 809CA19C 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809CA2D8.s b/asm/non_matchings/overlays/actors/ovl_En_Box/func_809CA2D8.s deleted file mode 100644 index 8155708c2c..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809CA2D8.s +++ /dev/null @@ -1,107 +0,0 @@ -.rdata -glabel D_809CA850 - .asciz "../z_en_box.c" - .balign 4 - -glabel D_809CA860 - .asciz "../z_en_box.c" - .balign 4 - -.text -glabel func_809CA2D8 -/* 01518 809CA2D8 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0 -/* 0151C 809CA2DC 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001 -/* 01520 809CA2E0 AFBF0014 */ sw $ra, 0x0014($sp) -/* 01524 809CA2E4 AFA40030 */ sw $a0, 0x0030($sp) -/* 01528 809CA2E8 AFA60038 */ sw $a2, 0x0038($sp) -/* 0152C 809CA2EC 14A10029 */ bne $a1, $at, .L809CA394 -/* 01530 809CA2F0 AFA7003C */ sw $a3, 0x003C($sp) -/* 01534 809CA2F4 8FA70044 */ lw $a3, 0x0044($sp) -/* 01538 809CA2F8 3C0FDA38 */ lui $t7, 0xDA38 ## $t7 = DA380000 -/* 0153C 809CA2FC 35EF0003 */ ori $t7, $t7, 0x0003 ## $t7 = DA380003 -/* 01540 809CA300 8CE20000 */ lw $v0, 0x0000($a3) ## 00000000 -/* 01544 809CA304 3C05809D */ lui $a1, %hi(D_809CA850) ## $a1 = 809D0000 -/* 01548 809CA308 24A5A850 */ addiu $a1, $a1, %lo(D_809CA850) ## $a1 = 809CA850 -/* 0154C 809CA30C 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008 -/* 01550 809CA310 ACEE0000 */ sw $t6, 0x0000($a3) ## 00000000 -/* 01554 809CA314 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000 -/* 01558 809CA318 8FB80030 */ lw $t8, 0x0030($sp) -/* 0155C 809CA31C 240605D4 */ addiu $a2, $zero, 0x05D4 ## $a2 = 000005D4 -/* 01560 809CA320 8F040000 */ lw $a0, 0x0000($t8) ## 00000000 -/* 01564 809CA324 0C0346A2 */ jal Matrix_NewMtx -/* 01568 809CA328 AFA20024 */ sw $v0, 0x0024($sp) -/* 0156C 809CA32C 8FA30024 */ lw $v1, 0x0024($sp) -/* 01570 809CA330 8FA70044 */ lw $a3, 0x0044($sp) -/* 01574 809CA334 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002 -/* 01578 809CA338 AC620004 */ sw $v0, 0x0004($v1) ## 00000004 -/* 0157C 809CA33C 8FB90040 */ lw $t9, 0x0040($sp) -/* 01580 809CA340 3C0ADE00 */ lui $t2, 0xDE00 ## $t2 = DE000000 -/* 01584 809CA344 3C0DDE00 */ lui $t5, 0xDE00 ## $t5 = DE000000 -/* 01588 809CA348 932801F9 */ lbu $t0, 0x01F9($t9) ## 000001F9 -/* 0158C 809CA34C 5101000A */ beql $t0, $at, .L809CA378 -/* 01590 809CA350 8CE20000 */ lw $v0, 0x0000($a3) ## 00000000 -/* 01594 809CA354 8CE20000 */ lw $v0, 0x0000($a3) ## 00000000 -/* 01598 809CA358 3C0B0600 */ lui $t3, 0x0600 ## $t3 = 06000000 -/* 0159C 809CA35C 256B06F0 */ addiu $t3, $t3, 0x06F0 ## $t3 = 060006F0 -/* 015A0 809CA360 24490008 */ addiu $t1, $v0, 0x0008 ## $t1 = 00000008 -/* 015A4 809CA364 ACE90000 */ sw $t1, 0x0000($a3) ## 00000000 -/* 015A8 809CA368 AC4B0004 */ sw $t3, 0x0004($v0) ## 00000004 -/* 015AC 809CA36C 10000032 */ beq $zero, $zero, .L809CA438 -/* 015B0 809CA370 AC4A0000 */ sw $t2, 0x0000($v0) ## 00000000 -/* 015B4 809CA374 8CE20000 */ lw $v0, 0x0000($a3) ## 00000000 -.L809CA378: -/* 015B8 809CA378 3C0E0600 */ lui $t6, 0x0600 ## $t6 = 06000000 -/* 015BC 809CA37C 25CE0AE8 */ addiu $t6, $t6, 0x0AE8 ## $t6 = 06000AE8 -/* 015C0 809CA380 244C0008 */ addiu $t4, $v0, 0x0008 ## $t4 = 00000008 -/* 015C4 809CA384 ACEC0000 */ sw $t4, 0x0000($a3) ## 00000000 -/* 015C8 809CA388 AC4E0004 */ sw $t6, 0x0004($v0) ## 00000004 -/* 015CC 809CA38C 1000002A */ beq $zero, $zero, .L809CA438 -/* 015D0 809CA390 AC4D0000 */ sw $t5, 0x0000($v0) ## 00000000 -.L809CA394: -/* 015D4 809CA394 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003 -/* 015D8 809CA398 14A10027 */ bne $a1, $at, .L809CA438 -/* 015DC 809CA39C 8FA70044 */ lw $a3, 0x0044($sp) -/* 015E0 809CA3A0 8CE20000 */ lw $v0, 0x0000($a3) ## 00000000 -/* 015E4 809CA3A4 3C18DA38 */ lui $t8, 0xDA38 ## $t8 = DA380000 -/* 015E8 809CA3A8 37180003 */ ori $t8, $t8, 0x0003 ## $t8 = DA380003 -/* 015EC 809CA3AC 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008 -/* 015F0 809CA3B0 ACEF0000 */ sw $t7, 0x0000($a3) ## 00000000 -/* 015F4 809CA3B4 AC580000 */ sw $t8, 0x0000($v0) ## 00000000 -/* 015F8 809CA3B8 8FB90030 */ lw $t9, 0x0030($sp) -/* 015FC 809CA3BC 3C05809D */ lui $a1, %hi(D_809CA860) ## $a1 = 809D0000 -/* 01600 809CA3C0 24A5A860 */ addiu $a1, $a1, %lo(D_809CA860) ## $a1 = 809CA860 -/* 01604 809CA3C4 8F240000 */ lw $a0, 0x0000($t9) ## 00000000 -/* 01608 809CA3C8 240605DE */ addiu $a2, $zero, 0x05DE ## $a2 = 000005DE -/* 0160C 809CA3CC 0C0346A2 */ jal Matrix_NewMtx -/* 01610 809CA3D0 AFA20018 */ sw $v0, 0x0018($sp) -/* 01614 809CA3D4 8FA30018 */ lw $v1, 0x0018($sp) -/* 01618 809CA3D8 8FA70044 */ lw $a3, 0x0044($sp) -/* 0161C 809CA3DC 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002 -/* 01620 809CA3E0 AC620004 */ sw $v0, 0x0004($v1) ## 00000004 -/* 01624 809CA3E4 8FA80040 */ lw $t0, 0x0040($sp) -/* 01628 809CA3E8 3C0BDE00 */ lui $t3, 0xDE00 ## $t3 = DE000000 -/* 0162C 809CA3EC 3C0EDE00 */ lui $t6, 0xDE00 ## $t6 = DE000000 -/* 01630 809CA3F0 910901F9 */ lbu $t1, 0x01F9($t0) ## 000001F9 -/* 01634 809CA3F4 5121000A */ beql $t1, $at, .L809CA420 -/* 01638 809CA3F8 8CE20000 */ lw $v0, 0x0000($a3) ## 00000000 -/* 0163C 809CA3FC 8CE20000 */ lw $v0, 0x0000($a3) ## 00000000 -/* 01640 809CA400 3C0C0600 */ lui $t4, 0x0600 ## $t4 = 06000000 -/* 01644 809CA404 258C10C0 */ addiu $t4, $t4, 0x10C0 ## $t4 = 060010C0 -/* 01648 809CA408 244A0008 */ addiu $t2, $v0, 0x0008 ## $t2 = 00000008 -/* 0164C 809CA40C ACEA0000 */ sw $t2, 0x0000($a3) ## 00000000 -/* 01650 809CA410 AC4C0004 */ sw $t4, 0x0004($v0) ## 00000004 -/* 01654 809CA414 10000008 */ beq $zero, $zero, .L809CA438 -/* 01658 809CA418 AC4B0000 */ sw $t3, 0x0000($v0) ## 00000000 -/* 0165C 809CA41C 8CE20000 */ lw $v0, 0x0000($a3) ## 00000000 -.L809CA420: -/* 01660 809CA420 3C0F0600 */ lui $t7, 0x0600 ## $t7 = 06000000 -/* 01664 809CA424 25EF1678 */ addiu $t7, $t7, 0x1678 ## $t7 = 06001678 -/* 01668 809CA428 244D0008 */ addiu $t5, $v0, 0x0008 ## $t5 = 00000008 -/* 0166C 809CA42C ACED0000 */ sw $t5, 0x0000($a3) ## 00000000 -/* 01670 809CA430 AC4F0004 */ sw $t7, 0x0004($v0) ## 00000004 -/* 01674 809CA434 AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000 -.L809CA438: -/* 01678 809CA438 8FBF0014 */ lw $ra, 0x0014($sp) -/* 0167C 809CA43C 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000 -/* 01680 809CA440 03E00008 */ jr $ra -/* 01684 809CA444 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809CA448.s b/asm/non_matchings/overlays/actors/ovl_En_Box/func_809CA448.s deleted file mode 100644 index 723a8b525e..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809CA448.s +++ /dev/null @@ -1,36 +0,0 @@ -.rdata -glabel D_809CA870 - .asciz "gfxp != NULL" - .balign 4 - -glabel D_809CA880 - .asciz "../z_en_box.c" - .balign 4 - -.text -glabel func_809CA448 -/* 01688 809CA448 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 0168C 809CA44C AFBF0014 */ sw $ra, 0x0014($sp) -/* 01690 809CA450 0C031A73 */ jal Graph_Alloc - -/* 01694 809CA454 24050008 */ addiu $a1, $zero, 0x0008 ## $a1 = 00000008 -/* 01698 809CA458 14400009 */ bne $v0, $zero, .L809CA480 -/* 0169C 809CA45C 00401825 */ or $v1, $v0, $zero ## $v1 = 00000000 -/* 016A0 809CA460 3C04809D */ lui $a0, %hi(D_809CA870) ## $a0 = 809D0000 -/* 016A4 809CA464 3C05809D */ lui $a1, %hi(D_809CA880) ## $a1 = 809D0000 -/* 016A8 809CA468 24A5A880 */ addiu $a1, $a1, %lo(D_809CA880) ## $a1 = 809CA880 -/* 016AC 809CA46C 2484A870 */ addiu $a0, $a0, %lo(D_809CA870) ## $a0 = 809CA870 -/* 016B0 809CA470 240605F8 */ addiu $a2, $zero, 0x05F8 ## $a2 = 000005F8 -/* 016B4 809CA474 0C0007FC */ jal __assert - -/* 016B8 809CA478 AFA20018 */ sw $v0, 0x0018($sp) -/* 016BC 809CA47C 8FA30018 */ lw $v1, 0x0018($sp) -.L809CA480: -/* 016C0 809CA480 3C0EDF00 */ lui $t6, 0xDF00 ## $t6 = DF000000 -/* 016C4 809CA484 AC6E0000 */ sw $t6, 0x0000($v1) ## 00000000 -/* 016C8 809CA488 AC600004 */ sw $zero, 0x0004($v1) ## 00000004 -/* 016CC 809CA48C 8FBF0014 */ lw $ra, 0x0014($sp) -/* 016D0 809CA490 00601025 */ or $v0, $v1, $zero ## $v0 = 00000000 -/* 016D4 809CA494 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 -/* 016D8 809CA498 03E00008 */ jr $ra -/* 016DC 809CA49C 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809CA4A0.s b/asm/non_matchings/overlays/actors/ovl_En_Box/func_809CA4A0.s deleted file mode 100644 index 4741d7cdcb..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809CA4A0.s +++ /dev/null @@ -1,44 +0,0 @@ -.rdata -glabel D_809CA890 - .asciz "gfxp != NULL" - .balign 4 - -glabel D_809CA8A0 - .asciz "../z_en_box.c" - .balign 4 - -.text -glabel func_809CA4A0 -/* 016E0 809CA4A0 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 016E4 809CA4A4 AFBF0014 */ sw $ra, 0x0014($sp) -/* 016E8 809CA4A8 0C031A73 */ jal Graph_Alloc - -/* 016EC 809CA4AC 24050010 */ addiu $a1, $zero, 0x0010 ## $a1 = 00000010 -/* 016F0 809CA4B0 14400009 */ bne $v0, $zero, .L809CA4D8 -/* 016F4 809CA4B4 00401825 */ or $v1, $v0, $zero ## $v1 = 00000000 -/* 016F8 809CA4B8 3C04809D */ lui $a0, %hi(D_809CA890) ## $a0 = 809D0000 -/* 016FC 809CA4BC 3C05809D */ lui $a1, %hi(D_809CA8A0) ## $a1 = 809D0000 -/* 01700 809CA4C0 24A5A8A0 */ addiu $a1, $a1, %lo(D_809CA8A0) ## $a1 = 809CA8A0 -/* 01704 809CA4C4 2484A890 */ addiu $a0, $a0, %lo(D_809CA890) ## $a0 = 809CA890 -/* 01708 809CA4C8 2406060A */ addiu $a2, $zero, 0x060A ## $a2 = 0000060A -/* 0170C 809CA4CC 0C0007FC */ jal __assert - -/* 01710 809CA4D0 AFA20018 */ sw $v0, 0x0018($sp) -/* 01714 809CA4D4 8FA30018 */ lw $v1, 0x0018($sp) -.L809CA4D8: -/* 01718 809CA4D8 00601025 */ or $v0, $v1, $zero ## $v0 = 00000000 -/* 0171C 809CA4DC 3C0EE200 */ lui $t6, 0xE200 ## $t6 = E2000000 -/* 01720 809CA4E0 3C0FC810 */ lui $t7, 0xC810 ## $t7 = C8100000 -/* 01724 809CA4E4 35EF49F8 */ ori $t7, $t7, 0x49F8 ## $t7 = C81049F8 -/* 01728 809CA4E8 35CE001C */ ori $t6, $t6, 0x001C ## $t6 = E200001C -/* 0172C 809CA4EC AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000 -/* 01730 809CA4F0 AC4F0004 */ sw $t7, 0x0004($v0) ## 00000004 -/* 01734 809CA4F4 3C18DF00 */ lui $t8, 0xDF00 ## $t8 = DF000000 -/* 01738 809CA4F8 AC780008 */ sw $t8, 0x0008($v1) ## 00000008 -/* 0173C 809CA4FC AC60000C */ sw $zero, 0x000C($v1) ## 0000000C -/* 01740 809CA500 8FBF0014 */ lw $ra, 0x0014($sp) -/* 01744 809CA504 00602025 */ or $a0, $v1, $zero ## $a0 = 00000000 -/* 01748 809CA508 24630008 */ addiu $v1, $v1, 0x0008 ## $v1 = 00000008 -/* 0174C 809CA50C 00801025 */ or $v0, $a0, $zero ## $v0 = 00000000 -/* 01750 809CA510 03E00008 */ jr $ra -/* 01754 809CA514 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809CA518.s b/asm/non_matchings/overlays/actors/ovl_En_Box/func_809CA518.s deleted file mode 100644 index 35290c8943..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Box/func_809CA518.s +++ /dev/null @@ -1,44 +0,0 @@ -.rdata -glabel D_809CA8B0 - .asciz "gfxp != NULL" - .balign 4 - -glabel D_809CA8C0 - .asciz "../z_en_box.c" - .balign 4 - -.text -glabel func_809CA518 -/* 01758 809CA518 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 0175C 809CA51C AFBF0014 */ sw $ra, 0x0014($sp) -/* 01760 809CA520 0C031A73 */ jal Graph_Alloc - -/* 01764 809CA524 24050010 */ addiu $a1, $zero, 0x0010 ## $a1 = 00000010 -/* 01768 809CA528 14400009 */ bne $v0, $zero, .L809CA550 -/* 0176C 809CA52C 00401825 */ or $v1, $v0, $zero ## $v1 = 00000000 -/* 01770 809CA530 3C04809D */ lui $a0, %hi(D_809CA8B0) ## $a0 = 809D0000 -/* 01774 809CA534 3C05809D */ lui $a1, %hi(D_809CA8C0) ## $a1 = 809D0000 -/* 01778 809CA538 24A5A8C0 */ addiu $a1, $a1, %lo(D_809CA8C0) ## $a1 = 809CA8C0 -/* 0177C 809CA53C 2484A8B0 */ addiu $a0, $a0, %lo(D_809CA8B0) ## $a0 = 809CA8B0 -/* 01780 809CA540 2406061C */ addiu $a2, $zero, 0x061C ## $a2 = 0000061C -/* 01784 809CA544 0C0007FC */ jal __assert - -/* 01788 809CA548 AFA20018 */ sw $v0, 0x0018($sp) -/* 0178C 809CA54C 8FA30018 */ lw $v1, 0x0018($sp) -.L809CA550: -/* 01790 809CA550 00601025 */ or $v0, $v1, $zero ## $v0 = 00000000 -/* 01794 809CA554 3C0EE200 */ lui $t6, 0xE200 ## $t6 = E2000000 -/* 01798 809CA558 3C0FC811 */ lui $t7, 0xC811 ## $t7 = C8110000 -/* 0179C 809CA55C 35EF2078 */ ori $t7, $t7, 0x2078 ## $t7 = C8112078 -/* 017A0 809CA560 35CE001C */ ori $t6, $t6, 0x001C ## $t6 = E200001C -/* 017A4 809CA564 AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000 -/* 017A8 809CA568 AC4F0004 */ sw $t7, 0x0004($v0) ## 00000004 -/* 017AC 809CA56C 3C18DF00 */ lui $t8, 0xDF00 ## $t8 = DF000000 -/* 017B0 809CA570 AC780008 */ sw $t8, 0x0008($v1) ## 00000008 -/* 017B4 809CA574 AC60000C */ sw $zero, 0x000C($v1) ## 0000000C -/* 017B8 809CA578 8FBF0014 */ lw $ra, 0x0014($sp) -/* 017BC 809CA57C 00602025 */ or $a0, $v1, $zero ## $a0 = 00000000 -/* 017C0 809CA580 24630008 */ addiu $v1, $v1, 0x0008 ## $v1 = 00000008 -/* 017C4 809CA584 00801025 */ or $v0, $a0, $zero ## $v0 = 00000000 -/* 017C8 809CA588 03E00008 */ jr $ra -/* 017CC 809CA58C 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 diff --git a/data/overlays/actors/z_en_box.bss.s b/data/overlays/actors/z_en_box.bss.s deleted file mode 100644 index 512b90734b..0000000000 --- a/data/overlays/actors/z_en_box.bss.s +++ /dev/null @@ -1,13 +0,0 @@ -.include "macro.inc" - - # assembler directives - .set noat # allow manual use of $at - .set noreorder # don't insert nops after branches - .set gp=64 # allow use of 64-bit general purpose registers - -.section .bss - -.balign 16 - -glabel D_809CAB00 - .space 0x10 diff --git a/data/overlays/actors/z_en_box.data.s b/data/overlays/actors/z_en_box.data.s deleted file mode 100644 index 484c5815f0..0000000000 --- a/data/overlays/actors/z_en_box.data.s +++ /dev/null @@ -1,26 +0,0 @@ -.include "macro.inc" - - # assembler directives - .set noat # allow manual use of $at - .set noreorder # don't insert nops after branches - .set gp=64 # allow use of 64-bit general purpose registers - -.section .data - -.balign 16 - -glabel En_Box_InitVars - .word 0x000A0B00, 0x00000000, 0x000E0000, 0x000001FC -.word EnBox_Init -.word EnBox_Destroy -.word EnBox_Update -.word EnBox_Draw -glabel D_809CA800 - .word 0x0600024C, 0x06000128, 0x0600043C, 0x0600043C -glabel D_809CA810 - .word 0x001F0000 -glabel D_809CA814 - .word 0x00000000, 0x3F800000, 0x00000000 -glabel D_809CA820 - .word 0x00000000, 0x00000000, 0x00000000, 0x00000000 - diff --git a/data/overlays/actors/z_en_box.reloc.s b/data/overlays/actors/z_en_box.reloc.s deleted file mode 100644 index f339529c8f..0000000000 --- a/data/overlays/actors/z_en_box.reloc.s +++ /dev/null @@ -1,13 +0,0 @@ -.include "macro.inc" - - # assembler directives - .set noat # allow manual use of $at - .set noreorder # don't insert nops after branches - .set gp=64 # allow use of 64-bit general purpose registers - -.section .rodata - -.balign 16 - -glabel D_809CA920 - .incbin "baserom/ovl_En_Box", 0x1B60, 0x000001E0 diff --git a/include/functions.h b/include/functions.h index 87344620e5..76527546db 100644 --- a/include/functions.h +++ b/include/functions.h @@ -624,6 +624,7 @@ s32 func_8003E30C(CollisionContext* colCtx, Vec3f* center, f32 radius); // ? func_8003E9A0(?); void func_8003EBF8(GlobalContext* globalCtx, DynaCollisionContext* dynaColCtx, UNK_TYPE dynaPolyId); void func_8003EC50(GlobalContext* globalCtx, DynaCollisionContext* dynaColCtx, UNK_TYPE dynaPolyId); +void func_8003ECA8(GlobalContext* globalCtx, DynaCollisionContext* dynaColCtx, UNK_TYPE dynaPolyId); u32 DynaPolyInfo_RegisterActor(GlobalContext* globalCtx, DynaCollisionContext* dynaColCtx, Actor* actor, UNK_TYPE arg3); DynaPolyActor* DynaPolyInfo_GetActor(CollisionContext* colCtx, UNK_TYPE dynaPolyId); void DynaPolyInfo_Free(GlobalContext* globalCtx, DynaCollisionContext* dynaColCtx, UNK_TYPE dynaPolyId); @@ -1114,8 +1115,9 @@ Vec3f* OLib_Vec3fDiffRad(Vec3f* dest, Vec3f* a, Vec3f* b); // ? func_80080024(?); s16 func_800800F8(GlobalContext* globalCtx, s16 arg1, s16 arg2, Actor* actor, s16 arg4); void func_800803F0(GlobalContext* globalCtx, s16 camId); -// ? func_80080480(?); +UNK_RET func_80080480(GlobalContext* globalCtx, Actor* actor); UNK_TYPE func_800806BC(GlobalContext* globalCtx, Actor* actor, UNK_TYPE); +UNK_TYPE func_80080728(GlobalContext* globalCtx, u8 actorType); void func_80080788(UNK_TYPE, UNK_TYPE); void Map_SavePlayerInitialInfo(GlobalContext* globalCtx); void Map_SetFloorPalettesData(GlobalContext* globalCtx, s16 floor); @@ -1358,8 +1360,8 @@ void SkelAnime_InitSkin(GlobalContext* globalCtx, SkelAnime* skelAnime, Skeleton s32 SkelAnime_FrameUpdateMatrix(SkelAnime* skelAnime); void SkelAnime_ChangeAnimImpl(SkelAnime* skelAnime, AnimationHeader* animationseg, f32 playbackSpeed, f32 frame, f32 frameCount, u8 unk1, f32 transitionRate, s8 unk2); -void SkelAnime_ChangeAnim(SkelAnime* skelAnime, AnimationHeader* animationseg, f32 playbackSpeed, f32 unk0, - f32 frameCount, u8 unk1, f32 transitionRate); +void SkelAnime_ChangeAnim(SkelAnime* skelAnime, AnimationHeader* animationseg, f32 playbackSpeed, f32 frame, + f32 frameCount, u8 mode, f32 transitionRate); void SkelAnime_ChangeAnimDefaultStop(SkelAnime* skelAnime, AnimationHeader* animationseg); void SkelAnime_ChangeAnimTransitionStop(SkelAnime* skelAnime, AnimationHeader* animationseg, f32 transitionRate); void SkelAnime_ChangeAnimPlaybackStop(SkelAnime* skelAnime, AnimationHeader* animationseg, f32 playbackSpeed); diff --git a/spec b/spec index 1ed41c6abb..8b2ceb1492 100644 --- a/spec +++ b/spec @@ -2038,9 +2038,7 @@ endseg beginseg name "ovl_En_Box" include "build/src/overlays/actors/ovl_En_Box/z_en_box.o" - include "build/data/overlays/actors/z_en_box.data.o" - include "build/data/overlays/actors/z_en_box.bss.o" - include "build/data/overlays/actors/z_en_box.reloc.o" + include "build/src/overlays/actors/ovl_En_Box/ovl_En_Box_reloc.o" endseg beginseg diff --git a/src/overlays/actors/ovl_En_Box/z_en_box.c b/src/overlays/actors/ovl_En_Box/z_en_box.c index 2829f83fe0..c18292c2c7 100644 --- a/src/overlays/actors/ovl_En_Box/z_en_box.c +++ b/src/overlays/actors/ovl_En_Box/z_en_box.c @@ -4,14 +4,64 @@ #define THIS ((EnBox*)thisx) +// movement flags + +/* +set on init unless treasure flag is set +if clear, chest moves (Actor_MoveForward) (falls, likely) +ends up cleared from SWITCH_FLAG_FALL types when switch flag is set +*/ +#define ENBOX_MOVE_IMMOBILE (1 << 0) +/* +set in the logic for SWITCH_FLAG_FALL types +otherwise unused +*/ +#define ENBOX_MOVE_UNUSED (1 << 1) +/* +set with 50% chance on init for SWITCH_FLAG_FALL types +only used for SWITCH_FLAG_FALL types +ends up "blinking" (set/clear every frame) once switch flag is set, +if some collision-related condition (?) is met +only used for signum of z rotation +*/ +#define ENBOX_MOVE_FALL_ANGLE_SIDE (1 << 2) +/* +when set, gets cleared next EnBox_Update call and clip to the floor +*/ +#define ENBOX_MOVE_STICK_TO_GROUND (1 << 4) + +typedef enum { + ENBOX_STATE_0, // waiting for player near / player available / player ? (IDLE) + ENBOX_STATE_1, // used only temporarily, maybe "player is ready" ? + ENBOX_STATE_2 // waiting for something message context-related +} EnBoxStateUnk1FB; + void EnBox_Init(Actor* thisx, GlobalContext* globalCtx); void EnBox_Destroy(Actor* thisx, GlobalContext* globalCtx); void EnBox_Update(Actor* thisx, GlobalContext* globalCtx); void EnBox_Draw(Actor* thisx, GlobalContext* globalCtx); -/* +void EnBox_FallOnSwitchFlag(EnBox*, GlobalContext*); +void func_809C9700(EnBox*, GlobalContext*); +void EnBox_AppearOnSwitchFlag(EnBox*, GlobalContext*); +void EnBox_AppearOnRoomClear(EnBox*, GlobalContext*); +void EnBox_AppearInit(EnBox*, GlobalContext*); +void EnBox_AppearAnimation(EnBox*, GlobalContext*); +void EnBox_WaitOpen(EnBox*, GlobalContext*); +void EnBox_Open(EnBox*, GlobalContext*); + +extern AnimationHeader D_06000128; +extern AnimationHeader D_0600024C; +extern AnimationHeader D_0600043C; +extern Gfx D_060006F0[]; // regular chest base +extern Gfx D_06000AE8[]; // boss key chest base +extern Gfx D_060010C0[]; // regular chest top +extern Gfx D_06001678[]; // boss key chest top +extern SkeletonHeader D_060047D8; +extern UNK_TYPE D_06005FC8; + const ActorInit En_Box_InitVars = { - Chest, + ACTOR_EN_BOX, ACTORTYPE_CHEST, FLAGS, OBJECT_BOX, @@ -21,47 +71,594 @@ const ActorInit En_Box_InitVars = { (ActorFunc)EnBox_Update, (ActorFunc)EnBox_Draw, }; -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Box/func_809C8DC0.s") -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Box/func_809C8DC8.s") +static AnimationHeader* D_809CA800[4] = { &D_0600024C, &D_06000128, &D_0600043C, &D_0600043C }; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Box/EnBox_Init.s") +static InitChainEntry sInitChain[] = { + ICHAIN_U8(unk_1F, 0, ICHAIN_STOP), +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Box/EnBox_Destroy.s") +static s32 sUnused; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Box/func_809C92F4.s") +void EnBox_SetupAction(EnBox* this, EnBoxActionFunc actionFunc) { + this->actionFunc = actionFunc; +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Box/func_809C93F8.s") +void EnBox_ClipToGround(EnBox* this, GlobalContext* globalCtx) { + f32 newY; + CollisionPoly* a1; + void* a2; + Vec3f pos; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Box/func_809C94AC.s") + pos = this->dyna.actor.posRot.pos; + pos.y += 1.0f; + newY = func_8003C9A4(&globalCtx->colCtx, &a1, &a2, &this->dyna.actor, &pos); + if (newY != -32000.0f) { + this->dyna.actor.posRot.pos.y = newY; + } +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Box/func_809C9630.s") +void EnBox_Init(Actor* thisx, GlobalContext* globalCtx) { + GlobalContext* globalCtx2 = globalCtx; + EnBox* this = THIS; + AnimationHeader* animHeader; + s32 dynaUnk; + f32 animFrameStart; + f32 animFrameCount; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Box/func_809C9700.s") + animFrameStart = 0.0f; + animHeader = D_809CA800[((void)0, gSaveContext.linkAge)]; + dynaUnk = 0; + animFrameCount = SkelAnime_GetFrameCount(&animHeader->genericHeader); + Actor_ProcessInitChain(&this->dyna.actor, sInitChain); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Box/func_809C988C.s") + DynaPolyInfo_SetActorMove(&this->dyna, 0); + DynaPolyInfo_Alloc(&D_06005FC8, &dynaUnk); + this->dyna.dynaPolyId = + DynaPolyInfo_RegisterActor(globalCtx2, &globalCtx2->colCtx.dyna, &this->dyna.actor, dynaUnk); + func_8003ECA8(globalCtx2, &globalCtx2->colCtx.dyna, this->dyna.dynaPolyId); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Box/func_809C990C.s") + this->movementFlags = 0; + this->type = thisx->params >> 12 & 0xF; + this->iceSmokeTimer = 0; + this->unk_1FB = ENBOX_STATE_0; + this->dyna.actor.gravity = -5.5f; + this->switchFlag = this->dyna.actor.posRot.rot.z; + this->dyna.actor.minVelocityY = -50.0f; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Box/func_809C99C4.s") + if (globalCtx2) {} // helps the compiler store globalCtx2 into s1 -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Box/func_809C9A7C.s") + if (Flags_GetTreasure(globalCtx2, this->dyna.actor.params & 0x1F)) { + this->alpha = 255; + this->iceSmokeTimer = 100; + EnBox_SetupAction(this, EnBox_Open); + this->movementFlags |= ENBOX_MOVE_STICK_TO_GROUND; + animFrameStart = animFrameCount; + } else if ((this->type == ENBOX_TYPE_SWITCH_FLAG_FALL_BIG || this->type == ENBOX_TYPE_SWITCH_FLAG_FALL_SMALL) && + !Flags_GetSwitch(globalCtx2, this->switchFlag)) { + func_8003EBF8(globalCtx2, &globalCtx2->colCtx.dyna, this->dyna.dynaPolyId); + if (Math_Rand_ZeroOne() < 0.5f) { + this->movementFlags |= ENBOX_MOVE_FALL_ANGLE_SIDE; + } + this->unk_1A8 = -12; + EnBox_SetupAction(this, EnBox_FallOnSwitchFlag); + this->alpha = 0; + this->movementFlags |= ENBOX_MOVE_IMMOBILE; + this->dyna.actor.flags |= 0x10; + } else if ((this->type == ENBOX_TYPE_ROOM_CLEAR_BIG || this->type == ENBOX_TYPE_ROOM_CLEAR_SMALL) && + !Flags_GetClear(globalCtx2, this->dyna.actor.room)) { + EnBox_SetupAction(this, EnBox_AppearOnRoomClear); + func_8003EBF8(globalCtx2, &globalCtx2->colCtx.dyna, this->dyna.dynaPolyId); + this->movementFlags |= ENBOX_MOVE_IMMOBILE; + this->dyna.actor.posRot.pos.y = this->dyna.actor.initPosRot.pos.y - 50.0f; + this->alpha = 0; + this->dyna.actor.flags |= 0x10; + } else if (this->type == ENBOX_TYPE_9 || this->type == ENBOX_TYPE_10) { + EnBox_SetupAction(this, func_809C9700); + this->dyna.actor.flags |= 0x2000000; + func_8003EBF8(globalCtx2, &globalCtx2->colCtx.dyna, this->dyna.dynaPolyId); + this->movementFlags |= ENBOX_MOVE_IMMOBILE; + this->dyna.actor.posRot.pos.y = this->dyna.actor.initPosRot.pos.y - 50.0f; + this->alpha = 0; + this->dyna.actor.flags |= 0x10; + } else if (this->type == ENBOX_TYPE_SWITCH_FLAG_BIG && !Flags_GetSwitch(globalCtx2, this->switchFlag)) { + EnBox_SetupAction(this, EnBox_AppearOnSwitchFlag); + func_8003EBF8(globalCtx2, &globalCtx2->colCtx.dyna, this->dyna.dynaPolyId); + this->movementFlags |= ENBOX_MOVE_IMMOBILE; + this->dyna.actor.posRot.pos.y = this->dyna.actor.initPosRot.pos.y - 50.0f; + this->alpha = 0; + this->dyna.actor.flags |= 0x10; + } else { + if (this->type == ENBOX_TYPE_4 || this->type == ENBOX_TYPE_6) { + this->dyna.actor.flags |= 0x80; + } + EnBox_SetupAction(this, EnBox_WaitOpen); + this->movementFlags |= ENBOX_MOVE_IMMOBILE; + this->movementFlags |= ENBOX_MOVE_STICK_TO_GROUND; + } -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Box/func_809C9B28.s") + this->dyna.actor.posRot.rot.y += 0x8000; + this->dyna.actor.initPosRot.rot.z = this->dyna.actor.posRot.rot.z = this->dyna.actor.shape.rot.z = 0; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Box/func_809C9D70.s") + SkelAnime_Init(globalCtx2, &this->skelanime, &D_060047D8, animHeader, this->limbDrawTable, + this->transitionDrawTable, 5); + SkelAnime_ChangeAnim(&this->skelanime, animHeader, 1.5f, animFrameStart, animFrameCount, 2, 0.0f); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Box/func_809C9EF8.s") + switch (this->type) { + case ENBOX_TYPE_SMALL: + case ENBOX_TYPE_6: + case ENBOX_TYPE_ROOM_CLEAR_SMALL: + case ENBOX_TYPE_SWITCH_FLAG_FALL_SMALL: + Actor_SetScale(&this->dyna.actor, 0.005f); + Actor_SetHeight(&this->dyna.actor, 20.0f); + break; + default: + Actor_SetScale(&this->dyna.actor, 0.01f); + Actor_SetHeight(&this->dyna.actor, 40.0f); + } +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Box/EnBox_Update.s") +void EnBox_Destroy(Actor* thisx, GlobalContext* globalCtx) { + EnBox* this = THIS; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Box/func_809CA2D8.s") + DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId); +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Box/func_809CA448.s") +void EnBox_RandomDustKinematic(EnBox* this, Vec3f* pos, Vec3f* velocity, Vec3f* accel) { + f32 randomRadius = Math_Rand_ZeroOne() * 25.0f; + s16 randomAngle = Math_Rand_ZeroOne() * 0x10000; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Box/func_809CA4A0.s") + *pos = this->dyna.actor.posRot.pos; + pos->x += Math_Sins(randomAngle) * randomRadius; + pos->z += Math_Coss(randomAngle) * randomRadius; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Box/func_809CA518.s") + velocity->y = 1.0f; + velocity->x = Math_Sins(randomAngle); + velocity->z = Math_Coss(randomAngle); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Box/EnBox_Draw.s") + accel->x = 0.0f; + accel->y = 0.0f; + accel->z = 0.0f; +} + +/** + * Spawns dust randomly around the chest when the chest hits the ground after falling (FALL types) + */ +void EnBox_SpawnDust(EnBox* this, GlobalContext* globalCtx) { + s32 i; + Vec3f pos; + Vec3f velocity; + Vec3f accel; + + for (i = 0; i < 20; i++) { + EnBox_RandomDustKinematic(this, &pos, &velocity, &accel); + func_8002873C(globalCtx, &pos, &velocity, &accel, 100, 30, 15); + } +} + +/** + * Used while the chest is falling (FALL types) + */ +void EnBox_Fall(EnBox* this, GlobalContext* globalCtx) { + f32 yDiff; + + this->alpha = 255; + this->movementFlags &= ~ENBOX_MOVE_IMMOBILE; + if (this->dyna.actor.bgCheckFlags & 1) { + this->movementFlags |= ENBOX_MOVE_UNUSED; + if (this->movementFlags & ENBOX_MOVE_FALL_ANGLE_SIDE) { + this->movementFlags &= ~ENBOX_MOVE_FALL_ANGLE_SIDE; + } else { + this->movementFlags |= ENBOX_MOVE_FALL_ANGLE_SIDE; + } + if (this->type == ENBOX_TYPE_SWITCH_FLAG_FALL_BIG) { + this->dyna.actor.velocity.y = -this->dyna.actor.velocity.y * 0.55f; + } else { + this->dyna.actor.velocity.y = -this->dyna.actor.velocity.y * 0.65f; + } + if (this->dyna.actor.velocity.y < 5.5f) { + this->dyna.actor.shape.rot.z = 0; + this->dyna.actor.posRot.pos.y = this->dyna.actor.groundY; + EnBox_SetupAction(this, EnBox_WaitOpen); + func_800803F0(globalCtx, this->unk_1AC); + } + Audio_PlaySoundGeneral(NA_SE_EV_COFFIN_CAP_BOUND, &this->dyna.actor.projectedPos, 4, &D_801333E0, &D_801333E0, + &D_801333E8); + EnBox_SpawnDust(this, globalCtx); + } + yDiff = this->dyna.actor.posRot.pos.y - this->dyna.actor.groundY; + if (this->movementFlags & ENBOX_MOVE_FALL_ANGLE_SIDE) { + this->dyna.actor.shape.rot.z = yDiff * 50.0f; + } else { + this->dyna.actor.shape.rot.z = -yDiff * 50.0f; + } +} + +void EnBox_FallOnSwitchFlag(EnBox* this, GlobalContext* globalCtx) { + s32 treasureFlag = this->dyna.actor.params & 0x1F; + + if (treasureFlag >= ENBOX_TREASURE_FLAG_UNK_MIN && treasureFlag < ENBOX_TREASURE_FLAG_UNK_MAX) { + func_8002F5F0(&this->dyna.actor, globalCtx); + } + + if (this->unk_1A8 >= 0) { + EnBox_SetupAction(this, EnBox_Fall); + this->unk_1AC = func_800800F8(globalCtx, 4500, 9999, &this->dyna.actor, 0); + func_8003EC50(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId); + } else if (this->unk_1A8 >= -11) { + this->unk_1A8++; + } else if (Flags_GetSwitch(globalCtx, this->switchFlag)) { + this->unk_1A8++; + } +} + +// used for types 9, 10 +void func_809C9700(EnBox* this, GlobalContext* globalCtx) { + s32 treasureFlag = this->dyna.actor.params & 0x1F; + Player* player = PLAYER; + + if (treasureFlag >= ENBOX_TREASURE_FLAG_UNK_MIN && treasureFlag < ENBOX_TREASURE_FLAG_UNK_MAX) { + func_8002F5F0(&this->dyna.actor, globalCtx); + } + + if (Math3D_Vec3fDistSq(&this->dyna.actor.posRot.pos, &player->actor.posRot.pos) > 22500.0f) { + this->unk_1FB = ENBOX_STATE_0; + } else { + if (this->unk_1FB == ENBOX_STATE_0) { + if (!(player->stateFlags2 & 0x1000000)) { + player->stateFlags2 |= 0x800000; + return; + } + this->unk_1FB = ENBOX_STATE_1; + } + + if (this->unk_1FB == ENBOX_STATE_1) { + func_8010BD58(globalCtx, 1); + this->unk_1FB = ENBOX_STATE_2; + } else if (this->unk_1FB == ENBOX_STATE_2 && globalCtx->msgCtx.unk_E3EE == 4) { + if ((globalCtx->msgCtx.unk_E3EC == 8 && this->type == ENBOX_TYPE_9) || + (globalCtx->msgCtx.unk_E3EC == 9 && this->type == ENBOX_TYPE_10)) { + this->dyna.actor.flags &= ~0x2000000; + EnBox_SetupAction(this, EnBox_AppearInit); + func_80080480(globalCtx, &this->dyna.actor); + this->unk_1A8 = 0; + this->unk_1FB = ENBOX_STATE_0; + } else { + this->unk_1FB = ENBOX_STATE_0; + } + } + } +} + +void EnBox_AppearOnSwitchFlag(EnBox* this, GlobalContext* globalCtx) { + s32 treasureFlag = this->dyna.actor.params & 0x1F; + + if (treasureFlag >= ENBOX_TREASURE_FLAG_UNK_MIN && treasureFlag < ENBOX_TREASURE_FLAG_UNK_MAX) { + func_8002F5F0(&this->dyna.actor, globalCtx); + } + + if (Flags_GetSwitch(globalCtx, this->switchFlag)) { + func_80080480(globalCtx, &this->dyna.actor); + EnBox_SetupAction(this, EnBox_AppearInit); + this->unk_1A8 = -30; + } +} + +void EnBox_AppearOnRoomClear(EnBox* this, GlobalContext* globalCtx) { + s32 treasureFlag = this->dyna.actor.params & 0x1F; + + if (treasureFlag >= ENBOX_TREASURE_FLAG_UNK_MIN && treasureFlag < ENBOX_TREASURE_FLAG_UNK_MAX) { + func_8002F5F0(&this->dyna.actor, globalCtx); + } + + if (Flags_GetTempClear(globalCtx, this->dyna.actor.room) && !Player_InCsMode(globalCtx)) { + Flags_SetClear(globalCtx, this->dyna.actor.room); + EnBox_SetupAction(this, EnBox_AppearInit); + func_80080480(globalCtx, &this->dyna.actor); + if (func_80080728(globalCtx, this->dyna.actor.type)) { + this->unk_1A8 = 0; + } else { + this->unk_1A8 = -30; + } + } +} + +/** + * The chest is ready to appear, possibly waiting for camera/cutscene-related stuff to happen + */ +void EnBox_AppearInit(EnBox* this, GlobalContext* globalCtx) { + if (func_8005B198() == this->dyna.actor.type || this->unk_1A8 != 0) { + EnBox_SetupAction(this, EnBox_AppearAnimation); + this->unk_1A8 = 0; + Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_DEMO_KANKYO, this->dyna.actor.initPosRot.pos.x, + this->dyna.actor.initPosRot.pos.y, this->dyna.actor.initPosRot.pos.z, 0, 0, 0, 0x0011); + Audio_PlaySoundGeneral(NA_SE_EV_TRE_BOX_APPEAR, &this->dyna.actor.projectedPos, 4, &D_801333E0, &D_801333E0, + &D_801333E8); + } +} + +void EnBox_AppearAnimation(EnBox* this, GlobalContext* globalCtx) { + func_8003EC50(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId); + + if (this->unk_1A8 < 0) { + this->unk_1A8++; + } else if (this->unk_1A8 < 40) { + this->unk_1A8++; + this->dyna.actor.posRot.pos.y += 1.25f; + } else if (this->unk_1A8 < 60) { + this->alpha += 12; + this->unk_1A8++; + this->dyna.actor.posRot.pos.y = this->dyna.actor.initPosRot.pos.y; + } else { + EnBox_SetupAction(this, EnBox_WaitOpen); + } +} + +/** + * Chest is ready to be open + */ +void EnBox_WaitOpen(EnBox* this, GlobalContext* globalCtx) { + f32 frameCount; + AnimationHeader* anim; + s32 linkAge; + s32 pad; + Vec3f sp4C; + Player* player; + + this->alpha = 255; + this->movementFlags |= ENBOX_MOVE_IMMOBILE; + if (this->unk_1F4 != 0) { // unk_1F4 is modified by player code + linkAge = gSaveContext.linkAge; + anim = D_809CA800[(this->unk_1F4 < 0 ? 2 : 0) + linkAge]; + frameCount = SkelAnime_GetFrameCount(&anim->genericHeader); + SkelAnime_ChangeAnim(&this->skelanime, anim, 1.5f, 0, frameCount, 2, 0.0f); + EnBox_SetupAction(this, EnBox_Open); + if (this->unk_1F4 > 0) { + switch (this->type) { + case ENBOX_TYPE_SMALL: + case ENBOX_TYPE_6: + case ENBOX_TYPE_ROOM_CLEAR_SMALL: + case ENBOX_TYPE_SWITCH_FLAG_FALL_SMALL: + break; + default: + Actor_SpawnAsChild(&globalCtx->actorCtx, &this->dyna.actor, globalCtx, ACTOR_DEMO_TRE_LGT, + this->dyna.actor.posRot.pos.x, this->dyna.actor.posRot.pos.y, + this->dyna.actor.posRot.pos.z, this->dyna.actor.shape.rot.x, + this->dyna.actor.shape.rot.y, this->dyna.actor.shape.rot.z, 0xFFFF); + func_800F5C64(0x92B); + } + } + osSyncPrintf("Actor_Environment_Tbox_On() %d\n", this->dyna.actor.params & 0x1F); + Flags_SetTreasure(globalCtx, this->dyna.actor.params & 0x1F); + } else { + player = PLAYER; + func_8002DBD0(&this->dyna.actor, &sp4C, &player->actor.posRot.pos); + if (sp4C.z > -50.0f && sp4C.z < 0.0f && fabsf(sp4C.y) < 10.0f && fabsf(sp4C.x) < 20.0f && + func_8002DFC8(&this->dyna.actor, 0x3000, globalCtx)) { + func_8002F554(&this->dyna.actor, globalCtx, 0 - (this->dyna.actor.params >> 5 & 0x7F)); + } + if (Flags_GetTreasure(globalCtx, this->dyna.actor.params & 0x1F)) { + EnBox_SetupAction(this, EnBox_Open); + } + } +} + +/** + * Plays an animation to its end, playing sounds at key points + */ +void EnBox_Open(EnBox* this, GlobalContext* globalCtx) { + u16 sfxId; + + this->dyna.actor.flags &= ~0x80; + + if (SkelAnime_FrameUpdateMatrix(&this->skelanime)) { + if (this->unk_1F4 > 0) { + if (this->unk_1F4 < 120) { + this->unk_1F4++; + } else { + Math_ApproxF(&this->unk_1B0, 0.0f, 0.05f); + } + } else { + if (this->unk_1F4 > -120) { + this->unk_1F4--; + } else { + Math_ApproxF(&this->unk_1B0, 0.0f, 0.05f); + } + } + } else { + sfxId = 0; + + if (func_800A56C8(&this->skelanime, 30.0f)) { + sfxId = NA_SE_EV_TBOX_UNLOCK; + } else if (func_800A56C8(&this->skelanime, 90.0f)) { + sfxId = NA_SE_EV_TBOX_OPEN; + } + + if (sfxId != 0) { + Audio_PlaySoundGeneral(sfxId, &this->dyna.actor.projectedPos, 4, &D_801333E0, &D_801333E0, &D_801333E8); + } + + if (this->skelanime.limbDrawTbl[3].z > 0) { + this->unk_1B0 = (0x7D00 - this->skelanime.limbDrawTbl[3].z) * 0.00006f; + if (this->unk_1B0 < 0.0f) { + this->unk_1B0 = 0.0f; + } else if (this->unk_1B0 > 1.0f) { + this->unk_1B0 = 1.0f; + } + } + } +} + +void EnBox_SpawnIceSmoke(EnBox* this, GlobalContext* globalCtx) { + Vec3f pos; + Vec3f vel = { 0.0f, 1.0f, 0.0f }; + Vec3f accel = { 0.0f, 0.0f, 0.0f }; + f32 f0; + + this->iceSmokeTimer++; + func_8002F974(&this->dyna.actor, NA_SE_EN_MIMICK_BREATH - SFX_FLAG); + if (Math_Rand_ZeroOne() < 0.3f) { + f0 = 2.0f * Math_Rand_ZeroOne() - 1.0f; + pos = this->dyna.actor.posRot.pos; + if (this->type == ENBOX_TYPE_SMALL || this->type == ENBOX_TYPE_6 || this->type == ENBOX_TYPE_ROOM_CLEAR_SMALL || + this->type == ENBOX_TYPE_SWITCH_FLAG_FALL_SMALL) { + pos.x += f0 * 10.0f * Math_Sins(this->dyna.actor.posRot.rot.y + 0x4000); + pos.z += f0 * 10.0f * Math_Coss(this->dyna.actor.posRot.rot.y + 0x4000); + f0 = 2.0f * Math_Rand_ZeroOne() - 1.0f; + vel.x = f0 * 0.8f * Math_Sins(this->dyna.actor.posRot.rot.y); + vel.y = 1.8f; + vel.z = f0 * 0.8f * Math_Coss(this->dyna.actor.posRot.rot.y); + } else { + pos.x += f0 * 20.0f * Math_Sins(this->dyna.actor.posRot.rot.y + 0x4000); + pos.z += f0 * 20.0f * Math_Coss(this->dyna.actor.posRot.rot.y + 0x4000); + f0 = 2.0f * Math_Rand_ZeroOne() - 1.0f; + vel.x = f0 * 1.6f * Math_Sins(this->dyna.actor.posRot.rot.y); + vel.y = 1.8f; + vel.z = f0 * 1.6f * Math_Coss(this->dyna.actor.posRot.rot.y); + } + EffectSsIceSmoke_Spawn(globalCtx, &pos, &vel, &accel, 150); + } +} + +void EnBox_Update(Actor* thisx, GlobalContext* globalCtx) { + EnBox* this = THIS; + + if (this->movementFlags & ENBOX_MOVE_STICK_TO_GROUND) { + this->movementFlags &= ~ENBOX_MOVE_STICK_TO_GROUND; + EnBox_ClipToGround(this, globalCtx); + } + + this->actionFunc(this, globalCtx); + + if (!(this->movementFlags & ENBOX_MOVE_IMMOBILE)) { + Actor_MoveForward(&this->dyna.actor); + func_8002E4B4(globalCtx, &this->dyna.actor, 0.0f, 0.0f, 0.0f, 0x1C); + } + + switch (this->type) { + case ENBOX_TYPE_SMALL: + case ENBOX_TYPE_6: + case ENBOX_TYPE_ROOM_CLEAR_SMALL: + case ENBOX_TYPE_SWITCH_FLAG_FALL_SMALL: + Actor_SetHeight(&this->dyna.actor, 20.0f); + break; + default: + Actor_SetHeight(&this->dyna.actor, 40.0f); + } + + if ((this->dyna.actor.params >> 5 & 0x7F) == 0x7C && this->actionFunc == EnBox_Open && + this->skelanime.animCurrentFrame > 45 && this->iceSmokeTimer < 100) { + EnBox_SpawnIceSmoke(this, globalCtx); + } +} + +void EnBox_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx, Gfx** gfx) { + EnBox* this = THIS; + s32 pad; + + if (limbIndex == 1) { + gSPMatrix((*gfx)++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_box.c", 1492), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + if (this->type != ENBOX_TYPE_DECORATED_BIG) { + gSPDisplayList((*gfx)++, D_060006F0); + } else { + gSPDisplayList((*gfx)++, D_06000AE8); + } + } else if (limbIndex == 3) { + gSPMatrix((*gfx)++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_box.c", 1502), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + if (this->type != ENBOX_TYPE_DECORATED_BIG) { + gSPDisplayList((*gfx)++, D_060010C0); + } else { + gSPDisplayList((*gfx)++, D_06001678); + } + } +} + +Gfx* EnBox_EmptyDList(GraphicsContext* gfxCtx) { + Gfx* dListHead; + Gfx* dList; + + dList = Graph_Alloc(gfxCtx, sizeof(Gfx)); + if (dList == NULL) { + __assert("gfxp != NULL", "../z_en_box.c", 1528); + } + + dListHead = dList; + gSPEndDisplayList(dListHead++); + + return dList; +} + +// set render mode with a focus on transparency +Gfx* func_809CA4A0(GraphicsContext* gfxCtx) { + Gfx* dList; + Gfx* dListHead; + + dListHead = Graph_Alloc(gfxCtx, 2 * sizeof(Gfx)); + if (dListHead == NULL) { + __assert("gfxp != NULL", "../z_en_box.c", 1546); + } + + dList = dListHead; + gDPSetRenderMode(dListHead++, + AA_EN | Z_CMP | Z_UPD | IM_RD | CLR_ON_CVG | CVG_DST_WRAP | ZMODE_XLU | FORCE_BL | + GBL_c1(G_BL_CLR_FOG, G_BL_A_SHADE, G_BL_CLR_IN, G_BL_1MA), + AA_EN | Z_CMP | Z_UPD | IM_RD | CLR_ON_CVG | CVG_DST_WRAP | ZMODE_XLU | FORCE_BL | + GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)); + gSPEndDisplayList(dListHead++); + + return dList; +} + +Gfx* func_809CA518(GraphicsContext* gfxCtx) { + Gfx* dList; + Gfx* dListHead; + + dListHead = Graph_Alloc(gfxCtx, 2 * sizeof(Gfx)); + if (dListHead == NULL) { + __assert("gfxp != NULL", "../z_en_box.c", 1564); + } + + dList = dListHead; + gDPSetRenderMode(dListHead++, + AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_CLAMP | ZMODE_OPA | ALPHA_CVG_SEL | + GBL_c1(G_BL_CLR_FOG, G_BL_A_SHADE, G_BL_CLR_IN, G_BL_1MA), + G_RM_AA_ZB_OPA_SURF2); + gSPEndDisplayList(dListHead++); + + return dList; +} + +void EnBox_Draw(Actor* thisx, GlobalContext* globalCtx) { + EnBox* this = THIS; + + OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_box.c", 1581); + + /* + this->dyna.actor.flags & 0x80 is set by Init (if type is 4 or 6) + and cleared by Open + */ + if ((this->alpha == 255 && !(this->type == ENBOX_TYPE_4 || this->type == ENBOX_TYPE_6)) || + ((this->dyna.actor.flags & 0x80) != 0x80 && (this->type == ENBOX_TYPE_4 || this->type == ENBOX_TYPE_6))) { + gDPPipeSync(oGfxCtx->polyOpa.p++); + gDPSetEnvColor(oGfxCtx->polyOpa.p++, 0, 0, 0, 255); + gSPSegment(oGfxCtx->polyOpa.p++, 0x08, EnBox_EmptyDList(globalCtx->state.gfxCtx)); + func_80093D18(globalCtx->state.gfxCtx); + oGfxCtx->polyOpa.p = SkelAnime_Draw2(globalCtx, this->skelanime.skeleton, this->skelanime.limbDrawTbl, NULL, + EnBox_PostLimbDraw, &this->dyna.actor, oGfxCtx->polyOpa.p); + } else if (this->alpha != 0) { + gDPPipeSync(oGfxCtx->polyXlu.p++); + func_80093D84(globalCtx->state.gfxCtx); + gDPSetEnvColor(oGfxCtx->polyXlu.p++, 0, 0, 0, this->alpha); + if (this->type == ENBOX_TYPE_4 || this->type == ENBOX_TYPE_6) { + gSPSegment(oGfxCtx->polyXlu.p++, 0x08, func_809CA518(globalCtx->state.gfxCtx)); + } else { + gSPSegment(oGfxCtx->polyXlu.p++, 0x08, func_809CA4A0(globalCtx->state.gfxCtx)); + } + oGfxCtx->polyXlu.p = SkelAnime_Draw2(globalCtx, this->skelanime.skeleton, this->skelanime.limbDrawTbl, NULL, + EnBox_PostLimbDraw, &this->dyna.actor, oGfxCtx->polyXlu.p); + } + + CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_box.c", 1639); +} diff --git a/src/overlays/actors/ovl_En_Box/z_en_box.h b/src/overlays/actors/ovl_En_Box/z_en_box.h index 8171438ae2..92da08385c 100644 --- a/src/overlays/actors/ovl_En_Box/z_en_box.h +++ b/src/overlays/actors/ovl_En_Box/z_en_box.h @@ -4,13 +4,47 @@ #include "ultra64.h" #include "global.h" +#define ENBOX_TREASURE_FLAG_UNK_MIN 20 +#define ENBOX_TREASURE_FLAG_UNK_MAX 32 + struct EnBox; +typedef void (*EnBoxActionFunc)(struct EnBox*, GlobalContext*); + +typedef enum { + /* + only values 1-11 are used explicitly, other values (like 0) default to another separate behavior + */ + /* 0 */ ENBOX_TYPE_BIG_DEFAULT, + /* 1 */ ENBOX_TYPE_ROOM_CLEAR_BIG, // appear on room clear, store temp clear as permanent clear + /* 2 */ ENBOX_TYPE_DECORATED_BIG, // boss key chest, different look, same as ENBOX_TYPE_BIG_DEFAULT otherwise + /* 3 */ ENBOX_TYPE_SWITCH_FLAG_FALL_BIG, // falling, appear on switch flag set + /* 4 */ ENBOX_TYPE_4, // big, drawn differently + /* 5 */ ENBOX_TYPE_SMALL, // same as ENBOX_TYPE_BIG_DEFAULT but small + /* 6 */ ENBOX_TYPE_6, // small, drawn differently + /* 7 */ ENBOX_TYPE_ROOM_CLEAR_SMALL, // use room clear, store temp clear as perm clear + /* 8 */ ENBOX_TYPE_SWITCH_FLAG_FALL_SMALL, // falling, appear on switch flag set + /* 9 */ ENBOX_TYPE_9, // big, has something more to do with player and message context? + /* 10 */ ENBOX_TYPE_10, // like 9 + /* 11 */ ENBOX_TYPE_SWITCH_FLAG_BIG // big, appear on switch flag set +} EnBoxType; + typedef struct EnBox { - /* 0x0000 */ Actor actor; - /* 0x014C */ char unk_14C[0xA8]; - /* 0x01F4 */ s16 unk_1F4; - /* 0x01F6 */ char unk_1F6[0x06]; + /* 0x0000 */ DynaPolyActor dyna; + /* 0x0164 */ SkelAnime skelanime; + /* 0x01A8 */ s32 unk_1A8; // related to animation delays for types 3 and 8 + /* 0x01AC */ s32 unk_1AC; + /* 0x01B0 */ f32 unk_1B0; // 0-1, rotation-related, apparently unused (in z_en_box.c at least) + /* 0x01B4 */ EnBoxActionFunc actionFunc; + /* 0x01B8 */ Vec3s limbDrawTable[5]; + /* 0x01D6 */ Vec3s transitionDrawTable[5]; + /* 0x01F4 */ s16 unk_1F4; // probably a frame count? set by player code + /* 0x01F6 */ u8 movementFlags; + /* 0x01F7 */ u8 alpha; + /* 0x01F8 */ u8 switchFlag; + /* 0x01F9 */ u8 type; + /* 0x01FA */ u8 iceSmokeTimer; + /* 0x01FB */ u8 unk_1FB; } EnBox; // size = 0x01FC extern const ActorInit En_Box_InitVars; diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 049eacbed3..03931dd03b 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -5977,10 +5977,10 @@ s32 func_8083E5A8(Player* this, GlobalContext* globalCtx) { this->stateFlags1 |= 0x20000C00; func_8083AE40(this, giEntry->objectId); this->actor.posRot.pos.x = - chest->actor.posRot.pos.x - (Math_Sins(chest->actor.shape.rot.y) * 29.434299469f); + chest->dyna.actor.posRot.pos.x - (Math_Sins(chest->dyna.actor.shape.rot.y) * 29.434299469f); this->actor.posRot.pos.z = - chest->actor.posRot.pos.z - (Math_Coss(chest->actor.shape.rot.y) * 29.434299469f); - this->currentYaw = this->actor.shape.rot.y = chest->actor.shape.rot.y; + chest->dyna.actor.posRot.pos.z - (Math_Coss(chest->dyna.actor.shape.rot.y) * 29.434299469f); + this->currentYaw = this->actor.shape.rot.y = chest->dyna.actor.shape.rot.y; func_80832224(this); if ((giEntry->itemId != ITEM_NONE) && (giEntry->gi >= 0) && diff --git a/undefined_syms.txt b/undefined_syms.txt index 0389ff73b1..b273a2b726 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -1007,6 +1007,17 @@ D_06000340 = 0x06000340; D_06000408 = 0x06000408; D_06000530 = 0x06000530; +// z_en_box +D_06000128 = 0x06000128; +D_0600024C = 0x0600024C; +D_0600043C = 0x0600043C; +D_060006F0 = 0x060006F0; +D_06000AE8 = 0x06000AE8; +D_060010C0 = 0x060010C0; +D_06001678 = 0x06001678; +D_060047D8 = 0x060047D8; +D_06005FC8 = 0x06005FC8; + // z_eff_ss_dust D_04010050 = 0x04010050;