1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-12-25 22:26:12 +00:00

ovl_Bg_Hidan_Dalm OK (#367)

* ovl_Bg_Hidan_Dalm OK, except _Init

* names and style changes

* OK, names, style
This commit is contained in:
Dragorn421 2020-09-07 14:29:58 +02:00 committed by GitHub
parent eef2a005b5
commit 507edd134e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 172 additions and 521 deletions

View file

@ -1,20 +0,0 @@
glabel BgHidanDalm_Destroy
/* 000E4 80885F04 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 000E8 80885F08 AFA40018 */ sw $a0, 0x0018($sp)
/* 000EC 80885F0C 8FAE0018 */ lw $t6, 0x0018($sp)
/* 000F0 80885F10 AFBF0014 */ sw $ra, 0x0014($sp)
/* 000F4 80885F14 00A03825 */ or $a3, $a1, $zero ## $a3 = 00000000
/* 000F8 80885F18 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 000FC 80885F1C 8DC6014C */ lw $a2, 0x014C($t6) ## 0000014C
/* 00100 80885F20 AFA7001C */ sw $a3, 0x001C($sp)
/* 00104 80885F24 0C00FB56 */ jal DynaPolyInfo_Free
## DynaPolyInfo_delReserve
/* 00108 80885F28 24A50810 */ addiu $a1, $a1, 0x0810 ## $a1 = 00000810
/* 0010C 80885F2C 8FA50018 */ lw $a1, 0x0018($sp)
/* 00110 80885F30 8FA4001C */ lw $a0, 0x001C($sp)
/* 00114 80885F34 0C017232 */ jal Collider_DestroyTris
/* 00118 80885F38 24A5016C */ addiu $a1, $a1, 0x016C ## $a1 = 0000016C
/* 0011C 80885F3C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00120 80885F40 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00124 80885F44 03E00008 */ jr $ra
/* 00128 80885F48 00000000 */ nop

View file

@ -1,37 +0,0 @@
glabel BgHidanDalm_Draw
/* 005E4 80886404 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 005E8 80886408 AFBF0014 */ sw $ra, 0x0014($sp)
/* 005EC 8088640C 848E001C */ lh $t6, 0x001C($a0) ## 0000001C
/* 005F0 80886410 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 005F4 80886414 00A03825 */ or $a3, $a1, $zero ## $a3 = 00000000
/* 005F8 80886418 15C00008 */ bne $t6, $zero, .L8088643C
/* 005FC 8088641C 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 00600 80886420 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00604 80886424 3C050601 */ lui $a1, 0x0601 ## $a1 = 06010000
/* 00608 80886428 24A5BBF0 */ addiu $a1, $a1, 0xBBF0 ## $a1 = 0600BBF0
/* 0060C 8088642C 0C00D498 */ jal Gfx_DrawDListOpa
/* 00610 80886430 AFA60018 */ sw $a2, 0x0018($sp)
/* 00614 80886434 10000006 */ beq $zero, $zero, .L80886450
/* 00618 80886438 8FA60018 */ lw $a2, 0x0018($sp)
.L8088643C:
/* 0061C 8088643C 3C050601 */ lui $a1, 0x0601 ## $a1 = 06010000
/* 00620 80886440 24A5BDF0 */ addiu $a1, $a1, 0xBDF0 ## $a1 = 0600BDF0
/* 00624 80886444 0C00D498 */ jal Gfx_DrawDListOpa
/* 00628 80886448 AFA60018 */ sw $a2, 0x0018($sp)
/* 0062C 8088644C 8FA60018 */ lw $a2, 0x0018($sp)
.L80886450:
/* 00630 80886450 8CD80164 */ lw $t8, 0x0164($a2) ## 00000164
/* 00634 80886454 3C0F8088 */ lui $t7, %hi(func_80885F4C) ## $t7 = 80880000
/* 00638 80886458 25EF5F4C */ addiu $t7, $t7, %lo(func_80885F4C) ## $t7 = 80885F4C
/* 0063C 8088645C 55F80004 */ bnel $t7, $t8, .L80886470
/* 00640 80886460 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00644 80886464 0C2218B6 */ jal func_808862D8
/* 00648 80886468 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 0064C 8088646C 8FBF0014 */ lw $ra, 0x0014($sp)
.L80886470:
/* 00650 80886470 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00654 80886474 03E00008 */ jr $ra
/* 00658 80886478 00000000 */ nop
/* 0065C 8088647C 00000000 */ nop

View file

@ -1,66 +0,0 @@
glabel BgHidanDalm_Init
/* 00000 80885E20 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 00004 80885E24 AFB10020 */ sw $s1, 0x0020($sp)
/* 00008 80885E28 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 0000C 80885E2C AFBF0024 */ sw $ra, 0x0024($sp)
/* 00010 80885E30 AFB0001C */ sw $s0, 0x001C($sp)
/* 00014 80885E34 3C058088 */ lui $a1, %hi(D_808865A0) ## $a1 = 80880000
/* 00018 80885E38 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0001C 80885E3C AFA0002C */ sw $zero, 0x002C($sp)
/* 00020 80885E40 0C01E037 */ jal Actor_ProcessInitChain
/* 00024 80885E44 24A565A0 */ addiu $a1, $a1, %lo(D_808865A0) ## $a1 = 808865A0
/* 00028 80885E48 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0002C 80885E4C 0C010D20 */ jal DynaPolyInfo_SetActorMove
/* 00030 80885E50 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00034 80885E54 3C040601 */ lui $a0, 0x0601 ## $a0 = 06010000
/* 00038 80885E58 2484DA10 */ addiu $a0, $a0, 0xDA10 ## $a0 = 0600DA10
/* 0003C 80885E5C 0C010620 */ jal DynaPolyInfo_Alloc
/* 00040 80885E60 27A5002C */ addiu $a1, $sp, 0x002C ## $a1 = FFFFFFF4
/* 00044 80885E64 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00048 80885E68 26250810 */ addiu $a1, $s1, 0x0810 ## $a1 = 00000810
/* 0004C 80885E6C 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 00050 80885E70 0C00FA9D */ jal DynaPolyInfo_RegisterActor
## DynaPolyInfo_setActor
/* 00054 80885E74 8FA7002C */ lw $a3, 0x002C($sp)
/* 00058 80885E78 AE02014C */ sw $v0, 0x014C($s0) ## 0000014C
/* 0005C 80885E7C 2605016C */ addiu $a1, $s0, 0x016C ## $a1 = 0000016C
/* 00060 80885E80 AFA50028 */ sw $a1, 0x0028($sp)
/* 00064 80885E84 0C0171F8 */ jal Collider_InitTris
/* 00068 80885E88 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 0006C 80885E8C 3C078088 */ lui $a3, %hi(D_80886590) ## $a3 = 80880000
/* 00070 80885E90 260E018C */ addiu $t6, $s0, 0x018C ## $t6 = 0000018C
/* 00074 80885E94 8FA50028 */ lw $a1, 0x0028($sp)
/* 00078 80885E98 AFAE0010 */ sw $t6, 0x0010($sp)
/* 0007C 80885E9C 24E76590 */ addiu $a3, $a3, %lo(D_80886590) ## $a3 = 80886590
/* 00080 80885EA0 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00084 80885EA4 0C0172EB */ jal Collider_SetTris
/* 00088 80885EA8 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 0008C 80885EAC 860F001C */ lh $t7, 0x001C($s0) ## 0000001C
/* 00090 80885EB0 8608001C */ lh $t0, 0x001C($s0) ## 0000001C
/* 00094 80885EB4 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00098 80885EB8 000FCA03 */ sra $t9, $t7, 8
/* 0009C 80885EBC 310900FF */ andi $t1, $t0, 0x00FF ## $t1 = 00000000
/* 000A0 80885EC0 A2190168 */ sb $t9, 0x0168($s0) ## 00000168
/* 000A4 80885EC4 A609001C */ sh $t1, 0x001C($s0) ## 0000001C
/* 000A8 80885EC8 0C00B2D0 */ jal Flags_GetSwitch
/* 000AC 80885ECC 332500FF */ andi $a1, $t9, 0x00FF ## $a1 = 00000000
/* 000B0 80885ED0 10400005 */ beq $v0, $zero, .L80885EE8
/* 000B4 80885ED4 3C0A8088 */ lui $t2, %hi(func_80885F4C) ## $t2 = 80880000
/* 000B8 80885ED8 0C00B55C */ jal Actor_Kill
/* 000BC 80885EDC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 000C0 80885EE0 10000004 */ beq $zero, $zero, .L80885EF4
/* 000C4 80885EE4 8FBF0024 */ lw $ra, 0x0024($sp)
.L80885EE8:
/* 000C8 80885EE8 254A5F4C */ addiu $t2, $t2, %lo(func_80885F4C) ## $t2 = 00005F4C
/* 000CC 80885EEC AE0A0164 */ sw $t2, 0x0164($s0) ## 00000164
/* 000D0 80885EF0 8FBF0024 */ lw $ra, 0x0024($sp)
.L80885EF4:
/* 000D4 80885EF4 8FB0001C */ lw $s0, 0x001C($sp)
/* 000D8 80885EF8 8FB10020 */ lw $s1, 0x0020($sp)
/* 000DC 80885EFC 03E00008 */ jr $ra
/* 000E0 80885F00 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000

View file

@ -1,25 +0,0 @@
glabel BgHidanDalm_Update
/* 0045C 8088627C 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00460 80886280 AFBF001C */ sw $ra, 0x001C($sp)
/* 00464 80886284 AFA50024 */ sw $a1, 0x0024($sp)
/* 00468 80886288 AFA40020 */ sw $a0, 0x0020($sp)
/* 0046C 8088628C 8C990164 */ lw $t9, 0x0164($a0) ## 00000164
/* 00470 80886290 0320F809 */ jalr $ra, $t9
/* 00474 80886294 00000000 */ nop
/* 00478 80886298 0C00B638 */ jal Actor_MoveForward
/* 0047C 8088629C 8FA40020 */ lw $a0, 0x0020($sp)
/* 00480 808862A0 3C014200 */ lui $at, 0x4200 ## $at = 42000000
/* 00484 808862A4 44812000 */ mtc1 $at, $f4 ## $f4 = 32.00
/* 00488 808862A8 240E0005 */ addiu $t6, $zero, 0x0005 ## $t6 = 00000005
/* 0048C 808862AC AFAE0014 */ sw $t6, 0x0014($sp)
/* 00490 808862B0 8FA40024 */ lw $a0, 0x0024($sp)
/* 00494 808862B4 8FA50020 */ lw $a1, 0x0020($sp)
/* 00498 808862B8 3C064120 */ lui $a2, 0x4120 ## $a2 = 41200000
/* 0049C 808862BC 3C074170 */ lui $a3, 0x4170 ## $a3 = 41700000
/* 004A0 808862C0 0C00B92D */ jal func_8002E4B4
/* 004A4 808862C4 E7A40010 */ swc1 $f4, 0x0010($sp)
/* 004A8 808862C8 8FBF001C */ lw $ra, 0x001C($sp)
/* 004AC 808862CC 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 004B0 808862D0 03E00008 */ jr $ra
/* 004B4 808862D4 00000000 */ nop

View file

@ -1,109 +0,0 @@
glabel func_80885F4C
/* 0012C 80885F4C 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00130 80885F50 AFBF001C */ sw $ra, 0x001C($sp)
/* 00134 80885F54 AFB10018 */ sw $s1, 0x0018($sp)
/* 00138 80885F58 AFB00014 */ sw $s0, 0x0014($sp)
/* 0013C 80885F5C 908E017D */ lbu $t6, 0x017D($a0) ## 0000017D
/* 00140 80885F60 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00144 80885F64 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 00148 80885F68 31CF0002 */ andi $t7, $t6, 0x0002 ## $t7 = 00000000
/* 0014C 80885F6C 11E0004C */ beq $t7, $zero, .L808860A0
/* 00150 80885F70 8CA31C44 */ lw $v1, 0x1C44($a1) ## 00001C44
/* 00154 80885F74 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00158 80885F78 0C023A62 */ jal func_8008E988
/* 0015C 80885F7C AFA30024 */ sw $v1, 0x0024($sp)
/* 00160 80885F80 14400047 */ bne $v0, $zero, .L808860A0
/* 00164 80885F84 8FA30024 */ lw $v1, 0x0024($sp)
/* 00168 80885F88 80620842 */ lb $v0, 0x0842($v1) ## 00000842
/* 0016C 80885F8C 24010016 */ addiu $at, $zero, 0x0016 ## $at = 00000016
/* 00170 80885F90 10410003 */ beq $v0, $at, .L80885FA0
/* 00174 80885F94 24010017 */ addiu $at, $zero, 0x0017 ## $at = 00000017
/* 00178 80885F98 54410042 */ bnel $v0, $at, .L808860A4
/* 0017C 80885F9C 3C010001 */ lui $at, 0x0001 ## $at = 00010000
.L80885FA0:
/* 00180 80885FA0 9218017D */ lbu $t8, 0x017D($s0) ## 0000017D
/* 00184 80885FA4 8E020188 */ lw $v0, 0x0188($s0) ## 00000188
/* 00188 80885FA8 3319FFFD */ andi $t9, $t8, 0xFFFD ## $t9 = 00000000
/* 0018C 80885FAC A219017D */ sb $t9, 0x017D($s0) ## 0000017D
/* 00190 80885FB0 90480016 */ lbu $t0, 0x0016($v0) ## 00000016
/* 00194 80885FB4 31090002 */ andi $t1, $t0, 0x0002 ## $t1 = 00000000
/* 00198 80885FB8 55200006 */ bnel $t1, $zero, .L80885FD4
/* 0019C 80885FBC 860C0032 */ lh $t4, 0x0032($s0) ## 00000032
/* 001A0 80885FC0 904A0072 */ lbu $t2, 0x0072($v0) ## 00000072
/* 001A4 80885FC4 314B0002 */ andi $t3, $t2, 0x0002 ## $t3 = 00000000
/* 001A8 80885FC8 51600006 */ beql $t3, $zero, .L80885FE4
/* 001AC 80885FCC 860E0032 */ lh $t6, 0x0032($s0) ## 00000032
/* 001B0 80885FD0 860C0032 */ lh $t4, 0x0032($s0) ## 00000032
.L80885FD4:
/* 001B4 80885FD4 258DC000 */ addiu $t5, $t4, 0xC000 ## $t5 = FFFFC000
/* 001B8 80885FD8 10000004 */ beq $zero, $zero, .L80885FEC
/* 001BC 80885FDC A60D0032 */ sh $t5, 0x0032($s0) ## 00000032
/* 001C0 80885FE0 860E0032 */ lh $t6, 0x0032($s0) ## 00000032
.L80885FE4:
/* 001C4 80885FE4 25CF4000 */ addiu $t7, $t6, 0x4000 ## $t7 = 00004000
/* 001C8 80885FE8 A60F0032 */ sh $t7, 0x0032($s0) ## 00000032
.L80885FEC:
/* 001CC 80885FEC 0C01DE1C */ jal Math_Sins
## sins?
/* 001D0 80885FF0 86040032 */ lh $a0, 0x0032($s0) ## 00000032
/* 001D4 80885FF4 3C014202 */ lui $at, 0x4202 ## $at = 42020000
/* 001D8 80885FF8 44813000 */ mtc1 $at, $f6 ## $f6 = 32.50
/* 001DC 80885FFC C6040024 */ lwc1 $f4, 0x0024($s0) ## 00000024
/* 001E0 80886000 86040032 */ lh $a0, 0x0032($s0) ## 00000032
/* 001E4 80886004 46003202 */ mul.s $f8, $f6, $f0
/* 001E8 80886008 46082280 */ add.s $f10, $f4, $f8
/* 001EC 8088600C 0C01DE0D */ jal Math_Coss
## coss?
/* 001F0 80886010 E60A0024 */ swc1 $f10, 0x0024($s0) ## 00000024
/* 001F4 80886014 3C014202 */ lui $at, 0x4202 ## $at = 42020000
/* 001F8 80886018 44819000 */ mtc1 $at, $f18 ## $f18 = 32.50
/* 001FC 8088601C C610002C */ lwc1 $f16, 0x002C($s0) ## 0000002C
/* 00200 80886020 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00204 80886024 46009182 */ mul.s $f6, $f18, $f0
/* 00208 80886028 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 0020C 8088602C 24060008 */ addiu $a2, $zero, 0x0008 ## $a2 = 00000008
/* 00210 80886030 46068100 */ add.s $f4, $f16, $f6
/* 00214 80886034 0C00B7D5 */ jal func_8002DF54
/* 00218 80886038 E604002C */ swc1 $f4, 0x002C($s0) ## 0000002C
/* 0021C 8088603C 96090088 */ lhu $t1, 0x0088($s0) ## 00000088
/* 00220 80886040 8E180004 */ lw $t8, 0x0004($s0) ## 00000004
/* 00224 80886044 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 00228 80886048 312BFFFD */ andi $t3, $t1, 0xFFFD ## $t3 = 00000000
/* 0022C 8088604C 44814000 */ mtc1 $at, $f8 ## $f8 = 10.00
/* 00230 80886050 3C088088 */ lui $t0, %hi(func_808860CC) ## $t0 = 80880000
/* 00234 80886054 250860CC */ addiu $t0, $t0, %lo(func_808860CC) ## $t0 = 808860CC
/* 00238 80886058 A60B0088 */ sh $t3, 0x0088($s0) ## 00000088
/* 0023C 8088605C 316CFFF7 */ andi $t4, $t3, 0xFFF7 ## $t4 = 00000000
/* 00240 80886060 37190010 */ ori $t9, $t8, 0x0010 ## $t9 = 00000010
/* 00244 80886064 AE190004 */ sw $t9, 0x0004($s0) ## 00000004
/* 00248 80886068 AE080164 */ sw $t0, 0x0164($s0) ## 00000164
/* 0024C 8088606C A60C0088 */ sh $t4, 0x0088($s0) ## 00000088
/* 00250 80886070 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00254 80886074 92050168 */ lbu $a1, 0x0168($s0) ## 00000168
/* 00258 80886078 0C00B2DD */ jal Flags_SetSwitch
/* 0025C 8088607C E6080068 */ swc1 $f8, 0x0068($s0) ## 00000068
/* 00260 80886080 8E241C44 */ lw $a0, 0x1C44($s1) ## 00001C44
/* 00264 80886084 0C00BDF7 */ jal func_8002F7DC
/* 00268 80886088 2405180A */ addiu $a1, $zero, 0x180A ## $a1 = 0000180A
/* 0026C 8088608C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00270 80886090 0C00BE0A */ jal Audio_PlayActorSound2
/* 00274 80886094 240528B7 */ addiu $a1, $zero, 0x28B7 ## $a1 = 000028B7
/* 00278 80886098 10000008 */ beq $zero, $zero, .L808860BC
/* 0027C 8088609C 8FBF001C */ lw $ra, 0x001C($sp)
.L808860A0:
/* 00280 808860A0 3C010001 */ lui $at, 0x0001 ## $at = 00010000
.L808860A4:
/* 00284 808860A4 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 00288 808860A8 02212821 */ addu $a1, $s1, $at
/* 0028C 808860AC 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00290 808860B0 0C01767D */ jal CollisionCheck_SetAC
## CollisionCheck_setAC
/* 00294 808860B4 2606016C */ addiu $a2, $s0, 0x016C ## $a2 = 0000016C
/* 00298 808860B8 8FBF001C */ lw $ra, 0x001C($sp)
.L808860BC:
/* 0029C 808860BC 8FB00014 */ lw $s0, 0x0014($sp)
/* 002A0 808860C0 8FB10018 */ lw $s1, 0x0018($sp)
/* 002A4 808860C4 03E00008 */ jr $ra
/* 002A8 808860C8 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000

View file

@ -1,118 +0,0 @@
glabel func_808860CC
/* 002AC 808860CC 27BDFF88 */ addiu $sp, $sp, 0xFF88 ## $sp = FFFFFF88
/* 002B0 808860D0 AFB70050 */ sw $s7, 0x0050($sp)
/* 002B4 808860D4 AFB10038 */ sw $s1, 0x0038($sp)
/* 002B8 808860D8 00808825 */ or $s1, $a0, $zero ## $s1 = 00000000
/* 002BC 808860DC 00A0B825 */ or $s7, $a1, $zero ## $s7 = 00000000
/* 002C0 808860E0 AFBF0054 */ sw $ra, 0x0054($sp)
/* 002C4 808860E4 3C063B83 */ lui $a2, 0x3B83 ## $a2 = 3B830000
/* 002C8 808860E8 AFB6004C */ sw $s6, 0x004C($sp)
/* 002CC 808860EC AFB50048 */ sw $s5, 0x0048($sp)
/* 002D0 808860F0 AFB40044 */ sw $s4, 0x0044($sp)
/* 002D4 808860F4 AFB30040 */ sw $s3, 0x0040($sp)
/* 002D8 808860F8 AFB2003C */ sw $s2, 0x003C($sp)
/* 002DC 808860FC AFB00034 */ sw $s0, 0x0034($sp)
/* 002E0 80886100 F7BA0028 */ sdc1 $f26, 0x0028($sp)
/* 002E4 80886104 F7B80020 */ sdc1 $f24, 0x0020($sp)
/* 002E8 80886108 F7B60018 */ sdc1 $f22, 0x0018($sp)
/* 002EC 8088610C F7B40010 */ sdc1 $f20, 0x0010($sp)
/* 002F0 80886110 34C6126F */ ori $a2, $a2, 0x126F ## $a2 = 3B83126F
/* 002F4 80886114 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000
/* 002F8 80886118 0C01DE80 */ jal Math_ApproxF
/* 002FC 8088611C 24840050 */ addiu $a0, $a0, 0x0050 ## $a0 = 00000050
/* 00300 80886120 10400006 */ beq $v0, $zero, .L8088613C
/* 00304 80886124 02E02025 */ or $a0, $s7, $zero ## $a0 = 00000000
/* 00308 80886128 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 0030C 8088612C 0C00B7D5 */ jal func_8002DF54
/* 00310 80886130 24060007 */ addiu $a2, $zero, 0x0007 ## $a2 = 00000007
/* 00314 80886134 0C00B55C */ jal Actor_Kill
/* 00318 80886138 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
.L8088613C:
/* 0031C 8088613C C6340050 */ lwc1 $f20, 0x0050($s1) ## 00000050
/* 00320 80886140 C6240024 */ lwc1 $f4, 0x0024($s1) ## 00000024
/* 00324 80886144 3C014320 */ lui $at, 0x4320 ## $at = 43200000
/* 00328 80886148 E6340058 */ swc1 $f20, 0x0058($s1) ## 00000058
/* 0032C 8088614C E6340054 */ swc1 $f20, 0x0054($s1) ## 00000054
/* 00330 80886150 E7A4005C */ swc1 $f4, 0x005C($sp)
/* 00334 80886154 C6260050 */ lwc1 $f6, 0x0050($s1) ## 00000050
/* 00338 80886158 44814000 */ mtc1 $at, $f8 ## $f8 = 160.00
/* 0033C 8088615C C6300028 */ lwc1 $f16, 0x0028($s1) ## 00000028
/* 00340 80886160 3C013FC0 */ lui $at, 0x3FC0 ## $at = 3FC00000
/* 00344 80886164 46083282 */ mul.s $f10, $f6, $f8
/* 00348 80886168 4481D000 */ mtc1 $at, $f26 ## $f26 = 1.50
/* 0034C 8088616C 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 00350 80886170 4481C000 */ mtc1 $at, $f24 ## $f24 = 0.50
/* 00354 80886174 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 00358 80886178 3C158088 */ lui $s5, %hi(D_808865A8) ## $s5 = 80880000
/* 0035C 8088617C 4481B000 */ mtc1 $at, $f22 ## $f22 = 5.00
/* 00360 80886180 460A8480 */ add.s $f18, $f16, $f10
/* 00364 80886184 26B565A8 */ addiu $s5, $s5, %lo(D_808865A8) ## $s5 = 808865A8
/* 00368 80886188 00008025 */ or $s0, $zero, $zero ## $s0 = 00000000
/* 0036C 8088618C 24160004 */ addiu $s6, $zero, 0x0004 ## $s6 = 00000004
/* 00370 80886190 E7B20060 */ swc1 $f18, 0x0060($sp)
/* 00374 80886194 C624002C */ lwc1 $f4, 0x002C($s1) ## 0000002C
/* 00378 80886198 27B40068 */ addiu $s4, $sp, 0x0068 ## $s4 = FFFFFFF0
/* 0037C 8088619C 27B3005C */ addiu $s3, $sp, 0x005C ## $s3 = FFFFFFE4
/* 00380 808861A0 34128000 */ ori $s2, $zero, 0x8000 ## $s2 = 00008000
/* 00384 808861A4 E7A40064 */ swc1 $f4, 0x0064($sp)
/* 00388 808861A8 862E0032 */ lh $t6, 0x0032($s1) ## 00000032
.L808861AC:
/* 0038C 808861AC 01D22021 */ addu $a0, $t6, $s2
/* 00390 808861B0 00042400 */ sll $a0, $a0, 16
/* 00394 808861B4 0C01DE1C */ jal Math_Sins
## sins?
/* 00398 808861B8 00042403 */ sra $a0, $a0, 16
/* 0039C 808861BC 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 003A0 808861C0 46000506 */ mov.s $f20, $f0
/* 003A4 808861C4 46180181 */ sub.s $f6, $f0, $f24
/* 003A8 808861C8 46163202 */ mul.s $f8, $f6, $f22
/* 003AC 808861CC 00000000 */ nop
/* 003B0 808861D0 4614B402 */ mul.s $f16, $f22, $f20
/* 003B4 808861D4 46104280 */ add.s $f10, $f8, $f16
/* 003B8 808861D8 E7AA0068 */ swc1 $f10, 0x0068($sp)
/* 003BC 808861DC 862F0032 */ lh $t7, 0x0032($s1) ## 00000032
/* 003C0 808861E0 01F22021 */ addu $a0, $t7, $s2
/* 003C4 808861E4 00042400 */ sll $a0, $a0, 16
/* 003C8 808861E8 0C01DE0D */ jal Math_Coss
## coss?
/* 003CC 808861EC 00042403 */ sra $a0, $a0, 16
/* 003D0 808861F0 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 003D4 808861F4 46000506 */ mov.s $f20, $f0
/* 003D8 808861F8 46180481 */ sub.s $f18, $f0, $f24
/* 003DC 808861FC 46169102 */ mul.s $f4, $f18, $f22
/* 003E0 80886200 00000000 */ nop
/* 003E4 80886204 4614B182 */ mul.s $f6, $f22, $f20
/* 003E8 80886208 46062200 */ add.s $f8, $f4, $f6
/* 003EC 8088620C 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 003F0 80886210 E7A80070 */ swc1 $f8, 0x0070($sp)
/* 003F4 80886214 46180401 */ sub.s $f16, $f0, $f24
/* 003F8 80886218 02E02025 */ or $a0, $s7, $zero ## $a0 = 00000000
/* 003FC 8088621C 02602825 */ or $a1, $s3, $zero ## $a1 = FFFFFFE4
/* 00400 80886220 02803025 */ or $a2, $s4, $zero ## $a2 = FFFFFFF0
/* 00404 80886224 461A8282 */ mul.s $f10, $f16, $f26
/* 00408 80886228 02A03825 */ or $a3, $s5, $zero ## $a3 = 808865A8
/* 0040C 8088622C 0C00A2C6 */ jal func_80028B18
/* 00410 80886230 E7AA006C */ swc1 $f10, 0x006C($sp)
/* 00414 80886234 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000001
/* 00418 80886238 5616FFDC */ bnel $s0, $s6, .L808861AC
/* 0041C 8088623C 862E0032 */ lh $t6, 0x0032($s1) ## 00000032
/* 00420 80886240 8FBF0054 */ lw $ra, 0x0054($sp)
/* 00424 80886244 D7B40010 */ ldc1 $f20, 0x0010($sp)
/* 00428 80886248 D7B60018 */ ldc1 $f22, 0x0018($sp)
/* 0042C 8088624C D7B80020 */ ldc1 $f24, 0x0020($sp)
/* 00430 80886250 D7BA0028 */ ldc1 $f26, 0x0028($sp)
/* 00434 80886254 8FB00034 */ lw $s0, 0x0034($sp)
/* 00438 80886258 8FB10038 */ lw $s1, 0x0038($sp)
/* 0043C 8088625C 8FB2003C */ lw $s2, 0x003C($sp)
/* 00440 80886260 8FB30040 */ lw $s3, 0x0040($sp)
/* 00444 80886264 8FB40044 */ lw $s4, 0x0044($sp)
/* 00448 80886268 8FB50048 */ lw $s5, 0x0048($sp)
/* 0044C 8088626C 8FB6004C */ lw $s6, 0x004C($sp)
/* 00450 80886270 8FB70050 */ lw $s7, 0x0050($sp)
/* 00454 80886274 03E00008 */ jr $ra
/* 00458 80886278 27BD0078 */ addiu $sp, $sp, 0x0078 ## $sp = 00000000

View file

@ -1,76 +0,0 @@
glabel func_808862D8
/* 004B8 808862D8 27BDFFA8 */ addiu $sp, $sp, 0xFFA8 ## $sp = FFFFFFA8
/* 004BC 808862DC AFB30028 */ sw $s3, 0x0028($sp)
/* 004C0 808862E0 AFA40058 */ sw $a0, 0x0058($sp)
/* 004C4 808862E4 27B30034 */ addiu $s3, $sp, 0x0034 ## $s3 = FFFFFFDC
/* 004C8 808862E8 AFBF002C */ sw $ra, 0x002C($sp)
/* 004CC 808862EC 3C048088 */ lui $a0, %hi(D_808864B8) ## $a0 = 80880000
/* 004D0 808862F0 AFB20024 */ sw $s2, 0x0024($sp)
/* 004D4 808862F4 AFB10020 */ sw $s1, 0x0020($sp)
/* 004D8 808862F8 AFB0001C */ sw $s0, 0x001C($sp)
/* 004DC 808862FC 248464B8 */ addiu $a0, $a0, %lo(D_808864B8) ## $a0 = 808864B8
/* 004E0 80886300 0C0346BD */ jal Matrix_MultVec3f
/* 004E4 80886304 02602825 */ or $a1, $s3, $zero ## $a1 = FFFFFFDC
/* 004E8 80886308 27B10040 */ addiu $s1, $sp, 0x0040 ## $s1 = FFFFFFE8
/* 004EC 8088630C 3C048088 */ lui $a0, %hi(D_808864C4) ## $a0 = 80880000
/* 004F0 80886310 248464C4 */ addiu $a0, $a0, %lo(D_808864C4) ## $a0 = 808864C4
/* 004F4 80886314 0C0346BD */ jal Matrix_MultVec3f
/* 004F8 80886318 02202825 */ or $a1, $s1, $zero ## $a1 = FFFFFFE8
/* 004FC 8088631C 27B2004C */ addiu $s2, $sp, 0x004C ## $s2 = FFFFFFF4
/* 00500 80886320 3C048088 */ lui $a0, %hi(D_808864D0) ## $a0 = 80880000
/* 00504 80886324 248464D0 */ addiu $a0, $a0, %lo(D_808864D0) ## $a0 = 808864D0
/* 00508 80886328 0C0346BD */ jal Matrix_MultVec3f
/* 0050C 8088632C 02402825 */ or $a1, $s2, $zero ## $a1 = FFFFFFF4
/* 00510 80886330 8FB00058 */ lw $s0, 0x0058($sp)
/* 00514 80886334 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00518 80886338 02603025 */ or $a2, $s3, $zero ## $a2 = FFFFFFDC
/* 0051C 8088633C 2610016C */ addiu $s0, $s0, 0x016C ## $s0 = 0000016C
/* 00520 80886340 02002025 */ or $a0, $s0, $zero ## $a0 = 0000016C
/* 00524 80886344 02203825 */ or $a3, $s1, $zero ## $a3 = FFFFFFE8
/* 00528 80886348 0C0189E8 */ jal func_800627A0
/* 0052C 8088634C AFB20010 */ sw $s2, 0x0010($sp)
/* 00530 80886350 3C048088 */ lui $a0, %hi(D_8088650C) ## $a0 = 80880000
/* 00534 80886354 2484650C */ addiu $a0, $a0, %lo(D_8088650C) ## $a0 = 8088650C
/* 00538 80886358 0C0346BD */ jal Matrix_MultVec3f
/* 0053C 8088635C 02202825 */ or $a1, $s1, $zero ## $a1 = FFFFFFE8
/* 00540 80886360 02002025 */ or $a0, $s0, $zero ## $a0 = 0000016C
/* 00544 80886364 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 00548 80886368 02603025 */ or $a2, $s3, $zero ## $a2 = FFFFFFDC
/* 0054C 8088636C 02403825 */ or $a3, $s2, $zero ## $a3 = FFFFFFF4
/* 00550 80886370 0C0189E8 */ jal func_800627A0
/* 00554 80886374 AFB10010 */ sw $s1, 0x0010($sp)
/* 00558 80886378 3C048088 */ lui $a0, %hi(D_80886530) ## $a0 = 80880000
/* 0055C 8088637C 24846530 */ addiu $a0, $a0, %lo(D_80886530) ## $a0 = 80886530
/* 00560 80886380 0C0346BD */ jal Matrix_MultVec3f
/* 00564 80886384 02602825 */ or $a1, $s3, $zero ## $a1 = FFFFFFDC
/* 00568 80886388 3C048088 */ lui $a0, %hi(D_8088653C) ## $a0 = 80880000
/* 0056C 8088638C 2484653C */ addiu $a0, $a0, %lo(D_8088653C) ## $a0 = 8088653C
/* 00570 80886390 0C0346BD */ jal Matrix_MultVec3f
/* 00574 80886394 02202825 */ or $a1, $s1, $zero ## $a1 = FFFFFFE8
/* 00578 80886398 3C048088 */ lui $a0, %hi(D_80886548) ## $a0 = 80880000
/* 0057C 8088639C 24846548 */ addiu $a0, $a0, %lo(D_80886548) ## $a0 = 80886548
/* 00580 808863A0 0C0346BD */ jal Matrix_MultVec3f
/* 00584 808863A4 02402825 */ or $a1, $s2, $zero ## $a1 = FFFFFFF4
/* 00588 808863A8 02002025 */ or $a0, $s0, $zero ## $a0 = 0000016C
/* 0058C 808863AC 24050002 */ addiu $a1, $zero, 0x0002 ## $a1 = 00000002
/* 00590 808863B0 02603025 */ or $a2, $s3, $zero ## $a2 = FFFFFFDC
/* 00594 808863B4 02203825 */ or $a3, $s1, $zero ## $a3 = FFFFFFE8
/* 00598 808863B8 0C0189E8 */ jal func_800627A0
/* 0059C 808863BC AFB20010 */ sw $s2, 0x0010($sp)
/* 005A0 808863C0 3C048088 */ lui $a0, %hi(D_80886578) ## $a0 = 80880000
/* 005A4 808863C4 24846578 */ addiu $a0, $a0, %lo(D_80886578) ## $a0 = 80886578
/* 005A8 808863C8 0C0346BD */ jal Matrix_MultVec3f
/* 005AC 808863CC 02402825 */ or $a1, $s2, $zero ## $a1 = FFFFFFF4
/* 005B0 808863D0 02002025 */ or $a0, $s0, $zero ## $a0 = 0000016C
/* 005B4 808863D4 24050003 */ addiu $a1, $zero, 0x0003 ## $a1 = 00000003
/* 005B8 808863D8 02603025 */ or $a2, $s3, $zero ## $a2 = FFFFFFDC
/* 005BC 808863DC 02403825 */ or $a3, $s2, $zero ## $a3 = FFFFFFF4
/* 005C0 808863E0 0C0189E8 */ jal func_800627A0
/* 005C4 808863E4 AFB10010 */ sw $s1, 0x0010($sp)
/* 005C8 808863E8 8FBF002C */ lw $ra, 0x002C($sp)
/* 005CC 808863EC 8FB0001C */ lw $s0, 0x001C($sp)
/* 005D0 808863F0 8FB10020 */ lw $s1, 0x0020($sp)
/* 005D4 808863F4 8FB20024 */ lw $s2, 0x0024($sp)
/* 005D8 808863F8 8FB30028 */ lw $s3, 0x0028($sp)
/* 005DC 808863FC 03E00008 */ jr $ra
/* 005E0 80886400 27BD0058 */ addiu $sp, $sp, 0x0058 ## $sp = 00000000

View file

@ -1,43 +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_Dalm_InitVars
.word 0x00400100, 0x00000000, 0x002C0000, 0x000002FC
.word BgHidanDalm_Init
.word BgHidanDalm_Destroy
.word BgHidanDalm_Update
.word BgHidanDalm_Draw
glabel D_808864A0
.word 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0x00790000
glabel D_808864B8
.word 0x43988000, 0x00000000, 0xC3960000
glabel D_808864C4
.word 0x43988000, 0x44160000, 0xC3960000
glabel D_808864D0
.word 0x43988000, 0x44160000, 0x43960000, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0x00790000, 0x43988000, 0x00000000, 0xC3960000, 0x43988000, 0x44160000, 0x43960000
glabel D_8088650C
.word 0x43988000, 0x00000000, 0x43960000, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0x00790000
glabel D_80886530
.word 0xC3988000, 0x00000000, 0xC3960000
glabel D_8088653C
.word 0xC3988000, 0x44160000, 0x43960000
glabel D_80886548
.word 0xC3988000, 0x44160000, 0xC3960000, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0x00790000, 0xC3988000, 0x00000000, 0xC3960000
glabel D_80886578
.word 0xC3988000, 0x00000000, 0x43960000, 0xC3988000, 0x44160000, 0x43960000
glabel D_80886590
.word 0x0A000900, 0x20020000, 0x00000004
.word D_808864A0
glabel D_808865A0
.word 0xC8500064, 0x386CFF38
glabel D_808865A8
.word 0x00000000, 0x00000000, 0x00000000, 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_808865C0
.incbin "baserom/ovl_Bg_Hidan_Dalm", 0x7A0, 0x000000A0

View file

@ -219,7 +219,7 @@ void func_800287AC(GlobalContext* globalCtx, Vec3f* pos, Vec3f* velocity, Vec3f*
s16 life);
void func_80028990(GlobalContext* globalCtx, f32 randScale, Vec3f* srcPos);
void func_80028A54(GlobalContext* globalCtx, f32 randScale, Vec3f* srcPos);
// ? func_80028B18(?);
UNK_TYPE func_80028B18(GlobalContext* globalCtx, Vec3f*, Vec3f*, Vec3f*);
void func_80028B74(GlobalContext*, Vec3f*, UNK_PTR, UNK_PTR, Color_RGB8*, Color_RGB8*);
// ? func_80028BB0(?);
// ? func_80028CEC(?);

3
spec
View file

@ -837,8 +837,7 @@ endseg
beginseg
name "ovl_Bg_Hidan_Dalm"
include "build/src/overlays/actors/ovl_Bg_Hidan_Dalm/z_bg_hidan_dalm.o"
include "build/data/overlays/actors/z_bg_hidan_dalm.data.o"
include "build/data/overlays/actors/z_bg_hidan_dalm.reloc.o"
include "build/src/overlays/actors/ovl_Bg_Hidan_Dalm/ovl_Bg_Hidan_Dalm_reloc.o"
endseg
beginseg

View file

@ -9,7 +9,9 @@ void BgHidanDalm_Destroy(Actor* thisx, GlobalContext* globalCtx);
void BgHidanDalm_Update(Actor* thisx, GlobalContext* globalCtx);
void BgHidanDalm_Draw(Actor* thisx, GlobalContext* globalCtx);
/*
void BgHidanDalm_WaitInteraction(BgHidanDalm* this, GlobalContext* globalCtx);
void BgHidanDalm_Shrink(BgHidanDalm* this, GlobalContext* globalCtx);
const ActorInit Bg_Hidan_Dalm_InitVars = {
ACTOR_BG_HIDAN_DALM,
ACTORTYPE_BG,
@ -21,17 +23,164 @@ const ActorInit Bg_Hidan_Dalm_InitVars = {
(ActorFunc)BgHidanDalm_Update,
(ActorFunc)BgHidanDalm_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Dalm/BgHidanDalm_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Dalm/BgHidanDalm_Destroy.s")
static ColliderTrisItemInit sTrisItemInit[4] = {
{
{ 0x00, { 0x00000000, 0x00, 0x00 }, { 0x00000040, 0x00, 0x00 }, 0x00, 0x79, 0x00 },
{ { { 305.0f, 0.0f, -300.0f }, { 305.0f, 600.0f, -300.0f }, { 305.0f, 600.0f, 300.0f } } },
},
{
{ 0x00, { 0x00000000, 0x00, 0x00 }, { 0x00000040, 0x00, 0x00 }, 0x00, 0x79, 0x00 },
{ { { 305.0f, 0.0f, -300.0f }, { 305.0f, 600.0f, 300.0f }, { 305.0f, 0.0f, 300.0f } } },
},
{
{ 0x00, { 0x00000000, 0x00, 0x00 }, { 0x00000040, 0x00, 0x00 }, 0x00, 0x79, 0x00 },
{ { { -305.0f, 0.0f, -300.0f }, { -305.0f, 600.0f, 300.0f }, { -305.0f, 600.0f, -300.0f } } },
},
{
{ 0x00, { 0x00000000, 0x00, 0x00 }, { 0x00000040, 0x00, 0x00 }, 0x00, 0x79, 0x00 },
{ { { -305.0f, 0.0f, -300.0f }, { -305.0f, 0.0f, 300.0f }, { -305.0f, 600.0f, 300.0f } } },
},
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Dalm/func_80885F4C.s")
ColliderTrisInit D_80886590 = {
{ COLTYPE_UNK10, 0x00, 0x09, 0x00, 0x20, COLSHAPE_TRIS },
4,
sTrisItemInit,
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Dalm/func_808860CC.s")
InitChainEntry D_808865A0[] = {
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE),
ICHAIN_F32_DIV1000(gravity, 65336, ICHAIN_STOP),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Dalm/BgHidanDalm_Update.s")
extern Gfx D_0600BBF0[];
extern Gfx D_0600BDF0[];
extern UNK_TYPE D_0600DA10;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Dalm/func_808862D8.s")
void BgHidanDalm_Init(Actor* thisx, GlobalContext* globalCtx) {
BgHidanDalm* this = THIS;
s32 pad;
u32 dynaUnk;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Dalm/BgHidanDalm_Draw.s")
dynaUnk = 0;
Actor_ProcessInitChain(thisx, D_808865A0);
DynaPolyInfo_SetActorMove(&this->dyna, DPM_UNK);
DynaPolyInfo_Alloc(&D_0600DA10, &dynaUnk);
this->dyna.dynaPolyId = DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, thisx, dynaUnk);
Collider_InitTris(globalCtx, &this->collider);
Collider_SetTris(globalCtx, &this->collider, thisx, &D_80886590, this->colliderItems);
this->switchFlag = (thisx->params >> 8) & 0xFF;
thisx->params &= 0xFF;
if (Flags_GetSwitch(globalCtx, this->switchFlag)) {
Actor_Kill(thisx);
} else {
this->actionFunc = BgHidanDalm_WaitInteraction;
}
}
void BgHidanDalm_Destroy(Actor* thisx, GlobalContext* globalCtx) {
BgHidanDalm* this = THIS;
DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
Collider_DestroyTris(globalCtx, &this->collider);
}
void BgHidanDalm_WaitInteraction(BgHidanDalm* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
if ((this->collider.base.acFlags & 2) && !func_8008E988(globalCtx) &&
(player->swordAnimation == 22 || player->swordAnimation == 23)) {
this->collider.base.acFlags &= ~2;
if (this->collider.list[0].body.bumperFlags & 2 || this->collider.list[1].body.bumperFlags & 2) {
this->dyna.actor.posRot.rot.y -= 0x4000;
} else {
this->dyna.actor.posRot.rot.y += 0x4000;
}
this->dyna.actor.posRot.pos.x += 32.5f * Math_Sins(this->dyna.actor.posRot.rot.y);
this->dyna.actor.posRot.pos.z += 32.5f * Math_Coss(this->dyna.actor.posRot.rot.y);
func_8002DF54(globalCtx, &this->dyna.actor, 8);
this->dyna.actor.flags |= 0x10;
this->actionFunc = BgHidanDalm_Shrink;
this->dyna.actor.bgCheckFlags &= ~2;
this->dyna.actor.bgCheckFlags &= ~8;
this->dyna.actor.speedXZ = 10.0f;
Flags_SetSwitch(globalCtx, this->switchFlag);
func_8002F7DC(&PLAYER->actor, NA_SE_IT_HAMMER_HIT);
Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_DARUMA_VANISH);
} else {
CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
}
}
void BgHidanDalm_Shrink(BgHidanDalm* this, GlobalContext* globalCtx) {
static Vec3f accel = { 0, 0, 0 };
s32 i;
Vec3f velocity;
Vec3f pos;
if (Math_ApproxF(&this->dyna.actor.scale.x, 0.0f, 0.004f)) {
func_8002DF54(globalCtx, &this->dyna.actor, 7);
Actor_Kill(&this->dyna.actor);
}
this->dyna.actor.scale.y = this->dyna.actor.scale.z = this->dyna.actor.scale.x;
pos.x = this->dyna.actor.posRot.pos.x;
pos.y = this->dyna.actor.posRot.pos.y + this->dyna.actor.scale.x * 160.0f;
pos.z = this->dyna.actor.posRot.pos.z;
for (i = 0; i < 4; i++) {
velocity.x = 5.0f * Math_Sins(this->dyna.actor.posRot.rot.y + 0x8000) + (Math_Rand_ZeroOne() - 0.5f) * 5.0f;
velocity.z = 5.0f * Math_Coss(this->dyna.actor.posRot.rot.y + 0x8000) + (Math_Rand_ZeroOne() - 0.5f) * 5.0f;
velocity.y = (Math_Rand_ZeroOne() - 0.5f) * 1.5f;
func_80028B18(globalCtx, &pos, &velocity, &accel);
}
}
void BgHidanDalm_Update(Actor* thisx, GlobalContext* globalCtx) {
BgHidanDalm* this = THIS;
this->actionFunc(this, globalCtx);
Actor_MoveForward(&this->dyna.actor);
func_8002E4B4(globalCtx, &this->dyna.actor, 10.0f, 15.0f, 32.0f, 5);
}
/**
* Update vertices of collider tris based on the current matrix
*/
void BgHidanDalm_UpdateCollider(BgHidanDalm* this) {
Vec3f pos2;
Vec3f pos1;
Vec3f pos0;
Matrix_MultVec3f(&sTrisItemInit[0].dim.vtx[0], &pos0);
Matrix_MultVec3f(&sTrisItemInit[0].dim.vtx[1], &pos1);
Matrix_MultVec3f(&sTrisItemInit[0].dim.vtx[2], &pos2);
func_800627A0(&this->collider, 0, &pos0, &pos1, &pos2);
Matrix_MultVec3f(&sTrisItemInit[1].dim.vtx[2], &pos1);
func_800627A0(&this->collider, 1, &pos0, &pos2, &pos1);
Matrix_MultVec3f(&sTrisItemInit[2].dim.vtx[0], &pos0);
Matrix_MultVec3f(&sTrisItemInit[2].dim.vtx[1], &pos1);
Matrix_MultVec3f(&sTrisItemInit[2].dim.vtx[2], &pos2);
func_800627A0(&this->collider, 2, &pos0, &pos1, &pos2);
Matrix_MultVec3f(&sTrisItemInit[3].dim.vtx[1], &pos2);
func_800627A0(&this->collider, 3, &pos0, &pos2, &pos1);
}
void BgHidanDalm_Draw(Actor* thisx, GlobalContext* globalCtx) {
BgHidanDalm* this = THIS;
if (this->dyna.actor.params == 0) {
Gfx_DrawDListOpa(globalCtx, D_0600BBF0);
} else {
Gfx_DrawDListOpa(globalCtx, D_0600BDF0);
}
if (this->actionFunc == BgHidanDalm_WaitInteraction) {
BgHidanDalm_UpdateCollider(this);
}
}

View file

@ -6,9 +6,14 @@
struct BgHidanDalm;
typedef void (*BgHidanDalmActionFunc)(struct BgHidanDalm*, GlobalContext*);
typedef struct BgHidanDalm {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x1B0];
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ BgHidanDalmActionFunc actionFunc;
/* 0x0168 */ u8 switchFlag;
/* 0x016C */ ColliderTris collider;
/* 0x018C */ ColliderTrisItem colliderItems[4];
} BgHidanDalm; // size = 0x02FC
extern const ActorInit Bg_Hidan_Dalm_InitVars;

View file

@ -206,6 +206,11 @@ D_06005A20 = 0x06005A20;
D_06000360 = 0x06000360;
D_06000180 = 0x06000180;
// z_bg_hidan_dalm
D_0600BBF0 = 0x0600BBF0;
D_0600BDF0 = 0x0600BDF0;
D_0600DA10 = 0x0600DA10;
// z_bg_hidan_fslift
D_0600B630 = 0x0600B630;
D_0600E1E8 = 0x0600E1E8;