1
0
mirror of https://github.com/blawar/ooot.git synced 2024-07-07 12:32:37 +00:00

z_bg_jya_haheniron OK (#524)

* getting things started

* all matched, rock solid

* deleted assembly, formatted, and cleaned spec

* yikes, forgot to hit -d on deleting the asm

* Fixed suggestions and some documentation

* fixing a few compiler warnings

* added suggestions

* removing assembly to fix merge issues

* Documented function names
This commit is contained in:
Parker Burnett 2020-12-20 13:03:31 -05:00 committed by GitHub
parent 5ab8a39cd0
commit 2d35a25212
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 160 additions and 537 deletions

View File

@ -1,15 +0,0 @@
glabel BgJyaHaheniron_Destroy
/* 00348 80898408 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 0034C 8089840C AFBF0014 */ sw $ra, 0x0014($sp)
/* 00350 80898410 848E001C */ lh $t6, 0x001C($a0) ## 0000001C
/* 00354 80898414 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 00358 80898418 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 0035C 8089841C 55C00004 */ bnel $t6, $zero, .L80898430
/* 00360 80898420 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00364 80898424 0C016F32 */ jal Collider_DestroyJntSph
/* 00368 80898428 24C50150 */ addiu $a1, $a2, 0x0150 ## $a1 = 00000150
/* 0036C 8089842C 8FBF0014 */ lw $ra, 0x0014($sp)
.L80898430:
/* 00370 80898430 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00374 80898434 03E00008 */ jr $ra
/* 00378 80898438 00000000 */ nop

View File

@ -1,28 +0,0 @@
glabel BgJyaHaheniron_Draw
/* 005FC 808986BC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00600 808986C0 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00604 808986C4 AFA5001C */ sw $a1, 0x001C($sp)
/* 00608 808986C8 8482001C */ lh $v0, 0x001C($a0) ## 0000001C
/* 0060C 808986CC 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 00610 808986D0 24C50150 */ addiu $a1, $a2, 0x0150 ## $a1 = 00000150
/* 00614 808986D4 14400005 */ bne $v0, $zero, .L808986EC
/* 00618 808986D8 00002025 */ or $a0, $zero, $zero ## $a0 = 00000000
/* 0061C 808986DC 0C018A29 */ jal func_800628A4
/* 00620 808986E0 AFA60018 */ sw $a2, 0x0018($sp)
/* 00624 808986E4 8FA60018 */ lw $a2, 0x0018($sp)
/* 00628 808986E8 84C2001C */ lh $v0, 0x001C($a2) ## 0000001C
.L808986EC:
/* 0062C 808986EC 00027080 */ sll $t6, $v0, 2
/* 00630 808986F0 3C05808A */ lui $a1, %hi(D_808987B8) ## $a1 = 808A0000
/* 00634 808986F4 00AE2821 */ addu $a1, $a1, $t6
/* 00638 808986F8 8CA587B8 */ lw $a1, %lo(D_808987B8)($a1)
/* 0063C 808986FC 0C00D498 */ jal Gfx_DrawDListOpa
/* 00640 80898700 8FA4001C */ lw $a0, 0x001C($sp)
/* 00644 80898704 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00648 80898708 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 0064C 8089870C 03E00008 */ jr $ra
/* 00650 80898710 00000000 */ nop
/* 00654 80898714 00000000 */ nop
/* 00658 80898718 00000000 */ nop
/* 0065C 8089871C 00000000 */ nop

View File

@ -1,62 +0,0 @@
.late_rodata
glabel D_808987D8
.float 65535.0
.text
glabel BgJyaHaheniron_Init
/* 00280 80898340 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00284 80898344 AFA50024 */ sw $a1, 0x0024($sp)
/* 00288 80898348 AFBF001C */ sw $ra, 0x001C($sp)
/* 0028C 8089834C AFB00018 */ sw $s0, 0x0018($sp)
/* 00290 80898350 3C05808A */ lui $a1, %hi(D_80898780) ## $a1 = 808A0000
/* 00294 80898354 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00298 80898358 0C01E037 */ jal Actor_ProcessInitChain
/* 0029C 8089835C 24A58780 */ addiu $a1, $a1, %lo(D_80898780) ## $a1 = 80898780
/* 002A0 80898360 860E001C */ lh $t6, 0x001C($s0) ## 0000001C
/* 002A4 80898364 3C05808A */ lui $a1, %hi(D_80898794) ## $a1 = 808A0000
/* 002A8 80898368 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 002AC 8089836C 000E7880 */ sll $t7, $t6, 2
/* 002B0 80898370 00AF2821 */ addu $a1, $a1, $t7
/* 002B4 80898374 0C00B58B */ jal Actor_SetScale
/* 002B8 80898378 8CA58794 */ lw $a1, %lo(D_80898794)($a1)
/* 002BC 8089837C 8602001C */ lh $v0, 0x001C($s0) ## 0000001C
/* 002C0 80898380 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 002C4 80898384 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 002C8 80898388 1440000F */ bne $v0, $zero, .L808983C8
/* 002CC 8089838C 00000000 */ nop
/* 002D0 80898390 0C226030 */ jal func_808980C0
/* 002D4 80898394 8FA50024 */ lw $a1, 0x0024($sp)
/* 002D8 80898398 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 002DC 8089839C 00000000 */ nop
/* 002E0 808983A0 3C01808A */ lui $at, %hi(D_808987D8) ## $at = 808A0000
/* 002E4 808983A4 C42487D8 */ lwc1 $f4, %lo(D_808987D8)($at)
/* 002E8 808983A8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 002EC 808983AC 46040182 */ mul.s $f6, $f0, $f4
/* 002F0 808983B0 4600320D */ trunc.w.s $f8, $f6
/* 002F4 808983B4 44194000 */ mfc1 $t9, $f8
/* 002F8 808983B8 0C22610F */ jal func_8089843C
/* 002FC 808983BC A61900B8 */ sh $t9, 0x00B8($s0) ## 000000B8
/* 00300 808983C0 1000000D */ beq $zero, $zero, .L808983F8
/* 00304 808983C4 8FBF001C */ lw $ra, 0x001C($sp)
.L808983C8:
/* 00308 808983C8 54410006 */ bnel $v0, $at, .L808983E4
/* 0030C 808983CC 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 00310 808983D0 0C226162 */ jal func_80898588
/* 00314 808983D4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00318 808983D8 10000007 */ beq $zero, $zero, .L808983F8
/* 0031C 808983DC 8FBF001C */ lw $ra, 0x001C($sp)
/* 00320 808983E0 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
.L808983E4:
/* 00324 808983E4 54410004 */ bnel $v0, $at, .L808983F8
/* 00328 808983E8 8FBF001C */ lw $ra, 0x001C($sp)
/* 0032C 808983EC 0C226187 */ jal func_8089861C
/* 00330 808983F0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00334 808983F4 8FBF001C */ lw $ra, 0x001C($sp)
.L808983F8:
/* 00338 808983F8 8FB00018 */ lw $s0, 0x0018($sp)
/* 0033C 808983FC 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00340 80898400 03E00008 */ jr $ra
/* 00344 80898404 00000000 */ nop

View File

@ -1,12 +0,0 @@
glabel BgJyaHaheniron_Update
/* 005D0 80898690 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 005D4 80898694 AFBF0014 */ sw $ra, 0x0014($sp)
/* 005D8 80898698 848E01B0 */ lh $t6, 0x01B0($a0) ## 000001B0
/* 005DC 8089869C 8C99014C */ lw $t9, 0x014C($a0) ## 0000014C
/* 005E0 808986A0 25CF0001 */ addiu $t7, $t6, 0x0001 ## $t7 = 00000001
/* 005E4 808986A4 0320F809 */ jalr $ra, $t9
/* 005E8 808986A8 A48F01B0 */ sh $t7, 0x01B0($a0) ## 000001B0
/* 005EC 808986AC 8FBF0014 */ lw $ra, 0x0014($sp)
/* 005F0 808986B0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 005F4 808986B4 03E00008 */ jr $ra
/* 005F8 808986B8 00000000 */ nop

View File

@ -1,22 +0,0 @@
glabel func_808980C0
/* 00000 808980C0 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00004 808980C4 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 00008 808980C8 AFA5002C */ sw $a1, 0x002C($sp)
/* 0000C 808980CC 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00010 808980D0 AFBF001C */ sw $ra, 0x001C($sp)
/* 00014 808980D4 24C50150 */ addiu $a1, $a2, 0x0150 ## $a1 = 00000150
/* 00018 808980D8 AFA50020 */ sw $a1, 0x0020($sp)
/* 0001C 808980DC 0C016EFE */ jal Collider_InitJntSph
/* 00020 808980E0 AFA60028 */ sw $a2, 0x0028($sp)
/* 00024 808980E4 8FA60028 */ lw $a2, 0x0028($sp)
/* 00028 808980E8 3C07808A */ lui $a3, %hi(D_80898764) ## $a3 = 808A0000
/* 0002C 808980EC 8FA50020 */ lw $a1, 0x0020($sp)
/* 00030 808980F0 24CE0170 */ addiu $t6, $a2, 0x0170 ## $t6 = 00000170
/* 00034 808980F4 AFAE0010 */ sw $t6, 0x0010($sp)
/* 00038 808980F8 24E78764 */ addiu $a3, $a3, %lo(D_80898764) ## $a3 = 80898764
/* 0003C 808980FC 0C017014 */ jal Collider_SetJntSph
/* 00040 80898100 8FA4002C */ lw $a0, 0x002C($sp)
/* 00044 80898104 8FBF001C */ lw $ra, 0x001C($sp)
/* 00048 80898108 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 0004C 8089810C 03E00008 */ jr $ra
/* 00050 80898110 00000000 */ nop

View File

@ -1,156 +0,0 @@
.late_rodata
glabel D_808987D0
.float 0.8
glabel D_808987D4
.float 0.2
.text
glabel func_80898114
/* 00054 80898114 27BDFF40 */ addiu $sp, $sp, 0xFF40 ## $sp = FFFFFF40
/* 00058 80898118 F7BA0060 */ sdc1 $f26, 0x0060($sp)
/* 0005C 8089811C 3C01808A */ lui $at, %hi(D_808987D0) ## $at = 808A0000
/* 00060 80898120 C43A87D0 */ lwc1 $f26, %lo(D_808987D0)($at)
/* 00064 80898124 F7B80058 */ sdc1 $f24, 0x0058($sp)
/* 00068 80898128 3C01808A */ lui $at, %hi(D_808987D4) ## $at = 808A0000
/* 0006C 8089812C C43887D4 */ lwc1 $f24, %lo(D_808987D4)($at)
/* 00070 80898130 AFB70084 */ sw $s7, 0x0084($sp)
/* 00074 80898134 AFB60080 */ sw $s6, 0x0080($sp)
/* 00078 80898138 AFB1006C */ sw $s1, 0x006C($sp)
/* 0007C 8089813C F7B60050 */ sdc1 $f22, 0x0050($sp)
/* 00080 80898140 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 00084 80898144 AFBE0088 */ sw $s8, 0x0088($sp)
/* 00088 80898148 AFB5007C */ sw $s5, 0x007C($sp)
/* 0008C 8089814C AFB40078 */ sw $s4, 0x0078($sp)
/* 00090 80898150 AFB30074 */ sw $s3, 0x0074($sp)
/* 00094 80898154 AFB20070 */ sw $s2, 0x0070($sp)
/* 00098 80898158 3C11808A */ lui $s1, %hi(D_80898774) ## $s1 = 808A0000
/* 0009C 8089815C 3C160600 */ lui $s6, %hi(D_06000880) ## $s6 = 06000000
/* 000A0 80898160 3C17808A */ lui $s7, %hi(D_8089877E) ## $s7 = 808A0000
/* 000A4 80898164 4481B000 */ mtc1 $at, $f22 ## $f22 = 10.00
/* 000A8 80898168 00C09825 */ or $s3, $a2, $zero ## $s3 = 00000000
/* 000AC 8089816C 00A0A025 */ or $s4, $a1, $zero ## $s4 = 00000000
/* 000B0 80898170 0080F025 */ or $s8, $a0, $zero ## $s8 = 00000000
/* 000B4 80898174 AFBF008C */ sw $ra, 0x008C($sp)
/* 000B8 80898178 AFB00068 */ sw $s0, 0x0068($sp)
/* 000BC 8089817C F7B40048 */ sdc1 $f20, 0x0048($sp)
/* 000C0 80898180 26F7877E */ addiu $s7, $s7, %lo(D_8089877E) ## $s7 = 8089877E
/* 000C4 80898184 26D60880 */ addiu $s6, $s6, %lo(D_06000880) ## $s6 = 06000880
/* 000C8 80898188 26318774 */ addiu $s1, $s1, %lo(D_80898774) ## $s1 = 80898774
/* 000CC 8089818C 00009025 */ or $s2, $zero, $zero ## $s2 = 00000000
/* 000D0 80898190 27B500B4 */ addiu $s5, $sp, 0x00B4 ## $s5 = FFFFFFF4
.L80898194:
/* 000D4 80898194 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 000D8 80898198 00000000 */ nop
/* 000DC 8089819C 00128400 */ sll $s0, $s2, 16
/* 000E0 808981A0 00108403 */ sra $s0, $s0, 16
/* 000E4 808981A4 46160502 */ mul.s $f20, $f0, $f22
/* 000E8 808981A8 00102400 */ sll $a0, $s0, 16
/* 000EC 808981AC 0C01DE1C */ jal Math_Sins
## sins?
/* 000F0 808981B0 00042403 */ sra $a0, $a0, 16
/* 000F4 808981B4 46140102 */ mul.s $f4, $f0, $f20
/* 000F8 808981B8 C6660000 */ lwc1 $f6, 0x0000($s3) ## 00000000
/* 000FC 808981BC 46062200 */ add.s $f8, $f4, $f6
/* 00100 808981C0 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00104 808981C4 E7A800B4 */ swc1 $f8, 0x00B4($sp)
/* 00108 808981C8 46160282 */ mul.s $f10, $f0, $f22
/* 0010C 808981CC C6700004 */ lwc1 $f16, 0x0004($s3) ## 00000004
/* 00110 808981D0 00102400 */ sll $a0, $s0, 16
/* 00114 808981D4 00042403 */ sra $a0, $a0, 16
/* 00118 808981D8 46105480 */ add.s $f18, $f10, $f16
/* 0011C 808981DC 0C01DE0D */ jal Math_Coss
## coss?
/* 00120 808981E0 E7B200B8 */ swc1 $f18, 0x00B8($sp)
/* 00124 808981E4 46140102 */ mul.s $f4, $f0, $f20
/* 00128 808981E8 C6660008 */ lwc1 $f6, 0x0008($s3) ## 00000008
/* 0012C 808981EC 46062200 */ add.s $f8, $f4, $f6
/* 00130 808981F0 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00134 808981F4 E7A800BC */ swc1 $f8, 0x00BC($sp)
/* 00138 808981F8 4618003C */ c.lt.s $f0, $f24
/* 0013C 808981FC 03C02025 */ or $a0, $s8, $zero ## $a0 = 00000000
/* 00140 80898200 02802825 */ or $a1, $s4, $zero ## $a1 = 00000000
/* 00144 80898204 02A03025 */ or $a2, $s5, $zero ## $a2 = FFFFFFF4
/* 00148 80898208 45000003 */ bc1f .L80898218
/* 0014C 8089820C 02803825 */ or $a3, $s4, $zero ## $a3 = 00000000
/* 00150 80898210 10000007 */ beq $zero, $zero, .L80898230
/* 00154 80898214 24020060 */ addiu $v0, $zero, 0x0060 ## $v0 = 00000060
.L80898218:
/* 00158 80898218 461A003C */ c.lt.s $f0, $f26
/* 0015C 8089821C 24020020 */ addiu $v0, $zero, 0x0020 ## $v0 = 00000020
/* 00160 80898220 45000003 */ bc1f .L80898230
/* 00164 80898224 00000000 */ nop
/* 00168 80898228 10000001 */ beq $zero, $zero, .L80898230
/* 0016C 8089822C 24020040 */ addiu $v0, $zero, 0x0040 ## $v0 = 00000040
.L80898230:
/* 00170 80898230 86390000 */ lh $t9, 0x0000($s1) ## 80898774
/* 00174 80898234 240EFEA2 */ addiu $t6, $zero, 0xFEA2 ## $t6 = FFFFFEA2
/* 00178 80898238 240F0028 */ addiu $t7, $zero, 0x0028 ## $t7 = 00000028
/* 0017C 8089823C 24180004 */ addiu $t8, $zero, 0x0004 ## $t8 = 00000004
/* 00180 80898240 24080014 */ addiu $t0, $zero, 0x0014 ## $t0 = 00000014
/* 00184 80898244 24090028 */ addiu $t1, $zero, 0x0028 ## $t1 = 00000028
/* 00188 80898248 240AFFFF */ addiu $t2, $zero, 0xFFFF ## $t2 = FFFFFFFF
/* 0018C 8089824C 240B016C */ addiu $t3, $zero, 0x016C ## $t3 = 0000016C
/* 00190 80898250 AFAB0038 */ sw $t3, 0x0038($sp)
/* 00194 80898254 AFAA0034 */ sw $t2, 0x0034($sp)
/* 00198 80898258 AFA90030 */ sw $t1, 0x0030($sp)
/* 0019C 8089825C AFA8002C */ sw $t0, 0x002C($sp)
/* 001A0 80898260 AFB8001C */ sw $t8, 0x001C($sp)
/* 001A4 80898264 AFAF0018 */ sw $t7, 0x0018($sp)
/* 001A8 80898268 AFAE0010 */ sw $t6, 0x0010($sp)
/* 001AC 8089826C AFA20014 */ sw $v0, 0x0014($sp)
/* 001B0 80898270 AFA00020 */ sw $zero, 0x0020($sp)
/* 001B4 80898274 AFA00028 */ sw $zero, 0x0028($sp)
/* 001B8 80898278 AFB6003C */ sw $s6, 0x003C($sp)
/* 001BC 8089827C 0C00A7A3 */ jal EffectSsKakera_Spawn
/* 001C0 80898280 AFB90024 */ sw $t9, 0x0024($sp)
/* 001C4 80898284 26310002 */ addiu $s1, $s1, 0x0002 ## $s1 = 80898776
/* 001C8 80898288 1637FFC2 */ bne $s1, $s7, .L80898194
/* 001CC 8089828C 26523333 */ addiu $s2, $s2, 0x3333 ## $s2 = 00003333
/* 001D0 80898290 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 001D4 80898294 44810000 */ mtc1 $at, $f0 ## $f0 = 5.00
/* 001D8 80898298 C6700000 */ lwc1 $f16, 0x0000($s3) ## 00000000
/* 001DC 8089829C C68A0000 */ lwc1 $f10, 0x0000($s4) ## 00000000
/* 001E0 808982A0 240C0064 */ addiu $t4, $zero, 0x0064 ## $t4 = 00000064
/* 001E4 808982A4 46008482 */ mul.s $f18, $f16, $f0
/* 001E8 808982A8 240D00A0 */ addiu $t5, $zero, 0x00A0 ## $t5 = 000000A0
/* 001EC 808982AC 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001
/* 001F0 808982B0 03C02025 */ or $a0, $s8, $zero ## $a0 = 00000000
/* 001F4 808982B4 27A500A8 */ addiu $a1, $sp, 0x00A8 ## $a1 = FFFFFFE8
/* 001F8 808982B8 3C0642C8 */ lui $a2, 0x42C8 ## $a2 = 42C80000
/* 001FC 808982BC 24070004 */ addiu $a3, $zero, 0x0004 ## $a3 = 00000004
/* 00200 808982C0 46125100 */ add.s $f4, $f10, $f18
/* 00204 808982C4 E7A400A8 */ swc1 $f4, 0x00A8($sp)
/* 00208 808982C8 C6680004 */ lwc1 $f8, 0x0004($s3) ## 00000004
/* 0020C 808982CC C6860004 */ lwc1 $f6, 0x0004($s4) ## 00000004
/* 00210 808982D0 46004402 */ mul.s $f16, $f8, $f0
/* 00214 808982D4 46103280 */ add.s $f10, $f6, $f16
/* 00218 808982D8 E7AA00AC */ swc1 $f10, 0x00AC($sp)
/* 0021C 808982DC C6640008 */ lwc1 $f4, 0x0008($s3) ## 00000008
/* 00220 808982E0 C6920008 */ lwc1 $f18, 0x0008($s4) ## 00000008
/* 00224 808982E4 AFAE0018 */ sw $t6, 0x0018($sp)
/* 00228 808982E8 46002202 */ mul.s $f8, $f4, $f0
/* 0022C 808982EC AFAD0014 */ sw $t5, 0x0014($sp)
/* 00230 808982F0 AFAC0010 */ sw $t4, 0x0010($sp)
/* 00234 808982F4 46089180 */ add.s $f6, $f18, $f8
/* 00238 808982F8 0C00CD20 */ jal func_80033480
/* 0023C 808982FC E7A600B0 */ swc1 $f6, 0x00B0($sp)
/* 00240 80898300 8FBF008C */ lw $ra, 0x008C($sp)
/* 00244 80898304 D7B40048 */ ldc1 $f20, 0x0048($sp)
/* 00248 80898308 D7B60050 */ ldc1 $f22, 0x0050($sp)
/* 0024C 8089830C D7B80058 */ ldc1 $f24, 0x0058($sp)
/* 00250 80898310 D7BA0060 */ ldc1 $f26, 0x0060($sp)
/* 00254 80898314 8FB00068 */ lw $s0, 0x0068($sp)
/* 00258 80898318 8FB1006C */ lw $s1, 0x006C($sp)
/* 0025C 8089831C 8FB20070 */ lw $s2, 0x0070($sp)
/* 00260 80898320 8FB30074 */ lw $s3, 0x0074($sp)
/* 00264 80898324 8FB40078 */ lw $s4, 0x0078($sp)
/* 00268 80898328 8FB5007C */ lw $s5, 0x007C($sp)
/* 0026C 8089832C 8FB60080 */ lw $s6, 0x0080($sp)
/* 00270 80898330 8FB70084 */ lw $s7, 0x0084($sp)
/* 00274 80898334 8FBE0088 */ lw $s8, 0x0088($sp)
/* 00278 80898338 03E00008 */ jr $ra
/* 0027C 8089833C 27BD00C0 */ addiu $sp, $sp, 0x00C0 ## $sp = 00000000

View File

@ -1,5 +0,0 @@
glabel func_8089843C
/* 0037C 8089843C 3C0E808A */ lui $t6, %hi(func_8089844C) ## $t6 = 808A0000
/* 00380 80898440 25CE844C */ addiu $t6, $t6, %lo(func_8089844C) ## $t6 = 8089844C
/* 00384 80898444 03E00008 */ jr $ra
/* 00388 80898448 AC8E014C */ sw $t6, 0x014C($a0) ## 0000014C

View File

@ -1,91 +0,0 @@
glabel func_8089844C
/* 0038C 8089844C 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 00390 80898450 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00394 80898454 AFB00020 */ sw $s0, 0x0020($sp)
/* 00398 80898458 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0039C 8089845C 0C00B638 */ jal Actor_MoveForward
/* 003A0 80898460 AFA5003C */ sw $a1, 0x003C($sp)
/* 003A4 80898464 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 003A8 80898468 240E0085 */ addiu $t6, $zero, 0x0085 ## $t6 = 00000085
/* 003AC 8089846C AFAE0014 */ sw $t6, 0x0014($sp)
/* 003B0 80898470 8FA4003C */ lw $a0, 0x003C($sp)
/* 003B4 80898474 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 003B8 80898478 3C0640A0 */ lui $a2, 0x40A0 ## $a2 = 40A00000
/* 003BC 8089847C 3C074100 */ lui $a3, 0x4100 ## $a3 = 41000000
/* 003C0 80898480 0C00B92D */ jal func_8002E4B4
/* 003C4 80898484 E7A40010 */ swc1 $f4, 0x0010($sp)
/* 003C8 80898488 960F0088 */ lhu $t7, 0x0088($s0) ## 00000088
/* 003CC 8089848C 31F80009 */ andi $t8, $t7, 0x0009 ## $t8 = 00000000
/* 003D0 80898490 1700000C */ bne $t8, $zero, .L808984C4
/* 003D4 80898494 00000000 */ nop
/* 003D8 80898498 92190160 */ lbu $t9, 0x0160($s0) ## 00000160
/* 003DC 8089849C 33280002 */ andi $t0, $t9, 0x0002 ## $t0 = 00000000
/* 003E0 808984A0 51000021 */ beql $t0, $zero, .L80898528
/* 003E4 808984A4 860A01B0 */ lh $t2, 0x01B0($s0) ## 000001B0
/* 003E8 808984A8 8E020154 */ lw $v0, 0x0154($s0) ## 00000154
/* 003EC 808984AC 5040001E */ beql $v0, $zero, .L80898528
/* 003F0 808984B0 860A01B0 */ lh $t2, 0x01B0($s0) ## 000001B0
/* 003F4 808984B4 90490002 */ lbu $t1, 0x0002($v0) ## 00000002
/* 003F8 808984B8 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 003FC 808984BC 5521001A */ bnel $t1, $at, .L80898528
/* 00400 808984C0 860A01B0 */ lh $t2, 0x01B0($s0) ## 000001B0
.L808984C4:
/* 00404 808984C4 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00408 808984C8 00000000 */ nop
/* 0040C 808984CC C608005C */ lwc1 $f8, 0x005C($s0) ## 0000005C
/* 00410 808984D0 46000187 */ neg.s $f6, $f0
/* 00414 808984D4 46083282 */ mul.s $f10, $f6, $f8
/* 00418 808984D8 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 0041C 808984DC E7AA002C */ swc1 $f10, 0x002C($sp)
/* 00420 808984E0 C6120060 */ lwc1 $f18, 0x0060($s0) ## 00000060
/* 00424 808984E4 46000407 */ neg.s $f16, $f0
/* 00428 808984E8 46128102 */ mul.s $f4, $f16, $f18
/* 0042C 808984EC 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00430 808984F0 E7A40030 */ swc1 $f4, 0x0030($sp)
/* 00434 808984F4 C6080064 */ lwc1 $f8, 0x0064($s0) ## 00000064
/* 00438 808984F8 46000187 */ neg.s $f6, $f0
/* 0043C 808984FC 8FA4003C */ lw $a0, 0x003C($sp)
/* 00440 80898500 46083282 */ mul.s $f10, $f6, $f8
/* 00444 80898504 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024
/* 00448 80898508 27A6002C */ addiu $a2, $sp, 0x002C ## $a2 = FFFFFFF4
/* 0044C 8089850C 0C226045 */ jal func_80898114
/* 00450 80898510 E7AA0034 */ swc1 $f10, 0x0034($sp)
/* 00454 80898514 0C00B55C */ jal Actor_Kill
/* 00458 80898518 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0045C 8089851C 10000010 */ beq $zero, $zero, .L80898560
/* 00460 80898520 860B00B6 */ lh $t3, 0x00B6($s0) ## 000000B6
/* 00464 80898524 860A01B0 */ lh $t2, 0x01B0($s0) ## 000001B0
.L80898528:
/* 00468 80898528 8FA4003C */ lw $a0, 0x003C($sp)
/* 0046C 8089852C 26060150 */ addiu $a2, $s0, 0x0150 ## $a2 = 00000150
/* 00470 80898530 2941003D */ slti $at, $t2, 0x003D
/* 00474 80898534 54200006 */ bnel $at, $zero, .L80898550
/* 00478 80898538 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 0047C 8089853C 0C00B55C */ jal Actor_Kill
/* 00480 80898540 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00484 80898544 10000006 */ beq $zero, $zero, .L80898560
/* 00488 80898548 860B00B6 */ lh $t3, 0x00B6($s0) ## 000000B6
/* 0048C 8089854C 3C010001 */ lui $at, 0x0001 ## $at = 00010000
.L80898550:
/* 00490 80898550 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 00494 80898554 0C0175E7 */ jal CollisionCheck_SetAT
## CollisionCheck_setAT
/* 00498 80898558 00812821 */ addu $a1, $a0, $at
/* 0049C 8089855C 860B00B6 */ lh $t3, 0x00B6($s0) ## 000000B6
.L80898560:
/* 004A0 80898560 860D00B4 */ lh $t5, 0x00B4($s0) ## 000000B4
/* 004A4 80898564 256C04B0 */ addiu $t4, $t3, 0x04B0 ## $t4 = 000004B0
/* 004A8 80898568 25AE0FA0 */ addiu $t6, $t5, 0x0FA0 ## $t6 = 00000FA0
/* 004AC 8089856C A60C00B6 */ sh $t4, 0x00B6($s0) ## 000000B6
/* 004B0 80898570 A60E00B4 */ sh $t6, 0x00B4($s0) ## 000000B4
/* 004B4 80898574 8FBF0024 */ lw $ra, 0x0024($sp)
/* 004B8 80898578 8FB00020 */ lw $s0, 0x0020($sp)
/* 004BC 8089857C 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
/* 004C0 80898580 03E00008 */ jr $ra
/* 004C4 80898584 00000000 */ nop

View File

@ -1,5 +0,0 @@
glabel func_80898588
/* 004C8 80898588 3C0E808A */ lui $t6, %hi(func_80898598) ## $t6 = 808A0000
/* 004CC 8089858C 25CE8598 */ addiu $t6, $t6, %lo(func_80898598) ## $t6 = 80898598
/* 004D0 80898590 03E00008 */ jr $ra
/* 004D4 80898594 AC8E014C */ sw $t6, 0x014C($a0) ## 0000014C

View File

@ -1,39 +0,0 @@
glabel func_80898598
/* 004D8 80898598 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 004DC 8089859C AFBF001C */ sw $ra, 0x001C($sp)
/* 004E0 808985A0 AFB00018 */ sw $s0, 0x0018($sp)
/* 004E4 808985A4 848201B0 */ lh $v0, 0x01B0($a0) ## 000001B0
/* 004E8 808985A8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 004EC 808985AC 00A03825 */ or $a3, $a1, $zero ## $a3 = 00000000
/* 004F0 808985B0 28410008 */ slti $at, $v0, 0x0008
/* 004F4 808985B4 54200006 */ bnel $at, $zero, .L808985D0
/* 004F8 808985B8 28410011 */ slti $at, $v0, 0x0011
/* 004FC 808985BC 0C00B638 */ jal Actor_MoveForward
/* 00500 808985C0 00000000 */ nop
/* 00504 808985C4 1000000B */ beq $zero, $zero, .L808985F4
/* 00508 808985C8 860E00B6 */ lh $t6, 0x00B6($s0) ## 000000B6
/* 0050C 808985CC 28410011 */ slti $at, $v0, 0x0011
.L808985D0:
/* 00510 808985D0 14200007 */ bne $at, $zero, .L808985F0
/* 00514 808985D4 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 00518 808985D8 3C06808A */ lui $a2, %hi(D_808987A0) ## $a2 = 808A0000
/* 0051C 808985DC 24C687A0 */ addiu $a2, $a2, %lo(D_808987A0) ## $a2 = 808987A0
/* 00520 808985E0 0C226045 */ jal func_80898114
/* 00524 808985E4 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024
/* 00528 808985E8 0C00B55C */ jal Actor_Kill
/* 0052C 808985EC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L808985F0:
/* 00530 808985F0 860E00B6 */ lh $t6, 0x00B6($s0) ## 000000B6
.L808985F4:
/* 00534 808985F4 861800B4 */ lh $t8, 0x00B4($s0) ## 000000B4
/* 00538 808985F8 25CF0258 */ addiu $t7, $t6, 0x0258 ## $t7 = 00000258
/* 0053C 808985FC 271903E8 */ addiu $t9, $t8, 0x03E8 ## $t9 = 000003E8
/* 00540 80898600 A60F00B6 */ sh $t7, 0x00B6($s0) ## 000000B6
/* 00544 80898604 A61900B4 */ sh $t9, 0x00B4($s0) ## 000000B4
/* 00548 80898608 8FBF001C */ lw $ra, 0x001C($sp)
/* 0054C 8089860C 8FB00018 */ lw $s0, 0x0018($sp)
/* 00550 80898610 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00554 80898614 03E00008 */ jr $ra
/* 00558 80898618 00000000 */ nop

View File

@ -1,5 +0,0 @@
glabel func_8089861C
/* 0055C 8089861C 3C0E808A */ lui $t6, %hi(func_8089862C) ## $t6 = 808A0000
/* 00560 80898620 25CE862C */ addiu $t6, $t6, %lo(func_8089862C) ## $t6 = 8089862C
/* 00564 80898624 03E00008 */ jr $ra
/* 00568 80898628 AC8E014C */ sw $t6, 0x014C($a0) ## 0000014C

View File

@ -1,29 +0,0 @@
glabel func_8089862C
/* 0056C 8089862C 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00570 80898630 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00574 80898634 AFA50024 */ sw $a1, 0x0024($sp)
/* 00578 80898638 848E01B0 */ lh $t6, 0x01B0($a0) ## 000001B0
/* 0057C 8089863C 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 00580 80898640 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00584 80898644 29C10011 */ slti $at, $t6, 0x0011
/* 00588 80898648 1420000D */ bne $at, $zero, .L80898680
/* 0058C 8089864C 24E50024 */ addiu $a1, $a3, 0x0024 ## $a1 = 00000024
/* 00590 80898650 3C06808A */ lui $a2, %hi(D_808987AC) ## $a2 = 808A0000
/* 00594 80898654 24C687AC */ addiu $a2, $a2, %lo(D_808987AC) ## $a2 = 808987AC
/* 00598 80898658 AFA5001C */ sw $a1, 0x001C($sp)
/* 0059C 8089865C 0C226045 */ jal func_80898114
/* 005A0 80898660 AFA70020 */ sw $a3, 0x0020($sp)
/* 005A4 80898664 8FA5001C */ lw $a1, 0x001C($sp)
/* 005A8 80898668 8FA40024 */ lw $a0, 0x0024($sp)
/* 005AC 8089866C 24060050 */ addiu $a2, $zero, 0x0050 ## $a2 = 00000050
/* 005B0 80898670 0C01AEB6 */ jal Audio_PlaySoundAtPosition
/* 005B4 80898674 240739AC */ addiu $a3, $zero, 0x39AC ## $a3 = 000039AC
/* 005B8 80898678 0C00B55C */ jal Actor_Kill
/* 005BC 8089867C 8FA40020 */ lw $a0, 0x0020($sp)
.L80898680:
/* 005C0 80898680 8FBF0014 */ lw $ra, 0x0014($sp)
/* 005C4 80898684 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 005C8 80898688 03E00008 */ jr $ra
/* 005CC 8089868C 00000000 */ nop

View File

@ -1,37 +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_Jya_Haheniron_InitVars
.word 0x018F0600, 0x00000010, 0x016C0000, 0x000001B4
.word BgJyaHaheniron_Init
.word BgJyaHaheniron_Destroy
.word BgJyaHaheniron_Update
.word BgJyaHaheniron_Draw
glabel D_80898740
.word 0x00000000, 0xFFCFFFFF, 0x00040000, 0x00000000, 0x00000000, 0x01000000, 0x00000000, 0x00000000, 0x000A0064
glabel D_80898764
.word 0x0A110100, 0x00000000, 0x00000001
.word D_80898740
glabel D_80898774
.byte 0x00, 0x05, 0x00, 0x08, 0x00, 0x0B, 0x00, 0x0E, 0x00, 0x11
glabel D_8089877E
.byte 0x00, 0x00
glabel D_80898780
.word 0xB86CF830, 0xB870C568, 0xB0F403E8, 0xB0F801F4, 0x30FC03E8
glabel D_80898794
.word 0x3E051EB8, 0x3DCCCCCD, 0x3DCCCCCD
glabel D_808987A0
.word 0x00000000, 0x41600000, 0x00000000
glabel D_808987AC
.word 0x00000000, 0x41000000, 0x00000000
glabel D_808987B8
.word 0x06000880, 0x06000AE0, 0x06000600, 0x00000000, 0x00000000, 0x00000000

View File

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

3
spec
View File

@ -986,8 +986,7 @@ endseg
beginseg
name "ovl_Bg_Jya_Haheniron"
include "build/src/overlays/actors/ovl_Bg_Jya_Haheniron/z_bg_jya_haheniron.o"
include "build/data/overlays/actors/z_bg_jya_haheniron.data.o"
include "build/data/overlays/actors/z_bg_jya_haheniron.reloc.o"
include "build/src/overlays/actors/ovl_Bg_Jya_Haheniron/ovl_Bg_Jya_Haheniron_reloc.o"
endseg
beginseg

View File

@ -5,6 +5,7 @@
*/
#include "z_bg_jya_haheniron.h"
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
#define FLAGS 0x00000010
@ -15,9 +16,13 @@ void BgJyaHaheniron_Destroy(Actor* thisx, GlobalContext* globalCtx);
void BgJyaHaheniron_Update(Actor* thisx, GlobalContext* globalCtx);
void BgJyaHaheniron_Draw(Actor* thisx, GlobalContext* globalCtx);
extern UNK_TYPE D_06000880;
void BgJyaHaheniron_SetupChairCrumble(BgJyaHaheniron* this);
void BgJyaHaheniron_ChairCrumble(BgJyaHaheniron* this, GlobalContext* globalCtx);
void BgJyaHaheniron_SetupPillarCrumble(BgJyaHaheniron* this);
void BgJyaHaheniron_PillarCrumble(BgJyaHaheniron* this, GlobalContext* globalCtx);
void BgJyaHaheniron_SetupRubbleCollide(BgJyaHaheniron* this);
void BgJyaHaheniron_RubbleCollide(BgJyaHaheniron* this, GlobalContext* globalCtx);
/*
const ActorInit Bg_Jya_Haheniron_InitVars = {
ACTOR_BG_JYA_HAHENIRON,
ACTORTYPE_PROP,
@ -29,27 +34,160 @@ const ActorInit Bg_Jya_Haheniron_InitVars = {
(ActorFunc)BgJyaHaheniron_Update,
(ActorFunc)BgJyaHaheniron_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Jya_Haheniron/func_808980C0.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Jya_Haheniron/func_80898114.s")
static ColliderJntSphItemInit sJntSphItemsInit[1] = {
{
{ 0x00, { 0xFFCFFFFF, 0x00, 0x04 }, { 0x00000000, 0x00, 0x00 }, 0x01, 0x00, 0x00 },
{ 0, { { 0, 0, 0 }, 10 }, 100 },
},
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Jya_Haheniron/BgJyaHaheniron_Init.s")
static ColliderJntSphInit D_80898764 = {
{ COLTYPE_UNK10, 0x11, 0x01, 0x00, 0x00, COLSHAPE_JNTSPH },
1,
sJntSphItemsInit,
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Jya_Haheniron/BgJyaHaheniron_Destroy.s")
static s16 sKakeraScales[] = { 5, 8, 11, 14, 17 };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Jya_Haheniron/func_8089843C.s")
static InitChainEntry sInitChain[] = {
ICHAIN_F32_DIV1000(gravity, -2000, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(minVelocityY, -15000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneScale, 500, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_STOP),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Jya_Haheniron/func_8089844C.s")
f32 D_80898794[] = { 0.13f, 0.1f, 0.1f };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Jya_Haheniron/func_80898588.s")
Vec3f D_808987A0[] = { 0.0f, 14.0f, 0.0f };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Jya_Haheniron/func_80898598.s")
Vec3f D_808987AC[] = { 0.0f, 8.0f, 0.0f };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Jya_Haheniron/func_8089861C.s")
extern Gfx D_06000880[];
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Jya_Haheniron/func_8089862C.s")
void BgJyaHaheniron_ColliderInit(BgJyaHaheniron* this, GlobalContext* globalCtx) {
s32 pad;
Collider_InitJntSph(globalCtx, &this->collider);
Collider_SetJntSph(globalCtx, &this->collider, &this->actor, &D_80898764, this->colliderItems);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Jya_Haheniron/BgJyaHaheniron_Update.s")
void BgJyaHaheniron_SpawnFragments(GlobalContext* globalCtx, Vec3f* vec1, Vec3f* vec2) {
Vec3f vel;
Vec3f pos;
s16 arg5;
s32 angle;
s32 i;
f32 rand1;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Jya_Haheniron/BgJyaHaheniron_Draw.s")
for (angle = 0, i = 0; i < ARRAY_COUNT(sKakeraScales); i++) {
rand1 = Math_Rand_ZeroOne() * 10.0f;
vel.x = (Math_Sins(angle) * rand1) + vec2->x;
vel.y = (Math_Rand_ZeroOne() * 10.0f) + vec2->y;
vel.z = (Math_Coss(angle) * rand1) + vec2->z;
rand1 = Math_Rand_ZeroOne();
if (rand1 < 0.2f) {
arg5 = 96;
} else if (rand1 < 0.8f) {
arg5 = 64;
} else {
arg5 = 32;
}
EffectSsKakera_Spawn(globalCtx, vec1, &vel, vec1, -350, arg5, 40, 4, 0, sKakeraScales[i], 0, 20, 40,
KAKERA_COLOR_NONE, OBJECT_JYA_IRON, &D_06000880);
angle += 0x3333;
}
pos.x = vec1->x + (vec2->x * 5.0f);
pos.y = vec1->y + (vec2->y * 5.0f);
pos.z = vec1->z + (vec2->z * 5.0f);
func_80033480(globalCtx, &pos, 100.0f, 4, 100, 160, 1);
}
void BgJyaHaheniron_Init(Actor* thisx, GlobalContext* globalCtx) {
BgJyaHaheniron* this = THIS;
Actor_ProcessInitChain(thisx, sInitChain);
Actor_SetScale(&this->actor, D_80898794[this->actor.params]);
if (thisx->params == 0) {
BgJyaHaheniron_ColliderInit(this, globalCtx);
thisx->shape.rot.z = (Math_Rand_ZeroOne() * 65535.0f);
BgJyaHaheniron_SetupChairCrumble(this);
} else if (thisx->params == 1) {
BgJyaHaheniron_SetupPillarCrumble(this);
} else if (thisx->params == 2) {
BgJyaHaheniron_SetupRubbleCollide(this);
}
}
void BgJyaHaheniron_Destroy(Actor* thisx, GlobalContext* globalCtx) {
if (thisx->params == 0) {
Collider_DestroyJntSph(globalCtx, &THIS->collider);
}
}
void BgJyaHaheniron_SetupChairCrumble(BgJyaHaheniron* this) {
this->actionFunc = BgJyaHaheniron_ChairCrumble;
}
void BgJyaHaheniron_ChairCrumble(BgJyaHaheniron* this, GlobalContext* globalCtx) {
Vec3f vec;
Actor_MoveForward(&this->actor);
func_8002E4B4(globalCtx, &this->actor, 5.0f, 8.0f, 0.0f, 0x85);
if ((this->actor.bgCheckFlags & 9) ||
((this->collider.base.atFlags & 2) && (this->collider.base.at) && (this->collider.base.at->type == 2))) {
vec.x = -Math_Rand_ZeroOne() * this->actor.velocity.x;
vec.y = -Math_Rand_ZeroOne() * this->actor.velocity.y;
vec.z = -Math_Rand_ZeroOne() * this->actor.velocity.z;
BgJyaHaheniron_SpawnFragments(globalCtx, &this->actor.posRot, &vec);
Actor_Kill(&this->actor);
} else if (this->timer >= 61) {
Actor_Kill(&this->actor);
} else {
CollisionCheck_SetAT(globalCtx, &globalCtx->colChkCtx, &this->collider);
}
this->actor.shape.rot.y += 0x4B0;
this->actor.shape.rot.x += 0xFA0;
}
void BgJyaHaheniron_SetupPillarCrumble(BgJyaHaheniron* this) {
this->actionFunc = BgJyaHaheniron_PillarCrumble;
}
void BgJyaHaheniron_PillarCrumble(BgJyaHaheniron* this, GlobalContext* globalCtx) {
if (this->timer >= 8) {
Actor_MoveForward(&this->actor);
} else if (this->timer >= 17) {
BgJyaHaheniron_SpawnFragments(globalCtx, &this->actor.posRot, D_808987A0);
Actor_Kill(&this->actor);
}
this->actor.shape.rot.y += 0x258;
this->actor.shape.rot.x += 0x3E8;
}
void BgJyaHaheniron_SetupRubbleCollide(BgJyaHaheniron* this) {
this->actionFunc = BgJyaHaheniron_RubbleCollide;
}
void BgJyaHaheniron_RubbleCollide(BgJyaHaheniron* this, GlobalContext* globalCtx) {
if (this->timer >= 17) {
BgJyaHaheniron_SpawnFragments(globalCtx, &this->actor.posRot, D_808987AC);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.posRot, 80, NA_SE_EN_IRONNACK_BREAK_PILLAR2);
Actor_Kill(&this->actor);
}
}
void BgJyaHaheniron_Update(Actor* thisx, GlobalContext* globalCtx) {
BgJyaHaheniron* this = THIS;
this->timer++;
this->actionFunc(this, globalCtx);
}
void BgJyaHaheniron_Draw(Actor* thisx, GlobalContext* globalCtx) {
static Gfx* dLists[] = { 0x06000880, 0x06000AE0, 0x06000600 };
BgJyaHaheniron* this = THIS;
if (thisx->params == 0) {
func_800628A4(0, &this->collider);
}
Gfx_DrawDListOpa(globalCtx, dLists[thisx->params]);
}

View File

@ -6,9 +6,14 @@
struct BgJyaHaheniron;
typedef void (*BgJyaHahenironActionFunc)(struct BgJyaHaheniron*, GlobalContext*);
typedef struct BgJyaHaheniron {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x68];
/* 0x014C */ BgJyaHahenironActionFunc actionFunc;
/* 0x0150 */ ColliderJntSph collider;
/* 0x0170 */ ColliderJntSphItem colliderItems[1];
/* 0x01B0 */ s16 timer;
} BgJyaHaheniron; // size = 0x01B4
extern const ActorInit Bg_Jya_Haheniron_InitVars;