1
0
mirror of https://github.com/zeldaret/oot.git synced 2024-09-21 04:24:43 +00:00

Decompiled ovl_Bg_Hidan_Hrock (#690)

* Fixing mkldscript.c for mac

* 1 to go

* merge update

* almost

* small update

* updating API with master

* NON_MATCHING

* names of vars

* almost matching

Signed-off-by: angie <angheloalf95@gmail.com>

* BgHidanHrock_Init matching

Signed-off-by: Anghelo <angheloalf95@gmail.com>

* renames

* format

* PR suggestions

Co-authored-by: angie <angheloalf95@gmail.com>
This commit is contained in:
Ethan Roseman 2021-02-15 14:33:41 -05:00 committed by GitHub
parent 982c645167
commit ecedc4f059
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 178 additions and 556 deletions

View File

@ -1,20 +0,0 @@
glabel BgHidanHrock_Destroy
/* 0032C 8088945C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00330 80889460 AFA40018 */ sw $a0, 0x0018($sp)
/* 00334 80889464 8FAE0018 */ lw $t6, 0x0018($sp)
/* 00338 80889468 AFBF0014 */ sw $ra, 0x0014($sp)
/* 0033C 8088946C 00A03825 */ or $a3, $a1, $zero ## $a3 = 00000000
/* 00340 80889470 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00344 80889474 8DC6014C */ lw $a2, 0x014C($t6) ## 0000014C
/* 00348 80889478 AFA7001C */ sw $a3, 0x001C($sp)
/* 0034C 8088947C 0C00FB56 */ jal DynaPoly_DeleteBgActor
## DynaPoly_DeleteBgActor
/* 00350 80889480 24A50810 */ addiu $a1, $a1, 0x0810 ## $a1 = 00000810
/* 00354 80889484 8FA50018 */ lw $a1, 0x0018($sp)
/* 00358 80889488 8FA4001C */ lw $a0, 0x001C($sp)
/* 0035C 8088948C 0C017232 */ jal Collider_DestroyTris
/* 00360 80889490 24A5016C */ addiu $a1, $a1, 0x016C ## $a1 = 0000016C
/* 00364 80889494 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00368 80889498 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 0036C 8088949C 03E00008 */ jr $ra
/* 00370 808894A0 00000000 */ nop

View File

@ -1,19 +0,0 @@
glabel BgHidanHrock_Draw
/* 0068C 808897BC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00690 808897C0 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00694 808897C4 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 00698 808897C8 84EE001C */ lh $t6, 0x001C($a3) ## 0000001C
/* 0069C 808897CC 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 006A0 808897D0 3C058089 */ lui $a1, %hi(D_808898B0) ## $a1 = 80890000
/* 006A4 808897D4 000E7880 */ sll $t7, $t6, 2
/* 006A8 808897D8 00AF2821 */ addu $a1, $a1, $t7
/* 006AC 808897DC 0C00D498 */ jal Gfx_DrawDListOpa
/* 006B0 808897E0 8CA598B0 */ lw $a1, %lo(D_808898B0)($a1)
/* 006B4 808897E4 8FBF0014 */ lw $ra, 0x0014($sp)
/* 006B8 808897E8 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 006BC 808897EC 03E00008 */ jr $ra
/* 006C0 808897F0 00000000 */ nop
/* 006C4 808897F4 00000000 */ nop
/* 006C8 808897F8 00000000 */ nop
/* 006CC 808897FC 00000000 */ nop

View File

@ -1,230 +0,0 @@
.late_rodata
glabel D_808898C0
.float 3000.0
glabel D_808898C4
.float 3000.0
.text
glabel BgHidanHrock_Init
/* 00000 80889130 27BDFF50 */ addiu $sp, $sp, 0xFF50 ## $sp = FFFFFF50
/* 00004 80889134 AFA500B4 */ sw $a1, 0x00B4($sp)
/* 00008 80889138 AFBF0054 */ sw $ra, 0x0054($sp)
/* 0000C 8088913C AFB00030 */ sw $s0, 0x0030($sp)
/* 00010 80889140 3C058089 */ lui $a1, %hi(D_808898A8) ## $a1 = 80890000
/* 00014 80889144 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00018 80889148 AFBE0050 */ sw $s8, 0x0050($sp)
/* 0001C 8088914C AFB7004C */ sw $s7, 0x004C($sp)
/* 00020 80889150 AFB60048 */ sw $s6, 0x0048($sp)
/* 00024 80889154 AFB50044 */ sw $s5, 0x0044($sp)
/* 00028 80889158 AFB40040 */ sw $s4, 0x0040($sp)
/* 0002C 8088915C AFB3003C */ sw $s3, 0x003C($sp)
/* 00030 80889160 AFB20038 */ sw $s2, 0x0038($sp)
/* 00034 80889164 AFB10034 */ sw $s1, 0x0034($sp)
/* 00038 80889168 F7B60028 */ sdc1 $f22, 0x0028($sp)
/* 0003C 8088916C F7B40020 */ sdc1 $f20, 0x0020($sp)
/* 00040 80889170 AFA00070 */ sw $zero, 0x0070($sp)
/* 00044 80889174 0C01E037 */ jal Actor_ProcessInitChain
/* 00048 80889178 24A598A8 */ addiu $a1, $a1, %lo(D_808898A8) ## $a1 = 808898A8
/* 0004C 8088917C 8618001C */ lh $t8, 0x001C($s0) ## 0000001C
/* 00050 80889180 860E001C */ lh $t6, 0x001C($s0) ## 0000001C
/* 00054 80889184 261E016C */ addiu $s8, $s0, 0x016C ## $s8 = 0000016C
/* 00058 80889188 0018CA03 */ sra $t9, $t8, 8
/* 0005C 8088918C 332800FF */ andi $t0, $t9, 0x00FF ## $t0 = 00000000
/* 00060 80889190 31CF003F */ andi $t7, $t6, 0x003F ## $t7 = 00000000
/* 00064 80889194 A20F016A */ sb $t7, 0x016A($s0) ## 0000016A
/* 00068 80889198 A608001C */ sh $t0, 0x001C($s0) ## 0000001C
/* 0006C 8088919C 8FA400B4 */ lw $a0, 0x00B4($sp)
/* 00070 808891A0 0C0171F8 */ jal Collider_InitTris
/* 00074 808891A4 03C02825 */ or $a1, $s8, $zero ## $a1 = 0000016C
/* 00078 808891A8 3C078089 */ lui $a3, %hi(D_80889898) ## $a3 = 80890000
/* 0007C 808891AC 2609018C */ addiu $t1, $s0, 0x018C ## $t1 = 0000018C
/* 00080 808891B0 AFA90010 */ sw $t1, 0x0010($sp)
/* 00084 808891B4 24E79898 */ addiu $a3, $a3, %lo(D_80889898) ## $a3 = 80889898
/* 00088 808891B8 8FA400B4 */ lw $a0, 0x00B4($sp)
/* 0008C 808891BC 03C02825 */ or $a1, $s8, $zero ## $a1 = 0000016C
/* 00090 808891C0 0C0172EB */ jal Collider_SetTris
/* 00094 808891C4 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 00098 808891C8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0009C 808891CC 0C010D20 */ jal DynaPolyActor_Init
/* 000A0 808891D0 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 000A4 808891D4 0C01DE1C */ jal Math_SinS
## sins?
/* 000A8 808891D8 860400B6 */ lh $a0, 0x00B6($s0) ## 000000B6
/* 000AC 808891DC 46000586 */ mov.s $f22, $f0
/* 000B0 808891E0 0C01DE0D */ jal Math_CosS
## coss?
/* 000B4 808891E4 860400B6 */ lh $a0, 0x00B6($s0) ## 000000B6
/* 000B8 808891E8 860A001C */ lh $t2, 0x001C($s0) ## 0000001C
/* 000BC 808891EC 46000506 */ mov.s $f20, $f0
/* 000C0 808891F0 00009025 */ or $s2, $zero, $zero ## $s2 = 00000000
/* 000C4 808891F4 15400008 */ bne $t2, $zero, .L80889218
/* 000C8 808891F8 00009825 */ or $s3, $zero, $zero ## $s3 = 00000000
/* 000CC 808891FC 3C013FC0 */ lui $at, 0x3FC0 ## $at = 3FC00000
/* 000D0 80889200 44811000 */ mtc1 $at, $f2 ## $f2 = 1.50
/* 000D4 80889204 00000000 */ nop
/* 000D8 80889208 4602B582 */ mul.s $f22, $f22, $f2
/* 000DC 8088920C 00000000 */ nop
/* 000E0 80889210 46020502 */ mul.s $f20, $f0, $f2
/* 000E4 80889214 00000000 */ nop
.L80889218:
/* 000E8 80889218 24170002 */ addiu $s7, $zero, 0x0002 ## $s7 = 00000002
/* 000EC 8088921C 27B6009C */ addiu $s6, $sp, 0x009C ## $s6 = FFFFFFEC
/* 000F0 80889220 27B50090 */ addiu $s5, $sp, 0x0090 ## $s5 = FFFFFFE0
/* 000F4 80889224 27B40084 */ addiu $s4, $sp, 0x0084 ## $s4 = FFFFFFD4
/* 000F8 80889228 27B100A8 */ addiu $s1, $sp, 0x00A8 ## $s1 = FFFFFFF8
.L8088922C:
/* 000FC 8088922C 3C0B8089 */ lui $t3, %hi(D_808898A4) ## $t3 = 80890000
/* 00100 80889230 8D6B98A4 */ lw $t3, %lo(D_808898A4)($t3)
/* 00104 80889234 27A30084 */ addiu $v1, $sp, 0x0084 ## $v1 = FFFFFFD4
/* 00108 80889238 026B1021 */ addu $v0, $s3, $t3
/* 0010C 8088923C C44C0018 */ lwc1 $f12, 0x0018($v0) ## 00000018
/* 00110 80889240 2463000C */ addiu $v1, $v1, 0x000C ## $v1 = FFFFFFE0
/* 00114 80889244 C6120008 */ lwc1 $f18, 0x0008($s0) ## 00000008
/* 00118 80889248 46146402 */ mul.s $f16, $f12, $f20
/* 0011C 8088924C 10710019 */ beq $v1, $s1, .L808892B4
/* 00120 80889250 C44E0020 */ lwc1 $f14, 0x0020($v0) ## 00000020
.L80889254:
/* 00124 80889254 46167302 */ mul.s $f12, $f14, $f22
/* 00128 80889258 46109280 */ add.s $f10, $f18, $f16
/* 0012C 8088925C 2463000C */ addiu $v1, $v1, 0x000C ## $v1 = FFFFFFEC
/* 00130 80889260 2442000C */ addiu $v0, $v0, 0x000C ## $v0 = 0000000C
/* 00134 80889264 460A6280 */ add.s $f10, $f12, $f10
/* 00138 80889268 E46AFFE8 */ swc1 $f10, -0x0018($v1) ## FFFFFFD4
/* 0013C 8088926C C44A0010 */ lwc1 $f10, 0x0010($v0) ## 0000001C
/* 00140 80889270 C60C000C */ lwc1 $f12, 0x000C($s0) ## 0000000C
/* 00144 80889274 460C5300 */ add.s $f12, $f10, $f12
/* 00148 80889278 E46CFFEC */ swc1 $f12, -0x0014($v1) ## FFFFFFD8
/* 0014C 8088927C C44C000C */ lwc1 $f12, 0x000C($v0) ## 00000018
/* 00150 80889280 C44A0014 */ lwc1 $f10, 0x0014($v0) ## 00000020
/* 00154 80889284 C6080010 */ lwc1 $f8, 0x0010($s0) ## 00000010
/* 00158 80889288 46166302 */ mul.s $f12, $f12, $f22
/* 0015C 8088928C 460C4301 */ sub.s $f12, $f8, $f12
/* 00160 80889290 46145282 */ mul.s $f10, $f10, $f20
/* 00164 80889294 460C5300 */ add.s $f12, $f10, $f12
/* 00168 80889298 E46CFFF0 */ swc1 $f12, -0x0010($v1) ## FFFFFFDC
/* 0016C 8088929C C44C0018 */ lwc1 $f12, 0x0018($v0) ## 00000024
/* 00170 808892A0 C6120008 */ lwc1 $f18, 0x0008($s0) ## 00000008
/* 00174 808892A4 C44E0020 */ lwc1 $f14, 0x0020($v0) ## 0000002C
/* 00178 808892A8 46146402 */ mul.s $f16, $f12, $f20
/* 0017C 808892AC 1471FFE9 */ bne $v1, $s1, .L80889254
/* 00180 808892B0 00000000 */ nop
.L808892B4:
/* 00184 808892B4 46167302 */ mul.s $f12, $f14, $f22
/* 00188 808892B8 46109280 */ add.s $f10, $f18, $f16
/* 0018C 808892BC 2442000C */ addiu $v0, $v0, 0x000C ## $v0 = 00000018
/* 00190 808892C0 460A6280 */ add.s $f10, $f12, $f10
/* 00194 808892C4 E46AFFF4 */ swc1 $f10, -0x000C($v1) ## FFFFFFE0
/* 00198 808892C8 C60C000C */ lwc1 $f12, 0x000C($s0) ## 0000000C
/* 0019C 808892CC C44A0010 */ lwc1 $f10, 0x0010($v0) ## 00000028
/* 001A0 808892D0 460C5300 */ add.s $f12, $f10, $f12
/* 001A4 808892D4 E46CFFF8 */ swc1 $f12, -0x0008($v1) ## FFFFFFE4
/* 001A8 808892D8 C44C000C */ lwc1 $f12, 0x000C($v0) ## 00000024
/* 001AC 808892DC C44A0014 */ lwc1 $f10, 0x0014($v0) ## 0000002C
/* 001B0 808892E0 C6080010 */ lwc1 $f8, 0x0010($s0) ## 00000010
/* 001B4 808892E4 46166302 */ mul.s $f12, $f12, $f22
/* 001B8 808892E8 460C4301 */ sub.s $f12, $f8, $f12
/* 001BC 808892EC 46145282 */ mul.s $f10, $f10, $f20
/* 001C0 808892F0 460C5300 */ add.s $f12, $f10, $f12
/* 001C4 808892F4 E46CFFFC */ swc1 $f12, -0x0004($v1) ## FFFFFFE8
/* 001C8 808892F8 03C02025 */ or $a0, $s8, $zero ## $a0 = 0000016C
/* 001CC 808892FC 02402825 */ or $a1, $s2, $zero ## $a1 = 00000000
/* 001D0 80889300 02803025 */ or $a2, $s4, $zero ## $a2 = FFFFFFD4
/* 001D4 80889304 02A03825 */ or $a3, $s5, $zero ## $a3 = FFFFFFE0
/* 001D8 80889308 0C0189E8 */ jal Collider_SetTrisVertices
/* 001DC 8088930C AFB60010 */ sw $s6, 0x0010($sp)
/* 001E0 80889310 26520001 */ addiu $s2, $s2, 0x0001 ## $s2 = 00000001
/* 001E4 80889314 1657FFC5 */ bne $s2, $s7, .L8088922C
/* 001E8 80889318 2673003C */ addiu $s3, $s3, 0x003C ## $s3 = 0000003C
/* 001EC 8088931C 8FA400B4 */ lw $a0, 0x00B4($sp)
/* 001F0 80889320 0C00B2D0 */ jal Flags_GetSwitch
/* 001F4 80889324 9205016A */ lbu $a1, 0x016A($s0) ## 0000016A
/* 001F8 80889328 10400021 */ beq $v0, $zero, .L808893B0
/* 001FC 8088932C 3C188089 */ lui $t8, %hi(func_808896B8) ## $t8 = 80890000
/* 00200 80889330 8602001C */ lh $v0, 0x001C($s0) ## 0000001C
/* 00204 80889334 3C0C8089 */ lui $t4, %hi(func_808894A4) ## $t4 = 80890000
/* 00208 80889338 258C94A4 */ addiu $t4, $t4, %lo(func_808894A4) ## $t4 = 808894A4
/* 0020C 8088933C 1440000B */ bne $v0, $zero, .L8088936C
/* 00210 80889340 AE0C0164 */ sw $t4, 0x0164($s0) ## 00000164
/* 00214 80889344 3C01452F */ lui $at, 0x452F ## $at = 452F0000
/* 00218 80889348 44813000 */ mtc1 $at, $f6 ## $f6 = 2800.00
/* 0021C 8088934C C6120028 */ lwc1 $f18, 0x0028($s0) ## 00000028
/* 00220 80889350 3C018089 */ lui $at, %hi(D_808898C0) ## $at = 80890000
/* 00224 80889354 8602001C */ lh $v0, 0x001C($s0) ## 0000001C
/* 00228 80889358 46069201 */ sub.s $f8, $f18, $f6
/* 0022C 8088935C E6080028 */ swc1 $f8, 0x0028($s0) ## 00000028
/* 00230 80889360 C43098C0 */ lwc1 $f16, %lo(D_808898C0)($at)
/* 00234 80889364 1000001E */ beq $zero, $zero, .L808893E0
/* 00238 80889368 E61000F4 */ swc1 $f16, 0x00F4($s0) ## 000000F4
.L8088936C:
/* 0023C 8088936C 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 00240 80889370 14410007 */ bne $v0, $at, .L80889390
/* 00244 80889374 3C014448 */ lui $at, 0x4448 ## $at = 44480000
/* 00248 80889378 44815000 */ mtc1 $at, $f10 ## $f10 = 800.00
/* 0024C 8088937C C6040028 */ lwc1 $f4, 0x0028($s0) ## 00000028
/* 00250 80889380 8602001C */ lh $v0, 0x001C($s0) ## 0000001C
/* 00254 80889384 460A2481 */ sub.s $f18, $f4, $f10
/* 00258 80889388 10000015 */ beq $zero, $zero, .L808893E0
/* 0025C 8088938C E6120028 */ swc1 $f18, 0x0028($s0) ## 00000028
.L80889390:
/* 00260 80889390 16E20013 */ bne $s7, $v0, .L808893E0
/* 00264 80889394 3C014370 */ lui $at, 0x4370 ## $at = 43700000
/* 00268 80889398 C6060028 */ lwc1 $f6, 0x0028($s0) ## 00000028
/* 0026C 8088939C 44814000 */ mtc1 $at, $f8 ## $f8 = 240.00
/* 00270 808893A0 8602001C */ lh $v0, 0x001C($s0) ## 0000001C
/* 00274 808893A4 46083401 */ sub.s $f16, $f6, $f8
/* 00278 808893A8 1000000D */ beq $zero, $zero, .L808893E0
/* 0027C 808893AC E6100028 */ swc1 $f16, 0x0028($s0) ## 00000028
.L808893B0:
/* 00280 808893B0 860D001C */ lh $t5, 0x001C($s0) ## 0000001C
/* 00284 808893B4 271896B8 */ addiu $t8, $t8, %lo(func_808896B8) ## $t8 = 808896B8
/* 00288 808893B8 55A00008 */ bnel $t5, $zero, .L808893DC
/* 0028C 808893BC AE180164 */ sw $t8, 0x0164($s0) ## 00000164
/* 00290 808893C0 8E0E0004 */ lw $t6, 0x0004($s0) ## 00000004
/* 00294 808893C4 3C018089 */ lui $at, %hi(D_808898C4) ## $at = 80890000
/* 00298 808893C8 35CF0030 */ ori $t7, $t6, 0x0030 ## $t7 = 00000030
/* 0029C 808893CC AE0F0004 */ sw $t7, 0x0004($s0) ## 00000004
/* 002A0 808893D0 C42498C4 */ lwc1 $f4, %lo(D_808898C4)($at)
/* 002A4 808893D4 E60400F4 */ swc1 $f4, 0x00F4($s0) ## 000000F4
/* 002A8 808893D8 AE180164 */ sw $t8, 0x0164($s0) ## 00000164
.L808893DC:
/* 002AC 808893DC 8602001C */ lh $v0, 0x001C($s0) ## 0000001C
.L808893E0:
/* 002B0 808893E0 14400007 */ bne $v0, $zero, .L80889400
/* 002B4 808893E4 3C040601 */ lui $a0, 0x0601 ## $a0 = 06010000
/* 002B8 808893E8 3C040601 */ lui $a0, %hi(D_0600D054) ## $a0 = 06010000
/* 002BC 808893EC 2484D054 */ addiu $a0, $a0, %lo(D_0600D054) ## $a0 = 0600D054
/* 002C0 808893F0 0C010620 */ jal CollisionHeader_GetVirtual
/* 002C4 808893F4 27A50070 */ addiu $a1, $sp, 0x0070 ## $a1 = FFFFFFC0
/* 002C8 808893F8 10000005 */ beq $zero, $zero, .L80889410
/* 002CC 808893FC 8FA400B4 */ lw $a0, 0x00B4($sp)
.L80889400:
/* 002D0 80889400 2484D188 */ addiu $a0, $a0, 0xD188 ## $a0 = FFFFD188
/* 002D4 80889404 0C010620 */ jal CollisionHeader_GetVirtual
/* 002D8 80889408 27A50070 */ addiu $a1, $sp, 0x0070 ## $a1 = FFFFFFC0
/* 002DC 8088940C 8FA400B4 */ lw $a0, 0x00B4($sp)
.L80889410:
/* 002E0 80889410 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 002E4 80889414 8FA70070 */ lw $a3, 0x0070($sp)
/* 002E8 80889418 0C00FA9D */ jal DynaPoly_SetBgActor
## DynaPoly_SetBgActor
/* 002EC 8088941C 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810
/* 002F0 80889420 AE02014C */ sw $v0, 0x014C($s0) ## 0000014C
/* 002F4 80889424 8FBF0054 */ lw $ra, 0x0054($sp)
/* 002F8 80889428 8FBE0050 */ lw $s8, 0x0050($sp)
/* 002FC 8088942C 8FB7004C */ lw $s7, 0x004C($sp)
/* 00300 80889430 8FB60048 */ lw $s6, 0x0048($sp)
/* 00304 80889434 8FB50044 */ lw $s5, 0x0044($sp)
/* 00308 80889438 8FB40040 */ lw $s4, 0x0040($sp)
/* 0030C 8088943C 8FB3003C */ lw $s3, 0x003C($sp)
/* 00310 80889440 8FB20038 */ lw $s2, 0x0038($sp)
/* 00314 80889444 8FB10034 */ lw $s1, 0x0034($sp)
/* 00318 80889448 8FB00030 */ lw $s0, 0x0030($sp)
/* 0031C 8088944C D7B60028 */ ldc1 $f22, 0x0028($sp)
/* 00320 80889450 D7B40020 */ ldc1 $f20, 0x0020($sp)
/* 00324 80889454 03E00008 */ jr $ra
/* 00328 80889458 27BD00B0 */ addiu $sp, $sp, 0x00B0 ## $sp = 00000000

View File

@ -1,10 +0,0 @@
glabel BgHidanHrock_Update
/* 00668 80889798 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 0066C 8088979C AFBF0014 */ sw $ra, 0x0014($sp)
/* 00670 808897A0 8C990164 */ lw $t9, 0x0164($a0) ## 00000164
/* 00674 808897A4 0320F809 */ jalr $ra, $t9
/* 00678 808897A8 00000000 */ nop
/* 0067C 808897AC 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00680 808897B0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00684 808897B4 03E00008 */ jr $ra
/* 00688 808897B8 00000000 */ nop

View File

@ -1,4 +0,0 @@
glabel func_808894A4
/* 00374 808894A4 AFA40000 */ sw $a0, 0x0000($sp)
/* 00378 808894A8 03E00008 */ jr $ra
/* 0037C 808894AC AFA50004 */ sw $a1, 0x0004($sp)

View File

@ -1,98 +0,0 @@
glabel func_808894B0
/* 00380 808894B0 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00384 808894B4 AFBF001C */ sw $ra, 0x001C($sp)
/* 00388 808894B8 AFB00018 */ sw $s0, 0x0018($sp)
/* 0038C 808894BC AFA50024 */ sw $a1, 0x0024($sp)
/* 00390 808894C0 84820168 */ lh $v0, 0x0168($a0) ## 00000168
/* 00394 808894C4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00398 808894C8 10400003 */ beq $v0, $zero, .L808894D8
/* 0039C 808894CC 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
/* 003A0 808894D0 A48E0168 */ sh $t6, 0x0168($a0) ## 00000168
/* 003A4 808894D4 84820168 */ lh $v0, 0x0168($a0) ## 00000168
.L808894D8:
/* 003A8 808894D8 860F0032 */ lh $t7, 0x0032($s0) ## 00000032
/* 003AC 808894DC 0002C380 */ sll $t8, $v0, 14
/* 003B0 808894E0 01F82021 */ addu $a0, $t7, $t8
/* 003B4 808894E4 00042400 */ sll $a0, $a0, 16
/* 003B8 808894E8 0C01DE1C */ jal Math_SinS
## sins?
/* 003BC 808894EC 00042403 */ sra $a0, $a0, 16
/* 003C0 808894F0 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 003C4 808894F4 44812000 */ mtc1 $at, $f4 ## $f4 = 5.00
/* 003C8 808894F8 C6080008 */ lwc1 $f8, 0x0008($s0) ## 00000008
/* 003CC 808894FC 86080168 */ lh $t0, 0x0168($s0) ## 00000168
/* 003D0 80889500 46040182 */ mul.s $f6, $f0, $f4
/* 003D4 80889504 86190032 */ lh $t9, 0x0032($s0) ## 00000032
/* 003D8 80889508 00084B80 */ sll $t1, $t0, 14
/* 003DC 8088950C 03292021 */ addu $a0, $t9, $t1
/* 003E0 80889510 00042400 */ sll $a0, $a0, 16
/* 003E4 80889514 00042403 */ sra $a0, $a0, 16
/* 003E8 80889518 46083280 */ add.s $f10, $f6, $f8
/* 003EC 8088951C 0C01DE0D */ jal Math_CosS
## coss?
/* 003F0 80889520 E60A0024 */ swc1 $f10, 0x0024($s0) ## 00000024
/* 003F4 80889524 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 003F8 80889528 44818000 */ mtc1 $at, $f16 ## $f16 = 5.00
/* 003FC 8088952C C6040010 */ lwc1 $f4, 0x0010($s0) ## 00000010
/* 00400 80889530 86020168 */ lh $v0, 0x0168($s0) ## 00000168
/* 00404 80889534 46100482 */ mul.s $f18, $f0, $f16
/* 00408 80889538 240500B4 */ addiu $a1, $zero, 0x00B4 ## $a1 = 000000B4
/* 0040C 8088953C 2406000A */ addiu $a2, $zero, 0x000A ## $a2 = 0000000A
/* 00410 80889540 24070064 */ addiu $a3, $zero, 0x0064 ## $a3 = 00000064
/* 00414 80889544 46049180 */ add.s $f6, $f18, $f4
/* 00418 80889548 E606002C */ swc1 $f6, 0x002C($s0) ## 0000002C
/* 0041C 8088954C 04410004 */ bgez $v0, .L80889560
/* 00420 80889550 304A0003 */ andi $t2, $v0, 0x0003 ## $t2 = 00000000
/* 00424 80889554 11400002 */ beq $t2, $zero, .L80889560
/* 00428 80889558 00000000 */ nop
/* 0042C 8088955C 254AFFFC */ addiu $t2, $t2, 0xFFFC ## $t2 = FFFFFFFC
.L80889560:
/* 00430 80889560 15400007 */ bne $t2, $zero, .L80889580
/* 00434 80889564 00000000 */ nop
/* 00438 80889568 0C02A800 */ jal func_800AA000
/* 0043C 8088956C C60C008C */ lwc1 $f12, 0x008C($s0) ## 0000008C
/* 00440 80889570 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00444 80889574 0C00BE0A */ jal Audio_PlayActorSound2
/* 00448 80889578 24052838 */ addiu $a1, $zero, 0x2838 ## $a1 = 00002838
/* 0044C 8088957C 86020168 */ lh $v0, 0x0168($s0) ## 00000168
.L80889580:
/* 00450 80889580 1440001D */ bne $v0, $zero, .L808895F8
/* 00454 80889584 3C0B8089 */ lui $t3, %hi(func_8088960C) ## $t3 = 80890000
/* 00458 80889588 8602001C */ lh $v0, 0x001C($s0) ## 0000001C
/* 0045C 8088958C 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 00460 80889590 256B960C */ addiu $t3, $t3, %lo(func_8088960C) ## $t3 = 8088960C
/* 00464 80889594 14400007 */ bne $v0, $zero, .L808895B4
/* 00468 80889598 00000000 */ nop
/* 0046C 8088959C 3C01452F */ lui $at, 0x452F ## $at = 452F0000
/* 00470 808895A0 44815000 */ mtc1 $at, $f10 ## $f10 = 2800.00
/* 00474 808895A4 C608000C */ lwc1 $f8, 0x000C($s0) ## 0000000C
/* 00478 808895A8 460A4401 */ sub.s $f16, $f8, $f10
/* 0047C 808895AC 1000000D */ beq $zero, $zero, .L808895E4
/* 00480 808895B0 E610000C */ swc1 $f16, 0x000C($s0) ## 0000000C
.L808895B4:
/* 00484 808895B4 14410006 */ bne $v0, $at, .L808895D0
/* 00488 808895B8 3C014448 */ lui $at, 0x4448 ## $at = 44480000
/* 0048C 808895BC 44812000 */ mtc1 $at, $f4 ## $f4 = 800.00
/* 00490 808895C0 C612000C */ lwc1 $f18, 0x000C($s0) ## 0000000C
/* 00494 808895C4 46049181 */ sub.s $f6, $f18, $f4
/* 00498 808895C8 10000006 */ beq $zero, $zero, .L808895E4
/* 0049C 808895CC E606000C */ swc1 $f6, 0x000C($s0) ## 0000000C
.L808895D0:
/* 004A0 808895D0 3C014370 */ lui $at, 0x4370 ## $at = 43700000
/* 004A4 808895D4 44815000 */ mtc1 $at, $f10 ## $f10 = 240.00
/* 004A8 808895D8 C608000C */ lwc1 $f8, 0x000C($s0) ## 0000000C
/* 004AC 808895DC 460A4401 */ sub.s $f16, $f8, $f10
/* 004B0 808895E0 E610000C */ swc1 $f16, 0x000C($s0) ## 0000000C
.L808895E4:
/* 004B4 808895E4 C6120008 */ lwc1 $f18, 0x0008($s0) ## 00000008
/* 004B8 808895E8 C6040010 */ lwc1 $f4, 0x0010($s0) ## 00000010
/* 004BC 808895EC AE0B0164 */ sw $t3, 0x0164($s0) ## 00000164
/* 004C0 808895F0 E6120024 */ swc1 $f18, 0x0024($s0) ## 00000024
/* 004C4 808895F4 E604002C */ swc1 $f4, 0x002C($s0) ## 0000002C
.L808895F8:
/* 004C8 808895F8 8FBF001C */ lw $ra, 0x001C($sp)
/* 004CC 808895FC 8FB00018 */ lw $s0, 0x0018($sp)
/* 004D0 80889600 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 004D4 80889604 03E00008 */ jr $ra
/* 004D8 80889608 00000000 */ nop

View File

@ -1,50 +0,0 @@
glabel func_8088960C
/* 004DC 8088960C 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 004E0 80889610 AFBF001C */ sw $ra, 0x001C($sp)
/* 004E4 80889614 AFB00018 */ sw $s0, 0x0018($sp)
/* 004E8 80889618 AFA50024 */ sw $a1, 0x0024($sp)
/* 004EC 8088961C 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 004F0 80889620 44813000 */ mtc1 $at, $f6 ## $f6 = 1.00
/* 004F4 80889624 C4840060 */ lwc1 $f4, 0x0060($a0) ## 00000060
/* 004F8 80889628 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 004FC 8088962C 24840028 */ addiu $a0, $a0, 0x0028 ## $a0 = 00000028
/* 00500 80889630 46062200 */ add.s $f8, $f4, $f6
/* 00504 80889634 E4880038 */ swc1 $f8, 0x0038($a0) ## 00000060
/* 00508 80889638 8E060060 */ lw $a2, 0x0060($s0) ## 00000060
/* 0050C 8088963C 0C01DE80 */ jal Math_StepToF
/* 00510 80889640 8E05000C */ lw $a1, 0x000C($s0) ## 0000000C
/* 00514 80889644 10400017 */ beq $v0, $zero, .L808896A4
/* 00518 80889648 2401FFCF */ addiu $at, $zero, 0xFFCF ## $at = FFFFFFCF
/* 0051C 8088964C 8E0E0004 */ lw $t6, 0x0004($s0) ## 00000004
/* 00520 80889650 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00524 80889654 24052835 */ addiu $a1, $zero, 0x2835 ## $a1 = 00002835
/* 00528 80889658 01C17824 */ and $t7, $t6, $at
/* 0052C 8088965C 0C00BE0A */ jal Audio_PlayActorSound2
/* 00530 80889660 AE0F0004 */ sw $t7, 0x0004($s0) ## 00000004
/* 00534 80889664 8618001C */ lh $t8, 0x001C($s0) ## 0000001C
/* 00538 80889668 8FB90024 */ lw $t9, 0x0024($sp)
/* 0053C 8088966C 3C080001 */ lui $t0, 0x0001 ## $t0 = 00010000
/* 00540 80889670 17000009 */ bne $t8, $zero, .L80889698
/* 00544 80889674 01194021 */ addu $t0, $t0, $t9
/* 00548 80889678 81081CBC */ lb $t0, 0x1CBC($t0) ## 00011CBC
/* 0054C 8088967C 2402000A */ addiu $v0, $zero, 0x000A ## $v0 = 0000000A
/* 00550 80889680 14480003 */ bne $v0, $t0, .L80889690
/* 00554 80889684 00000000 */ nop
/* 00558 80889688 10000003 */ beq $zero, $zero, .L80889698
/* 0055C 8088968C A2020003 */ sb $v0, 0x0003($s0) ## 00000003
.L80889690:
/* 00560 80889690 0C00B55C */ jal Actor_Kill
/* 00564 80889694 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80889698:
/* 00568 80889698 3C098089 */ lui $t1, %hi(func_808894A4) ## $t1 = 80890000
/* 0056C 8088969C 252994A4 */ addiu $t1, $t1, %lo(func_808894A4) ## $t1 = 808894A4
/* 00570 808896A0 AE090164 */ sw $t1, 0x0164($s0) ## 00000164
.L808896A4:
/* 00574 808896A4 8FBF001C */ lw $ra, 0x001C($sp)
/* 00578 808896A8 8FB00018 */ lw $s0, 0x0018($sp)
/* 0057C 808896AC 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00580 808896B0 03E00008 */ jr $ra
/* 00584 808896B4 00000000 */ nop

View File

@ -1,66 +0,0 @@
glabel func_808896B8
/* 00588 808896B8 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 0058C 808896BC AFBF001C */ sw $ra, 0x001C($sp)
/* 00590 808896C0 AFB00018 */ sw $s0, 0x0018($sp)
/* 00594 808896C4 9082017D */ lbu $v0, 0x017D($a0) ## 0000017D
/* 00598 808896C8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0059C 808896CC 00A03825 */ or $a3, $a1, $zero ## $a3 = 00000000
/* 005A0 808896D0 304E0002 */ andi $t6, $v0, 0x0002 ## $t6 = 00000000
/* 005A4 808896D4 11C00014 */ beq $t6, $zero, .L80889728
/* 005A8 808896D8 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 005AC 808896DC 8C990004 */ lw $t9, 0x0004($a0) ## 00000004
/* 005B0 808896E0 8489001C */ lh $t1, 0x001C($a0) ## 0000001C
/* 005B4 808896E4 3C188089 */ lui $t8, %hi(func_808894B0) ## $t8 = 80890000
/* 005B8 808896E8 304FFFFD */ andi $t7, $v0, 0xFFFD ## $t7 = 00000000
/* 005BC 808896EC 271894B0 */ addiu $t8, $t8, %lo(func_808894B0) ## $t8 = 808894B0
/* 005C0 808896F0 37280010 */ ori $t0, $t9, 0x0010 ## $t0 = 00000010
/* 005C4 808896F4 A08F017D */ sb $t7, 0x017D($a0) ## 0000017D
/* 005C8 808896F8 AC980164 */ sw $t8, 0x0164($a0) ## 00000164
/* 005CC 808896FC 15200003 */ bne $t1, $zero, .L8088970C
/* 005D0 80889700 AC880004 */ sw $t0, 0x0004($a0) ## 00000004
/* 005D4 80889704 240AFFFF */ addiu $t2, $zero, 0xFFFF ## $t2 = FFFFFFFF
/* 005D8 80889708 A08A0003 */ sb $t2, 0x0003($a0) ## 00000003
.L8088970C:
/* 005DC 8088970C 240B0014 */ addiu $t3, $zero, 0x0014 ## $t3 = 00000014
/* 005E0 80889710 A60B0168 */ sh $t3, 0x0168($s0) ## 00000168
/* 005E4 80889714 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 005E8 80889718 0C00B2DD */ jal Flags_SetSwitch
/* 005EC 8088971C 9205016A */ lbu $a1, 0x016A($s0) ## 0000016A
/* 005F0 80889720 10000006 */ beq $zero, $zero, .L8088973C
/* 005F4 80889724 00000000 */ nop
.L80889728:
/* 005F8 80889728 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00001E60
/* 005FC 8088972C 00E12821 */ addu $a1, $a3, $at
/* 00600 80889730 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 00604 80889734 0C01767D */ jal CollisionCheck_SetAC
## CollisionCheck_setAC
/* 00608 80889738 2606016C */ addiu $a2, $s0, 0x016C ## $a2 = 0000016C
.L8088973C:
/* 0060C 8088973C 0C010D5B */ jal func_8004356C
/* 00610 80889740 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00614 80889744 1040000C */ beq $v0, $zero, .L80889778
/* 00618 80889748 26040028 */ addiu $a0, $s0, 0x0028 ## $a0 = 00000028
/* 0061C 8088974C 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 00620 80889750 44813000 */ mtc1 $at, $f6 ## $f6 = 5.00
/* 00624 80889754 C604000C */ lwc1 $f4, 0x000C($s0) ## 0000000C
/* 00628 80889758 26040028 */ addiu $a0, $s0, 0x0028 ## $a0 = 00000028
/* 0062C 8088975C 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 00630 80889760 46062201 */ sub.s $f8, $f4, $f6
/* 00634 80889764 44054000 */ mfc1 $a1, $f8
/* 00638 80889768 0C01DE80 */ jal Math_StepToF
/* 0063C 8088976C 00000000 */ nop
/* 00640 80889770 10000005 */ beq $zero, $zero, .L80889788
/* 00644 80889774 8FBF001C */ lw $ra, 0x001C($sp)
.L80889778:
/* 00648 80889778 8E05000C */ lw $a1, 0x000C($s0) ## 0000000C
/* 0064C 8088977C 0C01DE80 */ jal Math_StepToF
/* 00650 80889780 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 00654 80889784 8FBF001C */ lw $ra, 0x001C($sp)
.L80889788:
/* 00658 80889788 8FB00018 */ lw $s0, 0x0018($sp)
/* 0065C 8088978C 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00660 80889790 03E00008 */ jr $ra
/* 00664 80889794 00000000 */ nop

View File

@ -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_Hidan_Hrock_InitVars
.word 0x00410100, 0x00000000, 0x002C0000, 0x00000244
.word BgHidanHrock_Init
.word BgHidanHrock_Destroy
.word BgHidanHrock_Update
.word BgHidanHrock_Draw
glabel D_80889820
.word 0x00000000, 0x00000000, 0x00000000, 0x40000040, 0x00000000, 0x00790000, 0xC2200000, 0x40400000, 0xC2200000, 0xC2200000, 0x40400000, 0x42200000, 0x42200000, 0x40400000, 0x42200000, 0x00000000, 0x00000000, 0x00000000, 0x40000040, 0x00000000, 0x00790000, 0x42200000, 0x40400000, 0x42200000, 0x42200000, 0x40400000, 0xC2200000, 0xC2200000, 0x40400000, 0xC2200000
glabel D_80889898
.word 0x0A000900, 0x20020000, 0x00000002
glabel D_808898A4
.word D_80889820
glabel D_808898A8
.word 0xC8500064, 0x306CFFFF
glabel D_808898B0
.word 0x0600A240, 0x0600C838, 0x0600C838, 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_808898D0
.incbin "baserom/ovl_Bg_Hidan_Hrock", 0x7A0, 0x00000090

3
spec
View File

@ -830,8 +830,7 @@ endseg
beginseg
name "ovl_Bg_Hidan_Hrock"
include "build/src/overlays/actors/ovl_Bg_Hidan_Hrock/z_bg_hidan_hrock.o"
include "build/data/overlays/actors/z_bg_hidan_hrock.data.o"
include "build/data/overlays/actors/z_bg_hidan_hrock.reloc.o"
include "build/src/overlays/actors/ovl_Bg_Hidan_Hrock/ovl_Bg_Hidan_Hrock_reloc.o"
endseg
beginseg

View File

@ -15,9 +15,13 @@ void BgHidanHrock_Destroy(Actor* thisx, GlobalContext* globalCtx);
void BgHidanHrock_Update(Actor* thisx, GlobalContext* globalCtx);
void BgHidanHrock_Draw(Actor* thisx, GlobalContext* globalCtx);
extern UNK_TYPE D_0600D054;
void func_8088960C(BgHidanHrock* this, GlobalContext* globalCtx);
void func_808896B8(BgHidanHrock* this, GlobalContext* globalCtx);
void func_808894A4(BgHidanHrock* this, GlobalContext* globalCtx);
extern UNK_TYPE D_0600D054;
extern UNK_TYPE D_0600D188;
/*
const ActorInit Bg_Hidan_Hrock_InitVars = {
ACTOR_BG_HIDAN_HROCK,
ACTORCAT_BG,
@ -30,7 +34,7 @@ const ActorInit Bg_Hidan_Hrock_InitVars = {
(ActorFunc)BgHidanHrock_Draw,
};
static ColliderTrisElementInit D_80889820[2] = {
static ColliderTrisElementInit sTrisElementsInit[2] = {
{
{
ELEMTYPE_UNK0,
@ -55,7 +59,7 @@ static ColliderTrisElementInit D_80889820[2] = {
},
};
static ColliderTrisInit D_80889898 = {
static ColliderTrisInit sTrisInit = {
{
COLTYPE_NONE,
AT_NONE,
@ -65,21 +69,171 @@ static ColliderTrisInit D_80889898 = {
COLSHAPE_TRIS,
},
2,
D_80889820,
sTrisElementsInit,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Hrock/BgHidanHrock_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Hrock/BgHidanHrock_Destroy.s")
static InitChainEntry sInitChain[] = {
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE),
ICHAIN_F32(gravity, -1, ICHAIN_STOP),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Hrock/func_808894A4.s")
void BgHidanHrock_Init(Actor* thisx, GlobalContext* globalCtx) {
BgHidanHrock* this = THIS;
ColliderTrisElementInit* colliderElementInit;
Vec3f vertices[3];
f32 cosRotY;
f32 sinRotY;
s32 i;
s32 j;
CollisionHeader* collisionHeader = NULL;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Hrock/func_808894B0.s")
Actor_ProcessInitChain(thisx, sInitChain);
this->unk_16A = thisx->params & 0x3F;
thisx->params = (thisx->params >> 8) & 0xFF;
Collider_InitTris(globalCtx, &this->collider);
Collider_SetTris(globalCtx, &this->collider, thisx, &sTrisInit, this->colliderItems);
DynaPolyActor_Init(&this->dyna, DPM_UNK);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Hrock/func_8088960C.s")
sinRotY = Math_SinS(thisx->shape.rot.y);
cosRotY = Math_CosS(thisx->shape.rot.y);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Hrock/func_808896B8.s")
if (thisx->params == 0) {
sinRotY *= 1.5f;
cosRotY *= 1.5f;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Hrock/BgHidanHrock_Update.s")
for (i = 0; i < 2; i++) {
colliderElementInit = &sTrisInit.elements[i];
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Hrock/BgHidanHrock_Draw.s")
if (1) {
for (j = 0; j < 3; j++) {
Vec3f* vtx = &colliderElementInit->dim.vtx[j];
vertices[j].x = vtx->z * sinRotY + (thisx->home.pos.x + vtx->x * cosRotY);
vertices[j].y = vtx->y + thisx->home.pos.y;
vertices[j].z = vtx->z * cosRotY + (thisx->home.pos.z - vtx->x * sinRotY);
}
}
Collider_SetTrisVertices(&this->collider, i, &vertices[0], &vertices[1], &vertices[2]);
}
if (Flags_GetSwitch(globalCtx, this->unk_16A)) {
this->actionFunc = func_808894A4;
if (thisx->params == 0) {
thisx->world.pos.y -= 2800.0f;
thisx->uncullZoneForward = 3000.0f;
} else if (thisx->params == 1) {
thisx->world.pos.y -= 800.0f;
} else if (thisx->params == 2) {
thisx->world.pos.y -= 240.0f;
}
} else {
if (thisx->params == 0) {
thisx->flags |= 0x30;
thisx->uncullZoneForward = 3000.0f;
}
this->actionFunc = func_808896B8;
}
if (thisx->params == 0) {
CollisionHeader_GetVirtual(&D_0600D054, &collisionHeader);
} else {
CollisionHeader_GetVirtual(&D_0600D188, &collisionHeader);
}
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, thisx, collisionHeader);
}
void BgHidanHrock_Destroy(Actor* thisx, GlobalContext* globalCtx) {
BgHidanHrock* this = THIS;
DynaPoly_DeleteBgActor(globalCtx, &globalCtx->colCtx.dyna, this->dyna.bgId);
Collider_DestroyTris(globalCtx, &this->collider);
}
void func_808894A4(BgHidanHrock* this, GlobalContext* globalCtx) {
}
void func_808894B0(BgHidanHrock* this, GlobalContext* globalCtx) {
if (this->unk_168 != 0) {
this->unk_168--;
}
this->dyna.actor.world.pos.x =
(Math_SinS(this->dyna.actor.world.rot.y + (this->unk_168 << 0xE)) * 5.0f) + this->dyna.actor.home.pos.x;
this->dyna.actor.world.pos.z =
(Math_CosS(this->dyna.actor.world.rot.y + (this->unk_168 << 0xE)) * 5.0f) + this->dyna.actor.home.pos.z;
if (!(this->unk_168 % 4)) {
func_800AA000(this->dyna.actor.xyzDistToPlayerSq, 180, 10, 100);
Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_BLOCK_SHAKE);
}
if (this->unk_168 == 0) {
if (this->dyna.actor.params == 0) {
this->dyna.actor.home.pos.y -= 2800.0f;
} else if (this->dyna.actor.params == 1) {
this->dyna.actor.home.pos.y -= 800.0f;
} else {
this->dyna.actor.home.pos.y -= 240.0f;
}
this->actionFunc = func_8088960C;
this->dyna.actor.world.pos.x = this->dyna.actor.home.pos.x;
this->dyna.actor.world.pos.z = this->dyna.actor.home.pos.z;
}
}
void func_8088960C(BgHidanHrock* this, GlobalContext* globalCtx) {
this->dyna.actor.velocity.y++;
if (Math_StepToF(&this->dyna.actor.world.pos.y, this->dyna.actor.home.pos.y, this->dyna.actor.velocity.y)) {
this->dyna.actor.flags &= ~0x30;
Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_BLOCK_BOUND);
if (this->dyna.actor.params == 0) {
if (globalCtx->roomCtx.curRoom.num == 10) {
this->dyna.actor.room = 10;
} else {
Actor_Kill(&this->dyna.actor);
}
}
this->actionFunc = func_808894A4;
}
}
void func_808896B8(BgHidanHrock* this, GlobalContext* globalCtx) {
if (this->collider.base.acFlags & 2) {
this->collider.base.acFlags &= ~2;
this->actionFunc = func_808894B0;
this->dyna.actor.flags |= 0x10;
if (this->dyna.actor.params == 0) {
this->dyna.actor.room = -1;
}
this->unk_168 = 20;
Flags_SetSwitch(globalCtx, this->unk_16A);
} else {
CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
}
if (func_8004356C(&this->dyna)) {
Math_StepToF(&this->dyna.actor.world.pos.y, this->dyna.actor.home.pos.y - 5.0f, 1.0f);
} else {
Math_StepToF(&this->dyna.actor.world.pos.y, this->dyna.actor.home.pos.y, 1.0f);
}
}
void BgHidanHrock_Update(Actor* thisx, GlobalContext* globalCtx) {
BgHidanHrock* this = THIS;
this->actionFunc(this, globalCtx);
}
void BgHidanHrock_Draw(Actor* thisx, GlobalContext* globalCtx) {
static Gfx* dlists[] = { 0x0600A240, 0x0600C838, 0x0600C838 };
Gfx_DrawDListOpa(globalCtx, dlists[thisx->params]);
}

View File

@ -6,9 +6,15 @@
struct BgHidanHrock;
typedef void (*BgHidanHrockActionFunc)(struct BgHidanHrock*, GlobalContext*);
typedef struct BgHidanHrock {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0xF8];
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ BgHidanHrockActionFunc actionFunc;
/* 0x0168 */ s16 unk_168;
/* 0x016A */ u8 unk_16A;
/* 0x016C */ ColliderTris collider;
/* 0x018C */ ColliderTrisElement colliderItems[2];
} BgHidanHrock; // size = 0x0244
extern const ActorInit Bg_Hidan_Hrock_InitVars;

View File

@ -1598,6 +1598,7 @@ D_0600DD1C = 0x0600DD1C;
// z_bg_hidan_hrock
D_0600D054 = 0x0600D054;
D_0600D188 = 0x0600D188;
// z_bg_hidan_kowarerukabe
D_05000530 = 0x05000530;