From e93d604ff7258c9a38161a6fa8c934ffb974d02b Mon Sep 17 00:00:00 2001 From: petrie911 <69443847+petrie911@users.noreply.github.com> Date: Mon, 28 Sep 2020 00:03:26 -0500 Subject: [PATCH] Bg_Mori_Hashigo (#400) * Darkmeiro decompilation Bg_Gnd_Darkmeiro decompiled, matched, and documented. * give this a shot * fix conflict * one more try * All but one * OK * merge and cleanup * wait for mori tex --- .../BgMoriHashigo_Destroy.s | 26 -- .../ovl_Bg_Mori_Hashigo/BgMoriHashigo_Init.s | 84 ------ .../BgMoriHashigo_Update.s | 18 -- .../ovl_Bg_Mori_Hashigo/func_808A2560.s | 50 ---- .../ovl_Bg_Mori_Hashigo/func_808A25E8.s | 45 --- .../ovl_Bg_Mori_Hashigo/func_808A2698.s | 71 ----- .../ovl_Bg_Mori_Hashigo/func_808A2770.s | 38 --- .../ovl_Bg_Mori_Hashigo/func_808A27F8.s | 18 -- .../ovl_Bg_Mori_Hashigo/func_808A2978.s | 5 - .../ovl_Bg_Mori_Hashigo/func_808A2988.s | 36 --- .../ovl_Bg_Mori_Hashigo/func_808A2A04.s | 5 - .../ovl_Bg_Mori_Hashigo/func_808A2A14.s | 30 -- .../ovl_Bg_Mori_Hashigo/func_808A2A78.s | 5 - .../ovl_Bg_Mori_Hashigo/func_808A2A88.s | 15 - .../ovl_Bg_Mori_Hashigo/func_808A2ABC.s | 15 - .../ovl_Bg_Mori_Hashigo/func_808A2AF4.s | 61 ---- .../ovl_Bg_Mori_Hashigo/func_808A2BD0.s | 8 - .../ovl_Bg_Mori_Hashigo/func_808A2C28.s | 105 ------- data/overlays/actors/z_bg_mori_hashigo.data.s | 29 -- .../overlays/actors/z_bg_mori_hashigo.reloc.s | 13 - spec | 3 +- .../ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c | 277 ++++++++++++++++-- .../ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.h | 11 +- undefined_syms.txt | 5 + 24 files changed, 272 insertions(+), 701 deletions(-) delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/BgMoriHashigo_Destroy.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/BgMoriHashigo_Init.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/BgMoriHashigo_Update.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2560.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A25E8.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2698.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2770.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A27F8.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2978.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2988.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2A04.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2A14.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2A78.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2A88.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2ABC.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2AF4.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2BD0.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2C28.s delete mode 100644 data/overlays/actors/z_bg_mori_hashigo.data.s delete mode 100644 data/overlays/actors/z_bg_mori_hashigo.reloc.s diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/BgMoriHashigo_Destroy.s b/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/BgMoriHashigo_Destroy.s deleted file mode 100644 index 88530e5e4c..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/BgMoriHashigo_Destroy.s +++ /dev/null @@ -1,26 +0,0 @@ -glabel BgMoriHashigo_Destroy -/* 003C0 808A2920 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 003C4 808A2924 AFBF0014 */ sw $ra, 0x0014($sp) -/* 003C8 808A2928 AFA5001C */ sw $a1, 0x001C($sp) -/* 003CC 808A292C 8482001C */ lh $v0, 0x001C($a0) ## 0000001C -/* 003D0 808A2930 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000 -/* 003D4 808A2934 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 003D8 808A2938 14400006 */ bne $v0, $zero, .L808A2954 -/* 003DC 808A293C 24A50810 */ addiu $a1, $a1, 0x0810 ## $a1 = 00000810 -/* 003E0 808A2940 8CE6014C */ lw $a2, 0x014C($a3) ## 0000014C -/* 003E4 808A2944 0C00FB56 */ jal DynaPolyInfo_Free - ## DynaPolyInfo_delReserve -/* 003E8 808A2948 AFA70018 */ sw $a3, 0x0018($sp) -/* 003EC 808A294C 8FA70018 */ lw $a3, 0x0018($sp) -/* 003F0 808A2950 84E2001C */ lh $v0, 0x001C($a3) ## 0000001C -.L808A2954: -/* 003F4 808A2954 2401FFFF */ addiu $at, $zero, 0xFFFF ## $at = FFFFFFFF -/* 003F8 808A2958 14410003 */ bne $v0, $at, .L808A2968 -/* 003FC 808A295C 8FA4001C */ lw $a0, 0x001C($sp) -/* 00400 808A2960 0C016F32 */ jal Collider_DestroyJntSph -/* 00404 808A2964 24E50164 */ addiu $a1, $a3, 0x0164 ## $a1 = 00000164 -.L808A2968: -/* 00408 808A2968 8FBF0014 */ lw $ra, 0x0014($sp) -/* 0040C 808A296C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00410 808A2970 03E00008 */ jr $ra -/* 00414 808A2974 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/BgMoriHashigo_Init.s b/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/BgMoriHashigo_Init.s deleted file mode 100644 index 1fa37c8e5d..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/BgMoriHashigo_Init.s +++ /dev/null @@ -1,84 +0,0 @@ -.rdata -glabel D_808A2EB0 - .asciz "Error : バンク危険!(arg_data 0x%04x)(%s %d)\n" - .balign 4 - -glabel D_808A2EE0 - .asciz "../z_bg_mori_hashigo.c" - .balign 4 - -glabel D_808A2EF8 - .asciz "(森の神殿 梯子とその留め金)(arg_data 0x%04x)\n" - .balign 4 - -.text -glabel BgMoriHashigo_Init -/* 002D8 808A2838 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 002DC 808A283C AFBF001C */ sw $ra, 0x001C($sp) -/* 002E0 808A2840 AFB00018 */ sw $s0, 0x0018($sp) -/* 002E4 808A2844 AFA50024 */ sw $a1, 0x0024($sp) -/* 002E8 808A2848 8482001C */ lh $v0, 0x001C($a0) ## 0000001C -/* 002EC 808A284C 2401FFFF */ addiu $at, $zero, 0xFFFF ## $at = FFFFFFFF -/* 002F0 808A2850 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 002F4 808A2854 14410009 */ bne $v0, $at, .L808A287C -/* 002F8 808A2858 00000000 */ nop -/* 002FC 808A285C 0C2289DC */ jal func_808A2770 -/* 00300 808A2860 00000000 */ nop -/* 00304 808A2864 54400010 */ bnel $v0, $zero, .L808A28A8 -/* 00308 808A2868 8FA40024 */ lw $a0, 0x0024($sp) -/* 0030C 808A286C 0C00B55C */ jal Actor_Kill - -/* 00310 808A2870 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00314 808A2874 10000026 */ beq $zero, $zero, .L808A2910 -/* 00318 808A2878 8FBF001C */ lw $ra, 0x001C($sp) -.L808A287C: -/* 0031C 808A287C 14400009 */ bne $v0, $zero, .L808A28A4 -/* 00320 808A2880 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00324 808A2884 0C2289FE */ jal func_808A27F8 -/* 00328 808A2888 8FA50024 */ lw $a1, 0x0024($sp) -/* 0032C 808A288C 54400006 */ bnel $v0, $zero, .L808A28A8 -/* 00330 808A2890 8FA40024 */ lw $a0, 0x0024($sp) -/* 00334 808A2894 0C00B55C */ jal Actor_Kill - -/* 00338 808A2898 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 0033C 808A289C 1000001C */ beq $zero, $zero, .L808A2910 -/* 00340 808A28A0 8FBF001C */ lw $ra, 0x001C($sp) -.L808A28A4: -/* 00344 808A28A4 8FA40024 */ lw $a0, 0x0024($sp) -.L808A28A8: -/* 00348 808A28A8 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 0034C 808A28AC 342117A4 */ ori $at, $at, 0x17A4 ## $at = 000117A4 -/* 00350 808A28B0 24050073 */ addiu $a1, $zero, 0x0073 ## $a1 = 00000073 -/* 00354 808A28B4 0C02604B */ jal Object_GetIndex - ## ObjectIndex -/* 00358 808A28B8 00812021 */ addu $a0, $a0, $at -/* 0035C 808A28BC A20201CC */ sb $v0, 0x01CC($s0) ## 000001CC -/* 00360 808A28C0 820E01CC */ lb $t6, 0x01CC($s0) ## 000001CC -/* 00364 808A28C4 3C04808A */ lui $a0, %hi(D_808A2EB0) ## $a0 = 808A0000 -/* 00368 808A28C8 24842EB0 */ addiu $a0, $a0, %lo(D_808A2EB0) ## $a0 = 808A2EB0 -/* 0036C 808A28CC 05C10009 */ bgez $t6, .L808A28F4 -/* 00370 808A28D0 3C06808A */ lui $a2, %hi(D_808A2EE0) ## $a2 = 808A0000 -/* 00374 808A28D4 8605001C */ lh $a1, 0x001C($s0) ## 0000001C -/* 00378 808A28D8 24C62EE0 */ addiu $a2, $a2, %lo(D_808A2EE0) ## $a2 = 808A2EE0 -/* 0037C 808A28DC 0C00084C */ jal osSyncPrintf - -/* 00380 808A28E0 24070138 */ addiu $a3, $zero, 0x0138 ## $a3 = 00000138 -/* 00384 808A28E4 0C00B55C */ jal Actor_Kill - -/* 00388 808A28E8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 0038C 808A28EC 10000008 */ beq $zero, $zero, .L808A2910 -/* 00390 808A28F0 8FBF001C */ lw $ra, 0x001C($sp) -.L808A28F4: -/* 00394 808A28F4 0C228A5E */ jal func_808A2978 -/* 00398 808A28F8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 0039C 808A28FC 3C04808A */ lui $a0, %hi(D_808A2EF8) ## $a0 = 808A0000 -/* 003A0 808A2900 24842EF8 */ addiu $a0, $a0, %lo(D_808A2EF8) ## $a0 = 808A2EF8 -/* 003A4 808A2904 0C00084C */ jal osSyncPrintf - -/* 003A8 808A2908 8605001C */ lh $a1, 0x001C($s0) ## 0000001C -/* 003AC 808A290C 8FBF001C */ lw $ra, 0x001C($sp) -.L808A2910: -/* 003B0 808A2910 8FB00018 */ lw $s0, 0x0018($sp) -/* 003B4 808A2914 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 -/* 003B8 808A2918 03E00008 */ jr $ra -/* 003BC 808A291C 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/BgMoriHashigo_Update.s b/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/BgMoriHashigo_Update.s deleted file mode 100644 index 2ba6a871f6..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/BgMoriHashigo_Update.s +++ /dev/null @@ -1,18 +0,0 @@ -glabel BgMoriHashigo_Update -/* 0068C 808A2BEC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00690 808A2BF0 AFBF0014 */ sw $ra, 0x0014($sp) -/* 00694 808A2BF4 848201C8 */ lh $v0, 0x01C8($a0) ## 000001C8 -/* 00698 808A2BF8 18400002 */ blez $v0, .L808A2C04 -/* 0069C 808A2BFC 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF -/* 006A0 808A2C00 A48E01C8 */ sh $t6, 0x01C8($a0) ## 000001C8 -.L808A2C04: -/* 006A4 808A2C04 8C8201C4 */ lw $v0, 0x01C4($a0) ## 000001C4 -/* 006A8 808A2C08 50400004 */ beql $v0, $zero, .L808A2C1C -/* 006AC 808A2C0C 8FBF0014 */ lw $ra, 0x0014($sp) -/* 006B0 808A2C10 0040F809 */ jalr $ra, $v0 -/* 006B4 808A2C14 00000000 */ nop -/* 006B8 808A2C18 8FBF0014 */ lw $ra, 0x0014($sp) -.L808A2C1C: -/* 006BC 808A2C1C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 006C0 808A2C20 03E00008 */ jr $ra -/* 006C4 808A2C24 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2560.s b/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2560.s deleted file mode 100644 index 1326f0b242..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2560.s +++ /dev/null @@ -1,50 +0,0 @@ -.rdata -glabel D_808A2E10 - .asciz "Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n" - .balign 4 - -glabel D_808A2E50 - .asciz "../z_bg_mori_hashigo.c" - .balign 4 - -.text -glabel func_808A2560 -/* 00000 808A2560 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8 -/* 00004 808A2564 AFBF0024 */ sw $ra, 0x0024($sp) -/* 00008 808A2568 AFB00020 */ sw $s0, 0x0020($sp) -/* 0000C 808A256C AFA5003C */ sw $a1, 0x003C($sp) -/* 00010 808A2570 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00014 808A2574 AFA60040 */ sw $a2, 0x0040($sp) -/* 00018 808A2578 AFA00030 */ sw $zero, 0x0030($sp) -/* 0001C 808A257C 0C010D20 */ jal DynaPolyInfo_SetActorMove - -/* 00020 808A2580 00E02825 */ or $a1, $a3, $zero ## $a1 = 00000000 -/* 00024 808A2584 8FA40040 */ lw $a0, 0x0040($sp) -/* 00028 808A2588 0C010620 */ jal DynaPolyInfo_Alloc - -/* 0002C 808A258C 27A50030 */ addiu $a1, $sp, 0x0030 ## $a1 = FFFFFFF8 -/* 00030 808A2590 8FA4003C */ lw $a0, 0x003C($sp) -/* 00034 808A2594 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000 -/* 00038 808A2598 8FA70030 */ lw $a3, 0x0030($sp) -/* 0003C 808A259C 0C00FA9D */ jal DynaPolyInfo_RegisterActor - ## DynaPolyInfo_setActor -/* 00040 808A25A0 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810 -/* 00044 808A25A4 24010032 */ addiu $at, $zero, 0x0032 ## $at = 00000032 -/* 00048 808A25A8 1441000A */ bne $v0, $at, .L808A25D4 -/* 0004C 808A25AC AE02014C */ sw $v0, 0x014C($s0) ## 0000014C -/* 00050 808A25B0 860E001C */ lh $t6, 0x001C($s0) ## 0000001C -/* 00054 808A25B4 3C04808A */ lui $a0, %hi(D_808A2E10) ## $a0 = 808A0000 -/* 00058 808A25B8 3C05808A */ lui $a1, %hi(D_808A2E50) ## $a1 = 808A0000 -/* 0005C 808A25BC 86070000 */ lh $a3, 0x0000($s0) ## 00000000 -/* 00060 808A25C0 24A52E50 */ addiu $a1, $a1, %lo(D_808A2E50) ## $a1 = 808A2E50 -/* 00064 808A25C4 24842E10 */ addiu $a0, $a0, %lo(D_808A2E10) ## $a0 = 808A2E10 -/* 00068 808A25C8 240600A4 */ addiu $a2, $zero, 0x00A4 ## $a2 = 000000A4 -/* 0006C 808A25CC 0C00084C */ jal osSyncPrintf - -/* 00070 808A25D0 AFAE0010 */ sw $t6, 0x0010($sp) -.L808A25D4: -/* 00074 808A25D4 8FBF0024 */ lw $ra, 0x0024($sp) -/* 00078 808A25D8 8FB00020 */ lw $s0, 0x0020($sp) -/* 0007C 808A25DC 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000 -/* 00080 808A25E0 03E00008 */ jr $ra -/* 00084 808A25E4 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A25E8.s b/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A25E8.s deleted file mode 100644 index 327c4eea9a..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A25E8.s +++ /dev/null @@ -1,45 +0,0 @@ -glabel func_808A25E8 -/* 00088 808A25E8 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8 -/* 0008C 808A25EC 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000 -/* 00090 808A25F0 AFA5002C */ sw $a1, 0x002C($sp) -/* 00094 808A25F4 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 00098 808A25F8 AFBF001C */ sw $ra, 0x001C($sp) -/* 0009C 808A25FC 24C50164 */ addiu $a1, $a2, 0x0164 ## $a1 = 00000164 -/* 000A0 808A2600 AFA50020 */ sw $a1, 0x0020($sp) -/* 000A4 808A2604 0C016EFE */ jal Collider_InitJntSph -/* 000A8 808A2608 AFA60028 */ sw $a2, 0x0028($sp) -/* 000AC 808A260C 8FA60028 */ lw $a2, 0x0028($sp) -/* 000B0 808A2610 3C07808A */ lui $a3, %hi(D_808A2DC4) ## $a3 = 808A0000 -/* 000B4 808A2614 8FA50020 */ lw $a1, 0x0020($sp) -/* 000B8 808A2618 24CE0184 */ addiu $t6, $a2, 0x0184 ## $t6 = 00000184 -/* 000BC 808A261C AFAE0010 */ sw $t6, 0x0010($sp) -/* 000C0 808A2620 24E72DC4 */ addiu $a3, $a3, %lo(D_808A2DC4) ## $a3 = 808A2DC4 -/* 000C4 808A2624 0C017014 */ jal Collider_SetJntSph -/* 000C8 808A2628 8FA4002C */ lw $a0, 0x002C($sp) -/* 000CC 808A262C 8FA60028 */ lw $a2, 0x0028($sp) -/* 000D0 808A2630 C4C40024 */ lwc1 $f4, 0x0024($a2) ## 00000024 -/* 000D4 808A2634 8CD90180 */ lw $t9, 0x0180($a2) ## 00000180 -/* 000D8 808A2638 4600218D */ trunc.w.s $f6, $f4 -/* 000DC 808A263C 44183000 */ mfc1 $t8, $f6 -/* 000E0 808A2640 00000000 */ nop -/* 000E4 808A2644 A7380030 */ sh $t8, 0x0030($t9) ## 00000030 -/* 000E8 808A2648 C4C80028 */ lwc1 $f8, 0x0028($a2) ## 00000028 -/* 000EC 808A264C 8CCD0180 */ lw $t5, 0x0180($a2) ## 00000180 -/* 000F0 808A2650 24190013 */ addiu $t9, $zero, 0x0013 ## $t9 = 00000013 -/* 000F4 808A2654 4600428D */ trunc.w.s $f10, $f8 -/* 000F8 808A2658 440B5000 */ mfc1 $t3, $f10 -/* 000FC 808A265C 00000000 */ nop -/* 00100 808A2660 256C0015 */ addiu $t4, $t3, 0x0015 ## $t4 = 00000015 -/* 00104 808A2664 A5AC0032 */ sh $t4, 0x0032($t5) ## 00000032 -/* 00108 808A2668 C4D0002C */ lwc1 $f16, 0x002C($a2) ## 0000002C -/* 0010C 808A266C 8CD80180 */ lw $t8, 0x0180($a2) ## 00000180 -/* 00110 808A2670 4600848D */ trunc.w.s $f18, $f16 -/* 00114 808A2674 440F9000 */ mfc1 $t7, $f18 -/* 00118 808A2678 00000000 */ nop -/* 0011C 808A267C A70F0034 */ sh $t7, 0x0034($t8) ## 00000034 -/* 00120 808A2680 8CC80180 */ lw $t0, 0x0180($a2) ## 00000180 -/* 00124 808A2684 A5190036 */ sh $t9, 0x0036($t0) ## 00000036 -/* 00128 808A2688 8FBF001C */ lw $ra, 0x001C($sp) -/* 0012C 808A268C 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000 -/* 00130 808A2690 03E00008 */ jr $ra -/* 00134 808A2694 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2698.s b/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2698.s deleted file mode 100644 index 8ddb9a600f..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2698.s +++ /dev/null @@ -1,71 +0,0 @@ -.rdata -glabel D_808A2E68 - .asciz "Error : 梯子の発生失敗(%s %d)(arg_data 0x%04x)\n" - .balign 4 - -glabel D_808A2E98 - .asciz "../z_bg_mori_hashigo.c" - .balign 4 - -.text -glabel func_808A2698 -/* 00138 808A2698 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8 -/* 0013C 808A269C AFB00038 */ sw $s0, 0x0038($sp) -/* 00140 808A26A0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00144 808A26A4 AFBF003C */ sw $ra, 0x003C($sp) -/* 00148 808A26A8 AFA5004C */ sw $a1, 0x004C($sp) -/* 0014C 808A26AC 0C01DE0D */ jal Math_Coss - ## coss? -/* 00150 808A26B0 848400B6 */ lh $a0, 0x00B6($a0) ## 000000B6 -/* 00154 808A26B4 E7A00040 */ swc1 $f0, 0x0040($sp) -/* 00158 808A26B8 0C01DE1C */ jal Math_Sins - ## sins? -/* 0015C 808A26BC 860400B6 */ lh $a0, 0x00B6($s0) ## 000000B6 -/* 00160 808A26C0 3C0140C0 */ lui $at, 0x40C0 ## $at = 40C00000 -/* 00164 808A26C4 44818000 */ mtc1 $at, $f16 ## $f16 = 6.00 -/* 00168 808A26C8 C6060024 */ lwc1 $f6, 0x0024($s0) ## 00000024 -/* 0016C 808A26CC C7B20040 */ lwc1 $f18, 0x0040($sp) -/* 00170 808A26D0 46008102 */ mul.s $f4, $f16, $f0 -/* 00174 808A26D4 3C01C352 */ lui $at, 0xC352 ## $at = C3520000 -/* 00178 808A26D8 44815000 */ mtc1 $at, $f10 ## $f10 = -210.00 -/* 0017C 808A26DC C6080028 */ lwc1 $f8, 0x0028($s0) ## 00000028 -/* 00180 808A26E0 8FA6004C */ lw $a2, 0x004C($sp) -/* 00184 808A26E4 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 00188 808A26E8 460A4300 */ add.s $f12, $f8, $f10 -/* 0018C 808A26EC 240700E2 */ addiu $a3, $zero, 0x00E2 ## $a3 = 000000E2 -/* 00190 808A26F0 24C41C24 */ addiu $a0, $a2, 0x1C24 ## $a0 = 00001C24 -/* 00194 808A26F4 46062080 */ add.s $f2, $f4, $f6 -/* 00198 808A26F8 46128102 */ mul.s $f4, $f16, $f18 -/* 0019C 808A26FC C606002C */ lwc1 $f6, 0x002C($s0) ## 0000002C -/* 001A0 808A2700 E7AC0014 */ swc1 $f12, 0x0014($sp) -/* 001A4 808A2704 E7A20010 */ swc1 $f2, 0x0010($sp) -/* 001A8 808A2708 46062380 */ add.s $f14, $f4, $f6 -/* 001AC 808A270C E7AE0018 */ swc1 $f14, 0x0018($sp) -/* 001B0 808A2710 860E0030 */ lh $t6, 0x0030($s0) ## 00000030 -/* 001B4 808A2714 AFAE001C */ sw $t6, 0x001C($sp) -/* 001B8 808A2718 860F0032 */ lh $t7, 0x0032($s0) ## 00000032 -/* 001BC 808A271C AFAF0020 */ sw $t7, 0x0020($sp) -/* 001C0 808A2720 86180034 */ lh $t8, 0x0034($s0) ## 00000034 -/* 001C4 808A2724 AFA00028 */ sw $zero, 0x0028($sp) -/* 001C8 808A2728 0C00C916 */ jal Actor_SpawnAsChild - -/* 001CC 808A272C AFB80024 */ sw $t8, 0x0024($sp) -/* 001D0 808A2730 10400003 */ beq $v0, $zero, .L808A2740 -/* 001D4 808A2734 3C04808A */ lui $a0, %hi(D_808A2E68) ## $a0 = 808A0000 -/* 001D8 808A2738 10000008 */ beq $zero, $zero, .L808A275C -/* 001DC 808A273C 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001 -.L808A2740: -/* 001E0 808A2740 3C05808A */ lui $a1, %hi(D_808A2E98) ## $a1 = 808A0000 -/* 001E4 808A2744 24A52E98 */ addiu $a1, $a1, %lo(D_808A2E98) ## $a1 = 808A2E98 -/* 001E8 808A2748 24842E68 */ addiu $a0, $a0, %lo(D_808A2E68) ## $a0 = 808A2E68 -/* 001EC 808A274C 240600DC */ addiu $a2, $zero, 0x00DC ## $a2 = 000000DC -/* 001F0 808A2750 0C00084C */ jal osSyncPrintf - -/* 001F4 808A2754 8607001C */ lh $a3, 0x001C($s0) ## 0000001C -/* 001F8 808A2758 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000 -.L808A275C: -/* 001FC 808A275C 8FBF003C */ lw $ra, 0x003C($sp) -/* 00200 808A2760 8FB00038 */ lw $s0, 0x0038($sp) -/* 00204 808A2764 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000 -/* 00208 808A2768 03E00008 */ jr $ra -/* 0020C 808A276C 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2770.s b/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2770.s deleted file mode 100644 index d8c51aea3e..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2770.s +++ /dev/null @@ -1,38 +0,0 @@ -glabel func_808A2770 -/* 00210 808A2770 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 00214 808A2774 AFA50024 */ sw $a1, 0x0024($sp) -/* 00218 808A2778 AFBF001C */ sw $ra, 0x001C($sp) -/* 0021C 808A277C AFB00018 */ sw $s0, 0x0018($sp) -/* 00220 808A2780 3C05808A */ lui $a1, %hi(D_808A2DD4) ## $a1 = 808A0000 -/* 00224 808A2784 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00228 808A2788 0C01E037 */ jal Actor_ProcessInitChain - -/* 0022C 808A278C 24A52DD4 */ addiu $a1, $a1, %lo(D_808A2DD4) ## $a1 = 808A2DD4 -/* 00230 808A2790 8E0E0004 */ lw $t6, 0x0004($s0) ## 00000004 -/* 00234 808A2794 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00238 808A2798 3C05425C */ lui $a1, 0x425C ## $a1 = 425C0000 -/* 0023C 808A279C 35CF0001 */ ori $t7, $t6, 0x0001 ## $t7 = 00000001 -/* 00240 808A27A0 0C00B56E */ jal Actor_SetHeight - -/* 00244 808A27A4 AE0F0004 */ sw $t7, 0x0004($s0) ## 00000004 -/* 00248 808A27A8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 0024C 808A27AC 0C22897A */ jal func_808A25E8 -/* 00250 808A27B0 8FA50024 */ lw $a1, 0x0024($sp) -/* 00254 808A27B4 8618001C */ lh $t8, 0x001C($s0) ## 0000001C -/* 00258 808A27B8 2401FFFF */ addiu $at, $zero, 0xFFFF ## $at = FFFFFFFF -/* 0025C 808A27BC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00260 808A27C0 57010008 */ bnel $t8, $at, .L808A27E4 -/* 00264 808A27C4 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001 -/* 00268 808A27C8 0C2289A6 */ jal func_808A2698 -/* 0026C 808A27CC 8FA50024 */ lw $a1, 0x0024($sp) -/* 00270 808A27D0 54400004 */ bnel $v0, $zero, .L808A27E4 -/* 00274 808A27D4 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001 -/* 00278 808A27D8 10000002 */ beq $zero, $zero, .L808A27E4 -/* 0027C 808A27DC 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000 -/* 00280 808A27E0 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001 -.L808A27E4: -/* 00284 808A27E4 8FBF001C */ lw $ra, 0x001C($sp) -/* 00288 808A27E8 8FB00018 */ lw $s0, 0x0018($sp) -/* 0028C 808A27EC 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 -/* 00290 808A27F0 03E00008 */ jr $ra -/* 00294 808A27F4 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A27F8.s b/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A27F8.s deleted file mode 100644 index 422685ead7..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A27F8.s +++ /dev/null @@ -1,18 +0,0 @@ -glabel func_808A27F8 -/* 00298 808A27F8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 0029C 808A27FC AFBF0014 */ sw $ra, 0x0014($sp) -/* 002A0 808A2800 3C060600 */ lui $a2, 0x0600 ## $a2 = 06000000 -/* 002A4 808A2804 AFA40018 */ sw $a0, 0x0018($sp) -/* 002A8 808A2808 24C637D8 */ addiu $a2, $a2, 0x37D8 ## $a2 = 060037D8 -/* 002AC 808A280C 0C228958 */ jal func_808A2560 -/* 002B0 808A2810 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000 -/* 002B4 808A2814 3C05808A */ lui $a1, %hi(D_808A2DEC) ## $a1 = 808A0000 -/* 002B8 808A2818 24A52DEC */ addiu $a1, $a1, %lo(D_808A2DEC) ## $a1 = 808A2DEC -/* 002BC 808A281C 0C01E037 */ jal Actor_ProcessInitChain - -/* 002C0 808A2820 8FA40018 */ lw $a0, 0x0018($sp) -/* 002C4 808A2824 8FBF0014 */ lw $ra, 0x0014($sp) -/* 002C8 808A2828 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 002CC 808A282C 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001 -/* 002D0 808A2830 03E00008 */ jr $ra -/* 002D4 808A2834 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2978.s b/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2978.s deleted file mode 100644 index 5bc0660368..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2978.s +++ /dev/null @@ -1,5 +0,0 @@ -glabel func_808A2978 -/* 00418 808A2978 3C0E808A */ lui $t6, %hi(func_808A2988) ## $t6 = 808A0000 -/* 0041C 808A297C 25CE2988 */ addiu $t6, $t6, %lo(func_808A2988) ## $t6 = 808A2988 -/* 00420 808A2980 03E00008 */ jr $ra -/* 00424 808A2984 AC8E01C4 */ sw $t6, 0x01C4($a0) ## 000001C4 diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2988.s b/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2988.s deleted file mode 100644 index 0ce57a3460..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2988.s +++ /dev/null @@ -1,36 +0,0 @@ -glabel func_808A2988 -/* 00428 808A2988 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 0042C 808A298C AFB00018 */ sw $s0, 0x0018($sp) -/* 00430 808A2990 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 00434 808A2994 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00438 808A2998 342117A4 */ ori $at, $at, 0x17A4 ## $at = 000117A4 -/* 0043C 808A299C AFBF001C */ sw $ra, 0x001C($sp) -/* 00440 808A29A0 00A12021 */ addu $a0, $a1, $at -/* 00444 808A29A4 0C026062 */ jal Object_IsLoaded - -/* 00448 808A29A8 820501CC */ lb $a1, 0x01CC($s0) ## 000001CC -/* 0044C 808A29AC 50400011 */ beql $v0, $zero, .L808A29F4 -/* 00450 808A29B0 8FBF001C */ lw $ra, 0x001C($sp) -/* 00454 808A29B4 8602001C */ lh $v0, 0x001C($s0) ## 0000001C -/* 00458 808A29B8 2401FFFF */ addiu $at, $zero, 0xFFFF ## $at = FFFFFFFF -/* 0045C 808A29BC 14410005 */ bne $v0, $at, .L808A29D4 -/* 00460 808A29C0 00000000 */ nop -/* 00464 808A29C4 0C228A81 */ jal func_808A2A04 -/* 00468 808A29C8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 0046C 808A29CC 10000005 */ beq $zero, $zero, .L808A29E4 -/* 00470 808A29D0 00000000 */ nop -.L808A29D4: -/* 00474 808A29D4 14400003 */ bne $v0, $zero, .L808A29E4 -/* 00478 808A29D8 00000000 */ nop -/* 0047C 808A29DC 0C228A9E */ jal func_808A2A78 -/* 00480 808A29E0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -.L808A29E4: -/* 00484 808A29E4 3C0E808A */ lui $t6, %hi(func_808A2C28) ## $t6 = 808A0000 -/* 00488 808A29E8 25CE2C28 */ addiu $t6, $t6, %lo(func_808A2C28) ## $t6 = 808A2C28 -/* 0048C 808A29EC AE0E0134 */ sw $t6, 0x0134($s0) ## 00000134 -/* 00490 808A29F0 8FBF001C */ lw $ra, 0x001C($sp) -.L808A29F4: -/* 00494 808A29F4 8FB00018 */ lw $s0, 0x0018($sp) -/* 00498 808A29F8 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 -/* 0049C 808A29FC 03E00008 */ jr $ra -/* 004A0 808A2A00 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2A04.s b/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2A04.s deleted file mode 100644 index 6bc31f76c1..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2A04.s +++ /dev/null @@ -1,5 +0,0 @@ -glabel func_808A2A04 -/* 004A4 808A2A04 3C0E808A */ lui $t6, %hi(func_808A2A14) ## $t6 = 808A0000 -/* 004A8 808A2A08 25CE2A14 */ addiu $t6, $t6, %lo(func_808A2A14) ## $t6 = 808A2A14 -/* 004AC 808A2A0C 03E00008 */ jr $ra -/* 004B0 808A2A10 AC8E01C4 */ sw $t6, 0x01C4($a0) ## 000001C4 diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2A14.s b/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2A14.s deleted file mode 100644 index 4bc7987228..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2A14.s +++ /dev/null @@ -1,30 +0,0 @@ -glabel func_808A2A14 -/* 004B4 808A2A14 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 004B8 808A2A18 AFBF0014 */ sw $ra, 0x0014($sp) -/* 004BC 808A2A1C AFA5001C */ sw $a1, 0x001C($sp) -/* 004C0 808A2A20 848E01C8 */ lh $t6, 0x01C8($a0) ## 000001C8 -/* 004C4 808A2A24 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000 -/* 004C8 808A2A28 5DC00010 */ bgtzl $t6, .L808A2A6C -/* 004CC 808A2A2C 8FBF0014 */ lw $ra, 0x0014($sp) -/* 004D0 808A2A30 90820175 */ lbu $v0, 0x0175($a0) ## 00000175 -/* 004D4 808A2A34 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 004D8 808A2A38 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60 -/* 004DC 808A2A3C 304F0002 */ andi $t7, $v0, 0x0002 ## $t7 = 00000000 -/* 004E0 808A2A40 11E00005 */ beq $t7, $zero, .L808A2A58 -/* 004E4 808A2A44 3058FFFD */ andi $t8, $v0, 0xFFFD ## $t8 = 00000000 -/* 004E8 808A2A48 2419000A */ addiu $t9, $zero, 0x000A ## $t9 = 0000000A -/* 004EC 808A2A4C A0980175 */ sb $t8, 0x0175($a0) ## 00000175 -/* 004F0 808A2A50 10000005 */ beq $zero, $zero, .L808A2A68 -/* 004F4 808A2A54 A49901C8 */ sh $t9, 0x01C8($a0) ## 000001C8 -.L808A2A58: -/* 004F8 808A2A58 8FA4001C */ lw $a0, 0x001C($sp) -/* 004FC 808A2A5C 24E60164 */ addiu $a2, $a3, 0x0164 ## $a2 = 00000164 -/* 00500 808A2A60 0C01767D */ jal CollisionCheck_SetAC - ## CollisionCheck_setAC -/* 00504 808A2A64 00812821 */ addu $a1, $a0, $at -.L808A2A68: -/* 00508 808A2A68 8FBF0014 */ lw $ra, 0x0014($sp) -.L808A2A6C: -/* 0050C 808A2A6C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00510 808A2A70 03E00008 */ jr $ra -/* 00514 808A2A74 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2A78.s b/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2A78.s deleted file mode 100644 index 98afdcc273..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2A78.s +++ /dev/null @@ -1,5 +0,0 @@ -glabel func_808A2A78 -/* 00518 808A2A78 3C0E808A */ lui $t6, %hi(func_808A2A88) ## $t6 = 808A0000 -/* 0051C 808A2A7C 25CE2A88 */ addiu $t6, $t6, %lo(func_808A2A88) ## $t6 = 808A2A88 -/* 00520 808A2A80 03E00008 */ jr $ra -/* 00524 808A2A84 AC8E01C4 */ sw $t6, 0x01C4($a0) ## 000001C4 diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2A88.s b/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2A88.s deleted file mode 100644 index 025a69230b..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2A88.s +++ /dev/null @@ -1,15 +0,0 @@ -glabel func_808A2A88 -/* 00528 808A2A88 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 0052C 808A2A8C AFBF0014 */ sw $ra, 0x0014($sp) -/* 00530 808A2A90 AFA5001C */ sw $a1, 0x001C($sp) -/* 00534 808A2A94 8C820118 */ lw $v0, 0x0118($a0) ## 00000118 -/* 00538 808A2A98 844E01C8 */ lh $t6, 0x01C8($v0) ## 000001C8 -/* 0053C 808A2A9C 59C00004 */ blezl $t6, .L808A2AB0 -/* 00540 808A2AA0 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00544 808A2AA4 0C228AAF */ jal func_808A2ABC -/* 00548 808A2AA8 00000000 */ nop -/* 0054C 808A2AAC 8FBF0014 */ lw $ra, 0x0014($sp) -.L808A2AB0: -/* 00550 808A2AB0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00554 808A2AB4 03E00008 */ jr $ra -/* 00558 808A2AB8 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2ABC.s b/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2ABC.s deleted file mode 100644 index d634810819..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2ABC.s +++ /dev/null @@ -1,15 +0,0 @@ -glabel func_808A2ABC -/* 0055C 808A2ABC 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000 -/* 00560 808A2AC0 44812000 */ mtc1 $at, $f4 ## $f4 = -1.00 -/* 00564 808A2AC4 3C01C120 */ lui $at, 0xC120 ## $at = C1200000 -/* 00568 808A2AC8 44813000 */ mtc1 $at, $f6 ## $f6 = -10.00 -/* 0056C 808A2ACC 3C014000 */ lui $at, 0x4000 ## $at = 40000000 -/* 00570 808A2AD0 44814000 */ mtc1 $at, $f8 ## $f8 = 2.00 -/* 00574 808A2AD4 3C0E808A */ lui $t6, %hi(func_808A2AF4) ## $t6 = 808A0000 -/* 00578 808A2AD8 25CE2AF4 */ addiu $t6, $t6, %lo(func_808A2AF4) ## $t6 = 808A2AF4 -/* 0057C 808A2ADC A48001CA */ sh $zero, 0x01CA($a0) ## 000001CA -/* 00580 808A2AE0 AC8E01C4 */ sw $t6, 0x01C4($a0) ## 000001C4 -/* 00584 808A2AE4 E484006C */ swc1 $f4, 0x006C($a0) ## 0000006C -/* 00588 808A2AE8 E4860070 */ swc1 $f6, 0x0070($a0) ## 00000070 -/* 0058C 808A2AEC 03E00008 */ jr $ra -/* 00590 808A2AF0 E4880060 */ swc1 $f8, 0x0060($a0) ## 00000060 diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2AF4.s b/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2AF4.s deleted file mode 100644 index 5fcd56909d..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2AF4.s +++ /dev/null @@ -1,61 +0,0 @@ -glabel func_808A2AF4 -/* 00594 808A2AF4 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8 -/* 00598 808A2AF8 AFBF0024 */ sw $ra, 0x0024($sp) -/* 0059C 808A2AFC AFB00020 */ sw $s0, 0x0020($sp) -/* 005A0 808A2B00 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 005A4 808A2B04 0C00B638 */ jal Actor_MoveForward - -/* 005A8 808A2B08 AFA5002C */ sw $a1, 0x002C($sp) -/* 005AC 808A2B0C 960E0088 */ lhu $t6, 0x0088($s0) ## 00000088 -/* 005B0 808A2B10 8FA4002C */ lw $a0, 0x002C($sp) -/* 005B4 808A2B14 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 005B8 808A2B18 31CF0001 */ andi $t7, $t6, 0x0001 ## $t7 = 00000000 -/* 005BC 808A2B1C 51E00021 */ beql $t7, $zero, .L808A2BA4 -/* 005C0 808A2B20 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00 -/* 005C4 808A2B24 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00 -/* 005C8 808A2B28 C6040060 */ lwc1 $f4, 0x0060($s0) ## 00000060 -/* 005CC 808A2B2C 4600203C */ c.lt.s $f4, $f0 -/* 005D0 808A2B30 00000000 */ nop -/* 005D4 808A2B34 4502001B */ bc1fl .L808A2BA4 -/* 005D8 808A2B38 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00 -/* 005DC 808A2B3C 861801CA */ lh $t8, 0x01CA($s0) ## 000001CA -/* 005E0 808A2B40 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 005E4 808A2B44 2419001C */ addiu $t9, $zero, 0x001C ## $t9 = 0000001C -/* 005E8 808A2B48 2B010003 */ slti $at, $t8, 0x0003 -/* 005EC 808A2B4C 54200006 */ bnel $at, $zero, .L808A2B68 -/* 005F0 808A2B50 44060000 */ mfc1 $a2, $f0 -/* 005F4 808A2B54 0C228AF4 */ jal func_808A2BD0 -/* 005F8 808A2B58 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 005FC 808A2B5C 10000018 */ beq $zero, $zero, .L808A2BC0 -/* 00600 808A2B60 8FBF0024 */ lw $ra, 0x0024($sp) -/* 00604 808A2B64 44060000 */ mfc1 $a2, $f0 -.L808A2B68: -/* 00608 808A2B68 44070000 */ mfc1 $a3, $f0 -/* 0060C 808A2B6C E7A00010 */ swc1 $f0, 0x0010($sp) -/* 00610 808A2B70 0C00B92D */ jal func_8002E4B4 -/* 00614 808A2B74 AFB90014 */ sw $t9, 0x0014($sp) -/* 00618 808A2B78 860801CA */ lh $t0, 0x01CA($s0) ## 000001CA -/* 0061C 808A2B7C 860A01CA */ lh $t2, 0x01CA($s0) ## 000001CA -/* 00620 808A2B80 3C01808A */ lui $at, %hi(D_808A2DFC) ## $at = 808A0000 -/* 00624 808A2B84 00084880 */ sll $t1, $t0, 2 -/* 00628 808A2B88 00290821 */ addu $at, $at, $t1 -/* 0062C 808A2B8C C4262DFC */ lwc1 $f6, %lo(D_808A2DFC)($at) -/* 00630 808A2B90 254B0001 */ addiu $t3, $t2, 0x0001 ## $t3 = 00000001 -/* 00634 808A2B94 A60B01CA */ sh $t3, 0x01CA($s0) ## 000001CA -/* 00638 808A2B98 10000008 */ beq $zero, $zero, .L808A2BBC -/* 0063C 808A2B9C E6060060 */ swc1 $f6, 0x0060($s0) ## 00000060 -/* 00640 808A2BA0 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00 -.L808A2BA4: -/* 00644 808A2BA4 240C001C */ addiu $t4, $zero, 0x001C ## $t4 = 0000001C -/* 00648 808A2BA8 AFAC0014 */ sw $t4, 0x0014($sp) -/* 0064C 808A2BAC 44060000 */ mfc1 $a2, $f0 -/* 00650 808A2BB0 44070000 */ mfc1 $a3, $f0 -/* 00654 808A2BB4 0C00B92D */ jal func_8002E4B4 -/* 00658 808A2BB8 E7A00010 */ swc1 $f0, 0x0010($sp) -.L808A2BBC: -/* 0065C 808A2BBC 8FBF0024 */ lw $ra, 0x0024($sp) -.L808A2BC0: -/* 00660 808A2BC0 8FB00020 */ lw $s0, 0x0020($sp) -/* 00664 808A2BC4 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000 -/* 00668 808A2BC8 03E00008 */ jr $ra -/* 0066C 808A2BCC 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2BD0.s b/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2BD0.s deleted file mode 100644 index 822cc6f436..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2BD0.s +++ /dev/null @@ -1,8 +0,0 @@ -glabel func_808A2BD0 -/* 00670 808A2BD0 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00 -/* 00674 808A2BD4 C4840080 */ lwc1 $f4, 0x0080($a0) ## 00000080 -/* 00678 808A2BD8 AC8001C4 */ sw $zero, 0x01C4($a0) ## 000001C4 -/* 0067C 808A2BDC E480006C */ swc1 $f0, 0x006C($a0) ## 0000006C -/* 00680 808A2BE0 E4800060 */ swc1 $f0, 0x0060($a0) ## 00000060 -/* 00684 808A2BE4 03E00008 */ jr $ra -/* 00688 808A2BE8 E4840028 */ swc1 $f4, 0x0028($a0) ## 00000028 diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2C28.s b/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2C28.s deleted file mode 100644 index 984526e8f3..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2C28.s +++ /dev/null @@ -1,105 +0,0 @@ -.rdata -glabel D_808A2F28 - .asciz "../z_bg_mori_hashigo.c" - .balign 4 - -glabel D_808A2F40 - .asciz "../z_bg_mori_hashigo.c" - .balign 4 - -glabel D_808A2F58 - .asciz "../z_bg_mori_hashigo.c" - .balign 4 - -.text -glabel func_808A2C28 -/* 006C8 808A2C28 27BDFFB0 */ addiu $sp, $sp, 0xFFB0 ## $sp = FFFFFFB0 -/* 006CC 808A2C2C AFBF0014 */ sw $ra, 0x0014($sp) -/* 006D0 808A2C30 AFA40050 */ sw $a0, 0x0050($sp) -/* 006D4 808A2C34 AFA50054 */ sw $a1, 0x0054($sp) -/* 006D8 808A2C38 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000 -/* 006DC 808A2C3C 3C06808A */ lui $a2, %hi(D_808A2F28) ## $a2 = 808A0000 -/* 006E0 808A2C40 24C62F28 */ addiu $a2, $a2, %lo(D_808A2F28) ## $a2 = 808A2F28 -/* 006E4 808A2C44 27A40034 */ addiu $a0, $sp, 0x0034 ## $a0 = FFFFFFE4 -/* 006E8 808A2C48 24070204 */ addiu $a3, $zero, 0x0204 ## $a3 = 00000204 -/* 006EC 808A2C4C 0C031AB1 */ jal Graph_OpenDisps -/* 006F0 808A2C50 AFA50044 */ sw $a1, 0x0044($sp) -/* 006F4 808A2C54 8FAF0054 */ lw $t7, 0x0054($sp) -/* 006F8 808A2C58 0C024F46 */ jal func_80093D18 -/* 006FC 808A2C5C 8DE40000 */ lw $a0, 0x0000($t7) ## 00000000 -/* 00700 808A2C60 8FA80044 */ lw $t0, 0x0044($sp) -/* 00704 808A2C64 8FA70054 */ lw $a3, 0x0054($sp) -/* 00708 808A2C68 3C19DB06 */ lui $t9, 0xDB06 ## $t9 = DB060000 -/* 0070C 808A2C6C 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0 -/* 00710 808A2C70 37390020 */ ori $t9, $t9, 0x0020 ## $t9 = DB060020 -/* 00714 808A2C74 3C0D0001 */ lui $t5, 0x0001 ## $t5 = 00010000 -/* 00718 808A2C78 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008 -/* 0071C 808A2C7C AD1802C0 */ sw $t8, 0x02C0($t0) ## 000002C0 -/* 00720 808A2C80 AC590000 */ sw $t9, 0x0000($v0) ## 00000000 -/* 00724 808A2C84 8FA90050 */ lw $t1, 0x0050($sp) -/* 00728 808A2C88 3C0FDA38 */ lui $t7, 0xDA38 ## $t7 = DA380000 -/* 0072C 808A2C8C 35EF0003 */ ori $t7, $t7, 0x0003 ## $t7 = DA380003 -/* 00730 808A2C90 812A01CC */ lb $t2, 0x01CC($t1) ## 000001CC -/* 00734 808A2C94 3C05808A */ lui $a1, %hi(D_808A2F40) ## $a1 = 808A0000 -/* 00738 808A2C98 24A52F40 */ addiu $a1, $a1, %lo(D_808A2F40) ## $a1 = 808A2F40 -/* 0073C 808A2C9C 000A5900 */ sll $t3, $t2, 4 -/* 00740 808A2CA0 016A5821 */ addu $t3, $t3, $t2 -/* 00744 808A2CA4 000B5880 */ sll $t3, $t3, 2 -/* 00748 808A2CA8 00EB6021 */ addu $t4, $a3, $t3 -/* 0074C 808A2CAC 01AC6821 */ addu $t5, $t5, $t4 -/* 00750 808A2CB0 8DAD17B4 */ lw $t5, 0x17B4($t5) ## 000117B4 -/* 00754 808A2CB4 24060209 */ addiu $a2, $zero, 0x0209 ## $a2 = 00000209 -/* 00758 808A2CB8 AC4D0004 */ sw $t5, 0x0004($v0) ## 00000004 -/* 0075C 808A2CBC 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0 -/* 00760 808A2CC0 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008 -/* 00764 808A2CC4 AD0E02C0 */ sw $t6, 0x02C0($t0) ## 000002C0 -/* 00768 808A2CC8 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000 -/* 0076C 808A2CCC 8CE40000 */ lw $a0, 0x0000($a3) ## 00000000 -/* 00770 808A2CD0 AFA80044 */ sw $t0, 0x0044($sp) -/* 00774 808A2CD4 0C0346A2 */ jal Matrix_NewMtx -/* 00778 808A2CD8 AFA2002C */ sw $v0, 0x002C($sp) -/* 0077C 808A2CDC 8FA3002C */ lw $v1, 0x002C($sp) -/* 00780 808A2CE0 8FA80044 */ lw $t0, 0x0044($sp) -/* 00784 808A2CE4 2401FFFF */ addiu $at, $zero, 0xFFFF ## $at = FFFFFFFF -/* 00788 808A2CE8 AC620004 */ sw $v0, 0x0004($v1) ## 00000004 -/* 0078C 808A2CEC 8FB80050 */ lw $t8, 0x0050($sp) -/* 00790 808A2CF0 3C06808A */ lui $a2, %hi(D_808A2F58) ## $a2 = 808A0000 -/* 00794 808A2CF4 3C09DE00 */ lui $t1, 0xDE00 ## $t1 = DE000000 -/* 00798 808A2CF8 8702001C */ lh $v0, 0x001C($t8) ## 0000001C -/* 0079C 808A2CFC 24C62F58 */ addiu $a2, $a2, %lo(D_808A2F58) ## $a2 = 808A2F58 -/* 007A0 808A2D00 27A40034 */ addiu $a0, $sp, 0x0034 ## $a0 = FFFFFFE4 -/* 007A4 808A2D04 50410006 */ beql $v0, $at, .L808A2D20 -/* 007A8 808A2D08 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0 -/* 007AC 808A2D0C 1040000B */ beq $v0, $zero, .L808A2D3C -/* 007B0 808A2D10 3C0CDE00 */ lui $t4, 0xDE00 ## $t4 = DE000000 -/* 007B4 808A2D14 10000011 */ beq $zero, $zero, .L808A2D5C -/* 007B8 808A2D18 8FAE0054 */ lw $t6, 0x0054($sp) -/* 007BC 808A2D1C 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0 -.L808A2D20: -/* 007C0 808A2D20 3C0A0600 */ lui $t2, 0x0600 ## $t2 = 06000000 -/* 007C4 808A2D24 254A4770 */ addiu $t2, $t2, 0x4770 ## $t2 = 06004770 -/* 007C8 808A2D28 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008 -/* 007CC 808A2D2C AD1902C0 */ sw $t9, 0x02C0($t0) ## 000002C0 -/* 007D0 808A2D30 AC4A0004 */ sw $t2, 0x0004($v0) ## 00000004 -/* 007D4 808A2D34 10000008 */ beq $zero, $zero, .L808A2D58 -/* 007D8 808A2D38 AC490000 */ sw $t1, 0x0000($v0) ## 00000000 -.L808A2D3C: -/* 007DC 808A2D3C 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0 -/* 007E0 808A2D40 3C0D0600 */ lui $t5, 0x0600 ## $t5 = 06000000 -/* 007E4 808A2D44 25AD36B0 */ addiu $t5, $t5, 0x36B0 ## $t5 = 060036B0 -/* 007E8 808A2D48 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008 -/* 007EC 808A2D4C AD0B02C0 */ sw $t3, 0x02C0($t0) ## 000002C0 -/* 007F0 808A2D50 AC4D0004 */ sw $t5, 0x0004($v0) ## 00000004 -/* 007F4 808A2D54 AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000 -.L808A2D58: -/* 007F8 808A2D58 8FAE0054 */ lw $t6, 0x0054($sp) -.L808A2D5C: -/* 007FC 808A2D5C 24070213 */ addiu $a3, $zero, 0x0213 ## $a3 = 00000213 -/* 00800 808A2D60 0C031AD5 */ jal Graph_CloseDisps -/* 00804 808A2D64 8DC50000 */ lw $a1, 0x0000($t6) ## 00000000 -/* 00808 808A2D68 8FBF0014 */ lw $ra, 0x0014($sp) -/* 0080C 808A2D6C 27BD0050 */ addiu $sp, $sp, 0x0050 ## $sp = 00000000 -/* 00810 808A2D70 03E00008 */ jr $ra -/* 00814 808A2D74 00000000 */ nop -/* 00818 808A2D78 00000000 */ nop -/* 0081C 808A2D7C 00000000 */ nop diff --git a/data/overlays/actors/z_bg_mori_hashigo.data.s b/data/overlays/actors/z_bg_mori_hashigo.data.s deleted file mode 100644 index fffa486f42..0000000000 --- a/data/overlays/actors/z_bg_mori_hashigo.data.s +++ /dev/null @@ -1,29 +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_Mori_Hashigo_InitVars - .word 0x00E20100, 0x00000000, 0x00720000, 0x000001D0 -.word BgMoriHashigo_Init -.word BgMoriHashigo_Destroy -.word BgMoriHashigo_Update -.word 0x00000000 -glabel D_808A2DA0 - .word 0x04000000, 0x00000000, 0x00000000, 0x0001F820, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00190064 -glabel D_808A2DC4 - .word 0x0A000900, 0x00000000, 0x00000001 -.word D_808A2DA0 -glabel D_808A2DD4 - .word 0xB0F403E8, 0xB0F80190, 0xB0FC03E8, 0x801F0003, 0xB04C0028, 0x485003E8 -glabel D_808A2DEC - .word 0xB0F403E8, 0xB0F80190, 0xB0FC03E8, 0x485003E8 -glabel D_808A2DFC - .word 0x40800000, 0x402CCCCD, 0x3FD9999A, 0x00000000, 0x00000000 - diff --git a/data/overlays/actors/z_bg_mori_hashigo.reloc.s b/data/overlays/actors/z_bg_mori_hashigo.reloc.s deleted file mode 100644 index a629692844..0000000000 --- a/data/overlays/actors/z_bg_mori_hashigo.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_808A2F70 - .incbin "baserom/ovl_Bg_Mori_Hashigo", 0xA10, 0x000000F0 diff --git a/spec b/spec index bcfa674459..49ee68c9ed 100644 --- a/spec +++ b/spec @@ -1111,8 +1111,7 @@ endseg beginseg name "ovl_Bg_Mori_Hashigo" include "build/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.o" - include "build/data/overlays/actors/z_bg_mori_hashigo.data.o" - include "build/data/overlays/actors/z_bg_mori_hashigo.reloc.o" + include "build/src/overlays/actors/ovl_Bg_Mori_Hashigo/ovl_Bg_Mori_Hashigo_reloc.o" endseg beginseg diff --git a/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c b/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c index 699edc3400..1cc010c078 100644 --- a/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c +++ b/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c @@ -1,3 +1,9 @@ +/* + * File: z_bg_mori_hashigo.c + * Overlay: ovl_Bg_Mori_Hashigo + * Description: Falling ladder and clasp that holds it. Unused. + */ + #include "z_bg_mori_hashigo.h" #define FLAGS 0x00000000 @@ -7,8 +13,22 @@ void BgMoriHashigo_Init(Actor* thisx, GlobalContext* globalCtx); void BgMoriHashigo_Destroy(Actor* thisx, GlobalContext* globalCtx); void BgMoriHashigo_Update(Actor* thisx, GlobalContext* globalCtx); +void BgMoriHashigo_Draw(Actor* thisx, GlobalContext* globalCtx); + +void BgMoriHashigo_SetupWaitForMoriTex(BgMoriHashigo* this); +void BgMoriHashigo_WaitForMoriTex(BgMoriHashigo* this, GlobalContext* globalCtx); +void BgMoriHashigo_SetupClasp(BgMoriHashigo* this); +void BgMoriHashigo_Clasp(BgMoriHashigo* this, GlobalContext* globalCtx); +void BgMoriHashigo_SetupLadderWait(BgMoriHashigo* this); +void BgMoriHashigo_LadderWait(BgMoriHashigo* this, GlobalContext* globalCtx); +void BgMoriHashigo_SetupLadderFall(BgMoriHashigo* this); +void BgMoriHashigo_LadderFall(BgMoriHashigo* this, GlobalContext* globalCtx); +void BgMoriHashigo_SetupLadderRest(BgMoriHashigo* this); + +extern ColHeader D_060037D8; +extern Gfx D_060036B0[]; +extern Gfx D_06004770[]; -/* const ActorInit Bg_Mori_Hashigo_InitVars = { ACTOR_BG_MORI_HASHIGO, ACTORTYPE_BG, @@ -20,39 +40,256 @@ const ActorInit Bg_Mori_Hashigo_InitVars = { (ActorFunc)BgMoriHashigo_Update, NULL, }; -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2560.s") -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A25E8.s") +static ColliderJntSphItemInit sJntSphItemsInit[1] = { + { + { 0x04, { 0x00000000, 0x00, 0x00 }, { 0x0001F820, 0x00, 0x00 }, 0x00, 0x01, 0x00 }, + { 0, { { 0, 0, 0 }, 25 }, 100 }, + }, +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2698.s") +static ColliderJntSphInit sJntSphInit = { + { COLTYPE_UNK10, 0x00, 0x09, 0x00, 0x00, COLSHAPE_JNTSPH }, + 1, + sJntSphItemsInit, +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2770.s") +static InitChainEntry sInitChainClasp[] = { + ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneScale, 400, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_CONTINUE), + ICHAIN_U8(unk_1F, 3, ICHAIN_CONTINUE), + ICHAIN_F32(unk_4C, 40, ICHAIN_CONTINUE), + ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_STOP), +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A27F8.s") +static InitChainEntry sInitChainLadder[] = { + ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneScale, 400, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_CONTINUE), + ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_STOP), +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/BgMoriHashigo_Init.s") +void BgMoriHashigo_InitDynapoly(BgMoriHashigo* this, GlobalContext* globalCtx, ColHeader* collision, s32 moveFlag) { + s32 pad; + ColHeader* colHeader; + s32 pad2; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/BgMoriHashigo_Destroy.s") + colHeader = NULL; + DynaPolyInfo_SetActorMove(&this->dyna, moveFlag); + DynaPolyInfo_Alloc(collision, &colHeader); + this->dyna.dynaPolyId = + DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2978.s") + if (this->dyna.dynaPolyId == 0x32) { + // Warning : move BG login failed + osSyncPrintf("Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n", "../z_bg_mori_hashigo.c", 164, + this->dyna.actor.id, this->dyna.actor.params); + } +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2988.s") +void BgMoriHashigo_InitCollider(BgMoriHashigo* this, GlobalContext* globalCtx) { + s32 pad; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2A04.s") + Collider_InitJntSph(globalCtx, &this->collider); + Collider_SetJntSph(globalCtx, &this->collider, &this->dyna.actor, &sJntSphInit, this->colliderItems); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2A14.s") + this->collider.list[0].dim.worldSphere.center.x = (s16)this->dyna.actor.posRot.pos.x; + this->collider.list[0].dim.worldSphere.center.y = (s16)this->dyna.actor.posRot.pos.y + 21; + this->collider.list[0].dim.worldSphere.center.z = (s16)this->dyna.actor.posRot.pos.z; + this->collider.list[0].dim.worldSphere.radius = 19; +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2A78.s") +s32 BgMoriHashigo_SpawnLadder(BgMoriHashigo* this, GlobalContext* globalCtx) { + f32 sn; + f32 cs; + Vec3f pos; + Actor* ladder; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2A88.s") + cs = Math_Coss(this->dyna.actor.shape.rot.y); + sn = Math_Sins(this->dyna.actor.shape.rot.y); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2ABC.s") + pos.x = 6.0f * sn + this->dyna.actor.posRot.pos.x; + pos.y = -210.0f + this->dyna.actor.posRot.pos.y; + pos.z = 6.0f * cs + this->dyna.actor.posRot.pos.z; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2AF4.s") + ladder = Actor_SpawnAsChild(&globalCtx->actorCtx, &this->dyna.actor, globalCtx, ACTOR_BG_MORI_HASHIGO, pos.x, pos.y, + pos.z, this->dyna.actor.posRot.rot.x, this->dyna.actor.posRot.rot.y, + this->dyna.actor.posRot.rot.z, 0); + if (ladder != NULL) { + return true; + } else { + // Ladder failure + osSyncPrintf("Error : 梯子の発生失敗(%s %d)(arg_data 0x%04x)\n", "../z_bg_mori_hashigo.c", 220, + this->dyna.actor.params); + return false; + } +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2BD0.s") +s32 BgMoriHashigo_InitClasp(BgMoriHashigo* this, GlobalContext* globalCtx) { + Actor_ProcessInitChain(&this->dyna.actor, sInitChainClasp); + this->dyna.actor.flags |= 1; + Actor_SetHeight(&this->dyna.actor, 55.0f); + BgMoriHashigo_InitCollider(this, globalCtx); + if ((this->dyna.actor.params == -1) && !BgMoriHashigo_SpawnLadder(this, globalCtx)) { + return false; + } else { + return true; + } +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/BgMoriHashigo_Update.s") +s32 BgMoriHashigo_InitLadder(BgMoriHashigo* this, GlobalContext* globalCtx) { + BgMoriHashigo_InitDynapoly(this, globalCtx, &D_060037D8, DPM_UNK); + Actor_ProcessInitChain(&this->dyna.actor, sInitChainLadder); + return true; +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Hashigo/func_808A2C28.s") +void BgMoriHashigo_Init(Actor* thisx, GlobalContext* globalCtx) { + s32 pad; + BgMoriHashigo* this = THIS; + + if (this->dyna.actor.params == -1) { + if (!BgMoriHashigo_InitClasp(this, globalCtx)) { + Actor_Kill(&this->dyna.actor); + return; + } + } else if (this->dyna.actor.params == 0) { + if (!BgMoriHashigo_InitLadder(this, globalCtx)) { + Actor_Kill(&this->dyna.actor); + return; + } + } + this->moriTexObjIndex = Object_GetIndex(&globalCtx->objectCtx, OBJECT_MORI_TEX); + if (this->moriTexObjIndex < 0) { + // Bank danger! + osSyncPrintf("Error : バンク危険!(arg_data 0x%04x)(%s %d)\n", this->dyna.actor.params, + "../z_bg_mori_hashigo.c", 312); + Actor_Kill(&this->dyna.actor); + } else { + BgMoriHashigo_SetupWaitForMoriTex(this); + // (Forest Temple Ladder and its clasp) + osSyncPrintf("(森の神殿 梯子とその留め金)(arg_data 0x%04x)\n", this->dyna.actor.params); + } +} + +void BgMoriHashigo_Destroy(Actor* thisx, GlobalContext* globalCtx) { + s32 pad; + BgMoriHashigo* this = THIS; + + if (this->dyna.actor.params == 0) { + DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId); + } + if (this->dyna.actor.params == -1) { + Collider_DestroyJntSph(globalCtx, &this->collider); + } +} + +void BgMoriHashigo_SetupWaitForMoriTex(BgMoriHashigo* this) { + this->actionFunc = BgMoriHashigo_WaitForMoriTex; +} + +void BgMoriHashigo_WaitForMoriTex(BgMoriHashigo* this, GlobalContext* globalCtx) { + if (Object_IsLoaded(&globalCtx->objectCtx, this->moriTexObjIndex)) { + if (this->dyna.actor.params == -1) { + BgMoriHashigo_SetupClasp(this); + } else if (this->dyna.actor.params == 0) { + BgMoriHashigo_SetupLadderWait(this); + } + this->dyna.actor.draw = BgMoriHashigo_Draw; + } +} + +void BgMoriHashigo_SetupClasp(BgMoriHashigo* this) { + this->actionFunc = BgMoriHashigo_Clasp; +} + +void BgMoriHashigo_Clasp(BgMoriHashigo* this, GlobalContext* globalCtx) { + if (this->hitTimer <= 0) { + if (this->collider.base.acFlags & 2) { + this->collider.base.acFlags &= ~2; + this->hitTimer = 10; + } else { + CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->collider.base); + } + } +} + +void BgMoriHashigo_SetupLadderWait(BgMoriHashigo* this) { + this->actionFunc = BgMoriHashigo_LadderWait; +} + +void BgMoriHashigo_LadderWait(BgMoriHashigo* this, GlobalContext* globalCtx) { + BgMoriHashigo* clasp = (BgMoriHashigo*)this->dyna.actor.parent; + + if (clasp->hitTimer > 0) { + BgMoriHashigo_SetupLadderFall(this); + } +} + +void BgMoriHashigo_SetupLadderFall(BgMoriHashigo* this) { + this->bounceCounter = 0; + this->actionFunc = BgMoriHashigo_LadderFall; + this->dyna.actor.gravity = -1.0f; + this->dyna.actor.minVelocityY = -10.0f; + this->dyna.actor.velocity.y = 2.0f; +} + +void BgMoriHashigo_LadderFall(BgMoriHashigo* this, GlobalContext* globalCtx) { + static f32 bounceSpeed[3] = { 4.0f, 2.7f, 1.7f }; + Actor* thisx = &this->dyna.actor; + + Actor_MoveForward(thisx); + if ((thisx->bgCheckFlags & 1) && (thisx->velocity.y < 0.0f)) { + if (this->bounceCounter >= ARRAY_COUNT(bounceSpeed)) { + BgMoriHashigo_SetupLadderRest(this); + } else { + func_8002E4B4(globalCtx, thisx, 0.0f, 0.0f, 0.0f, 0x1C); + thisx->velocity.y = bounceSpeed[this->bounceCounter]; + this->bounceCounter++; + } + } else { + func_8002E4B4(globalCtx, thisx, 0.0f, 0.0f, 0.0f, 0x1C); + } +} + +void BgMoriHashigo_SetupLadderRest(BgMoriHashigo* this) { + this->actionFunc = NULL; + this->dyna.actor.gravity = 0.0f; + this->dyna.actor.velocity.y = 0.0f; + this->dyna.actor.posRot.pos.y = this->dyna.actor.groundY; +} + +void BgMoriHashigo_Update(Actor* thisx, GlobalContext* globalCtx) { + s32 pad; + BgMoriHashigo* this = THIS; + + if (this->hitTimer > 0) { + this->hitTimer--; + } + if (this->actionFunc != NULL) { + this->actionFunc(this, globalCtx); + } +} + +void BgMoriHashigo_Draw(Actor* thisx, GlobalContext* globalCtx) { + s32 pad; + BgMoriHashigo* this = THIS; + + OPEN_DISPS(globalCtx->state.gfxCtx, "../z_bg_mori_hashigo.c", 516); + func_80093D18(globalCtx->state.gfxCtx); + if (1) {} + gSPSegment(oGfxCtx->polyOpa.p++, 0x08, globalCtx->objectCtx.status[this->moriTexObjIndex].segment); + + gSPMatrix(oGfxCtx->polyOpa.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_mori_hashigo.c", 521), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + + switch (this->dyna.actor.params) { + case -1: + gSPDisplayList(oGfxCtx->polyOpa.p++, D_06004770); + break; + case 0: + gSPDisplayList(oGfxCtx->polyOpa.p++, D_060036B0); + break; + } + CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_mori_hashigo.c", 531); +} diff --git a/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.h b/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.h index 38fa9053d5..12b6ff4bea 100644 --- a/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.h +++ b/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.h @@ -6,9 +6,16 @@ struct BgMoriHashigo; +typedef void (*BgMoriHashigoActionFunc)(struct BgMoriHashigo*, GlobalContext*); + typedef struct BgMoriHashigo { - /* 0x0000 */ Actor actor; - /* 0x014C */ char unk_14C[0x84]; + /* 0x0000 */ DynaPolyActor dyna; + /* 0x0164 */ ColliderJntSph collider; + /* 0x0184 */ ColliderJntSphItem colliderItems[1]; + /* 0x01C4 */ BgMoriHashigoActionFunc actionFunc; + /* 0x01C8 */ s16 hitTimer; + /* 0x01CA */ s16 bounceCounter; + /* 0x01CC */ s8 moriTexObjIndex; } BgMoriHashigo; // size = 0x01D0 extern const ActorInit Bg_Mori_Hashigo_InitVars; diff --git a/undefined_syms.txt b/undefined_syms.txt index efaf91cb3c..fc18e55e52 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -1123,6 +1123,11 @@ D_06000498 = 0x06000498; // z_bg_menkuri_eye D_06002D20 = 0x06002D20; +// z_bg_mori_hashigo +D_060037D8 = 0x060037D8; +D_060036B0 = 0x060036B0; +D_06004770 = 0x06004770; + // z_bg_mori_bigst D_0600221C = 0x0600221C; D_06001E50 = 0x06001E50;