1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-02-02 17:44:25 +00:00

Decompiled ovl_Bg_Haka (#346)

* Progress

* match func_8087B7E8

* combine into else if

* match func_8087B938

* reorder condition to be more readable

* SFX macros

* clang fmt

* func_8087BAAC and func_8087BAE4

* match BgHaka_Draw

* attempt to remove dependency on asm data

* match file and remove asm

* reorder comparison

* clang format

* use bitwise not

* merge upstream

* fix ZAP2

* Update src/overlays/actors/ovl_Bg_Haka/z_bg_haka.c

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>

* Update src/overlays/actors/ovl_Bg_Haka/z_bg_haka.c

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>

* Update src/overlays/actors/ovl_Bg_Haka/z_bg_haka.c

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>

* implement fig's suggestions

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>
This commit is contained in:
Sirius902 2020-08-27 08:48:38 -07:00 committed by GitHub
parent 01122ed3e8
commit dfaa4dc0cb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 136 additions and 499 deletions

View file

@ -1,14 +0,0 @@
glabel BgHaka_Destroy
/* 00078 8087B728 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 0007C 8087B72C AFA40018 */ sw $a0, 0x0018($sp)
/* 00080 8087B730 8FAE0018 */ lw $t6, 0x0018($sp)
/* 00084 8087B734 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00088 8087B738 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 0008C 8087B73C 24A50810 */ addiu $a1, $a1, 0x0810 ## $a1 = 00000810
/* 00090 8087B740 0C00FB56 */ jal DynaPolyInfo_Free
## DynaPolyInfo_delReserve
/* 00094 8087B744 8DC6014C */ lw $a2, 0x014C($t6) ## 0000014C
/* 00098 8087B748 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0009C 8087B74C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 000A0 8087B750 03E00008 */ jr $ra
/* 000A4 8087B754 00000000 */ nop

View file

@ -1,111 +0,0 @@
.rdata
glabel D_8087BD00
.asciz "../z_bg_haka.c"
.balign 4
glabel D_8087BD10
.asciz "../z_bg_haka.c"
.balign 4
glabel D_8087BD20
.asciz "../z_bg_haka.c"
.balign 4
glabel D_8087BD30
.asciz "../z_bg_haka.c"
.balign 4
.late_rodata
glabel D_8087BD40
.float 34.6
glabel D_8087BD44
.float -112.8
glabel D_8087BD48
.float 0.05
.text
glabel BgHaka_Draw
/* 004D0 8087BB80 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8
/* 004D4 8087BB84 AFB10018 */ sw $s1, 0x0018($sp)
/* 004D8 8087BB88 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 004DC 8087BB8C AFBF001C */ sw $ra, 0x001C($sp)
/* 004E0 8087BB90 AFB00014 */ sw $s0, 0x0014($sp)
/* 004E4 8087BB94 AFA40048 */ sw $a0, 0x0048($sp)
/* 004E8 8087BB98 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 004EC 8087BB9C 3C068088 */ lui $a2, %hi(D_8087BD00) ## $a2 = 80880000
/* 004F0 8087BBA0 24C6BD00 */ addiu $a2, $a2, %lo(D_8087BD00) ## $a2 = 8087BD00
/* 004F4 8087BBA4 27A40034 */ addiu $a0, $sp, 0x0034 ## $a0 = FFFFFFEC
/* 004F8 8087BBA8 24070191 */ addiu $a3, $zero, 0x0191 ## $a3 = 00000191
/* 004FC 8087BBAC 0C031AB1 */ jal Graph_OpenDisps
/* 00500 8087BBB0 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 00504 8087BBB4 0C024F46 */ jal func_80093D18
/* 00508 8087BBB8 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 0050C 8087BBBC 0C024F61 */ jal func_80093D84
/* 00510 8087BBC0 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 00514 8087BBC4 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
/* 00518 8087BBC8 3C0FDA38 */ lui $t7, 0xDA38 ## $t7 = DA380000
/* 0051C 8087BBCC 35EF0003 */ ori $t7, $t7, 0x0003 ## $t7 = DA380003
/* 00520 8087BBD0 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
/* 00524 8087BBD4 AE0E02C0 */ sw $t6, 0x02C0($s0) ## 000002C0
/* 00528 8087BBD8 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 0052C 8087BBDC 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 00530 8087BBE0 3C058088 */ lui $a1, %hi(D_8087BD10) ## $a1 = 80880000
/* 00534 8087BBE4 24A5BD10 */ addiu $a1, $a1, %lo(D_8087BD10) ## $a1 = 8087BD10
/* 00538 8087BBE8 24060196 */ addiu $a2, $zero, 0x0196 ## $a2 = 00000196
/* 0053C 8087BBEC 0C0346A2 */ jal Matrix_NewMtx
/* 00540 8087BBF0 AFA20030 */ sw $v0, 0x0030($sp)
/* 00544 8087BBF4 8FA30030 */ lw $v1, 0x0030($sp)
/* 00548 8087BBF8 3C080600 */ lui $t0, 0x0600 ## $t0 = 06000000
/* 0054C 8087BBFC 250801B0 */ addiu $t0, $t0, 0x01B0 ## $t0 = 060001B0
/* 00550 8087BC00 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 00554 8087BC04 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
/* 00558 8087BC08 3C19DE00 */ lui $t9, 0xDE00 ## $t9 = DE000000
/* 0055C 8087BC0C 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 00560 8087BC10 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 00564 8087BC14 AE1802C0 */ sw $t8, 0x02C0($s0) ## 000002C0
/* 00568 8087BC18 AC480004 */ sw $t0, 0x0004($v0) ## 00000004
/* 0056C 8087BC1C AC590000 */ sw $t9, 0x0000($v0) ## 00000000
/* 00570 8087BC20 8FA90048 */ lw $t1, 0x0048($sp)
/* 00574 8087BC24 44813000 */ mtc1 $at, $f6 ## $f6 = 10.00
/* 00578 8087BC28 44806000 */ mtc1 $zero, $f12 ## $f12 = 0.00
/* 0057C 8087BC2C C5240070 */ lwc1 $f4, 0x0070($t1) ## 00000070
/* 00580 8087BC30 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00584 8087BC34 46006386 */ mov.s $f14, $f12
/* 00588 8087BC38 46062202 */ mul.s $f8, $f4, $f6
/* 0058C 8087BC3C 44064000 */ mfc1 $a2, $f8
/* 00590 8087BC40 0C034261 */ jal Matrix_Translate
/* 00594 8087BC44 00000000 */ nop
/* 00598 8087BC48 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 0059C 8087BC4C 3C0BDA38 */ lui $t3, 0xDA38 ## $t3 = DA380000
/* 005A0 8087BC50 356B0003 */ ori $t3, $t3, 0x0003 ## $t3 = DA380003
/* 005A4 8087BC54 244A0008 */ addiu $t2, $v0, 0x0008 ## $t2 = 00000008
/* 005A8 8087BC58 AE0A02D0 */ sw $t2, 0x02D0($s0) ## 000002D0
/* 005AC 8087BC5C AC4B0000 */ sw $t3, 0x0000($v0) ## 00000000
/* 005B0 8087BC60 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 005B4 8087BC64 3C058088 */ lui $a1, %hi(D_8087BD20) ## $a1 = 80880000
/* 005B8 8087BC68 24A5BD20 */ addiu $a1, $a1, %lo(D_8087BD20) ## $a1 = 8087BD20
/* 005BC 8087BC6C 240601A0 */ addiu $a2, $zero, 0x01A0 ## $a2 = 000001A0
/* 005C0 8087BC70 0C0346A2 */ jal Matrix_NewMtx
/* 005C4 8087BC74 AFA20028 */ sw $v0, 0x0028($sp)
/* 005C8 8087BC78 8FA30028 */ lw $v1, 0x0028($sp)
/* 005CC 8087BC7C 3C0E0600 */ lui $t6, 0x0600 ## $t6 = 06000000
/* 005D0 8087BC80 25CE02A8 */ addiu $t6, $t6, 0x02A8 ## $t6 = 060002A8
/* 005D4 8087BC84 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 005D8 8087BC88 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 005DC 8087BC8C 3C0DDE00 */ lui $t5, 0xDE00 ## $t5 = DE000000
/* 005E0 8087BC90 3C068088 */ lui $a2, %hi(D_8087BD30) ## $a2 = 80880000
/* 005E4 8087BC94 244C0008 */ addiu $t4, $v0, 0x0008 ## $t4 = 00000008
/* 005E8 8087BC98 AE0C02D0 */ sw $t4, 0x02D0($s0) ## 000002D0
/* 005EC 8087BC9C AC4E0004 */ sw $t6, 0x0004($v0) ## 00000004
/* 005F0 8087BCA0 AC4D0000 */ sw $t5, 0x0000($v0) ## 00000000
/* 005F4 8087BCA4 8E250000 */ lw $a1, 0x0000($s1) ## 00000000
/* 005F8 8087BCA8 24C6BD30 */ addiu $a2, $a2, %lo(D_8087BD30) ## $a2 = 8087BD30
/* 005FC 8087BCAC 27A40034 */ addiu $a0, $sp, 0x0034 ## $a0 = FFFFFFEC
/* 00600 8087BCB0 0C031AD5 */ jal Graph_CloseDisps
/* 00604 8087BCB4 240701A5 */ addiu $a3, $zero, 0x01A5 ## $a3 = 000001A5
/* 00608 8087BCB8 8FBF001C */ lw $ra, 0x001C($sp)
/* 0060C 8087BCBC 8FB00014 */ lw $s0, 0x0014($sp)
/* 00610 8087BCC0 8FB10018 */ lw $s1, 0x0018($sp)
/* 00614 8087BCC4 03E00008 */ jr $ra
/* 00618 8087BCC8 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000
/* 0061C 8087BCCC 00000000 */ nop

View file

@ -1,35 +0,0 @@
glabel BgHaka_Init
/* 00000 8087B6B0 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00004 8087B6B4 AFA50034 */ sw $a1, 0x0034($sp)
/* 00008 8087B6B8 AFBF001C */ sw $ra, 0x001C($sp)
/* 0000C 8087B6BC AFB00018 */ sw $s0, 0x0018($sp)
/* 00010 8087B6C0 3C058088 */ lui $a1, %hi(D_8087BCF0) ## $a1 = 80880000
/* 00014 8087B6C4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00018 8087B6C8 AFA00024 */ sw $zero, 0x0024($sp)
/* 0001C 8087B6CC 0C01E037 */ jal Actor_ProcessInitChain
/* 00020 8087B6D0 24A5BCF0 */ addiu $a1, $a1, %lo(D_8087BCF0) ## $a1 = 8087BCF0
/* 00024 8087B6D4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00028 8087B6D8 0C010D20 */ jal DynaPolyInfo_SetActorMove
/* 0002C 8087B6DC 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00030 8087B6E0 3C040600 */ lui $a0, 0x0600 ## $a0 = 06000000
/* 00034 8087B6E4 24840428 */ addiu $a0, $a0, 0x0428 ## $a0 = 06000428
/* 00038 8087B6E8 0C010620 */ jal DynaPolyInfo_Alloc
/* 0003C 8087B6EC 27A50024 */ addiu $a1, $sp, 0x0024 ## $a1 = FFFFFFF4
/* 00040 8087B6F0 8FA40034 */ lw $a0, 0x0034($sp)
/* 00044 8087B6F4 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 00048 8087B6F8 8FA70024 */ lw $a3, 0x0024($sp)
/* 0004C 8087B6FC 0C00FA9D */ jal DynaPolyInfo_RegisterActor
## DynaPolyInfo_setActor
/* 00050 8087B700 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810
/* 00054 8087B704 3C0E8088 */ lui $t6, %hi(func_8087B7E8) ## $t6 = 80880000
/* 00058 8087B708 25CEB7E8 */ addiu $t6, $t6, %lo(func_8087B7E8) ## $t6 = 8087B7E8
/* 0005C 8087B70C AE02014C */ sw $v0, 0x014C($s0) ## 0000014C
/* 00060 8087B710 AE0E0164 */ sw $t6, 0x0164($s0) ## 00000164
/* 00064 8087B714 8FBF001C */ lw $ra, 0x001C($sp)
/* 00068 8087B718 8FB00018 */ lw $s0, 0x0018($sp)
/* 0006C 8087B71C 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 00070 8087B720 03E00008 */ jr $ra
/* 00074 8087B724 00000000 */ nop

View file

@ -1,10 +0,0 @@
glabel BgHaka_Update
/* 004AC 8087BB5C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 004B0 8087BB60 AFBF0014 */ sw $ra, 0x0014($sp)
/* 004B4 8087BB64 8C990164 */ lw $t9, 0x0164($a0) ## 00000164
/* 004B8 8087BB68 0320F809 */ jalr $ra, $t9
/* 004BC 8087BB6C 00000000 */ nop
/* 004C0 8087BB70 8FBF0014 */ lw $ra, 0x0014($sp)
/* 004C4 8087BB74 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 004C8 8087BB78 03E00008 */ jr $ra
/* 004CC 8087BB7C 00000000 */ nop

View file

@ -1,38 +0,0 @@
glabel func_8087B758
/* 000A8 8087B758 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 000AC 8087B75C 00A03825 */ or $a3, $a1, $zero ## $a3 = 00000000
/* 000B0 8087B760 AFBF0014 */ sw $ra, 0x0014($sp)
/* 000B4 8087B764 24E60024 */ addiu $a2, $a3, 0x0024 ## $a2 = 00000024
/* 000B8 8087B768 AFA7002C */ sw $a3, 0x002C($sp)
/* 000BC 8087B76C 0C00B6F4 */ jal func_8002DBD0
/* 000C0 8087B770 27A5001C */ addiu $a1, $sp, 0x001C ## $a1 = FFFFFFF4
/* 000C4 8087B774 C7A0001C */ lwc1 $f0, 0x001C($sp)
/* 000C8 8087B778 3C018088 */ lui $at, %hi(D_8087BD40) ## $at = 80880000
/* 000CC 8087B77C C424BD40 */ lwc1 $f4, %lo(D_8087BD40)($at)
/* 000D0 8087B780 46000005 */ abs.s $f0, $f0
/* 000D4 8087B784 8FA7002C */ lw $a3, 0x002C($sp)
/* 000D8 8087B788 4604003C */ c.lt.s $f0, $f4
/* 000DC 8087B78C C7A00024 */ lwc1 $f0, 0x0024($sp)
/* 000E0 8087B790 3C018088 */ lui $at, %hi(D_8087BD44) ## $at = 80880000
/* 000E4 8087B794 45020011 */ bc1fl .L8087B7DC
/* 000E8 8087B798 8FBF0014 */ lw $ra, 0x0014($sp)
/* 000EC 8087B79C C426BD44 */ lwc1 $f6, %lo(D_8087BD44)($at)
/* 000F0 8087B7A0 3C01C210 */ lui $at, 0xC210 ## $at = C2100000
/* 000F4 8087B7A4 4600303C */ c.lt.s $f6, $f0
/* 000F8 8087B7A8 00000000 */ nop
/* 000FC 8087B7AC 4502000B */ bc1fl .L8087B7DC
/* 00100 8087B7B0 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00104 8087B7B4 44814000 */ mtc1 $at, $f8 ## $f8 = -36.00
/* 00108 8087B7B8 00000000 */ nop
/* 0010C 8087B7BC 4608003C */ c.lt.s $f0, $f8
/* 00110 8087B7C0 00000000 */ nop
/* 00114 8087B7C4 45020005 */ bc1fl .L8087B7DC
/* 00118 8087B7C8 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0011C 8087B7CC 8CEE0680 */ lw $t6, 0x0680($a3) ## 00000680
/* 00120 8087B7D0 35CF0200 */ ori $t7, $t6, 0x0200 ## $t7 = 00000200
/* 00124 8087B7D4 ACEF0680 */ sw $t7, 0x0680($a3) ## 00000680
/* 00128 8087B7D8 8FBF0014 */ lw $ra, 0x0014($sp)
.L8087B7DC:
/* 0012C 8087B7DC 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 00130 8087B7E0 03E00008 */ jr $ra
/* 00134 8087B7E4 00000000 */ nop

View file

@ -1,93 +0,0 @@
glabel func_8087B7E8
/* 00138 8087B7E8 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 0013C 8087B7EC AFBF001C */ sw $ra, 0x001C($sp)
/* 00140 8087B7F0 AFB00018 */ sw $s0, 0x0018($sp)
/* 00144 8087B7F4 44801000 */ mtc1 $zero, $f2 ## $f2 = 0.00
/* 00148 8087B7F8 C4800150 */ lwc1 $f0, 0x0150($a0) ## 00000150
/* 0014C 8087B7FC 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 00150 8087B800 00A03025 */ or $a2, $a1, $zero ## $a2 = 00000000
/* 00154 8087B804 46001032 */ c.eq.s $f2, $f0
/* 00158 8087B808 8CB01C44 */ lw $s0, 0x1C44($a1) ## 00001C44
/* 0015C 8087B80C 45030043 */ bc1tl .L8087B91C
/* 00160 8087B810 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 00164 8087B814 84A200A4 */ lh $v0, 0x00A4($a1) ## 000000A4
/* 00168 8087B818 24010053 */ addiu $at, $zero, 0x0053 ## $at = 00000053
/* 0016C 8087B81C 3C038016 */ lui $v1, %hi(gSaveContext)
/* 00170 8087B820 1441001E */ bne $v0, $at, .L8087B89C
/* 00174 8087B824 2463E660 */ addiu $v1, %lo(gSaveContext)
/* 00178 8087B828 8C6E0004 */ lw $t6, 0x0004($v1) ## 8015E664
/* 0017C 8087B82C 51C0001C */ beql $t6, $zero, .L8087B8A0
/* 00180 8087B830 4600103C */ c.lt.s $f2, $f0
/* 00184 8087B834 8C6F0010 */ lw $t7, 0x0010($v1) ## 8015E670
/* 00188 8087B838 55E00019 */ bnel $t7, $zero, .L8087B8A0
/* 0018C 8087B83C 4600103C */ c.lt.s $f2, $f0
/* 00190 8087B840 E4820150 */ swc1 $f2, 0x0150($a0) ## 00000150
/* 00194 8087B844 8E180680 */ lw $t8, 0x0680($s0) ## 00000680
/* 00198 8087B848 2401FFEF */ addiu $at, $zero, 0xFFEF ## $at = FFFFFFEF
/* 0019C 8087B84C 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 001A0 8087B850 0301C824 */ and $t9, $t8, $at
/* 001A4 8087B854 AE190680 */ sw $t9, 0x0680($s0) ## 00000680
/* 001A8 8087B858 AFA70020 */ sw $a3, 0x0020($sp)
/* 001AC 8087B85C 0C02FF21 */ jal Gameplay_InCsMode
/* 001B0 8087B860 AFA50024 */ sw $a1, 0x0024($sp)
/* 001B4 8087B864 1440002C */ bne $v0, $zero, .L8087B918
/* 001B8 8087B868 8FA70020 */ lw $a3, 0x0020($sp)
/* 001BC 8087B86C 8FA40024 */ lw $a0, 0x0024($sp)
/* 001C0 8087B870 24055073 */ addiu $a1, $zero, 0x5073 ## $a1 = 00005073
/* 001C4 8087B874 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 001C8 8087B878 0C042DA0 */ jal func_8010B680
/* 001CC 8087B87C AFA70020 */ sw $a3, 0x0020($sp)
/* 001D0 8087B880 8FA70020 */ lw $a3, 0x0020($sp)
/* 001D4 8087B884 3C098088 */ lui $t1, %hi(func_8087BAE4) ## $t1 = 80880000
/* 001D8 8087B888 24080064 */ addiu $t0, $zero, 0x0064 ## $t0 = 00000064
/* 001DC 8087B88C 2529BAE4 */ addiu $t1, $t1, %lo(func_8087BAE4) ## $t1 = 8087BAE4
/* 001E0 8087B890 A4E8001C */ sh $t0, 0x001C($a3) ## 0000001C
/* 001E4 8087B894 10000020 */ beq $zero, $zero, .L8087B918
/* 001E8 8087B898 ACE90164 */ sw $t1, 0x0164($a3) ## 00000164
.L8087B89C:
/* 001EC 8087B89C 4600103C */ c.lt.s $f2, $f0
.L8087B8A0:
/* 001F0 8087B8A0 3C038016 */ lui $v1, %hi(gSaveContext)
/* 001F4 8087B8A4 2463E660 */ addiu $v1, %lo(gSaveContext)
/* 001F8 8087B8A8 24010057 */ addiu $at, $zero, 0x0057 ## $at = 00000057
/* 001FC 8087B8AC 4503000E */ bc1tl .L8087B8E8
/* 00200 8087B8B0 E4E20150 */ swc1 $f2, 0x0150($a3) ## 00000150
/* 00204 8087B8B4 54410012 */ bnel $v0, $at, .L8087B900
/* 00208 8087B8B8 84ED00B6 */ lh $t5, 0x00B6($a3) ## 000000B6
/* 0020C 8087B8BC 8C6A0004 */ lw $t2, 0x0004($v1) ## 8015E664
/* 00210 8087B8C0 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00214 8087B8C4 24050023 */ addiu $a1, $zero, 0x0023 ## $a1 = 00000023
/* 00218 8087B8C8 5140000D */ beql $t2, $zero, .L8087B900
/* 0021C 8087B8CC 84ED00B6 */ lh $t5, 0x00B6($a3) ## 000000B6
/* 00220 8087B8D0 0C00B2D0 */ jal Flags_GetSwitch
/* 00224 8087B8D4 AFA70020 */ sw $a3, 0x0020($sp)
/* 00228 8087B8D8 44801000 */ mtc1 $zero, $f2 ## $f2 = 0.00
/* 0022C 8087B8DC 14400007 */ bne $v0, $zero, .L8087B8FC
/* 00230 8087B8E0 8FA70020 */ lw $a3, 0x0020($sp)
/* 00234 8087B8E4 E4E20150 */ swc1 $f2, 0x0150($a3) ## 00000150
.L8087B8E8:
/* 00238 8087B8E8 8E0B0680 */ lw $t3, 0x0680($s0) ## 00000680
/* 0023C 8087B8EC 2401FFEF */ addiu $at, $zero, 0xFFEF ## $at = FFFFFFEF
/* 00240 8087B8F0 01616024 */ and $t4, $t3, $at
/* 00244 8087B8F4 10000008 */ beq $zero, $zero, .L8087B918
/* 00248 8087B8F8 AE0C0680 */ sw $t4, 0x0680($s0) ## 00000680
.L8087B8FC:
/* 0024C 8087B8FC 84ED00B6 */ lh $t5, 0x00B6($a3) ## 000000B6
.L8087B900:
/* 00250 8087B900 34018000 */ ori $at, $zero, 0x8000 ## $at = 00008000
/* 00254 8087B904 3C0F8088 */ lui $t7, %hi(func_8087B938) ## $t7 = 80880000
/* 00258 8087B908 25EFB938 */ addiu $t7, $t7, %lo(func_8087B938) ## $t7 = 8087B938
/* 0025C 8087B90C 01A17021 */ addu $t6, $t5, $at
/* 00260 8087B910 A4EE0032 */ sh $t6, 0x0032($a3) ## 00000032
/* 00264 8087B914 ACEF0164 */ sw $t7, 0x0164($a3) ## 00000164
.L8087B918:
/* 00268 8087B918 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
.L8087B91C:
/* 0026C 8087B91C 0C21EDD6 */ jal func_8087B758
/* 00270 8087B920 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 00274 8087B924 8FBF001C */ lw $ra, 0x001C($sp)
/* 00278 8087B928 8FB00018 */ lw $s0, 0x0018($sp)
/* 0027C 8087B92C 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00280 8087B930 03E00008 */ jr $ra
/* 00284 8087B934 00000000 */ nop

View file

@ -1,102 +0,0 @@
glabel func_8087B938
/* 00288 8087B938 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0
/* 0028C 8087B93C AFBF0034 */ sw $ra, 0x0034($sp)
/* 00290 8087B940 AFB00030 */ sw $s0, 0x0030($sp)
/* 00294 8087B944 AFA50044 */ sw $a1, 0x0044($sp)
/* 00298 8087B948 8CAF1C44 */ lw $t7, 0x1C44($a1) ## 00001C44
/* 0029C 8087B94C 3C013FC0 */ lui $at, 0x3FC0 ## $at = 3FC00000
/* 002A0 8087B950 44811000 */ mtc1 $at, $f2 ## $f2 = 1.50
/* 002A4 8087B954 3C018088 */ lui $at, %hi(D_8087BD48) ## $at = 80880000
/* 002A8 8087B958 AFAF003C */ sw $t7, 0x003C($sp)
/* 002AC 8087B95C C4840068 */ lwc1 $f4, 0x0068($a0) ## 00000068
/* 002B0 8087B960 C426BD48 */ lwc1 $f6, %lo(D_8087BD48)($at)
/* 002B4 8087B964 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 002B8 8087B968 3C054270 */ lui $a1, 0x4270 ## $a1 = 42700000
/* 002BC 8087B96C 46062200 */ add.s $f8, $f4, $f6
/* 002C0 8087B970 E4880068 */ swc1 $f8, 0x0068($a0) ## 00000068
/* 002C4 8087B974 C4800068 */ lwc1 $f0, 0x0068($a0) ## 00000068
/* 002C8 8087B978 4600103C */ c.lt.s $f2, $f0
/* 002CC 8087B97C 00000000 */ nop
/* 002D0 8087B980 45020004 */ bc1fl .L8087B994
/* 002D4 8087B984 E6000068 */ swc1 $f0, 0x0068($s0) ## 00000068
/* 002D8 8087B988 10000002 */ beq $zero, $zero, .L8087B994
/* 002DC 8087B98C E4820068 */ swc1 $f2, 0x0068($a0) ## 00000068
/* 002E0 8087B990 E6000068 */ swc1 $f0, 0x0068($s0) ## 00000068
.L8087B994:
/* 002E4 8087B994 26040070 */ addiu $a0, $s0, 0x0070 ## $a0 = 00000070
/* 002E8 8087B998 0C01DE80 */ jal Math_ApproxF
/* 002EC 8087B99C 8E060068 */ lw $a2, 0x0068($s0) ## 00000068
/* 002F0 8087B9A0 AFA20038 */ sw $v0, 0x0038($sp)
/* 002F4 8087B9A4 0C01DE1C */ jal Math_Sins
## sins?
/* 002F8 8087B9A8 86040032 */ lh $a0, 0x0032($s0) ## 00000032
/* 002FC 8087B9AC C60A0070 */ lwc1 $f10, 0x0070($s0) ## 00000070
/* 00300 8087B9B0 C6120008 */ lwc1 $f18, 0x0008($s0) ## 00000008
/* 00304 8087B9B4 86040032 */ lh $a0, 0x0032($s0) ## 00000032
/* 00308 8087B9B8 460A0402 */ mul.s $f16, $f0, $f10
/* 0030C 8087B9BC 46128100 */ add.s $f4, $f16, $f18
/* 00310 8087B9C0 0C01DE0D */ jal Math_Coss
## coss?
/* 00314 8087B9C4 E6040024 */ swc1 $f4, 0x0024($s0) ## 00000024
/* 00318 8087B9C8 C6060070 */ lwc1 $f6, 0x0070($s0) ## 00000070
/* 0031C 8087B9CC C60A0010 */ lwc1 $f10, 0x0010($s0) ## 00000010
/* 00320 8087B9D0 46060202 */ mul.s $f8, $f0, $f6
/* 00324 8087B9D4 460A4400 */ add.s $f16, $f8, $f10
/* 00328 8087B9D8 E610002C */ swc1 $f16, 0x002C($s0) ## 0000002C
/* 0032C 8087B9DC 8FB80038 */ lw $t8, 0x0038($sp)
/* 00330 8087B9E0 5300002B */ beql $t8, $zero, .L8087BA90
/* 00334 8087B9E4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00338 8087B9E8 44809000 */ mtc1 $zero, $f18 ## $f18 = 0.00
/* 0033C 8087B9EC 8FA2003C */ lw $v0, 0x003C($sp)
/* 00340 8087B9F0 2401FFEF */ addiu $at, $zero, 0xFFEF ## $at = FFFFFFEF
/* 00344 8087B9F4 E6120150 */ swc1 $f18, 0x0150($s0) ## 00000150
/* 00348 8087B9F8 8C590680 */ lw $t9, 0x0680($v0) ## 00000680
/* 0034C 8087B9FC 3C0A8016 */ lui $t2, %hi(gSaveContext+0x10)
/* 00350 8087BA00 03214024 */ and $t0, $t9, $at
/* 00354 8087BA04 AC480680 */ sw $t0, 0x0680($v0) ## 00000680
/* 00358 8087BA08 8609001C */ lh $t1, 0x001C($s0) ## 0000001C
/* 0035C 8087BA0C 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 00360 8087BA10 15210005 */ bne $t1, $at, .L8087BA28
/* 00364 8087BA14 00000000 */ nop
/* 00368 8087BA18 0C01E221 */ jal func_80078884
/* 0036C 8087BA1C 24044802 */ addiu $a0, $zero, 0x4802 ## $a0 = 00004802
/* 00370 8087BA20 10000017 */ beq $zero, $zero, .L8087BA80
/* 00374 8087BA24 00000000 */ nop
.L8087BA28:
/* 00378 8087BA28 8D4AE670 */ lw $t2, %lo(gSaveContext+0x10)($t2)
/* 0037C 8087BA2C 8FA50044 */ lw $a1, 0x0044($sp)
/* 00380 8087BA30 11400013 */ beq $t2, $zero, .L8087BA80
/* 00384 8087BA34 00000000 */ nop
/* 00388 8087BA38 84AB00A4 */ lh $t3, 0x00A4($a1) ## 000000A4
/* 0038C 8087BA3C 24010053 */ addiu $at, $zero, 0x0053 ## $at = 00000053
/* 00390 8087BA40 24A41C24 */ addiu $a0, $a1, 0x1C24 ## $a0 = 00001C24
/* 00394 8087BA44 1561000E */ bne $t3, $at, .L8087BA80
/* 00398 8087BA48 00000000 */ nop
/* 0039C 8087BA4C C604000C */ lwc1 $f4, 0x000C($s0) ## 0000000C
/* 003A0 8087BA50 8E070008 */ lw $a3, 0x0008($s0) ## 00000008
/* 003A4 8087BA54 240D0001 */ addiu $t5, $zero, 0x0001 ## $t5 = 00000001
/* 003A8 8087BA58 E7A40010 */ swc1 $f4, 0x0010($sp)
/* 003AC 8087BA5C C6060010 */ lwc1 $f6, 0x0010($s0) ## 00000010
/* 003B0 8087BA60 AFA00018 */ sw $zero, 0x0018($sp)
/* 003B4 8087BA64 2406000D */ addiu $a2, $zero, 0x000D ## $a2 = 0000000D
/* 003B8 8087BA68 E7A60014 */ swc1 $f6, 0x0014($sp)
/* 003BC 8087BA6C 860C00B6 */ lh $t4, 0x00B6($s0) ## 000000B6
/* 003C0 8087BA70 AFAD0024 */ sw $t5, 0x0024($sp)
/* 003C4 8087BA74 AFA00020 */ sw $zero, 0x0020($sp)
/* 003C8 8087BA78 0C00C7D4 */ jal Actor_Spawn
## ActorSpawn
/* 003CC 8087BA7C AFAC001C */ sw $t4, 0x001C($sp)
.L8087BA80:
/* 003D0 8087BA80 3C0E8088 */ lui $t6, %hi(func_8087BAAC) ## $t6 = 80880000
/* 003D4 8087BA84 25CEBAAC */ addiu $t6, $t6, %lo(func_8087BAAC) ## $t6 = 8087BAAC
/* 003D8 8087BA88 AE0E0164 */ sw $t6, 0x0164($s0) ## 00000164
/* 003DC 8087BA8C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L8087BA90:
/* 003E0 8087BA90 0C00BE5D */ jal func_8002F974
/* 003E4 8087BA94 2405200A */ addiu $a1, $zero, 0x200A ## $a1 = 0000200A
/* 003E8 8087BA98 8FBF0034 */ lw $ra, 0x0034($sp)
/* 003EC 8087BA9C 8FB00030 */ lw $s0, 0x0030($sp)
/* 003F0 8087BAA0 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000
/* 003F4 8087BAA4 03E00008 */ jr $ra
/* 003F8 8087BAA8 00000000 */ nop

View file

@ -1,16 +0,0 @@
glabel func_8087BAAC
/* 003FC 8087BAAC 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00400 8087BAB0 C4840150 */ lwc1 $f4, 0x0150($a0) ## 00000150
/* 00404 8087BAB4 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44
/* 00408 8087BAB8 46040032 */ c.eq.s $f0, $f4
/* 0040C 8087BABC 00000000 */ nop
/* 00410 8087BAC0 45010006 */ bc1t .L8087BADC
/* 00414 8087BAC4 00000000 */ nop
/* 00418 8087BAC8 E4800150 */ swc1 $f0, 0x0150($a0) ## 00000150
/* 0041C 8087BACC 8C4E0680 */ lw $t6, 0x0680($v0) ## 00000680
/* 00420 8087BAD0 2401FFEF */ addiu $at, $zero, 0xFFEF ## $at = FFFFFFEF
/* 00424 8087BAD4 01C17824 */ and $t7, $t6, $at
/* 00428 8087BAD8 AC4F0680 */ sw $t7, 0x0680($v0) ## 00000680
.L8087BADC:
/* 0042C 8087BADC 03E00008 */ jr $ra
/* 00430 8087BAE0 00000000 */ nop

View file

@ -1,34 +0,0 @@
glabel func_8087BAE4
/* 00434 8087BAE4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00438 8087BAE8 AFBF0014 */ sw $ra, 0x0014($sp)
/* 0043C 8087BAEC 8482001C */ lh $v0, 0x001C($a0) ## 0000001C
/* 00440 8087BAF0 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00444 8087BAF4 8CA61C44 */ lw $a2, 0x1C44($a1) ## 00001C44
/* 00448 8087BAF8 10400002 */ beq $v0, $zero, .L8087BB04
/* 0044C 8087BAFC 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
/* 00450 8087BB00 A48E001C */ sh $t6, 0x001C($a0) ## 0000001C
.L8087BB04:
/* 00454 8087BB04 C4840150 */ lwc1 $f4, 0x0150($a0) ## 00000150
/* 00458 8087BB08 3C088088 */ lui $t0, %hi(func_8087B7E8) ## $t0 = 80880000
/* 0045C 8087BB0C 2508B7E8 */ addiu $t0, $t0, %lo(func_8087B7E8) ## $t0 = 8087B7E8
/* 00460 8087BB10 46040032 */ c.eq.s $f0, $f4
/* 00464 8087BB14 00000000 */ nop
/* 00468 8087BB18 45030007 */ bc1tl .L8087BB38
/* 0046C 8087BB1C 8499001C */ lh $t9, 0x001C($a0) ## 0000001C
/* 00470 8087BB20 E4800150 */ swc1 $f0, 0x0150($a0) ## 00000150
/* 00474 8087BB24 8CCF0680 */ lw $t7, 0x0680($a2) ## 00000680
/* 00478 8087BB28 2401FFEF */ addiu $at, $zero, 0xFFEF ## $at = FFFFFFEF
/* 0047C 8087BB2C 01E1C024 */ and $t8, $t7, $at
/* 00480 8087BB30 ACD80680 */ sw $t8, 0x0680($a2) ## 00000680
/* 00484 8087BB34 8499001C */ lh $t9, 0x001C($a0) ## 0000001C
.L8087BB38:
/* 00488 8087BB38 17200002 */ bne $t9, $zero, .L8087BB44
/* 0048C 8087BB3C 00000000 */ nop
/* 00490 8087BB40 AC880164 */ sw $t0, 0x0164($a0) ## 00000164
.L8087BB44:
/* 00494 8087BB44 0C21EDD6 */ jal func_8087B758
/* 00498 8087BB48 00C02825 */ or $a1, $a2, $zero ## $a1 = 00000000
/* 0049C 8087BB4C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 004A0 8087BB50 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 004A4 8087BB54 03E00008 */ jr $ra
/* 004A8 8087BB58 00000000 */ nop

View file

@ -1,20 +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_Haka_InitVars
.word 0x009D0100, 0x00000000, 0x00A20000, 0x00000168
.word BgHaka_Init
.word BgHaka_Destroy
.word BgHaka_Update
.word BgHaka_Draw
glabel D_8087BCF0
.word 0xB0700000, 0x48500064, 0x00000000, 0x00000000

View file

@ -1,13 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purpose registers
.section .rodata
.balign 16
glabel D_8087BD50
.incbin "baserom/ovl_Bg_Haka", 0x6A0, 0x000000A0

3
spec
View file

@ -751,8 +751,7 @@ endseg
beginseg
name "ovl_Bg_Haka"
include "build/src/overlays/actors/ovl_Bg_Haka/z_bg_haka.o"
include "build/data/overlays/actors/z_bg_haka.data.o"
include "build/data/overlays/actors/z_bg_haka.reloc.o"
include "build/src/overlays/actors/ovl_Bg_Haka/ovl_Bg_Haka_reloc.o"
endseg
beginseg

View file

@ -20,7 +20,7 @@ void func_8087B7E8(BgHaka* this, GlobalContext* globalCtx);
void func_8087B938(BgHaka* this, GlobalContext* globalCtx);
void func_8087BAAC(BgHaka* this, GlobalContext* globalCtx);
void func_8087BAE4(BgHaka* this, GlobalContext* globalCtx);
/*
const ActorInit Bg_Haka_InitVars = {
ACTOR_BG_HAKA,
ACTORTYPE_BG,
@ -32,21 +32,140 @@ const ActorInit Bg_Haka_InitVars = {
(ActorFunc)BgHaka_Update,
(ActorFunc)BgHaka_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka/BgHaka_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka/BgHaka_Destroy.s")
static InitChainEntry sInitChain[] = {
ICHAIN_F32(minVelocityY, 0, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka/func_8087B758.s")
extern UNK_TYPE D_06000428;
extern Gfx D_060001B0[];
extern Gfx D_060002A8[];
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka/func_8087B7E8.s")
void BgHaka_Init(Actor* thisx, GlobalContext* globalCtx) {
BgHaka* this = THIS;
s32 pad;
s32 sp24 = 0;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka/func_8087B938.s")
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
DynaPolyInfo_SetActorMove(&this->dyna, 0);
DynaPolyInfo_Alloc(&D_06000428, &sp24);
this->dyna.dynaPolyId = DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, sp24);
this->actionFunc = func_8087B7E8;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka/func_8087BAAC.s")
void BgHaka_Destroy(Actor* thisx, GlobalContext* globalCtx) {
BgHaka* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka/func_8087BAE4.s")
DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka/BgHaka_Update.s")
void func_8087B758(BgHaka* this, Player* player) {
Vec3f sp1C;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka/BgHaka_Draw.s")
func_8002DBD0(&this->dyna.actor, &sp1C, &player->actor.posRot.pos);
if (fabsf(sp1C.x) < 34.6f && sp1C.z > -112.8f && sp1C.z < -36.0f) {
player->stateFlags2 |= 0x200;
}
}
void func_8087B7E8(BgHaka* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
if (this->dyna.unk_150 != 0.0f) {
if (globalCtx->sceneNum == SCENE_SPOT02 && LINK_IS_CHILD && !gSaveContext.nightFlag) {
this->dyna.unk_150 = 0.0f;
player->stateFlags2 &= ~0x10;
if (!Gameplay_InCsMode(globalCtx)) {
func_8010B680(globalCtx, 0x5073, NULL);
this->dyna.actor.params = 100;
this->actionFunc = func_8087BAE4;
}
} else if (0.0f < this->dyna.unk_150 ||
(globalCtx->sceneNum == SCENE_SPOT06 && LINK_IS_CHILD && !Flags_GetSwitch(globalCtx, 0x23))) {
this->dyna.unk_150 = 0.0f;
player->stateFlags2 &= ~0x10;
} else {
this->dyna.actor.posRot.rot.y = this->dyna.actor.shape.rot.y + 0x8000;
this->actionFunc = func_8087B938;
}
}
func_8087B758(this, player);
}
void func_8087B938(BgHaka* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
s32 sp38;
this->dyna.actor.speedXZ += 0.05f;
this->dyna.actor.speedXZ = CLAMP_MAX(this->dyna.actor.speedXZ, 1.5f);
sp38 = Math_ApproxF(&this->dyna.actor.minVelocityY, 60.0f, this->dyna.actor.speedXZ);
this->dyna.actor.posRot.pos.x =
Math_Sins(this->dyna.actor.posRot.rot.y) * this->dyna.actor.minVelocityY + this->dyna.actor.initPosRot.pos.x;
this->dyna.actor.posRot.pos.z =
Math_Coss(this->dyna.actor.posRot.rot.y) * this->dyna.actor.minVelocityY + this->dyna.actor.initPosRot.pos.z;
if (sp38 != 0) {
this->dyna.unk_150 = 0.0f;
player->stateFlags2 &= ~0x10;
if (this->dyna.actor.params == 1) {
func_80078884(NA_SE_SY_CORRECT_CHIME);
} else if (gSaveContext.nightFlag && globalCtx->sceneNum == SCENE_SPOT02) {
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_POH, this->dyna.actor.initPosRot.pos.x,
this->dyna.actor.initPosRot.pos.y, this->dyna.actor.initPosRot.pos.z, 0,
this->dyna.actor.shape.rot.y, 0, 1);
}
this->actionFunc = func_8087BAAC;
}
func_8002F974(&this->dyna.actor, NA_SE_EV_ROCK_SLIDE - SFX_FLAG);
}
void func_8087BAAC(BgHaka* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
if (this->dyna.unk_150 != 0.0f) {
this->dyna.unk_150 = 0.0f;
player->stateFlags2 &= ~0x10;
}
}
void func_8087BAE4(BgHaka* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
s32 pad;
if (this->dyna.actor.params != 0) {
this->dyna.actor.params -= 1;
}
if (this->dyna.unk_150 != 0.0f) {
this->dyna.unk_150 = 0.0f;
player->stateFlags2 &= ~0x10;
}
if (this->dyna.actor.params == 0) {
this->actionFunc = func_8087B7E8;
}
func_8087B758(this, player);
}
void BgHaka_Update(Actor* thisx, GlobalContext* globalCtx) {
BgHaka* this = THIS;
this->actionFunc(this, globalCtx);
}
void BgHaka_Draw(Actor* thisx, GlobalContext* globalCtx) {
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
Gfx* dispRefs[4];
Graph_OpenDisps(dispRefs, globalCtx->state.gfxCtx, "../z_bg_haka.c", 401);
func_80093D18(globalCtx->state.gfxCtx);
func_80093D84(globalCtx->state.gfxCtx);
gSPMatrix(gfxCtx->polyOpa.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_haka.c", 406),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(gfxCtx->polyOpa.p++, D_060001B0);
Matrix_Translate(0.0f, 0.0f, thisx->minVelocityY * 10.0f, MTXMODE_APPLY);
gSPMatrix(gfxCtx->polyXlu.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_haka.c", 416),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(gfxCtx->polyXlu.p++, D_060002A8);
Graph_CloseDisps(dispRefs, globalCtx->state.gfxCtx, "../z_bg_haka.c", 421);
}

View file

@ -352,6 +352,11 @@ D_060003C0 = 0x060003C0;
D_060030A0 = 0x060030A0;
D_06003158 = 0x06003158;
// z_bg_haka
D_06000428 = 0x06000428;
D_060001B0 = 0x060001B0;
D_060002A8 = 0x060002A8;
// z_bg_haka_megane
D_06001250 = 0x06001250;