mirror of
https://github.com/zeldaret/oot.git
synced 2024-11-29 03:34:07 +00:00
Bg_Hidan_Fwbig (#450)
* Darkmeiro decompilation Bg_Gnd_Darkmeiro decompiled, matched, and documented. * give this a shot * fix conflict * one more try * could be useful * whoops * long firewall is long * Fwbig documented, some cleanup on Zl1 * format * merge and cleanup * last things
This commit is contained in:
parent
daf624fe48
commit
3ba022128c
20 changed files with 273 additions and 953 deletions
|
@ -1,12 +0,0 @@
|
|||
glabel BgHidanFwbig_Destroy
|
||||
/* 00198 80887488 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 0019C 8088748C 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
|
||||
/* 001A0 80887490 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 001A4 80887494 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
|
||||
/* 001A8 80887498 0C0170EB */ jal Collider_DestroyCylinder
|
||||
|
||||
/* 001AC 8088749C 24C50154 */ addiu $a1, $a2, 0x0154 ## $a1 = 00000154
|
||||
/* 001B0 808874A0 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 001B4 808874A4 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 001B8 808874A8 03E00008 */ jr $ra
|
||||
/* 001BC 808874AC 00000000 */ nop
|
|
@ -1,202 +0,0 @@
|
|||
.rdata
|
||||
glabel D_80887F00
|
||||
.asciz "../z_bg_hidan_fwbig.c"
|
||||
.balign 4
|
||||
|
||||
glabel D_80887F18
|
||||
.asciz "../z_bg_hidan_fwbig.c"
|
||||
.balign 4
|
||||
|
||||
glabel D_80887F30
|
||||
.asciz "../z_bg_hidan_fwbig.c"
|
||||
.balign 4
|
||||
|
||||
.text
|
||||
glabel BgHidanFwbig_Draw
|
||||
/* 008E0 80887BD0 27BDFF80 */ addiu $sp, $sp, 0xFF80 ## $sp = FFFFFF80
|
||||
/* 008E4 80887BD4 AFB10038 */ sw $s1, 0x0038($sp)
|
||||
/* 008E8 80887BD8 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
|
||||
/* 008EC 80887BDC AFBF003C */ sw $ra, 0x003C($sp)
|
||||
/* 008F0 80887BE0 AFB00034 */ sw $s0, 0x0034($sp)
|
||||
/* 008F4 80887BE4 AFA40080 */ sw $a0, 0x0080($sp)
|
||||
/* 008F8 80887BE8 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
|
||||
/* 008FC 80887BEC 3C068088 */ lui $a2, %hi(D_80887F00) ## $a2 = 80880000
|
||||
/* 00900 80887BF0 24C67F00 */ addiu $a2, $a2, %lo(D_80887F00) ## $a2 = 80887F00
|
||||
/* 00904 80887BF4 27A40064 */ addiu $a0, $sp, 0x0064 ## $a0 = FFFFFFE4
|
||||
/* 00908 80887BF8 24070276 */ addiu $a3, $zero, 0x0276 ## $a3 = 00000276
|
||||
/* 0090C 80887BFC 0C031AB1 */ jal Graph_OpenDisps
|
||||
/* 00910 80887C00 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
|
||||
/* 00914 80887C04 0C024F61 */ jal func_80093D84
|
||||
/* 00918 80887C08 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
|
||||
/* 0091C 80887C0C 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
|
||||
/* 00920 80887C10 3C040401 */ lui $a0, 0x0401 ## $a0 = 04010000
|
||||
/* 00924 80887C14 248473D0 */ addiu $a0, $a0, 0x73D0 ## $a0 = 040173D0
|
||||
/* 00928 80887C18 0004C100 */ sll $t8, $a0, 4
|
||||
/* 0092C 80887C1C 0018CF02 */ srl $t9, $t8, 28
|
||||
/* 00930 80887C20 3C058016 */ lui $a1, %hi(gSegments)
|
||||
/* 00934 80887C24 3C0FDB06 */ lui $t7, 0xDB06 ## $t7 = DB060000
|
||||
/* 00938 80887C28 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
|
||||
/* 0093C 80887C2C AE0E02D0 */ sw $t6, 0x02D0($s0) ## 000002D0
|
||||
/* 00940 80887C30 35EF0024 */ ori $t7, $t7, 0x0024 ## $t7 = DB060024
|
||||
/* 00944 80887C34 24A56FA8 */ addiu $a1, %lo(gSegments)
|
||||
/* 00948 80887C38 00194880 */ sll $t1, $t9, 2
|
||||
/* 0094C 80887C3C 00A95021 */ addu $t2, $a1, $t1
|
||||
/* 00950 80887C40 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
|
||||
/* 00954 80887C44 8D4B0000 */ lw $t3, 0x0000($t2) ## 00000000
|
||||
/* 00958 80887C48 3C0600FF */ lui $a2, 0x00FF ## $a2 = 00FF0000
|
||||
/* 0095C 80887C4C 34C6FFFF */ ori $a2, $a2, 0xFFFF ## $a2 = 00FFFFFF
|
||||
/* 00960 80887C50 00866024 */ and $t4, $a0, $a2
|
||||
/* 00964 80887C54 3C078000 */ lui $a3, 0x8000 ## $a3 = 80000000
|
||||
/* 00968 80887C58 016C6821 */ addu $t5, $t3, $t4
|
||||
/* 0096C 80887C5C 01A77021 */ addu $t6, $t5, $a3
|
||||
/* 00970 80887C60 AC4E0004 */ sw $t6, 0x0004($v0) ## 00000004
|
||||
/* 00974 80887C64 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
|
||||
/* 00978 80887C68 3C040401 */ lui $a0, 0x0401 ## $a0 = 04010000
|
||||
/* 0097C 80887C6C 24847BD0 */ addiu $a0, $a0, 0x7BD0 ## $a0 = 04017BD0
|
||||
/* 00980 80887C70 0004C900 */ sll $t9, $a0, 4
|
||||
/* 00984 80887C74 00194F02 */ srl $t1, $t9, 28
|
||||
/* 00988 80887C78 3C18DB06 */ lui $t8, 0xDB06 ## $t8 = DB060000
|
||||
/* 0098C 80887C7C 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008
|
||||
/* 00990 80887C80 AE0F02D0 */ sw $t7, 0x02D0($s0) ## 000002D0
|
||||
/* 00994 80887C84 37180028 */ ori $t8, $t8, 0x0028 ## $t8 = DB060028
|
||||
/* 00998 80887C88 00095080 */ sll $t2, $t1, 2
|
||||
/* 0099C 80887C8C 00AA5821 */ addu $t3, $a1, $t2
|
||||
/* 009A0 80887C90 AC580000 */ sw $t8, 0x0000($v0) ## 00000000
|
||||
/* 009A4 80887C94 8D6C0000 */ lw $t4, 0x0000($t3) ## 00000000
|
||||
/* 009A8 80887C98 00866824 */ and $t5, $a0, $a2
|
||||
/* 009AC 80887C9C 3C014516 */ lui $at, 0x4516 ## $at = 45160000
|
||||
/* 009B0 80887CA0 018D7021 */ addu $t6, $t4, $t5
|
||||
/* 009B4 80887CA4 01C77821 */ addu $t7, $t6, $a3
|
||||
/* 009B8 80887CA8 AC4F0004 */ sw $t7, 0x0004($v0) ## 00000004
|
||||
/* 009BC 80887CAC 8FA40080 */ lw $a0, 0x0080($sp)
|
||||
/* 009C0 80887CB0 8E0302D0 */ lw $v1, 0x02D0($s0) ## 000002D0
|
||||
/* 009C4 80887CB4 3C19FA00 */ lui $t9, 0xFA00 ## $t9 = FA000000
|
||||
/* 009C8 80887CB8 C4840054 */ lwc1 $f4, 0x0054($a0) ## 04017C24
|
||||
/* 009CC 80887CBC 24780008 */ addiu $t8, $v1, 0x0008 ## $t8 = 00000008
|
||||
/* 009D0 80887CC0 44813000 */ mtc1 $at, $f6 ## $f6 = 2400.00
|
||||
/* 009D4 80887CC4 AE1802D0 */ sw $t8, 0x02D0($s0) ## 000002D0
|
||||
/* 009D8 80887CC8 37398080 */ ori $t9, $t9, 0x8080 ## $t9 = FA008080
|
||||
/* 009DC 80887CCC AC790000 */ sw $t9, 0x0000($v1) ## 00000000
|
||||
/* 009E0 80887CD0 46062002 */ mul.s $f0, $f4, $f6
|
||||
/* 009E4 80887CD4 C48A0028 */ lwc1 $f10, 0x0028($a0) ## 04017BF8
|
||||
/* 009E8 80887CD8 C488000C */ lwc1 $f8, 0x000C($a0) ## 04017BDC
|
||||
/* 009EC 80887CDC 3C01437F */ lui $at, 0x437F ## $at = 437F0000
|
||||
/* 009F0 80887CE0 44812000 */ mtc1 $at, $f4 ## $f4 = 255.00
|
||||
/* 009F4 80887CE4 460A4401 */ sub.s $f16, $f8, $f10
|
||||
/* 009F8 80887CE8 240A0001 */ addiu $t2, $zero, 0x0001 ## $t2 = 00000001
|
||||
/* 009FC 80887CEC 3C19DB06 */ lui $t9, 0xDB06 ## $t9 = DB060000
|
||||
/* 00A00 80887CF0 3C014F00 */ lui $at, 0x4F00 ## $at = 4F000000
|
||||
/* 00A04 80887CF4 46100481 */ sub.s $f18, $f0, $f16
|
||||
/* 00A08 80887CF8 3C0FFF00 */ lui $t7, 0xFF00 ## $t7 = FF000000
|
||||
/* 00A0C 80887CFC 3C0EFB00 */ lui $t6, 0xFB00 ## $t6 = FB000000
|
||||
/* 00A10 80887D00 37390020 */ ori $t9, $t9, 0x0020 ## $t9 = DB060020
|
||||
/* 00A14 80887D04 46049182 */ mul.s $f6, $f18, $f4
|
||||
/* 00A18 80887D08 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
|
||||
/* 00A1C 80887D0C 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
|
||||
/* 00A20 80887D10 46003203 */ div.s $f8, $f6, $f0
|
||||
/* 00A24 80887D14 4449F800 */ cfc1 $t1, $31
|
||||
/* 00A28 80887D18 44CAF800 */ ctc1 $t2, $31
|
||||
/* 00A2C 80887D1C 00000000 */ nop
|
||||
/* 00A30 80887D20 460042A4 */ cvt.w.s $f10, $f8
|
||||
/* 00A34 80887D24 444AF800 */ cfc1 $t2, $31
|
||||
/* 00A38 80887D28 00000000 */ nop
|
||||
/* 00A3C 80887D2C 314A0078 */ andi $t2, $t2, 0x0078 ## $t2 = 00000000
|
||||
/* 00A40 80887D30 51400013 */ beql $t2, $zero, .L80887D80
|
||||
/* 00A44 80887D34 440A5000 */ mfc1 $t2, $f10
|
||||
/* 00A48 80887D38 44815000 */ mtc1 $at, $f10 ## $f10 = 2147483648.00
|
||||
/* 00A4C 80887D3C 240A0001 */ addiu $t2, $zero, 0x0001 ## $t2 = 00000001
|
||||
/* 00A50 80887D40 460A4281 */ sub.s $f10, $f8, $f10
|
||||
/* 00A54 80887D44 44CAF800 */ ctc1 $t2, $31
|
||||
/* 00A58 80887D48 00000000 */ nop
|
||||
/* 00A5C 80887D4C 460052A4 */ cvt.w.s $f10, $f10
|
||||
/* 00A60 80887D50 444AF800 */ cfc1 $t2, $31
|
||||
/* 00A64 80887D54 00000000 */ nop
|
||||
/* 00A68 80887D58 314A0078 */ andi $t2, $t2, 0x0078 ## $t2 = 00000000
|
||||
/* 00A6C 80887D5C 15400005 */ bne $t2, $zero, .L80887D74
|
||||
/* 00A70 80887D60 00000000 */ nop
|
||||
/* 00A74 80887D64 440A5000 */ mfc1 $t2, $f10
|
||||
/* 00A78 80887D68 3C018000 */ lui $at, 0x8000 ## $at = 80000000
|
||||
/* 00A7C 80887D6C 10000007 */ beq $zero, $zero, .L80887D8C
|
||||
/* 00A80 80887D70 01415025 */ or $t2, $t2, $at ## $t2 = 80000000
|
||||
.L80887D74:
|
||||
/* 00A84 80887D74 10000005 */ beq $zero, $zero, .L80887D8C
|
||||
/* 00A88 80887D78 240AFFFF */ addiu $t2, $zero, 0xFFFF ## $t2 = FFFFFFFF
|
||||
/* 00A8C 80887D7C 440A5000 */ mfc1 $t2, $f10
|
||||
.L80887D80:
|
||||
/* 00A90 80887D80 00000000 */ nop
|
||||
/* 00A94 80887D84 0540FFFB */ bltz $t2, .L80887D74
|
||||
/* 00A98 80887D88 00000000 */ nop
|
||||
.L80887D8C:
|
||||
/* 00A9C 80887D8C 314B00FF */ andi $t3, $t2, 0x00FF ## $t3 = 000000FF
|
||||
/* 00AA0 80887D90 3C01FFDC */ lui $at, 0xFFDC ## $at = FFDC0000
|
||||
/* 00AA4 80887D94 01616025 */ or $t4, $t3, $at ## $t4 = FFDC00FF
|
||||
/* 00AA8 80887D98 AC6C0004 */ sw $t4, 0x0004($v1) ## 00000004
|
||||
/* 00AAC 80887D9C 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
|
||||
/* 00AB0 80887DA0 3C030001 */ lui $v1, 0x0001 ## $v1 = 00010000
|
||||
/* 00AB4 80887DA4 00711821 */ addu $v1, $v1, $s1
|
||||
/* 00AB8 80887DA8 244D0008 */ addiu $t5, $v0, 0x0008 ## $t5 = 00000008
|
||||
/* 00ABC 80887DAC AE0D02D0 */ sw $t5, 0x02D0($s0) ## 000002D0
|
||||
/* 00AC0 80887DB0 AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000
|
||||
/* 00AC4 80887DB4 AC4F0004 */ sw $t7, 0x0004($v0) ## 00000004
|
||||
/* 00AC8 80887DB8 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
|
||||
/* 00ACC 80887DBC 44C9F800 */ ctc1 $t1, $31
|
||||
/* 00AD0 80887DC0 24090020 */ addiu $t1, $zero, 0x0020 ## $t1 = 00000020
|
||||
/* 00AD4 80887DC4 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
|
||||
/* 00AD8 80887DC8 AE1802D0 */ sw $t8, 0x02D0($s0) ## 000002D0
|
||||
/* 00ADC 80887DCC AC590000 */ sw $t9, 0x0000($v0) ## 00000000
|
||||
/* 00AE0 80887DD0 8C631DE4 */ lw $v1, 0x1DE4($v1) ## 00011DE4
|
||||
/* 00AE4 80887DD4 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
|
||||
/* 00AE8 80887DD8 240F0040 */ addiu $t7, $zero, 0x0040 ## $t7 = 00000040
|
||||
/* 00AEC 80887DDC 00030823 */ subu $at, $zero, $v1
|
||||
/* 00AF0 80887DE0 00016100 */ sll $t4, $at, 4
|
||||
/* 00AF4 80887DE4 01816023 */ subu $t4, $t4, $at
|
||||
/* 00AF8 80887DE8 318D00FF */ andi $t5, $t4, 0x00FF ## $t5 = 000000FF
|
||||
/* 00AFC 80887DEC 240E0020 */ addiu $t6, $zero, 0x0020 ## $t6 = 00000020
|
||||
/* 00B00 80887DF0 240B0001 */ addiu $t3, $zero, 0x0001 ## $t3 = 00000001
|
||||
/* 00B04 80887DF4 240A0040 */ addiu $t2, $zero, 0x0040 ## $t2 = 00000040
|
||||
/* 00B08 80887DF8 AFAA0014 */ sw $t2, 0x0014($sp)
|
||||
/* 00B0C 80887DFC AFAB0018 */ sw $t3, 0x0018($sp)
|
||||
/* 00B10 80887E00 AFAE0024 */ sw $t6, 0x0024($sp)
|
||||
/* 00B14 80887E04 AFAD0020 */ sw $t5, 0x0020($sp)
|
||||
/* 00B18 80887E08 AFAF0028 */ sw $t7, 0x0028($sp)
|
||||
/* 00B1C 80887E0C AFA0001C */ sw $zero, 0x001C($sp)
|
||||
/* 00B20 80887E10 AFA90010 */ sw $t1, 0x0010($sp)
|
||||
/* 00B24 80887E14 AFA20050 */ sw $v0, 0x0050($sp)
|
||||
/* 00B28 80887E18 0C0253D0 */ jal Gfx_TwoTexScroll
|
||||
/* 00B2C 80887E1C 3066007F */ andi $a2, $v1, 0x007F ## $a2 = 00000000
|
||||
/* 00B30 80887E20 8FA80050 */ lw $t0, 0x0050($sp)
|
||||
/* 00B34 80887E24 3C19DA38 */ lui $t9, 0xDA38 ## $t9 = DA380000
|
||||
/* 00B38 80887E28 37390003 */ ori $t9, $t9, 0x0003 ## $t9 = DA380003
|
||||
/* 00B3C 80887E2C AD020004 */ sw $v0, 0x0004($t0) ## 00000004
|
||||
/* 00B40 80887E30 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
|
||||
/* 00B44 80887E34 3C058088 */ lui $a1, %hi(D_80887F18) ## $a1 = 80880000
|
||||
/* 00B48 80887E38 24A57F18 */ addiu $a1, $a1, %lo(D_80887F18) ## $a1 = 80887F18
|
||||
/* 00B4C 80887E3C 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
|
||||
/* 00B50 80887E40 AE1802D0 */ sw $t8, 0x02D0($s0) ## 000002D0
|
||||
/* 00B54 80887E44 AC590000 */ sw $t9, 0x0000($v0) ## 00000000
|
||||
/* 00B58 80887E48 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
|
||||
/* 00B5C 80887E4C 24060294 */ addiu $a2, $zero, 0x0294 ## $a2 = 00000294
|
||||
/* 00B60 80887E50 0C0346A2 */ jal Matrix_NewMtx
|
||||
/* 00B64 80887E54 AFA2004C */ sw $v0, 0x004C($sp)
|
||||
/* 00B68 80887E58 8FA3004C */ lw $v1, 0x004C($sp)
|
||||
/* 00B6C 80887E5C 3C0B0601 */ lui $t3, 0x0601 ## $t3 = 06010000
|
||||
/* 00B70 80887E60 256BDB20 */ addiu $t3, $t3, 0xDB20 ## $t3 = 0600DB20
|
||||
/* 00B74 80887E64 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
|
||||
/* 00B78 80887E68 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
|
||||
/* 00B7C 80887E6C 3C0ADE00 */ lui $t2, 0xDE00 ## $t2 = DE000000
|
||||
/* 00B80 80887E70 3C068088 */ lui $a2, %hi(D_80887F30) ## $a2 = 80880000
|
||||
/* 00B84 80887E74 24490008 */ addiu $t1, $v0, 0x0008 ## $t1 = 00000008
|
||||
/* 00B88 80887E78 AE0902D0 */ sw $t1, 0x02D0($s0) ## 000002D0
|
||||
/* 00B8C 80887E7C AC4B0004 */ sw $t3, 0x0004($v0) ## 00000004
|
||||
/* 00B90 80887E80 AC4A0000 */ sw $t2, 0x0000($v0) ## 00000000
|
||||
/* 00B94 80887E84 8E250000 */ lw $a1, 0x0000($s1) ## 00000000
|
||||
/* 00B98 80887E88 24C67F30 */ addiu $a2, $a2, %lo(D_80887F30) ## $a2 = 80887F30
|
||||
/* 00B9C 80887E8C 27A40064 */ addiu $a0, $sp, 0x0064 ## $a0 = FFFFFFE4
|
||||
/* 00BA0 80887E90 0C031AD5 */ jal Graph_CloseDisps
|
||||
/* 00BA4 80887E94 24070298 */ addiu $a3, $zero, 0x0298 ## $a3 = 00000298
|
||||
/* 00BA8 80887E98 8FBF003C */ lw $ra, 0x003C($sp)
|
||||
/* 00BAC 80887E9C 8FB00034 */ lw $s0, 0x0034($sp)
|
||||
/* 00BB0 80887EA0 8FB10038 */ lw $s1, 0x0038($sp)
|
||||
/* 00BB4 80887EA4 03E00008 */ jr $ra
|
||||
/* 00BB8 80887EA8 27BD0080 */ addiu $sp, $sp, 0x0080 ## $sp = 00000000
|
||||
/* 00BBC 80887EAC 00000000 */ nop
|
|
@ -1,115 +0,0 @@
|
|||
glabel BgHidanFwbig_Init
|
||||
/* 00000 808872F0 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
|
||||
/* 00004 808872F4 AFBF001C */ sw $ra, 0x001C($sp)
|
||||
/* 00008 808872F8 AFB00018 */ sw $s0, 0x0018($sp)
|
||||
/* 0000C 808872FC AFA50034 */ sw $a1, 0x0034($sp)
|
||||
/* 00010 80887300 8CAF1C44 */ lw $t7, 0x1C44($a1) ## 00001C44
|
||||
/* 00014 80887304 3C058088 */ lui $a1, %hi(D_80887EFC) ## $a1 = 80880000
|
||||
/* 00018 80887308 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 0001C 8088730C 24A57EFC */ addiu $a1, $a1, %lo(D_80887EFC) ## $a1 = 80887EFC
|
||||
/* 00020 80887310 0C01E037 */ jal Actor_ProcessInitChain
|
||||
|
||||
/* 00024 80887314 AFAF0024 */ sw $t7, 0x0024($sp)
|
||||
/* 00028 80887318 26050154 */ addiu $a1, $s0, 0x0154 ## $a1 = 00000154
|
||||
/* 0002C 8088731C AFA50020 */ sw $a1, 0x0020($sp)
|
||||
/* 00030 80887320 0C0170D9 */ jal Collider_InitCylinder
|
||||
|
||||
/* 00034 80887324 8FA40034 */ lw $a0, 0x0034($sp)
|
||||
/* 00038 80887328 3C078088 */ lui $a3, %hi(D_80887ED0) ## $a3 = 80880000
|
||||
/* 0003C 8088732C 8FA50020 */ lw $a1, 0x0020($sp)
|
||||
/* 00040 80887330 24E77ED0 */ addiu $a3, $a3, %lo(D_80887ED0) ## $a3 = 80887ED0
|
||||
/* 00044 80887334 8FA40034 */ lw $a0, 0x0034($sp)
|
||||
/* 00048 80887338 0C01712B */ jal Collider_SetCylinder
|
||||
|
||||
/* 0004C 8088733C 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
|
||||
/* 00050 80887340 8619001C */ lh $t9, 0x001C($s0) ## 0000001C
|
||||
/* 00054 80887344 860A001C */ lh $t2, 0x001C($s0) ## 0000001C
|
||||
/* 00058 80887348 241800FF */ addiu $t8, $zero, 0x00FF ## $t8 = 000000FF
|
||||
/* 0005C 8088734C 00194A03 */ sra $t1, $t9, 8
|
||||
/* 00060 80887350 A2090150 */ sb $t1, 0x0150($s0) ## 00000150
|
||||
/* 00064 80887354 820C0150 */ lb $t4, 0x0150($s0) ## 00000150
|
||||
/* 00068 80887358 314B00FF */ andi $t3, $t2, 0x00FF ## $t3 = 00000000
|
||||
/* 0006C 8088735C A21800AE */ sb $t8, 0x00AE($s0) ## 000000AE
|
||||
/* 00070 80887360 1180003D */ beq $t4, $zero, .L80887458
|
||||
/* 00074 80887364 A60B001C */ sh $t3, 0x001C($s0) ## 0000001C
|
||||
/* 00078 80887368 3C0144C3 */ lui $at, 0x44C3 ## $at = 44C30000
|
||||
/* 0007C 8088736C 44812000 */ mtc1 $at, $f4 ## $f4 = 1560.00
|
||||
/* 00080 80887370 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00
|
||||
/* 00084 80887374 3C014396 */ lui $at, 0x4396 ## $at = 43960000
|
||||
/* 00088 80887378 E6040008 */ swc1 $f4, 0x0008($s0) ## 00000008
|
||||
/* 0008C 8088737C E6060010 */ swc1 $f6, 0x0010($s0) ## 00000010
|
||||
/* 00090 80887380 8FAD0024 */ lw $t5, 0x0024($sp)
|
||||
/* 00094 80887384 44814000 */ mtc1 $at, $f8 ## $f8 = 300.00
|
||||
/* 00098 80887388 240EFFFF */ addiu $t6, $zero, 0xFFFF ## $t6 = FFFFFFFF
|
||||
/* 0009C 8088738C C5A0002C */ lwc1 $f0, 0x002C($t5) ## 0000002C
|
||||
/* 000A0 80887390 240FB1C8 */ addiu $t7, $zero, 0xB1C8 ## $t7 = FFFFB1C8
|
||||
/* 000A4 80887394 3C01C396 */ lui $at, 0xC396 ## $at = C3960000
|
||||
/* 000A8 80887398 4600403C */ c.lt.s $f8, $f0
|
||||
/* 000AC 8088739C 00000000 */ nop
|
||||
/* 000B0 808873A0 45020007 */ bc1fl .L808873C0
|
||||
/* 000B4 808873A4 44815000 */ mtc1 $at, $f10 ## $f10 = -300.00
|
||||
/* 000B8 808873A8 A60F00B6 */ sh $t7, 0x00B6($s0) ## 000000B6
|
||||
/* 000BC 808873AC 861800B6 */ lh $t8, 0x00B6($s0) ## 000000B6
|
||||
/* 000C0 808873B0 A20E0150 */ sb $t6, 0x0150($s0) ## 00000150
|
||||
/* 000C4 808873B4 10000011 */ beq $zero, $zero, .L808873FC
|
||||
/* 000C8 808873B8 A6180016 */ sh $t8, 0x0016($s0) ## 00000016
|
||||
/* 000CC 808873BC 44815000 */ mtc1 $at, $f10 ## $f10 = -300.00
|
||||
.L808873C0:
|
||||
/* 000D0 808873C0 24190001 */ addiu $t9, $zero, 0x0001 ## $t9 = 00000001
|
||||
/* 000D4 808873C4 2408CE38 */ addiu $t0, $zero, 0xCE38 ## $t0 = FFFFCE38
|
||||
/* 000D8 808873C8 460A003C */ c.lt.s $f0, $f10
|
||||
/* 000DC 808873CC 00000000 */ nop
|
||||
/* 000E0 808873D0 45000006 */ bc1f .L808873EC
|
||||
/* 000E4 808873D4 00000000 */ nop
|
||||
/* 000E8 808873D8 A60800B6 */ sh $t0, 0x00B6($s0) ## 000000B6
|
||||
/* 000EC 808873DC 860900B6 */ lh $t1, 0x00B6($s0) ## 000000B6
|
||||
/* 000F0 808873E0 A2190150 */ sb $t9, 0x0150($s0) ## 00000150
|
||||
/* 000F4 808873E4 10000005 */ beq $zero, $zero, .L808873FC
|
||||
/* 000F8 808873E8 A6090016 */ sh $t1, 0x0016($s0) ## 00000016
|
||||
.L808873EC:
|
||||
/* 000FC 808873EC 0C00B55C */ jal Actor_Kill
|
||||
|
||||
/* 00100 808873F0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00104 808873F4 10000020 */ beq $zero, $zero, .L80887478
|
||||
/* 00108 808873F8 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
.L808873FC:
|
||||
/* 0010C 808873FC 0C221D2C */ jal func_808874B0
|
||||
/* 00110 80887400 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00114 80887404 3C053E19 */ lui $a1, 0x3E19 ## $a1 = 3E190000
|
||||
/* 00118 80887408 34A5999A */ ori $a1, $a1, 0x999A ## $a1 = 3E19999A
|
||||
/* 0011C 8088740C 0C00B58B */ jal Actor_SetScale
|
||||
|
||||
/* 00120 80887410 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00124 80887414 3C014516 */ lui $at, 0x4516 ## $at = 45160000
|
||||
/* 00128 80887418 44818000 */ mtc1 $at, $f16 ## $f16 = 2400.00
|
||||
/* 0012C 8088741C C6120054 */ lwc1 $f18, 0x0054($s0) ## 00000054
|
||||
/* 00130 80887420 C606000C */ lwc1 $f6, 0x000C($s0) ## 0000000C
|
||||
/* 00134 80887424 8E0B0004 */ lw $t3, 0x0004($s0) ## 00000004
|
||||
/* 00138 80887428 46128102 */ mul.s $f4, $f16, $f18
|
||||
/* 0013C 8088742C 3C0D8088 */ lui $t5, %hi(func_80887768) ## $t5 = 80880000
|
||||
/* 00140 80887430 240A00E6 */ addiu $t2, $zero, 0x00E6 ## $t2 = 000000E6
|
||||
/* 00144 80887434 25AD7768 */ addiu $t5, $t5, %lo(func_80887768) ## $t5 = 80887768
|
||||
/* 00148 80887438 356C0010 */ ori $t4, $t3, 0x0010 ## $t4 = 00000010
|
||||
/* 0014C 8088743C A60A0196 */ sh $t2, 0x0196($s0) ## 00000196
|
||||
/* 00150 80887440 AE0C0004 */ sw $t4, 0x0004($s0) ## 00000004
|
||||
/* 00154 80887444 46043201 */ sub.s $f8, $f6, $f4
|
||||
/* 00158 80887448 A2000151 */ sb $zero, 0x0151($s0) ## 00000151
|
||||
/* 0015C 8088744C AE0D014C */ sw $t5, 0x014C($s0) ## 0000014C
|
||||
/* 00160 80887450 10000008 */ beq $zero, $zero, .L80887474
|
||||
/* 00164 80887454 E6080028 */ swc1 $f8, 0x0028($s0) ## 00000028
|
||||
.L80887458:
|
||||
/* 00168 80887458 3C053DCC */ lui $a1, 0x3DCC ## $a1 = 3DCC0000
|
||||
/* 0016C 8088745C 34A5CCCD */ ori $a1, $a1, 0xCCCD ## $a1 = 3DCCCCCD
|
||||
/* 00170 80887460 0C00B58B */ jal Actor_SetScale
|
||||
|
||||
/* 00174 80887464 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00178 80887468 3C0E8088 */ lui $t6, %hi(func_80887534) ## $t6 = 80880000
|
||||
/* 0017C 8088746C 25CE7534 */ addiu $t6, $t6, %lo(func_80887534) ## $t6 = 80887534
|
||||
/* 00180 80887470 AE0E014C */ sw $t6, 0x014C($s0) ## 0000014C
|
||||
.L80887474:
|
||||
/* 00184 80887474 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
.L80887478:
|
||||
/* 00188 80887478 8FB00018 */ lw $s0, 0x0018($sp)
|
||||
/* 0018C 8088747C 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
|
||||
/* 00190 80887480 03E00008 */ jr $ra
|
||||
/* 00194 80887484 00000000 */ nop
|
|
@ -1,104 +0,0 @@
|
|||
glabel BgHidanFwbig_Update
|
||||
/* 00768 80887A58 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
|
||||
/* 0076C 80887A5C AFBF0024 */ sw $ra, 0x0024($sp)
|
||||
/* 00770 80887A60 AFB10020 */ sw $s1, 0x0020($sp)
|
||||
/* 00774 80887A64 AFB0001C */ sw $s0, 0x001C($sp)
|
||||
/* 00778 80887A68 90820164 */ lbu $v0, 0x0164($a0) ## 00000164
|
||||
/* 0077C 80887A6C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00780 80887A70 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
|
||||
/* 00784 80887A74 304E0002 */ andi $t6, $v0, 0x0002 ## $t6 = 00000000
|
||||
/* 00788 80887A78 11C00010 */ beq $t6, $zero, .L80887ABC
|
||||
/* 0078C 80887A7C 304FFFFD */ andi $t7, $v0, 0xFFFD ## $t7 = 00000000
|
||||
/* 00790 80887A80 A08F0164 */ sb $t7, 0x0164($a0) ## 00000164
|
||||
/* 00794 80887A84 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
|
||||
/* 00798 80887A88 44812000 */ mtc1 $at, $f4 ## $f4 = 1.00
|
||||
/* 0079C 80887A8C 86070032 */ lh $a3, 0x0032($s0) ## 00000032
|
||||
/* 007A0 80887A90 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
|
||||
/* 007A4 80887A94 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
|
||||
/* 007A8 80887A98 3C0640A0 */ lui $a2, 0x40A0 ## $a2 = 40A00000
|
||||
/* 007AC 80887A9C 0C00BDC7 */ jal func_8002F71C
|
||||
/* 007B0 80887AA0 E7A40010 */ swc1 $f4, 0x0010($sp)
|
||||
/* 007B4 80887AA4 82180150 */ lb $t8, 0x0150($s0) ## 00000150
|
||||
/* 007B8 80887AA8 3C198088 */ lui $t9, %hi(func_80887638) ## $t9 = 80880000
|
||||
/* 007BC 80887AAC 27397638 */ addiu $t9, $t9, %lo(func_80887638) ## $t9 = 80887638
|
||||
/* 007C0 80887AB0 53000003 */ beql $t8, $zero, .L80887AC0
|
||||
/* 007C4 80887AB4 82080150 */ lb $t0, 0x0150($s0) ## 00000150
|
||||
/* 007C8 80887AB8 AE19014C */ sw $t9, 0x014C($s0) ## 0000014C
|
||||
.L80887ABC:
|
||||
/* 007CC 80887ABC 82080150 */ lb $t0, 0x0150($s0) ## 00000150
|
||||
.L80887AC0:
|
||||
/* 007D0 80887AC0 3C0A0001 */ lui $t2, 0x0001 ## $t2 = 00010000
|
||||
/* 007D4 80887AC4 01515021 */ addu $t2, $t2, $s1
|
||||
/* 007D8 80887AC8 5100000A */ beql $t0, $zero, .L80887AF4
|
||||
/* 007DC 80887ACC 8E19014C */ lw $t9, 0x014C($s0) ## 0000014C
|
||||
/* 007E0 80887AD0 82090003 */ lb $t1, 0x0003($s0) ## 00000003
|
||||
/* 007E4 80887AD4 814A1CD0 */ lb $t2, 0x1CD0($t2) ## 00011CD0
|
||||
/* 007E8 80887AD8 3C0C8088 */ lui $t4, %hi(func_80887638) ## $t4 = 80880000
|
||||
/* 007EC 80887ADC 240B0002 */ addiu $t3, $zero, 0x0002 ## $t3 = 00000002
|
||||
/* 007F0 80887AE0 152A0003 */ bne $t1, $t2, .L80887AF0
|
||||
/* 007F4 80887AE4 258C7638 */ addiu $t4, $t4, %lo(func_80887638) ## $t4 = 80887638
|
||||
/* 007F8 80887AE8 A20B0151 */ sb $t3, 0x0151($s0) ## 00000151
|
||||
/* 007FC 80887AEC AE0C014C */ sw $t4, 0x014C($s0) ## 0000014C
|
||||
.L80887AF0:
|
||||
/* 00800 80887AF0 8E19014C */ lw $t9, 0x014C($s0) ## 0000014C
|
||||
.L80887AF4:
|
||||
/* 00804 80887AF4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00808 80887AF8 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
|
||||
/* 0080C 80887AFC 0320F809 */ jalr $ra, $t9
|
||||
/* 00810 80887B00 00000000 */ nop
|
||||
/* 00814 80887B04 3C014348 */ lui $at, 0x4348 ## $at = 43480000
|
||||
/* 00818 80887B08 44814000 */ mtc1 $at, $f8 ## $f8 = 200.00
|
||||
/* 0081C 80887B0C C606000C */ lwc1 $f6, 0x000C($s0) ## 0000000C
|
||||
/* 00820 80887B10 C6100028 */ lwc1 $f16, 0x0028($s0) ## 00000028
|
||||
/* 00824 80887B14 3C0D8016 */ lui $t5, %hi(gSaveContext+0x1360)
|
||||
/* 00828 80887B18 46083281 */ sub.s $f10, $f6, $f8
|
||||
/* 0082C 80887B1C 4610503C */ c.lt.s $f10, $f16
|
||||
/* 00830 80887B20 00000000 */ nop
|
||||
/* 00834 80887B24 45020026 */ bc1fl .L80887BC0
|
||||
/* 00838 80887B28 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
/* 0083C 80887B2C 8DADF9C0 */ lw $t5, %lo(gSaveContext+0x1360)($t5)
|
||||
/* 00840 80887B30 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00844 80887B34 29A10004 */ slti $at, $t5, 0x0004
|
||||
/* 00848 80887B38 50200006 */ beql $at, $zero, .L80887B54
|
||||
/* 0084C 80887B3C C6120024 */ lwc1 $f18, 0x0024($s0) ## 00000024
|
||||
/* 00850 80887B40 0C00BE5D */ jal func_8002F974
|
||||
/* 00854 80887B44 240520B3 */ addiu $a1, $zero, 0x20B3 ## $a1 = 000020B3
|
||||
/* 00858 80887B48 1000000E */ beq $zero, $zero, .L80887B84
|
||||
/* 0085C 80887B4C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00860 80887B50 C6120024 */ lwc1 $f18, 0x0024($s0) ## 00000024
|
||||
.L80887B54:
|
||||
/* 00864 80887B54 2401FDFF */ addiu $at, $zero, 0xFDFF ## $at = FFFFFDFF
|
||||
/* 00868 80887B58 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 0086C 80887B5C 4600910D */ trunc.w.s $f4, $f18
|
||||
/* 00870 80887B60 440F2000 */ mfc1 $t7, $f4
|
||||
/* 00874 80887B64 00000000 */ nop
|
||||
/* 00878 80887B68 000FC400 */ sll $t8, $t7, 16
|
||||
/* 0087C 80887B6C 00184403 */ sra $t0, $t8, 16
|
||||
/* 00880 80887B70 55010004 */ bnel $t0, $at, .L80887B84
|
||||
/* 00884 80887B74 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00888 80887B78 0C00BE5D */ jal func_8002F974
|
||||
/* 0088C 80887B7C 240520BB */ addiu $a1, $zero, 0x20BB ## $a1 = 000020BB
|
||||
/* 00890 80887B80 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
.L80887B84:
|
||||
/* 00894 80887B84 0C221E19 */ jal func_80887864
|
||||
/* 00898 80887B88 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
|
||||
/* 0089C 80887B8C 3C010001 */ lui $at, 0x0001 ## $at = 00010000
|
||||
/* 008A0 80887B90 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
|
||||
/* 008A4 80887B94 02212821 */ addu $a1, $s1, $at
|
||||
/* 008A8 80887B98 26060154 */ addiu $a2, $s0, 0x0154 ## $a2 = 00000154
|
||||
/* 008AC 80887B9C AFA60028 */ sw $a2, 0x0028($sp)
|
||||
/* 008B0 80887BA0 AFA5002C */ sw $a1, 0x002C($sp)
|
||||
/* 008B4 80887BA4 0C0175E7 */ jal CollisionCheck_SetAT
|
||||
## CollisionCheck_setAT
|
||||
/* 008B8 80887BA8 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
||||
/* 008BC 80887BAC 8FA5002C */ lw $a1, 0x002C($sp)
|
||||
/* 008C0 80887BB0 8FA60028 */ lw $a2, 0x0028($sp)
|
||||
/* 008C4 80887BB4 0C017713 */ jal CollisionCheck_SetOC
|
||||
## CollisionCheck_setOT
|
||||
/* 008C8 80887BB8 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
||||
/* 008CC 80887BBC 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
.L80887BC0:
|
||||
/* 008D0 80887BC0 8FB0001C */ lw $s0, 0x001C($sp)
|
||||
/* 008D4 80887BC4 8FB10020 */ lw $s1, 0x0020($sp)
|
||||
/* 008D8 80887BC8 03E00008 */ jr $ra
|
||||
/* 008DC 80887BCC 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
|
|
@ -1,43 +0,0 @@
|
|||
.late_rodata
|
||||
glabel D_80887F48
|
||||
.word 0x445D599A
|
||||
glabel D_80887F4C
|
||||
.word 0x445D599A
|
||||
|
||||
.text
|
||||
glabel func_808874B0
|
||||
/* 001C0 808874B0 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
|
||||
/* 001C4 808874B4 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 001C8 808874B8 808F0150 */ lb $t7, 0x0150($a0) ## 00000150
|
||||
/* 001CC 808874BC 848E00B6 */ lh $t6, 0x00B6($a0) ## 000000B6
|
||||
/* 001D0 808874C0 00802825 */ or $a1, $a0, $zero ## $a1 = 00000000
|
||||
/* 001D4 808874C4 000F0823 */ subu $at, $zero, $t7
|
||||
/* 001D8 808874C8 0001C380 */ sll $t8, $at, 14
|
||||
/* 001DC 808874CC 01D82021 */ addu $a0, $t6, $t8
|
||||
/* 001E0 808874D0 00042400 */ sll $a0, $a0, 16
|
||||
/* 001E4 808874D4 00042403 */ sra $a0, $a0, 16
|
||||
/* 001E8 808874D8 A7A4001E */ sh $a0, 0x001E($sp)
|
||||
/* 001EC 808874DC 0C01DE1C */ jal Math_Sins
|
||||
## sins?
|
||||
/* 001F0 808874E0 AFA50020 */ sw $a1, 0x0020($sp)
|
||||
/* 001F4 808874E4 3C018088 */ lui $at, %hi(D_80887F48) ## $at = 80880000
|
||||
/* 001F8 808874E8 C4247F48 */ lwc1 $f4, %lo(D_80887F48)($at)
|
||||
/* 001FC 808874EC 8FA50020 */ lw $a1, 0x0020($sp)
|
||||
/* 00200 808874F0 87A4001E */ lh $a0, 0x001E($sp)
|
||||
/* 00204 808874F4 46040182 */ mul.s $f6, $f0, $f4
|
||||
/* 00208 808874F8 C4A80008 */ lwc1 $f8, 0x0008($a1) ## 00000008
|
||||
/* 0020C 808874FC 46083280 */ add.s $f10, $f6, $f8
|
||||
/* 00210 80887500 0C01DE0D */ jal Math_Coss
|
||||
## coss?
|
||||
/* 00214 80887504 E4AA0024 */ swc1 $f10, 0x0024($a1) ## 00000024
|
||||
/* 00218 80887508 3C018088 */ lui $at, %hi(D_80887F4C) ## $at = 80880000
|
||||
/* 0021C 8088750C C4307F4C */ lwc1 $f16, %lo(D_80887F4C)($at)
|
||||
/* 00220 80887510 8FA50020 */ lw $a1, 0x0020($sp)
|
||||
/* 00224 80887514 46100482 */ mul.s $f18, $f0, $f16
|
||||
/* 00228 80887518 C4A40010 */ lwc1 $f4, 0x0010($a1) ## 00000010
|
||||
/* 0022C 8088751C 46049180 */ add.s $f6, $f18, $f4
|
||||
/* 00230 80887520 E4A6002C */ swc1 $f6, 0x002C($a1) ## 0000002C
|
||||
/* 00234 80887524 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 00238 80887528 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
|
||||
/* 0023C 8088752C 03E00008 */ jr $ra
|
||||
/* 00240 80887530 00000000 */ nop
|
|
@ -1,28 +0,0 @@
|
|||
glabel func_80887534
|
||||
/* 00244 80887534 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
|
||||
/* 00248 80887538 AFA40020 */ sw $a0, 0x0020($sp)
|
||||
/* 0024C 8088753C 8FAE0020 */ lw $t6, 0x0020($sp)
|
||||
/* 00250 80887540 AFBF001C */ sw $ra, 0x001C($sp)
|
||||
/* 00254 80887544 AFA50024 */ sw $a1, 0x0024($sp)
|
||||
/* 00258 80887548 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
|
||||
/* 0025C 8088754C 0C00B2D0 */ jal Flags_GetSwitch
|
||||
|
||||
/* 00260 80887550 85C5001C */ lh $a1, 0x001C($t6) ## 0000001C
|
||||
/* 00264 80887554 1040000C */ beq $v0, $zero, .L80887588
|
||||
/* 00268 80887558 8FA70020 */ lw $a3, 0x0020($sp)
|
||||
/* 0026C 8088755C 3C0F8088 */ lui $t7, %hi(func_80887598) ## $t7 = 80880000
|
||||
/* 00270 80887560 25EF7598 */ addiu $t7, $t7, %lo(func_80887598) ## $t7 = 80887598
|
||||
/* 00274 80887564 ACEF014C */ sw $t7, 0x014C($a3) ## 0000014C
|
||||
/* 00278 80887568 AFA00010 */ sw $zero, 0x0010($sp)
|
||||
/* 0027C 8088756C 8FA40024 */ lw $a0, 0x0024($sp)
|
||||
/* 00280 80887570 24050D0C */ addiu $a1, $zero, 0x0D0C ## $a1 = 00000D0C
|
||||
/* 00284 80887574 0C02003E */ jal func_800800F8
|
||||
/* 00288 80887578 2406FF9D */ addiu $a2, $zero, 0xFF9D ## $a2 = FFFFFF9D
|
||||
/* 0028C 8088757C 8FB90020 */ lw $t9, 0x0020($sp)
|
||||
/* 00290 80887580 24180023 */ addiu $t8, $zero, 0x0023 ## $t8 = 00000023
|
||||
/* 00294 80887584 A7380152 */ sh $t8, 0x0152($t9) ## 00000152
|
||||
.L80887588:
|
||||
/* 00298 80887588 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
/* 0029C 8088758C 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
|
||||
/* 002A0 80887590 03E00008 */ jr $ra
|
||||
/* 002A4 80887594 00000000 */ nop
|
|
@ -1,13 +0,0 @@
|
|||
glabel func_80887598
|
||||
/* 002A8 80887598 AFA50004 */ sw $a1, 0x0004($sp)
|
||||
/* 002AC 8088759C 84830152 */ lh $v1, 0x0152($a0) ## 00000152
|
||||
/* 002B0 808875A0 3C0F8088 */ lui $t7, %hi(func_80887638) ## $t7 = 80880000
|
||||
/* 002B4 808875A4 25EF7638 */ addiu $t7, $t7, %lo(func_80887638) ## $t7 = 80887638
|
||||
/* 002B8 808875A8 2C620001 */ sltiu $v0, $v1, 0x0001
|
||||
/* 002BC 808875AC 246EFFFF */ addiu $t6, $v1, 0xFFFF ## $t6 = FFFFFFFF
|
||||
/* 002C0 808875B0 10400002 */ beq $v0, $zero, .L808875BC
|
||||
/* 002C4 808875B4 A48E0152 */ sh $t6, 0x0152($a0) ## 00000152
|
||||
/* 002C8 808875B8 AC8F014C */ sw $t7, 0x014C($a0) ## 0000014C
|
||||
.L808875BC:
|
||||
/* 002CC 808875BC 03E00008 */ jr $ra
|
||||
/* 002D0 808875C0 00000000 */ nop
|
|
@ -1,34 +0,0 @@
|
|||
glabel func_808875C4
|
||||
/* 002D4 808875C4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 002D8 808875C8 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 002DC 808875CC AFA5001C */ sw $a1, 0x001C($sp)
|
||||
/* 002E0 808875D0 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
|
||||
/* 002E4 808875D4 8CE5000C */ lw $a1, 0x000C($a3) ## 0000000C
|
||||
/* 002E8 808875D8 AFA70018 */ sw $a3, 0x0018($sp)
|
||||
/* 002EC 808875DC 24840028 */ addiu $a0, $a0, 0x0028 ## $a0 = 00000028
|
||||
/* 002F0 808875E0 0C01DE80 */ jal Math_ApproxF
|
||||
|
||||
/* 002F4 808875E4 3C064120 */ lui $a2, 0x4120 ## $a2 = 41200000
|
||||
/* 002F8 808875E8 1040000F */ beq $v0, $zero, .L80887628
|
||||
/* 002FC 808875EC 8FA70018 */ lw $a3, 0x0018($sp)
|
||||
/* 00300 808875F0 80EE0150 */ lb $t6, 0x0150($a3) ## 00000150
|
||||
/* 00304 808875F4 3C188088 */ lui $t8, %hi(func_808877C4) ## $t8 = 80880000
|
||||
/* 00308 808875F8 8FA4001C */ lw $a0, 0x001C($sp)
|
||||
/* 0030C 808875FC 15C00009 */ bne $t6, $zero, .L80887624
|
||||
/* 00310 80887600 271877C4 */ addiu $t8, $t8, %lo(func_808877C4) ## $t8 = 808877C4
|
||||
/* 00314 80887604 84E5001C */ lh $a1, 0x001C($a3) ## 0000001C
|
||||
/* 00318 80887608 0C00B2ED */ jal Flags_UnsetSwitch
|
||||
|
||||
/* 0031C 8088760C AFA70018 */ sw $a3, 0x0018($sp)
|
||||
/* 00320 80887610 8FA70018 */ lw $a3, 0x0018($sp)
|
||||
/* 00324 80887614 3C0F8088 */ lui $t7, %hi(func_80887534) ## $t7 = 80880000
|
||||
/* 00328 80887618 25EF7534 */ addiu $t7, $t7, %lo(func_80887534) ## $t7 = 80887534
|
||||
/* 0032C 8088761C 10000002 */ beq $zero, $zero, .L80887628
|
||||
/* 00330 80887620 ACEF014C */ sw $t7, 0x014C($a3) ## 0000014C
|
||||
.L80887624:
|
||||
/* 00334 80887624 ACF8014C */ sw $t8, 0x014C($a3) ## 0000014C
|
||||
.L80887628:
|
||||
/* 00338 80887628 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 0033C 8088762C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 00340 80887630 03E00008 */ jr $ra
|
||||
/* 00344 80887634 00000000 */ nop
|
|
@ -1,65 +0,0 @@
|
|||
glabel func_80887638
|
||||
/* 00348 80887638 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 0034C 8088763C AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 00350 80887640 AFA5001C */ sw $a1, 0x001C($sp)
|
||||
/* 00354 80887644 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
|
||||
/* 00358 80887648 3C014516 */ lui $at, 0x4516 ## $at = 45160000
|
||||
/* 0035C 8088764C 44812000 */ mtc1 $at, $f4 ## $f4 = 2400.00
|
||||
/* 00360 80887650 C4E60054 */ lwc1 $f6, 0x0054($a3) ## 00000054
|
||||
/* 00364 80887654 C4EA000C */ lwc1 $f10, 0x000C($a3) ## 0000000C
|
||||
/* 00368 80887658 AFA70018 */ sw $a3, 0x0018($sp)
|
||||
/* 0036C 8088765C 46062202 */ mul.s $f8, $f4, $f6
|
||||
/* 00370 80887660 24840028 */ addiu $a0, $a0, 0x0028 ## $a0 = 00000028
|
||||
/* 00374 80887664 3C064120 */ lui $a2, 0x4120 ## $a2 = 41200000
|
||||
/* 00378 80887668 46085401 */ sub.s $f16, $f10, $f8
|
||||
/* 0037C 8088766C 44058000 */ mfc1 $a1, $f16
|
||||
/* 00380 80887670 0C01DE80 */ jal Math_ApproxF
|
||||
|
||||
/* 00384 80887674 00000000 */ nop
|
||||
/* 00388 80887678 10400023 */ beq $v0, $zero, .L80887708
|
||||
/* 0038C 8088767C 8FA70018 */ lw $a3, 0x0018($sp)
|
||||
/* 00390 80887680 80E20150 */ lb $v0, 0x0150($a3) ## 00000150
|
||||
/* 00394 80887684 3C0E8088 */ lui $t6, %hi(func_80887718) ## $t6 = 80880000
|
||||
/* 00398 80887688 25CE7718 */ addiu $t6, $t6, %lo(func_80887718) ## $t6 = 80887718
|
||||
/* 0039C 8088768C 14400004 */ bne $v0, $zero, .L808876A0
|
||||
/* 003A0 80887690 240F0096 */ addiu $t7, $zero, 0x0096 ## $t7 = 00000096
|
||||
/* 003A4 80887694 ACEE014C */ sw $t6, 0x014C($a3) ## 0000014C
|
||||
/* 003A8 80887698 1000001B */ beq $zero, $zero, .L80887708
|
||||
/* 003AC 8088769C A4EF0152 */ sh $t7, 0x0152($a3) ## 00000152
|
||||
.L808876A0:
|
||||
/* 003B0 808876A0 90E30151 */ lbu $v1, 0x0151($a3) ## 00000151
|
||||
/* 003B4 808876A4 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
|
||||
/* 003B8 808876A8 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
|
||||
/* 003BC 808876AC 14610005 */ bne $v1, $at, .L808876C4
|
||||
/* 003C0 808876B0 00000000 */ nop
|
||||
/* 003C4 808876B4 0C00B55C */ jal Actor_Kill
|
||||
|
||||
/* 003C8 808876B8 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
|
||||
/* 003CC 808876BC 10000013 */ beq $zero, $zero, .L8088770C
|
||||
/* 003D0 808876C0 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
.L808876C4:
|
||||
/* 003D4 808876C4 14600007 */ bne $v1, $zero, .L808876E4
|
||||
/* 003D8 808876C8 0002C880 */ sll $t9, $v0, 2
|
||||
/* 003DC 808876CC 84F800B6 */ lh $t8, 0x00B6($a3) ## 000000B6
|
||||
/* 003E0 808876D0 0322C823 */ subu $t9, $t9, $v0
|
||||
/* 003E4 808876D4 0019CAC0 */ sll $t9, $t9, 11
|
||||
/* 003E8 808876D8 03194023 */ subu $t0, $t8, $t9
|
||||
/* 003EC 808876DC 10000004 */ beq $zero, $zero, .L808876F0
|
||||
/* 003F0 808876E0 A4E800B6 */ sh $t0, 0x00B6($a3) ## 000000B6
|
||||
.L808876E4:
|
||||
/* 003F4 808876E4 84E90016 */ lh $t1, 0x0016($a3) ## 00000016
|
||||
/* 003F8 808876E8 A0E00151 */ sb $zero, 0x0151($a3) ## 00000151
|
||||
/* 003FC 808876EC A4E900B6 */ sh $t1, 0x00B6($a3) ## 000000B6
|
||||
.L808876F0:
|
||||
/* 00400 808876F0 0C221D2C */ jal func_808874B0
|
||||
/* 00404 808876F4 AFA70018 */ sw $a3, 0x0018($sp)
|
||||
/* 00408 808876F8 8FA70018 */ lw $a3, 0x0018($sp)
|
||||
/* 0040C 808876FC 3C0A8088 */ lui $t2, %hi(func_808875C4) ## $t2 = 80880000
|
||||
/* 00410 80887700 254A75C4 */ addiu $t2, $t2, %lo(func_808875C4) ## $t2 = 808875C4
|
||||
/* 00414 80887704 ACEA014C */ sw $t2, 0x014C($a3) ## 0000014C
|
||||
.L80887708:
|
||||
/* 00418 80887708 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
.L8088770C:
|
||||
/* 0041C 8088770C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 00420 80887710 03E00008 */ jr $ra
|
||||
/* 00424 80887714 00000000 */ nop
|
|
@ -1,23 +0,0 @@
|
|||
glabel func_80887718
|
||||
/* 00428 80887718 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 0042C 8088771C AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 00430 80887720 AFA5001C */ sw $a1, 0x001C($sp)
|
||||
/* 00434 80887724 84850152 */ lh $a1, 0x0152($a0) ## 00000152
|
||||
/* 00438 80887728 3C0F8088 */ lui $t7, %hi(func_808875C4) ## $t7 = 80880000
|
||||
/* 0043C 8088772C 25EF75C4 */ addiu $t7, $t7, %lo(func_808875C4) ## $t7 = 808875C4
|
||||
/* 00440 80887730 10A00003 */ beq $a1, $zero, .L80887740
|
||||
/* 00444 80887734 24AEFFFF */ addiu $t6, $a1, 0xFFFF ## $t6 = FFFFFFFF
|
||||
/* 00448 80887738 A48E0152 */ sh $t6, 0x0152($a0) ## 00000152
|
||||
/* 0044C 8088773C 84850152 */ lh $a1, 0x0152($a0) ## 00000152
|
||||
.L80887740:
|
||||
/* 00450 80887740 14A00003 */ bne $a1, $zero, .L80887750
|
||||
/* 00454 80887744 00000000 */ nop
|
||||
/* 00458 80887748 AC8F014C */ sw $t7, 0x014C($a0) ## 0000014C
|
||||
/* 0045C 8088774C 84850152 */ lh $a1, 0x0152($a0) ## 00000152
|
||||
.L80887750:
|
||||
/* 00460 80887750 0C00BE65 */ jal func_8002F994
|
||||
/* 00464 80887754 00000000 */ nop
|
||||
/* 00468 80887758 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 0046C 8088775C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 00470 80887760 03E00008 */ jr $ra
|
||||
/* 00474 80887764 00000000 */ nop
|
|
@ -1,30 +0,0 @@
|
|||
.late_rodata
|
||||
glabel D_80887F50
|
||||
.float 1150.0
|
||||
|
||||
.text
|
||||
glabel func_80887768
|
||||
/* 00478 80887768 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
|
||||
/* 0047C 8088776C AFBF001C */ sw $ra, 0x001C($sp)
|
||||
/* 00480 80887770 AFA50024 */ sw $a1, 0x0024($sp)
|
||||
/* 00484 80887774 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44
|
||||
/* 00488 80887778 3C018088 */ lui $at, %hi(D_80887F50) ## $at = 80880000
|
||||
/* 0048C 8088777C C4267F50 */ lwc1 $f6, %lo(D_80887F50)($at)
|
||||
/* 00490 80887780 C4440024 */ lwc1 $f4, 0x0024($v0) ## 00000024
|
||||
/* 00494 80887784 3C0F8088 */ lui $t7, %hi(func_808875C4) ## $t7 = 80880000
|
||||
/* 00498 80887788 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
|
||||
/* 0049C 8088778C 4606203C */ c.lt.s $f4, $f6
|
||||
/* 004A0 80887790 25EF75C4 */ addiu $t7, $t7, %lo(func_808875C4) ## $t7 = 808875C4
|
||||
/* 004A4 80887794 24050CDA */ addiu $a1, $zero, 0x0CDA ## $a1 = 00000CDA
|
||||
/* 004A8 80887798 2406FF9D */ addiu $a2, $zero, 0xFF9D ## $a2 = FFFFFF9D
|
||||
/* 004AC 8088779C 45020006 */ bc1fl .L808877B8
|
||||
/* 004B0 808877A0 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
/* 004B4 808877A4 AC8F014C */ sw $t7, 0x014C($a0) ## 0000014C
|
||||
/* 004B8 808877A8 AFA00010 */ sw $zero, 0x0010($sp)
|
||||
/* 004BC 808877AC 0C02003E */ jal func_800800F8
|
||||
/* 004C0 808877B0 8FA40024 */ lw $a0, 0x0024($sp)
|
||||
/* 004C4 808877B4 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
.L808877B8:
|
||||
/* 004C8 808877B8 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
|
||||
/* 004CC 808877BC 03E00008 */ jr $ra
|
||||
/* 004D0 808877C0 00000000 */ nop
|
|
@ -1,44 +0,0 @@
|
|||
glabel func_808877C4
|
||||
/* 004D4 808877C4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 004D8 808877C8 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 004DC 808877CC 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
|
||||
/* 004E0 808877D0 AFA70018 */ sw $a3, 0x0018($sp)
|
||||
/* 004E4 808877D4 0C023A62 */ jal Player_InCsMode
|
||||
/* 004E8 808877D8 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
|
||||
/* 004EC 808877DC 1440001D */ bne $v0, $zero, .L80887854
|
||||
/* 004F0 808877E0 8FA70018 */ lw $a3, 0x0018($sp)
|
||||
/* 004F4 808877E4 80EF0150 */ lb $t7, 0x0150($a3) ## 00000150
|
||||
/* 004F8 808877E8 84EE0016 */ lh $t6, 0x0016($a3) ## 00000016
|
||||
/* 004FC 808877EC AFA70018 */ sw $a3, 0x0018($sp)
|
||||
/* 00500 808877F0 000FC080 */ sll $t8, $t7, 2
|
||||
/* 00504 808877F4 030FC023 */ subu $t8, $t8, $t7
|
||||
/* 00508 808877F8 0018C0C0 */ sll $t8, $t8, 3
|
||||
/* 0050C 808877FC 030FC021 */ addu $t8, $t8, $t7
|
||||
/* 00510 80887800 0018C0C0 */ sll $t8, $t8, 3
|
||||
/* 00514 80887804 030FC023 */ subu $t8, $t8, $t7
|
||||
/* 00518 80887808 0018C0C0 */ sll $t8, $t8, 3
|
||||
/* 0051C 8088780C 030FC021 */ addu $t8, $t8, $t7
|
||||
/* 00520 80887810 0018C100 */ sll $t8, $t8, 4
|
||||
/* 00524 80887814 01D82821 */ addu $a1, $t6, $t8
|
||||
/* 00528 80887818 00052C00 */ sll $a1, $a1, 16
|
||||
/* 0052C 8088781C 00052C03 */ sra $a1, $a1, 16
|
||||
/* 00530 80887820 24E400B6 */ addiu $a0, $a3, 0x00B6 ## $a0 = 000000B6
|
||||
/* 00534 80887824 0C01DE2B */ jal Math_ApproxUpdateScaledS
|
||||
|
||||
/* 00538 80887828 24060020 */ addiu $a2, $zero, 0x0020 ## $a2 = 00000020
|
||||
/* 0053C 8088782C 10400007 */ beq $v0, $zero, .L8088784C
|
||||
/* 00540 80887830 8FA70018 */ lw $a3, 0x0018($sp)
|
||||
/* 00544 80887834 3C088088 */ lui $t0, %hi(func_80887638) ## $t0 = 80880000
|
||||
/* 00548 80887838 24190001 */ addiu $t9, $zero, 0x0001 ## $t9 = 00000001
|
||||
/* 0054C 8088783C 25087638 */ addiu $t0, $t0, %lo(func_80887638) ## $t0 = 80887638
|
||||
/* 00550 80887840 A0F90151 */ sb $t9, 0x0151($a3) ## 00000151
|
||||
/* 00554 80887844 10000003 */ beq $zero, $zero, .L80887854
|
||||
/* 00558 80887848 ACE8014C */ sw $t0, 0x014C($a3) ## 0000014C
|
||||
.L8088784C:
|
||||
/* 0055C 8088784C 0C221D2C */ jal func_808874B0
|
||||
/* 00560 80887850 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
|
||||
.L80887854:
|
||||
/* 00564 80887854 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 00568 80887858 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 0056C 8088785C 03E00008 */ jr $ra
|
||||
/* 00570 80887860 00000000 */ nop
|
|
@ -1,138 +0,0 @@
|
|||
glabel func_80887864
|
||||
/* 00574 80887864 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
|
||||
/* 00578 80887868 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 0057C 8088786C AFA5003C */ sw $a1, 0x003C($sp)
|
||||
/* 00580 80887870 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44
|
||||
/* 00584 80887874 AFA40038 */ sw $a0, 0x0038($sp)
|
||||
/* 00588 80887878 27A50028 */ addiu $a1, $sp, 0x0028 ## $a1 = FFFFFFF0
|
||||
/* 0058C 8088787C 0C00B6F4 */ jal func_8002DBD0
|
||||
/* 00590 80887880 24460024 */ addiu $a2, $v0, 0x0024 ## $a2 = 00000024
|
||||
/* 00594 80887884 C7A40030 */ lwc1 $f4, 0x0030($sp)
|
||||
/* 00598 80887888 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00
|
||||
/* 0059C 8088788C 8FA70038 */ lw $a3, 0x0038($sp)
|
||||
/* 005A0 80887890 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000
|
||||
/* 005A4 80887894 4604303E */ c.le.s $f6, $f4
|
||||
/* 005A8 80887898 00000000 */ nop
|
||||
/* 005AC 8088789C 45020006 */ bc1fl .L808878B8
|
||||
/* 005B0 808878A0 44810000 */ mtc1 $at, $f0 ## $f0 = -1.00
|
||||
/* 005B4 808878A4 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
|
||||
/* 005B8 808878A8 44810000 */ mtc1 $at, $f0 ## $f0 = 1.00
|
||||
/* 005BC 808878AC 10000004 */ beq $zero, $zero, .L808878C0
|
||||
/* 005C0 808878B0 3C0141C8 */ lui $at, 0x41C8 ## $at = 41C80000
|
||||
/* 005C4 808878B4 44810000 */ mtc1 $at, $f0 ## $f0 = 25.00
|
||||
.L808878B8:
|
||||
/* 005C8 808878B8 00000000 */ nop
|
||||
/* 005CC 808878BC 3C0141C8 */ lui $at, 0x41C8 ## $at = 41C80000
|
||||
.L808878C0:
|
||||
/* 005D0 808878C0 44814000 */ mtc1 $at, $f8 ## $f8 = 25.00
|
||||
/* 005D4 808878C4 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000
|
||||
/* 005D8 808878C8 44818000 */ mtc1 $at, $f16 ## $f16 = -1.00
|
||||
/* 005DC 808878CC 46080282 */ mul.s $f10, $f0, $f8
|
||||
/* 005E0 808878D0 3C01C3FA */ lui $at, 0xC3FA ## $at = C3FA0000
|
||||
/* 005E4 808878D4 C7A20028 */ lwc1 $f2, 0x0028($sp)
|
||||
/* 005E8 808878D8 46105482 */ mul.s $f18, $f10, $f16
|
||||
/* 005EC 808878DC E7B20030 */ swc1 $f18, 0x0030($sp)
|
||||
/* 005F0 808878E0 80EF0150 */ lb $t7, 0x0150($a3) ## 00000150
|
||||
/* 005F4 808878E4 55E00017 */ bnel $t7, $zero, .L80887944
|
||||
/* 005F8 808878E8 44810000 */ mtc1 $at, $f0 ## $f0 = -500.00
|
||||
/* 005FC 808878EC 3C01C3B4 */ lui $at, 0xC3B4 ## $at = C3B40000
|
||||
/* 00600 808878F0 44810000 */ mtc1 $at, $f0 ## $f0 = -360.00
|
||||
/* 00604 808878F4 C7A20028 */ lwc1 $f2, 0x0028($sp)
|
||||
/* 00608 808878F8 3C0143B4 */ lui $at, 0x43B4 ## $at = 43B40000
|
||||
/* 0060C 808878FC 4600103C */ c.lt.s $f2, $f0
|
||||
/* 00610 80887900 00000000 */ nop
|
||||
/* 00614 80887904 45020004 */ bc1fl .L80887918
|
||||
/* 00618 80887908 44816000 */ mtc1 $at, $f12 ## $f12 = 360.00
|
||||
/* 0061C 8088790C 1000001E */ beq $zero, $zero, .L80887988
|
||||
/* 00620 80887910 E7A00028 */ swc1 $f0, 0x0028($sp)
|
||||
/* 00624 80887914 44816000 */ mtc1 $at, $f12 ## $f12 = 360.00
|
||||
.L80887918:
|
||||
/* 00628 80887918 00000000 */ nop
|
||||
/* 0062C 8088791C 4602603C */ c.lt.s $f12, $f2
|
||||
/* 00630 80887920 00000000 */ nop
|
||||
/* 00634 80887924 45020004 */ bc1fl .L80887938
|
||||
/* 00638 80887928 46001006 */ mov.s $f0, $f2
|
||||
/* 0063C 8088792C 10000002 */ beq $zero, $zero, .L80887938
|
||||
/* 00640 80887930 46006006 */ mov.s $f0, $f12
|
||||
/* 00644 80887934 46001006 */ mov.s $f0, $f2
|
||||
.L80887938:
|
||||
/* 00648 80887938 10000013 */ beq $zero, $zero, .L80887988
|
||||
/* 0064C 8088793C E7A00028 */ swc1 $f0, 0x0028($sp)
|
||||
/* 00650 80887940 44810000 */ mtc1 $at, $f0 ## $f0 = 360.00
|
||||
.L80887944:
|
||||
/* 00654 80887944 3C0143FA */ lui $at, 0x43FA ## $at = 43FA0000
|
||||
/* 00658 80887948 4600103C */ c.lt.s $f2, $f0
|
||||
/* 0065C 8088794C 00000000 */ nop
|
||||
/* 00660 80887950 45020004 */ bc1fl .L80887964
|
||||
/* 00664 80887954 44816000 */ mtc1 $at, $f12 ## $f12 = 500.00
|
||||
/* 00668 80887958 1000000B */ beq $zero, $zero, .L80887988
|
||||
/* 0066C 8088795C E7A00028 */ swc1 $f0, 0x0028($sp)
|
||||
/* 00670 80887960 44816000 */ mtc1 $at, $f12 ## $f12 = 500.00
|
||||
.L80887964:
|
||||
/* 00674 80887964 00000000 */ nop
|
||||
/* 00678 80887968 4602603C */ c.lt.s $f12, $f2
|
||||
/* 0067C 8088796C 00000000 */ nop
|
||||
/* 00680 80887970 45020004 */ bc1fl .L80887984
|
||||
/* 00684 80887974 46001006 */ mov.s $f0, $f2
|
||||
/* 00688 80887978 10000002 */ beq $zero, $zero, .L80887984
|
||||
/* 0068C 8088797C 46006006 */ mov.s $f0, $f12
|
||||
/* 00690 80887980 46001006 */ mov.s $f0, $f2
|
||||
.L80887984:
|
||||
/* 00694 80887984 E7A00028 */ swc1 $f0, 0x0028($sp)
|
||||
.L80887988:
|
||||
/* 00698 80887988 84E400B6 */ lh $a0, 0x00B6($a3) ## 000000B6
|
||||
/* 0069C 8088798C 0C01DE1C */ jal Math_Sins
|
||||
## sins?
|
||||
/* 006A0 80887990 AFA70038 */ sw $a3, 0x0038($sp)
|
||||
/* 006A4 80887994 8FA70038 */ lw $a3, 0x0038($sp)
|
||||
/* 006A8 80887998 84E400B6 */ lh $a0, 0x00B6($a3) ## 000000B6
|
||||
/* 006AC 8088799C 0C01DE0D */ jal Math_Coss
|
||||
## coss?
|
||||
/* 006B0 808879A0 E7A00020 */ swc1 $f0, 0x0020($sp)
|
||||
/* 006B4 808879A4 C7A60028 */ lwc1 $f6, 0x0028($sp)
|
||||
/* 006B8 808879A8 8FA70038 */ lw $a3, 0x0038($sp)
|
||||
/* 006BC 808879AC C7A20020 */ lwc1 $f2, 0x0020($sp)
|
||||
/* 006C0 808879B0 46003202 */ mul.s $f8, $f6, $f0
|
||||
/* 006C4 808879B4 C7B00030 */ lwc1 $f16, 0x0030($sp)
|
||||
/* 006C8 808879B8 C4E40024 */ lwc1 $f4, 0x0024($a3) ## 00000024
|
||||
/* 006CC 808879BC 46028482 */ mul.s $f18, $f16, $f2
|
||||
/* 006D0 808879C0 46082280 */ add.s $f10, $f4, $f8
|
||||
/* 006D4 808879C4 C4E8002C */ lwc1 $f8, 0x002C($a3) ## 0000002C
|
||||
/* 006D8 808879C8 46125180 */ add.s $f6, $f10, $f18
|
||||
/* 006DC 808879CC 4600310D */ trunc.w.s $f4, $f6
|
||||
/* 006E0 808879D0 44192000 */ mfc1 $t9, $f4
|
||||
/* 006E4 808879D4 00000000 */ nop
|
||||
/* 006E8 808879D8 A4F9019A */ sh $t9, 0x019A($a3) ## 0000019A
|
||||
/* 006EC 808879DC C7B00028 */ lwc1 $f16, 0x0028($sp)
|
||||
/* 006F0 808879E0 C7A60030 */ lwc1 $f6, 0x0030($sp)
|
||||
/* 006F4 808879E4 46028282 */ mul.s $f10, $f16, $f2
|
||||
/* 006F8 808879E8 460A4481 */ sub.s $f18, $f8, $f10
|
||||
/* 006FC 808879EC 46003102 */ mul.s $f4, $f6, $f0
|
||||
/* 00700 808879F0 C4EA0028 */ lwc1 $f10, 0x0028($a3) ## 00000028
|
||||
/* 00704 808879F4 4600518D */ trunc.w.s $f6, $f10
|
||||
/* 00708 808879F8 46049400 */ add.s $f16, $f18, $f4
|
||||
/* 0070C 808879FC 440B3000 */ mfc1 $t3, $f6
|
||||
/* 00710 80887A00 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
|
||||
/* 00714 80887A04 4600820D */ trunc.w.s $f8, $f16
|
||||
/* 00718 80887A08 A4EB019C */ sh $t3, 0x019C($a3) ## 0000019C
|
||||
/* 0071C 80887A0C 44094000 */ mfc1 $t1, $f8
|
||||
/* 00720 80887A10 00000000 */ nop
|
||||
/* 00724 80887A14 A4E9019E */ sh $t1, 0x019E($a3) ## 0000019E
|
||||
/* 00728 80887A18 C7B20030 */ lwc1 $f18, 0x0030($sp)
|
||||
/* 0072C 80887A1C 4604903C */ c.lt.s $f18, $f4
|
||||
/* 00730 80887A20 00000000 */ nop
|
||||
/* 00734 80887A24 45020005 */ bc1fl .L80887A3C
|
||||
/* 00738 80887A28 84ED00B6 */ lh $t5, 0x00B6($a3) ## 000000B6
|
||||
/* 0073C 80887A2C 84EC00B6 */ lh $t4, 0x00B6($a3) ## 000000B6
|
||||
/* 00740 80887A30 10000005 */ beq $zero, $zero, .L80887A48
|
||||
/* 00744 80887A34 A4EC0032 */ sh $t4, 0x0032($a3) ## 00000032
|
||||
/* 00748 80887A38 84ED00B6 */ lh $t5, 0x00B6($a3) ## 000000B6
|
||||
.L80887A3C:
|
||||
/* 0074C 80887A3C 34018000 */ ori $at, $zero, 0x8000 ## $at = 00008000
|
||||
/* 00750 80887A40 01A17021 */ addu $t6, $t5, $at
|
||||
/* 00754 80887A44 A4EE0032 */ sh $t6, 0x0032($a3) ## 00000032
|
||||
.L80887A48:
|
||||
/* 00758 80887A48 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 0075C 80887A4C 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
|
||||
/* 00760 80887A50 03E00008 */ jr $ra
|
||||
/* 00764 80887A54 00000000 */ nop
|
|
@ -1,22 +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 Bg_Hidan_Fwbig_InitVars
|
||||
.word 0x008D0600, 0x00000010, 0x002C0000, 0x000001A0
|
||||
.word BgHidanFwbig_Init
|
||||
.word BgHidanFwbig_Destroy
|
||||
.word BgHidanFwbig_Update
|
||||
.word BgHidanFwbig_Draw
|
||||
glabel D_80887ED0
|
||||
.word 0x0A110009, 0x20010000, 0x00000000, 0x20000000, 0x01040000, 0xFFCFFFFF, 0x00000000, 0x19000100, 0x001E0082, 0x00000000, 0x00000000
|
||||
glabel D_80887EFC
|
||||
.word 0x30F803E8
|
||||
|
|
@ -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_80887F60
|
||||
.incbin "baserom/ovl_Bg_Hidan_Fwbig", 0xC70, 0x000000E0
|
3
spec
3
spec
|
@ -844,8 +844,7 @@ endseg
|
|||
beginseg
|
||||
name "ovl_Bg_Hidan_Fwbig"
|
||||
include "build/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.o"
|
||||
include "build/data/overlays/actors/z_bg_hidan_fwbig.data.o"
|
||||
include "build/data/overlays/actors/z_bg_hidan_fwbig.reloc.o"
|
||||
include "build/src/overlays/actors/ovl_Bg_Hidan_Fwbig/ovl_Bg_Hidan_Fwbig_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
|
|
|
@ -4,12 +4,30 @@
|
|||
|
||||
#define THIS ((BgHidanFwbig*)thisx)
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ FWBIG_MOVE,
|
||||
/* 1 */ FWBIG_RESET,
|
||||
/* 2 */ FWBIG_KILL
|
||||
} HidanFwbigMoveState;
|
||||
|
||||
void BgHidanFwbig_Init(Actor* thisx, GlobalContext* globalCtx);
|
||||
void BgHidanFwbig_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
||||
void BgHidanFwbig_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||
void BgHidanFwbig_Draw(Actor* thisx, GlobalContext* globalCtx);
|
||||
|
||||
/*
|
||||
void BgHidanFwbig_UpdatePosition(BgHidanFwbig* this);
|
||||
|
||||
void BgHidanFwbig_WaitForSwitch(BgHidanFwbig* this, GlobalContext* globalCtx);
|
||||
void BgHidanFwbig_WaitForCs(BgHidanFwbig* this, GlobalContext* globalCtx);
|
||||
void BgHidanFwbig_Lower(BgHidanFwbig* this, GlobalContext* globalCtx);
|
||||
void BgHidanFwbig_WaitForTimer(BgHidanFwbig* this, GlobalContext* globalCtx);
|
||||
void BgHidanFwbig_WaitForPlayer(BgHidanFwbig* this, GlobalContext* globalCtx);
|
||||
void BgHidanFwbig_Move(BgHidanFwbig* this, GlobalContext* globalCtx);
|
||||
|
||||
extern Gfx D_0600DB20[];
|
||||
extern Gfx D_040173D0[];
|
||||
extern Gfx D_04017BD0[];
|
||||
|
||||
const ActorInit Bg_Hidan_Fwbig_InitVars = {
|
||||
ACTOR_BG_HIDAN_FWBIG,
|
||||
ACTORTYPE_PROP,
|
||||
|
@ -21,29 +39,223 @@ const ActorInit Bg_Hidan_Fwbig_InitVars = {
|
|||
(ActorFunc)BgHidanFwbig_Update,
|
||||
(ActorFunc)BgHidanFwbig_Draw,
|
||||
};
|
||||
*/
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Fwbig/BgHidanFwbig_Init.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Fwbig/BgHidanFwbig_Destroy.s")
|
||||
static ColliderCylinderInit sCylinderInit = {
|
||||
{ COLTYPE_UNK10, 0x11, 0x00, 0x09, 0x20, COLSHAPE_CYLINDER },
|
||||
{ 0x00, { 0x20000000, 0x01, 0x04 }, { 0xFFCFFFFF, 0x00, 0x00 }, 0x19, 0x00, 0x01 },
|
||||
{ 30, 130, 0, { 0, 0, 0 } },
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Fwbig/func_808874B0.s")
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_F32(uncullZoneScale, 1000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Fwbig/func_80887534.s")
|
||||
void BgHidanFwbig_Init(Actor* thisx, GlobalContext* globalCtx2) {
|
||||
GlobalContext* globalCtx = globalCtx2;
|
||||
BgHidanFwbig* this = THIS;
|
||||
Player* player = PLAYER;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Fwbig/func_80887598.s")
|
||||
Actor_ProcessInitChain(&this->actor, sInitChain);
|
||||
Collider_InitCylinder(globalCtx, &this->collider);
|
||||
Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);
|
||||
this->actor.colChkInfo.mass = 0xFF;
|
||||
this->direction = (u16)(thisx->params >> 8);
|
||||
thisx->params &= 0xFF;
|
||||
if (this->direction != 0) {
|
||||
this->actor.initPosRot.pos.x = 1560.0f;
|
||||
this->actor.initPosRot.pos.z = 0.0f;
|
||||
if (player->actor.posRot.pos.z > 300.0f) {
|
||||
this->direction = -1;
|
||||
this->actor.initPosRot.rot.y = this->actor.shape.rot.y = -0x4E38;
|
||||
} else if (player->actor.posRot.pos.z < -300.0f) {
|
||||
this->direction = 1;
|
||||
this->actor.initPosRot.rot.y = this->actor.shape.rot.y = -0x31C8;
|
||||
} else {
|
||||
Actor_Kill(&this->actor);
|
||||
return;
|
||||
}
|
||||
BgHidanFwbig_UpdatePosition(this);
|
||||
Actor_SetScale(&this->actor, 0.15f);
|
||||
this->collider.dim.height = 230;
|
||||
this->actor.flags |= 0x10;
|
||||
this->moveState = FWBIG_MOVE;
|
||||
this->actionFunc = BgHidanFwbig_WaitForPlayer;
|
||||
this->actor.posRot.pos.y = this->actor.initPosRot.pos.y - (2400.0f * this->actor.scale.y);
|
||||
} else {
|
||||
Actor_SetScale(&this->actor, 0.1f);
|
||||
this->actionFunc = BgHidanFwbig_WaitForSwitch;
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Fwbig/func_808875C4.s")
|
||||
void BgHidanFwbig_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
||||
s32 pad;
|
||||
BgHidanFwbig* this = THIS;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Fwbig/func_80887638.s")
|
||||
Collider_DestroyCylinder(globalCtx, &this->collider);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Fwbig/func_80887718.s")
|
||||
void BgHidanFwbig_UpdatePosition(BgHidanFwbig* this) {
|
||||
s16 startAngle = this->actor.shape.rot.y + this->direction * -0x4000;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Fwbig/func_80887768.s")
|
||||
this->actor.posRot.pos.x = (Math_Sins(startAngle) * 885.4f) + this->actor.initPosRot.pos.x;
|
||||
this->actor.posRot.pos.z = (Math_Coss(startAngle) * 885.4f) + this->actor.initPosRot.pos.z;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Fwbig/func_808877C4.s")
|
||||
void BgHidanFwbig_WaitForSwitch(BgHidanFwbig* this, GlobalContext* globalCtx) {
|
||||
if (Flags_GetSwitch(globalCtx, this->actor.params)) {
|
||||
this->actionFunc = BgHidanFwbig_WaitForCs;
|
||||
func_800800F8(globalCtx, 0xD0C, -0x63, &this->actor, 0);
|
||||
this->timer = 35;
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Fwbig/func_80887864.s")
|
||||
void BgHidanFwbig_WaitForCs(BgHidanFwbig* this, GlobalContext* globalCtx) {
|
||||
if (this->timer-- == 0) {
|
||||
this->actionFunc = BgHidanFwbig_Lower;
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Fwbig/BgHidanFwbig_Update.s")
|
||||
void BgHidanFwbig_Rise(BgHidanFwbig* this, GlobalContext* globalCtx) {
|
||||
if (Math_ApproxF(&this->actor.posRot.pos.y, this->actor.initPosRot.pos.y, 10.0f)) {
|
||||
if (this->direction == 0) {
|
||||
Flags_UnsetSwitch(globalCtx, this->actor.params);
|
||||
this->actionFunc = BgHidanFwbig_WaitForSwitch;
|
||||
} else {
|
||||
this->actionFunc = BgHidanFwbig_Move;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Fwbig/BgHidanFwbig_Draw.s")
|
||||
void BgHidanFwbig_Lower(BgHidanFwbig* this, GlobalContext* globalCtx) {
|
||||
if (Math_ApproxF(&this->actor.posRot.pos.y, this->actor.initPosRot.pos.y - (2400.0f * this->actor.scale.y),
|
||||
10.0f)) {
|
||||
if (this->direction == 0) {
|
||||
this->actionFunc = BgHidanFwbig_WaitForTimer;
|
||||
this->timer = 150;
|
||||
} else if (this->moveState == FWBIG_KILL) {
|
||||
Actor_Kill(&this->actor);
|
||||
} else {
|
||||
if (this->moveState == FWBIG_MOVE) {
|
||||
this->actor.shape.rot.y -= (this->direction * 0x1800);
|
||||
} else {
|
||||
this->moveState = FWBIG_MOVE;
|
||||
this->actor.shape.rot.y = this->actor.initPosRot.rot.y;
|
||||
}
|
||||
BgHidanFwbig_UpdatePosition(this);
|
||||
this->actionFunc = BgHidanFwbig_Rise;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void BgHidanFwbig_WaitForTimer(BgHidanFwbig* this, GlobalContext* globalCtx) {
|
||||
if(this->timer != 0) {
|
||||
this->timer--;
|
||||
}
|
||||
if (this->timer == 0) {
|
||||
this->actionFunc = BgHidanFwbig_Rise;
|
||||
}
|
||||
func_8002F994(&this->actor, this->timer);
|
||||
}
|
||||
|
||||
void BgHidanFwbig_WaitForPlayer(BgHidanFwbig* this, GlobalContext* globalCtx) {
|
||||
Player* player = PLAYER;
|
||||
|
||||
if (player->actor.posRot.pos.x < 1150.0f) {
|
||||
this->actionFunc = BgHidanFwbig_Rise;
|
||||
func_800800F8(globalCtx, 0xCDA, -0x63, &this->actor, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void BgHidanFwbig_Move(BgHidanFwbig* this, GlobalContext* globalCtx) {
|
||||
if (!Player_InCsMode(globalCtx)) {
|
||||
if (Math_ApproxUpdateScaledS(&this->actor.shape.rot.y,
|
||||
this->actor.initPosRot.rot.y + (this->direction * 0x6390), 0x20)) {
|
||||
this->moveState = FWBIG_RESET;
|
||||
this->actionFunc = BgHidanFwbig_Lower;
|
||||
} else {
|
||||
BgHidanFwbig_UpdatePosition(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void BgHidanFwbig_MoveCollider(BgHidanFwbig* this, GlobalContext* globalCtx) {
|
||||
Player* player = PLAYER;
|
||||
Vec3f projPos;
|
||||
f32 cs;
|
||||
f32 sn;
|
||||
|
||||
func_8002DBD0(&this->actor, &projPos, &player->actor.posRot.pos);
|
||||
projPos.z = ((projPos.z >= 0.0f) ? 1.0f : -1.0f) * 25.0f * -1.0f;
|
||||
if (this->direction == 0) {
|
||||
projPos.x = CLAMP(projPos.x, -360.0f, 360.0f);
|
||||
} else {
|
||||
projPos.x = CLAMP(projPos.x, -500.0f, 500.0f);
|
||||
}
|
||||
|
||||
sn = Math_Sins(this->actor.shape.rot.y);
|
||||
cs = Math_Coss(this->actor.shape.rot.y);
|
||||
this->collider.dim.pos.x = this->actor.posRot.pos.x + (projPos.x * cs) + (projPos.z * sn);
|
||||
this->collider.dim.pos.z = this->actor.posRot.pos.z - (projPos.x * sn) + (projPos.z * cs);
|
||||
this->collider.dim.pos.y = this->actor.posRot.pos.y;
|
||||
|
||||
this->actor.posRot.rot.y = (projPos.z < 0.0f) ? this->actor.shape.rot.y : this->actor.shape.rot.y + 0x8000;
|
||||
}
|
||||
|
||||
void BgHidanFwbig_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||
s32 pad;
|
||||
BgHidanFwbig* this = THIS;
|
||||
|
||||
if (this->collider.base.atFlags & 2) {
|
||||
this->collider.base.atFlags &= ~2;
|
||||
func_8002F71C(globalCtx, &this->actor, 5.0f, this->actor.posRot.rot.y, 1.0f);
|
||||
if (this->direction != 0) {
|
||||
this->actionFunc = BgHidanFwbig_Lower;
|
||||
}
|
||||
}
|
||||
if ((this->direction != 0) && (globalCtx->roomCtx.prevRoom.num == this->actor.room)) {
|
||||
this->moveState = FWBIG_KILL;
|
||||
this->actionFunc = BgHidanFwbig_Lower;
|
||||
}
|
||||
|
||||
this->actionFunc(this, globalCtx);
|
||||
|
||||
if ((this->actor.initPosRot.pos.y - 200.0f) < this->actor.posRot.pos.y) {
|
||||
if (gSaveContext.sceneSetupIndex < 4) {
|
||||
func_8002F974(&this->actor, NA_SE_EV_BURNING - SFX_FLAG);
|
||||
} else if ((s16)this->actor.posRot.pos.x == -513) {
|
||||
func_8002F974(&this->actor, NA_SE_EV_FLAME_OF_FIRE - SFX_FLAG);
|
||||
}
|
||||
BgHidanFwbig_MoveCollider(this, globalCtx);
|
||||
CollisionCheck_SetAT(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
|
||||
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
|
||||
}
|
||||
}
|
||||
|
||||
void BgHidanFwbig_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
s32 pad;
|
||||
f32 height;
|
||||
|
||||
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_bg_hidan_fwbig.c", 630);
|
||||
func_80093D84(globalCtx->state.gfxCtx);
|
||||
|
||||
gSPSegment(oGfxCtx->polyXlu.p++, 0x09, SEGMENTED_TO_VIRTUAL(D_040173D0));
|
||||
|
||||
gSPSegment(oGfxCtx->polyXlu.p++, 0x0A, SEGMENTED_TO_VIRTUAL(D_04017BD0));
|
||||
|
||||
height = thisx->scale.y * 2400.0f;
|
||||
gDPSetPrimColor(oGfxCtx->polyXlu.p++, 0x80, 0x80, 255, 220, 0,
|
||||
((height - (thisx->initPosRot.pos.y - thisx->posRot.pos.y)) * 255.0f) / height);
|
||||
|
||||
gDPSetEnvColor(oGfxCtx->polyXlu.p++, 255, 0, 0, 0);
|
||||
|
||||
gSPSegment(oGfxCtx->polyXlu.p++, 0x08,
|
||||
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, globalCtx->gameplayFrames % 0x80, 0, 0x20, 0x40, 1, 0,
|
||||
(u8)(globalCtx->gameplayFrames * -15), 0x20, 0x40));
|
||||
|
||||
gSPMatrix(oGfxCtx->polyXlu.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_hidan_fwbig.c", 660),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
|
||||
gSPDisplayList(oGfxCtx->polyXlu.p++, D_0600DB20);
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_hidan_fwbig.c", 664);
|
||||
}
|
||||
|
|
|
@ -6,9 +6,15 @@
|
|||
|
||||
struct BgHidanFwbig;
|
||||
|
||||
typedef void (*BgHidanFwbigActionFunc)(struct BgHidanFwbig*, GlobalContext*);
|
||||
|
||||
typedef struct BgHidanFwbig {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ char unk_14C[0x54];
|
||||
/* 0x014C */ BgHidanFwbigActionFunc actionFunc;
|
||||
/* 0x0150 */ s8 direction;
|
||||
/* 0x0151 */ u8 moveState;
|
||||
/* 0x0152 */ s16 timer;
|
||||
/* 0x0154 */ ColliderCylinder collider;
|
||||
} BgHidanFwbig; // size = 0x01A0
|
||||
|
||||
extern const ActorInit Bg_Hidan_Fwbig_InitVars;
|
||||
|
|
|
@ -121,12 +121,7 @@ void func_80B4AE18(EnZl1* this) {
|
|||
if (DECR(this->unk_1FC) == 0) {
|
||||
this->unk_1FC = Math_Rand_S16Offset(0x1E, 0xA);
|
||||
}
|
||||
|
||||
if (this->unk_1FC < 4) {
|
||||
this->unk_1FE = this->unk_1FC;
|
||||
} else {
|
||||
this->unk_1FE = 0;
|
||||
}
|
||||
this->unk_1FE = (this->unk_1FC < 4) ? this->unk_1FC : 0;
|
||||
|
||||
this->unk_1F4 = D_80B4E61C[this->unk_1FE];
|
||||
this->unk_1F8 = D_80B4E61C[this->unk_1FE];
|
||||
|
@ -141,17 +136,13 @@ void func_80B4AF18(EnZl1* this, GlobalContext* globalCtx) {
|
|||
func_80038290(globalCtx, &this->actor, &this->unk_200, &this->unk_206, this->actor.posRot2.pos);
|
||||
|
||||
if (this->unk_1E6 != 0) {
|
||||
if (func_8002F334(this, globalCtx) != 0) {
|
||||
if (func_8002F334(&this->actor, globalCtx)) {
|
||||
this->unk_1E6 = 0;
|
||||
}
|
||||
} else {
|
||||
if (func_8002F194(this, globalCtx)) {
|
||||
} else if (func_8002F194(&this->actor, globalCtx)) {
|
||||
this->unk_1E6 = 1;
|
||||
} else {
|
||||
if (this->actor.posRot.pos.y <= player->actor.posRot.pos.y) {
|
||||
func_8002F2F4(this, globalCtx);
|
||||
}
|
||||
}
|
||||
} else if (this->actor.posRot.pos.y <= player->actor.posRot.pos.y) {
|
||||
func_8002F2F4(&this->actor, globalCtx);
|
||||
}
|
||||
|
||||
Collider_CylinderUpdate(&this->actor, &this->collider);
|
||||
|
@ -193,10 +184,8 @@ void func_80B4B010(EnZl1* this, GlobalContext* globalCtx) {
|
|||
} else {
|
||||
if (1) {}; // necessary to match
|
||||
rotDiff = ABS(this->actor.yawTowardsLink - this->actor.shape.rot.y);
|
||||
if (rotDiff < 0x238E) {
|
||||
if (!(player->actor.posRot.pos.y < this->actor.posRot.pos.y)) {
|
||||
func_8002F2F4(this, globalCtx);
|
||||
}
|
||||
if ((rotDiff < 0x238E) && !(player->actor.posRot.pos.y < this->actor.posRot.pos.y)) {
|
||||
func_8002F2F4(&this->actor, globalCtx);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -230,7 +219,7 @@ void func_80B4B240(EnZl1* this, GlobalContext* globalCtx) {
|
|||
sp3C = 1;
|
||||
this->actor.textId = 0x702E;
|
||||
func_8010B680(globalCtx, this->actor.textId, NULL);
|
||||
this->unk_1E2 += 1;
|
||||
this->unk_1E2++;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
@ -242,7 +231,7 @@ void func_80B4B240(EnZl1* this, GlobalContext* globalCtx) {
|
|||
player->actor.posRot.pos = sp58;
|
||||
this->actor.textId = 0x702F;
|
||||
func_8010B720(globalCtx, this->actor.textId);
|
||||
this->unk_1E2 += 1;
|
||||
this->unk_1E2++;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
|
@ -250,7 +239,7 @@ void func_80B4B240(EnZl1* this, GlobalContext* globalCtx) {
|
|||
if (msgCtx->choiceIndex == 0) {
|
||||
animationHeader = &D_06013F10;
|
||||
sp3C = 2;
|
||||
this->unk_1E2 += 1;
|
||||
this->unk_1E2++;
|
||||
} else {
|
||||
animationHeader = &D_060116E4;
|
||||
sp3C = 2;
|
||||
|
@ -265,7 +254,7 @@ void func_80B4B240(EnZl1* this, GlobalContext* globalCtx) {
|
|||
sp3C = 1;
|
||||
this->actor.textId = 0x7032;
|
||||
func_8010B720(globalCtx, this->actor.textId);
|
||||
this->unk_1E2 += 1;
|
||||
this->unk_1E2++;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
|
@ -277,7 +266,7 @@ void func_80B4B240(EnZl1* this, GlobalContext* globalCtx) {
|
|||
} else {
|
||||
this->actor.textId = 0x7034;
|
||||
func_8010B720(globalCtx, this->actor.textId);
|
||||
this->unk_1E2 += 1;
|
||||
this->unk_1E2++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -285,7 +274,7 @@ void func_80B4B240(EnZl1* this, GlobalContext* globalCtx) {
|
|||
if ((func_8010BDBC(msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) {
|
||||
this->actor.textId = 0x7033;
|
||||
func_8010B720(globalCtx, this->actor.textId);
|
||||
this->unk_1E2 -= 1;
|
||||
this->unk_1E2--;
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
|
@ -295,14 +284,14 @@ void func_80B4B240(EnZl1* this, GlobalContext* globalCtx) {
|
|||
sp3C = 1;
|
||||
this->actor.textId = 0x7031;
|
||||
func_8010B720(globalCtx, this->actor.textId);
|
||||
this->unk_1E2 += 1;
|
||||
this->unk_1E2++;
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
if ((func_8010BDBC(msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) {
|
||||
this->actor.textId = 0x7030;
|
||||
func_8010B720(globalCtx, this->actor.textId);
|
||||
this->unk_1E2 += 1;
|
||||
this->unk_1E2++;
|
||||
}
|
||||
break;
|
||||
case 8:
|
||||
|
@ -314,7 +303,7 @@ void func_80B4B240(EnZl1* this, GlobalContext* globalCtx) {
|
|||
} else {
|
||||
this->actor.textId = 0x7031;
|
||||
func_8010B720(globalCtx, this->actor.textId);
|
||||
this->unk_1E2 -= 1;
|
||||
this->unk_1E2--;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -326,7 +315,7 @@ void func_80B4B240(EnZl1* this, GlobalContext* globalCtx) {
|
|||
globalCtx->csCtx.segment = D_80B4C5D0;
|
||||
gSaveContext.cutsceneTrigger = 1;
|
||||
this->actionFunc = func_80B4B8B4;
|
||||
this->unk_1E2 += 1;
|
||||
this->unk_1E2++;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -443,23 +432,18 @@ void func_80B4BC78(EnZl1* this, GlobalContext* globalCtx) {
|
|||
CsCmdActorAction* npcAction;
|
||||
s32 pad;
|
||||
f32 frameCount;
|
||||
Vec3f sp40;
|
||||
|
||||
if (SkelAnime_FrameUpdateMatrix(&this->skelAnime) != 0) {
|
||||
if (this->skelAnime.animCurrentSeg == &D_06010B38) {
|
||||
if (SkelAnime_FrameUpdateMatrix(&this->skelAnime) && (this->skelAnime.animCurrentSeg == &D_06010B38)) {
|
||||
frameCount = SkelAnime_GetFrameCount(&D_06011348.genericHeader);
|
||||
SkelAnime_ChangeAnim(&this->skelAnime, &D_06011348, 1.0f, 0.0f, frameCount, 0, -10.0f);
|
||||
}
|
||||
}
|
||||
func_80B4B874(this, globalCtx);
|
||||
npcAction = globalCtx->csCtx.npcActions[0];
|
||||
if (npcAction != NULL) {
|
||||
func_80B4B7F4(npcAction, &sp70);
|
||||
func_80B4B834(npcAction, &sp64);
|
||||
if (this->unk_1E6 == 0) {
|
||||
sp40 = sp70;
|
||||
this->actor.initPosRot.pos = sp40;
|
||||
this->actor.posRot.pos = sp40;
|
||||
this->actor.posRot.pos = this->actor.initPosRot.pos = sp70;
|
||||
}
|
||||
|
||||
if (this->unk_1E6 != npcAction->action) {
|
||||
|
@ -493,7 +477,7 @@ void func_80B4BF2C(EnZl1* this, GlobalContext* globalCtx) {
|
|||
if (msgCtx->choiceIndex == 0) {
|
||||
this->actor.textId = 0x703B;
|
||||
func_8010B720(globalCtx, this->actor.textId);
|
||||
this->unk_1E2 += 1;
|
||||
this->unk_1E2++;
|
||||
} else {
|
||||
this->actor.textId = 0x703A;
|
||||
func_8010B720(globalCtx, this->actor.textId);
|
||||
|
@ -508,19 +492,19 @@ void func_80B4BF2C(EnZl1* this, GlobalContext* globalCtx) {
|
|||
func_8002F434(&this->actor, globalCtx, GI_LETTER_ZELDA, 120.0f, 10.0f);
|
||||
globalCtx->msgCtx.msgMode = 0x36;
|
||||
globalCtx->msgCtx.unk_E3E7 = 4;
|
||||
this->unk_1E2 += 1;
|
||||
this->unk_1E2++;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
if (Actor_HasParent(this, globalCtx)) {
|
||||
if (Actor_HasParent(&this->actor, globalCtx)) {
|
||||
func_800C078C(globalCtx, 0, this->unk_1E8);
|
||||
Gameplay_ChangeCameraStatus(globalCtx, 0, 7);
|
||||
Gameplay_ClearCamera(globalCtx, this->unk_1E8);
|
||||
this->actor.parent = NULL;
|
||||
this->unk_1E2 += 1;
|
||||
this->unk_1E2++;
|
||||
} else {
|
||||
func_8002F434(this, globalCtx, GI_LETTER_ZELDA, 120.0f, 10.0f);
|
||||
func_8002F434(&this->actor, globalCtx, GI_LETTER_ZELDA, 120.0f, 10.0f);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
|
@ -535,20 +519,20 @@ void func_80B4BF2C(EnZl1* this, GlobalContext* globalCtx) {
|
|||
if (player->actor.posRot.pos.y < this->actor.posRot.pos.y) {
|
||||
break;
|
||||
} else {
|
||||
if (func_8002F194(this, globalCtx) != 0) {
|
||||
this->unk_1E2 += 1;
|
||||
if (func_8002F194(&this->actor, globalCtx)) {
|
||||
this->unk_1E2++;
|
||||
} else {
|
||||
func_8002F2F4(this, globalCtx);
|
||||
func_8002F2F4(&this->actor, globalCtx);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
if (func_8002F334(this, globalCtx) != 0) {
|
||||
this->unk_1E2 -= 1;
|
||||
if (func_8002F334(&this->actor, globalCtx)) {
|
||||
this->unk_1E2--;
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
if (func_8002F334(this, globalCtx) != 0) {
|
||||
if (func_8002F334(&this->actor, globalCtx)) {
|
||||
func_8002DF54(globalCtx, &this->actor, 7);
|
||||
Interface_ChangeAlpha(50);
|
||||
this->actor.flags &= ~0x100;
|
||||
|
|
|
@ -1305,6 +1305,11 @@ D_06000B20 = 0x06000B20;
|
|||
D_06000BC0 = 0x06000BC0;
|
||||
D_06001580 = 0x06001580;
|
||||
|
||||
// z_Bg_Hidan_Fwbig
|
||||
D_040173D0 = 0x040173D0;
|
||||
D_04017BD0 = 0x04017BD0;
|
||||
D_0600DB20 = 0x0600DB20;
|
||||
|
||||
// z_bg_po_event
|
||||
D_06007860 = 0x06007860;
|
||||
D_060075A0 = 0x060075A0;
|
||||
|
|
Loading…
Reference in a new issue