1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-11-25 17:54:15 +00:00

EnWood02 OK (#578)

* OK, some documentation

* delete asm

* dists updated

* addressed review comments

* one more comment

* remove one comment

* addressed review comments
This commit is contained in:
EllipticEllipsis 2021-01-14 17:58:17 +00:00 committed by GitHub
parent d8f146519c
commit 3e5f6b3485
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 440 additions and 1229 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

4
spec
View file

@ -3173,9 +3173,7 @@ endseg
beginseg beginseg
name "ovl_En_Wood02" name "ovl_En_Wood02"
include "build/src/overlays/actors/ovl_En_Wood02/z_en_wood02.o" include "build/src/overlays/actors/ovl_En_Wood02/z_en_wood02.o"
include "build/data/overlays/actors/z_en_wood02.data.o" include "build/src/overlays/actors/ovl_En_Wood02/ovl_En_Wood02_reloc.o"
include "build/data/overlays/actors/z_en_wood02.bss.o"
include "build/data/overlays/actors/z_en_wood02.reloc.o"
endseg endseg
beginseg beginseg

View file

@ -1,7 +1,7 @@
/* /*
* File: z_en_wood02.c * File: z_en_wood02.c
* Overlay: ovl_En_Wood02 * Overlay: ovl_En_Wood02
* Description: Trees & Bushes * Description: Trees, bushes, leaves
*/ */
#include "z_en_wood02.h" #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_Update(Actor* thisx, GlobalContext* globalCtx);
void EnWood02_Draw(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 = { const ActorInit En_Wood02_InitVars = {
ACTOR_EN_WOOD02, ACTOR_EN_WOOD02,
ACTORTYPE_PROP, ACTORTYPE_PROP,
@ -29,15 +45,393 @@ const ActorInit En_Wood02_InitVars = {
(ActorFunc)EnWood02_Update, (ActorFunc)EnWood02_Update,
(ActorFunc)EnWood02_Draw, (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);
}

View file

@ -8,9 +8,43 @@ struct EnWood02;
typedef struct EnWood02 { typedef struct EnWood02 {
/* 0x0000 */ Actor actor; /* 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 } EnWood02; // size = 0x01A4
extern const ActorInit En_Wood02_InitVars; 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 #endif