mirror of
https://github.com/zeldaret/oot.git
synced 2025-02-02 09:34:27 +00:00
Decompile ovl_Bg_Haka_Tubo (#280)
* Bg_Haka_Tubo OK * Ran formatter * Review suggestions * Fix commented field offsets in header Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com> * Fix other field offset Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com> * Named data and made static Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>
This commit is contained in:
parent
b39cddd576
commit
e6cee80a7b
14 changed files with 202 additions and 723 deletions
|
@ -1,26 +0,0 @@
|
||||||
glabel BgHakaTubo_Destroy
|
|
||||||
/* 000F8 80881348 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
|
||||||
/* 000FC 8088134C AFA40018 */ sw $a0, 0x0018($sp)
|
|
||||||
/* 00100 80881350 8FAE0018 */ lw $t6, 0x0018($sp)
|
|
||||||
/* 00104 80881354 AFBF0014 */ sw $ra, 0x0014($sp)
|
|
||||||
/* 00108 80881358 00A03825 */ or $a3, $a1, $zero ## $a3 = 00000000
|
|
||||||
/* 0010C 8088135C 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
|
|
||||||
/* 00110 80881360 8DC6014C */ lw $a2, 0x014C($t6) ## 0000014C
|
|
||||||
/* 00114 80881364 AFA7001C */ sw $a3, 0x001C($sp)
|
|
||||||
/* 00118 80881368 0C00FB56 */ jal DynaPolyInfo_Free
|
|
||||||
## DynaPolyInfo_delReserve
|
|
||||||
/* 0011C 8088136C 24A50810 */ addiu $a1, $a1, 0x0810 ## $a1 = 00000810
|
|
||||||
/* 00120 80881370 8FA50018 */ lw $a1, 0x0018($sp)
|
|
||||||
/* 00124 80881374 8FA4001C */ lw $a0, 0x001C($sp)
|
|
||||||
/* 00128 80881378 0C0170EB */ jal Collider_DestroyCylinder
|
|
||||||
|
|
||||||
/* 0012C 8088137C 24A5016C */ addiu $a1, $a1, 0x016C ## $a1 = 0000016C
|
|
||||||
/* 00130 80881380 8FA50018 */ lw $a1, 0x0018($sp)
|
|
||||||
/* 00134 80881384 8FA4001C */ lw $a0, 0x001C($sp)
|
|
||||||
/* 00138 80881388 0C0170EB */ jal Collider_DestroyCylinder
|
|
||||||
|
|
||||||
/* 0013C 8088138C 24A501B8 */ addiu $a1, $a1, 0x01B8 ## $a1 = 000001B8
|
|
||||||
/* 00140 80881390 8FBF0014 */ lw $ra, 0x0014($sp)
|
|
||||||
/* 00144 80881394 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
|
||||||
/* 00148 80881398 03E00008 */ jr $ra
|
|
||||||
/* 0014C 8088139C 00000000 */ nop
|
|
|
@ -1,19 +0,0 @@
|
||||||
glabel BgHakaTubo_Draw
|
|
||||||
/* 008AC 80881AFC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
|
||||||
/* 008B0 80881B00 AFA40018 */ sw $a0, 0x0018($sp)
|
|
||||||
/* 008B4 80881B04 AFA5001C */ sw $a1, 0x001C($sp)
|
|
||||||
/* 008B8 80881B08 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
|
|
||||||
/* 008BC 80881B0C AFBF0014 */ sw $ra, 0x0014($sp)
|
|
||||||
/* 008C0 80881B10 3C050601 */ lui $a1, 0x0601 ## $a1 = 06010000
|
|
||||||
/* 008C4 80881B14 0C00D498 */ jal Gfx_DrawDListOpa
|
|
||||||
|
|
||||||
/* 008C8 80881B18 24A5FE40 */ addiu $a1, $a1, 0xFE40 ## $a1 = 0600FE40
|
|
||||||
/* 008CC 80881B1C 8FA40018 */ lw $a0, 0x0018($sp)
|
|
||||||
/* 008D0 80881B20 0C220641 */ jal func_80881904
|
|
||||||
/* 008D4 80881B24 8FA5001C */ lw $a1, 0x001C($sp)
|
|
||||||
/* 008D8 80881B28 8FBF0014 */ lw $ra, 0x0014($sp)
|
|
||||||
/* 008DC 80881B2C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
|
||||||
/* 008E0 80881B30 03E00008 */ jr $ra
|
|
||||||
/* 008E4 80881B34 00000000 */ nop
|
|
||||||
/* 008E8 80881B38 00000000 */ nop
|
|
||||||
/* 008EC 80881B3C 00000000 */ nop
|
|
|
@ -1,72 +0,0 @@
|
||||||
glabel BgHakaTubo_Init
|
|
||||||
/* 00000 80881250 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
|
|
||||||
/* 00004 80881254 AFB10018 */ sw $s1, 0x0018($sp)
|
|
||||||
/* 00008 80881258 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
|
|
||||||
/* 0000C 8088125C AFBF001C */ sw $ra, 0x001C($sp)
|
|
||||||
/* 00010 80881260 AFB00014 */ sw $s0, 0x0014($sp)
|
|
||||||
/* 00014 80881264 3C058088 */ lui $a1, %hi(D_80881BBC) ## $a1 = 80880000
|
|
||||||
/* 00018 80881268 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
|
||||||
/* 0001C 8088126C AFA00024 */ sw $zero, 0x0024($sp)
|
|
||||||
/* 00020 80881270 0C01E037 */ jal Actor_ProcessInitChain
|
|
||||||
|
|
||||||
/* 00024 80881274 24A51BBC */ addiu $a1, $a1, %lo(D_80881BBC) ## $a1 = 80881BBC
|
|
||||||
/* 00028 80881278 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
|
||||||
/* 0002C 8088127C 0C010D20 */ jal DynaPolyInfo_SetActorMove
|
|
||||||
|
|
||||||
/* 00030 80881280 24050003 */ addiu $a1, $zero, 0x0003 ## $a1 = 00000003
|
|
||||||
/* 00034 80881284 3C040601 */ lui $a0, 0x0601 ## $a0 = 06010000
|
|
||||||
/* 00038 80881288 248408B8 */ addiu $a0, $a0, 0x08B8 ## $a0 = 060108B8
|
|
||||||
/* 0003C 8088128C 0C010620 */ jal DynaPolyInfo_Alloc
|
|
||||||
|
|
||||||
/* 00040 80881290 27A50024 */ addiu $a1, $sp, 0x0024 ## $a1 = FFFFFFF4
|
|
||||||
/* 00044 80881294 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
|
||||||
/* 00048 80881298 26250810 */ addiu $a1, $s1, 0x0810 ## $a1 = 00000810
|
|
||||||
/* 0004C 8088129C 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
|
|
||||||
/* 00050 808812A0 0C00FA9D */ jal DynaPolyInfo_RegisterActor
|
|
||||||
## DynaPolyInfo_setActor
|
|
||||||
/* 00054 808812A4 8FA70024 */ lw $a3, 0x0024($sp)
|
|
||||||
/* 00058 808812A8 AE02014C */ sw $v0, 0x014C($s0) ## 0000014C
|
|
||||||
/* 0005C 808812AC 2605016C */ addiu $a1, $s0, 0x016C ## $a1 = 0000016C
|
|
||||||
/* 00060 808812B0 AFA50020 */ sw $a1, 0x0020($sp)
|
|
||||||
/* 00064 808812B4 0C0170D9 */ jal Collider_InitCylinder
|
|
||||||
|
|
||||||
/* 00068 808812B8 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
|
||||||
/* 0006C 808812BC 3C078088 */ lui $a3, %hi(D_80881B60) ## $a3 = 80880000
|
|
||||||
/* 00070 808812C0 8FA50020 */ lw $a1, 0x0020($sp)
|
|
||||||
/* 00074 808812C4 24E71B60 */ addiu $a3, $a3, %lo(D_80881B60) ## $a3 = 80881B60
|
|
||||||
/* 00078 808812C8 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
|
||||||
/* 0007C 808812CC 0C01712B */ jal Collider_SetCylinder
|
|
||||||
|
|
||||||
/* 00080 808812D0 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
|
|
||||||
/* 00084 808812D4 260501B8 */ addiu $a1, $s0, 0x01B8 ## $a1 = 000001B8
|
|
||||||
/* 00088 808812D8 AFA50020 */ sw $a1, 0x0020($sp)
|
|
||||||
/* 0008C 808812DC 0C0170D9 */ jal Collider_InitCylinder
|
|
||||||
|
|
||||||
/* 00090 808812E0 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
|
||||||
/* 00094 808812E4 3C078088 */ lui $a3, %hi(D_80881B8C) ## $a3 = 80880000
|
|
||||||
/* 00098 808812E8 8FA50020 */ lw $a1, 0x0020($sp)
|
|
||||||
/* 0009C 808812EC 24E71B8C */ addiu $a3, $a3, %lo(D_80881B8C) ## $a3 = 80881B8C
|
|
||||||
/* 000A0 808812F0 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
|
||||||
/* 000A4 808812F4 0C01712B */ jal Collider_SetCylinder
|
|
||||||
|
|
||||||
/* 000A8 808812F8 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
|
|
||||||
/* 000AC 808812FC 0C03F66B */ jal Math_Rand_ZeroOne
|
|
||||||
## Rand.Next() float
|
|
||||||
/* 000B0 80881300 00000000 */ nop
|
|
||||||
/* 000B4 80881304 3C014170 */ lui $at, 0x4170 ## $at = 41700000
|
|
||||||
/* 000B8 80881308 44812000 */ mtc1 $at, $f4 ## $f4 = 15.00
|
|
||||||
/* 000BC 8088130C 3C018088 */ lui $at, %hi(D_80881BB8) ## $at = 80880000
|
|
||||||
/* 000C0 80881310 3C188088 */ lui $t8, %hi(func_808813A0) ## $t8 = 80880000
|
|
||||||
/* 000C4 80881314 46040182 */ mul.s $f6, $f0, $f4
|
|
||||||
/* 000C8 80881318 271813A0 */ addiu $t8, $t8, %lo(func_808813A0) ## $t8 = 808813A0
|
|
||||||
/* 000CC 8088131C 4600320D */ trunc.w.s $f8, $f6
|
|
||||||
/* 000D0 80881320 440F4000 */ mfc1 $t7, $f8
|
|
||||||
/* 000D4 80881324 00000000 */ nop
|
|
||||||
/* 000D8 80881328 A60F016A */ sh $t7, 0x016A($s0) ## 0000016A
|
|
||||||
/* 000DC 8088132C AC201BB8 */ sw $zero, %lo(D_80881BB8)($at)
|
|
||||||
/* 000E0 80881330 AE180164 */ sw $t8, 0x0164($s0) ## 00000164
|
|
||||||
/* 000E4 80881334 8FBF001C */ lw $ra, 0x001C($sp)
|
|
||||||
/* 000E8 80881338 8FB10018 */ lw $s1, 0x0018($sp)
|
|
||||||
/* 000EC 8088133C 8FB00014 */ lw $s0, 0x0014($sp)
|
|
||||||
/* 000F0 80881340 03E00008 */ jr $ra
|
|
||||||
/* 000F4 80881344 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
|
|
|
@ -1,15 +0,0 @@
|
||||||
glabel BgHakaTubo_Update
|
|
||||||
/* 0067C 808818CC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
|
||||||
/* 00680 808818D0 AFBF0014 */ sw $ra, 0x0014($sp)
|
|
||||||
/* 00684 808818D4 AFA40018 */ sw $a0, 0x0018($sp)
|
|
||||||
/* 00688 808818D8 8C990164 */ lw $t9, 0x0164($a0) ## 00000164
|
|
||||||
/* 0068C 808818DC 0320F809 */ jalr $ra, $t9
|
|
||||||
/* 00690 808818E0 00000000 */ nop
|
|
||||||
/* 00694 808818E4 8FA40018 */ lw $a0, 0x0018($sp)
|
|
||||||
/* 00698 808818E8 848E016A */ lh $t6, 0x016A($a0) ## 0000016A
|
|
||||||
/* 0069C 808818EC 25CF0001 */ addiu $t7, $t6, 0x0001 ## $t7 = 00000001
|
|
||||||
/* 006A0 808818F0 A48F016A */ sh $t7, 0x016A($a0) ## 0000016A
|
|
||||||
/* 006A4 808818F4 8FBF0014 */ lw $ra, 0x0014($sp)
|
|
||||||
/* 006A8 808818F8 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
|
||||||
/* 006AC 808818FC 03E00008 */ jr $ra
|
|
||||||
/* 006B0 80881900 00000000 */ nop
|
|
|
@ -1,176 +0,0 @@
|
||||||
.late_rodata
|
|
||||||
glabel D_80881C0C
|
|
||||||
.float -5559.0
|
|
||||||
glabel D_80881C10
|
|
||||||
.float -1587.0
|
|
||||||
|
|
||||||
.text
|
|
||||||
glabel func_808813A0
|
|
||||||
/* 00150 808813A0 27BDFFB0 */ addiu $sp, $sp, 0xFFB0 ## $sp = FFFFFFB0
|
|
||||||
/* 00154 808813A4 AFBF0034 */ sw $ra, 0x0034($sp)
|
|
||||||
/* 00158 808813A8 AFB10030 */ sw $s1, 0x0030($sp)
|
|
||||||
/* 0015C 808813AC AFB0002C */ sw $s0, 0x002C($sp)
|
|
||||||
/* 00160 808813B0 808E0003 */ lb $t6, 0x0003($a0) ## 00000003
|
|
||||||
/* 00164 808813B4 2401000C */ addiu $at, $zero, 0x000C ## $at = 0000000C
|
|
||||||
/* 00168 808813B8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
|
||||||
/* 0016C 808813BC 15C1001C */ bne $t6, $at, .L80881430
|
|
||||||
/* 00170 808813C0 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
|
|
||||||
/* 00174 808813C4 848F00B6 */ lh $t7, 0x00B6($a0) ## 000000B6
|
|
||||||
/* 00178 808813C8 25F80180 */ addiu $t8, $t7, 0x0180 ## $t8 = 00000180
|
|
||||||
/* 0017C 808813CC A49800B6 */ sh $t8, 0x00B6($a0) ## 000000B6
|
|
||||||
/* 00180 808813D0 848400B6 */ lh $a0, 0x00B6($a0) ## 000000B6
|
|
||||||
/* 00184 808813D4 2484C000 */ addiu $a0, $a0, 0xC000 ## $a0 = FFFFC000
|
|
||||||
/* 00188 808813D8 00042400 */ sll $a0, $a0, 16
|
|
||||||
/* 0018C 808813DC 0C01DE1C */ jal Math_Sins
|
|
||||||
## sins?
|
|
||||||
/* 00190 808813E0 00042403 */ sra $a0, $a0, 16
|
|
||||||
/* 00194 808813E4 3C014311 */ lui $at, 0x4311 ## $at = 43110000
|
|
||||||
/* 00198 808813E8 44812000 */ mtc1 $at, $f4 ## $f4 = 145.00
|
|
||||||
/* 0019C 808813EC 3C018088 */ lui $at, %hi(D_80881C0C) ## $at = 80880000
|
|
||||||
/* 001A0 808813F0 C4281C0C */ lwc1 $f8, %lo(D_80881C0C)($at)
|
|
||||||
/* 001A4 808813F4 46040182 */ mul.s $f6, $f0, $f4
|
|
||||||
/* 001A8 808813F8 860400B6 */ lh $a0, 0x00B6($s0) ## 000000B6
|
|
||||||
/* 001AC 808813FC 2484C000 */ addiu $a0, $a0, 0xC000 ## $a0 = FFFFC000
|
|
||||||
/* 001B0 80881400 00042400 */ sll $a0, $a0, 16
|
|
||||||
/* 001B4 80881404 00042403 */ sra $a0, $a0, 16
|
|
||||||
/* 001B8 80881408 46083280 */ add.s $f10, $f6, $f8
|
|
||||||
/* 001BC 8088140C 0C01DE0D */ jal Math_Coss
|
|
||||||
## coss?
|
|
||||||
/* 001C0 80881410 E60A0024 */ swc1 $f10, 0x0024($s0) ## 00000024
|
|
||||||
/* 001C4 80881414 3C014311 */ lui $at, 0x4311 ## $at = 43110000
|
|
||||||
/* 001C8 80881418 44818000 */ mtc1 $at, $f16 ## $f16 = 145.00
|
|
||||||
/* 001CC 8088141C 3C018088 */ lui $at, %hi(D_80881C10) ## $at = 80880000
|
|
||||||
/* 001D0 80881420 C4241C10 */ lwc1 $f4, %lo(D_80881C10)($at)
|
|
||||||
/* 001D4 80881424 46100482 */ mul.s $f18, $f0, $f16
|
|
||||||
/* 001D8 80881428 46049180 */ add.s $f6, $f18, $f4
|
|
||||||
/* 001DC 8088142C E606002C */ swc1 $f6, 0x002C($s0) ## 0000002C
|
|
||||||
.L80881430:
|
|
||||||
/* 001E0 80881430 920201C8 */ lbu $v0, 0x01C8($s0) ## 000001C8
|
|
||||||
/* 001E4 80881434 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
|
|
||||||
/* 001E8 80881438 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
|
||||||
/* 001EC 8088143C 30590002 */ andi $t9, $v0, 0x0002 ## $t9 = 00000000
|
|
||||||
/* 001F0 80881440 13200008 */ beq $t9, $zero, .L80881464
|
|
||||||
/* 001F4 80881444 3048FFFD */ andi $t0, $v0, 0xFFFD ## $t0 = 00000000
|
|
||||||
/* 001F8 80881448 44810000 */ mtc1 $at, $f0 ## $f0 = 5.00
|
|
||||||
/* 001FC 8088144C A20801C8 */ sb $t0, 0x01C8($s0) ## 000001C8
|
|
||||||
/* 00200 80881450 8607008A */ lh $a3, 0x008A($s0) ## 0000008A
|
|
||||||
/* 00204 80881454 44060000 */ mfc1 $a2, $f0
|
|
||||||
/* 00208 80881458 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
|
|
||||||
/* 0020C 8088145C 0C00BDC7 */ jal func_8002F71C
|
|
||||||
/* 00210 80881460 E7A00010 */ swc1 $f0, 0x0010($sp)
|
|
||||||
.L80881464:
|
|
||||||
/* 00214 80881464 9202017D */ lbu $v0, 0x017D($s0) ## 0000017D
|
|
||||||
/* 00218 80881468 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
|
||||||
/* 0021C 8088146C 260501B8 */ addiu $a1, $s0, 0x01B8 ## $a1 = 000001B8
|
|
||||||
/* 00220 80881470 30490002 */ andi $t1, $v0, 0x0002 ## $t1 = 00000000
|
|
||||||
/* 00224 80881474 11200049 */ beq $t1, $zero, .L8088159C
|
|
||||||
/* 00228 80881478 304AFFFD */ andi $t2, $v0, 0xFFFD ## $t2 = 00000000
|
|
||||||
/* 0022C 8088147C 8E050174 */ lw $a1, 0x0174($s0) ## 00000174
|
|
||||||
/* 00230 80881480 A20A017D */ sb $t2, 0x017D($s0) ## 0000017D
|
|
||||||
/* 00234 80881484 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
|
||||||
/* 00238 80881488 0C00B6EC */ jal func_8002DBB0
|
|
||||||
/* 0023C 8088148C 24A50024 */ addiu $a1, $a1, 0x0024 ## $a1 = 000001DC
|
|
||||||
/* 00240 80881490 3C014248 */ lui $at, 0x4248 ## $at = 42480000
|
|
||||||
/* 00244 80881494 44811000 */ mtc1 $at, $f2 ## $f2 = 50.00
|
|
||||||
/* 00248 80881498 00000000 */ nop
|
|
||||||
/* 0024C 8088149C 4602003C */ c.lt.s $f0, $f2
|
|
||||||
/* 00250 808814A0 00000000 */ nop
|
|
||||||
/* 00254 808814A4 45020054 */ bc1fl .L808815F8
|
|
||||||
/* 00258 808814A8 8FBF0034 */ lw $ra, 0x0034($sp)
|
|
||||||
/* 0025C 808814AC 8E0B0174 */ lw $t3, 0x0174($s0) ## 00000174
|
|
||||||
/* 00260 808814B0 C60A0028 */ lwc1 $f10, 0x0028($s0) ## 00000028
|
|
||||||
/* 00264 808814B4 3C068088 */ lui $a2, %hi(D_80881BC0) ## $a2 = 80880000
|
|
||||||
/* 00268 808814B8 C5680028 */ lwc1 $f8, 0x0028($t3) ## 00000028
|
|
||||||
/* 0026C 808814BC 24C61BC0 */ addiu $a2, $a2, %lo(D_80881BC0) ## $a2 = 80881BC0
|
|
||||||
/* 00270 808814C0 3C0142A0 */ lui $at, 0x42A0 ## $at = 42A00000
|
|
||||||
/* 00274 808814C4 460A4401 */ sub.s $f16, $f8, $f10
|
|
||||||
/* 00278 808814C8 4602803C */ c.lt.s $f16, $f2
|
|
||||||
/* 0027C 808814CC 00000000 */ nop
|
|
||||||
/* 00280 808814D0 45020049 */ bc1fl .L808815F8
|
|
||||||
/* 00284 808814D4 8FBF0034 */ lw $ra, 0x0034($sp)
|
|
||||||
/* 00288 808814D8 C6120024 */ lwc1 $f18, 0x0024($s0) ## 00000024
|
|
||||||
/* 0028C 808814DC 44814000 */ mtc1 $at, $f8 ## $f8 = 80.00
|
|
||||||
/* 00290 808814E0 240C0064 */ addiu $t4, $zero, 0x0064 ## $t4 = 00000064
|
|
||||||
/* 00294 808814E4 E7B20044 */ swc1 $f18, 0x0044($sp)
|
|
||||||
/* 00298 808814E8 C604002C */ lwc1 $f4, 0x002C($s0) ## 0000002C
|
|
||||||
/* 0029C 808814EC 240D002D */ addiu $t5, $zero, 0x002D ## $t5 = 0000002D
|
|
||||||
/* 002A0 808814F0 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
|
||||||
/* 002A4 808814F4 E7A4004C */ swc1 $f4, 0x004C($sp)
|
|
||||||
/* 002A8 808814F8 C6060028 */ lwc1 $f6, 0x0028($s0) ## 00000028
|
|
||||||
/* 002AC 808814FC AFAD0014 */ sw $t5, 0x0014($sp)
|
|
||||||
/* 002B0 80881500 AFAC0010 */ sw $t4, 0x0010($sp)
|
|
||||||
/* 002B4 80881504 46083280 */ add.s $f10, $f6, $f8
|
|
||||||
/* 002B8 80881508 27A50044 */ addiu $a1, $sp, 0x0044 ## $a1 = FFFFFFF4
|
|
||||||
/* 002BC 8088150C 00C03825 */ or $a3, $a2, $zero ## $a3 = 80881BC0
|
|
||||||
/* 002C0 80881510 0C00A3A1 */ jal func_80028E84
|
|
||||||
/* 002C4 80881514 E7AA0048 */ swc1 $f10, 0x0048($sp)
|
|
||||||
/* 002C8 80881518 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
|
||||||
/* 002CC 8088151C 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024
|
|
||||||
/* 002D0 80881520 24060032 */ addiu $a2, $zero, 0x0032 ## $a2 = 00000032
|
|
||||||
/* 002D4 80881524 0C01AEB6 */ jal Audio_PlaySoundAtPosition
|
|
||||||
|
|
||||||
/* 002D8 80881528 24072839 */ addiu $a3, $zero, 0x2839 ## $a3 = 00002839
|
|
||||||
/* 002DC 8088152C 3C090401 */ lui $t1, 0x0401 ## $t1 = 04010000
|
|
||||||
/* 002E0 80881530 2529CD80 */ addiu $t1, $t1, 0xCD80 ## $t1 = 0400CD80
|
|
||||||
/* 002E4 80881534 240E015E */ addiu $t6, $zero, 0x015E ## $t6 = 0000015E
|
|
||||||
/* 002E8 80881538 240F0064 */ addiu $t7, $zero, 0x0064 ## $t7 = 00000064
|
|
||||||
/* 002EC 8088153C 24180032 */ addiu $t8, $zero, 0x0032 ## $t8 = 00000032
|
|
||||||
/* 002F0 80881540 24190069 */ addiu $t9, $zero, 0x0069 ## $t9 = 00000069
|
|
||||||
/* 002F4 80881544 24080028 */ addiu $t0, $zero, 0x0028 ## $t0 = 00000028
|
|
||||||
/* 002F8 80881548 AFA80020 */ sw $t0, 0x0020($sp)
|
|
||||||
/* 002FC 8088154C AFB9001C */ sw $t9, 0x001C($sp)
|
|
||||||
/* 00300 80881550 AFB80018 */ sw $t8, 0x0018($sp)
|
|
||||||
/* 00304 80881554 AFAF0014 */ sw $t7, 0x0014($sp)
|
|
||||||
/* 00308 80881558 AFAE0010 */ sw $t6, 0x0010($sp)
|
|
||||||
/* 0030C 8088155C AFA90024 */ sw $t1, 0x0024($sp)
|
|
||||||
/* 00310 80881560 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
|
||||||
/* 00314 80881564 27A50044 */ addiu $a1, $sp, 0x0044 ## $a1 = FFFFFFF4
|
|
||||||
/* 00318 80881568 3C0641A0 */ lui $a2, 0x41A0 ## $a2 = 41A00000
|
|
||||||
/* 0031C 8088156C 0C00A5E9 */ jal func_800297A4
|
|
||||||
/* 00320 80881570 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
|
|
||||||
/* 00324 80881574 240A0005 */ addiu $t2, $zero, 0x0005 ## $t2 = 00000005
|
|
||||||
/* 00328 80881578 A60A0168 */ sh $t2, 0x0168($s0) ## 00000168
|
|
||||||
/* 0032C 8088157C AE000134 */ sw $zero, 0x0134($s0) ## 00000134
|
|
||||||
/* 00330 80881580 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
|
||||||
/* 00334 80881584 0C00B58B */ jal Actor_SetScale
|
|
||||||
|
|
||||||
/* 00338 80881588 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000
|
|
||||||
/* 0033C 8088158C 3C0B8088 */ lui $t3, %hi(func_80881608) ## $t3 = 80880000
|
|
||||||
/* 00340 80881590 256B1608 */ addiu $t3, $t3, %lo(func_80881608) ## $t3 = 80881608
|
|
||||||
/* 00344 80881594 10000017 */ beq $zero, $zero, .L808815F4
|
|
||||||
/* 00348 80881598 AE0B0164 */ sw $t3, 0x0164($s0) ## 00000164
|
|
||||||
.L8088159C:
|
|
||||||
/* 0034C 8088159C 0C0189B7 */ jal Collider_CylinderUpdate
|
|
||||||
|
|
||||||
/* 00350 808815A0 AFA50040 */ sw $a1, 0x0040($sp)
|
|
||||||
/* 00354 808815A4 2606016C */ addiu $a2, $s0, 0x016C ## $a2 = 0000016C
|
|
||||||
/* 00358 808815A8 00C02825 */ or $a1, $a2, $zero ## $a1 = 0000016C
|
|
||||||
/* 0035C 808815AC AFA6003C */ sw $a2, 0x003C($sp)
|
|
||||||
/* 00360 808815B0 0C0189B7 */ jal Collider_CylinderUpdate
|
|
||||||
|
|
||||||
/* 00364 808815B4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
|
||||||
/* 00368 808815B8 3C010001 */ lui $at, 0x0001 ## $at = 00010000
|
|
||||||
/* 0036C 808815BC 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
|
|
||||||
/* 00370 808815C0 02218021 */ addu $s0, $s1, $at
|
|
||||||
/* 00374 808815C4 8FA6003C */ lw $a2, 0x003C($sp)
|
|
||||||
/* 00378 808815C8 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
|
|
||||||
/* 0037C 808815CC 0C01767D */ jal CollisionCheck_SetAC
|
|
||||||
## CollisionCheck_setAC
|
|
||||||
/* 00380 808815D0 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
|
||||||
/* 00384 808815D4 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
|
||||||
/* 00388 808815D8 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
|
|
||||||
/* 0038C 808815DC 0C0175E7 */ jal CollisionCheck_SetAT
|
|
||||||
## CollisionCheck_setAT
|
|
||||||
/* 00390 808815E0 8FA60040 */ lw $a2, 0x0040($sp)
|
|
||||||
/* 00394 808815E4 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
|
||||||
/* 00398 808815E8 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
|
|
||||||
/* 0039C 808815EC 0C017713 */ jal CollisionCheck_SetOC
|
|
||||||
## CollisionCheck_setOT
|
|
||||||
/* 003A0 808815F0 8FA60040 */ lw $a2, 0x0040($sp)
|
|
||||||
.L808815F4:
|
|
||||||
/* 003A4 808815F4 8FBF0034 */ lw $ra, 0x0034($sp)
|
|
||||||
.L808815F8:
|
|
||||||
/* 003A8 808815F8 8FB0002C */ lw $s0, 0x002C($sp)
|
|
||||||
/* 003AC 808815FC 8FB10030 */ lw $s1, 0x0030($sp)
|
|
||||||
/* 003B0 80881600 03E00008 */ jr $ra
|
|
||||||
/* 003B4 80881604 27BD0050 */ addiu $sp, $sp, 0x0050 ## $sp = 00000000
|
|
|
@ -1,209 +0,0 @@
|
||||||
.late_rodata
|
|
||||||
glabel D_80881C14
|
|
||||||
.float 0.2
|
|
||||||
glabel D_80881C18
|
|
||||||
.float 0.4
|
|
||||||
glabel D_80881C1C
|
|
||||||
.float 0.6
|
|
||||||
glabel D_80881C20
|
|
||||||
.float 0.8
|
|
||||||
|
|
||||||
.text
|
|
||||||
glabel func_80881608
|
|
||||||
/* 003B8 80881608 27BDFF90 */ addiu $sp, $sp, 0xFF90 ## $sp = FFFFFF90
|
|
||||||
/* 003BC 8088160C AFBF004C */ sw $ra, 0x004C($sp)
|
|
||||||
/* 003C0 80881610 AFB60048 */ sw $s6, 0x0048($sp)
|
|
||||||
/* 003C4 80881614 AFB50044 */ sw $s5, 0x0044($sp)
|
|
||||||
/* 003C8 80881618 AFB40040 */ sw $s4, 0x0040($sp)
|
|
||||||
/* 003CC 8088161C AFB3003C */ sw $s3, 0x003C($sp)
|
|
||||||
/* 003D0 80881620 AFB20038 */ sw $s2, 0x0038($sp)
|
|
||||||
/* 003D4 80881624 AFB10034 */ sw $s1, 0x0034($sp)
|
|
||||||
/* 003D8 80881628 AFB00030 */ sw $s0, 0x0030($sp)
|
|
||||||
/* 003DC 8088162C 848E0168 */ lh $t6, 0x0168($a0) ## 00000168
|
|
||||||
/* 003E0 80881630 0080A025 */ or $s4, $a0, $zero ## $s4 = 00000000
|
|
||||||
/* 003E4 80881634 00A0B025 */ or $s6, $a1, $zero ## $s6 = 00000000
|
|
||||||
/* 003E8 80881638 25CFFFFF */ addiu $t7, $t6, 0xFFFF ## $t7 = FFFFFFFF
|
|
||||||
/* 003EC 8088163C A48F0168 */ sh $t7, 0x0168($a0) ## 00000168
|
|
||||||
/* 003F0 80881640 84980168 */ lh $t8, 0x0168($a0) ## 00000168
|
|
||||||
/* 003F4 80881644 57000098 */ bnel $t8, $zero, .L808818A8
|
|
||||||
/* 003F8 80881648 8FBF004C */ lw $ra, 0x004C($sp)
|
|
||||||
/* 003FC 8088164C C4840024 */ lwc1 $f4, 0x0024($a0) ## 00000024
|
|
||||||
/* 00400 80881650 3C014348 */ lui $at, 0x4348 ## $at = 43480000
|
|
||||||
/* 00404 80881654 44814000 */ mtc1 $at, $f8 ## $f8 = 200.00
|
|
||||||
/* 00408 80881658 E7A4005C */ swc1 $f4, 0x005C($sp)
|
|
||||||
/* 0040C 8088165C C4860028 */ lwc1 $f6, 0x0028($a0) ## 00000028
|
|
||||||
/* 00410 80881660 2401000C */ addiu $at, $zero, 0x000C ## $at = 0000000C
|
|
||||||
/* 00414 80881664 46083280 */ add.s $f10, $f6, $f8
|
|
||||||
/* 00418 80881668 E7AA0060 */ swc1 $f10, 0x0060($sp)
|
|
||||||
/* 0041C 8088166C C490002C */ lwc1 $f16, 0x002C($a0) ## 0000002C
|
|
||||||
/* 00420 80881670 E7B00064 */ swc1 $f16, 0x0064($sp)
|
|
||||||
/* 00424 80881674 80990003 */ lb $t9, 0x0003($a0) ## 00000003
|
|
||||||
/* 00428 80881678 02C02025 */ or $a0, $s6, $zero ## $a0 = 00000000
|
|
||||||
/* 0042C 8088167C 1721006B */ bne $t9, $at, .L8088182C
|
|
||||||
/* 00430 80881680 00000000 */ nop
|
|
||||||
/* 00434 80881684 0C03F66B */ jal Math_Rand_ZeroOne
|
|
||||||
## Rand.Next() float
|
|
||||||
/* 00438 80881688 00000000 */ nop
|
|
||||||
/* 0043C 8088168C 3C028088 */ lui $v0, %hi(D_80881BB8) ## $v0 = 80880000
|
|
||||||
/* 00440 80881690 24421BB8 */ addiu $v0, $v0, %lo(D_80881BB8) ## $v0 = 80881BB8
|
|
||||||
/* 00444 80881694 8C480000 */ lw $t0, 0x0000($v0) ## 80881BB8
|
|
||||||
/* 00448 80881698 24130003 */ addiu $s3, $zero, 0x0003 ## $s3 = 00000003
|
|
||||||
/* 0044C 8088169C 3C018088 */ lui $at, %hi(D_80881C14) ## $at = 80880000
|
|
||||||
/* 00450 808816A0 25090001 */ addiu $t1, $t0, 0x0001 ## $t1 = 00000001
|
|
||||||
/* 00454 808816A4 16690028 */ bne $s3, $t1, .L80881748
|
|
||||||
/* 00458 808816A8 AC490000 */ sw $t1, 0x0000($v0) ## 80881BB8
|
|
||||||
/* 0045C 808816AC 2415FFFF */ addiu $s5, $zero, 0xFFFF ## $s5 = FFFFFFFF
|
|
||||||
/* 00460 808816B0 0C01E221 */ jal func_80078884
|
|
||||||
/* 00464 808816B4 24044802 */ addiu $a0, $zero, 0x4802 ## $a0 = 00004802
|
|
||||||
/* 00468 808816B8 00008025 */ or $s0, $zero, $zero ## $s0 = 00000000
|
|
||||||
/* 0046C 808816BC 24120009 */ addiu $s2, $zero, 0x0009 ## $s2 = 00000009
|
|
||||||
/* 00470 808816C0 24111C71 */ addiu $s1, $zero, 0x1C71 ## $s1 = 00001C71
|
|
||||||
.L808816C4:
|
|
||||||
/* 00474 808816C4 0213001A */ div $zero, $s0, $s3
|
|
||||||
/* 00478 808816C8 00003010 */ mfhi $a2
|
|
||||||
/* 0047C 808816CC 00063400 */ sll $a2, $a2, 16
|
|
||||||
/* 00480 808816D0 00063403 */ sra $a2, $a2, 16
|
|
||||||
/* 00484 808816D4 02C02025 */ or $a0, $s6, $zero ## $a0 = 00000000
|
|
||||||
/* 00488 808816D8 27A5005C */ addiu $a1, $sp, 0x005C ## $a1 = FFFFFFEC
|
|
||||||
/* 0048C 808816DC 16600002 */ bne $s3, $zero, .L808816E8
|
|
||||||
/* 00490 808816E0 00000000 */ nop
|
|
||||||
/* 00494 808816E4 0007000D */ break 7 ## 0x01C00
|
|
||||||
.L808816E8:
|
|
||||||
/* 00498 808816E8 2401FFFF */ addiu $at, $zero, 0xFFFF ## $at = FFFFFFFF
|
|
||||||
/* 0049C 808816EC 16610004 */ bne $s3, $at, .L80881700
|
|
||||||
/* 004A0 808816F0 3C018000 */ lui $at, 0x8000 ## $at = 80000000
|
|
||||||
/* 004A4 808816F4 16010002 */ bne $s0, $at, .L80881700
|
|
||||||
/* 004A8 808816F8 00000000 */ nop
|
|
||||||
/* 004AC 808816FC 0006000D */ break 6 ## 0x01800
|
|
||||||
.L80881700:
|
|
||||||
/* 004B0 80881700 0C007D52 */ jal Item_DropCollectible
|
|
||||||
|
|
||||||
/* 004B4 80881704 00000000 */ nop
|
|
||||||
/* 004B8 80881708 5040000B */ beql $v0, $zero, .L80881738
|
|
||||||
/* 004BC 8088170C 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000001
|
|
||||||
/* 004C0 80881710 02110019 */ multu $s0, $s1
|
|
||||||
/* 004C4 80881714 3C014170 */ lui $at, 0x4170 ## $at = 41700000
|
|
||||||
/* 004C8 80881718 44819000 */ mtc1 $at, $f18 ## $f18 = 15.00
|
|
||||||
/* 004CC 8088171C 00000000 */ nop
|
|
||||||
/* 004D0 80881720 E4520060 */ swc1 $f18, 0x0060($v0) ## 00000060
|
|
||||||
/* 004D4 80881724 868B00B6 */ lh $t3, 0x00B6($s4) ## 000000B6
|
|
||||||
/* 004D8 80881728 00006012 */ mflo $t4
|
|
||||||
/* 004DC 8088172C 016C6821 */ addu $t5, $t3, $t4
|
|
||||||
/* 004E0 80881730 A44D0032 */ sh $t5, 0x0032($v0) ## 00000032
|
|
||||||
/* 004E4 80881734 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000002
|
|
||||||
.L80881738:
|
|
||||||
/* 004E8 80881738 1612FFE2 */ bne $s0, $s2, .L808816C4
|
|
||||||
/* 004EC 8088173C 00000000 */ nop
|
|
||||||
/* 004F0 80881740 10000049 */ beq $zero, $zero, .L80881868
|
|
||||||
/* 004F4 80881744 2401FFFF */ addiu $at, $zero, 0xFFFF ## $at = FFFFFFFF
|
|
||||||
.L80881748:
|
|
||||||
/* 004F8 80881748 C4241C14 */ lwc1 $f4, %lo(D_80881C14)($at)
|
|
||||||
/* 004FC 8088174C 3C018088 */ lui $at, %hi(D_80881C18) ## $at = 80880000
|
|
||||||
/* 00500 80881750 4604003C */ c.lt.s $f0, $f4
|
|
||||||
/* 00504 80881754 00000000 */ nop
|
|
||||||
/* 00508 80881758 45000018 */ bc1f .L808817BC
|
|
||||||
/* 0050C 8088175C 00000000 */ nop
|
|
||||||
/* 00510 80881760 3C0142A0 */ lui $at, 0x42A0 ## $at = 42A00000
|
|
||||||
/* 00514 80881764 44814000 */ mtc1 $at, $f8 ## $f8 = 80.00
|
|
||||||
/* 00518 80881768 C6860028 */ lwc1 $f6, 0x0028($s4) ## 00000028
|
|
||||||
/* 0051C 8088176C 8E870024 */ lw $a3, 0x0024($s4) ## 00000024
|
|
||||||
/* 00520 80881770 240F0002 */ addiu $t7, $zero, 0x0002 ## $t7 = 00000002
|
|
||||||
/* 00524 80881774 46083280 */ add.s $f10, $f6, $f8
|
|
||||||
/* 00528 80881778 2415FFFF */ addiu $s5, $zero, 0xFFFF ## $s5 = FFFFFFFF
|
|
||||||
/* 0052C 8088177C 26C41C24 */ addiu $a0, $s6, 0x1C24 ## $a0 = 00001C24
|
|
||||||
/* 00530 80881780 02C02825 */ or $a1, $s6, $zero ## $a1 = 00000000
|
|
||||||
/* 00534 80881784 E7AA0010 */ swc1 $f10, 0x0010($sp)
|
|
||||||
/* 00538 80881788 C690002C */ lwc1 $f16, 0x002C($s4) ## 0000002C
|
|
||||||
/* 0053C 8088178C AFA00018 */ sw $zero, 0x0018($sp)
|
|
||||||
/* 00540 80881790 24060013 */ addiu $a2, $zero, 0x0013 ## $a2 = 00000013
|
|
||||||
/* 00544 80881794 E7B00014 */ swc1 $f16, 0x0014($sp)
|
|
||||||
/* 00548 80881798 868E00B6 */ lh $t6, 0x00B6($s4) ## 000000B6
|
|
||||||
/* 0054C 8088179C AFAF0024 */ sw $t7, 0x0024($sp)
|
|
||||||
/* 00550 808817A0 AFA00020 */ sw $zero, 0x0020($sp)
|
|
||||||
/* 00554 808817A4 0C00C7D4 */ jal Actor_Spawn
|
|
||||||
## ActorSpawn
|
|
||||||
/* 00558 808817A8 AFAE001C */ sw $t6, 0x001C($sp)
|
|
||||||
/* 0055C 808817AC 0C01E221 */ jal func_80078884
|
|
||||||
/* 00560 808817B0 24044806 */ addiu $a0, $zero, 0x4806 ## $a0 = 00004806
|
|
||||||
/* 00564 808817B4 1000002C */ beq $zero, $zero, .L80881868
|
|
||||||
/* 00568 808817B8 2401FFFF */ addiu $at, $zero, 0xFFFF ## $at = FFFFFFFF
|
|
||||||
.L808817BC:
|
|
||||||
/* 0056C 808817BC C4321C18 */ lwc1 $f18, %lo(D_80881C18)($at)
|
|
||||||
/* 00570 808817C0 3C018088 */ lui $at, %hi(D_80881C1C) ## $at = 80880000
|
|
||||||
/* 00574 808817C4 4612003C */ c.lt.s $f0, $f18
|
|
||||||
/* 00578 808817C8 00000000 */ nop
|
|
||||||
/* 0057C 808817CC 45000003 */ bc1f .L808817DC
|
|
||||||
/* 00580 808817D0 00000000 */ nop
|
|
||||||
/* 00584 808817D4 10000011 */ beq $zero, $zero, .L8088181C
|
|
||||||
/* 00588 808817D8 24150004 */ addiu $s5, $zero, 0x0004 ## $s5 = 00000004
|
|
||||||
.L808817DC:
|
|
||||||
/* 0058C 808817DC C4241C1C */ lwc1 $f4, %lo(D_80881C1C)($at)
|
|
||||||
/* 00590 808817E0 3C018088 */ lui $at, %hi(D_80881C20) ## $at = 80880000
|
|
||||||
/* 00594 808817E4 4604003C */ c.lt.s $f0, $f4
|
|
||||||
/* 00598 808817E8 00000000 */ nop
|
|
||||||
/* 0059C 808817EC 45000003 */ bc1f .L808817FC
|
|
||||||
/* 005A0 808817F0 00000000 */ nop
|
|
||||||
/* 005A4 808817F4 10000009 */ beq $zero, $zero, .L8088181C
|
|
||||||
/* 005A8 808817F8 2415000E */ addiu $s5, $zero, 0x000E ## $s5 = 0000000E
|
|
||||||
.L808817FC:
|
|
||||||
/* 005AC 808817FC C4261C20 */ lwc1 $f6, %lo(D_80881C20)($at)
|
|
||||||
/* 005B0 80881800 24150008 */ addiu $s5, $zero, 0x0008 ## $s5 = 00000008
|
|
||||||
/* 005B4 80881804 4606003C */ c.lt.s $f0, $f6
|
|
||||||
/* 005B8 80881808 00000000 */ nop
|
|
||||||
/* 005BC 8088180C 45000003 */ bc1f .L8088181C
|
|
||||||
/* 005C0 80881810 00000000 */ nop
|
|
||||||
/* 005C4 80881814 10000001 */ beq $zero, $zero, .L8088181C
|
|
||||||
/* 005C8 80881818 2415000F */ addiu $s5, $zero, 0x000F ## $s5 = 0000000F
|
|
||||||
.L8088181C:
|
|
||||||
/* 005CC 8088181C 0C01E221 */ jal func_80078884
|
|
||||||
/* 005D0 80881820 24044807 */ addiu $a0, $zero, 0x4807 ## $a0 = 00004807
|
|
||||||
/* 005D4 80881824 10000010 */ beq $zero, $zero, .L80881868
|
|
||||||
/* 005D8 80881828 2401FFFF */ addiu $at, $zero, 0xFFFF ## $at = FFFFFFFF
|
|
||||||
.L8088182C:
|
|
||||||
/* 005DC 8088182C 0C00B35B */ jal Flags_GetCollectible
|
|
||||||
|
|
||||||
/* 005E0 80881830 8685001C */ lh $a1, 0x001C($s4) ## 0000001C
|
|
||||||
/* 005E4 80881834 10400005 */ beq $v0, $zero, .L8088184C
|
|
||||||
/* 005E8 80881838 24150003 */ addiu $s5, $zero, 0x0003 ## $s5 = 00000003
|
|
||||||
/* 005EC 8088183C 0C01E221 */ jal func_80078884
|
|
||||||
/* 005F0 80881840 24044807 */ addiu $a0, $zero, 0x4807 ## $a0 = 00004807
|
|
||||||
/* 005F4 80881844 10000008 */ beq $zero, $zero, .L80881868
|
|
||||||
/* 005F8 80881848 2401FFFF */ addiu $at, $zero, 0xFFFF ## $at = FFFFFFFF
|
|
||||||
.L8088184C:
|
|
||||||
/* 005FC 8088184C 8695001C */ lh $s5, 0x001C($s4) ## 0000001C
|
|
||||||
/* 00600 80881850 24044802 */ addiu $a0, $zero, 0x4802 ## $a0 = 00004802
|
|
||||||
/* 00604 80881854 32B5003F */ andi $s5, $s5, 0x003F ## $s5 = 00000003
|
|
||||||
/* 00608 80881858 0015AA00 */ sll $s5, $s5, 8
|
|
||||||
/* 0060C 8088185C 0C01E221 */ jal func_80078884
|
|
||||||
/* 00610 80881860 36B50011 */ ori $s5, $s5, 0x0011 ## $s5 = 00000013
|
|
||||||
/* 00614 80881864 2401FFFF */ addiu $at, $zero, 0xFFFF ## $at = FFFFFFFF
|
|
||||||
.L80881868:
|
|
||||||
/* 00618 80881868 12A1000C */ beq $s5, $at, .L8088189C
|
|
||||||
/* 0061C 8088186C 02C02025 */ or $a0, $s6, $zero ## $a0 = 00000000
|
|
||||||
/* 00620 80881870 00153400 */ sll $a2, $s5, 16
|
|
||||||
/* 00624 80881874 00063403 */ sra $a2, $a2, 16
|
|
||||||
/* 00628 80881878 0C007D52 */ jal Item_DropCollectible
|
|
||||||
|
|
||||||
/* 0062C 8088187C 27A5005C */ addiu $a1, $sp, 0x005C ## $a1 = FFFFFFEC
|
|
||||||
/* 00630 80881880 10400006 */ beq $v0, $zero, .L8088189C
|
|
||||||
/* 00634 80881884 3C014170 */ lui $at, 0x4170 ## $at = 41700000
|
|
||||||
/* 00638 80881888 44814000 */ mtc1 $at, $f8 ## $f8 = 15.00
|
|
||||||
/* 0063C 8088188C 00000000 */ nop
|
|
||||||
/* 00640 80881890 E4480060 */ swc1 $f8, 0x0060($v0) ## 00000060
|
|
||||||
/* 00644 80881894 869800B6 */ lh $t8, 0x00B6($s4) ## 000000B6
|
|
||||||
/* 00648 80881898 A4580032 */ sh $t8, 0x0032($v0) ## 00000032
|
|
||||||
.L8088189C:
|
|
||||||
/* 0064C 8088189C 0C00B55C */ jal Actor_Kill
|
|
||||||
|
|
||||||
/* 00650 808818A0 02802025 */ or $a0, $s4, $zero ## $a0 = 00000000
|
|
||||||
/* 00654 808818A4 8FBF004C */ lw $ra, 0x004C($sp)
|
|
||||||
.L808818A8:
|
|
||||||
/* 00658 808818A8 8FB00030 */ lw $s0, 0x0030($sp)
|
|
||||||
/* 0065C 808818AC 8FB10034 */ lw $s1, 0x0034($sp)
|
|
||||||
/* 00660 808818B0 8FB20038 */ lw $s2, 0x0038($sp)
|
|
||||||
/* 00664 808818B4 8FB3003C */ lw $s3, 0x003C($sp)
|
|
||||||
/* 00668 808818B8 8FB40040 */ lw $s4, 0x0040($sp)
|
|
||||||
/* 0066C 808818BC 8FB50044 */ lw $s5, 0x0044($sp)
|
|
||||||
/* 00670 808818C0 8FB60048 */ lw $s6, 0x0048($sp)
|
|
||||||
/* 00674 808818C4 03E00008 */ jr $ra
|
|
||||||
/* 00678 808818C8 27BD0070 */ addiu $sp, $sp, 0x0070 ## $sp = 00000000
|
|
|
@ -1,149 +0,0 @@
|
||||||
.rdata
|
|
||||||
glabel D_80881BD0
|
|
||||||
.asciz "../z_bg_haka_tubo.c"
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
glabel D_80881BE4
|
|
||||||
.asciz "../z_bg_haka_tubo.c"
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
glabel D_80881BF8
|
|
||||||
.asciz "../z_bg_haka_tubo.c"
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
.late_rodata
|
|
||||||
glabel D_80881C24
|
|
||||||
.float 9.58738E-5
|
|
||||||
glabel D_80881C28
|
|
||||||
.float 0.07
|
|
||||||
glabel D_80881C2C
|
|
||||||
.float 0.04
|
|
||||||
|
|
||||||
.text
|
|
||||||
glabel func_80881904
|
|
||||||
/* 006B4 80881904 27BDFF90 */ addiu $sp, $sp, 0xFF90 ## $sp = FFFFFF90
|
|
||||||
/* 006B8 80881908 AFBF003C */ sw $ra, 0x003C($sp)
|
|
||||||
/* 006BC 8088190C AFB00038 */ sw $s0, 0x0038($sp)
|
|
||||||
/* 006C0 80881910 AFA40070 */ sw $a0, 0x0070($sp)
|
|
||||||
/* 006C4 80881914 AFA50074 */ sw $a1, 0x0074($sp)
|
|
||||||
/* 006C8 80881918 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
|
|
||||||
/* 006CC 8088191C 3C068088 */ lui $a2, %hi(D_80881BD0) ## $a2 = 80880000
|
|
||||||
/* 006D0 80881920 24C61BD0 */ addiu $a2, $a2, %lo(D_80881BD0) ## $a2 = 80881BD0
|
|
||||||
/* 006D4 80881924 27A40058 */ addiu $a0, $sp, 0x0058 ## $a0 = FFFFFFE8
|
|
||||||
/* 006D8 80881928 240701DC */ addiu $a3, $zero, 0x01DC ## $a3 = 000001DC
|
|
||||||
/* 006DC 8088192C 0C031AB1 */ jal Graph_OpenDisps
|
|
||||||
/* 006E0 80881930 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
|
|
||||||
/* 006E4 80881934 8FAF0074 */ lw $t7, 0x0074($sp)
|
|
||||||
/* 006E8 80881938 0C024F61 */ jal func_80093D84
|
|
||||||
/* 006EC 8088193C 8DE40000 */ lw $a0, 0x0000($t7) ## 00000000
|
|
||||||
/* 006F0 80881940 8FA20070 */ lw $v0, 0x0070($sp)
|
|
||||||
/* 006F4 80881944 3C01436B */ lui $at, 0x436B ## $at = 436B0000
|
|
||||||
/* 006F8 80881948 44813000 */ mtc1 $at, $f6 ## $f6 = 235.00
|
|
||||||
/* 006FC 8088194C C4440028 */ lwc1 $f4, 0x0028($v0) ## 00000028
|
|
||||||
/* 00700 80881950 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
|
|
||||||
/* 00704 80881954 C44C0024 */ lwc1 $f12, 0x0024($v0) ## 00000024
|
|
||||||
/* 00708 80881958 8C46002C */ lw $a2, 0x002C($v0) ## 0000002C
|
|
||||||
/* 0070C 8088195C 0C034261 */ jal Matrix_Translate
|
|
||||||
/* 00710 80881960 46062380 */ add.s $f14, $f4, $f6
|
|
||||||
/* 00714 80881964 8FB80070 */ lw $t8, 0x0070($sp)
|
|
||||||
/* 00718 80881968 3C018088 */ lui $at, %hi(D_80881C24) ## $at = 80880000
|
|
||||||
/* 0071C 8088196C C4301C24 */ lwc1 $f16, %lo(D_80881C24)($at)
|
|
||||||
/* 00720 80881970 871900B6 */ lh $t9, 0x00B6($t8) ## 000000B6
|
|
||||||
/* 00724 80881974 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
|
|
||||||
/* 00728 80881978 44994000 */ mtc1 $t9, $f8 ## $f8 = 0.00
|
|
||||||
/* 0072C 8088197C 00000000 */ nop
|
|
||||||
/* 00730 80881980 468042A0 */ cvt.s.w $f10, $f8
|
|
||||||
/* 00734 80881984 46105302 */ mul.s $f12, $f10, $f16
|
|
||||||
/* 00738 80881988 0C034348 */ jal Matrix_RotateY
|
|
||||||
/* 0073C 8088198C 00000000 */ nop
|
|
||||||
/* 00740 80881990 3C018088 */ lui $at, %hi(D_80881C28) ## $at = 80880000
|
|
||||||
/* 00744 80881994 C42C1C28 */ lwc1 $f12, %lo(D_80881C28)($at)
|
|
||||||
/* 00748 80881998 3C018088 */ lui $at, %hi(D_80881C2C) ## $at = 80880000
|
|
||||||
/* 0074C 8088199C C42E1C2C */ lwc1 $f14, %lo(D_80881C2C)($at)
|
|
||||||
/* 00750 808819A0 44066000 */ mfc1 $a2, $f12
|
|
||||||
/* 00754 808819A4 0C0342A3 */ jal Matrix_Scale
|
|
||||||
/* 00758 808819A8 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
|
|
||||||
/* 0075C 808819AC 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
|
|
||||||
/* 00760 808819B0 3C0AFA00 */ lui $t2, 0xFA00 ## $t2 = FA000000
|
|
||||||
/* 00764 808819B4 3C0B00AA */ lui $t3, 0x00AA ## $t3 = 00AA0000
|
|
||||||
/* 00768 808819B8 24490008 */ addiu $t1, $v0, 0x0008 ## $t1 = 00000008
|
|
||||||
/* 0076C 808819BC AE0902D0 */ sw $t1, 0x02D0($s0) ## 000002D0
|
|
||||||
/* 00770 808819C0 356BFFFF */ ori $t3, $t3, 0xFFFF ## $t3 = 00AAFFFF
|
|
||||||
/* 00774 808819C4 354A8080 */ ori $t2, $t2, 0x8080 ## $t2 = FA008080
|
|
||||||
/* 00778 808819C8 AC4A0000 */ sw $t2, 0x0000($v0) ## 00000000
|
|
||||||
/* 0077C 808819CC AC4B0004 */ sw $t3, 0x0004($v0) ## 00000004
|
|
||||||
/* 00780 808819D0 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
|
|
||||||
/* 00784 808819D4 3C0DFB00 */ lui $t5, 0xFB00 ## $t5 = FB000000
|
|
||||||
/* 00788 808819D8 340EFFFF */ ori $t6, $zero, 0xFFFF ## $t6 = 0000FFFF
|
|
||||||
/* 0078C 808819DC 244C0008 */ addiu $t4, $v0, 0x0008 ## $t4 = 00000008
|
|
||||||
/* 00790 808819E0 AE0C02D0 */ sw $t4, 0x02D0($s0) ## 000002D0
|
|
||||||
/* 00794 808819E4 AC4D0000 */ sw $t5, 0x0000($v0) ## 00000000
|
|
||||||
/* 00798 808819E8 AC4E0004 */ sw $t6, 0x0004($v0) ## 00000004
|
|
||||||
/* 0079C 808819EC 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
|
|
||||||
/* 007A0 808819F0 3C18DB06 */ lui $t8, 0xDB06 ## $t8 = DB060000
|
|
||||||
/* 007A4 808819F4 37180020 */ ori $t8, $t8, 0x0020 ## $t8 = DB060020
|
|
||||||
/* 007A8 808819F8 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008
|
|
||||||
/* 007AC 808819FC AE0F02D0 */ sw $t7, 0x02D0($s0) ## 000002D0
|
|
||||||
/* 007B0 80881A00 AC580000 */ sw $t8, 0x0000($v0) ## 00000000
|
|
||||||
/* 007B4 80881A04 8FA90070 */ lw $t1, 0x0070($sp)
|
|
||||||
/* 007B8 80881A08 8FB90074 */ lw $t9, 0x0074($sp)
|
|
||||||
/* 007BC 80881A0C 24180040 */ addiu $t8, $zero, 0x0040 ## $t8 = 00000040
|
|
||||||
/* 007C0 80881A10 8523016A */ lh $v1, 0x016A($t1) ## 00000172
|
|
||||||
/* 007C4 80881A14 8F240000 */ lw $a0, 0x0000($t9) ## 00000000
|
|
||||||
/* 007C8 80881A18 240F0020 */ addiu $t7, $zero, 0x0020 ## $t7 = 00000020
|
|
||||||
/* 007CC 80881A1C 00030823 */ subu $at, $zero, $v1
|
|
||||||
/* 007D0 80881A20 00016900 */ sll $t5, $at, 4
|
|
||||||
/* 007D4 80881A24 01A16823 */ subu $t5, $t5, $at
|
|
||||||
/* 007D8 80881A28 31AE00FF */ andi $t6, $t5, 0x00FF ## $t6 = 00000000
|
|
||||||
/* 007DC 80881A2C 240C0001 */ addiu $t4, $zero, 0x0001 ## $t4 = 00000001
|
|
||||||
/* 007E0 80881A30 240B0040 */ addiu $t3, $zero, 0x0040 ## $t3 = 00000040
|
|
||||||
/* 007E4 80881A34 240A0020 */ addiu $t2, $zero, 0x0020 ## $t2 = 00000020
|
|
||||||
/* 007E8 80881A38 AFAA0010 */ sw $t2, 0x0010($sp)
|
|
||||||
/* 007EC 80881A3C AFAB0014 */ sw $t3, 0x0014($sp)
|
|
||||||
/* 007F0 80881A40 AFAC0018 */ sw $t4, 0x0018($sp)
|
|
||||||
/* 007F4 80881A44 AFAE0020 */ sw $t6, 0x0020($sp)
|
|
||||||
/* 007F8 80881A48 AFAF0024 */ sw $t7, 0x0024($sp)
|
|
||||||
/* 007FC 80881A4C AFB80028 */ sw $t8, 0x0028($sp)
|
|
||||||
/* 00800 80881A50 AFA0001C */ sw $zero, 0x001C($sp)
|
|
||||||
/* 00804 80881A54 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
|
|
||||||
/* 00808 80881A58 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
|
|
||||||
/* 0080C 80881A5C AFA2004C */ sw $v0, 0x004C($sp)
|
|
||||||
/* 00810 80881A60 0C0253D0 */ jal Gfx_TwoTexScroll
|
|
||||||
/* 00814 80881A64 3066007F */ andi $a2, $v1, 0x007F ## $a2 = 00000000
|
|
||||||
/* 00818 80881A68 8FA8004C */ lw $t0, 0x004C($sp)
|
|
||||||
/* 0081C 80881A6C 3C09DA38 */ lui $t1, 0xDA38 ## $t1 = DA380000
|
|
||||||
/* 00820 80881A70 35290003 */ ori $t1, $t1, 0x0003 ## $t1 = DA380003
|
|
||||||
/* 00824 80881A74 AD020004 */ sw $v0, 0x0004($t0) ## 00000004
|
|
||||||
/* 00828 80881A78 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
|
|
||||||
/* 0082C 80881A7C 3C058088 */ lui $a1, %hi(D_80881BE4) ## $a1 = 80880000
|
|
||||||
/* 00830 80881A80 24A51BE4 */ addiu $a1, $a1, %lo(D_80881BE4) ## $a1 = 80881BE4
|
|
||||||
/* 00834 80881A84 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
|
|
||||||
/* 00838 80881A88 AE1902D0 */ sw $t9, 0x02D0($s0) ## 000002D0
|
|
||||||
/* 0083C 80881A8C AC490000 */ sw $t1, 0x0000($v0) ## 00000000
|
|
||||||
/* 00840 80881A90 8FAA0074 */ lw $t2, 0x0074($sp)
|
|
||||||
/* 00844 80881A94 240601F1 */ addiu $a2, $zero, 0x01F1 ## $a2 = 000001F1
|
|
||||||
/* 00848 80881A98 8D440000 */ lw $a0, 0x0000($t2) ## 00000000
|
|
||||||
/* 0084C 80881A9C 0C0346A2 */ jal Matrix_NewMtx
|
|
||||||
/* 00850 80881AA0 AFA20048 */ sw $v0, 0x0048($sp)
|
|
||||||
/* 00854 80881AA4 8FA30048 */ lw $v1, 0x0048($sp)
|
|
||||||
/* 00858 80881AA8 3C0D0402 */ lui $t5, 0x0402 ## $t5 = 04020000
|
|
||||||
/* 0085C 80881AAC 25AD84B0 */ addiu $t5, $t5, 0x84B0 ## $t5 = 040184B0
|
|
||||||
/* 00860 80881AB0 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
|
|
||||||
/* 00864 80881AB4 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
|
|
||||||
/* 00868 80881AB8 3C0CDE00 */ lui $t4, 0xDE00 ## $t4 = DE000000
|
|
||||||
/* 0086C 80881ABC 3C068088 */ lui $a2, %hi(D_80881BF8) ## $a2 = 80880000
|
|
||||||
/* 00870 80881AC0 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008
|
|
||||||
/* 00874 80881AC4 AE0B02D0 */ sw $t3, 0x02D0($s0) ## 000002D0
|
|
||||||
/* 00878 80881AC8 AC4D0004 */ sw $t5, 0x0004($v0) ## 00000004
|
|
||||||
/* 0087C 80881ACC AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000
|
|
||||||
/* 00880 80881AD0 8FAE0074 */ lw $t6, 0x0074($sp)
|
|
||||||
/* 00884 80881AD4 24C61BF8 */ addiu $a2, $a2, %lo(D_80881BF8) ## $a2 = 80881BF8
|
|
||||||
/* 00888 80881AD8 27A40058 */ addiu $a0, $sp, 0x0058 ## $a0 = FFFFFFE8
|
|
||||||
/* 0088C 80881ADC 240701F5 */ addiu $a3, $zero, 0x01F5 ## $a3 = 000001F5
|
|
||||||
/* 00890 80881AE0 0C031AD5 */ jal Graph_CloseDisps
|
|
||||||
/* 00894 80881AE4 8DC50000 */ lw $a1, 0x0000($t6) ## 00000000
|
|
||||||
/* 00898 80881AE8 8FBF003C */ lw $ra, 0x003C($sp)
|
|
||||||
/* 0089C 80881AEC 8FB00038 */ lw $s0, 0x0038($sp)
|
|
||||||
/* 008A0 80881AF0 27BD0070 */ addiu $sp, $sp, 0x0070 ## $sp = 00000000
|
|
||||||
/* 008A4 80881AF4 03E00008 */ jr $ra
|
|
||||||
/* 008A8 80881AF8 00000000 */ nop
|
|
|
@ -1,28 +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_Tubo_InitVars
|
|
||||||
.word 0x00BB0100, 0x00000010, 0x00690000, 0x00000204
|
|
||||||
.word BgHakaTubo_Init
|
|
||||||
.word BgHakaTubo_Destroy
|
|
||||||
.word BgHakaTubo_Update
|
|
||||||
.word BgHakaTubo_Draw
|
|
||||||
glabel D_80881B60
|
|
||||||
.word 0x0A000900, 0x20010000, 0x00000000, 0x00000000, 0x00000000, 0x00000008, 0x00000000, 0x00010000, 0x0019003C, 0x001E0000, 0x00000000
|
|
||||||
glabel D_80881B8C
|
|
||||||
.word 0x0A110009, 0x20010000, 0x00000000, 0x20000000, 0x01040000, 0x00000008, 0x00000000, 0x19000100, 0x003C002D, 0x00EB0000, 0x00000000
|
|
||||||
glabel D_80881BB8
|
|
||||||
.word 0x00000000
|
|
||||||
glabel D_80881BBC
|
|
||||||
.word 0x48500064
|
|
||||||
glabel D_80881BC0
|
|
||||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
|
||||||
|
|
|
@ -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_80881C30
|
|
||||||
.incbin "baserom/ovl_Bg_Haka_Tubo", 0x9E0, 0x000000D0
|
|
|
@ -1287,7 +1287,8 @@ typedef struct {
|
||||||
typedef enum {
|
typedef enum {
|
||||||
DPM_UNK = 0,
|
DPM_UNK = 0,
|
||||||
DPM_PLAYER = 1,
|
DPM_PLAYER = 1,
|
||||||
DPM_ENEMY = 2
|
DPM_ENEMY = 2,
|
||||||
|
DPM_UNK3 = 3
|
||||||
} DynaPolyMoveFlag;
|
} DynaPolyMoveFlag;
|
||||||
|
|
||||||
// Some animation related structure
|
// Some animation related structure
|
||||||
|
|
3
spec
3
spec
|
@ -810,8 +810,7 @@ endseg
|
||||||
beginseg
|
beginseg
|
||||||
name "ovl_Bg_Haka_Tubo"
|
name "ovl_Bg_Haka_Tubo"
|
||||||
include "build/src/overlays/actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.o"
|
include "build/src/overlays/actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.o"
|
||||||
include "build/data/overlays/actors/z_bg_haka_tubo.data.o"
|
include "build/src/overlays/actors/ovl_Bg_Haka_Tubo/ovl_Bg_Haka_Tubo_reloc.o"
|
||||||
include "build/data/overlays/actors/z_bg_haka_tubo.reloc.o"
|
|
||||||
endseg
|
endseg
|
||||||
|
|
||||||
beginseg
|
beginseg
|
||||||
|
|
|
@ -15,11 +15,9 @@ void BgHakaTubo_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
||||||
void BgHakaTubo_Update(Actor* thisx, GlobalContext* globalCtx);
|
void BgHakaTubo_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||||
void BgHakaTubo_Draw(Actor* thisx, GlobalContext* globalCtx);
|
void BgHakaTubo_Draw(Actor* thisx, GlobalContext* globalCtx);
|
||||||
|
|
||||||
void func_808813A0(BgHakaTubo* this, GlobalContext* globalCtx);
|
void BgHakaTubo_Idle(BgHakaTubo* this, GlobalContext* globalCtx);
|
||||||
void func_80881608(BgHakaTubo* this, GlobalContext* globalCtx);
|
void BgHakaTubo_DropCollectible(BgHakaTubo* this, GlobalContext* globalCtx);
|
||||||
void func_80881904(BgHakaTubo* this, GlobalContext* globalCtx);
|
|
||||||
|
|
||||||
/*
|
|
||||||
const ActorInit Bg_Haka_Tubo_InitVars = {
|
const ActorInit Bg_Haka_Tubo_InitVars = {
|
||||||
ACTOR_BG_HAKA_TUBO,
|
ACTOR_BG_HAKA_TUBO,
|
||||||
ACTORTYPE_BG,
|
ACTORTYPE_BG,
|
||||||
|
@ -31,18 +29,197 @@ const ActorInit Bg_Haka_Tubo_InitVars = {
|
||||||
(ActorFunc)BgHakaTubo_Update,
|
(ActorFunc)BgHakaTubo_Update,
|
||||||
(ActorFunc)BgHakaTubo_Draw,
|
(ActorFunc)BgHakaTubo_Draw,
|
||||||
};
|
};
|
||||||
*/
|
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_Tubo/BgHakaTubo_Init.s")
|
static ColliderCylinderInit sPotColliderInit = {
|
||||||
|
{ COLTYPE_UNK10, 0x00, 0x09, 0x00, 0x20, COLSHAPE_CYLINDER },
|
||||||
|
{ 0x00, { 0x00000000, 0x00, 0x00 }, { 0x00000008, 0x00, 0x00 }, 0x00, 0x01, 0x00 },
|
||||||
|
{ 25, 60, 30, { 0, 0, 0 } },
|
||||||
|
};
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_Tubo/BgHakaTubo_Destroy.s")
|
static ColliderCylinderInit sFlamesColliderInit = {
|
||||||
|
{ COLTYPE_UNK10, 0x11, 0x00, 0x09, 0x20, COLSHAPE_CYLINDER },
|
||||||
|
{ 0x00, { 0x20000000, 0x01, 0x04 }, { 0x00000008, 0x00, 0x00 }, 0x19, 0x00, 0x01 },
|
||||||
|
{ 60, 45, 235, { 0, 0, 0 } },
|
||||||
|
};
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_Tubo/func_808813A0.s")
|
static s32 sPotsDestroyed = 0;
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_Tubo/func_80881608.s")
|
static InitChainEntry sInitChain[] = {
|
||||||
|
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
|
||||||
|
};
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_Tubo/BgHakaTubo_Update.s")
|
static Vec3f sZeroVector = { 0.0f, 0.0f, 0.0f };
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_Tubo/func_80881904.s")
|
extern CollisionHeader D_060108B8;
|
||||||
|
extern Gfx D_0600FE40[];
|
||||||
|
extern UNK_TYPE D_0400CD80;
|
||||||
|
extern Gfx D_040184B0[];
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_Tubo/BgHakaTubo_Draw.s")
|
void BgHakaTubo_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||||
|
BgHakaTubo* this = THIS;
|
||||||
|
s32 pad;
|
||||||
|
s32 sp24 = 0;
|
||||||
|
|
||||||
|
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
|
||||||
|
DynaPolyInfo_SetActorMove(&this->dyna, DPM_UNK3);
|
||||||
|
DynaPolyInfo_Alloc(&D_060108B8, &sp24);
|
||||||
|
this->dyna.dynaPolyId = DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, sp24);
|
||||||
|
Collider_InitCylinder(globalCtx, &this->potCollider);
|
||||||
|
Collider_SetCylinder(globalCtx, &this->potCollider, &this->dyna.actor, &sPotColliderInit);
|
||||||
|
Collider_InitCylinder(globalCtx, &this->flamesCollider);
|
||||||
|
Collider_SetCylinder(globalCtx, &this->flamesCollider, &this->dyna.actor, &sFlamesColliderInit);
|
||||||
|
this->fireScroll = Math_Rand_ZeroOne() * 15.0f;
|
||||||
|
sPotsDestroyed = 0;
|
||||||
|
this->actionFunc = BgHakaTubo_Idle;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BgHakaTubo_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
||||||
|
BgHakaTubo* this = THIS;
|
||||||
|
|
||||||
|
DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
|
||||||
|
Collider_DestroyCylinder(globalCtx, &this->potCollider);
|
||||||
|
Collider_DestroyCylinder(globalCtx, &this->flamesCollider);
|
||||||
|
}
|
||||||
|
|
||||||
|
void BgHakaTubo_Idle(BgHakaTubo* this, GlobalContext* globalCtx) {
|
||||||
|
Vec3f pos;
|
||||||
|
|
||||||
|
if (this->dyna.actor.room == 12) { // 3 spinning pots room in Shadow Temple
|
||||||
|
this->dyna.actor.shape.rot.y += 0x180;
|
||||||
|
this->dyna.actor.posRot.pos.x = Math_Sins(this->dyna.actor.shape.rot.y - 0x4000) * 145.0f + -5559.0f;
|
||||||
|
this->dyna.actor.posRot.pos.z = Math_Coss(this->dyna.actor.shape.rot.y - 0x4000) * 145.0f + -1587.0f;
|
||||||
|
}
|
||||||
|
// Colliding with flame circle
|
||||||
|
if (this->flamesCollider.base.atFlags & 2) {
|
||||||
|
this->flamesCollider.base.atFlags &= ~2;
|
||||||
|
func_8002F71C(globalCtx, &this->dyna.actor, 5.0f, this->dyna.actor.yawTowardsLink, 5.0f);
|
||||||
|
}
|
||||||
|
// Colliding with hitbox inside the pot
|
||||||
|
if (this->potCollider.base.acFlags & 2) {
|
||||||
|
this->potCollider.base.acFlags &= ~2;
|
||||||
|
// If the colliding actor is within a 50 unit radius and 50 unit height cylinder centered
|
||||||
|
// on the actor's position, break the pot
|
||||||
|
if (func_8002DBB0(&this->dyna.actor, &this->potCollider.base.ac->posRot.pos) < 50.0f &&
|
||||||
|
(this->potCollider.base.ac->posRot.pos.y - this->dyna.actor.posRot.pos.y) < 50.0f) {
|
||||||
|
pos.x = this->dyna.actor.posRot.pos.x;
|
||||||
|
pos.z = this->dyna.actor.posRot.pos.z;
|
||||||
|
pos.y = this->dyna.actor.posRot.pos.y + 80.0f;
|
||||||
|
func_80028E84(globalCtx, &pos, &sZeroVector, &sZeroVector, 100, 45);
|
||||||
|
Audio_PlaySoundAtPosition(globalCtx, &this->dyna.actor.posRot.pos, 50, NA_SE_EV_BOX_BREAK);
|
||||||
|
func_800297A4(globalCtx, &pos, 20.0f, 0, 350, 100, 50, 105, 40, &D_0400CD80);
|
||||||
|
this->dropTimer = 5;
|
||||||
|
this->dyna.actor.draw = NULL;
|
||||||
|
Actor_SetScale(&this->dyna.actor, 0.0f);
|
||||||
|
this->actionFunc = BgHakaTubo_DropCollectible;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Collider_CylinderUpdate(&this->dyna.actor, &this->flamesCollider);
|
||||||
|
Collider_CylinderUpdate(&this->dyna.actor, &this->potCollider);
|
||||||
|
CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->potCollider.base);
|
||||||
|
CollisionCheck_SetAT(globalCtx, &globalCtx->colChkCtx, &this->flamesCollider.base);
|
||||||
|
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->flamesCollider.base);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void BgHakaTubo_DropCollectible(BgHakaTubo* this, GlobalContext* globalCtx) {
|
||||||
|
EnItem00* collectible;
|
||||||
|
f32 rnd;
|
||||||
|
Vec3f spawnPos;
|
||||||
|
s32 i;
|
||||||
|
s32 collectibleParams;
|
||||||
|
|
||||||
|
this->dropTimer--;
|
||||||
|
if (this->dropTimer == 0) { // Creates a delay between destroying the pot and dropping the collectible
|
||||||
|
spawnPos.x = this->dyna.actor.posRot.pos.x;
|
||||||
|
spawnPos.y = this->dyna.actor.posRot.pos.y + 200.0f;
|
||||||
|
spawnPos.z = this->dyna.actor.posRot.pos.z;
|
||||||
|
if (this->dyna.actor.room == 12) { // 3 spinning pots room in Shadow Temple
|
||||||
|
rnd = Math_Rand_ZeroOne();
|
||||||
|
sPotsDestroyed++;
|
||||||
|
if (sPotsDestroyed == 3) {
|
||||||
|
// All 3 pots destroyed
|
||||||
|
collectibleParams = -1;
|
||||||
|
func_80078884(NA_SE_SY_CORRECT_CHIME);
|
||||||
|
// Drop rupees
|
||||||
|
for (i = 0; i < 9; i++) {
|
||||||
|
collectible = Item_DropCollectible(globalCtx, &spawnPos, i % 3);
|
||||||
|
if (collectible != NULL) {
|
||||||
|
collectible->actor.velocity.y = 15.0f;
|
||||||
|
collectible->actor.posRot.rot.y = this->dyna.actor.shape.rot.y + (i * 0x1C71);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (rnd < 0.2f) {
|
||||||
|
// Unlucky, no reward and spawn keese
|
||||||
|
collectibleParams = -1;
|
||||||
|
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_FIREFLY, this->dyna.actor.posRot.pos.x,
|
||||||
|
this->dyna.actor.posRot.pos.y + 80.0f, this->dyna.actor.posRot.pos.z, 0,
|
||||||
|
this->dyna.actor.shape.rot.y, 0, 2);
|
||||||
|
func_80078884(NA_SE_SY_ERROR);
|
||||||
|
} else {
|
||||||
|
// Random rewards
|
||||||
|
if (rnd < 0.4f) {
|
||||||
|
collectibleParams = ITEM00_BOMBS_A;
|
||||||
|
} else if (rnd < 0.6f) {
|
||||||
|
collectibleParams = ITEM00_MAGIC_LARGE;
|
||||||
|
} else if (rnd < 0.8f) {
|
||||||
|
collectibleParams = ITEM00_MAGIC_SMALL;
|
||||||
|
} else {
|
||||||
|
collectibleParams = ITEM00_ARROWS_SMALL;
|
||||||
|
}
|
||||||
|
func_80078884(NA_SE_SY_TRE_BOX_APPEAR);
|
||||||
|
}
|
||||||
|
} else if (Flags_GetCollectible(globalCtx, this->dyna.actor.params) != 0) {
|
||||||
|
// If small key already collected, drop recovery heart instead
|
||||||
|
collectibleParams = ITEM00_HEART;
|
||||||
|
func_80078884(NA_SE_SY_TRE_BOX_APPEAR);
|
||||||
|
} else {
|
||||||
|
// Drops a small key and sets a collect flag
|
||||||
|
collectibleParams = ((this->dyna.actor.params & 0x3F) << 8) | ITEM00_SMALL_KEY;
|
||||||
|
func_80078884(NA_SE_SY_CORRECT_CHIME);
|
||||||
|
}
|
||||||
|
if (collectibleParams != -1) {
|
||||||
|
collectible = Item_DropCollectible(globalCtx, &spawnPos, collectibleParams);
|
||||||
|
if (collectible != NULL) {
|
||||||
|
collectible->actor.velocity.y = 15.0f;
|
||||||
|
collectible->actor.posRot.rot.y = this->dyna.actor.shape.rot.y;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Actor_Kill(&this->dyna.actor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void BgHakaTubo_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||||
|
BgHakaTubo* this = THIS;
|
||||||
|
|
||||||
|
this->actionFunc(this, globalCtx);
|
||||||
|
this->fireScroll++;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BgHakaTubo_DrawFlameCircle(BgHakaTubo* this, GlobalContext* globalCtx) {
|
||||||
|
s32 pad;
|
||||||
|
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
|
||||||
|
Gfx* dispRefs[4];
|
||||||
|
Graph_OpenDisps(dispRefs, globalCtx->state.gfxCtx, "../z_bg_haka_tubo.c", 476);
|
||||||
|
func_80093D84(globalCtx->state.gfxCtx);
|
||||||
|
Matrix_Translate(this->dyna.actor.posRot.pos.x, this->dyna.actor.posRot.pos.y + 235.0f,
|
||||||
|
this->dyna.actor.posRot.pos.z, MTXMODE_NEW);
|
||||||
|
Matrix_RotateY(this->dyna.actor.shape.rot.y * 0.0000958738f, MTXMODE_APPLY);
|
||||||
|
Matrix_Scale(0.07f, 0.04f, 0.07f, MTXMODE_APPLY);
|
||||||
|
if (1) {}
|
||||||
|
gDPSetPrimColor(gfxCtx->polyXlu.p++, 0x80, 0x80, 0, 170, 255, 255);
|
||||||
|
gDPSetEnvColor(gfxCtx->polyXlu.p++, 0, 0, 255, 255);
|
||||||
|
gSPSegment(gfxCtx->polyXlu.p++, 0x08,
|
||||||
|
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, this->fireScroll & 127, 0, 32, 64, 1, 0,
|
||||||
|
(this->fireScroll * -15) & 0xFF, 32, 64));
|
||||||
|
gSPMatrix(gfxCtx->polyXlu.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_haka_tubo.c", 497),
|
||||||
|
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||||
|
gSPDisplayList(gfxCtx->polyXlu.p++, D_040184B0);
|
||||||
|
Graph_CloseDisps(dispRefs, globalCtx->state.gfxCtx, "../z_bg_haka_tubo.c", 501);
|
||||||
|
}
|
||||||
|
|
||||||
|
void BgHakaTubo_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||||
|
BgHakaTubo* this = THIS;
|
||||||
|
|
||||||
|
Gfx_DrawDListOpa(globalCtx, D_0600FE40);
|
||||||
|
BgHakaTubo_DrawFlameCircle(this, globalCtx);
|
||||||
|
}
|
||||||
|
|
|
@ -11,7 +11,10 @@ typedef void (*BgHakaTuboActionFunc)(struct BgHakaTubo*, GlobalContext*);
|
||||||
typedef struct BgHakaTubo {
|
typedef struct BgHakaTubo {
|
||||||
/* 0x0000 */ DynaPolyActor dyna;
|
/* 0x0000 */ DynaPolyActor dyna;
|
||||||
/* 0x0164 */ BgHakaTuboActionFunc actionFunc;
|
/* 0x0164 */ BgHakaTuboActionFunc actionFunc;
|
||||||
/* 0x0168 */ char unk_168[0x9C];
|
/* 0x0168 */ s16 dropTimer;
|
||||||
|
/* 0x016A */ s16 fireScroll;
|
||||||
|
/* 0x016C */ ColliderCylinder potCollider;
|
||||||
|
/* 0x01B8 */ ColliderCylinder flamesCollider;
|
||||||
} BgHakaTubo; // size = 0x0204
|
} BgHakaTubo; // size = 0x0204
|
||||||
|
|
||||||
extern const ActorInit Bg_Haka_Tubo_InitVars;
|
extern const ActorInit Bg_Haka_Tubo_InitVars;
|
||||||
|
|
|
@ -753,3 +753,9 @@ D_060032D8 = 0x060032D8;
|
||||||
D_02003C80 = 0x02003C80;
|
D_02003C80 = 0x02003C80;
|
||||||
D_02005020 = 0x02005020;
|
D_02005020 = 0x02005020;
|
||||||
D_020024A0 = 0x020024A0;
|
D_020024A0 = 0x020024A0;
|
||||||
|
|
||||||
|
// z_bg_haka_tubo
|
||||||
|
D_060108B8 = 0x060108B8;
|
||||||
|
D_0600FE40 = 0x0600FE40;
|
||||||
|
D_0400CD80 = 0x0400CD80;
|
||||||
|
D_040184B0 = 0x040184B0;
|
||||||
|
|
Loading…
Add table
Reference in a new issue