From 3e5f6b3485b2a1020c2ff9dd2e72068319794d78 Mon Sep 17 00:00:00 2001 From: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com> Date: Thu, 14 Jan 2021 17:58:17 +0000 Subject: [PATCH] EnWood02 OK (#578) * OK, some documentation * delete asm * dists updated * addressed review comments * one more comment * remove one comment * addressed review comments --- .../actors/ovl_En_Wood02/EnWood02_Destroy.s | 17 - .../actors/ovl_En_Wood02/EnWood02_Draw.s | 209 --------- .../actors/ovl_En_Wood02/EnWood02_Init.s | 345 --------------- .../actors/ovl_En_Wood02/EnWood02_Update.s | 364 --------------- .../actors/ovl_En_Wood02/func_80B3AF70.s | 77 ---- .../actors/ovl_En_Wood02/func_80B3B094.s | 144 ------ data/overlays/actors/z_en_wood02.bss.s | 16 - data/overlays/actors/z_en_wood02.data.s | 30 -- data/overlays/actors/z_en_wood02.reloc.s | 13 - spec | 4 +- .../actors/ovl_En_Wood02/z_en_wood02.c | 414 +++++++++++++++++- .../actors/ovl_En_Wood02/z_en_wood02.h | 36 +- 12 files changed, 440 insertions(+), 1229 deletions(-) delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Wood02/EnWood02_Destroy.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Wood02/EnWood02_Draw.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Wood02/EnWood02_Init.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Wood02/EnWood02_Update.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Wood02/func_80B3AF70.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Wood02/func_80B3B094.s delete mode 100644 data/overlays/actors/z_en_wood02.bss.s delete mode 100644 data/overlays/actors/z_en_wood02.data.s delete mode 100644 data/overlays/actors/z_en_wood02.reloc.s diff --git a/asm/non_matchings/overlays/actors/ovl_En_Wood02/EnWood02_Destroy.s b/asm/non_matchings/overlays/actors/ovl_En_Wood02/EnWood02_Destroy.s deleted file mode 100644 index 04e11bbc9c..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Wood02/EnWood02_Destroy.s +++ /dev/null @@ -1,17 +0,0 @@ -glabel EnWood02_Destroy -/* 00778 80B3B6E8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 0077C 80B3B6EC AFBF0014 */ sw $ra, 0x0014($sp) -/* 00780 80B3B6F0 848E001C */ lh $t6, 0x001C($a0) ## 0000001C -/* 00784 80B3B6F4 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000 -/* 00788 80B3B6F8 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 0078C 80B3B6FC 29C1000B */ slti $at, $t6, 0x000B -/* 00790 80B3B700 50200004 */ beql $at, $zero, .L80B3B714 -/* 00794 80B3B704 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00798 80B3B708 0C0170EB */ jal Collider_DestroyCylinder - -/* 0079C 80B3B70C 24C50158 */ addiu $a1, $a2, 0x0158 ## $a1 = 00000158 -/* 007A0 80B3B710 8FBF0014 */ lw $ra, 0x0014($sp) -.L80B3B714: -/* 007A4 80B3B714 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 007A8 80B3B718 03E00008 */ jr $ra -/* 007AC 80B3B71C 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Wood02/EnWood02_Draw.s b/asm/non_matchings/overlays/actors/ovl_En_Wood02/EnWood02_Draw.s deleted file mode 100644 index 425fc681b6..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Wood02/EnWood02_Draw.s +++ /dev/null @@ -1,209 +0,0 @@ -.rdata -glabel D_80B3BFA0 - .asciz "../z_en_wood02.c" - .balign 4 - -glabel D_80B3BFB4 - .asciz "../z_en_wood02.c" - .balign 4 - -glabel D_80B3BFC8 - .asciz "../z_en_wood02.c" - .balign 4 - -glabel D_80B3BFDC - .asciz "../z_en_wood02.c" - .balign 4 - -.text -glabel EnWood02_Draw -/* 00CA4 80B3BC14 27BDFFA0 */ addiu $sp, $sp, 0xFFA0 ## $sp = FFFFFFA0 -/* 00CA8 80B3BC18 AFBF001C */ sw $ra, 0x001C($sp) -/* 00CAC 80B3BC1C AFB00018 */ sw $s0, 0x0018($sp) -/* 00CB0 80B3BC20 AFA40060 */ sw $a0, 0x0060($sp) -/* 00CB4 80B3BC24 AFA50064 */ sw $a1, 0x0064($sp) -/* 00CB8 80B3BC28 8CB00000 */ lw $s0, 0x0000($a1) ## 00000000 -/* 00CBC 80B3BC2C 3C0680B4 */ lui $a2, %hi(D_80B3BFA0) ## $a2 = 80B40000 -/* 00CC0 80B3BC30 24C6BFA0 */ addiu $a2, $a2, %lo(D_80B3BFA0) ## $a2 = 80B3BFA0 -/* 00CC4 80B3BC34 27A4003C */ addiu $a0, $sp, 0x003C ## $a0 = FFFFFFDC -/* 00CC8 80B3BC38 24070307 */ addiu $a3, $zero, 0x0307 ## $a3 = 00000307 -/* 00CCC 80B3BC3C 0C031AB1 */ jal Graph_OpenDisps -/* 00CD0 80B3BC40 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 00CD4 80B3BC44 8FAF0060 */ lw $t7, 0x0060($sp) -/* 00CD8 80B3BC48 24010008 */ addiu $at, $zero, 0x0008 ## $at = 00000008 -/* 00CDC 80B3BC4C 24060032 */ addiu $a2, $zero, 0x0032 ## $a2 = 00000032 -/* 00CE0 80B3BC50 85E2001C */ lh $v0, 0x001C($t7) ## 0000001C -/* 00CE4 80B3BC54 240700AA */ addiu $a3, $zero, 0x00AA ## $a3 = 000000AA -/* 00CE8 80B3BC58 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00CEC 80B3BC5C 10410007 */ beq $v0, $at, .L80B3BC7C -/* 00CF0 80B3BC60 24010009 */ addiu $at, $zero, 0x0009 ## $at = 00000009 -/* 00CF4 80B3BC64 10410005 */ beq $v0, $at, .L80B3BC7C -/* 00CF8 80B3BC68 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005 -/* 00CFC 80B3BC6C 10410003 */ beq $v0, $at, .L80B3BC7C -/* 00D00 80B3BC70 24010017 */ addiu $at, $zero, 0x0017 ## $at = 00000017 -/* 00D04 80B3BC74 54410004 */ bnel $v0, $at, .L80B3BC88 -/* 00D08 80B3BC78 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006 -.L80B3BC7C: -/* 00D0C 80B3BC7C 1000000E */ beq $zero, $zero, .L80B3BCB8 -/* 00D10 80B3BC80 24080046 */ addiu $t0, $zero, 0x0046 ## $t0 = 00000046 -/* 00D14 80B3BC84 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006 -.L80B3BC88: -/* 00D18 80B3BC88 10410006 */ beq $v0, $at, .L80B3BCA4 -/* 00D1C 80B3BC8C 240600B4 */ addiu $a2, $zero, 0x00B4 ## $a2 = 000000B4 -/* 00D20 80B3BC90 24010007 */ addiu $at, $zero, 0x0007 ## $at = 00000007 -/* 00D24 80B3BC94 10410003 */ beq $v0, $at, .L80B3BCA4 -/* 00D28 80B3BC98 24010018 */ addiu $at, $zero, 0x0018 ## $at = 00000018 -/* 00D2C 80B3BC9C 14410004 */ bne $v0, $at, .L80B3BCB0 -/* 00D30 80B3BCA0 240800FF */ addiu $t0, $zero, 0x00FF ## $t0 = 000000FF -.L80B3BCA4: -/* 00D34 80B3BCA4 2407009B */ addiu $a3, $zero, 0x009B ## $a3 = 0000009B -/* 00D38 80B3BCA8 10000003 */ beq $zero, $zero, .L80B3BCB8 -/* 00D3C 80B3BCAC 00004025 */ or $t0, $zero, $zero ## $t0 = 00000000 -.L80B3BCB0: -/* 00D40 80B3BCB0 240700FF */ addiu $a3, $zero, 0x00FF ## $a3 = 000000FF -/* 00D44 80B3BCB4 240600FF */ addiu $a2, $zero, 0x00FF ## $a2 = 000000FF -.L80B3BCB8: -/* 00D48 80B3BCB8 A3A60053 */ sb $a2, 0x0053($sp) -/* 00D4C 80B3BCBC A3A70052 */ sb $a3, 0x0052($sp) -/* 00D50 80B3BCC0 0C024F61 */ jal func_80093D84 -/* 00D54 80B3BCC4 A3A80051 */ sb $t0, 0x0051($sp) -/* 00D58 80B3BCC8 8FA30060 */ lw $v1, 0x0060($sp) -/* 00D5C 80B3BCCC 24010017 */ addiu $at, $zero, 0x0017 ## $at = 00000017 -/* 00D60 80B3BCD0 93A60053 */ lbu $a2, 0x0053($sp) -/* 00D64 80B3BCD4 8462001C */ lh $v0, 0x001C($v1) ## 0000001C -/* 00D68 80B3BCD8 93A70052 */ lbu $a3, 0x0052($sp) -/* 00D6C 80B3BCDC 93A80051 */ lbu $t0, 0x0051($sp) -/* 00D70 80B3BCE0 10410004 */ beq $v0, $at, .L80B3BCF4 -/* 00D74 80B3BCE4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00D78 80B3BCE8 24010018 */ addiu $at, $zero, 0x0018 ## $at = 00000018 -/* 00D7C 80B3BCEC 5441001B */ bnel $v0, $at, .L80B3BD5C -/* 00D80 80B3BCF0 90620154 */ lbu $v0, 0x0154($v1) ## 00000154 -.L80B3BCF4: -/* 00D84 80B3BCF4 A3A60053 */ sb $a2, 0x0053($sp) -/* 00D88 80B3BCF8 A3A70052 */ sb $a3, 0x0052($sp) -/* 00D8C 80B3BCFC 0C024F46 */ jal func_80093D18 -/* 00D90 80B3BD00 A3A80051 */ sb $t0, 0x0051($sp) -/* 00D94 80B3BD04 8E0302C0 */ lw $v1, 0x02C0($s0) ## 000002C0 -/* 00D98 80B3BD08 93A90053 */ lbu $t1, 0x0053($sp) -/* 00D9C 80B3BD0C 93AB0052 */ lbu $t3, 0x0052($sp) -/* 00DA0 80B3BD10 93AE0051 */ lbu $t6, 0x0051($sp) -/* 00DA4 80B3BD14 24780008 */ addiu $t8, $v1, 0x0008 ## $t8 = 00000008 -/* 00DA8 80B3BD18 AE1802C0 */ sw $t8, 0x02C0($s0) ## 000002C0 -/* 00DAC 80B3BD1C 00095600 */ sll $t2, $t1, 24 -/* 00DB0 80B3BD20 000B6400 */ sll $t4, $t3, 16 -/* 00DB4 80B3BD24 014C6825 */ or $t5, $t2, $t4 ## $t5 = 00000000 -/* 00DB8 80B3BD28 3C19FA00 */ lui $t9, 0xFA00 ## $t9 = FA000000 -/* 00DBC 80B3BD2C 000E7A00 */ sll $t7, $t6, 8 -/* 00DC0 80B3BD30 01AFC025 */ or $t8, $t5, $t7 ## $t8 = 00000000 -/* 00DC4 80B3BD34 AC790000 */ sw $t9, 0x0000($v1) ## 00000000 -/* 00DC8 80B3BD38 3719007F */ ori $t9, $t8, 0x007F ## $t9 = 0000007F -/* 00DCC 80B3BD3C 3C050600 */ lui $a1, %hi(D_06000700) ## $a1 = 06000000 -/* 00DD0 80B3BD40 AC790004 */ sw $t9, 0x0004($v1) ## 00000004 -/* 00DD4 80B3BD44 8FA40064 */ lw $a0, 0x0064($sp) -/* 00DD8 80B3BD48 0C00D498 */ jal Gfx_DrawDListOpa - -/* 00DDC 80B3BD4C 24A50700 */ addiu $a1, $a1, %lo(D_06000700) ## $a1 = 06000700 -/* 00DE0 80B3BD50 10000058 */ beq $zero, $zero, .L80B3BEB4 -/* 00DE4 80B3BD54 00000000 */ nop -/* 00DE8 80B3BD58 90620154 */ lbu $v0, 0x0154($v1) ## 00000154 -.L80B3BD5C: -/* 00DEC 80B3BD5C 3C0980B4 */ lui $t1, %hi(D_80B3BF70) ## $t1 = 80B40000 -/* 00DF0 80B3BD60 3C0580B4 */ lui $a1, %hi(D_80B3BF54) ## $a1 = 80B40000 -/* 00DF4 80B3BD64 3042000F */ andi $v0, $v0, 0x000F ## $v0 = 00000000 -/* 00DF8 80B3BD68 00021080 */ sll $v0, $v0, 2 -/* 00DFC 80B3BD6C 01224821 */ addu $t1, $t1, $v0 -/* 00E00 80B3BD70 8D29BF70 */ lw $t1, %lo(D_80B3BF70)($t1) -/* 00E04 80B3BD74 00A22821 */ addu $a1, $a1, $v0 -/* 00E08 80B3BD78 8FA40064 */ lw $a0, 0x0064($sp) -/* 00E0C 80B3BD7C 11200030 */ beq $t1, $zero, .L80B3BE40 -/* 00E10 80B3BD80 00000000 */ nop -/* 00E14 80B3BD84 8CA5BF54 */ lw $a1, %lo(D_80B3BF54)($a1) -/* 00E18 80B3BD88 A3A60053 */ sb $a2, 0x0053($sp) -/* 00E1C 80B3BD8C A3A70052 */ sb $a3, 0x0052($sp) -/* 00E20 80B3BD90 0C00D498 */ jal Gfx_DrawDListOpa - -/* 00E24 80B3BD94 A3A80051 */ sb $t0, 0x0051($sp) -/* 00E28 80B3BD98 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0 -/* 00E2C 80B3BD9C 93AC0053 */ lbu $t4, 0x0053($sp) -/* 00E30 80B3BDA0 93AD0052 */ lbu $t5, 0x0052($sp) -/* 00E34 80B3BDA4 93B90051 */ lbu $t9, 0x0051($sp) -/* 00E38 80B3BDA8 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008 -/* 00E3C 80B3BDAC AE0B02D0 */ sw $t3, 0x02D0($s0) ## 000002D0 -/* 00E40 80B3BDB0 000C7600 */ sll $t6, $t4, 24 -/* 00E44 80B3BDB4 000D7C00 */ sll $t7, $t5, 16 -/* 00E48 80B3BDB8 01CFC025 */ or $t8, $t6, $t7 ## $t8 = 00000000 -/* 00E4C 80B3BDBC 00194A00 */ sll $t1, $t9, 8 -/* 00E50 80B3BDC0 03095825 */ or $t3, $t8, $t1 ## $t3 = 00000000 -/* 00E54 80B3BDC4 3C0AFB00 */ lui $t2, 0xFB00 ## $t2 = FB000000 -/* 00E58 80B3BDC8 AC4A0000 */ sw $t2, 0x0000($v0) ## 00000000 -/* 00E5C 80B3BDCC AC4B0004 */ sw $t3, 0x0004($v0) ## 00000004 -/* 00E60 80B3BDD0 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0 -/* 00E64 80B3BDD4 3C0CDA38 */ lui $t4, 0xDA38 ## $t4 = DA380000 -/* 00E68 80B3BDD8 358C0003 */ ori $t4, $t4, 0x0003 ## $t4 = DA380003 -/* 00E6C 80B3BDDC 244A0008 */ addiu $t2, $v0, 0x0008 ## $t2 = 00000008 -/* 00E70 80B3BDE0 AE0A02D0 */ sw $t2, 0x02D0($s0) ## 000002D0 -/* 00E74 80B3BDE4 3C0580B4 */ lui $a1, %hi(D_80B3BFB4) ## $a1 = 80B40000 -/* 00E78 80B3BDE8 AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000 -/* 00E7C 80B3BDEC 24A5BFB4 */ addiu $a1, $a1, %lo(D_80B3BFB4) ## $a1 = 80B3BFB4 -/* 00E80 80B3BDF0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00E84 80B3BDF4 24060328 */ addiu $a2, $zero, 0x0328 ## $a2 = 00000328 -/* 00E88 80B3BDF8 0C0346A2 */ jal Matrix_NewMtx -/* 00E8C 80B3BDFC AFA20030 */ sw $v0, 0x0030($sp) -/* 00E90 80B3BE00 8FA30030 */ lw $v1, 0x0030($sp) -/* 00E94 80B3BE04 3C0EDE00 */ lui $t6, 0xDE00 ## $t6 = DE000000 -/* 00E98 80B3BE08 3C0B80B4 */ lui $t3, %hi(D_80B3BF70) ## $t3 = 80B40000 -/* 00E9C 80B3BE0C AC620004 */ sw $v0, 0x0004($v1) ## 00000004 -/* 00EA0 80B3BE10 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0 -/* 00EA4 80B3BE14 244D0008 */ addiu $t5, $v0, 0x0008 ## $t5 = 00000008 -/* 00EA8 80B3BE18 AE0D02D0 */ sw $t5, 0x02D0($s0) ## 000002D0 -/* 00EAC 80B3BE1C AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000 -/* 00EB0 80B3BE20 8FAF0060 */ lw $t7, 0x0060($sp) -/* 00EB4 80B3BE24 91F90154 */ lbu $t9, 0x0154($t7) ## 00000154 -/* 00EB8 80B3BE28 3338000F */ andi $t8, $t9, 0x000F ## $t8 = 00000000 -/* 00EBC 80B3BE2C 00184880 */ sll $t1, $t8, 2 -/* 00EC0 80B3BE30 01695821 */ addu $t3, $t3, $t1 -/* 00EC4 80B3BE34 8D6BBF70 */ lw $t3, %lo(D_80B3BF70)($t3) -/* 00EC8 80B3BE38 1000001E */ beq $zero, $zero, .L80B3BEB4 -/* 00ECC 80B3BE3C AC4B0004 */ sw $t3, 0x0004($v0) ## 00000004 -.L80B3BE40: -/* 00ED0 80B3BE40 0C024F61 */ jal func_80093D84 -/* 00ED4 80B3BE44 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00ED8 80B3BE48 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0 -/* 00EDC 80B3BE4C 3C0CDA38 */ lui $t4, 0xDA38 ## $t4 = DA380000 -/* 00EE0 80B3BE50 358C0003 */ ori $t4, $t4, 0x0003 ## $t4 = DA380003 -/* 00EE4 80B3BE54 244A0008 */ addiu $t2, $v0, 0x0008 ## $t2 = 00000008 -/* 00EE8 80B3BE58 AE0A02D0 */ sw $t2, 0x02D0($s0) ## 000002D0 -/* 00EEC 80B3BE5C 3C0580B4 */ lui $a1, %hi(D_80B3BFC8) ## $a1 = 80B40000 -/* 00EF0 80B3BE60 AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000 -/* 00EF4 80B3BE64 24A5BFC8 */ addiu $a1, $a1, %lo(D_80B3BFC8) ## $a1 = 80B3BFC8 -/* 00EF8 80B3BE68 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00EFC 80B3BE6C 2406032E */ addiu $a2, $zero, 0x032E ## $a2 = 0000032E -/* 00F00 80B3BE70 0C0346A2 */ jal Matrix_NewMtx -/* 00F04 80B3BE74 AFA20028 */ sw $v0, 0x0028($sp) -/* 00F08 80B3BE78 8FA30028 */ lw $v1, 0x0028($sp) -/* 00F0C 80B3BE7C 3C0EDE00 */ lui $t6, 0xDE00 ## $t6 = DE000000 -/* 00F10 80B3BE80 3C0B80B4 */ lui $t3, %hi(D_80B3BF54) ## $t3 = 80B40000 -/* 00F14 80B3BE84 AC620004 */ sw $v0, 0x0004($v1) ## 00000004 -/* 00F18 80B3BE88 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0 -/* 00F1C 80B3BE8C 244D0008 */ addiu $t5, $v0, 0x0008 ## $t5 = 00000008 -/* 00F20 80B3BE90 AE0D02D0 */ sw $t5, 0x02D0($s0) ## 000002D0 -/* 00F24 80B3BE94 AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000 -/* 00F28 80B3BE98 8FAF0060 */ lw $t7, 0x0060($sp) -/* 00F2C 80B3BE9C 91F90154 */ lbu $t9, 0x0154($t7) ## 00000154 -/* 00F30 80B3BEA0 3338000F */ andi $t8, $t9, 0x000F ## $t8 = 00000000 -/* 00F34 80B3BEA4 00184880 */ sll $t1, $t8, 2 -/* 00F38 80B3BEA8 01695821 */ addu $t3, $t3, $t1 -/* 00F3C 80B3BEAC 8D6BBF54 */ lw $t3, %lo(D_80B3BF54)($t3) -/* 00F40 80B3BEB0 AC4B0004 */ sw $t3, 0x0004($v0) ## 00000004 -.L80B3BEB4: -/* 00F44 80B3BEB4 3C0680B4 */ lui $a2, %hi(D_80B3BFDC) ## $a2 = 80B40000 -/* 00F48 80B3BEB8 24C6BFDC */ addiu $a2, $a2, %lo(D_80B3BFDC) ## $a2 = 80B3BFDC -/* 00F4C 80B3BEBC 27A4003C */ addiu $a0, $sp, 0x003C ## $a0 = FFFFFFDC -/* 00F50 80B3BEC0 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 00F54 80B3BEC4 0C031AD5 */ jal Graph_CloseDisps -/* 00F58 80B3BEC8 24070348 */ addiu $a3, $zero, 0x0348 ## $a3 = 00000348 -/* 00F5C 80B3BECC 8FBF001C */ lw $ra, 0x001C($sp) -/* 00F60 80B3BED0 8FB00018 */ lw $s0, 0x0018($sp) -/* 00F64 80B3BED4 27BD0060 */ addiu $sp, $sp, 0x0060 ## $sp = 00000000 -/* 00F68 80B3BED8 03E00008 */ jr $ra -/* 00F6C 80B3BEDC 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Wood02/EnWood02_Init.s b/asm/non_matchings/overlays/actors/ovl_En_Wood02/EnWood02_Init.s deleted file mode 100644 index cea9df84a4..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Wood02/EnWood02_Init.s +++ /dev/null @@ -1,345 +0,0 @@ -.late_rodata -glabel jtbl_80B3BFF0 -.word L80B3B3C4 -.word L80B3B40C -.word L80B3B438 -.word L80B3B3FC -.word L80B3B400 -.word L80B3B40C -.word L80B3B3FC -.word L80B3B400 -.word L80B3B3FC -.word L80B3B400 -.word L80B3B40C -.word L80B3B40C -.word L80B3B3C4 -.word L80B3B3FC -.word L80B3B400 -.word L80B3B3B4 -.word L80B3B3B8 -.word L80B3B40C -.word L80B3B3C4 -.word L80B3B3FC -.word L80B3B400 -.word L80B3B3B4 -.word L80B3B3B8 -.word L80B3B470 -.word L80B3B470 -glabel D_80B3C054 - .float 0.6 - -glabel D_80B3C058 - .float 0.02 - -glabel D_80B3C05C - .word 0xC0466666 - -.text -glabel EnWood02_Init -/* 0033C 80B3B2AC 27BDFFB0 */ addiu $sp, $sp, 0xFFB0 ## $sp = FFFFFFB0 -/* 00340 80B3B2B0 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 -/* 00344 80B3B2B4 44812000 */ mtc1 $at, $f4 ## $f4 = 1.00 -/* 00348 80B3B2B8 AFBF0024 */ sw $ra, 0x0024($sp) -/* 0034C 80B3B2BC AFB00020 */ sw $s0, 0x0020($sp) -/* 00350 80B3B2C0 AFA50054 */ sw $a1, 0x0054($sp) -/* 00354 80B3B2C4 E7A40048 */ swc1 $f4, 0x0048($sp) -/* 00358 80B3B2C8 8482001C */ lh $v0, 0x001C($a0) ## 0000001C -/* 0035C 80B3B2CC 84830018 */ lh $v1, 0x0018($a0) ## 00000018 -/* 00360 80B3B2D0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00364 80B3B2D4 00027203 */ sra $t6, $v0, 8 -/* 00368 80B3B2D8 31CF00FF */ andi $t7, $t6, 0x00FF ## $t7 = 00000000 -/* 0036C 80B3B2DC 00004025 */ or $t0, $zero, $zero ## $t0 = 00000000 -/* 00370 80B3B2E0 1060000C */ beq $v1, $zero, .L80B3B314 -/* 00374 80B3B2E4 A48F014C */ sh $t7, 0x014C($a0) ## 0000014C -/* 00378 80B3B2E8 8499014C */ lh $t9, 0x014C($a0) ## 0000014C -/* 0037C 80B3B2EC A48000B8 */ sh $zero, 0x00B8($a0) ## 000000B8 -/* 00380 80B3B2F0 848B00B8 */ lh $t3, 0x00B8($a0) ## 000000B8 -/* 00384 80B3B2F4 0003C200 */ sll $t8, $v1, 8 -/* 00388 80B3B2F8 240AFFFF */ addiu $t2, $zero, 0xFFFF ## $t2 = FFFFFFFF -/* 0038C 80B3B2FC 03194825 */ or $t1, $t8, $t9 ## $t1 = 00000000 -/* 00390 80B3B300 A4890018 */ sh $t1, 0x0018($a0) ## 00000018 -/* 00394 80B3B304 A48A014C */ sh $t2, 0x014C($a0) ## 0000014C -/* 00398 80B3B308 8482001C */ lh $v0, 0x001C($a0) ## 0000001C -/* 0039C 80B3B30C 10000008 */ beq $zero, $zero, .L80B3B330 -/* 003A0 80B3B310 A48B0034 */ sh $t3, 0x0034($a0) ## 00000034 -.L80B3B314: -/* 003A4 80B3B314 860C014C */ lh $t4, 0x014C($s0) ## 0000014C -/* 003A8 80B3B318 240EFFFF */ addiu $t6, $zero, 0xFFFF ## $t6 = FFFFFFFF -/* 003AC 80B3B31C 318D0080 */ andi $t5, $t4, 0x0080 ## $t5 = 00000000 -/* 003B0 80B3B320 51A00004 */ beql $t5, $zero, .L80B3B334 -/* 003B4 80B3B324 304F00FF */ andi $t7, $v0, 0x00FF ## $t7 = 00000000 -/* 003B8 80B3B328 A60E014C */ sh $t6, 0x014C($s0) ## 0000014C -/* 003BC 80B3B32C 8602001C */ lh $v0, 0x001C($s0) ## 0000001C -.L80B3B330: -/* 003C0 80B3B330 304F00FF */ andi $t7, $v0, 0x00FF ## $t7 = 00000000 -.L80B3B334: -/* 003C4 80B3B334 A60F001C */ sh $t7, 0x001C($s0) ## 0000001C -/* 003C8 80B3B338 3C0580B4 */ lui $a1, %hi(D_80B3BF50) ## $a1 = 80B40000 -/* 003CC 80B3B33C 24A5BF50 */ addiu $a1, $a1, %lo(D_80B3BF50) ## $a1 = 80B3BF50 -/* 003D0 80B3B340 A7A8004E */ sh $t0, 0x004E($sp) -/* 003D4 80B3B344 0C01E037 */ jal Actor_ProcessInitChain - -/* 003D8 80B3B348 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 003DC 80B3B34C 8602001C */ lh $v0, 0x001C($s0) ## 0000001C -/* 003E0 80B3B350 87A8004E */ lh $t0, 0x004E($sp) -/* 003E4 80B3B354 2841000B */ slti $at, $v0, 0x000B -/* 003E8 80B3B358 5020000F */ beql $at, $zero, .L80B3B398 -/* 003EC 80B3B35C 2C410019 */ sltiu $at, $v0, 0x0019 -/* 003F0 80B3B360 26050158 */ addiu $a1, $s0, 0x0158 ## $a1 = 00000158 -/* 003F4 80B3B364 AFA5002C */ sw $a1, 0x002C($sp) -/* 003F8 80B3B368 8FA40054 */ lw $a0, 0x0054($sp) -/* 003FC 80B3B36C 0C0170D9 */ jal Collider_InitCylinder - -/* 00400 80B3B370 A7A8004E */ sh $t0, 0x004E($sp) -/* 00404 80B3B374 3C0780B4 */ lui $a3, %hi(D_80B3BF00) ## $a3 = 80B40000 -/* 00408 80B3B378 8FA5002C */ lw $a1, 0x002C($sp) -/* 0040C 80B3B37C 24E7BF00 */ addiu $a3, $a3, %lo(D_80B3BF00) ## $a3 = 80B3BF00 -/* 00410 80B3B380 8FA40054 */ lw $a0, 0x0054($sp) -/* 00414 80B3B384 0C01712B */ jal Collider_SetCylinder - -/* 00418 80B3B388 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000 -/* 0041C 80B3B38C 87A8004E */ lh $t0, 0x004E($sp) -/* 00420 80B3B390 8602001C */ lh $v0, 0x001C($s0) ## 0000001C -/* 00424 80B3B394 2C410019 */ sltiu $at, $v0, 0x0019 -.L80B3B398: -/* 00428 80B3B398 1020004D */ beq $at, $zero, .L80B3B4D0 -/* 0042C 80B3B39C 0002C080 */ sll $t8, $v0, 2 -/* 00430 80B3B3A0 3C0180B4 */ lui $at, %hi(jtbl_80B3BFF0) ## $at = 80B40000 -/* 00434 80B3B3A4 00380821 */ addu $at, $at, $t8 -/* 00438 80B3B3A8 8C38BFF0 */ lw $t8, %lo(jtbl_80B3BFF0)($at) -/* 0043C 80B3B3AC 03000008 */ jr $t8 -/* 00440 80B3B3B0 00000000 */ nop -glabel L80B3B3B4 -/* 00444 80B3B3B4 24080001 */ addiu $t0, $zero, 0x0001 ## $t0 = 00000001 -glabel L80B3B3B8 -/* 00448 80B3B3B8 25080001 */ addiu $t0, $t0, 0x0001 ## $t0 = 00000002 -/* 0044C 80B3B3BC 00084400 */ sll $t0, $t0, 16 -/* 00450 80B3B3C0 00084403 */ sra $t0, $t0, 16 -glabel L80B3B3C4 -/* 00454 80B3B3C4 3C013FC0 */ lui $at, 0x3FC0 ## $at = 3FC00000 -/* 00458 80B3B3C8 44813000 */ mtc1 $at, $f6 ## $f6 = 1.50 -/* 0045C 80B3B3CC 3C01457A */ lui $at, 0x457A ## $at = 457A0000 -/* 00460 80B3B3D0 44814000 */ mtc1 $at, $f8 ## $f8 = 4000.00 -/* 00464 80B3B3D4 3C0144FA */ lui $at, 0x44FA ## $at = 44FA0000 -/* 00468 80B3B3D8 44815000 */ mtc1 $at, $f10 ## $f10 = 2000.00 -/* 0046C 80B3B3DC 3C014516 */ lui $at, 0x4516 ## $at = 45160000 -/* 00470 80B3B3E0 E7A60048 */ swc1 $f6, 0x0048($sp) -/* 00474 80B3B3E4 44818000 */ mtc1 $at, $f16 ## $f16 = 2400.00 -/* 00478 80B3B3E8 8602001C */ lh $v0, 0x001C($s0) ## 0000001C -/* 0047C 80B3B3EC E60800F4 */ swc1 $f8, 0x00F4($s0) ## 000000F4 -/* 00480 80B3B3F0 E60A00F8 */ swc1 $f10, 0x00F8($s0) ## 000000F8 -/* 00484 80B3B3F4 10000036 */ beq $zero, $zero, .L80B3B4D0 -/* 00488 80B3B3F8 E61000FC */ swc1 $f16, 0x00FC($s0) ## 000000FC -glabel L80B3B3FC -/* 0048C 80B3B3FC 24080001 */ addiu $t0, $zero, 0x0001 ## $t0 = 00000001 -glabel L80B3B400 -/* 00490 80B3B400 25080001 */ addiu $t0, $t0, 0x0001 ## $t0 = 00000002 -/* 00494 80B3B404 00084400 */ sll $t0, $t0, 16 -/* 00498 80B3B408 00084403 */ sra $t0, $t0, 16 -glabel L80B3B40C -/* 0049C 80B3B40C 3C01457A */ lui $at, 0x457A ## $at = 457A0000 -/* 004A0 80B3B410 44819000 */ mtc1 $at, $f18 ## $f18 = 4000.00 -/* 004A4 80B3B414 3C014448 */ lui $at, 0x4448 ## $at = 44480000 -/* 004A8 80B3B418 44812000 */ mtc1 $at, $f4 ## $f4 = 800.00 -/* 004AC 80B3B41C 3C0144E1 */ lui $at, 0x44E1 ## $at = 44E10000 -/* 004B0 80B3B420 44813000 */ mtc1 $at, $f6 ## $f6 = 1800.00 -/* 004B4 80B3B424 8602001C */ lh $v0, 0x001C($s0) ## 0000001C -/* 004B8 80B3B428 E61200F4 */ swc1 $f18, 0x00F4($s0) ## 000000F4 -/* 004BC 80B3B42C E60400F8 */ swc1 $f4, 0x00F8($s0) ## 000000F8 -/* 004C0 80B3B430 10000027 */ beq $zero, $zero, .L80B3B4D0 -/* 004C4 80B3B434 E60600FC */ swc1 $f6, 0x00FC($s0) ## 000000FC -glabel L80B3B438 -/* 004C8 80B3B438 3C0180B4 */ lui $at, %hi(D_80B3C054) ## $at = 80B40000 -/* 004CC 80B3B43C C428C054 */ lwc1 $f8, %lo(D_80B3C054)($at) -/* 004D0 80B3B440 3C01457A */ lui $at, 0x457A ## $at = 457A0000 -/* 004D4 80B3B444 44815000 */ mtc1 $at, $f10 ## $f10 = 4000.00 -/* 004D8 80B3B448 3C0143C8 */ lui $at, 0x43C8 ## $at = 43C80000 -/* 004DC 80B3B44C 44818000 */ mtc1 $at, $f16 ## $f16 = 400.00 -/* 004E0 80B3B450 3C01447A */ lui $at, 0x447A ## $at = 447A0000 -/* 004E4 80B3B454 E7A80048 */ swc1 $f8, 0x0048($sp) -/* 004E8 80B3B458 44819000 */ mtc1 $at, $f18 ## $f18 = 1000.00 -/* 004EC 80B3B45C 8602001C */ lh $v0, 0x001C($s0) ## 0000001C -/* 004F0 80B3B460 E60A00F4 */ swc1 $f10, 0x00F4($s0) ## 000000F4 -/* 004F4 80B3B464 E61000F8 */ swc1 $f16, 0x00F8($s0) ## 000000F8 -/* 004F8 80B3B468 10000019 */ beq $zero, $zero, .L80B3B4D0 -/* 004FC 80B3B46C E61200FC */ swc1 $f18, 0x00FC($s0) ## 000000FC -glabel L80B3B470 -/* 00500 80B3B470 2419004B */ addiu $t9, $zero, 0x004B ## $t9 = 0000004B -/* 00504 80B3B474 A219014E */ sb $t9, 0x014E($s0) ## 0000014E -/* 00508 80B3B478 3C0180B4 */ lui $at, %hi(D_80B3C058) ## $at = 80B40000 -/* 0050C 80B3B47C C424C058 */ lwc1 $f4, %lo(D_80B3C058)($at) -/* 00510 80B3B480 3C0140C0 */ lui $at, 0x40C0 ## $at = 40C00000 -/* 00514 80B3B484 44816000 */ mtc1 $at, $f12 ## $f12 = 6.00 -/* 00518 80B3B488 A7A8004E */ sh $t0, 0x004E($sp) -/* 0051C 80B3B48C 0C00CFC8 */ jal Rand_CenteredFloat - -/* 00520 80B3B490 E7A40048 */ swc1 $f4, 0x0048($sp) -/* 00524 80B3B494 3C0140C0 */ lui $at, 0x40C0 ## $at = 40C00000 -/* 00528 80B3B498 44816000 */ mtc1 $at, $f12 ## $f12 = 6.00 -/* 0052C 80B3B49C 0C00CFC8 */ jal Rand_CenteredFloat - -/* 00530 80B3B4A0 E600005C */ swc1 $f0, 0x005C($s0) ## 0000005C -/* 00534 80B3B4A4 0C03F66B */ jal Rand_ZeroOne - ## Rand.Next() float -/* 00538 80B3B4A8 E6000064 */ swc1 $f0, 0x0064($s0) ## 00000064 -/* 0053C 80B3B4AC 3C013FA0 */ lui $at, 0x3FA0 ## $at = 3FA00000 -/* 00540 80B3B4B0 44813000 */ mtc1 $at, $f6 ## $f6 = 1.25 -/* 00544 80B3B4B4 3C0180B4 */ lui $at, %hi(D_80B3C05C) ## $at = 80B40000 -/* 00548 80B3B4B8 C42AC05C */ lwc1 $f10, %lo(D_80B3C05C)($at) -/* 0054C 80B3B4BC 46060202 */ mul.s $f8, $f0, $f6 -/* 00550 80B3B4C0 87A8004E */ lh $t0, 0x004E($sp) -/* 00554 80B3B4C4 8602001C */ lh $v0, 0x001C($s0) ## 0000001C -/* 00558 80B3B4C8 460A4400 */ add.s $f16, $f8, $f10 -/* 0055C 80B3B4CC E6100060 */ swc1 $f16, 0x0060($s0) ## 00000060 -.L80B3B4D0: -/* 00560 80B3B4D0 28410005 */ slti $at, $v0, 0x0005 -/* 00564 80B3B4D4 10200003 */ beq $at, $zero, .L80B3B4E4 -/* 00568 80B3B4D8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 0056C 80B3B4DC 10000017 */ beq $zero, $zero, .L80B3B53C -/* 00570 80B3B4E0 A2000154 */ sb $zero, 0x0154($s0) ## 00000154 -.L80B3B4E4: -/* 00574 80B3B4E4 2841000A */ slti $at, $v0, 0x000A -/* 00578 80B3B4E8 10200003 */ beq $at, $zero, .L80B3B4F8 -/* 0057C 80B3B4EC 24090001 */ addiu $t1, $zero, 0x0001 ## $t1 = 00000001 -/* 00580 80B3B4F0 10000012 */ beq $zero, $zero, .L80B3B53C -/* 00584 80B3B4F4 A2090154 */ sb $t1, 0x0154($s0) ## 00000154 -.L80B3B4F8: -/* 00588 80B3B4F8 2841000B */ slti $at, $v0, 0x000B -/* 0058C 80B3B4FC 10200003 */ beq $at, $zero, .L80B3B50C -/* 00590 80B3B500 240A0002 */ addiu $t2, $zero, 0x0002 ## $t2 = 00000002 -/* 00594 80B3B504 1000000D */ beq $zero, $zero, .L80B3B53C -/* 00598 80B3B508 A20A0154 */ sb $t2, 0x0154($s0) ## 00000154 -.L80B3B50C: -/* 0059C 80B3B50C 28410011 */ slti $at, $v0, 0x0011 -/* 005A0 80B3B510 10200003 */ beq $at, $zero, .L80B3B520 -/* 005A4 80B3B514 240B0003 */ addiu $t3, $zero, 0x0003 ## $t3 = 00000003 -/* 005A8 80B3B518 10000008 */ beq $zero, $zero, .L80B3B53C -/* 005AC 80B3B51C A20B0154 */ sb $t3, 0x0154($s0) ## 00000154 -.L80B3B520: -/* 005B0 80B3B520 28410018 */ slti $at, $v0, 0x0018 -/* 005B4 80B3B524 10200004 */ beq $at, $zero, .L80B3B538 -/* 005B8 80B3B528 240D0005 */ addiu $t5, $zero, 0x0005 ## $t5 = 00000005 -/* 005BC 80B3B52C 240C0004 */ addiu $t4, $zero, 0x0004 ## $t4 = 00000004 -/* 005C0 80B3B530 10000002 */ beq $zero, $zero, .L80B3B53C -/* 005C4 80B3B534 A20C0154 */ sb $t4, 0x0154($s0) ## 00000154 -.L80B3B538: -/* 005C8 80B3B538 A20D0154 */ sb $t5, 0x0154($s0) ## 00000154 -.L80B3B53C: -/* 005CC 80B3B53C 8FA50048 */ lw $a1, 0x0048($sp) -/* 005D0 80B3B540 0C00B58B */ jal Actor_SetScale - -/* 005D4 80B3B544 A7A8004E */ sh $t0, 0x004E($sp) -/* 005D8 80B3B548 87A8004E */ lh $t0, 0x004E($sp) -/* 005DC 80B3B54C 11000057 */ beq $t0, $zero, .L80B3B6AC -/* 005E0 80B3B550 A2080153 */ sb $t0, 0x0153($s0) ## 00000153 -/* 005E4 80B3B554 860E001C */ lh $t6, 0x001C($s0) ## 0000001C -/* 005E8 80B3B558 2401000F */ addiu $at, $zero, 0x000F ## $at = 0000000F -/* 005EC 80B3B55C 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000 -/* 005F0 80B3B560 55C10003 */ bnel $t6, $at, .L80B3B570 -/* 005F4 80B3B564 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002 -/* 005F8 80B3B568 24024000 */ addiu $v0, $zero, 0x4000 ## $v0 = 00004000 -/* 005FC 80B3B56C 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002 -.L80B3B570: -/* 00600 80B3B570 55010032 */ bnel $t0, $at, .L80B3B63C -/* 00604 80B3B574 8E0F0004 */ lw $t7, 0x0004($s0) ## 00000004 -/* 00608 80B3B578 8618014C */ lh $t8, 0x014C($s0) ## 0000014C -/* 0060C 80B3B57C 920F0154 */ lbu $t7, 0x0154($s0) ## 00000154 -/* 00610 80B3B580 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00614 80B3B584 0018C900 */ sll $t9, $t8, 4 -/* 00618 80B3B588 01F94825 */ or $t1, $t7, $t9 ## $t1 = 00000000 -/* 0061C 80B3B58C A2090154 */ sb $t1, 0x0154($s0) ## 00000154 -/* 00620 80B3B590 A7A20032 */ sh $v0, 0x0032($sp) -/* 00624 80B3B594 0C2CEC25 */ jal func_80B3B094 -/* 00628 80B3B598 8FA50054 */ lw $a1, 0x0054($sp) -/* 0062C 80B3B59C 3C0A80B4 */ lui $t2, %hi(D_80B3BF44+0xA) ## $t2 = 80B40000 -/* 00630 80B3B5A0 854ABF4E */ lh $t2, %lo(D_80B3BF44+0xA)($t2) -/* 00634 80B3B5A4 860B0032 */ lh $t3, 0x0032($s0) ## 00000032 -/* 00638 80B3B5A8 87A20032 */ lh $v0, 0x0032($sp) -/* 0063C 80B3B5AC 014B6021 */ addu $t4, $t2, $t3 -/* 00640 80B3B5B0 01822021 */ addu $a0, $t4, $v0 -/* 00644 80B3B5B4 00042400 */ sll $a0, $a0, 16 -/* 00648 80B3B5B8 0C01DE0D */ jal Math_CosS - ## coss? -/* 0064C 80B3B5BC 00042403 */ sra $a0, $a0, 16 -/* 00650 80B3B5C0 3C0180B4 */ lui $at, %hi(D_80B3C1D0) ## $at = 80B40000 -/* 00654 80B3B5C4 E420C1D0 */ swc1 $f0, %lo(D_80B3C1D0)($at) -/* 00658 80B3B5C8 3C0D80B4 */ lui $t5, %hi(D_80B3BF44+0xA) ## $t5 = 80B40000 -/* 0065C 80B3B5CC 85ADBF4E */ lh $t5, %lo(D_80B3BF44+0xA)($t5) -/* 00660 80B3B5D0 860E0032 */ lh $t6, 0x0032($s0) ## 00000032 -/* 00664 80B3B5D4 87A20032 */ lh $v0, 0x0032($sp) -/* 00668 80B3B5D8 01AEC021 */ addu $t8, $t5, $t6 -/* 0066C 80B3B5DC 03022021 */ addu $a0, $t8, $v0 -/* 00670 80B3B5E0 00042400 */ sll $a0, $a0, 16 -/* 00674 80B3B5E4 0C01DE1C */ jal Math_SinS - ## sins? -/* 00678 80B3B5E8 00042403 */ sra $a0, $a0, 16 -/* 0067C 80B3B5EC 3C0280B4 */ lui $v0, %hi(D_80B3C1D4) ## $v0 = 80B40000 -/* 00680 80B3B5F0 2442C1D4 */ addiu $v0, $v0, %lo(D_80B3C1D4) ## $v0 = 80B3C1D4 -/* 00684 80B3B5F4 3C0380B4 */ lui $v1, %hi(D_80B3BF2C) ## $v1 = 80B40000 -/* 00688 80B3B5F8 2463BF2C */ addiu $v1, $v1, %lo(D_80B3BF2C) ## $v1 = 80B3BF2C -/* 0068C 80B3B5FC E4400000 */ swc1 $f0, 0x0000($v0) ## 80B3C1D4 -/* 00690 80B3B600 C4520000 */ lwc1 $f18, 0x0000($v0) ## 80B3C1D4 -/* 00694 80B3B604 C4640014 */ lwc1 $f4, 0x0014($v1) ## 80B3BF40 -/* 00698 80B3B608 C6080024 */ lwc1 $f8, 0x0024($s0) ## 00000024 -/* 0069C 80B3B60C 3C0180B4 */ lui $at, %hi(D_80B3C1D0) ## $at = 80B40000 -/* 006A0 80B3B610 46049182 */ mul.s $f6, $f18, $f4 -/* 006A4 80B3B614 46064280 */ add.s $f10, $f8, $f6 -/* 006A8 80B3B618 C608002C */ lwc1 $f8, 0x002C($s0) ## 0000002C -/* 006AC 80B3B61C E60A0024 */ swc1 $f10, 0x0024($s0) ## 00000024 -/* 006B0 80B3B620 C4720014 */ lwc1 $f18, 0x0014($v1) ## 80B3BF40 -/* 006B4 80B3B624 C430C1D0 */ lwc1 $f16, %lo(D_80B3C1D0)($at) -/* 006B8 80B3B628 46128102 */ mul.s $f4, $f16, $f18 -/* 006BC 80B3B62C 46044180 */ add.s $f6, $f8, $f4 -/* 006C0 80B3B630 10000004 */ beq $zero, $zero, .L80B3B644 -/* 006C4 80B3B634 E606002C */ swc1 $f6, 0x002C($s0) ## 0000002C -/* 006C8 80B3B638 8E0F0004 */ lw $t7, 0x0004($s0) ## 00000004 -.L80B3B63C: -/* 006CC 80B3B63C 35F90010 */ ori $t9, $t7, 0x0010 ## $t9 = 00000010 -/* 006D0 80B3B640 AE190004 */ sw $t9, 0x0004($s0) ## 00000004 -.L80B3B644: -/* 006D4 80B3B644 3C014348 */ lui $at, 0x4348 ## $at = 43480000 -/* 006D8 80B3B648 44818000 */ mtc1 $at, $f16 ## $f16 = 200.00 -/* 006DC 80B3B64C C60A0028 */ lwc1 $f10, 0x0028($s0) ## 00000028 -/* 006E0 80B3B650 26090024 */ addiu $t1, $s0, 0x0024 ## $t1 = 00000024 -/* 006E4 80B3B654 27A5003C */ addiu $a1, $sp, 0x003C ## $a1 = FFFFFFEC -/* 006E8 80B3B658 46105480 */ add.s $f18, $f10, $f16 -/* 006EC 80B3B65C 27A60038 */ addiu $a2, $sp, 0x0038 ## $a2 = FFFFFFE8 -/* 006F0 80B3B660 02003825 */ or $a3, $s0, $zero ## $a3 = 00000000 -/* 006F4 80B3B664 E6120028 */ swc1 $f18, 0x0028($s0) ## 00000028 -/* 006F8 80B3B668 8FA40054 */ lw $a0, 0x0054($sp) -/* 006FC 80B3B66C AFA90010 */ sw $t1, 0x0010($sp) -/* 00700 80B3B670 0C00F269 */ jal BgCheck_EntityRaycastFloor4 -/* 00704 80B3B674 248407C0 */ addiu $a0, $a0, 0x07C0 ## $a0 = 000007C0 -/* 00708 80B3B678 3C01C6FA */ lui $at, 0xC6FA ## $at = C6FA0000 -/* 0070C 80B3B67C 44814000 */ mtc1 $at, $f8 ## $f8 = -32000.00 -/* 00710 80B3B680 00000000 */ nop -/* 00714 80B3B684 4600403C */ c.lt.s $f8, $f0 -/* 00718 80B3B688 00000000 */ nop -/* 0071C 80B3B68C 45000003 */ bc1f .L80B3B69C -/* 00720 80B3B690 00000000 */ nop -/* 00724 80B3B694 10000005 */ beq $zero, $zero, .L80B3B6AC -/* 00728 80B3B698 E6000028 */ swc1 $f0, 0x0028($s0) ## 00000028 -.L80B3B69C: -/* 0072C 80B3B69C 0C00B55C */ jal Actor_Kill - -/* 00730 80B3B6A0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00734 80B3B6A4 1000000C */ beq $zero, $zero, .L80B3B6D8 -/* 00738 80B3B6A8 8FBF0024 */ lw $ra, 0x0024($sp) -.L80B3B6AC: -/* 0073C 80B3B6AC 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00 -/* 00740 80B3B6B0 260400B4 */ addiu $a0, $s0, 0x00B4 ## $a0 = 000000B4 -/* 00744 80B3B6B4 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000 -/* 00748 80B3B6B8 44050000 */ mfc1 $a1, $f0 -/* 0074C 80B3B6BC 44070000 */ mfc1 $a3, $f0 -/* 00750 80B3B6C0 0C00AC78 */ jal ActorShape_Init - -/* 00754 80B3B6C4 00000000 */ nop -/* 00758 80B3B6C8 240A00FF */ addiu $t2, $zero, 0x00FF ## $t2 = 000000FF -/* 0075C 80B3B6CC A6000016 */ sh $zero, 0x0016($s0) ## 00000016 -/* 00760 80B3B6D0 A20A00AE */ sb $t2, 0x00AE($s0) ## 000000AE -/* 00764 80B3B6D4 8FBF0024 */ lw $ra, 0x0024($sp) -.L80B3B6D8: -/* 00768 80B3B6D8 8FB00020 */ lw $s0, 0x0020($sp) -/* 0076C 80B3B6DC 27BD0050 */ addiu $sp, $sp, 0x0050 ## $sp = 00000000 -/* 00770 80B3B6E0 03E00008 */ jr $ra -/* 00774 80B3B6E4 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Wood02/EnWood02_Update.s b/asm/non_matchings/overlays/actors/ovl_En_Wood02/EnWood02_Update.s deleted file mode 100644 index 33666199cc..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Wood02/EnWood02_Update.s +++ /dev/null @@ -1,364 +0,0 @@ -.late_rodata -glabel D_80B3C060 - .word 0x477FFF00, 0x00000000, 0x00000000, 0x00000000 - -.text -glabel EnWood02_Update -/* 007B0 80B3B720 27BDFF88 */ addiu $sp, $sp, 0xFF88 ## $sp = FFFFFF88 -/* 007B4 80B3B724 AFBF003C */ sw $ra, 0x003C($sp) -/* 007B8 80B3B728 AFB20038 */ sw $s2, 0x0038($sp) -/* 007BC 80B3B72C AFB10034 */ sw $s1, 0x0034($sp) -/* 007C0 80B3B730 AFB00030 */ sw $s0, 0x0030($sp) -/* 007C4 80B3B734 90820153 */ lbu $v0, 0x0153($a0) ## 00000153 -/* 007C8 80B3B738 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001 -/* 007CC 80B3B73C 00808825 */ or $s1, $a0, $zero ## $s1 = 00000000 -/* 007D0 80B3B740 14410013 */ bne $v0, $at, .L80B3B790 -/* 007D4 80B3B744 00A09025 */ or $s2, $a1, $zero ## $s2 = 00000000 -/* 007D8 80B3B748 8C830118 */ lw $v1, 0x0118($a0) ## 00000118 -/* 007DC 80B3B74C 50600011 */ beql $v1, $zero, .L80B3B794 -/* 007E0 80B3B750 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002 -/* 007E4 80B3B754 8C8E0004 */ lw $t6, 0x0004($a0) ## 00000004 -/* 007E8 80B3B758 31CF0040 */ andi $t7, $t6, 0x0040 ## $t7 = 00000000 -/* 007EC 80B3B75C 55E00012 */ bnel $t7, $zero, .L80B3B7A8 -/* 007F0 80B3B760 8622001C */ lh $v0, 0x001C($s1) ## 0000001C -/* 007F4 80B3B764 8498014C */ lh $t8, 0x014C($a0) ## 0000014C -/* 007F8 80B3B768 9085014E */ lbu $a1, 0x014E($a0) ## 0000014E -/* 007FC 80B3B76C 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000 -/* 00800 80B3B770 07010002 */ bgez $t8, .L80B3B77C -/* 00804 80B3B774 0065C821 */ addu $t9, $v1, $a1 -/* 00808 80B3B778 24020080 */ addiu $v0, $zero, 0x0080 ## $v0 = 00000080 -.L80B3B77C: -/* 0080C 80B3B77C A322014E */ sb $v0, 0x014E($t9) ## 0000014E -/* 00810 80B3B780 0C00B55C */ jal Actor_Kill - -/* 00814 80B3B784 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00818 80B3B788 1000011D */ beq $zero, $zero, .L80B3BC00 -/* 0081C 80B3B78C 8FBF003C */ lw $ra, 0x003C($sp) -.L80B3B790: -/* 00820 80B3B790 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002 -.L80B3B794: -/* 00824 80B3B794 14410003 */ bne $v0, $at, .L80B3B7A4 -/* 00828 80B3B798 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 0082C 80B3B79C 0C2CEC25 */ jal func_80B3B094 -/* 00830 80B3B7A0 02402825 */ or $a1, $s2, $zero ## $a1 = 00000000 -.L80B3B7A4: -/* 00834 80B3B7A4 8622001C */ lh $v0, 0x001C($s1) ## 0000001C -.L80B3B7A8: -/* 00838 80B3B7A8 2841000B */ slti $at, $v0, 0x000B -/* 0083C 80B3B7AC 50200083 */ beql $at, $zero, .L80B3B9BC -/* 00840 80B3B7B0 28410017 */ slti $at, $v0, 0x0017 -/* 00844 80B3B7B4 92220169 */ lbu $v0, 0x0169($s1) ## 00000169 -/* 00848 80B3B7B8 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 0084C 80B3B7BC 24051837 */ addiu $a1, $zero, 0x1837 ## $a1 = 00001837 -/* 00850 80B3B7C0 30480002 */ andi $t0, $v0, 0x0002 ## $t0 = 00000000 -/* 00854 80B3B7C4 11000003 */ beq $t0, $zero, .L80B3B7D4 -/* 00858 80B3B7C8 3049FFFD */ andi $t1, $v0, 0xFFFD ## $t1 = 00000000 -/* 0085C 80B3B7CC 0C00BE0A */ jal Audio_PlayActorSound2 - -/* 00860 80B3B7D0 A2290169 */ sb $t1, 0x0169($s1) ## 00000169 -.L80B3B7D4: -/* 00864 80B3B7D4 862A0016 */ lh $t2, 0x0016($s1) ## 00000016 -/* 00868 80B3B7D8 51400060 */ beql $t2, $zero, .L80B3B95C -/* 0086C 80B3B7DC 3C014416 */ lui $at, 0x4416 ## $at = 44160000 -/* 00870 80B3B7E0 8E2C0024 */ lw $t4, 0x0024($s1) ## 00000024 -/* 00874 80B3B7E4 27A60058 */ addiu $a2, $sp, 0x0058 ## $a2 = FFFFFFE0 -/* 00878 80B3B7E8 3C014348 */ lui $at, 0x4348 ## $at = 43480000 -/* 0087C 80B3B7EC ACCC0000 */ sw $t4, 0x0000($a2) ## FFFFFFE0 -/* 00880 80B3B7F0 8E2B0028 */ lw $t3, 0x0028($s1) ## 00000028 -/* 00884 80B3B7F4 44813000 */ mtc1 $at, $f6 ## $f6 = 200.00 -/* 00888 80B3B7F8 ACCB0004 */ sw $t3, 0x0004($a2) ## FFFFFFE4 -/* 0088C 80B3B7FC 8E2C002C */ lw $t4, 0x002C($s1) ## 0000002C -/* 00890 80B3B800 ACCC0008 */ sw $t4, 0x0008($a2) ## FFFFFFE8 -/* 00894 80B3B804 C7A4005C */ lwc1 $f4, 0x005C($sp) -/* 00898 80B3B808 46062200 */ add.s $f8, $f4, $f6 -/* 0089C 80B3B80C E7A8005C */ swc1 $f8, 0x005C($sp) -/* 008A0 80B3B810 8630014C */ lh $s0, 0x014C($s1) ## 0000014C -/* 008A4 80B3B814 0600000A */ bltz $s0, .L80B3B840 -/* 008A8 80B3B818 2A010064 */ slti $at, $s0, 0x0064 -/* 008AC 80B3B81C 10200008 */ beq $at, $zero, .L80B3B840 -/* 008B0 80B3B820 02402025 */ or $a0, $s2, $zero ## $a0 = 00000000 -/* 008B4 80B3B824 02003825 */ or $a3, $s0, $zero ## $a3 = 00000000 -/* 008B8 80B3B828 00073D00 */ sll $a3, $a3, 20 -/* 008BC 80B3B82C 00073C03 */ sra $a3, $a3, 16 -/* 008C0 80B3B830 0C007E50 */ jal Item_DropCollectibleRandom - -/* 008C4 80B3B834 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -/* 008C8 80B3B838 10000019 */ beq $zero, $zero, .L80B3B8A0 -/* 008CC 80B3B83C 8630014C */ lh $s0, 0x014C($s1) ## 0000014C -.L80B3B840: -/* 008D0 80B3B840 86220018 */ lh $v0, 0x0018($s1) ## 00000018 -/* 008D4 80B3B844 10400016 */ beq $v0, $zero, .L80B3B8A0 -/* 008D8 80B3B848 304D1FFF */ andi $t5, $v0, 0x1FFF ## $t5 = 00000000 -/* 008DC 80B3B84C A62D0018 */ sh $t5, 0x0018($s1) ## 00000018 -/* 008E0 80B3B850 862E0018 */ lh $t6, 0x0018($s1) ## 00000018 -/* 008E4 80B3B854 26441C24 */ addiu $a0, $s2, 0x1C24 ## $a0 = 00001C24 -/* 008E8 80B3B858 02402825 */ or $a1, $s2, $zero ## $a1 = 00000000 -/* 008EC 80B3B85C 35CFE000 */ ori $t7, $t6, 0xE000 ## $t7 = 0000E000 -/* 008F0 80B3B860 A62F0018 */ sh $t7, 0x0018($s1) ## 00000018 -/* 008F4 80B3B864 C7B00060 */ lwc1 $f16, 0x0060($sp) -/* 008F8 80B3B868 C7AA005C */ lwc1 $f10, 0x005C($sp) -/* 008FC 80B3B86C AFA00018 */ sw $zero, 0x0018($sp) -/* 00900 80B3B870 E7B00014 */ swc1 $f16, 0x0014($sp) -/* 00904 80B3B874 E7AA0010 */ swc1 $f10, 0x0010($sp) -/* 00908 80B3B878 86380032 */ lh $t8, 0x0032($s1) ## 00000032 -/* 0090C 80B3B87C AFA00020 */ sw $zero, 0x0020($sp) -/* 00910 80B3B880 8FA70058 */ lw $a3, 0x0058($sp) -/* 00914 80B3B884 AFB8001C */ sw $t8, 0x001C($sp) -/* 00918 80B3B888 86390018 */ lh $t9, 0x0018($s1) ## 00000018 -/* 0091C 80B3B88C 24060095 */ addiu $a2, $zero, 0x0095 ## $a2 = 00000095 -/* 00920 80B3B890 0C00C7D4 */ jal Actor_Spawn - ## ActorSpawn -/* 00924 80B3B894 AFB90024 */ sw $t9, 0x0024($sp) -/* 00928 80B3B898 A6200018 */ sh $zero, 0x0018($s1) ## 00000018 -/* 0092C 80B3B89C 8630014C */ lh $s0, 0x014C($s1) ## 0000014C -.L80B3B8A0: -/* 00930 80B3B8A0 2A01FFFF */ slti $at, $s0, 0xFFFF -/* 00934 80B3B8A4 14200029 */ bne $at, $zero, .L80B3B94C -/* 00938 80B3B8A8 24030017 */ addiu $v1, $zero, 0x0017 ## $v1 = 00000017 -/* 0093C 80B3B8AC 8622001C */ lh $v0, 0x001C($s1) ## 0000001C -/* 00940 80B3B8B0 26481C24 */ addiu $t0, $s2, 0x1C24 ## $t0 = 00001C24 -/* 00944 80B3B8B4 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006 -/* 00948 80B3B8B8 10410004 */ beq $v0, $at, .L80B3B8CC -/* 0094C 80B3B8BC AFA80040 */ sw $t0, 0x0040($sp) -/* 00950 80B3B8C0 24010007 */ addiu $at, $zero, 0x0007 ## $at = 00000007 -/* 00954 80B3B8C4 54410003 */ bnel $v0, $at, .L80B3B8D4 -/* 00958 80B3B8C8 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -.L80B3B8CC: -/* 0095C 80B3B8CC 24030018 */ addiu $v1, $zero, 0x0018 ## $v1 = 00000018 -/* 00960 80B3B8D0 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -.L80B3B8D4: -/* 00964 80B3B8D4 24052877 */ addiu $a1, $zero, 0x2877 ## $a1 = 00002877 -/* 00968 80B3B8D8 0C00BE0A */ jal Audio_PlayActorSound2 - -/* 0096C 80B3B8DC AFA30050 */ sw $v1, 0x0050($sp) -/* 00970 80B3B8E0 8FA30050 */ lw $v1, 0x0050($sp) -/* 00974 80B3B8E4 24100003 */ addiu $s0, $zero, 0x0003 ## $s0 = 00000003 -/* 00978 80B3B8E8 00034C00 */ sll $t1, $v1, 16 -/* 0097C 80B3B8EC 00095403 */ sra $t2, $t1, 16 -/* 00980 80B3B8F0 AFAA0044 */ sw $t2, 0x0044($sp) -.L80B3B8F4: -/* 00984 80B3B8F4 3C0180B4 */ lui $at, %hi(D_80B3C060) ## $at = 80B40000 -/* 00988 80B3B8F8 0C00CFC8 */ jal Rand_CenteredFloat - -/* 0098C 80B3B8FC C42CC060 */ lwc1 $f12, %lo(D_80B3C060)($at) -/* 00990 80B3B900 4600018D */ trunc.w.s $f6, $f0 -/* 00994 80B3B904 C7B2005C */ lwc1 $f18, 0x005C($sp) -/* 00998 80B3B908 C7A40060 */ lwc1 $f4, 0x0060($sp) -/* 0099C 80B3B90C 8FAD0044 */ lw $t5, 0x0044($sp) -/* 009A0 80B3B910 440C3000 */ mfc1 $t4, $f6 -/* 009A4 80B3B914 8FA40040 */ lw $a0, 0x0040($sp) -/* 009A8 80B3B918 02402825 */ or $a1, $s2, $zero ## $a1 = 00000000 -/* 009AC 80B3B91C 24060077 */ addiu $a2, $zero, 0x0077 ## $a2 = 00000077 -/* 009B0 80B3B920 8FA70058 */ lw $a3, 0x0058($sp) -/* 009B4 80B3B924 AFA00018 */ sw $zero, 0x0018($sp) -/* 009B8 80B3B928 AFA00020 */ sw $zero, 0x0020($sp) -/* 009BC 80B3B92C E7B20010 */ swc1 $f18, 0x0010($sp) -/* 009C0 80B3B930 E7A40014 */ swc1 $f4, 0x0014($sp) -/* 009C4 80B3B934 AFAD0024 */ sw $t5, 0x0024($sp) -/* 009C8 80B3B938 0C00C7D4 */ jal Actor_Spawn - ## ActorSpawn -/* 009CC 80B3B93C AFAC001C */ sw $t4, 0x001C($sp) -/* 009D0 80B3B940 2610FFFF */ addiu $s0, $s0, 0xFFFF ## $s0 = 00000002 -/* 009D4 80B3B944 0601FFEB */ bgez $s0, .L80B3B8F4 -/* 009D8 80B3B948 00000000 */ nop -.L80B3B94C: -/* 009DC 80B3B94C 240EFFEB */ addiu $t6, $zero, 0xFFEB ## $t6 = FFFFFFEB -/* 009E0 80B3B950 A62E014C */ sh $t6, 0x014C($s1) ## 0000014C -/* 009E4 80B3B954 A6200016 */ sh $zero, 0x0016($s1) ## 00000016 -/* 009E8 80B3B958 3C014416 */ lui $at, 0x4416 ## $at = 44160000 -.L80B3B95C: -/* 009EC 80B3B95C 44815000 */ mtc1 $at, $f10 ## $f10 = 600.00 -/* 009F0 80B3B960 C6280090 */ lwc1 $f8, 0x0090($s1) ## 00000090 -/* 009F4 80B3B964 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 009F8 80B3B968 26300158 */ addiu $s0, $s1, 0x0158 ## $s0 = 00000158 -/* 009FC 80B3B96C 460A403C */ c.lt.s $f8, $f10 -/* 00A00 80B3B970 00000000 */ nop -/* 00A04 80B3B974 45020079 */ bc1fl .L80B3BB5C -/* 00A08 80B3B978 8630014C */ lh $s0, 0x014C($s1) ## 0000014C -/* 00A0C 80B3B97C 0C0189B7 */ jal Collider_CylinderUpdate - -/* 00A10 80B3B980 02002825 */ or $a1, $s0, $zero ## $a1 = 00000158 -/* 00A14 80B3B984 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 00A18 80B3B988 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60 -/* 00A1C 80B3B98C 02412821 */ addu $a1, $s2, $at -/* 00A20 80B3B990 AFA50044 */ sw $a1, 0x0044($sp) -/* 00A24 80B3B994 02402025 */ or $a0, $s2, $zero ## $a0 = 00000000 -/* 00A28 80B3B998 0C01767D */ jal CollisionCheck_SetAC - ## CollisionCheck_setAC -/* 00A2C 80B3B99C 02003025 */ or $a2, $s0, $zero ## $a2 = 00000158 -/* 00A30 80B3B9A0 8FA50044 */ lw $a1, 0x0044($sp) -/* 00A34 80B3B9A4 02402025 */ or $a0, $s2, $zero ## $a0 = 00000000 -/* 00A38 80B3B9A8 0C017713 */ jal CollisionCheck_SetOC - ## CollisionCheck_setOT -/* 00A3C 80B3B9AC 02003025 */ or $a2, $s0, $zero ## $a2 = 00000158 -/* 00A40 80B3B9B0 1000006A */ beq $zero, $zero, .L80B3BB5C -/* 00A44 80B3B9B4 8630014C */ lh $s0, 0x014C($s1) ## 0000014C -/* 00A48 80B3B9B8 28410017 */ slti $at, $v0, 0x0017 -.L80B3B9BC: -/* 00A4C 80B3B9BC 1020003D */ beq $at, $zero, .L80B3BAB4 -/* 00A50 80B3B9C0 2624005C */ addiu $a0, $s1, 0x005C ## $a0 = 0000005C -/* 00A54 80B3B9C4 8630014C */ lh $s0, 0x014C($s1) ## 0000014C -/* 00A58 80B3B9C8 8E421C44 */ lw $v0, 0x1C44($s2) ## 00001C44 -/* 00A5C 80B3B9CC 2A01FFFF */ slti $at, $s0, 0xFFFF -/* 00A60 80B3B9D0 54200062 */ bnel $at, $zero, .L80B3BB5C -/* 00A64 80B3B9D4 8630014C */ lh $s0, 0x014C($s1) ## 0000014C -/* 00A68 80B3B9D8 8C430440 */ lw $v1, 0x0440($v0) ## 00000440 -/* 00A6C 80B3B9DC 14600011 */ bne $v1, $zero, .L80B3BA24 -/* 00A70 80B3B9E0 00000000 */ nop -/* 00A74 80B3B9E4 C630008C */ lwc1 $f16, 0x008C($s1) ## 0000008C -/* 00A78 80B3B9E8 3C014034 */ lui $at, 0x4034 ## $at = 40340000 -/* 00A7C 80B3B9EC 44819800 */ mtc1 $at, $f19 ## $f19 = 2.81 -/* 00A80 80B3B9F0 46008021 */ cvt.d.s $f0, $f16 -/* 00A84 80B3B9F4 44809000 */ mtc1 $zero, $f18 ## $f18 = 0.00 -/* 00A88 80B3B9F8 46200004 */ sqrt.d $f0, $f0 -/* 00A8C 80B3B9FC 4632003C */ c.lt.d $f0, $f18 -/* 00A90 80B3BA00 00000000 */ nop -/* 00A94 80B3BA04 45000007 */ bc1f .L80B3BA24 -/* 00A98 80B3BA08 00000000 */ nop -/* 00A9C 80B3BA0C 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00 -/* 00AA0 80B3BA10 C4460838 */ lwc1 $f6, 0x0838($v0) ## 00000838 -/* 00AA4 80B3BA14 46062032 */ c.eq.s $f4, $f6 -/* 00AA8 80B3BA18 00000000 */ nop -/* 00AAC 80B3BA1C 45000013 */ bc1f .L80B3BA6C -/* 00AB0 80B3BA20 00000000 */ nop -.L80B3BA24: -/* 00AB4 80B3BA24 5060004D */ beql $v1, $zero, .L80B3BB5C -/* 00AB8 80B3BA28 8630014C */ lh $s0, 0x014C($s1) ## 0000014C -/* 00ABC 80B3BA2C C628008C */ lwc1 $f8, 0x008C($s1) ## 0000008C -/* 00AC0 80B3BA30 3C01404E */ lui $at, 0x404E ## $at = 404E0000 -/* 00AC4 80B3BA34 44815800 */ mtc1 $at, $f11 ## $f11 = 3.22 -/* 00AC8 80B3BA38 46004021 */ cvt.d.s $f0, $f8 -/* 00ACC 80B3BA3C 44805000 */ mtc1 $zero, $f10 ## $f10 = 0.00 -/* 00AD0 80B3BA40 46200004 */ sqrt.d $f0, $f0 -/* 00AD4 80B3BA44 462A003C */ c.lt.d $f0, $f10 -/* 00AD8 80B3BA48 00000000 */ nop -/* 00ADC 80B3BA4C 45020043 */ bc1fl .L80B3BB5C -/* 00AE0 80B3BA50 8630014C */ lh $s0, 0x014C($s1) ## 0000014C -/* 00AE4 80B3BA54 44808000 */ mtc1 $zero, $f16 ## $f16 = 0.00 -/* 00AE8 80B3BA58 C4720068 */ lwc1 $f18, 0x0068($v1) ## 00000068 -/* 00AEC 80B3BA5C 46128032 */ c.eq.s $f16, $f18 -/* 00AF0 80B3BA60 00000000 */ nop -/* 00AF4 80B3BA64 4503003D */ bc1tl .L80B3BB5C -/* 00AF8 80B3BA68 8630014C */ lh $s0, 0x014C($s1) ## 0000014C -.L80B3BA6C: -/* 00AFC 80B3BA6C 0600000A */ bltz $s0, .L80B3BA98 -/* 00B00 80B3BA70 2A010064 */ slti $at, $s0, 0x0064 -/* 00B04 80B3BA74 10200008 */ beq $at, $zero, .L80B3BA98 -/* 00B08 80B3BA78 02402025 */ or $a0, $s2, $zero ## $a0 = 00000000 -/* 00B0C 80B3BA7C 00103900 */ sll $a3, $s0, 4 -/* 00B10 80B3BA80 34E78000 */ ori $a3, $a3, 0x8000 ## $a3 = 00008000 -/* 00B14 80B3BA84 00073C00 */ sll $a3, $a3, 16 -/* 00B18 80B3BA88 00073C03 */ sra $a3, $a3, 16 -/* 00B1C 80B3BA8C 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -/* 00B20 80B3BA90 0C007E50 */ jal Item_DropCollectibleRandom - -/* 00B24 80B3BA94 26260024 */ addiu $a2, $s1, 0x0024 ## $a2 = 00000024 -.L80B3BA98: -/* 00B28 80B3BA98 240FFFEB */ addiu $t7, $zero, 0xFFEB ## $t7 = FFFFFFEB -/* 00B2C 80B3BA9C A62F014C */ sh $t7, 0x014C($s1) ## 0000014C -/* 00B30 80B3BAA0 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00B34 80B3BAA4 0C00BE0A */ jal Audio_PlayActorSound2 - -/* 00B38 80B3BAA8 24052877 */ addiu $a1, $zero, 0x2877 ## $a1 = 00002877 -/* 00B3C 80B3BAAC 1000002B */ beq $zero, $zero, .L80B3BB5C -/* 00B40 80B3BAB0 8630014C */ lh $s0, 0x014C($s1) ## 0000014C -.L80B3BAB4: -/* 00B44 80B3BAB4 8638014C */ lh $t8, 0x014C($s1) ## 0000014C -/* 00B48 80B3BAB8 3C073D4C */ lui $a3, 0x3D4C ## $a3 = 3D4C0000 -/* 00B4C 80B3BABC 34E7CCCC */ ori $a3, $a3, 0xCCCC ## $a3 = 3D4CCCCC -/* 00B50 80B3BAC0 27190001 */ addiu $t9, $t8, 0x0001 ## $t9 = 00000001 -/* 00B54 80B3BAC4 A639014C */ sh $t9, 0x014C($s1) ## 0000014C -/* 00B58 80B3BAC8 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000 -/* 00B5C 80B3BACC 0C01E107 */ jal Math_ApproachF - -/* 00B60 80B3BAD0 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000 -/* 00B64 80B3BAD4 3C073D4C */ lui $a3, 0x3D4C ## $a3 = 3D4C0000 -/* 00B68 80B3BAD8 34E7CCCC */ ori $a3, $a3, 0xCCCC ## $a3 = 3D4CCCCC -/* 00B6C 80B3BADC 26240064 */ addiu $a0, $s1, 0x0064 ## $a0 = 00000064 -/* 00B70 80B3BAE0 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000 -/* 00B74 80B3BAE4 0C01E107 */ jal Math_ApproachF - -/* 00B78 80B3BAE8 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000 -/* 00B7C 80B3BAEC 0C00B5FB */ jal func_8002D7EC -/* 00B80 80B3BAF0 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00B84 80B3BAF4 8624014C */ lh $a0, 0x014C($s1) ## 0000014C -/* 00B88 80B3BAF8 00800821 */ addu $at, $a0, $zero -/* 00B8C 80B3BAFC 00042080 */ sll $a0, $a0, 2 -/* 00B90 80B3BB00 00812023 */ subu $a0, $a0, $at -/* 00B94 80B3BB04 00042100 */ sll $a0, $a0, 4 -/* 00B98 80B3BB08 00812023 */ subu $a0, $a0, $at -/* 00B9C 80B3BB0C 000420C0 */ sll $a0, $a0, 3 -/* 00BA0 80B3BB10 00812023 */ subu $a0, $a0, $at -/* 00BA4 80B3BB14 000420C0 */ sll $a0, $a0, 3 -/* 00BA8 80B3BB18 00042400 */ sll $a0, $a0, 16 -/* 00BAC 80B3BB1C 0C01DE1C */ jal Math_SinS - ## sins? -/* 00BB0 80B3BB20 00042403 */ sra $a0, $a0, 16 -/* 00BB4 80B3BB24 3C014680 */ lui $at, 0x4680 ## $at = 46800000 -/* 00BB8 80B3BB28 44812000 */ mtc1 $at, $f4 ## $f4 = 16384.00 -/* 00BBC 80B3BB2C 922A014E */ lbu $t2, 0x014E($s1) ## 0000014E -/* 00BC0 80B3BB30 46040182 */ mul.s $f6, $f0, $f4 -/* 00BC4 80B3BB34 254BFFFF */ addiu $t3, $t2, 0xFFFF ## $t3 = FFFFFFFF -/* 00BC8 80B3BB38 316C00FF */ andi $t4, $t3, 0x00FF ## $t4 = 000000FF -/* 00BCC 80B3BB3C A22B014E */ sb $t3, 0x014E($s1) ## 0000014E -/* 00BD0 80B3BB40 4600320D */ trunc.w.s $f8, $f6 -/* 00BD4 80B3BB44 44094000 */ mfc1 $t1, $f8 -/* 00BD8 80B3BB48 15800003 */ bne $t4, $zero, .L80B3BB58 -/* 00BDC 80B3BB4C A62900B8 */ sh $t1, 0x00B8($s1) ## 000000B8 -/* 00BE0 80B3BB50 0C00B55C */ jal Actor_Kill - -/* 00BE4 80B3BB54 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -.L80B3BB58: -/* 00BE8 80B3BB58 8630014C */ lh $s0, 0x014C($s1) ## 0000014C -.L80B3BB5C: -/* 00BEC 80B3BB5C 2A01FFFF */ slti $at, $s0, 0xFFFF -/* 00BF0 80B3BB60 10200026 */ beq $at, $zero, .L80B3BBFC -/* 00BF4 80B3BB64 260D0001 */ addiu $t5, $s0, 0x0001 ## $t5 = 00000159 -/* 00BF8 80B3BB68 A62D014C */ sh $t5, 0x014C($s1) ## 0000014C -/* 00BFC 80B3BB6C 8624014C */ lh $a0, 0x014C($s1) ## 0000014C -/* 00C00 80B3BB70 24013332 */ addiu $at, $zero, 0x3332 ## $at = 00003332 -/* 00C04 80B3BB74 3884FFFF */ xori $a0, $a0, 0xFFFF ## $a0 = FFFFFFFF -/* 00C08 80B3BB78 00810019 */ multu $a0, $at -/* 00C0C 80B3BB7C 00002012 */ mflo $a0 -/* 00C10 80B3BB80 00042400 */ sll $a0, $a0, 16 -/* 00C14 80B3BB84 0C01DE1C */ jal Math_SinS - ## sins? -/* 00C18 80B3BB88 00042403 */ sra $a0, $a0, 16 -/* 00C1C 80B3BB8C 3C01437A */ lui $at, 0x437A ## $at = 437A0000 -/* 00C20 80B3BB90 44815000 */ mtc1 $at, $f10 ## $f10 = 250.00 -/* 00C24 80B3BB94 00000000 */ nop -/* 00C28 80B3BB98 460A0402 */ mul.s $f16, $f0, $f10 -/* 00C2C 80B3BB9C E7B0006C */ swc1 $f16, 0x006C($sp) -/* 00C30 80B3BBA0 862F00B6 */ lh $t7, 0x00B6($s1) ## 000000B6 -/* 00C34 80B3BBA4 862E008A */ lh $t6, 0x008A($s1) ## 0000008A -/* 00C38 80B3BBA8 01CF2023 */ subu $a0, $t6, $t7 -/* 00C3C 80B3BBAC 00042400 */ sll $a0, $a0, 16 -/* 00C40 80B3BBB0 0C01DE0D */ jal Math_CosS - ## coss? -/* 00C44 80B3BBB4 00042403 */ sra $a0, $a0, 16 -/* 00C48 80B3BBB8 C7B2006C */ lwc1 $f18, 0x006C($sp) -/* 00C4C 80B3BBBC 8628008A */ lh $t0, 0x008A($s1) ## 0000008A -/* 00C50 80B3BBC0 862900B6 */ lh $t1, 0x00B6($s1) ## 000000B6 -/* 00C54 80B3BBC4 46120102 */ mul.s $f4, $f0, $f18 -/* 00C58 80B3BBC8 01092023 */ subu $a0, $t0, $t1 -/* 00C5C 80B3BBCC 00042400 */ sll $a0, $a0, 16 -/* 00C60 80B3BBD0 00042403 */ sra $a0, $a0, 16 -/* 00C64 80B3BBD4 4600218D */ trunc.w.s $f6, $f4 -/* 00C68 80B3BBD8 44193000 */ mfc1 $t9, $f6 -/* 00C6C 80B3BBDC 0C01DE1C */ jal Math_SinS - ## sins? -/* 00C70 80B3BBE0 A63900B4 */ sh $t9, 0x00B4($s1) ## 000000B4 -/* 00C74 80B3BBE4 C7A8006C */ lwc1 $f8, 0x006C($sp) -/* 00C78 80B3BBE8 46080282 */ mul.s $f10, $f0, $f8 -/* 00C7C 80B3BBEC 4600540D */ trunc.w.s $f16, $f10 -/* 00C80 80B3BBF0 440B8000 */ mfc1 $t3, $f16 -/* 00C84 80B3BBF4 00000000 */ nop -/* 00C88 80B3BBF8 A62B00B8 */ sh $t3, 0x00B8($s1) ## 000000B8 -.L80B3BBFC: -/* 00C8C 80B3BBFC 8FBF003C */ lw $ra, 0x003C($sp) -.L80B3BC00: -/* 00C90 80B3BC00 8FB00030 */ lw $s0, 0x0030($sp) -/* 00C94 80B3BC04 8FB10034 */ lw $s1, 0x0034($sp) -/* 00C98 80B3BC08 8FB20038 */ lw $s2, 0x0038($sp) -/* 00C9C 80B3BC0C 03E00008 */ jr $ra -/* 00CA0 80B3BC10 27BD0078 */ addiu $sp, $sp, 0x0078 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Wood02/func_80B3AF70.s b/asm/non_matchings/overlays/actors/ovl_En_Wood02/func_80B3AF70.s deleted file mode 100644 index 3f748e5394..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Wood02/func_80B3AF70.s +++ /dev/null @@ -1,77 +0,0 @@ -glabel func_80B3AF70 -/* 00000 80B3AF70 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 00004 80B3AF74 AFB00018 */ sw $s0, 0x0018($sp) -/* 00008 80B3AF78 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 0000C 80B3AF7C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00010 80B3AF80 34211D60 */ ori $at, $at, 0x1D60 ## $at = 00011D60 -/* 00014 80B3AF84 AFA50024 */ sw $a1, 0x0024($sp) -/* 00018 80B3AF88 00A12021 */ addu $a0, $a1, $at -/* 0001C 80B3AF8C AFBF001C */ sw $ra, 0x001C($sp) -/* 00020 80B3AF90 AFA60028 */ sw $a2, 0x0028($sp) -/* 00024 80B3AF94 00C02825 */ or $a1, $a2, $zero ## $a1 = 00000000 -/* 00028 80B3AF98 260600E4 */ addiu $a2, $s0, 0x00E4 ## $a2 = 000000E4 -/* 0002C 80B3AF9C 0C029B84 */ jal SkinMatrix_Vec3fMtxFMultXYZW -/* 00030 80B3AFA0 260700F0 */ addiu $a3, $s0, 0x00F0 ## $a3 = 000000F0 -/* 00034 80B3AFA4 C60200F0 */ lwc1 $f2, 0x00F0($s0) ## 000000F0 -/* 00038 80B3AFA8 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00 -/* 0003C 80B3AFAC 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 -/* 00040 80B3AFB0 8FBF001C */ lw $ra, 0x001C($sp) -/* 00044 80B3AFB4 46022032 */ c.eq.s $f4, $f2 -/* 00048 80B3AFB8 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000 -/* 0004C 80B3AFBC 45020008 */ bc1fl .L80B3AFE0 -/* 00050 80B3AFC0 44817000 */ mtc1 $at, $f14 ## $f14 = 1.00 -/* 00054 80B3AFC4 3C01447A */ lui $at, 0x447A ## $at = 447A0000 -/* 00058 80B3AFC8 44816000 */ mtc1 $at, $f12 ## $f12 = 1000.00 -/* 0005C 80B3AFCC 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 -/* 00060 80B3AFD0 44817000 */ mtc1 $at, $f14 ## $f14 = 1.00 -/* 00064 80B3AFD4 10000006 */ beq $zero, $zero, .L80B3AFF0 -/* 00068 80B3AFD8 C60200F8 */ lwc1 $f2, 0x00F8($s0) ## 000000F8 -/* 0006C 80B3AFDC 44817000 */ mtc1 $at, $f14 ## $f14 = 1.00 -.L80B3AFE0: -/* 00070 80B3AFE0 00000000 */ nop -/* 00074 80B3AFE4 46027003 */ div.s $f0, $f14, $f2 -/* 00078 80B3AFE8 46000305 */ abs.s $f12, $f0 -/* 0007C 80B3AFEC C60200F8 */ lwc1 $f2, 0x00F8($s0) ## 000000F8 -.L80B3AFF0: -/* 00080 80B3AFF0 C60000EC */ lwc1 $f0, 0x00EC($s0) ## 000000EC -/* 00084 80B3AFF4 46001187 */ neg.s $f6, $f2 -/* 00088 80B3AFF8 4600303C */ c.lt.s $f6, $f0 -/* 0008C 80B3AFFC 00000000 */ nop -/* 00090 80B3B000 45000021 */ bc1f .L80B3B088 -/* 00094 80B3B004 00000000 */ nop -/* 00098 80B3B008 C60800F4 */ lwc1 $f8, 0x00F4($s0) ## 000000F4 -/* 0009C 80B3B00C 46024280 */ add.s $f10, $f8, $f2 -/* 000A0 80B3B010 460A003C */ c.lt.s $f0, $f10 -/* 000A4 80B3B014 00000000 */ nop -/* 000A8 80B3B018 4500001B */ bc1f .L80B3B088 -/* 000AC 80B3B01C 00000000 */ nop -/* 000B0 80B3B020 C60000E4 */ lwc1 $f0, 0x00E4($s0) ## 000000E4 -/* 000B4 80B3B024 46000005 */ abs.s $f0, $f0 -/* 000B8 80B3B028 46020401 */ sub.s $f16, $f0, $f2 -/* 000BC 80B3B02C 460C8482 */ mul.s $f18, $f16, $f12 -/* 000C0 80B3B030 460E903C */ c.lt.s $f18, $f14 -/* 000C4 80B3B034 00000000 */ nop -/* 000C8 80B3B038 45000013 */ bc1f .L80B3B088 -/* 000CC 80B3B03C 00000000 */ nop -/* 000D0 80B3B040 C60000E8 */ lwc1 $f0, 0x00E8($s0) ## 000000E8 -/* 000D4 80B3B044 C60600FC */ lwc1 $f6, 0x00FC($s0) ## 000000FC -/* 000D8 80B3B048 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000 -/* 000DC 80B3B04C 44812000 */ mtc1 $at, $f4 ## $f4 = -1.00 -/* 000E0 80B3B050 46060200 */ add.s $f8, $f0, $f6 -/* 000E4 80B3B054 460C4282 */ mul.s $f10, $f8, $f12 -/* 000E8 80B3B058 460A203C */ c.lt.s $f4, $f10 -/* 000EC 80B3B05C 00000000 */ nop -/* 000F0 80B3B060 45000009 */ bc1f .L80B3B088 -/* 000F4 80B3B064 00000000 */ nop -/* 000F8 80B3B068 46020401 */ sub.s $f16, $f0, $f2 -/* 000FC 80B3B06C 460C8482 */ mul.s $f18, $f16, $f12 -/* 00100 80B3B070 460E903C */ c.lt.s $f18, $f14 -/* 00104 80B3B074 00000000 */ nop -/* 00108 80B3B078 45000003 */ bc1f .L80B3B088 -/* 0010C 80B3B07C 00000000 */ nop -/* 00110 80B3B080 10000001 */ beq $zero, $zero, .L80B3B088 -/* 00114 80B3B084 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001 -.L80B3B088: -/* 00118 80B3B088 8FB00018 */ lw $s0, 0x0018($sp) -/* 0011C 80B3B08C 03E00008 */ jr $ra -/* 00120 80B3B090 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Wood02/func_80B3B094.s b/asm/non_matchings/overlays/actors/ovl_En_Wood02/func_80B3B094.s deleted file mode 100644 index 0fb77a76b2..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Wood02/func_80B3B094.s +++ /dev/null @@ -1,144 +0,0 @@ -glabel func_80B3B094 -/* 00124 80B3B094 27BDFF70 */ addiu $sp, $sp, 0xFF70 ## $sp = FFFFFF70 -/* 00128 80B3B098 AFBE0058 */ sw $s8, 0x0058($sp) -/* 0012C 80B3B09C AFB70054 */ sw $s7, 0x0054($sp) -/* 00130 80B3B0A0 AFB60050 */ sw $s6, 0x0050($sp) -/* 00134 80B3B0A4 AFB30044 */ sw $s3, 0x0044($sp) -/* 00138 80B3B0A8 AFB20040 */ sw $s2, 0x0040($sp) -/* 0013C 80B3B0AC AFB00038 */ sw $s0, 0x0038($sp) -/* 00140 80B3B0B0 3C1780B4 */ lui $s7, %hi(D_80B3C1D0) ## $s7 = 80B40000 -/* 00144 80B3B0B4 3C1E80B4 */ lui $s8, %hi(D_80B3C1D4) ## $s8 = 80B40000 -/* 00148 80B3B0B8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 0014C 80B3B0BC 00A0B025 */ or $s6, $a1, $zero ## $s6 = 00000000 -/* 00150 80B3B0C0 AFBF005C */ sw $ra, 0x005C($sp) -/* 00154 80B3B0C4 AFB5004C */ sw $s5, 0x004C($sp) -/* 00158 80B3B0C8 AFB40048 */ sw $s4, 0x0048($sp) -/* 0015C 80B3B0CC AFB1003C */ sw $s1, 0x003C($sp) -/* 00160 80B3B0D0 27DEC1D4 */ addiu $s8, $s8, %lo(D_80B3C1D4) ## $s8 = 80B3C1D4 -/* 00164 80B3B0D4 26F7C1D0 */ addiu $s7, $s7, %lo(D_80B3C1D0) ## $s7 = 80B3C1D0 -/* 00168 80B3B0D8 24920004 */ addiu $s2, $a0, 0x0004 ## $s2 = 00000004 -/* 0016C 80B3B0DC 24130004 */ addiu $s3, $zero, 0x0004 ## $s3 = 00000004 -.L80B3B0E0: -/* 00170 80B3B0E0 924E014E */ lbu $t6, 0x014E($s2) ## 00000152 -/* 00174 80B3B0E4 00008825 */ or $s1, $zero, $zero ## $s1 = 00000000 -/* 00178 80B3B0E8 0013C040 */ sll $t8, $s3, 1 -/* 0017C 80B3B0EC 31CF007F */ andi $t7, $t6, 0x007F ## $t7 = 00000000 -/* 00180 80B3B0F0 15E0005F */ bne $t7, $zero, .L80B3B270 -/* 00184 80B3B0F4 3C1980B4 */ lui $t9, %hi(D_80B3BF44) ## $t9 = 80B40000 -/* 00188 80B3B0F8 860A001C */ lh $t2, 0x001C($s0) ## 0000001C -/* 0018C 80B3B0FC 3C0980B4 */ lui $t1, %hi(D_80B3BF2C) ## $t1 = 80B40000 -/* 00190 80B3B100 2529BF2C */ addiu $t1, $t1, %lo(D_80B3BF2C) ## $t1 = 80B3BF2C -/* 00194 80B3B104 2739BF44 */ addiu $t9, $t9, %lo(D_80B3BF44) ## $t9 = 80B3BF44 -/* 00198 80B3B108 00134080 */ sll $t0, $s3, 2 -/* 0019C 80B3B10C 2401000F */ addiu $at, $zero, 0x000F ## $at = 0000000F -/* 001A0 80B3B110 0109A821 */ addu $s5, $t0, $t1 -/* 001A4 80B3B114 15410002 */ bne $t2, $at, .L80B3B120 -/* 001A8 80B3B118 0319A021 */ addu $s4, $t8, $t9 -/* 001AC 80B3B11C 24114000 */ addiu $s1, $zero, 0x4000 ## $s1 = 00004000 -.L80B3B120: -/* 001B0 80B3B120 868B0000 */ lh $t3, 0x0000($s4) ## 00000000 -/* 001B4 80B3B124 860C0032 */ lh $t4, 0x0032($s0) ## 00000032 -/* 001B8 80B3B128 016C6821 */ addu $t5, $t3, $t4 -/* 001BC 80B3B12C 01B12021 */ addu $a0, $t5, $s1 -/* 001C0 80B3B130 00042400 */ sll $a0, $a0, 16 -/* 001C4 80B3B134 0C01DE0D */ jal Math_CosS - ## coss? -/* 001C8 80B3B138 00042403 */ sra $a0, $a0, 16 -/* 001CC 80B3B13C E6E00000 */ swc1 $f0, 0x0000($s7) ## 80B3C1D0 -/* 001D0 80B3B140 860F0032 */ lh $t7, 0x0032($s0) ## 00000032 -/* 001D4 80B3B144 868E0000 */ lh $t6, 0x0000($s4) ## 00000000 -/* 001D8 80B3B148 01CFC021 */ addu $t8, $t6, $t7 -/* 001DC 80B3B14C 03112021 */ addu $a0, $t8, $s1 -/* 001E0 80B3B150 00042400 */ sll $a0, $a0, 16 -/* 001E4 80B3B154 0C01DE1C */ jal Math_SinS - ## sins? -/* 001E8 80B3B158 00042403 */ sra $a0, $a0, 16 -/* 001EC 80B3B15C E7C00000 */ swc1 $f0, 0x0000($s8) ## 80B3C1D4 -/* 001F0 80B3B160 C7C40000 */ lwc1 $f4, 0x0000($s8) ## 80B3C1D4 -/* 001F4 80B3B164 C6A20000 */ lwc1 $f2, 0x0000($s5) ## 00000000 -/* 001F8 80B3B168 C6080008 */ lwc1 $f8, 0x0008($s0) ## 00000008 -/* 001FC 80B3B16C C6F20000 */ lwc1 $f18, 0x0000($s7) ## 80B3C1D0 -/* 00200 80B3B170 46041182 */ mul.s $f6, $f2, $f4 -/* 00204 80B3B174 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00208 80B3B178 02C02825 */ or $a1, $s6, $zero ## $a1 = 00000000 -/* 0020C 80B3B17C 46121102 */ mul.s $f4, $f2, $f18 -/* 00210 80B3B180 27A6007C */ addiu $a2, $sp, 0x007C ## $a2 = FFFFFFEC -/* 00214 80B3B184 46083280 */ add.s $f10, $f6, $f8 -/* 00218 80B3B188 E7AA007C */ swc1 $f10, 0x007C($sp) -/* 0021C 80B3B18C C610000C */ lwc1 $f16, 0x000C($s0) ## 0000000C -/* 00220 80B3B190 E7B00080 */ swc1 $f16, 0x0080($sp) -/* 00224 80B3B194 C6060010 */ lwc1 $f6, 0x0010($s0) ## 00000010 -/* 00228 80B3B198 46062200 */ add.s $f8, $f4, $f6 -/* 0022C 80B3B19C 0C2CEBDC */ jal func_80B3AF70 -/* 00230 80B3B1A0 E7A80084 */ swc1 $f8, 0x0084($sp) -/* 00234 80B3B1A4 10400032 */ beq $v0, $zero, .L80B3B270 -/* 00238 80B3B1A8 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 0023C 80B3B1AC 9259014E */ lbu $t9, 0x014E($s2) ## 00000152 -/* 00240 80B3B1B0 26C41C24 */ addiu $a0, $s6, 0x1C24 ## $a0 = 00001C24 -/* 00244 80B3B1B4 02C03025 */ or $a2, $s6, $zero ## $a2 = 00000000 -/* 00248 80B3B1B8 33280080 */ andi $t0, $t9, 0x0080 ## $t0 = 00000000 -/* 0024C 80B3B1BC 11000007 */ beq $t0, $zero, .L80B3B1DC -/* 00250 80B3B1C0 24070077 */ addiu $a3, $zero, 0x0077 ## $a3 = 00000077 -/* 00254 80B3B1C4 8602001C */ lh $v0, 0x001C($s0) ## 0000001C -/* 00258 80B3B1C8 24420001 */ addiu $v0, $v0, 0x0001 ## $v0 = 00000001 -/* 0025C 80B3B1CC 3442FF00 */ ori $v0, $v0, 0xFF00 ## $v0 = 0000FF01 -/* 00260 80B3B1D0 00021400 */ sll $v0, $v0, 16 -/* 00264 80B3B1D4 10000009 */ beq $zero, $zero, .L80B3B1FC -/* 00268 80B3B1D8 00021403 */ sra $v0, $v0, 16 -.L80B3B1DC: -/* 0026C 80B3B1DC 92090154 */ lbu $t1, 0x0154($s0) ## 00000154 -/* 00270 80B3B1E0 860C001C */ lh $t4, 0x001C($s0) ## 0000001C -/* 00274 80B3B1E4 312A00F0 */ andi $t2, $t1, 0x00F0 ## $t2 = 00000000 -/* 00278 80B3B1E8 000A5900 */ sll $t3, $t2, 4 -/* 0027C 80B3B1EC 258D0001 */ addiu $t5, $t4, 0x0001 ## $t5 = 00000001 -/* 00280 80B3B1F0 016D1025 */ or $v0, $t3, $t5 ## $v0 = 00000001 -/* 00284 80B3B1F4 00021400 */ sll $v0, $v0, 16 -/* 00288 80B3B1F8 00021403 */ sra $v0, $v0, 16 -.L80B3B1FC: -/* 0028C 80B3B1FC C7AA007C */ lwc1 $f10, 0x007C($sp) -/* 00290 80B3B200 C7B00080 */ lwc1 $f16, 0x0080($sp) -/* 00294 80B3B204 C7B20084 */ lwc1 $f18, 0x0084($sp) -/* 00298 80B3B208 E7AA0010 */ swc1 $f10, 0x0010($sp) -/* 0029C 80B3B20C E7B00014 */ swc1 $f16, 0x0014($sp) -/* 002A0 80B3B210 E7B20018 */ swc1 $f18, 0x0018($sp) -/* 002A4 80B3B214 860E0030 */ lh $t6, 0x0030($s0) ## 00000030 -/* 002A8 80B3B218 868F0000 */ lh $t7, 0x0000($s4) ## 00000000 -/* 002AC 80B3B21C AFA20028 */ sw $v0, 0x0028($sp) -/* 002B0 80B3B220 AFA00024 */ sw $zero, 0x0024($sp) -/* 002B4 80B3B224 AFAE001C */ sw $t6, 0x001C($sp) -/* 002B8 80B3B228 0C00C916 */ jal Actor_SpawnAsChild - -/* 002BC 80B3B22C AFAF0020 */ sw $t7, 0x0020($sp) -/* 002C0 80B3B230 5040000D */ beql $v0, $zero, .L80B3B268 -/* 002C4 80B3B234 924A014E */ lbu $t2, 0x014E($s2) ## 00000152 -/* 002C8 80B3B238 A053014E */ sb $s3, 0x014E($v0) ## 0000014E -/* 002CC 80B3B23C 9258014E */ lbu $t8, 0x014E($s2) ## 00000152 -/* 002D0 80B3B240 37190001 */ ori $t9, $t8, 0x0001 ## $t9 = 00000001 -/* 002D4 80B3B244 A259014E */ sb $t9, 0x014E($s2) ## 00000152 -/* 002D8 80B3B248 8E0900E4 */ lw $t1, 0x00E4($s0) ## 000000E4 -/* 002DC 80B3B24C AC4900E4 */ sw $t1, 0x00E4($v0) ## 000000E4 -/* 002E0 80B3B250 8E0800E8 */ lw $t0, 0x00E8($s0) ## 000000E8 -/* 002E4 80B3B254 AC4800E8 */ sw $t0, 0x00E8($v0) ## 000000E8 -/* 002E8 80B3B258 8E0900EC */ lw $t1, 0x00EC($s0) ## 000000EC -/* 002EC 80B3B25C 10000004 */ beq $zero, $zero, .L80B3B270 -/* 002F0 80B3B260 AC4900EC */ sw $t1, 0x00EC($v0) ## 000000EC -/* 002F4 80B3B264 924A014E */ lbu $t2, 0x014E($s2) ## 00000152 -.L80B3B268: -/* 002F8 80B3B268 314C0080 */ andi $t4, $t2, 0x0080 ## $t4 = 00000000 -/* 002FC 80B3B26C A24C014E */ sb $t4, 0x014E($s2) ## 00000152 -.L80B3B270: -/* 00300 80B3B270 2673FFFF */ addiu $s3, $s3, 0xFFFF ## $s3 = 00000003 -/* 00304 80B3B274 0661FF9A */ bgez $s3, .L80B3B0E0 -/* 00308 80B3B278 2652FFFF */ addiu $s2, $s2, 0xFFFF ## $s2 = 00000003 -/* 0030C 80B3B27C 8FBF005C */ lw $ra, 0x005C($sp) -/* 00310 80B3B280 8FB00038 */ lw $s0, 0x0038($sp) -/* 00314 80B3B284 8FB1003C */ lw $s1, 0x003C($sp) -/* 00318 80B3B288 8FB20040 */ lw $s2, 0x0040($sp) -/* 0031C 80B3B28C 8FB30044 */ lw $s3, 0x0044($sp) -/* 00320 80B3B290 8FB40048 */ lw $s4, 0x0048($sp) -/* 00324 80B3B294 8FB5004C */ lw $s5, 0x004C($sp) -/* 00328 80B3B298 8FB60050 */ lw $s6, 0x0050($sp) -/* 0032C 80B3B29C 8FB70054 */ lw $s7, 0x0054($sp) -/* 00330 80B3B2A0 8FBE0058 */ lw $s8, 0x0058($sp) -/* 00334 80B3B2A4 03E00008 */ jr $ra -/* 00338 80B3B2A8 27BD0090 */ addiu $sp, $sp, 0x0090 ## $sp = 00000000 diff --git a/data/overlays/actors/z_en_wood02.bss.s b/data/overlays/actors/z_en_wood02.bss.s deleted file mode 100644 index af06b3f8b0..0000000000 --- a/data/overlays/actors/z_en_wood02.bss.s +++ /dev/null @@ -1,16 +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_80B3C1D0 - .space 0x04 -glabel D_80B3C1D4 - .space 0x0C - diff --git a/data/overlays/actors/z_en_wood02.data.s b/data/overlays/actors/z_en_wood02.data.s deleted file mode 100644 index e83101a806..0000000000 --- a/data/overlays/actors/z_en_wood02.data.s +++ /dev/null @@ -1,30 +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_Wood02_InitVars - .word 0x00770600, 0x00000000, 0x007C0000, 0x000001A4 -.word EnWood02_Init -.word EnWood02_Destroy -.word EnWood02_Update -.word EnWood02_Draw -glabel D_80B3BF00 - .word 0x0D000D39, 0x10010000, 0x05000000, 0x00000000, 0x00000000, 0x0FC0074A, 0x00000000, 0x00010100, 0x0012003C, 0x00000000, 0x00000000 -glabel D_80B3BF2C - .word 0x4430C000, 0x44034000, 0x43FF0000, 0x43FA0000, 0x440D8000, 0x430D0000 -glabel D_80B3BF44 - .byte 0x1F, 0xFF, 0x4C, 0x9E, 0x77, 0xF5, 0xA5, 0xC9, 0xD6, 0xC3, 0xA0, 0x00 -glabel D_80B3BF50 - .word 0x304C15E0 -glabel D_80B3BF54 - .word 0x060078D0, 0x06007CA0, 0x060080D0, 0x06000090, 0x06000340, 0x06000340, 0x06000700 -glabel D_80B3BF70 - .word 0x06007968, 0x06007D38, 0x060081A8, 0x00000000, 0x00000000, 0x00000000, 0x06007AD0, 0x06007E20, 0x06008350, 0x06000160, 0x06000440, 0x06000700 - diff --git a/data/overlays/actors/z_en_wood02.reloc.s b/data/overlays/actors/z_en_wood02.reloc.s deleted file mode 100644 index 1b1c4228bf..0000000000 --- a/data/overlays/actors/z_en_wood02.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_80B3C070 - .incbin "baserom/ovl_En_Wood02", 0x1100, 0x00000160 diff --git a/spec b/spec index cacc692ef6..91641819ea 100644 --- a/spec +++ b/spec @@ -3173,9 +3173,7 @@ endseg beginseg name "ovl_En_Wood02" include "build/src/overlays/actors/ovl_En_Wood02/z_en_wood02.o" - include "build/data/overlays/actors/z_en_wood02.data.o" - include "build/data/overlays/actors/z_en_wood02.bss.o" - include "build/data/overlays/actors/z_en_wood02.reloc.o" + include "build/src/overlays/actors/ovl_En_Wood02/ovl_En_Wood02_reloc.o" endseg beginseg diff --git a/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c b/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c index 10677a71ef..74f75420ae 100644 --- a/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c +++ b/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c @@ -1,7 +1,7 @@ /* * File: z_en_wood02.c * Overlay: ovl_En_Wood02 - * Description: Trees & Bushes + * Description: Trees, bushes, leaves */ #include "z_en_wood02.h" @@ -15,9 +15,25 @@ void EnWood02_Destroy(Actor* thisx, GlobalContext* globalCtx); void EnWood02_Update(Actor* thisx, GlobalContext* globalCtx); void EnWood02_Draw(Actor* thisx, GlobalContext* globalCtx); -extern UNK_TYPE D_06000700; +/** + * WOOD_SPAWN_SPAWNER is also used by some individual trees: EnWood02_Update also checks for parent before running any + * despawning code. + * */ +typedef enum { + /* 0 */ WOOD_SPAWN_NORMAL, + /* 1 */ WOOD_SPAWN_SPAWNED, + /* 2 */ WOOD_SPAWN_SPAWNER +} WoodSpawnType; + +typedef enum { + /* 0 */ WOOD_DRAW_TREE_CONICAL, + /* 1 */ WOOD_DRAW_TREE_OVAL, + /* 2 */ WOOD_DRAW_TREE_KAKARIKO_ADULT, + /* 3 */ WOOD_DRAW_BUSH_GREEN, + /* 4 */ WOOD_DRAW_4, // Used for black bushes and green leaves + /* 5 */ WOOD_DRAW_LEAF_YELLOW +} WoodDrawType; -/* const ActorInit En_Wood02_InitVars = { ACTOR_EN_WOOD02, ACTORTYPE_PROP, @@ -29,15 +45,393 @@ const ActorInit En_Wood02_InitVars = { (ActorFunc)EnWood02_Update, (ActorFunc)EnWood02_Draw, }; -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Wood02/func_80B3AF70.s") -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Wood02/func_80B3B094.s") +static ColliderCylinderInit sCylinderInit = { + { COLTYPE_UNK13, 0x00, 0x0D, 0x39, 0x10, COLSHAPE_CYLINDER }, + { 0x05, { 0x00000000, 0x00, 0x00 }, { 0x0FC0074A, 0x00, 0x00 }, 0x00, 0x01, 0x01 }, + { 18, 60, 0, { 0, 0, 0 } }, +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Wood02/EnWood02_Init.s") +static f32 sSpawnDistance[] = { 707.0f, 525.0f, 510.0f, 500.0f, 566.0f, 141.0f }; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Wood02/EnWood02_Destroy.s") +static s16 sSpawnAngle[] = { 0x1FFF, 0x4C9E, 0x77F5, 0xA5C9, 0xD6C3, 0xA000 }; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Wood02/EnWood02_Update.s") +static InitChainEntry sInitChain[] = { + ICHAIN_F32(unk_4C, 5600, ICHAIN_STOP), +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Wood02/EnWood02_Draw.s") +static Gfx* D_80B3BF54[] = { + 0x060078D0, 0x06007CA0, 0x060080D0, 0x06000090, 0x06000340, 0x06000340, 0x06000700, +}; + +static Gfx* D_80B3BF70[] = { + 0x06007968, 0x06007D38, 0x060081A8, NULL, NULL, NULL, + 0x06007AD0, 0x06007E20, 0x06008350, 0x06000160, 0x06000440, 0x06000700, +}; + +static f32 sSpawnCos; + +static f32 sSpawnSin; + +extern Gfx D_06000700[]; + +s32 EnWood02_SpawnZoneCheck(EnWood02* this, GlobalContext* globalCtx, Vec3f* pos) { + f32 phi_f12; + + SkinMatrix_Vec3fMtxFMultXYZW(&globalCtx->mf_11D60, pos, &this->actor.projectedPos, &this->actor.projectedW); + + phi_f12 = ((this->actor.projectedW == 0.0f) ? 1000.0f : fabsf(1.0f / this->actor.projectedW)); + + if ((-this->actor.uncullZoneScale < this->actor.projectedPos.z) && + (this->actor.projectedPos.z < (this->actor.uncullZoneForward + this->actor.uncullZoneScale)) && + (((fabsf(this->actor.projectedPos.x) - this->actor.uncullZoneScale) * phi_f12) < 1.0f) && + (((this->actor.projectedPos.y + this->actor.uncullZoneDownward) * phi_f12) > -1.0f) && + (((this->actor.projectedPos.y - this->actor.uncullZoneScale) * phi_f12) < 1.0f)) { + return true; + } + return false; +} + +/** Spawns similar-looking trees or bushes only when the player is sufficiently close. Presumably done this way to keep + * memory usage down in Hyrule Field. */ +void EnWood02_SpawnOffspring(EnWood02* this, GlobalContext* globalCtx) { + EnWood02* childWood; + s16* childSpawnAngle; + Vec3f childPos; + s16 extraRot; + s16 childParams; + s32 i; + + for (i = 4; i >= 0; i--) { + if ((this->unk_14E[i] & 0x7F) == 0) { + extraRot = 0; + if (this->actor.params == WOOD_BUSH_GREEN_LARGE_SPAWNER) { + extraRot = 0x4000; + } + childSpawnAngle = &sSpawnAngle[i]; + sSpawnCos = Math_CosS(*childSpawnAngle + this->actor.posRot.rot.y + extraRot); + sSpawnSin = Math_SinS(*childSpawnAngle + this->actor.posRot.rot.y + extraRot); + childPos.x = (sSpawnDistance[i] * sSpawnSin) + this->actor.initPosRot.pos.x; + childPos.y = this->actor.initPosRot.pos.y; + childPos.z = (sSpawnDistance[i] * sSpawnCos) + this->actor.initPosRot.pos.z; + if (EnWood02_SpawnZoneCheck(this, globalCtx, &childPos)) { + if ((this->unk_14E[i] & 0x80) != 0) { + childParams = (0xFF00 | (this->actor.params + 1)); + } else { + childParams = (((this->drawType & 0xF0) << 4) | (this->actor.params + 1)); + } + childWood = (EnWood02*)Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, + ACTOR_EN_WOOD02, childPos.x, childPos.y, childPos.z, + this->actor.posRot.rot.x, *childSpawnAngle, 0, childParams); + if (childWood != NULL) { + childWood->unk_14E[0] = i; + this->unk_14E[i] |= 1; + childWood->actor.projectedPos = this->actor.projectedPos; + } else { + this->unk_14E[i] &= 0x80; + } + } + } + } +} + +void EnWood02_Init(Actor* thisx, GlobalContext* globalCtx2) { + s16 spawnType; + f32 actorScale; + GlobalContext* globalCtx = globalCtx2; + EnWood02* this = THIS; + CollisionPoly* outPoly; + s32 bgId; + f32 floorY; + s16 extraRot; + + spawnType = WOOD_SPAWN_NORMAL; + actorScale = 1.0f; + this->unk_14C = (this->actor.params >> 8) & 0xFF; + + if (this->actor.initPosRot.rot.z != 0) { + this->actor.initPosRot.rot.z = (this->actor.initPosRot.rot.z << 8) | this->unk_14C; + this->unk_14C = -1; + this->actor.posRot.rot.z = this->actor.shape.rot.z = 0; + } else if (this->unk_14C & 0x80) { + this->unk_14C = -1; + } + + this->actor.params &= 0xFF; + Actor_ProcessInitChain(&this->actor, sInitChain); + + if (this->actor.params <= WOOD_TREE_KAKARIKO_ADULT) { + Collider_InitCylinder(globalCtx, &this->collider); + Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit); + } + + switch (this->actor.params) { + case WOOD_BUSH_GREEN_LARGE_SPAWNER: + case WOOD_BUSH_BLACK_LARGE_SPAWNER: + spawnType = 1; + case WOOD_BUSH_GREEN_LARGE_SPAWNED: + case WOOD_BUSH_BLACK_LARGE_SPAWNED: + spawnType++; + case WOOD_TREE_CONICAL_LARGE: + case WOOD_BUSH_GREEN_LARGE: + case WOOD_BUSH_BLACK_LARGE: + actorScale = 1.5f; + this->actor.uncullZoneForward = 4000.0f; + this->actor.uncullZoneScale = 2000.0f; + this->actor.uncullZoneDownward = 2400.0f; + break; + case WOOD_TREE_CONICAL_SPAWNER: + case WOOD_TREE_OVAL_YELLOW_SPAWNER: + case WOOD_TREE_OVAL_GREEN_SPAWNER: + case WOOD_BUSH_GREEN_SMALL_SPAWNER: + case WOOD_BUSH_BLACK_SMALL_SPAWNER: + spawnType = 1; + case WOOD_TREE_CONICAL_SPAWNED: + case WOOD_TREE_OVAL_YELLOW_SPAWNED: + case WOOD_TREE_OVAL_GREEN_SPAWNED: + case WOOD_BUSH_GREEN_SMALL_SPAWNED: + case WOOD_BUSH_BLACK_SMALL_SPAWNED: + spawnType++; + case WOOD_TREE_CONICAL_MEDIUM: + case WOOD_TREE_OVAL_GREEN: + case WOOD_TREE_KAKARIKO_ADULT: + case WOOD_BUSH_GREEN_SMALL: + case WOOD_BUSH_BLACK_SMALL: + this->actor.uncullZoneForward = 4000.0f; + this->actor.uncullZoneScale = 800.0f; + this->actor.uncullZoneDownward = 1800.0f; + break; + case WOOD_TREE_CONICAL_SMALL: + actorScale = 0.6f; + this->actor.uncullZoneForward = 4000.0f; + this->actor.uncullZoneScale = 400.0f; + this->actor.uncullZoneDownward = 1000.0f; + break; + case WOOD_LEAF_GREEN: + case WOOD_LEAF_YELLOW: + this->unk_14E[0] = 0x4B; + actorScale = 0.02f; + this->actor.velocity.x = Rand_CenteredFloat(6.0f); + this->actor.velocity.z = Rand_CenteredFloat(6.0f); + this->actor.velocity.y = (Rand_ZeroOne() * 1.25f) + -3.1f; + } + + if (this->actor.params <= WOOD_TREE_CONICAL_SPAWNED) { + this->drawType = WOOD_DRAW_TREE_CONICAL; + } else if (this->actor.params <= WOOD_TREE_OVAL_GREEN_SPAWNED) { + this->drawType = WOOD_DRAW_TREE_OVAL; + } else if (this->actor.params <= WOOD_TREE_KAKARIKO_ADULT) { + this->drawType = WOOD_DRAW_TREE_KAKARIKO_ADULT; + } else if (this->actor.params <= WOOD_BUSH_GREEN_LARGE_SPAWNED) { + this->drawType = WOOD_DRAW_BUSH_GREEN; + } else if (this->actor.params <= WOOD_LEAF_GREEN) { // Black bushes and green leaves + this->drawType = WOOD_DRAW_4; + } else { + this->drawType = WOOD_DRAW_LEAF_YELLOW; + } + + Actor_SetScale(&this->actor, actorScale); + this->spawnType = spawnType; + + if (spawnType != WOOD_SPAWN_NORMAL) { + extraRot = 0; + + if (this->actor.params == WOOD_BUSH_GREEN_LARGE_SPAWNER) { + extraRot = 0x4000; + } + + if (spawnType == WOOD_SPAWN_SPAWNER) { + this->drawType |= this->unk_14C << 4; + EnWood02_SpawnOffspring(this, globalCtx); + sSpawnCos = Math_CosS(sSpawnAngle[5] + this->actor.posRot.rot.y + extraRot); + sSpawnSin = Math_SinS(sSpawnAngle[5] + this->actor.posRot.rot.y + extraRot); + this->actor.posRot.pos.x += (sSpawnSin * sSpawnDistance[5]); + this->actor.posRot.pos.z += (sSpawnCos * sSpawnDistance[5]); + } else { + this->actor.flags |= 0x10; + } + + // Snap to floor, or remove if over void + this->actor.posRot.pos.y += 200.0f; + floorY = + BgCheck_EntityRaycastFloor4(&globalCtx->colCtx, &outPoly, &bgId, &this->actor, &this->actor.posRot.pos); + + if (floorY > BGCHECK_Y_MIN) { + this->actor.posRot.pos.y = floorY; + } else { + Actor_Kill(&this->actor); + return; + } + } + ActorShape_Init(&this->actor.shape, 0.0f, NULL, 0.0f); + this->actor.initPosRot.rot.y = 0; + this->actor.colChkInfo.mass = 0xFF; +} + +void EnWood02_Destroy(Actor* thisx, GlobalContext* globalCtx) { + EnWood02* this = THIS; + + if (this->actor.params <= WOOD_TREE_KAKARIKO_ADULT) { + Collider_DestroyCylinder(globalCtx, &this->collider); + } +} + +void EnWood02_Update(Actor* thisx, GlobalContext* globalCtx2) { + GlobalContext* globalCtx = globalCtx2; + EnWood02* this = THIS; + f32 wobbleAmplitude; + u8 new_var; + u8 phi_v0; + s32 pad; + Vec3f dropsSpawnPt; + s32 i; + s32 leavesParams; + + // Despawn extra trees in a group if out of range + if ((this->spawnType == WOOD_SPAWN_SPAWNED) && (this->actor.parent != NULL)) { + if (!(this->actor.flags & 0x40)) { + new_var = this->unk_14E[0]; + phi_v0 = 0; + + if (this->unk_14C < 0) { + phi_v0 = 0x80; + } + + ((EnWood02*)this->actor.parent)->unk_14E[new_var] = phi_v0; + Actor_Kill(&this->actor); + return; + } + } else if (this->spawnType == WOOD_SPAWN_SPAWNER) { + EnWood02_SpawnOffspring(this, globalCtx); + } + + if (this->actor.params <= WOOD_TREE_KAKARIKO_ADULT) { + if (this->collider.base.acFlags & 2) { + this->collider.base.acFlags &= ~2; + Audio_PlayActorSound2(&this->actor, NA_SE_IT_REFLECTION_WOOD); + } + + if (this->actor.initPosRot.rot.y != 0) { + dropsSpawnPt = this->actor.posRot.pos; + dropsSpawnPt.y += 200.0f; + + if ((this->unk_14C >= 0) && (this->unk_14C < 0x64)) { + Item_DropCollectibleRandom(globalCtx, &this->actor, &dropsSpawnPt, this->unk_14C << 4); + } else { + if (this->actor.initPosRot.rot.z != 0) { + this->actor.initPosRot.rot.z &= 0x1FFF; + this->actor.initPosRot.rot.z |= 0xE000; + Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_SW, dropsSpawnPt.x, dropsSpawnPt.y, + dropsSpawnPt.z, 0, this->actor.posRot.rot.y, 0, this->actor.initPosRot.rot.z); + this->actor.initPosRot.rot.z = 0; + } + } + + // Spawn falling leaves + if (this->unk_14C >= -1) { + leavesParams = WOOD_LEAF_GREEN; + + if ((this->actor.params == WOOD_TREE_OVAL_YELLOW_SPAWNER) || + (this->actor.params == WOOD_TREE_OVAL_YELLOW_SPAWNED)) { + leavesParams = WOOD_LEAF_YELLOW; + } + Audio_PlayActorSound2(&this->actor, NA_SE_EV_TREE_SWING); + + for (i = 3; i >= 0; i--) { + Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_WOOD02, dropsSpawnPt.x, dropsSpawnPt.y, + dropsSpawnPt.z, 0, Rand_CenteredFloat(65535.0f), 0, leavesParams); + } + } + this->unk_14C = -0x15; + this->actor.initPosRot.rot.y = 0; + } + + if (this->actor.xzDistToLink < 600.0f) { + Collider_CylinderUpdate(&this->actor, &this->collider); + CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->collider.base); + CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider.base); + } + } else if (this->actor.params < 0x17) { // Bush + Player* player = PLAYER; + + if (this->unk_14C >= -1) { + if (((player->rideActor == NULL) && (sqrt(this->actor.xyzDistToLinkSq) < 20.0) && + (player->linearVelocity != 0.0f)) || + ((player->rideActor != NULL) && (sqrt(this->actor.xyzDistToLinkSq) < 60.0) && + (player->rideActor->speedXZ != 0.0f))) { + if ((this->unk_14C >= 0) && (this->unk_14C < 0x64)) { + Item_DropCollectibleRandom(globalCtx, &this->actor, &this->actor.posRot.pos, + ((this->unk_14C << 4) | 0x8000)); + } + this->unk_14C = -0x15; + Audio_PlayActorSound2(&this->actor, NA_SE_EV_TREE_SWING); + } + } + } else { // Leaves + this->unk_14C++; + Math_ApproachF(&this->actor.velocity.x, 0.0f, 1.0f, 5 * 0.01f); + Math_ApproachF(&this->actor.velocity.z, 0.0f, 1.0f, 5 * 0.01f); + func_8002D7EC(&this->actor); + this->actor.shape.rot.z = Math_SinS(3000 * this->unk_14C) * 0x4000; + this->unk_14E[0]--; + + if (this->unk_14E[0] == 0) { + Actor_Kill(&this->actor); + } + } + + // Wobble from impact + if (this->unk_14C < -1) { + this->unk_14C++; + wobbleAmplitude = Math_SinS((this->unk_14C ^ 0xFFFF) * 0x3332) * 250.0f; + this->actor.shape.rot.x = (Math_CosS(this->actor.yawTowardsLink - this->actor.shape.rot.y) * wobbleAmplitude); + this->actor.shape.rot.z = (Math_SinS(this->actor.yawTowardsLink - this->actor.shape.rot.y) * wobbleAmplitude); + } +} + +void EnWood02_Draw(Actor* thisx, GlobalContext* globalCtx) { + EnWood02* this = THIS; + s16 type; + GraphicsContext* gfxCtx = globalCtx->state.gfxCtx; + u8 red; + u8 green; + u8 blue; + + OPEN_DISPS(gfxCtx, "../z_en_wood02.c", 775); + type = this->actor.params; + + if ((type == WOOD_TREE_OVAL_GREEN_SPAWNER) || (type == WOOD_TREE_OVAL_GREEN_SPAWNED) || + (type == WOOD_TREE_OVAL_GREEN) || (type == WOOD_LEAF_GREEN)) { + red = 50; + green = 170; + blue = 70; + } else if ((type == WOOD_TREE_OVAL_YELLOW_SPAWNER) || (type == WOOD_TREE_OVAL_YELLOW_SPAWNED) || + (type == WOOD_LEAF_YELLOW)) { + red = 180; + green = 155; + blue = 0; + } else { + red = green = blue = 255; + } + + func_80093D84(gfxCtx); + + if ((this->actor.params == WOOD_LEAF_GREEN) || (this->actor.params == WOOD_LEAF_YELLOW)) { + func_80093D18(gfxCtx); + gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, red, green, blue, 127); + Gfx_DrawDListOpa(globalCtx, D_06000700); + } else if (D_80B3BF70[this->drawType & 0xF] != NULL) { + Gfx_DrawDListOpa(globalCtx, D_80B3BF54[this->drawType & 0xF]); + gDPSetEnvColor(POLY_XLU_DISP++, red, green, blue, 0); + gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_en_wood02.c", 808), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_XLU_DISP++, D_80B3BF70[this->drawType & 0xF]); + } else { + func_80093D84(gfxCtx); + gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_en_wood02.c", 814), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_XLU_DISP++, D_80B3BF54[this->drawType & 0xF]); + } + + CLOSE_DISPS(gfxCtx, "../z_en_wood02.c", 840); +} diff --git a/src/overlays/actors/ovl_En_Wood02/z_en_wood02.h b/src/overlays/actors/ovl_En_Wood02/z_en_wood02.h index d74f86e321..fd0486194d 100644 --- a/src/overlays/actors/ovl_En_Wood02/z_en_wood02.h +++ b/src/overlays/actors/ovl_En_Wood02/z_en_wood02.h @@ -8,9 +8,43 @@ struct EnWood02; typedef struct EnWood02 { /* 0x0000 */ Actor actor; - /* 0x014C */ char unk_14C[0x58]; + /* 0x014C */ s16 unk_14C; + /* 0x014E */ u8 unk_14E[5]; + /* 0x0153 */ u8 spawnType; + /* 0x0154 */ u8 drawType; + /* 0x0158 */ ColliderCylinder collider; } EnWood02; // size = 0x01A4 extern const ActorInit En_Wood02_InitVars; +// Types with SPAWNED in the name are those that can be managed by a spawner, however the actor allows you to spawn them +// on their own without a spawner as well. +typedef enum { + /* 0x00 */ WOOD_TREE_CONICAL_LARGE, + /* 0x01 */ WOOD_TREE_CONICAL_MEDIUM, + /* 0x02 */ WOOD_TREE_CONICAL_SMALL, + /* 0x03 */ WOOD_TREE_CONICAL_SPAWNER, + /* 0x04 */ WOOD_TREE_CONICAL_SPAWNED, + /* 0x05 */ WOOD_TREE_OVAL_GREEN, + /* 0x06 */ WOOD_TREE_OVAL_YELLOW_SPAWNER, + /* 0x07 */ WOOD_TREE_OVAL_YELLOW_SPAWNED, + /* 0x08 */ WOOD_TREE_OVAL_GREEN_SPAWNER, + /* 0x09 */ WOOD_TREE_OVAL_GREEN_SPAWNED, + /* 0x0A */ WOOD_TREE_KAKARIKO_ADULT, + /* 0x0B */ WOOD_BUSH_GREEN_SMALL, + /* 0x0C */ WOOD_BUSH_GREEN_LARGE, + /* 0x0D */ WOOD_BUSH_GREEN_SMALL_SPAWNER, + /* 0x0E */ WOOD_BUSH_GREEN_SMALL_SPAWNED, + /* 0x0F */ WOOD_BUSH_GREEN_LARGE_SPAWNER, + /* 0x10 */ WOOD_BUSH_GREEN_LARGE_SPAWNED, + /* 0x11 */ WOOD_BUSH_BLACK_SMALL, + /* 0x12 */ WOOD_BUSH_BLACK_LARGE, + /* 0x13 */ WOOD_BUSH_BLACK_SMALL_SPAWNER, + /* 0x14 */ WOOD_BUSH_BLACK_SMALL_SPAWNED, + /* 0x15 */ WOOD_BUSH_BLACK_LARGE_SPAWNER, + /* 0x16 */ WOOD_BUSH_BLACK_LARGE_SPAWNED, + /* 0x17 */ WOOD_LEAF_GREEN, + /* 0x18 */ WOOD_LEAF_YELLOW +} WoodType; + #endif