1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-02-02 09:34:27 +00:00

Decompiled ovl_Bg_Haka_MeganeBG (#448)

This commit is contained in:
Ethan Roseman 2020-10-12 20:44:22 -04:00 committed by GitHub
parent 5c631e3170
commit 08c4065a5e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
24 changed files with 205 additions and 491 deletions

View file

@ -1,14 +0,0 @@
glabel BgHakaMeganeBG_Destroy
/* 00198 8087DFC8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 0019C 8087DFCC AFA40018 */ sw $a0, 0x0018($sp)
/* 001A0 8087DFD0 8FAE0018 */ lw $t6, 0x0018($sp)
/* 001A4 8087DFD4 AFBF0014 */ sw $ra, 0x0014($sp)
/* 001A8 8087DFD8 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 001AC 8087DFDC 24A50810 */ addiu $a1, $a1, 0x0810 ## $a1 = 00000810
/* 001B0 8087DFE0 0C00FB56 */ jal DynaPolyInfo_Free
## DynaPolyInfo_delReserve
/* 001B4 8087DFE4 8DC6014C */ lw $a2, 0x014C($t6) ## 0000014C
/* 001B8 8087DFE8 8FBF0014 */ lw $ra, 0x0014($sp)
/* 001BC 8087DFEC 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 001C0 8087DFF0 03E00008 */ jr $ra
/* 001C4 8087DFF4 00000000 */ nop

View file

@ -1,26 +0,0 @@
glabel BgHakaMeganeBG_Draw
/* 0054C 8087E37C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00550 8087E380 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00554 8087E384 8482001C */ lh $v0, 0x001C($a0) ## 0000001C
/* 00558 8087E388 00A03025 */ or $a2, $a1, $zero ## $a2 = 00000000
/* 0055C 8087E38C 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00560 8087E390 14400007 */ bne $v0, $zero, .L8087E3B0
/* 00564 8087E394 00027080 */ sll $t6, $v0, 2
/* 00568 8087E398 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 0056C 8087E39C 3C050601 */ lui $a1, 0x0601 ## $a1 = 06010000
/* 00570 8087E3A0 0C00D4C9 */ jal Gfx_DrawDListXlu
/* 00574 8087E3A4 24A58EB0 */ addiu $a1, $a1, 0x8EB0 ## $a1 = 06008EB0
/* 00578 8087E3A8 10000006 */ beq $zero, $zero, .L8087E3C4
/* 0057C 8087E3AC 8FBF0014 */ lw $ra, 0x0014($sp)
.L8087E3B0:
/* 00580 8087E3B0 3C058088 */ lui $a1, %hi(D_8087E410) ## $a1 = 80880000
/* 00584 8087E3B4 00AE2821 */ addu $a1, $a1, $t6
/* 00588 8087E3B8 0C00D498 */ jal Gfx_DrawDListOpa
/* 0058C 8087E3BC 8CA5E410 */ lw $a1, %lo(D_8087E410)($a1)
/* 00590 8087E3C0 8FBF0014 */ lw $ra, 0x0014($sp)
.L8087E3C4:
/* 00594 8087E3C4 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00598 8087E3C8 03E00008 */ jr $ra
/* 0059C 8087E3CC 00000000 */ nop

View file

@ -1,122 +0,0 @@
.late_rodata
glabel D_8087E420
.float 3000.0
.text
glabel BgHakaMeganeBG_Init
/* 00000 8087DE30 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00004 8087DE34 AFA50034 */ sw $a1, 0x0034($sp)
/* 00008 8087DE38 AFBF001C */ sw $ra, 0x001C($sp)
/* 0000C 8087DE3C AFB00018 */ sw $s0, 0x0018($sp)
/* 00010 8087DE40 3C058088 */ lui $a1, %hi(D_8087E3F0) ## $a1 = 80880000
/* 00014 8087DE44 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00018 8087DE48 AFA00024 */ sw $zero, 0x0024($sp)
/* 0001C 8087DE4C 0C01E037 */ jal Actor_ProcessInitChain
/* 00020 8087DE50 24A5E3F0 */ addiu $a1, $a1, %lo(D_8087E3F0) ## $a1 = 8087E3F0
/* 00024 8087DE54 8619001C */ lh $t9, 0x001C($s0) ## 0000001C
/* 00028 8087DE58 860E001C */ lh $t6, 0x001C($s0) ## 0000001C
/* 0002C 8087DE5C 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 00030 8087DE60 332800FF */ andi $t0, $t9, 0x00FF ## $t0 = 00000000
/* 00034 8087DE64 A608001C */ sh $t0, 0x001C($s0) ## 0000001C
/* 00038 8087DE68 8609001C */ lh $t1, 0x001C($s0) ## 0000001C
/* 0003C 8087DE6C 000EC203 */ sra $t8, $t6, 8
/* 00040 8087DE70 A2180168 */ sb $t8, 0x0168($s0) ## 00000168
/* 00044 8087DE74 1521000F */ bne $t1, $at, .L8087DEB4
/* 00048 8087DE78 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0004C 8087DE7C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00050 8087DE80 0C010D20 */ jal DynaPolyInfo_SetActorMove
/* 00054 8087DE84 24050003 */ addiu $a1, $zero, 0x0003 ## $a1 = 00000003
/* 00058 8087DE88 8E0A0004 */ lw $t2, 0x0004($s0) ## 00000004
/* 0005C 8087DE8C 3C040600 */ lui $a0, 0x0600 ## $a0 = 06000000
/* 00060 8087DE90 24845334 */ addiu $a0, $a0, 0x5334 ## $a0 = 06005334
/* 00064 8087DE94 354B0010 */ ori $t3, $t2, 0x0010 ## $t3 = 00000010
/* 00068 8087DE98 AE0B0004 */ sw $t3, 0x0004($s0) ## 00000004
/* 0006C 8087DE9C 0C010620 */ jal DynaPolyInfo_Alloc
/* 00070 8087DEA0 27A50024 */ addiu $a1, $sp, 0x0024 ## $a1 = FFFFFFF4
/* 00074 8087DEA4 3C0C8088 */ lui $t4, %hi(func_8087E258) ## $t4 = 80880000
/* 00078 8087DEA8 258CE258 */ addiu $t4, $t4, %lo(func_8087E258) ## $t4 = 8087E258
/* 0007C 8087DEAC 1000003B */ beq $zero, $zero, .L8087DF9C
/* 00080 8087DEB0 AE0C0164 */ sw $t4, 0x0164($s0) ## 00000164
.L8087DEB4:
/* 00084 8087DEB4 0C010D20 */ jal DynaPolyInfo_SetActorMove
/* 00088 8087DEB8 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 0008C 8087DEBC 8602001C */ lh $v0, 0x001C($s0) ## 0000001C
/* 00090 8087DEC0 3C040601 */ lui $a0, 0x0601 ## $a0 = 06010000
/* 00094 8087DEC4 24849168 */ addiu $a0, $a0, 0x9168 ## $a0 = 06009168
/* 00098 8087DEC8 1440000C */ bne $v0, $zero, .L8087DEFC
/* 0009C 8087DECC 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
/* 000A0 8087DED0 0C010620 */ jal DynaPolyInfo_Alloc
/* 000A4 8087DED4 27A50024 */ addiu $a1, $sp, 0x0024 ## $a1 = FFFFFFF4
/* 000A8 8087DED8 8E0D0004 */ lw $t5, 0x0004($s0) ## 00000004
/* 000AC 8087DEDC 3C188088 */ lui $t8, %hi(func_8087DFF8) ## $t8 = 80880000
/* 000B0 8087DEE0 240F0014 */ addiu $t7, $zero, 0x0014 ## $t7 = 00000014
/* 000B4 8087DEE4 2718DFF8 */ addiu $t8, $t8, %lo(func_8087DFF8) ## $t8 = 8087DFF8
/* 000B8 8087DEE8 35AE0080 */ ori $t6, $t5, 0x0080 ## $t6 = 00000080
/* 000BC 8087DEEC AE0E0004 */ sw $t6, 0x0004($s0) ## 00000004
/* 000C0 8087DEF0 A60F016A */ sh $t7, 0x016A($s0) ## 0000016A
/* 000C4 8087DEF4 10000029 */ beq $zero, $zero, .L8087DF9C
/* 000C8 8087DEF8 AE180164 */ sw $t8, 0x0164($s0) ## 00000164
.L8087DEFC:
/* 000CC 8087DEFC 1441001B */ bne $v0, $at, .L8087DF6C
/* 000D0 8087DF00 3C040601 */ lui $a0, 0x0601 ## $a0 = 06010000
/* 000D4 8087DF04 3C040600 */ lui $a0, 0x0600 ## $a0 = 06000000
/* 000D8 8087DF08 24840118 */ addiu $a0, $a0, 0x0118 ## $a0 = 06000118
/* 000DC 8087DF0C 0C010620 */ jal DynaPolyInfo_Alloc
/* 000E0 8087DF10 27A50024 */ addiu $a1, $sp, 0x0024 ## $a1 = FFFFFFF4
/* 000E4 8087DF14 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 000E8 8087DF18 44813000 */ mtc1 $at, $f6 ## $f6 = 100.00
/* 000EC 8087DF1C C604000C */ lwc1 $f4, 0x000C($s0) ## 0000000C
/* 000F0 8087DF20 92050168 */ lbu $a1, 0x0168($s0) ## 00000168
/* 000F4 8087DF24 46062200 */ add.s $f8, $f4, $f6
/* 000F8 8087DF28 E608000C */ swc1 $f8, 0x000C($s0) ## 0000000C
/* 000FC 8087DF2C 0C00B2D0 */ jal Flags_GetSwitch
/* 00100 8087DF30 8FA40034 */ lw $a0, 0x0034($sp)
/* 00104 8087DF34 10400007 */ beq $v0, $zero, .L8087DF54
/* 00108 8087DF38 3C0A8088 */ lui $t2, %hi(func_8087E288) ## $t2 = 80880000
/* 0010C 8087DF3C C60A000C */ lwc1 $f10, 0x000C($s0) ## 0000000C
/* 00110 8087DF40 3C198088 */ lui $t9, %hi(func_8087E34C) ## $t9 = 80880000
/* 00114 8087DF44 2739E34C */ addiu $t9, $t9, %lo(func_8087E34C) ## $t9 = 8087E34C
/* 00118 8087DF48 AE190164 */ sw $t9, 0x0164($s0) ## 00000164
/* 0011C 8087DF4C 10000013 */ beq $zero, $zero, .L8087DF9C
/* 00120 8087DF50 E60A0028 */ swc1 $f10, 0x0028($s0) ## 00000028
.L8087DF54:
/* 00124 8087DF54 8E080004 */ lw $t0, 0x0004($s0) ## 00000004
/* 00128 8087DF58 254AE288 */ addiu $t2, $t2, %lo(func_8087E288) ## $t2 = 8087E288
/* 0012C 8087DF5C AE0A0164 */ sw $t2, 0x0164($s0) ## 00000164
/* 00130 8087DF60 35090010 */ ori $t1, $t0, 0x0010 ## $t1 = 00000010
/* 00134 8087DF64 1000000D */ beq $zero, $zero, .L8087DF9C
/* 00138 8087DF68 AE090004 */ sw $t1, 0x0004($s0) ## 00000004
.L8087DF6C:
/* 0013C 8087DF6C 2484A7F4 */ addiu $a0, $a0, 0xA7F4 ## $a0 = FFFFA7F4
/* 00140 8087DF70 0C010620 */ jal DynaPolyInfo_Alloc
/* 00144 8087DF74 27A50024 */ addiu $a1, $sp, 0x0024 ## $a1 = FFFFFFF4
/* 00148 8087DF78 3C018088 */ lui $at, %hi(D_8087E420) ## $at = 80880000
/* 0014C 8087DF7C C420E420 */ lwc1 $f0, %lo(D_8087E420)($at)
/* 00150 8087DF80 3C0C8088 */ lui $t4, %hi(func_8087E10C) ## $t4 = 80880000
/* 00154 8087DF84 240B0050 */ addiu $t3, $zero, 0x0050 ## $t3 = 00000050
/* 00158 8087DF88 258CE10C */ addiu $t4, $t4, %lo(func_8087E10C) ## $t4 = 8087E10C
/* 0015C 8087DF8C A60B016A */ sh $t3, 0x016A($s0) ## 0000016A
/* 00160 8087DF90 AE0C0164 */ sw $t4, 0x0164($s0) ## 00000164
/* 00164 8087DF94 E60000F8 */ swc1 $f0, 0x00F8($s0) ## 000000F8
/* 00168 8087DF98 E60000FC */ swc1 $f0, 0x00FC($s0) ## 000000FC
.L8087DF9C:
/* 0016C 8087DF9C 8FA40034 */ lw $a0, 0x0034($sp)
/* 00170 8087DFA0 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 00174 8087DFA4 8FA70024 */ lw $a3, 0x0024($sp)
/* 00178 8087DFA8 0C00FA9D */ jal DynaPolyInfo_RegisterActor
## DynaPolyInfo_setActor
/* 0017C 8087DFAC 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810
/* 00180 8087DFB0 AE02014C */ sw $v0, 0x014C($s0) ## 0000014C
/* 00184 8087DFB4 8FBF001C */ lw $ra, 0x001C($sp)
/* 00188 8087DFB8 8FB00018 */ lw $s0, 0x0018($sp)
/* 0018C 8087DFBC 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 00190 8087DFC0 03E00008 */ jr $ra
/* 00194 8087DFC4 00000000 */ nop

View file

@ -1,10 +0,0 @@
glabel BgHakaMeganeBG_Update
/* 00528 8087E358 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 0052C 8087E35C AFBF0014 */ sw $ra, 0x0014($sp)
/* 00530 8087E360 8C990164 */ lw $t9, 0x0164($a0) ## 00000164
/* 00534 8087E364 0320F809 */ jalr $ra, $t9
/* 00538 8087E368 00000000 */ nop
/* 0053C 8087E36C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00540 8087E370 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00544 8087E374 03E00008 */ jr $ra
/* 00548 8087E378 00000000 */ nop

View file

@ -1,21 +0,0 @@
glabel func_8087DFF8
/* 001C8 8087DFF8 AFA50004 */ sw $a1, 0x0004($sp)
/* 001CC 8087DFFC 8482016A */ lh $v0, 0x016A($a0) ## 0000016A
/* 001D0 8087E000 240F0028 */ addiu $t7, $zero, 0x0028 ## $t7 = 00000028
/* 001D4 8087E004 34018000 */ ori $at, $zero, 0x8000 ## $at = 00008000
/* 001D8 8087E008 10400003 */ beq $v0, $zero, .L8087E018
/* 001DC 8087E00C 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
/* 001E0 8087E010 A48E016A */ sh $t6, 0x016A($a0) ## 0000016A
/* 001E4 8087E014 8482016A */ lh $v0, 0x016A($a0) ## 0000016A
.L8087E018:
/* 001E8 8087E018 14400007 */ bne $v0, $zero, .L8087E038
/* 001EC 8087E01C 3C088088 */ lui $t0, %hi(func_8087E040) ## $t0 = 80880000
/* 001F0 8087E020 84980032 */ lh $t8, 0x0032($a0) ## 00000032
/* 001F4 8087E024 2508E040 */ addiu $t0, $t0, %lo(func_8087E040) ## $t0 = 8087E040
/* 001F8 8087E028 A48F016A */ sh $t7, 0x016A($a0) ## 0000016A
/* 001FC 8087E02C 0301C821 */ addu $t9, $t8, $at
/* 00200 8087E030 A4990032 */ sh $t9, 0x0032($a0) ## 00000032
/* 00204 8087E034 AC880164 */ sw $t0, 0x0164($a0) ## 00000164
.L8087E038:
/* 00208 8087E038 03E00008 */ jr $ra
/* 0020C 8087E03C 00000000 */ nop

View file

@ -1,64 +0,0 @@
.late_rodata
glabel D_8087E424
.float 0.025
glabel D_8087E428
.float 3.1415927 # PI
.text
glabel func_8087E040
/* 00210 8087E040 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00214 8087E044 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00218 8087E048 AFA5001C */ sw $a1, 0x001C($sp)
/* 0021C 8087E04C 8482016A */ lh $v0, 0x016A($a0) ## 0000016A
/* 00220 8087E050 10400003 */ beq $v0, $zero, .L8087E060
/* 00224 8087E054 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
/* 00228 8087E058 A48E016A */ sh $t6, 0x016A($a0) ## 0000016A
/* 0022C 8087E05C 8482016A */ lh $v0, 0x016A($a0) ## 0000016A
.L8087E060:
/* 00230 8087E060 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00
/* 00234 8087E064 3C018088 */ lui $at, %hi(D_8087E424) ## $at = 80880000
/* 00238 8087E068 C428E424 */ lwc1 $f8, %lo(D_8087E424)($at)
/* 0023C 8087E06C 468021A0 */ cvt.s.w $f6, $f4
/* 00240 8087E070 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 00244 8087E074 44818000 */ mtc1 $at, $f16 ## $f16 = 0.50
/* 00248 8087E078 3C018088 */ lui $at, %hi(D_8087E428) ## $at = 80880000
/* 0024C 8087E07C C424E428 */ lwc1 $f4, %lo(D_8087E428)($at)
/* 00250 8087E080 AFA40018 */ sw $a0, 0x0018($sp)
/* 00254 8087E084 46083282 */ mul.s $f10, $f6, $f8
/* 00258 8087E088 46105480 */ add.s $f18, $f10, $f16
/* 0025C 8087E08C 46049302 */ mul.s $f12, $f18, $f4
/* 00260 8087E090 0C0400A4 */ jal sinf
/* 00264 8087E094 00000000 */ nop
/* 00268 8087E098 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 0026C 8087E09C 44813000 */ mtc1 $at, $f6 ## $f6 = 1.00
/* 00270 8087E0A0 3C014320 */ lui $at, 0x4320 ## $at = 43200000
/* 00274 8087E0A4 44815000 */ mtc1 $at, $f10 ## $f10 = 160.00
/* 00278 8087E0A8 46060200 */ add.s $f8, $f0, $f6
/* 0027C 8087E0AC 8FA40018 */ lw $a0, 0x0018($sp)
/* 00280 8087E0B0 3C098088 */ lui $t1, %hi(func_8087DFF8) ## $t1 = 80880000
/* 00284 8087E0B4 3C0143A0 */ lui $at, 0x43A0 ## $at = 43A00000
/* 00288 8087E0B8 460A4302 */ mul.s $f12, $f8, $f10
/* 0028C 8087E0BC 848F00B6 */ lh $t7, 0x00B6($a0) ## 000000B6
/* 00290 8087E0C0 84980032 */ lh $t8, 0x0032($a0) ## 00000032
/* 00294 8087E0C4 24080014 */ addiu $t0, $zero, 0x0014 ## $t0 = 00000014
/* 00298 8087E0C8 2529DFF8 */ addiu $t1, $t1, %lo(func_8087DFF8) ## $t1 = 8087DFF8
/* 0029C 8087E0CC 11F80004 */ beq $t7, $t8, .L8087E0E0
/* 002A0 8087E0D0 46006086 */ mov.s $f2, $f12
/* 002A4 8087E0D4 44818000 */ mtc1 $at, $f16 ## $f16 = 320.00
/* 002A8 8087E0D8 00000000 */ nop
/* 002AC 8087E0DC 460C8081 */ sub.s $f2, $f16, $f12
.L8087E0E0:
/* 002B0 8087E0E0 C4920008 */ lwc1 $f18, 0x0008($a0) ## 00000008
/* 002B4 8087E0E4 8499016A */ lh $t9, 0x016A($a0) ## 0000016A
/* 002B8 8087E0E8 46029101 */ sub.s $f4, $f18, $f2
/* 002BC 8087E0EC 17200003 */ bne $t9, $zero, .L8087E0FC
/* 002C0 8087E0F0 E4840024 */ swc1 $f4, 0x0024($a0) ## 00000024
/* 002C4 8087E0F4 A488016A */ sh $t0, 0x016A($a0) ## 0000016A
/* 002C8 8087E0F8 AC890164 */ sw $t1, 0x0164($a0) ## 00000164
.L8087E0FC:
/* 002CC 8087E0FC 8FBF0014 */ lw $ra, 0x0014($sp)
/* 002D0 8087E100 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 002D4 8087E104 03E00008 */ jr $ra
/* 002D8 8087E108 00000000 */ nop

View file

@ -1,59 +0,0 @@
glabel func_8087E10C
/* 002DC 8087E10C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 002E0 8087E110 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000
/* 002E4 8087E114 44811000 */ mtc1 $at, $f2 ## $f2 = 20.00
/* 002E8 8087E118 AFBF0014 */ sw $ra, 0x0014($sp)
/* 002EC 8087E11C AFA5001C */ sw $a1, 0x001C($sp)
/* 002F0 8087E120 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 002F4 8087E124 44813000 */ mtc1 $at, $f6 ## $f6 = 1.00
/* 002F8 8087E128 C4840060 */ lwc1 $f4, 0x0060($a0) ## 00000060
/* 002FC 8087E12C 3C014420 */ lui $at, 0x4420 ## $at = 44200000
/* 00300 8087E130 44818000 */ mtc1 $at, $f16 ## $f16 = 640.00
/* 00304 8087E134 46062200 */ add.s $f8, $f4, $f6
/* 00308 8087E138 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 0030C 8087E13C E4880060 */ swc1 $f8, 0x0060($a0) ## 00000060
/* 00310 8087E140 C4800060 */ lwc1 $f0, 0x0060($a0) ## 00000060
/* 00314 8087E144 4600103C */ c.lt.s $f2, $f0
/* 00318 8087E148 00000000 */ nop
/* 0031C 8087E14C 45020004 */ bc1fl .L8087E160
/* 00320 8087E150 E4E00060 */ swc1 $f0, 0x0060($a3) ## 00000060
/* 00324 8087E154 10000002 */ beq $zero, $zero, .L8087E160
/* 00328 8087E158 E4820060 */ swc1 $f2, 0x0060($a0) ## 00000060
/* 0032C 8087E15C E4E00060 */ swc1 $f0, 0x0060($a3) ## 00000060
.L8087E160:
/* 00330 8087E160 84E2016A */ lh $v0, 0x016A($a3) ## 0000016A
/* 00334 8087E164 10400002 */ beq $v0, $zero, .L8087E170
/* 00338 8087E168 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
/* 0033C 8087E16C A4EE016A */ sh $t6, 0x016A($a3) ## 0000016A
.L8087E170:
/* 00340 8087E170 C4EA000C */ lwc1 $f10, 0x000C($a3) ## 0000000C
/* 00344 8087E174 8CE60060 */ lw $a2, 0x0060($a3) ## 00000060
/* 00348 8087E178 AFA70018 */ sw $a3, 0x0018($sp)
/* 0034C 8087E17C 46105481 */ sub.s $f18, $f10, $f16
/* 00350 8087E180 24E40028 */ addiu $a0, $a3, 0x0028 ## $a0 = 00000028
/* 00354 8087E184 44059000 */ mfc1 $a1, $f18
/* 00358 8087E188 0C01DE80 */ jal Math_ApproxF
/* 0035C 8087E18C 00000000 */ nop
/* 00360 8087E190 14400006 */ bne $v0, $zero, .L8087E1AC
/* 00364 8087E194 8FA70018 */ lw $a3, 0x0018($sp)
/* 00368 8087E198 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 0036C 8087E19C 2405204D */ addiu $a1, $zero, 0x204D ## $a1 = 0000204D
/* 00370 8087E1A0 0C00BE5D */ jal func_8002F974
/* 00374 8087E1A4 AFA70018 */ sw $a3, 0x0018($sp)
/* 00378 8087E1A8 8FA70018 */ lw $a3, 0x0018($sp)
.L8087E1AC:
/* 0037C 8087E1AC 84EF016A */ lh $t7, 0x016A($a3) ## 0000016A
/* 00380 8087E1B0 3C198088 */ lui $t9, %hi(func_8087E1E0) ## $t9 = 80880000
/* 00384 8087E1B4 24180078 */ addiu $t8, $zero, 0x0078 ## $t8 = 00000078
/* 00388 8087E1B8 15E00005 */ bne $t7, $zero, .L8087E1D0
/* 0038C 8087E1BC 2739E1E0 */ addiu $t9, $t9, %lo(func_8087E1E0) ## $t9 = 8087E1E0
/* 00390 8087E1C0 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 00394 8087E1C4 A4F8016A */ sh $t8, 0x016A($a3) ## 0000016A
/* 00398 8087E1C8 ACF90164 */ sw $t9, 0x0164($a3) ## 00000164
/* 0039C 8087E1CC E4E40060 */ swc1 $f4, 0x0060($a3) ## 00000060
.L8087E1D0:
/* 003A0 8087E1D0 8FBF0014 */ lw $ra, 0x0014($sp)
/* 003A4 8087E1D4 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 003A8 8087E1D8 03E00008 */ jr $ra
/* 003AC 8087E1DC 00000000 */ nop

View file

@ -1,34 +0,0 @@
glabel func_8087E1E0
/* 003B0 8087E1E0 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 003B4 8087E1E4 AFBF0014 */ sw $ra, 0x0014($sp)
/* 003B8 8087E1E8 AFA5001C */ sw $a1, 0x001C($sp)
/* 003BC 8087E1EC 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 003C0 8087E1F0 8CE5000C */ lw $a1, 0x000C($a3) ## 0000000C
/* 003C4 8087E1F4 3C0640AA */ lui $a2, 0x40AA ## $a2 = 40AA0000
/* 003C8 8087E1F8 34C6AAAB */ ori $a2, $a2, 0xAAAB ## $a2 = 40AAAAAB
/* 003CC 8087E1FC AFA70018 */ sw $a3, 0x0018($sp)
/* 003D0 8087E200 0C01DE80 */ jal Math_ApproxF
/* 003D4 8087E204 24840028 */ addiu $a0, $a0, 0x0028 ## $a0 = 00000028
/* 003D8 8087E208 8FA40018 */ lw $a0, 0x0018($sp)
/* 003DC 8087E20C 0C00BE5D */ jal func_8002F974
/* 003E0 8087E210 2405200D */ addiu $a1, $zero, 0x200D ## $a1 = 0000200D
/* 003E4 8087E214 8FA70018 */ lw $a3, 0x0018($sp)
/* 003E8 8087E218 3C188088 */ lui $t8, %hi(func_8087E10C) ## $t8 = 80880000
/* 003EC 8087E21C 240F0050 */ addiu $t7, $zero, 0x0050 ## $t7 = 00000050
/* 003F0 8087E220 84E2016A */ lh $v0, 0x016A($a3) ## 0000016A
/* 003F4 8087E224 2718E10C */ addiu $t8, $t8, %lo(func_8087E10C) ## $t8 = 8087E10C
/* 003F8 8087E228 10400003 */ beq $v0, $zero, .L8087E238
/* 003FC 8087E22C 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
/* 00400 8087E230 A4EE016A */ sh $t6, 0x016A($a3) ## 0000016A
/* 00404 8087E234 84E2016A */ lh $v0, 0x016A($a3) ## 0000016A
.L8087E238:
/* 00408 8087E238 54400004 */ bnel $v0, $zero, .L8087E24C
/* 0040C 8087E23C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00410 8087E240 A4EF016A */ sh $t7, 0x016A($a3) ## 0000016A
/* 00414 8087E244 ACF80164 */ sw $t8, 0x0164($a3) ## 00000164
/* 00418 8087E248 8FBF0014 */ lw $ra, 0x0014($sp)
.L8087E24C:
/* 0041C 8087E24C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00420 8087E250 03E00008 */ jr $ra
/* 00424 8087E254 00000000 */ nop

View file

@ -1,13 +0,0 @@
glabel func_8087E258
/* 00428 8087E258 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 0042C 8087E25C AFBF0014 */ sw $ra, 0x0014($sp)
/* 00430 8087E260 AFA5001C */ sw $a1, 0x001C($sp)
/* 00434 8087E264 848E00B6 */ lh $t6, 0x00B6($a0) ## 000000B6
/* 00438 8087E268 24052024 */ addiu $a1, $zero, 0x2024 ## $a1 = 00002024
/* 0043C 8087E26C 25CF0180 */ addiu $t7, $t6, 0x0180 ## $t7 = 00000180
/* 00440 8087E270 0C00BE5D */ jal func_8002F974
/* 00444 8087E274 A48F00B6 */ sh $t7, 0x00B6($a0) ## 000000B6
/* 00448 8087E278 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0044C 8087E27C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00450 8087E280 03E00008 */ jr $ra
/* 00454 8087E284 00000000 */ nop

View file

@ -1,23 +0,0 @@
glabel func_8087E288
/* 00458 8087E288 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 0045C 8087E28C AFA40018 */ sw $a0, 0x0018($sp)
/* 00460 8087E290 8FAE0018 */ lw $t6, 0x0018($sp)
/* 00464 8087E294 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00468 8087E298 AFA5001C */ sw $a1, 0x001C($sp)
/* 0046C 8087E29C 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00470 8087E2A0 0C00B2D0 */ jal Flags_GetSwitch
/* 00474 8087E2A4 91C50168 */ lbu $a1, 0x0168($t6) ## 00000168
/* 00478 8087E2A8 10400007 */ beq $v0, $zero, .L8087E2C8
/* 0047C 8087E2AC 8FA4001C */ lw $a0, 0x001C($sp)
/* 00480 8087E2B0 0C020120 */ jal func_80080480
/* 00484 8087E2B4 8FA50018 */ lw $a1, 0x0018($sp)
/* 00488 8087E2B8 8FB80018 */ lw $t8, 0x0018($sp)
/* 0048C 8087E2BC 3C0F8088 */ lui $t7, %hi(func_8087E2D8) ## $t7 = 80880000
/* 00490 8087E2C0 25EFE2D8 */ addiu $t7, $t7, %lo(func_8087E2D8) ## $t7 = 8087E2D8
/* 00494 8087E2C4 AF0F0164 */ sw $t7, 0x0164($t8) ## 00000164
.L8087E2C8:
/* 00498 8087E2C8 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0049C 8087E2CC 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 004A0 8087E2D0 03E00008 */ jr $ra
/* 004A4 8087E2D4 00000000 */ nop

View file

@ -1,35 +0,0 @@
glabel func_8087E2D8
/* 004A8 8087E2D8 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 004AC 8087E2DC AFB00018 */ sw $s0, 0x0018($sp)
/* 004B0 8087E2E0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 004B4 8087E2E4 AFBF001C */ sw $ra, 0x001C($sp)
/* 004B8 8087E2E8 AFA50024 */ sw $a1, 0x0024($sp)
/* 004BC 8087E2EC 3C0541F0 */ lui $a1, 0x41F0 ## $a1 = 41F00000
/* 004C0 8087E2F0 24840068 */ addiu $a0, $a0, 0x0068 ## $a0 = 00000068
/* 004C4 8087E2F4 0C01DE80 */ jal Math_ApproxF
/* 004C8 8087E2F8 3C064000 */ lui $a2, 0x4000 ## $a2 = 40000000
/* 004CC 8087E2FC 26040028 */ addiu $a0, $s0, 0x0028 ## $a0 = 00000028
/* 004D0 8087E300 8E05000C */ lw $a1, 0x000C($s0) ## 0000000C
/* 004D4 8087E304 0C01DE80 */ jal Math_ApproxF
/* 004D8 8087E308 8E060068 */ lw $a2, 0x0068($s0) ## 00000068
/* 004DC 8087E30C 10400008 */ beq $v0, $zero, .L8087E330
/* 004E0 8087E310 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 004E4 8087E314 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 004E8 8087E318 0C00B56E */ jal Actor_SetHeight
/* 004EC 8087E31C 3C054248 */ lui $a1, 0x4248 ## $a1 = 42480000
/* 004F0 8087E320 3C0E8088 */ lui $t6, %hi(func_8087E34C) ## $t6 = 80880000
/* 004F4 8087E324 25CEE34C */ addiu $t6, $t6, %lo(func_8087E34C) ## $t6 = 8087E34C
/* 004F8 8087E328 10000003 */ beq $zero, $zero, .L8087E338
/* 004FC 8087E32C AE0E0164 */ sw $t6, 0x0164($s0) ## 00000164
.L8087E330:
/* 00500 8087E330 0C00BE5D */ jal func_8002F974
/* 00504 8087E334 24052859 */ addiu $a1, $zero, 0x2859 ## $a1 = 00002859
.L8087E338:
/* 00508 8087E338 8FBF001C */ lw $ra, 0x001C($sp)
/* 0050C 8087E33C 8FB00018 */ lw $s0, 0x0018($sp)
/* 00510 8087E340 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00514 8087E344 03E00008 */ jr $ra
/* 00518 8087E348 00000000 */ nop

View file

@ -1,4 +0,0 @@
glabel func_8087E34C
/* 0051C 8087E34C AFA40000 */ sw $a0, 0x0000($sp)
/* 00520 8087E350 03E00008 */ jr $ra
/* 00524 8087E354 AFA50004 */ sw $a1, 0x0004($sp)

View file

@ -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_Haka_MeganeBG_InitVars
.word 0x00AF0100, 0x00000000, 0x00690000, 0x0000016C
.word BgHakaMeganeBG_Init
.word BgHakaMeganeBG_Destroy
.word BgHakaMeganeBG_Update
.word BgHakaMeganeBG_Draw
glabel D_8087E3F0
.word 0xB0F803E8, 0xB0FC03E8, 0x48500064, 0x00000000, 0x00000000, 0x00000000, 0xC8C800FF, 0xFF0000FF
glabel D_8087E410
.word 0x06008EB0, 0x0600A1A0, 0x06005000, 0x06000040

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_8087E430
.incbin "baserom/ovl_Bg_Haka_MeganeBG", 0x600, 0x000000B0

3
spec
View file

@ -770,8 +770,7 @@ endseg
beginseg
name "ovl_Bg_Haka_MeganeBG"
include "build/src/overlays/actors/ovl_Bg_Haka_MeganeBG/z_bg_haka_meganebg.o"
include "build/data/overlays/actors/z_bg_haka_meganebg.data.o"
include "build/data/overlays/actors/z_bg_haka_meganebg.reloc.o"
include "build/src/overlays/actors/ovl_Bg_Haka_MeganeBG/ovl_Bg_Haka_MeganeBG_reloc.o"
endseg
beginseg

View file

@ -1332,7 +1332,7 @@ void Gameplay_Draw(GlobalContext* globalCtx) {
void Gameplay_Main(GameState* thisx) {
GlobalContext* globalCtx = (GlobalContext*)thisx;
D_8012D1F8 = &globalCtx->state.input[0];
DebugDisplay_Init();

View file

@ -41,7 +41,7 @@ void PreNMI_Draw(PreNMIContext* this) {
void PreNMI_Main(GameState* thisx) {
PreNMIContext* this = (PreNMIContext*)thisx;
PreNMI_Update(this);
PreNMI_Draw(this);

View file

@ -87,7 +87,7 @@ void Sample_LoadTitleStatic(SampleContext* this) {
void Sample_Init(GameState* thisx) {
SampleContext* this = (SampleContext*)thisx;
this->state.main = Sample_Main;
this->state.destroy = Sample_Destroy;
R_UPDATE_RATE = 1;

View file

@ -47,7 +47,6 @@ static InitChainEntry sInitChain[] = {
static Vec3f sZeroVec = { 0.0f, 0.0f, 0.0f };
Gfx* D_8087B578[] = { 0x06007C00, 0x06002320, 0x060035A0 };
void BgGndSoulmeiro_Init(Actor* thisx, GlobalContext* globalCtx) {
@ -124,7 +123,7 @@ void func_8087AF38(BgGndSoulmeiro* this, GlobalContext* globalCtx) {
if (1) {}
if ((this->unk_198 % 6) == 0) {
if ((this->unk_198 % 6) == 0) {
temp_2 = Math_Rand_ZeroOne() * (10922.0f); // This should be: 0x10000 / 6.0f
vecA.y = 0.0f;
vecB.y = this->actor.posRot.pos.y;
@ -136,7 +135,7 @@ void func_8087AF38(BgGndSoulmeiro* this, GlobalContext* globalCtx) {
temp_4 = Math_Coss(temp_1);
vecB.x = this2->actor.posRot.pos.x + (120.0f * temp_3);
vecB.z = this2->actor.posRot.pos.z + (120.0f * temp_4);
distXZ = Math_Vec3f_DistXZ(&this2->actor.initPosRot.pos, &vecB) * (1.0f / 120.f);
distXZ = Math_Vec3f_DistXZ(&this2->actor.initPosRot.pos, &vecB) * (1.0f / 120.f);
if (distXZ < 0.7f) {
temp_3 = Math_Sins(temp_1 + 0x8000);
temp_4 = Math_Coss(temp_1 + 0x8000);
@ -148,8 +147,8 @@ void func_8087AF38(BgGndSoulmeiro* this, GlobalContext* globalCtx) {
vecA.x = 4.0f * temp_3 * distXZ;
vecA.y = 0.0f;
vecA.z = 4.0f * temp_4 * distXZ;
EffectSsDeadDb_Spawn(globalCtx, &this->actor.initPosRot.pos, &vecA, &sZeroVec, 60, 6, 255, 255, 150,
170, 255, 0, 0, 1, 14, true);
EffectSsDeadDb_Spawn(globalCtx, &this->actor.initPosRot.pos, &vecA, &sZeroVec, 60, 6, 255, 255, 150, 170,
255, 0, 0, 1, 14, true);
temp_2 += 0x2AAA;
}
}

View file

@ -1,3 +1,9 @@
/*
* File: z_bg_haka_meganebg.c
* Overlay: ovl_Bg_Haka_MeganeBG
* Description:
*/
#include "z_bg_haka_meganebg.h"
#define FLAGS 0x00000000
@ -9,12 +15,15 @@ void BgHakaMeganeBG_Destroy(Actor* thisx, GlobalContext* globalCtx);
void BgHakaMeganeBG_Update(Actor* thisx, GlobalContext* globalCtx);
void BgHakaMeganeBG_Draw(Actor* thisx, GlobalContext* globalCtx);
void func_8087DFF8(BgHakaMeganeBG* this, GlobalContext* globalCtx);
void func_8087E040(BgHakaMeganeBG* this, GlobalContext* globalCtx);
void func_8087E10C(BgHakaMeganeBG* this, GlobalContext* globalCtx);
void func_8087E1E0(BgHakaMeganeBG* this, GlobalContext* globalCtx);
void func_8087E258(BgHakaMeganeBG* this, GlobalContext* globalCtx);
void func_8087E288(BgHakaMeganeBG* this, GlobalContext* globalCtx);
void func_8087E2D8(BgHakaMeganeBG* this, GlobalContext* globalCtx);
void func_8087E34C(BgHakaMeganeBG* this, GlobalContext* globalCtx);
/*
const ActorInit Bg_Haka_MeganeBG_InitVars = {
ACTOR_BG_HAKA_MEGANEBG,
ACTORTYPE_BG,
@ -26,27 +35,193 @@ const ActorInit Bg_Haka_MeganeBG_InitVars = {
(ActorFunc)BgHakaMeganeBG_Update,
(ActorFunc)BgHakaMeganeBG_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_MeganeBG/BgHakaMeganeBG_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_MeganeBG/BgHakaMeganeBG_Destroy.s")
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneScale, 1000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_MeganeBG/func_8087DFF8.s")
// Unused
static u32 D_8087E3FC[] = {
0x00000000, 0x00000000, 0x00000000, 0xC8C800FF, 0xFF0000FF,
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_MeganeBG/func_8087E040.s")
static Gfx* D_8087E410[] = {
0x06008EB0,
0x0600A1A0,
0x06005000,
0x06000040,
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_MeganeBG/func_8087E10C.s")
extern UNK_TYPE D_06000118;
extern UNK_TYPE D_06005334;
extern Gfx D_06008EB0[];
extern UNK_TYPE D_06009168;
extern UNK_TYPE D_0600A7F4;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_MeganeBG/func_8087E1E0.s")
void BgHakaMeganeBG_Init(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
BgHakaMeganeBG* this = THIS;
s32 localC = 0;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_MeganeBG/func_8087E258.s")
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
this->unk_168 = (thisx->params >> 8) & 0xFF;
thisx->params &= 0xFF;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_MeganeBG/func_8087E288.s")
if (thisx->params == 2) {
DynaPolyInfo_SetActorMove(&this->dyna, 3);
thisx->flags |= 0x10;
DynaPolyInfo_Alloc(&D_06005334, &localC);
this->actionFunc = func_8087E258;
} else {
DynaPolyInfo_SetActorMove(&this->dyna, 1);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_MeganeBG/func_8087E2D8.s")
if (thisx->params == 0) {
DynaPolyInfo_Alloc(&D_06009168, &localC);
thisx->flags |= 0x80;
this->unk_16A = 20;
this->actionFunc = func_8087DFF8;
} else if (thisx->params == 3) {
DynaPolyInfo_Alloc(&D_06000118, &localC);
thisx->initPosRot.pos.y += 100.0f;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_MeganeBG/func_8087E34C.s")
if (Flags_GetSwitch(globalCtx, this->unk_168)) {
this->actionFunc = func_8087E34C;
thisx->posRot.pos.y = thisx->initPosRot.pos.y;
} else {
thisx->flags |= 0x10;
this->actionFunc = func_8087E288;
}
} else {
DynaPolyInfo_Alloc(&D_0600A7F4, &localC);
this->unk_16A = 80;
this->actionFunc = func_8087E10C;
thisx->uncullZoneScale = 3000.0f;
thisx->uncullZoneDownward = 3000.0f;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_MeganeBG/BgHakaMeganeBG_Update.s")
this->dyna.dynaPolyId = DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, localC);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_MeganeBG/BgHakaMeganeBG_Draw.s")
void BgHakaMeganeBG_Destroy(Actor* thisx, GlobalContext* globalCtx) {
BgHakaMeganeBG* this = THIS;
DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
}
void func_8087DFF8(BgHakaMeganeBG* this, GlobalContext* globalCtx) {
if (this->unk_16A != 0) {
this->unk_16A--;
}
if (this->unk_16A == 0) {
this->unk_16A = 40;
this->dyna.actor.posRot.rot.y += 0x8000;
this->actionFunc = func_8087E040;
}
}
void func_8087E040(BgHakaMeganeBG* this, GlobalContext* globalCtx) {
f32 xSub;
if (this->unk_16A != 0) {
this->unk_16A--;
}
xSub = (sinf(((this->unk_16A * 0.025f) + 0.5f) * M_PI) + 1.0f) * 160.0f;
if (this->dyna.actor.posRot.rot.y != this->dyna.actor.shape.rot.y) {
xSub = 320.0f - xSub;
}
this->dyna.actor.posRot.pos.x = this->dyna.actor.initPosRot.pos.x - xSub;
if (this->unk_16A == 0) {
this->unk_16A = 20;
this->actionFunc = func_8087DFF8;
}
}
void func_8087E10C(BgHakaMeganeBG* this, GlobalContext* globalCtx) {
this->dyna.actor.velocity.y += 1.0f;
if (this->dyna.actor.velocity.y > 20.0f) {
this->dyna.actor.velocity.y = 20.0f;
} else {
this->dyna.actor.velocity.y = this->dyna.actor.velocity.y;
}
if (this->unk_16A != 0) {
this->unk_16A--;
}
if (!Math_ApproxF(&this->dyna.actor.posRot.pos.y, this->dyna.actor.initPosRot.pos.y - 640.0f,
this->dyna.actor.velocity.y)) {
func_8002F974(&this->dyna.actor, NA_SE_EV_CHINETRAP_DOWN - SFX_FLAG);
}
if (this->unk_16A == 0) {
this->unk_16A = 120;
this->actionFunc = func_8087E1E0;
this->dyna.actor.velocity.y = 0.0f;
}
}
void func_8087E1E0(BgHakaMeganeBG* this, GlobalContext* globalCtx) {
Math_ApproxF(&this->dyna.actor.posRot.pos.y, this->dyna.actor.initPosRot.pos.y, 16.0f / 3.0f);
func_8002F974(&this->dyna.actor, NA_SE_EV_BRIDGE_CLOSE - SFX_FLAG);
if (this->unk_16A != 0) {
this->unk_16A--;
}
if (this->unk_16A == 0) {
this->unk_16A = 80;
this->actionFunc = func_8087E10C;
}
}
void func_8087E258(BgHakaMeganeBG* this, GlobalContext* globalCtx) {
this->dyna.actor.shape.rot.y += 0x180;
func_8002F974(&this->dyna.actor, NA_SE_EV_ELEVATOR_MOVE - SFX_FLAG);
}
void func_8087E288(BgHakaMeganeBG* this, GlobalContext* globalCtx) {
if (Flags_GetSwitch(globalCtx, this->unk_168)) {
func_80080480(globalCtx, &this->dyna.actor);
this->actionFunc = func_8087E2D8;
}
}
void func_8087E2D8(BgHakaMeganeBG* this, GlobalContext* globalCtx) {
Math_ApproxF(&this->dyna.actor.speedXZ, 30.0f, 2.0f);
if (Math_ApproxF(&this->dyna.actor.posRot.pos.y, this->dyna.actor.initPosRot.pos.y, this->dyna.actor.speedXZ)) {
Actor_SetHeight(&this->dyna.actor, 50.0f);
this->actionFunc = func_8087E34C;
} else {
func_8002F974(&this->dyna.actor, NA_SE_EV_METALDOOR_OPEN);
}
}
void func_8087E34C(BgHakaMeganeBG* this, GlobalContext* globalCtx) {
}
void BgHakaMeganeBG_Update(Actor* thisx, GlobalContext* globalCtx) {
BgHakaMeganeBG* this = THIS;
this->actionFunc(this, globalCtx);
}
void BgHakaMeganeBG_Draw(Actor* thisx, GlobalContext* globalCtx) {
BgHakaMeganeBG* this = THIS;
s16 params = this->dyna.actor.params;
if (params == 0) {
Gfx_DrawDListXlu(globalCtx, D_06008EB0);
} else {
Gfx_DrawDListOpa(globalCtx, D_8087E410[params]);
}
}

View file

@ -11,9 +11,8 @@ typedef void (*BgHakaMeganeBGActionFunc)(struct BgHakaMeganeBG*, GlobalContext*)
typedef struct BgHakaMeganeBG {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ BgHakaMeganeBGActionFunc actionFunc;
/* 0x0168 */ char unk_168[0x1];
/* 0x0169 */ s8 unk_169; // objBankIndex ?
/* 0x016A */ char unk_16A[0x2];
/* 0x0168 */ u8 unk_168;
/* 0x016A */ s16 unk_16A;
} BgHakaMeganeBG; // size = 0x016C
extern const ActorInit Bg_Haka_Meganebg_InitVars;

View file

@ -32,7 +32,7 @@ void Opening_Destroy(GameState* thisx) {
void Opening_Init(GameState* thisx) {
OpeningContext* this = (OpeningContext*)thisx;
R_UPDATE_RATE = 1;
Matrix_Init(&this->state);
View_Init(&this->view, this->state.gfxCtx);

View file

@ -568,7 +568,7 @@ void Select_Draw(SelectContext* this) {
void Select_Main(GameState* thisx) {
SelectContext* this = (SelectContext*)thisx;
Select_UpdateMenu(this);
Select_Draw(this);
}

View file

@ -565,9 +565,11 @@ D_060002A8 = 0x060002A8;
D_06001250 = 0x06001250;
// z_bg_haka_meganebg
D_06005334 = 0x06005334;
D_06009168 = 0x06009168;
D_06000118 = 0x06000118;
D_06005334 = 0x06005334;
D_06008EB0 = 0x06008EB0;
D_06009168 = 0x06009168;
D_0600A7F4 = 0x0600A7F4;
// z_bg_haka_trap
D_060081D0 = 0x60081D0;