mirror of
https://github.com/zeldaret/oot.git
synced 2024-11-25 09:45:02 +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:
parent
d8f146519c
commit
3e5f6b3485
12 changed files with 440 additions and 1229 deletions
|
@ -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
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -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
|
|
||||||
|
|
|
@ -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
|
|
||||||
|
|
|
@ -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
4
spec
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue