From 91299ed21f844a297312b87788ba35aa88108be9 Mon Sep 17 00:00:00 2001 From: louist103 <35883445+louist103@users.noreply.github.com> Date: Tue, 4 Aug 2020 14:01:40 -0400 Subject: [PATCH] Decomp BgJyaBombiwa (#294) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Decomp BgJyaBombiwa * Delete z_bg_jya_bombiwa.data.s * Delete z_bg_jya_bombiwa.reloc.s * PR fixes * Delete cur_list.txt * Delete old_data_list.txt * Delete data_list.txt * Delete old_list.txt * PR fixes * PR fixes --- .../ovl_Bg_Jya_Bombiwa/BgJyaBombiwa_Destroy.s | 20 -- .../ovl_Bg_Jya_Bombiwa/BgJyaBombiwa_Draw.s | 19 -- .../ovl_Bg_Jya_Bombiwa/BgJyaBombiwa_Init.s | 87 -------- .../ovl_Bg_Jya_Bombiwa/BgJyaBombiwa_Update.s | 42 ---- .../actors/ovl_Bg_Jya_Bombiwa/func_808951A0.s | 50 ----- .../actors/ovl_Bg_Jya_Bombiwa/func_80895228.s | 22 --- .../actors/ovl_Bg_Jya_Bombiwa/func_8089539C.s | 185 ------------------ data/overlays/actors/z_bg_jya_bombiwa.data.s | 25 --- data/overlays/actors/z_bg_jya_bombiwa.reloc.s | 13 -- include/functions.h | 2 +- spec | 3 +- .../ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c | 142 +++++++++++++- .../ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.h | 7 +- undefined_syms.txt | 5 + 14 files changed, 145 insertions(+), 477 deletions(-) delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/BgJyaBombiwa_Destroy.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/BgJyaBombiwa_Draw.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/BgJyaBombiwa_Init.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/BgJyaBombiwa_Update.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/func_808951A0.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/func_80895228.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/func_8089539C.s delete mode 100644 data/overlays/actors/z_bg_jya_bombiwa.data.s delete mode 100644 data/overlays/actors/z_bg_jya_bombiwa.reloc.s diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/BgJyaBombiwa_Destroy.s b/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/BgJyaBombiwa_Destroy.s deleted file mode 100644 index a1f792e549..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/BgJyaBombiwa_Destroy.s +++ /dev/null @@ -1,20 +0,0 @@ -glabel BgJyaBombiwa_Destroy -/* 001B4 80895354 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 001B8 80895358 AFA40018 */ sw $a0, 0x0018($sp) -/* 001BC 8089535C 8FAE0018 */ lw $t6, 0x0018($sp) -/* 001C0 80895360 AFBF0014 */ sw $ra, 0x0014($sp) -/* 001C4 80895364 00A03825 */ or $a3, $a1, $zero ## $a3 = 00000000 -/* 001C8 80895368 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 001CC 8089536C 8DC6014C */ lw $a2, 0x014C($t6) ## 0000014C -/* 001D0 80895370 AFA7001C */ sw $a3, 0x001C($sp) -/* 001D4 80895374 0C00FB56 */ jal DynaPolyInfo_Free - ## DynaPolyInfo_delReserve -/* 001D8 80895378 24A50810 */ addiu $a1, $a1, 0x0810 ## $a1 = 00000810 -/* 001DC 8089537C 8FA50018 */ lw $a1, 0x0018($sp) -/* 001E0 80895380 8FA4001C */ lw $a0, 0x001C($sp) -/* 001E4 80895384 0C016F32 */ jal Collider_DestroyJntSph -/* 001E8 80895388 24A50168 */ addiu $a1, $a1, 0x0168 ## $a1 = 00000168 -/* 001EC 8089538C 8FBF0014 */ lw $ra, 0x0014($sp) -/* 001F0 80895390 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 001F4 80895394 03E00008 */ jr $ra -/* 001F8 80895398 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/BgJyaBombiwa_Draw.s b/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/BgJyaBombiwa_Draw.s deleted file mode 100644 index 20c5b6a36b..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/BgJyaBombiwa_Draw.s +++ /dev/null @@ -1,19 +0,0 @@ -glabel BgJyaBombiwa_Draw -/* 0051C 808956BC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00520 808956C0 AFA40018 */ sw $a0, 0x0018($sp) -/* 00524 808956C4 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 00528 808956C8 AFBF0014 */ sw $ra, 0x0014($sp) -/* 0052C 808956CC 3C050601 */ lui $a1, 0x0601 ## $a1 = 06010000 -/* 00530 808956D0 0C00D498 */ jal Gfx_DrawDListOpa - -/* 00534 808956D4 24A5E490 */ addiu $a1, $a1, 0xE490 ## $a1 = 0600E490 -/* 00538 808956D8 8FA50018 */ lw $a1, 0x0018($sp) -/* 0053C 808956DC 00002025 */ or $a0, $zero, $zero ## $a0 = 00000000 -/* 00540 808956E0 0C018A29 */ jal func_800628A4 -/* 00544 808956E4 24A50168 */ addiu $a1, $a1, 0x0168 ## $a1 = 00000168 -/* 00548 808956E8 8FBF0014 */ lw $ra, 0x0014($sp) -/* 0054C 808956EC 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00550 808956F0 03E00008 */ jr $ra -/* 00554 808956F4 00000000 */ nop -/* 00558 808956F8 00000000 */ nop -/* 0055C 808956FC 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/BgJyaBombiwa_Init.s b/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/BgJyaBombiwa_Init.s deleted file mode 100644 index 47654879be..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/BgJyaBombiwa_Init.s +++ /dev/null @@ -1,87 +0,0 @@ -.rdata -glabel D_808957C8 - .asciz "\x1b[43;30m" - .balign 4 - -glabel D_808957D4 - .asciz "Warning : Switch Number が変更された(%s %d)(SW %d)\n" - .balign 4 - -glabel D_80895810 - .asciz "../z_bg_jya_bombiwa.c" - .balign 4 - -glabel D_80895828 - .asciz "\x1b[m" - .balign 4 - -glabel D_8089582C - .asciz "(jya 爆弾で破壊岩)(arg_data 0x%04x)\n" - .balign 4 - -.text -glabel BgJyaBombiwa_Init -/* 000DC 8089527C 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 000E0 80895280 AFBF001C */ sw $ra, 0x001C($sp) -/* 000E4 80895284 AFB00018 */ sw $s0, 0x0018($sp) -/* 000E8 80895288 AFA50024 */ sw $a1, 0x0024($sp) -/* 000EC 8089528C 848E001C */ lh $t6, 0x001C($a0) ## 0000001C -/* 000F0 80895290 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 000F4 80895294 24010029 */ addiu $at, $zero, 0x0029 ## $at = 00000029 -/* 000F8 80895298 31CF003F */ andi $t7, $t6, 0x003F ## $t7 = 00000000 -/* 000FC 8089529C 11E1000E */ beq $t7, $at, .L808952D8 -/* 00100 808952A0 3C048089 */ lui $a0, %hi(D_808957C8) ## $a0 = 80890000 -/* 00104 808952A4 0C00084C */ jal osSyncPrintf - -/* 00108 808952A8 248457C8 */ addiu $a0, $a0, %lo(D_808957C8) ## $a0 = 808957C8 -/* 0010C 808952AC 8607001C */ lh $a3, 0x001C($s0) ## 0000001C -/* 00110 808952B0 3C048089 */ lui $a0, %hi(D_808957D4) ## $a0 = 80890000 -/* 00114 808952B4 3C058089 */ lui $a1, %hi(D_80895810) ## $a1 = 80890000 -/* 00118 808952B8 24A55810 */ addiu $a1, $a1, %lo(D_80895810) ## $a1 = 80895810 -/* 0011C 808952BC 248457D4 */ addiu $a0, $a0, %lo(D_808957D4) ## $a0 = 808957D4 -/* 00120 808952C0 240600DA */ addiu $a2, $zero, 0x00DA ## $a2 = 000000DA -/* 00124 808952C4 0C00084C */ jal osSyncPrintf - -/* 00128 808952C8 30E7003F */ andi $a3, $a3, 0x003F ## $a3 = 00000000 -/* 0012C 808952CC 3C048089 */ lui $a0, %hi(D_80895828) ## $a0 = 80890000 -/* 00130 808952D0 0C00084C */ jal osSyncPrintf - -/* 00134 808952D4 24845828 */ addiu $a0, $a0, %lo(D_80895828) ## $a0 = 80895828 -.L808952D8: -/* 00138 808952D8 3C060601 */ lui $a2, 0x0601 ## $a2 = 06010000 -/* 0013C 808952DC 24C6E710 */ addiu $a2, $a2, 0xE710 ## $a2 = 0600E710 -/* 00140 808952E0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00144 808952E4 8FA50024 */ lw $a1, 0x0024($sp) -/* 00148 808952E8 0C225468 */ jal func_808951A0 -/* 0014C 808952EC 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000 -/* 00150 808952F0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00154 808952F4 0C22548A */ jal func_80895228 -/* 00158 808952F8 8FA50024 */ lw $a1, 0x0024($sp) -/* 0015C 808952FC 8605001C */ lh $a1, 0x001C($s0) ## 0000001C -/* 00160 80895300 8FA40024 */ lw $a0, 0x0024($sp) -/* 00164 80895304 0C00B2D0 */ jal Flags_GetSwitch - -/* 00168 80895308 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000 -/* 0016C 8089530C 10400005 */ beq $v0, $zero, .L80895324 -/* 00170 80895310 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00174 80895314 0C00B55C */ jal Actor_Kill - -/* 00178 80895318 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 0017C 8089531C 10000009 */ beq $zero, $zero, .L80895344 -/* 00180 80895320 8FBF001C */ lw $ra, 0x001C($sp) -.L80895324: -/* 00184 80895324 3C058089 */ lui $a1, %hi(D_80895754) ## $a1 = 80890000 -/* 00188 80895328 0C01E037 */ jal Actor_ProcessInitChain - -/* 0018C 8089532C 24A55754 */ addiu $a1, $a1, %lo(D_80895754) ## $a1 = 80895754 -/* 00190 80895330 3C048089 */ lui $a0, %hi(D_8089582C) ## $a0 = 80890000 -/* 00194 80895334 2484582C */ addiu $a0, $a0, %lo(D_8089582C) ## $a0 = 8089582C -/* 00198 80895338 0C00084C */ jal osSyncPrintf - -/* 0019C 8089533C 8605001C */ lh $a1, 0x001C($s0) ## 0000001C -/* 001A0 80895340 8FBF001C */ lw $ra, 0x001C($sp) -.L80895344: -/* 001A4 80895344 8FB00018 */ lw $s0, 0x0018($sp) -/* 001A8 80895348 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 -/* 001AC 8089534C 03E00008 */ jr $ra -/* 001B0 80895350 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/BgJyaBombiwa_Update.s b/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/BgJyaBombiwa_Update.s deleted file mode 100644 index 16bfda1bbf..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/BgJyaBombiwa_Update.s +++ /dev/null @@ -1,42 +0,0 @@ -glabel BgJyaBombiwa_Update -/* 00490 80895630 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 00494 80895634 AFBF001C */ sw $ra, 0x001C($sp) -/* 00498 80895638 AFB10018 */ sw $s1, 0x0018($sp) -/* 0049C 8089563C AFB00014 */ sw $s0, 0x0014($sp) -/* 004A0 80895640 908E0179 */ lbu $t6, 0x0179($a0) ## 00000179 -/* 004A4 80895644 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000 -/* 004A8 80895648 00808825 */ or $s1, $a0, $zero ## $s1 = 00000000 -/* 004AC 8089564C 31CF0002 */ andi $t7, $t6, 0x0002 ## $t7 = 00000000 -/* 004B0 80895650 11E00010 */ beq $t7, $zero, .L80895694 -/* 004B4 80895654 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 004B8 80895658 0C2254E7 */ jal func_8089539C -/* 004BC 8089565C 00000000 */ nop -/* 004C0 80895660 8625001C */ lh $a1, 0x001C($s1) ## 0000001C -/* 004C4 80895664 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 004C8 80895668 0C00B2DD */ jal Flags_SetSwitch - -/* 004CC 8089566C 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000 -/* 004D0 80895670 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 004D4 80895674 26250024 */ addiu $a1, $s1, 0x0024 ## $a1 = 00000024 -/* 004D8 80895678 24060028 */ addiu $a2, $zero, 0x0028 ## $a2 = 00000028 -/* 004DC 8089567C 0C01AEB6 */ jal Audio_PlaySoundAtPosition - -/* 004E0 80895680 24072810 */ addiu $a3, $zero, 0x2810 ## $a3 = 00002810 -/* 004E4 80895684 0C00B55C */ jal Actor_Kill - -/* 004E8 80895688 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 004EC 8089568C 10000007 */ beq $zero, $zero, .L808956AC -/* 004F0 80895690 8FBF001C */ lw $ra, 0x001C($sp) -.L80895694: -/* 004F4 80895694 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00001E60 -/* 004F8 80895698 02012821 */ addu $a1, $s0, $at -/* 004FC 8089569C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00500 808956A0 0C01767D */ jal CollisionCheck_SetAC - ## CollisionCheck_setAC -/* 00504 808956A4 26260168 */ addiu $a2, $s1, 0x0168 ## $a2 = 00000168 -/* 00508 808956A8 8FBF001C */ lw $ra, 0x001C($sp) -.L808956AC: -/* 0050C 808956AC 8FB00014 */ lw $s0, 0x0014($sp) -/* 00510 808956B0 8FB10018 */ lw $s1, 0x0018($sp) -/* 00514 808956B4 03E00008 */ jr $ra -/* 00518 808956B8 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/func_808951A0.s b/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/func_808951A0.s deleted file mode 100644 index 8ce64eccb9..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/func_808951A0.s +++ /dev/null @@ -1,50 +0,0 @@ -.rdata -glabel D_80895770 - .asciz "Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n" - .balign 4 - -glabel D_808957B0 - .asciz "../z_bg_jya_bombiwa.c" - .balign 4 - -.text -glabel func_808951A0 -/* 00000 808951A0 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8 -/* 00004 808951A4 AFBF0024 */ sw $ra, 0x0024($sp) -/* 00008 808951A8 AFB00020 */ sw $s0, 0x0020($sp) -/* 0000C 808951AC AFA5003C */ sw $a1, 0x003C($sp) -/* 00010 808951B0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00014 808951B4 AFA60040 */ sw $a2, 0x0040($sp) -/* 00018 808951B8 AFA00030 */ sw $zero, 0x0030($sp) -/* 0001C 808951BC 0C010D20 */ jal DynaPolyInfo_SetActorMove - -/* 00020 808951C0 00E02825 */ or $a1, $a3, $zero ## $a1 = 00000000 -/* 00024 808951C4 8FA40040 */ lw $a0, 0x0040($sp) -/* 00028 808951C8 0C010620 */ jal DynaPolyInfo_Alloc - -/* 0002C 808951CC 27A50030 */ addiu $a1, $sp, 0x0030 ## $a1 = FFFFFFF8 -/* 00030 808951D0 8FA4003C */ lw $a0, 0x003C($sp) -/* 00034 808951D4 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000 -/* 00038 808951D8 8FA70030 */ lw $a3, 0x0030($sp) -/* 0003C 808951DC 0C00FA9D */ jal DynaPolyInfo_RegisterActor - ## DynaPolyInfo_setActor -/* 00040 808951E0 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810 -/* 00044 808951E4 24010032 */ addiu $at, $zero, 0x0032 ## $at = 00000032 -/* 00048 808951E8 1441000A */ bne $v0, $at, .L80895214 -/* 0004C 808951EC AE02014C */ sw $v0, 0x014C($s0) ## 0000014C -/* 00050 808951F0 860E001C */ lh $t6, 0x001C($s0) ## 0000001C -/* 00054 808951F4 3C048089 */ lui $a0, %hi(D_80895770) ## $a0 = 80890000 -/* 00058 808951F8 3C058089 */ lui $a1, %hi(D_808957B0) ## $a1 = 80890000 -/* 0005C 808951FC 86070000 */ lh $a3, 0x0000($s0) ## 00000000 -/* 00060 80895200 24A557B0 */ addiu $a1, $a1, %lo(D_808957B0) ## $a1 = 808957B0 -/* 00064 80895204 24845770 */ addiu $a0, $a0, %lo(D_80895770) ## $a0 = 80895770 -/* 00068 80895208 240600AE */ addiu $a2, $zero, 0x00AE ## $a2 = 000000AE -/* 0006C 8089520C 0C00084C */ jal osSyncPrintf - -/* 00070 80895210 AFAE0010 */ sw $t6, 0x0010($sp) -.L80895214: -/* 00074 80895214 8FBF0024 */ lw $ra, 0x0024($sp) -/* 00078 80895218 8FB00020 */ lw $s0, 0x0020($sp) -/* 0007C 8089521C 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000 -/* 00080 80895220 03E00008 */ jr $ra -/* 00084 80895224 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/func_80895228.s b/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/func_80895228.s deleted file mode 100644 index d743719150..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/func_80895228.s +++ /dev/null @@ -1,22 +0,0 @@ -glabel func_80895228 -/* 00088 80895228 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8 -/* 0008C 8089522C 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000 -/* 00090 80895230 AFA5002C */ sw $a1, 0x002C($sp) -/* 00094 80895234 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 00098 80895238 AFBF001C */ sw $ra, 0x001C($sp) -/* 0009C 8089523C 24C50168 */ addiu $a1, $a2, 0x0168 ## $a1 = 00000168 -/* 000A0 80895240 AFA50020 */ sw $a1, 0x0020($sp) -/* 000A4 80895244 0C016EFE */ jal Collider_InitJntSph -/* 000A8 80895248 AFA60028 */ sw $a2, 0x0028($sp) -/* 000AC 8089524C 8FA60028 */ lw $a2, 0x0028($sp) -/* 000B0 80895250 3C078089 */ lui $a3, %hi(D_80895744) ## $a3 = 80890000 -/* 000B4 80895254 8FA50020 */ lw $a1, 0x0020($sp) -/* 000B8 80895258 24CE0188 */ addiu $t6, $a2, 0x0188 ## $t6 = 00000188 -/* 000BC 8089525C AFAE0010 */ sw $t6, 0x0010($sp) -/* 000C0 80895260 24E75744 */ addiu $a3, $a3, %lo(D_80895744) ## $a3 = 80895744 -/* 000C4 80895264 0C017014 */ jal Collider_SetJntSph -/* 000C8 80895268 8FA4002C */ lw $a0, 0x002C($sp) -/* 000CC 8089526C 8FBF001C */ lw $ra, 0x001C($sp) -/* 000D0 80895270 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000 -/* 000D4 80895274 03E00008 */ jr $ra -/* 000D8 80895278 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/func_8089539C.s b/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/func_8089539C.s deleted file mode 100644 index 0592e0f398..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/func_8089539C.s +++ /dev/null @@ -1,185 +0,0 @@ -.late_rodata -glabel D_80895854 - .word 0x3FE66666 -glabel D_80895858 - .float 0.4 - -.text -glabel func_8089539C -/* 001FC 8089539C 27BDFF38 */ addiu $sp, $sp, 0xFF38 ## $sp = FFFFFF38 -/* 00200 808953A0 F7BE0070 */ sdc1 $f30, 0x0070($sp) -/* 00204 808953A4 3C014140 */ lui $at, 0x4140 ## $at = 41400000 -/* 00208 808953A8 4481F000 */ mtc1 $at, $f30 ## $f30 = 12.00 -/* 0020C 808953AC F7BC0068 */ sdc1 $f28, 0x0068($sp) -/* 00210 808953B0 3C01430C */ lui $at, 0x430C ## $at = 430C0000 -/* 00214 808953B4 4481E000 */ mtc1 $at, $f28 ## $f28 = 140.00 -/* 00218 808953B8 F7BA0060 */ sdc1 $f26, 0x0060($sp) -/* 0021C 808953BC 3C014120 */ lui $at, 0x4120 ## $at = 41200000 -/* 00220 808953C0 4481D000 */ mtc1 $at, $f26 ## $f26 = 10.00 -/* 00224 808953C4 F7B80058 */ sdc1 $f24, 0x0058($sp) -/* 00228 808953C8 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000 -/* 0022C 808953CC 4481C000 */ mtc1 $at, $f24 ## $f24 = 0.50 -/* 00230 808953D0 F7B60050 */ sdc1 $f22, 0x0050($sp) -/* 00234 808953D4 3C014220 */ lui $at, 0x4220 ## $at = 42200000 -/* 00238 808953D8 4481B000 */ mtc1 $at, $f22 ## $f22 = 40.00 -/* 0023C 808953DC AFBE0098 */ sw $s8, 0x0098($sp) -/* 00240 808953E0 F7B40048 */ sdc1 $f20, 0x0048($sp) -/* 00244 808953E4 3C0142A0 */ lui $at, 0x42A0 ## $at = 42A00000 -/* 00248 808953E8 AFB70094 */ sw $s7, 0x0094($sp) -/* 0024C 808953EC AFB60090 */ sw $s6, 0x0090($sp) -/* 00250 808953F0 AFB5008C */ sw $s5, 0x008C($sp) -/* 00254 808953F4 AFB20080 */ sw $s2, 0x0080($sp) -/* 00258 808953F8 3C1E0601 */ lui $s8, 0x0601 ## $s8 = 06010000 -/* 0025C 808953FC 4481A000 */ mtc1 $at, $f20 ## $f20 = 80.00 -/* 00260 80895400 0080A825 */ or $s5, $a0, $zero ## $s5 = 00000000 -/* 00264 80895404 AFBF009C */ sw $ra, 0x009C($sp) -/* 00268 80895408 AFB40088 */ sw $s4, 0x0088($sp) -/* 0026C 8089540C AFB30084 */ sw $s3, 0x0084($sp) -/* 00270 80895410 AFB1007C */ sw $s1, 0x007C($sp) -/* 00274 80895414 AFB00078 */ sw $s0, 0x0078($sp) -/* 00278 80895418 AFA500CC */ sw $a1, 0x00CC($sp) -/* 0027C 8089541C 27DEEDC0 */ addiu $s8, $s8, 0xEDC0 ## $s8 = 0600EDC0 -/* 00280 80895420 00009025 */ or $s2, $zero, $zero ## $s2 = 00000000 -/* 00284 80895424 27B600BC */ addiu $s6, $sp, 0x00BC ## $s6 = FFFFFFF4 -/* 00288 80895428 27B700B0 */ addiu $s7, $sp, 0x00B0 ## $s7 = FFFFFFE8 -/* 0028C 8089542C 2413000C */ addiu $s3, $zero, 0x000C ## $s3 = 0000000C -.L80895430: -/* 00290 80895430 0C03F66B */ jal Math_Rand_ZeroOne - ## Rand.Next() float -/* 00294 80895434 24140008 */ addiu $s4, $zero, 0x0008 ## $s4 = 00000008 -/* 00298 80895438 46140102 */ mul.s $f4, $f0, $f20 -/* 0029C 8089543C C6A60024 */ lwc1 $f6, 0x0024($s5) ## 00000024 -/* 002A0 80895440 46062200 */ add.s $f8, $f4, $f6 -/* 002A4 80895444 46164281 */ sub.s $f10, $f8, $f22 -/* 002A8 80895448 0C03F66B */ jal Math_Rand_ZeroOne - ## Rand.Next() float -/* 002AC 8089544C E7AA00BC */ swc1 $f10, 0x00BC($sp) -/* 002B0 80895450 461C0402 */ mul.s $f16, $f0, $f28 -/* 002B4 80895454 C6B20028 */ lwc1 $f18, 0x0028($s5) ## 00000028 -/* 002B8 80895458 46128100 */ add.s $f4, $f16, $f18 -/* 002BC 8089545C 0C03F66B */ jal Math_Rand_ZeroOne - ## Rand.Next() float -/* 002C0 80895460 E7A400C0 */ swc1 $f4, 0x00C0($sp) -/* 002C4 80895464 46140182 */ mul.s $f6, $f0, $f20 -/* 002C8 80895468 C6A8002C */ lwc1 $f8, 0x002C($s5) ## 0000002C -/* 002CC 8089546C 46083280 */ add.s $f10, $f6, $f8 -/* 002D0 80895470 46165401 */ sub.s $f16, $f10, $f22 -/* 002D4 80895474 0C03F66B */ jal Math_Rand_ZeroOne - ## Rand.Next() float -/* 002D8 80895478 E7B000C4 */ swc1 $f16, 0x00C4($sp) -/* 002DC 8089547C 46180481 */ sub.s $f18, $f0, $f24 -/* 002E0 80895480 461A9102 */ mul.s $f4, $f18, $f26 -/* 002E4 80895484 0C03F66B */ jal Math_Rand_ZeroOne - ## Rand.Next() float -/* 002E8 80895488 E7A400B0 */ swc1 $f4, 0x00B0($sp) -/* 002EC 8089548C 461E0182 */ mul.s $f6, $f0, $f30 -/* 002F0 80895490 0C03F66B */ jal Math_Rand_ZeroOne - ## Rand.Next() float -/* 002F4 80895494 E7A600B4 */ swc1 $f6, 0x00B4($sp) -/* 002F8 80895498 44928000 */ mtc1 $s2, $f16 ## $f16 = 0.00 -/* 002FC 8089549C 46180201 */ sub.s $f8, $f0, $f24 -/* 00300 808954A0 3C018089 */ lui $at, %hi(D_80895854) ## $at = 80890000 -/* 00304 808954A4 C4245854 */ lwc1 $f4, %lo(D_80895854)($at) -/* 00308 808954A8 468084A0 */ cvt.s.w $f18, $f16 -/* 0030C 808954AC 461A4282 */ mul.s $f10, $f8, $f26 -/* 00310 808954B0 24100001 */ addiu $s0, $zero, 0x0001 ## $s0 = 00000001 -/* 00314 808954B4 46049182 */ mul.s $f6, $f18, $f4 -/* 00318 808954B8 E7AA00B8 */ swc1 $f10, 0x00B8($sp) -/* 0031C 808954BC 4600320D */ trunc.w.s $f8, $f6 -/* 00320 808954C0 44114000 */ mfc1 $s1, $f8 -/* 00324 808954C4 00000000 */ nop -/* 00328 808954C8 26310003 */ addiu $s1, $s1, 0x0003 ## $s1 = 00000003 -/* 0032C 808954CC 00118C00 */ sll $s1, $s1, 16 -/* 00330 808954D0 00118C03 */ sra $s1, $s1, 16 -/* 00334 808954D4 2A210010 */ slti $at, $s1, 0x0010 -/* 00338 808954D8 14200003 */ bne $at, $zero, .L808954E8 -/* 0033C 808954DC 00000000 */ nop -/* 00340 808954E0 10000001 */ beq $zero, $zero, .L808954E8 -/* 00344 808954E4 24100005 */ addiu $s0, $zero, 0x0005 ## $s0 = 00000005 -.L808954E8: -/* 00348 808954E8 0C03F66B */ jal Math_Rand_ZeroOne - ## Rand.Next() float -/* 0034C 808954EC 00000000 */ nop -/* 00350 808954F0 3C018089 */ lui $at, %hi(D_80895858) ## $at = 80890000 -/* 00354 808954F4 C42A5858 */ lwc1 $f10, %lo(D_80895858)($at) -/* 00358 808954F8 8FA400CC */ lw $a0, 0x00CC($sp) -/* 0035C 808954FC 02C02825 */ or $a1, $s6, $zero ## $a1 = FFFFFFF4 -/* 00360 80895500 460A003C */ c.lt.s $f0, $f10 -/* 00364 80895504 02E03025 */ or $a2, $s7, $zero ## $a2 = FFFFFFE8 -/* 00368 80895508 02C03825 */ or $a3, $s6, $zero ## $a3 = FFFFFFF4 -/* 0036C 8089550C 240FFE70 */ addiu $t7, $zero, 0xFE70 ## $t7 = FFFFFE70 -/* 00370 80895510 45000005 */ bc1f .L80895528 -/* 00374 80895514 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001 -/* 00378 80895518 36100040 */ ori $s0, $s0, 0x0040 ## $s0 = 00000045 -/* 0037C 8089551C 00108400 */ sll $s0, $s0, 16 -/* 00380 80895520 10000008 */ beq $zero, $zero, .L80895544 -/* 00384 80895524 00108403 */ sra $s0, $s0, 16 -.L80895528: -/* 00388 80895528 36100020 */ ori $s0, $s0, 0x0020 ## $s0 = 00000065 -/* 0038C 8089552C 00108400 */ sll $s0, $s0, 16 -/* 00390 80895530 2A21000A */ slti $at, $s1, 0x000A -/* 00394 80895534 10200003 */ beq $at, $zero, .L80895544 -/* 00398 80895538 00108403 */ sra $s0, $s0, 16 -/* 0039C 8089553C 24130050 */ addiu $s3, $zero, 0x0050 ## $s3 = 00000050 -/* 003A0 80895540 24140050 */ addiu $s4, $zero, 0x0050 ## $s4 = 00000050 -.L80895544: -/* 003A4 80895544 24190014 */ addiu $t9, $zero, 0x0014 ## $t9 = 00000014 -/* 003A8 80895548 24080050 */ addiu $t0, $zero, 0x0050 ## $t0 = 00000050 -/* 003AC 8089554C 2409FFFF */ addiu $t1, $zero, 0xFFFF ## $t1 = FFFFFFFF -/* 003B0 80895550 240A00F1 */ addiu $t2, $zero, 0x00F1 ## $t2 = 000000F1 -/* 003B4 80895554 AFAA0038 */ sw $t2, 0x0038($sp) -/* 003B8 80895558 AFA90034 */ sw $t1, 0x0034($sp) -/* 003BC 8089555C AFA80030 */ sw $t0, 0x0030($sp) -/* 003C0 80895560 AFB9002C */ sw $t9, 0x002C($sp) -/* 003C4 80895564 AFAF0010 */ sw $t7, 0x0010($sp) -/* 003C8 80895568 AFB00014 */ sw $s0, 0x0014($sp) -/* 003CC 8089556C AFB30018 */ sw $s3, 0x0018($sp) -/* 003D0 80895570 AFB4001C */ sw $s4, 0x001C($sp) -/* 003D4 80895574 AFA00020 */ sw $zero, 0x0020($sp) -/* 003D8 80895578 AFB10024 */ sw $s1, 0x0024($sp) -/* 003DC 8089557C AFB80028 */ sw $t8, 0x0028($sp) -/* 003E0 80895580 0C00A7A3 */ jal func_80029E8C - -/* 003E4 80895584 AFBE003C */ sw $s8, 0x003C($sp) -/* 003E8 80895588 26520001 */ addiu $s2, $s2, 0x0001 ## $s2 = 00000001 -/* 003EC 8089558C 24010010 */ addiu $at, $zero, 0x0010 ## $at = 00000010 -/* 003F0 80895590 5641FFA7 */ bnel $s2, $at, .L80895430 -/* 003F4 80895594 2413000C */ addiu $s3, $zero, 0x000C ## $s3 = 0000000C -/* 003F8 80895598 C6B00024 */ lwc1 $f16, 0x0024($s5) ## 00000024 -/* 003FC 8089559C 3C01428C */ lui $at, 0x428C ## $at = 428C0000 -/* 00400 808955A0 44812000 */ mtc1 $at, $f4 ## $f4 = 70.00 -/* 00404 808955A4 E7B000BC */ swc1 $f16, 0x00BC($sp) -/* 00408 808955A8 C6B20028 */ lwc1 $f18, 0x0028($s5) ## 00000028 -/* 0040C 808955AC 240B0064 */ addiu $t3, $zero, 0x0064 ## $t3 = 00000064 -/* 00410 808955B0 240C00A0 */ addiu $t4, $zero, 0x00A0 ## $t4 = 000000A0 -/* 00414 808955B4 46049180 */ add.s $f6, $f18, $f4 -/* 00418 808955B8 240D0001 */ addiu $t5, $zero, 0x0001 ## $t5 = 00000001 -/* 0041C 808955BC 8FA400CC */ lw $a0, 0x00CC($sp) -/* 00420 808955C0 02C02825 */ or $a1, $s6, $zero ## $a1 = FFFFFFF4 -/* 00424 808955C4 E7A600C0 */ swc1 $f6, 0x00C0($sp) -/* 00428 808955C8 C6A8002C */ lwc1 $f8, 0x002C($s5) ## 0000002C -/* 0042C 808955CC AFAD0018 */ sw $t5, 0x0018($sp) -/* 00430 808955D0 AFAC0014 */ sw $t4, 0x0014($sp) -/* 00434 808955D4 AFAB0010 */ sw $t3, 0x0010($sp) -/* 00438 808955D8 3C0642C8 */ lui $a2, 0x42C8 ## $a2 = 42C80000 -/* 0043C 808955DC 2407000A */ addiu $a3, $zero, 0x000A ## $a3 = 0000000A -/* 00440 808955E0 0C00CD20 */ jal func_80033480 -/* 00444 808955E4 E7A800C4 */ swc1 $f8, 0x00C4($sp) -/* 00448 808955E8 8FBF009C */ lw $ra, 0x009C($sp) -/* 0044C 808955EC D7B40048 */ ldc1 $f20, 0x0048($sp) -/* 00450 808955F0 D7B60050 */ ldc1 $f22, 0x0050($sp) -/* 00454 808955F4 D7B80058 */ ldc1 $f24, 0x0058($sp) -/* 00458 808955F8 D7BA0060 */ ldc1 $f26, 0x0060($sp) -/* 0045C 808955FC D7BC0068 */ ldc1 $f28, 0x0068($sp) -/* 00460 80895600 D7BE0070 */ ldc1 $f30, 0x0070($sp) -/* 00464 80895604 8FB00078 */ lw $s0, 0x0078($sp) -/* 00468 80895608 8FB1007C */ lw $s1, 0x007C($sp) -/* 0046C 8089560C 8FB20080 */ lw $s2, 0x0080($sp) -/* 00470 80895610 8FB30084 */ lw $s3, 0x0084($sp) -/* 00474 80895614 8FB40088 */ lw $s4, 0x0088($sp) -/* 00478 80895618 8FB5008C */ lw $s5, 0x008C($sp) -/* 0047C 8089561C 8FB60090 */ lw $s6, 0x0090($sp) -/* 00480 80895620 8FB70094 */ lw $s7, 0x0094($sp) -/* 00484 80895624 8FBE0098 */ lw $s8, 0x0098($sp) -/* 00488 80895628 03E00008 */ jr $ra -/* 0048C 8089562C 27BD00C8 */ addiu $sp, $sp, 0x00C8 ## $sp = 00000000 diff --git a/data/overlays/actors/z_bg_jya_bombiwa.data.s b/data/overlays/actors/z_bg_jya_bombiwa.data.s deleted file mode 100644 index 9af99f3fc3..0000000000 --- a/data/overlays/actors/z_bg_jya_bombiwa.data.s +++ /dev/null @@ -1,25 +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_Bombiwa_InitVars - .word 0x015B0100, 0x00000000, 0x00F10000, 0x000001C8 -.word BgJyaBombiwa_Init -.word BgJyaBombiwa_Destroy -.word BgJyaBombiwa_Update -.word BgJyaBombiwa_Draw -glabel D_80895720 - .word 0x00000000, 0x00000000, 0x00000000, 0x00000008, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00320064 -glabel D_80895744 - .word 0x0A000900, 0x00000000, 0x00000001 -.word D_80895720 -glabel D_80895754 - .word 0xC8500064, 0xB0F403E8, 0xB0F801F4, 0x30FC03E8, 0x00000000, 0x00000000, 0x00000000 - diff --git a/data/overlays/actors/z_bg_jya_bombiwa.reloc.s b/data/overlays/actors/z_bg_jya_bombiwa.reloc.s deleted file mode 100644 index f594f23d92..0000000000 --- a/data/overlays/actors/z_bg_jya_bombiwa.reloc.s +++ /dev/null @@ -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_80895860 - .incbin "baserom/ovl_Bg_Jya_Bombiwa", 0x6C0, 0x00000090 diff --git a/include/functions.h b/include/functions.h index 34735a00ca..5173a5631a 100644 --- a/include/functions.h +++ b/include/functions.h @@ -260,7 +260,7 @@ void EffectSsFhgFlash_Spawn2(GlobalContext *, Actor *, Vec3f *, s16, u8); // ? func_80029DBC(?); void func_80029E8C(GlobalContext* globalCtx, Vec3f* burstDepthY, Vec3f* burstDepthX, Vec3f* burstOrigin, s16 gravityInfluence, s16 u0, s16 rotSpeed, s16 burstVel, u8 u1, s16 scale, u8 u2, s16 jitter, - s32 duration, s16 u3, s16 objectId, u32 dList); + s32 duration, s16 u3, s16 objectId, Gfx* dList); void EffectSsSolderSrchBall_Spawn(GlobalContext* globalCtx, Vec3f* pos, Vec3f* velocity, Vec3f* accel, s16 arg4, s16* linkDetected); // ? func_80029F44(?); diff --git a/spec b/spec index 846ac5a9d0..02ec3e8586 100644 --- a/spec +++ b/spec @@ -996,8 +996,7 @@ endseg beginseg name "ovl_Bg_Jya_Bombiwa" include "build/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.o" - include "build/data/overlays/actors/z_bg_jya_bombiwa.data.o" - include "build/data/overlays/actors/z_bg_jya_bombiwa.reloc.o" + include "build/src/overlays/actors/ovl_Bg_Jya_Bombiwa/ovl_Bg_Jya_Bombiwa_reloc.o" endseg beginseg diff --git a/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c b/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c index eb9fe9ae24..0c04e81568 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c +++ b/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c @@ -1,4 +1,5 @@ #include "z_bg_jya_bombiwa.h" +#include #define FLAGS 0x00000000 @@ -9,7 +10,6 @@ void BgJyaBombiwa_Destroy(Actor* thisx, GlobalContext* globalCtx); void BgJyaBombiwa_Update(Actor* thisx, GlobalContext* globalCtx); void BgJyaBombiwa_Draw(Actor* thisx, GlobalContext* globalCtx); -/* const ActorInit Bg_Jya_Bombiwa_InitVars = { ACTOR_BG_JYA_BOMBIWA, ACTORTYPE_BG, @@ -21,17 +21,141 @@ const ActorInit Bg_Jya_Bombiwa_InitVars = { (ActorFunc)BgJyaBombiwa_Update, (ActorFunc)BgJyaBombiwa_Draw, }; -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/func_808951A0.s") -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/func_80895228.s") +static ColliderJntSphItemInit sJntSphItemsInit[] = { + { + { 0x00, { 0x00000000, 0x00, 0x00 }, { 0x00000008, 0x00, 0x00 }, 0x00, 0x01, 0x00 }, + { 0, { { 0, 0, 0 }, 50 }, 100 }, + }, +}; +static ColliderJntSphInit sJntSphInit = { + { COLTYPE_UNK10, 0x00, 0x09, 0x00, 0x00, COLSHAPE_JNTSPH }, + 1, + &sJntSphItemsInit, +}; +static InitChainEntry sInitChain[] = { + ICHAIN_VEC3F_DIV1000(scale, 100, 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_Bombiwa/BgJyaBombiwa_Init.s") +extern UNK_TYPE D_0600E710; +extern Gfx D_0600E490[]; +extern Gfx D_0600EDC0[]; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/BgJyaBombiwa_Destroy.s") +void BgJyaBombiwa_SetupDynaPoly(BgJyaBombiwa* this, GlobalContext* globalCtx, void* arg2, DynaPolyMoveFlag flag) { + s16 pad1; + s32 localConst = 0; + s16 pad2; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/func_8089539C.s") + DynaPolyInfo_SetActorMove(&this->dyna, flag); + DynaPolyInfo_Alloc(arg2, &localConst); + this->dyna.dynaPolyId = + DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, localConst); + if (this->dyna.dynaPolyId == 0x32) { -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/BgJyaBombiwa_Update.s") + // Warning: move BG registration failed + osSyncPrintf("Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n", "../z_bg_jya_bombiwa.c", 174, + this->dyna.actor.id, this->dyna.actor.params); + } +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Jya_Bombiwa/BgJyaBombiwa_Draw.s") +void BgJyaBombiwa_InitCollider(BgJyaBombiwa* this, GlobalContext* globalCtx) { + Actor* thisx = &this->dyna.actor; + + Collider_InitJntSph(globalCtx, &this->collider); + Collider_SetJntSph(globalCtx, &this->collider, thisx, &sJntSphInit, &this->colliderItems); +} + +void BgJyaBombiwa_Init(Actor* thisx, GlobalContext* globalCtx) { + if ((thisx->params & 0x3F) != 0x29) { + osSyncPrintf(VT_COL(YELLOW, BLACK)); + + // Warning: Switch Number changed (%s %d)(SW %d + osSyncPrintf("Warning : Switch Number が変更された(%s %d)(SW %d)\n", "../z_bg_jya_bombiwa.c", 218, + thisx->params & 0x3F); + osSyncPrintf(VT_SGR()); + } + BgJyaBombiwa_SetupDynaPoly(thisx, globalCtx, &D_0600E710, 0); + BgJyaBombiwa_InitCollider(thisx, globalCtx); + if (Flags_GetSwitch(globalCtx, thisx->params & 0x3F)) { + Actor_Kill(thisx); + } else { + Actor_ProcessInitChain(thisx, sInitChain); + + // Rock destroyed by jya bomb + osSyncPrintf("(jya 爆弾で破壊岩)(arg_data 0x%04x)\n", thisx->params); + } +} + +void BgJyaBombiwa_Destroy(Actor* thisx, GlobalContext* globalCtx) { + BgJyaBombiwa* this = THIS; + + DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId); + Collider_DestroyJntSph(globalCtx, &this->collider); +} + +void BgJyaBombiwa_Break(BgJyaBombiwa* this, GlobalContext* globalCtx) { + Vec3f temp; + Vec3f temp2; + s16 tempS; + s8 rotationSpeed; + s8 burstVelocity; + s32 i; + s16 tScale; + + for (i = 0; i < 16; i++) { + temp.x = ((Math_Rand_ZeroOne() * 80.0f) + this->dyna.actor.posRot.pos.x) - 40.0f; + temp.y = (Math_Rand_ZeroOne() * 140.0f) + this->dyna.actor.posRot.pos.y; + temp.z = ((Math_Rand_ZeroOne() * 80.0f) + this->dyna.actor.posRot.pos.z) - 40.0f; + temp2.x = (Math_Rand_ZeroOne() - 0.5f) * 10.0f; + temp2.y = Math_Rand_ZeroOne() * 12.0f; + temp2.z = (Math_Rand_ZeroOne() - 0.5f) * 10.0f; + tScale = (s32)(i * 1.8f) + 3; + if (tScale > 15) { + tempS = 5; + } else { + tempS = 1; + } + if (Math_Rand_ZeroOne() < 0.4f) { + tempS |= 0x40; + rotationSpeed = 0xC; + burstVelocity = 8; + } else { + tempS |= 0x20; + rotationSpeed = 0xC; + burstVelocity = 8; + if (tScale < 10) { + rotationSpeed = 0x50; + burstVelocity = 80; + } + } + func_80029E8C(globalCtx, &temp, &temp2, &temp, -400, tempS, rotationSpeed, burstVelocity, 0, tScale, 1, 20, 80, + -1, OBJECT_JYA_OBJ, D_0600EDC0); + } + temp.x = this->dyna.actor.posRot.pos.x; + temp.y = this->dyna.actor.posRot.pos.y + 70.0f; + temp.z = this->dyna.actor.posRot.pos.z; + func_80033480(globalCtx, &temp, 100.0f, 0xA, 0x64, 0xA0, 1); +} + +void BgJyaBombiwa_Update(Actor* thisx, GlobalContext* globalCtx) { + BgJyaBombiwa* this = THIS; + + if (this->collider.base.acFlags & 2) { + BgJyaBombiwa_Break(this, globalCtx); + Flags_SetSwitch(globalCtx, this->dyna.actor.params & 0x3F); + Audio_PlaySoundAtPosition(globalCtx, &this->dyna.actor.posRot, 40, NA_SE_EV_WALL_BROKEN); + Actor_Kill(&this->dyna.actor); + } else { + CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->collider); + } +} + +void BgJyaBombiwa_Draw(Actor* thisx, GlobalContext* globalCtx) { + BgJyaBombiwa* this = THIS; + + Gfx_DrawDListOpa(globalCtx, D_0600E490); + func_800628A4(0, &this->collider); +} diff --git a/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.h b/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.h index cf7647119c..416459889a 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.h +++ b/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.h @@ -4,11 +4,14 @@ #include #include + struct BgJyaBombiwa; typedef struct BgJyaBombiwa { - /* 0x0000 */ Actor actor; - /* 0x014C */ char unk_14C[0x7C]; + /* 0x0000 */ DynaPolyActor dyna; + /* 0x0164 */ s32 unk_164; + /* 0x0168 */ ColliderJntSph collider; + /* 0x0188 */ ColliderJntSphItem colliderItems; } BgJyaBombiwa; // size = 0x01C8 extern const ActorInit Bg_Jya_Bombiwa_InitVars; diff --git a/undefined_syms.txt b/undefined_syms.txt index 514e3a0009..e6148ea833 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -206,6 +206,11 @@ D_0600E568 = 0x0600E568; D_060004A8 = 0x060004A8; D_060001F0 = 0x060001F0; +// z_bg_jya_bombiwa +D_0600E490 = 0x0600E490; +D_0600EDC0 = 0x0600EDC0; +D_0600E710 = 0x0600E710; + // z_bg_jya_amishutter D_0600C0A0 = 0x0600C0A0; D_0600C4C8 = 0x0600C4C8;