From f6470eaa0881b7f038ca1a7e30d6516fafaf2ecb Mon Sep 17 00:00:00 2001 From: louist103 <35883445+louist103@users.noreply.github.com> Date: Sun, 30 May 2021 12:30:38 -0400 Subject: [PATCH] "Decompile" more objects. (#784) * Object_hakach_objects OK and fix a warning in z_play.c * Object Warp1 OK * Object_spot16_obj OK * object_cs Skeleton and limbs OK * Limbs are broken * Limbs OK * Object_CS OK * Object_jya_door OK * fix errors and add new lines * PR fixes (AngheloAlf) * PR fixes (EllipticEllipsis) * PR fixes (Fig) * Rename Spot16 and Jya * GraveYard -> Graveyard * PR fixes * -s * PR fixes --- .../actors/ovl_Door_Warp1/func_80998C90.s | 12 ++-- .../actors/ovl_Door_Warp1/func_80998E5C.s | 24 ++++---- .../actors/ovl_Door_Warp1/func_80998FF4.s | 24 ++++---- .../actors/ovl_Door_Warp1/func_8099A508.s | 12 ++-- .../actors/ovl_Door_Warp1/func_8099B5EC.s | 4 +- assets/xml/objects/object_cs.xml | 60 +++++++++++++++++++ assets/xml/objects/object_fu.xml | 2 +- assets/xml/objects/object_hakach_objects.xml | 28 +++++++++ assets/xml/objects/object_jya_door.xml | 8 +++ assets/xml/objects/object_sb.xml | 2 +- assets/xml/objects/object_spot16_obj.xml | 11 ++++ assets/xml/objects/object_warp1.xml | 16 +++++ spec | 15 +++-- src/code/z_player_lib.c | 6 +- .../actors/ovl_Bg_Haka_Huta/z_bg_haka_huta.c | 38 ++++++------ .../ovl_Bg_Haka_Megane/z_bg_haka_megane.c | 24 +++++--- .../ovl_Bg_Haka_Water/z_bg_haka_water.c | 16 +++-- .../actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c | 11 ++-- .../ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.c | 2 +- .../z_bg_jya_zurerukabe.c | 2 +- .../z_bg_spot16_bombstone.c | 11 ++-- .../z_bg_spot16_bombstone.h | 2 +- .../actors/ovl_Door_Shutter/z_door_shutter.c | 24 ++++---- .../actors/ovl_Door_Warp1/z_door_warp1.c | 5 +- src/overlays/actors/ovl_En_Cs/z_en_cs.c | 56 +++++++++++++---- undefined_syms.txt | 27 --------- 26 files changed, 291 insertions(+), 151 deletions(-) create mode 100644 assets/xml/objects/object_cs.xml create mode 100644 assets/xml/objects/object_hakach_objects.xml create mode 100644 assets/xml/objects/object_jya_door.xml create mode 100644 assets/xml/objects/object_spot16_obj.xml create mode 100644 assets/xml/objects/object_warp1.xml diff --git a/asm/non_matchings/overlays/actors/ovl_Door_Warp1/func_80998C90.s b/asm/non_matchings/overlays/actors/ovl_Door_Warp1/func_80998C90.s index 09892d1b03..e3a7efd144 100644 --- a/asm/non_matchings/overlays/actors/ovl_Door_Warp1/func_80998C90.s +++ b/asm/non_matchings/overlays/actors/ovl_Door_Warp1/func_80998C90.s @@ -11,10 +11,10 @@ glabel func_80998C90 /* 00520 80998CA0 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 /* 00524 80998CA4 AFBF002C */ sw $ra, 0x002C($sp) /* 00528 80998CA8 2605014C */ addiu $a1, $s0, 0x014C ## $a1 = 0000014C -/* 0052C 80998CAC 3C060600 */ lui $a2, %hi(D_06002CA8) ## $a2 = 06000000 -/* 00530 80998CB0 3C070600 */ lui $a3, %hi(D_06001374) ## $a3 = 06000000 -/* 00534 80998CB4 24E71374 */ addiu $a3, $a3, %lo(D_06001374) ## $a3 = 06001374 -/* 00538 80998CB8 24C62CA8 */ addiu $a2, $a2, %lo(D_06002CA8) ## $a2 = 06002CA8 +/* 0052C 80998CAC 3C060600 */ lui $a2, %hi(gBlueWarpSkel) ## $a2 = 06000000 +/* 00530 80998CB0 3C070600 */ lui $a3, %hi(gBlueWarpAnim) ## $a3 = 06000000 +/* 00534 80998CB4 24E71374 */ addiu $a3, $a3, %lo(gBlueWarpAnim) ## $a3 = 06001374 +/* 00538 80998CB8 24C62CA8 */ addiu $a2, $a2, %lo(gBlueWarpSkel) ## $a2 = 06002CA8 /* 0053C 80998CBC AFA50034 */ sw $a1, 0x0034($sp) /* 00540 80998CC0 AFA00010 */ sw $zero, 0x0010($sp) /* 00544 80998CC4 AFA00014 */ sw $zero, 0x0014($sp) @@ -25,14 +25,14 @@ glabel func_80998C90 /* 00554 80998CD4 44811000 */ mtc1 $at, $f2 ## $f2 = 1.00 /* 00558 80998CD8 3C014220 */ lui $at, 0x4220 ## $at = 42200000 /* 0055C 80998CDC 44812000 */ mtc1 $at, $f4 ## $f4 = 40.00 -/* 00560 80998CE0 3C050600 */ lui $a1, %hi(D_06001374) ## $a1 = 06000000 +/* 00560 80998CE0 3C050600 */ lui $a1, %hi(gBlueWarpAnim) ## $a1 = 06000000 /* 00564 80998CE4 240E0002 */ addiu $t6, $zero, 0x0002 ## $t6 = 00000002 /* 00568 80998CE8 240F0001 */ addiu $t7, $zero, 0x0001 ## $t7 = 00000001 /* 0056C 80998CEC 44061000 */ mfc1 $a2, $f2 /* 00570 80998CF0 44071000 */ mfc1 $a3, $f2 /* 00574 80998CF4 AFAF001C */ sw $t7, 0x001C($sp) /* 00578 80998CF8 AFAE0014 */ sw $t6, 0x0014($sp) -/* 0057C 80998CFC 24A51374 */ addiu $a1, $a1, %lo(D_06001374) ## $a1 = 06001374 +/* 0057C 80998CFC 24A51374 */ addiu $a1, $a1, %lo(gBlueWarpAnim) ## $a1 = 06001374 /* 00580 80998D00 8FA40034 */ lw $a0, 0x0034($sp) /* 00584 80998D04 E7A20010 */ swc1 $f2, 0x0010($sp) /* 00588 80998D08 0C0293F9 */ jal Animation_ChangeImpl diff --git a/asm/non_matchings/overlays/actors/ovl_Door_Warp1/func_80998E5C.s b/asm/non_matchings/overlays/actors/ovl_Door_Warp1/func_80998E5C.s index a73e8c96ea..cb9a67b478 100644 --- a/asm/non_matchings/overlays/actors/ovl_Door_Warp1/func_80998E5C.s +++ b/asm/non_matchings/overlays/actors/ovl_Door_Warp1/func_80998E5C.s @@ -12,22 +12,22 @@ glabel func_80998E5C /* 006F0 80998E70 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 /* 006F4 80998E74 AFBF002C */ sw $ra, 0x002C($sp) /* 006F8 80998E78 2605014C */ addiu $a1, $s0, 0x014C ## $a1 = 0000014C -/* 006FC 80998E7C 3C060600 */ lui $a2, %hi(D_06002CA8) ## $a2 = 06000000 -/* 00700 80998E80 3C070600 */ lui $a3, %hi(D_06001374) ## $a3 = 06000000 -/* 00704 80998E84 24E71374 */ addiu $a3, $a3, %lo(D_06001374) ## $a3 = 06001374 -/* 00708 80998E88 24C62CA8 */ addiu $a2, $a2, %lo(D_06002CA8) ## $a2 = 06002CA8 +/* 006FC 80998E7C 3C060600 */ lui $a2, %hi(gBlueWarpSkel) ## $a2 = 06000000 +/* 00700 80998E80 3C070600 */ lui $a3, %hi(gBlueWarpAnim) ## $a3 = 06000000 +/* 00704 80998E84 24E71374 */ addiu $a3, $a3, %lo(gBlueWarpAnim) ## $a3 = 06001374 +/* 00708 80998E88 24C62CA8 */ addiu $a2, $a2, %lo(gBlueWarpSkel) ## $a2 = 06002CA8 /* 0070C 80998E8C AFA50034 */ sw $a1, 0x0034($sp) /* 00710 80998E90 AFA00010 */ sw $zero, 0x0010($sp) /* 00714 80998E94 AFA00014 */ sw $zero, 0x0014($sp) /* 00718 80998E98 0C02915F */ jal SkelAnime_Init /* 0071C 80998E9C AFA00018 */ sw $zero, 0x0018($sp) -/* 00720 80998EA0 3C040600 */ lui $a0, %hi(D_06001374) ## $a0 = 06000000 +/* 00720 80998EA0 3C040600 */ lui $a0, %hi(gBlueWarpAnim) ## $a0 = 06000000 /* 00724 80998EA4 0C028800 */ jal Animation_GetLastFrame -/* 00728 80998EA8 24841374 */ addiu $a0, $a0, %lo(D_06001374) ## $a0 = 06001374 -/* 0072C 80998EAC 3C040600 */ lui $a0, %hi(D_06001374) ## $a0 = 06000000 -/* 00730 80998EB0 24841374 */ addiu $a0, $a0, %lo(D_06001374) ## $a0 = 06001374 +/* 00728 80998EA8 24841374 */ addiu $a0, $a0, %lo(gBlueWarpAnim) ## $a0 = 06001374 +/* 0072C 80998EAC 3C040600 */ lui $a0, %hi(gBlueWarpAnim) ## $a0 = 06000000 +/* 00730 80998EB0 24841374 */ addiu $a0, $a0, %lo(gBlueWarpAnim) ## $a0 = 06001374 /* 00734 80998EB4 0C028800 */ jal Animation_GetLastFrame /* 00738 80998EB8 A7A2003A */ sh $v0, 0x003A($sp) @@ -36,23 +36,23 @@ glabel func_80998E5C /* 00744 80998EC4 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00 /* 00748 80998EC8 448E2000 */ mtc1 $t6, $f4 ## $f4 = 0.00 /* 0074C 80998ECC 46803220 */ cvt.s.w $f8, $f6 -/* 00750 80998ED0 3C050600 */ lui $a1, %hi(D_06001374) ## $a1 = 06000000 +/* 00750 80998ED0 3C050600 */ lui $a1, %hi(gBlueWarpAnim) ## $a1 = 06000000 /* 00754 80998ED4 240F0002 */ addiu $t7, $zero, 0x0002 ## $t7 = 00000002 /* 00758 80998ED8 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001 /* 0075C 80998EDC AFB8001C */ sw $t8, 0x001C($sp) /* 00760 80998EE0 46802120 */ cvt.s.w $f4, $f4 /* 00764 80998EE4 AFAF0014 */ sw $t7, 0x0014($sp) -/* 00768 80998EE8 24A51374 */ addiu $a1, $a1, %lo(D_06001374) ## $a1 = 06001374 +/* 00768 80998EE8 24A51374 */ addiu $a1, $a1, %lo(gBlueWarpAnim) ## $a1 = 06001374 /* 0076C 80998EEC E7A80010 */ swc1 $f8, 0x0010($sp) /* 00770 80998EF0 8FA40034 */ lw $a0, 0x0034($sp) /* 00774 80998EF4 24060000 */ addiu $a2, $zero, 0x0000 ## $a2 = 00000000 /* 00778 80998EF8 44072000 */ mfc1 $a3, $f4 /* 0077C 80998EFC 0C0293F9 */ jal Animation_ChangeImpl /* 00780 80998F00 E7A00018 */ swc1 $f0, 0x0018($sp) -/* 00784 80998F04 3C040600 */ lui $a0, %hi(D_06001374) ## $a0 = 06000000 +/* 00784 80998F04 3C040600 */ lui $a0, %hi(gBlueWarpAnim) ## $a0 = 06000000 /* 00788 80998F08 0C028800 */ jal Animation_GetLastFrame -/* 0078C 80998F0C 24841374 */ addiu $a0, $a0, %lo(D_06001374) ## $a0 = 06001374 +/* 0078C 80998F0C 24841374 */ addiu $a0, $a0, %lo(gBlueWarpAnim) ## $a0 = 06001374 /* 00790 80998F10 3C01809A */ lui $at, %hi(D_8099C728) ## $at = 809A0000 /* 00794 80998F14 C422C728 */ lwc1 $f2, %lo(D_8099C728)($at) /* 00798 80998F18 44825000 */ mtc1 $v0, $f10 ## $f10 = 0.00 diff --git a/asm/non_matchings/overlays/actors/ovl_Door_Warp1/func_80998FF4.s b/asm/non_matchings/overlays/actors/ovl_Door_Warp1/func_80998FF4.s index 7cc7f07216..57833684fa 100644 --- a/asm/non_matchings/overlays/actors/ovl_Door_Warp1/func_80998FF4.s +++ b/asm/non_matchings/overlays/actors/ovl_Door_Warp1/func_80998FF4.s @@ -20,22 +20,22 @@ glabel func_80998FF4 /* 00884 80999004 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 /* 00888 80999008 AFBF002C */ sw $ra, 0x002C($sp) /* 0088C 8099900C 2605014C */ addiu $a1, $s0, 0x014C ## $a1 = 0000014C -/* 00890 80999010 3C060600 */ lui $a2, %hi(D_06002CA8) ## $a2 = 06000000 -/* 00894 80999014 3C070600 */ lui $a3, %hi(D_06001374) ## $a3 = 06000000 -/* 00898 80999018 24E71374 */ addiu $a3, $a3, %lo(D_06001374) ## $a3 = 06001374 -/* 0089C 8099901C 24C62CA8 */ addiu $a2, $a2, %lo(D_06002CA8) ## $a2 = 06002CA8 +/* 00890 80999010 3C060600 */ lui $a2, %hi(gBlueWarpSkel) ## $a2 = 06000000 +/* 00894 80999014 3C070600 */ lui $a3, %hi(gBlueWarpAnim) ## $a3 = 06000000 +/* 00898 80999018 24E71374 */ addiu $a3, $a3, %lo(gBlueWarpAnim) ## $a3 = 06001374 +/* 0089C 8099901C 24C62CA8 */ addiu $a2, $a2, %lo(gBlueWarpSkel) ## $a2 = 06002CA8 /* 008A0 80999020 AFA50034 */ sw $a1, 0x0034($sp) /* 008A4 80999024 AFA00010 */ sw $zero, 0x0010($sp) /* 008A8 80999028 AFA00014 */ sw $zero, 0x0014($sp) /* 008AC 8099902C 0C02915F */ jal SkelAnime_Init /* 008B0 80999030 AFA00018 */ sw $zero, 0x0018($sp) -/* 008B4 80999034 3C040600 */ lui $a0, %hi(D_06001374) ## $a0 = 06000000 +/* 008B4 80999034 3C040600 */ lui $a0, %hi(gBlueWarpAnim) ## $a0 = 06000000 /* 008B8 80999038 0C028800 */ jal Animation_GetLastFrame -/* 008BC 8099903C 24841374 */ addiu $a0, $a0, %lo(D_06001374) ## $a0 = 06001374 -/* 008C0 80999040 3C040600 */ lui $a0, %hi(D_06001374) ## $a0 = 06000000 -/* 008C4 80999044 24841374 */ addiu $a0, $a0, %lo(D_06001374) ## $a0 = 06001374 +/* 008BC 8099903C 24841374 */ addiu $a0, $a0, %lo(gBlueWarpAnim) ## $a0 = 06001374 +/* 008C0 80999040 3C040600 */ lui $a0, %hi(gBlueWarpAnim) ## $a0 = 06000000 +/* 008C4 80999044 24841374 */ addiu $a0, $a0, %lo(gBlueWarpAnim) ## $a0 = 06001374 /* 008C8 80999048 0C028800 */ jal Animation_GetLastFrame /* 008CC 8099904C A7A2003C */ sh $v0, 0x003C($sp) @@ -44,23 +44,23 @@ glabel func_80998FF4 /* 008D8 80999058 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00 /* 008DC 8099905C 448E2000 */ mtc1 $t6, $f4 ## $f4 = 0.00 /* 008E0 80999060 46803220 */ cvt.s.w $f8, $f6 -/* 008E4 80999064 3C050600 */ lui $a1, %hi(D_06001374) ## $a1 = 06000000 +/* 008E4 80999064 3C050600 */ lui $a1, %hi(gBlueWarpAnim) ## $a1 = 06000000 /* 008E8 80999068 240F0002 */ addiu $t7, $zero, 0x0002 ## $t7 = 00000002 /* 008EC 8099906C 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001 /* 008F0 80999070 AFB8001C */ sw $t8, 0x001C($sp) /* 008F4 80999074 46802120 */ cvt.s.w $f4, $f4 /* 008F8 80999078 AFAF0014 */ sw $t7, 0x0014($sp) -/* 008FC 8099907C 24A51374 */ addiu $a1, $a1, %lo(D_06001374) ## $a1 = 06001374 +/* 008FC 8099907C 24A51374 */ addiu $a1, $a1, %lo(gBlueWarpAnim) ## $a1 = 06001374 /* 00900 80999080 E7A80010 */ swc1 $f8, 0x0010($sp) /* 00904 80999084 8FA40034 */ lw $a0, 0x0034($sp) /* 00908 80999088 24060000 */ addiu $a2, $zero, 0x0000 ## $a2 = 00000000 /* 0090C 8099908C 44072000 */ mfc1 $a3, $f4 /* 00910 80999090 0C0293F9 */ jal Animation_ChangeImpl /* 00914 80999094 E7A00018 */ swc1 $f0, 0x0018($sp) -/* 00918 80999098 3C040600 */ lui $a0, %hi(D_06001374) ## $a0 = 06000000 +/* 00918 80999098 3C040600 */ lui $a0, %hi(gBlueWarpAnim) ## $a0 = 06000000 /* 0091C 8099909C 0C028800 */ jal Animation_GetLastFrame -/* 00920 809990A0 24841374 */ addiu $a0, $a0, %lo(D_06001374) ## $a0 = 06001374 +/* 00920 809990A0 24841374 */ addiu $a0, $a0, %lo(gBlueWarpAnim) ## $a0 = 06001374 /* 00924 809990A4 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 /* 00928 809990A8 44811000 */ mtc1 $at, $f2 ## $f2 = 1.00 /* 0092C 809990AC 3C01809A */ lui $at, %hi(D_8099C72C) ## $at = 809A0000 diff --git a/asm/non_matchings/overlays/actors/ovl_Door_Warp1/func_8099A508.s b/asm/non_matchings/overlays/actors/ovl_Door_Warp1/func_8099A508.s index 1aaef1435c..058e208e72 100644 --- a/asm/non_matchings/overlays/actors/ovl_Door_Warp1/func_8099A508.s +++ b/asm/non_matchings/overlays/actors/ovl_Door_Warp1/func_8099A508.s @@ -21,12 +21,12 @@ glabel func_8099A508 /* 01DD0 8099A550 0C03DCE3 */ jal Audio_PlaySoundGeneral /* 01DD4 8099A554 24060004 */ addiu $a2, $zero, 0x0004 ## $a2 = 00000004 -/* 01DD8 8099A558 3C040600 */ lui $a0, %hi(D_06001374) ## $a0 = 06000000 +/* 01DD8 8099A558 3C040600 */ lui $a0, %hi(gBlueWarpAnim) ## $a0 = 06000000 /* 01DDC 8099A55C 0C028800 */ jal Animation_GetLastFrame -/* 01DE0 8099A560 24841374 */ addiu $a0, $a0, %lo(D_06001374) ## $a0 = 06001374 -/* 01DE4 8099A564 3C040600 */ lui $a0, %hi(D_06001374) ## $a0 = 06000000 -/* 01DE8 8099A568 24841374 */ addiu $a0, $a0, %lo(D_06001374) ## $a0 = 06001374 +/* 01DE0 8099A560 24841374 */ addiu $a0, $a0, %lo(gBlueWarpAnim) ## $a0 = 06001374 +/* 01DE4 8099A564 3C040600 */ lui $a0, %hi(gBlueWarpAnim) ## $a0 = 06000000 +/* 01DE8 8099A568 24841374 */ addiu $a0, $a0, %lo(gBlueWarpAnim) ## $a0 = 06001374 /* 01DEC 8099A56C 0C028800 */ jal Animation_GetLastFrame /* 01DF0 8099A570 A7A20030 */ sh $v0, 0x0030($sp) @@ -36,13 +36,13 @@ glabel func_8099A508 /* 01E00 8099A580 44982000 */ mtc1 $t8, $f4 ## $f4 = 0.00 /* 01E04 8099A584 46803220 */ cvt.s.w $f8, $f6 /* 01E08 8099A588 44815000 */ mtc1 $at, $f10 ## $f10 = 40.00 -/* 01E0C 8099A58C 3C050600 */ lui $a1, %hi(D_06001374) ## $a1 = 06000000 +/* 01E0C 8099A58C 3C050600 */ lui $a1, %hi(gBlueWarpAnim) ## $a1 = 06000000 /* 01E10 8099A590 24190002 */ addiu $t9, $zero, 0x0002 ## $t9 = 00000002 /* 01E14 8099A594 24080001 */ addiu $t0, $zero, 0x0001 ## $t0 = 00000001 /* 01E18 8099A598 46802120 */ cvt.s.w $f4, $f4 /* 01E1C 8099A59C AFA8001C */ sw $t0, 0x001C($sp) /* 01E20 8099A5A0 AFB90014 */ sw $t9, 0x0014($sp) -/* 01E24 8099A5A4 24A51374 */ addiu $a1, $a1, %lo(D_06001374) ## $a1 = 06001374 +/* 01E24 8099A5A4 24A51374 */ addiu $a1, $a1, %lo(gBlueWarpAnim) ## $a1 = 06001374 /* 01E28 8099A5A8 E7A80010 */ swc1 $f8, 0x0010($sp) /* 01E2C 8099A5AC 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C /* 01E30 8099A5B0 44072000 */ mfc1 $a3, $f4 diff --git a/asm/non_matchings/overlays/actors/ovl_Door_Warp1/func_8099B5EC.s b/asm/non_matchings/overlays/actors/ovl_Door_Warp1/func_8099B5EC.s index 78b584d7f8..26784f3139 100644 --- a/asm/non_matchings/overlays/actors/ovl_Door_Warp1/func_8099B5EC.s +++ b/asm/non_matchings/overlays/actors/ovl_Door_Warp1/func_8099B5EC.s @@ -585,10 +585,10 @@ glabel func_8099B5EC /* 036A8 8099BE28 AFA2008C */ sw $v0, 0x008C($sp) /* 036AC 8099BE2C 8FA3008C */ lw $v1, 0x008C($sp) /* 036B0 8099BE30 8FA800D8 */ lw $t0, 0x00D8($sp) -/* 036B4 8099BE34 3C040600 */ lui $a0, %hi(D_060001A0) ## $a0 = 06000000 +/* 036B4 8099BE34 3C040600 */ lui $a0, %hi(gBlueWarpLightBeamDL) ## $a0 = 06000000 /* 036B8 8099BE38 AC620004 */ sw $v0, 0x0004($v1) ## 00000004 /* 036BC 8099BE3C 8D0202D0 */ lw $v0, 0x02D0($t0) ## 000002D0 -/* 036C0 8099BE40 248401A0 */ addiu $a0, $a0, %lo(D_060001A0) ## $a0 = 060001A0 +/* 036C0 8099BE40 248401A0 */ addiu $a0, $a0, %lo(gBlueWarpLightBeamDL) ## $a0 = 060001A0 /* 036C4 8099BE44 3C0EDE00 */ lui $t6, 0xDE00 ## $t6 = DE000000 /* 036C8 8099BE48 244D0008 */ addiu $t5, $v0, 0x0008 ## $t5 = 00000008 /* 036CC 8099BE4C AD0D02D0 */ sw $t5, 0x02D0($t0) ## 000002D0 diff --git a/assets/xml/objects/object_cs.xml b/assets/xml/objects/object_cs.xml new file mode 100644 index 0000000000..814bb5c337 --- /dev/null +++ b/assets/xml/objects/object_cs.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_fu.xml b/assets/xml/objects/object_fu.xml index 71e4381dc8..d4e977f0c3 100644 --- a/assets/xml/objects/object_fu.xml +++ b/assets/xml/objects/object_fu.xml @@ -46,4 +46,4 @@ - \ No newline at end of file + diff --git a/assets/xml/objects/object_hakach_objects.xml b/assets/xml/objects/object_hakach_objects.xml new file mode 100644 index 0000000000..5a374e9285 --- /dev/null +++ b/assets/xml/objects/object_hakach_objects.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_jya_door.xml b/assets/xml/objects/object_jya_door.xml new file mode 100644 index 0000000000..7f6a1c66f2 --- /dev/null +++ b/assets/xml/objects/object_jya_door.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/assets/xml/objects/object_sb.xml b/assets/xml/objects/object_sb.xml index 11224e83ad..6bef59ffe0 100644 --- a/assets/xml/objects/object_sb.xml +++ b/assets/xml/objects/object_sb.xml @@ -27,4 +27,4 @@ - \ No newline at end of file + diff --git a/assets/xml/objects/object_spot16_obj.xml b/assets/xml/objects/object_spot16_obj.xml new file mode 100644 index 0000000000..d39de812a9 --- /dev/null +++ b/assets/xml/objects/object_spot16_obj.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/xml/objects/object_warp1.xml b/assets/xml/objects/object_warp1.xml new file mode 100644 index 0000000000..d82c85926f --- /dev/null +++ b/assets/xml/objects/object_warp1.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/spec b/spec index c5e0ff574b..196590ad0d 100644 --- a/spec +++ b/spec @@ -3895,7 +3895,8 @@ endseg beginseg name "object_warp1" romalign 0x1000 - include "build/baserom/object_warp1.o" + include "build/assets/objects/object_warp1/object_warp1.o" + number 6 endseg beginseg @@ -4283,7 +4284,8 @@ endseg beginseg name "object_hakach_objects" romalign 0x1000 - include "build/baserom/object_hakach_objects.o" + include "build/assets/objects/object_hakach_objects/object_hakach_objects.o" + number 6 endseg beginseg @@ -4647,7 +4649,8 @@ endseg beginseg name "object_spot16_obj" romalign 0x1000 - include "build/baserom/object_spot16_obj.o" + include "build/assets/objects/object_spot16_obj/object_spot16_obj.o" + number 6 endseg beginseg @@ -5498,7 +5501,8 @@ endseg beginseg name "object_cs" romalign 0x1000 - include "build/baserom/object_cs.o" + include "build/assets/objects/object_cs/object_cs.o" + number 6 endseg beginseg @@ -5769,7 +5773,8 @@ endseg beginseg name "object_jya_door" romalign 0x1000 - include "build/baserom/object_jya_door.o" + include "build/assets/objects/object_jya_door/object_jya_door.o" + number 6 endseg beginseg diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c index 9090729ae1..0b745243fa 100644 --- a/src/code/z_player_lib.c +++ b/src/code/z_player_lib.c @@ -45,10 +45,10 @@ u8 gPlayerModelTypes[][5] = { }; Gfx* D_80125CE8[] = { - 0x060226E0, gLinkChildRightHandClosedNearDL, 0x06027690, gLinkChildRightHandClosedFarDL, + 0x060226E0, gLinkChildRightHandClosedNearDL, 0x06027690, gLinkChildRightHandClosedFarDL, 0x060226E0, gLinkChildRightFistAndDekuShieldNearDL, 0x06027690, gLinkChildRightFistAndDekuShieldFarDL, - 0x06022970, gLinkChildRightHandClosedNearDL, 0x06027918, gLinkChildRightHandClosedFarDL, - 0x060241C0, gLinkChildRightHandClosedNearDL, 0x06028B40, gLinkChildRightHandClosedFarDL, + 0x06022970, gLinkChildRightHandClosedNearDL, 0x06027918, gLinkChildRightHandClosedFarDL, + 0x060241C0, gLinkChildRightHandClosedNearDL, 0x06028B40, gLinkChildRightHandClosedFarDL, }; Gfx* D_80125D28[] = { diff --git a/src/overlays/actors/ovl_Bg_Haka_Huta/z_bg_haka_huta.c b/src/overlays/actors/ovl_Bg_Haka_Huta/z_bg_haka_huta.c index 13e9c477d8..ad316108d1 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Huta/z_bg_haka_huta.c +++ b/src/overlays/actors/ovl_Bg_Haka_Huta/z_bg_haka_huta.c @@ -5,6 +5,7 @@ */ #include "z_bg_haka_huta.h" +#include "objects/object_hakach_objects/object_hakach_objects.h" #define FLAGS 0x00000010 @@ -16,15 +17,12 @@ void BgHakaHuta_Update(Actor* thisx, GlobalContext* globalCtx); void BgHakaHuta_Draw(Actor* thisx, GlobalContext* globalCtx); void BgHakaHuta_SpawnDust(BgHakaHuta* this, GlobalContext* globalCtx); -void func_8087D268(BgHakaHuta* this, GlobalContext* globalCtx, u16 sfx); +void BgHakaHuta_PlaySound(BgHakaHuta* this, GlobalContext* globalCtx, u16 sfx); void BgHakaHuta_SpawnEnemies(BgHakaHuta* this, GlobalContext* globalCtx); void BgHakaHuta_Open(BgHakaHuta* this, GlobalContext* globalCtx); void BgHakaHuta_SlideOpen(BgHakaHuta* this, GlobalContext* globalCtx); void func_8087D720(BgHakaHuta* this, GlobalContext* globalCtx); -void func_8087D8C0(BgHakaHuta* this, GlobalContext* globalCtx); - -extern Gfx D_060006B0[]; -extern CollisionHeader D_06000870; +void BgHakaHuta_DoNothing(BgHakaHuta* this, GlobalContext* globalCtx); const ActorInit Bg_Haka_Huta_InitVars = { ACTOR_BG_HAKA_HUTA, @@ -45,16 +43,15 @@ static InitChainEntry sInitChain[] = { void BgHakaHuta_Init(Actor* thisx, GlobalContext* globalCtx) { BgHakaHuta* this = THIS; s16 pad; - CollisionHeader* colHeader; + CollisionHeader* colHeader = NULL; - colHeader = NULL; - Actor_ProcessInitChain(&this->dyna.actor, sInitChain); - DynaPolyActor_Init(&this->dyna, 1); - CollisionHeader_GetVirtual(&D_06000870, &colHeader); - this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader); + Actor_ProcessInitChain(thisx, sInitChain); + DynaPolyActor_Init(&this->dyna, DPM_PLAYER); + CollisionHeader_GetVirtual(&gBotwCoffinLidCol, &colHeader); + this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, thisx, colHeader); this->unk_16A = (thisx->params >> 8) & 0xFF; - this->dyna.actor.params &= 0xFF; - if (Flags_GetSwitch(globalCtx, this->dyna.actor.params)) { + thisx->params &= 0xFF; + if (Flags_GetSwitch(globalCtx, thisx->params)) { this->counter = -1; this->actionFunc = func_8087D720; } else { @@ -98,7 +95,7 @@ void BgHakaHuta_SpawnDust(BgHakaHuta* this, GlobalContext* globalCtx) { } } -void func_8087D268(BgHakaHuta* this, GlobalContext* globalCtx, u16 sfx) { +void BgHakaHuta_PlaySound(BgHakaHuta* this, GlobalContext* globalCtx, u16 sfx) { Vec3f pos; pos.z = (this->dyna.actor.shape.rot.y == 0) ? this->dyna.actor.world.pos.z + 120.0f @@ -152,7 +149,7 @@ void BgHakaHuta_Open(BgHakaHuta* this, GlobalContext* globalCtx) { Math_StepToF(&this->dyna.actor.world.pos.x, this->dyna.actor.home.pos.x + posOffset, 2.0f); if (this->counter == 0) { this->counter = 37; - func_8087D268(this, globalCtx, NA_SE_EV_COFFIN_CAP_OPEN); + BgHakaHuta_PlaySound(this, globalCtx, NA_SE_EV_COFFIN_CAP_OPEN); this->actionFunc = BgHakaHuta_SlideOpen; } } @@ -168,7 +165,7 @@ void BgHakaHuta_SlideOpen(BgHakaHuta* this, GlobalContext* globalCtx) { BgHakaHuta_SpawnDust(this, globalCtx); } if (this->counter == 0) { - func_8087D268(this, globalCtx, NA_SE_EV_COFFIN_CAP_BOUND); + BgHakaHuta_PlaySound(this, globalCtx, NA_SE_EV_COFFIN_CAP_BOUND); this->actionFunc = func_8087D720; } } @@ -182,14 +179,14 @@ void func_8087D720(BgHakaHuta* this, GlobalContext* globalCtx) { this->counter++; if (this->counter == 6) { - this->actionFunc = func_8087D8C0; + this->actionFunc = BgHakaHuta_DoNothing; quakeIndex = Quake_Add(ACTIVE_CAM, 3); Quake_SetSpeed(quakeIndex, 0x7530); Quake_SetQuakeValues(quakeIndex, 4, 0, 0, 0); Quake_SetCountdown(quakeIndex, 2); } else if (this->counter == 0) { this->counter = 6; - this->actionFunc = func_8087D8C0; + this->actionFunc = BgHakaHuta_DoNothing; } D_8087D958.x = this->counter + 24.0f; @@ -206,14 +203,15 @@ void func_8087D720(BgHakaHuta* this, GlobalContext* globalCtx) { func_800D20CC(&mtx, &this->dyna.actor.shape.rot, 0); } -void func_8087D8C0(BgHakaHuta* this, GlobalContext* globalCtx) { +void BgHakaHuta_DoNothing(BgHakaHuta* this, GlobalContext* globalCtx) { } void BgHakaHuta_Update(Actor* thisx, GlobalContext* globalCtx) { BgHakaHuta* this = THIS; + this->actionFunc(this, globalCtx); } void BgHakaHuta_Draw(Actor* thisx, GlobalContext* globalCtx) { - Gfx_DrawDListOpa(globalCtx, D_060006B0); + Gfx_DrawDListOpa(globalCtx, gBotwCoffinLidDL); } diff --git a/src/overlays/actors/ovl_Bg_Haka_Megane/z_bg_haka_megane.c b/src/overlays/actors/ovl_Bg_Haka_Megane/z_bg_haka_megane.c index 3b87b6d214..fd2b5435fe 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Megane/z_bg_haka_megane.c +++ b/src/overlays/actors/ovl_Bg_Haka_Megane/z_bg_haka_megane.c @@ -5,6 +5,7 @@ */ #include "z_bg_haka_megane.h" +#include "objects/object_hakach_objects/object_hakach_objects.h" #define FLAGS 0x000000B0 @@ -35,16 +36,25 @@ static InitChainEntry sInitChain[] = { ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP), }; -extern CollisionHeader D_06001830, D_06001AB8, D_06004330, D_060044D0, D_06004780, D_06004940, D_06004B00, D_06004CC0; - static CollisionHeader* sCollisionHeaders[] = { - &D_06001830, &D_06001AB8, NULL, &D_06004330, &D_060044D0, NULL, &D_06004780, - &D_06004940, NULL, &D_06004B00, NULL, &D_06004CC0, NULL, + &gBotw1Col, &gBotw2Col, NULL, 0x06004330, 0x060044D0, NULL, 0x06004780, + 0x06004940, NULL, 0x06004B00, NULL, 0x06004CC0, NULL, }; static Gfx* sDLists[] = { - 0x06001060, 0x06001920, 0x060003F0, 0x060040F0, 0x060043B0, 0x06001120, 0x060045A0, - 0x060047F0, 0x060018F0, 0x060049B0, 0x06003CF0, 0x06004B70, 0x06002ED0, + gBotwFakeWallsAndFloorsDL, + gBotwThreeFakeFloorsDL, + gBotwHoleTrap2DL, + 0x060040F0, + 0x060043B0, + 0x06001120, + 0x060045A0, + 0x060047F0, + 0x060018F0, + 0x060049B0, + 0x06003CF0, + 0x06004B70, + 0x06002ED0, }; extern Gfx D_06001250[]; @@ -126,6 +136,6 @@ void BgHakaMegane_Draw(Actor* thisx, GlobalContext* globalCtx) { } if (thisx->params == 0) { - Gfx_DrawDListXlu(globalCtx, D_06001250); + Gfx_DrawDListXlu(globalCtx, gBotwBloodSplatterDL); } } diff --git a/src/overlays/actors/ovl_Bg_Haka_Water/z_bg_haka_water.c b/src/overlays/actors/ovl_Bg_Haka_Water/z_bg_haka_water.c index 7b6f9d07ab..10853bedb3 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Water/z_bg_haka_water.c +++ b/src/overlays/actors/ovl_Bg_Haka_Water/z_bg_haka_water.c @@ -5,6 +5,7 @@ */ #include "z_bg_haka_water.h" +#include "objects/object_hakach_objects/object_hakach_objects.h" #define FLAGS 0x00000030 @@ -15,7 +16,7 @@ void BgHakaWater_Destroy(Actor* thisx, GlobalContext* globalCtx); void BgHakaWater_Update(Actor* thisx, GlobalContext* globalCtx); void BgHakaWater_Draw(Actor* thisx, GlobalContext* globalCtx); -void func_80881D94(BgHakaWater* this, GlobalContext* globalCtx); +void BgHakaWater_LowerWater(BgHakaWater* this, GlobalContext* globalCtx); void BgHakaWater_Wait(BgHakaWater* this, GlobalContext* globalCtx); void BgHakaWater_ChangeWaterLevel(BgHakaWater* this, GlobalContext* globalCtx); @@ -35,9 +36,6 @@ static InitChainEntry sInitChain[] = { ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP), }; -extern Gfx D_06001E50[]; -extern Gfx D_06002010[]; - void BgHakaWater_Init(Actor* thisx, GlobalContext* globalCtx) { BgHakaWater* this = THIS; @@ -49,14 +47,14 @@ void BgHakaWater_Init(Actor* thisx, GlobalContext* globalCtx) { } else { this->isLowered = false; } - func_80881D94(this, globalCtx); + BgHakaWater_LowerWater(this, globalCtx); this->actionFunc = BgHakaWater_Wait; } void BgHakaWater_Destroy(Actor* thisx, GlobalContext* globalCtx) { } -void func_80881D94(BgHakaWater* this, GlobalContext* globalCtx) { +void BgHakaWater_LowerWater(BgHakaWater* this, GlobalContext* globalCtx) { s32 i; for (i = 0; i < 9; i++) { @@ -100,7 +98,7 @@ void BgHakaWater_ChangeWaterLevel(BgHakaWater* this, GlobalContext* globalCtx) { this->actor.draw = NULL; } } - func_80881D94(this, globalCtx); + BgHakaWater_LowerWater(this, globalCtx); } void BgHakaWater_Update(Actor* thisx, GlobalContext* globalCtx) { @@ -132,7 +130,7 @@ void BgHakaWater_Draw(Actor* thisx, GlobalContext* globalCtx) { gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_haka_water.c", 312), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, D_06001E50); + gSPDisplayList(POLY_XLU_DISP++, gBotwWaterRingDL); Matrix_Translate(0.0f, 92.0f, -1680.0f, MTXMODE_NEW); Matrix_Scale(0.1f, 0.1f, 0.1f, MTXMODE_APPLY); @@ -145,7 +143,7 @@ void BgHakaWater_Draw(Actor* thisx, GlobalContext* globalCtx) { gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, (u8)(5.1f * temp)); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_haka_water.c", 328), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_XLU_DISP++, D_06002010); + gSPDisplayList(POLY_XLU_DISP++, gBotwWaterFallDL); CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_haka_water.c", 332); } diff --git a/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c b/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c index 0578cbefd3..5738518272 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c +++ b/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c @@ -5,6 +5,7 @@ */ #include "z_bg_haka_zou.h" +#include "objects/object_hakach_objects/object_hakach_objects.h" #define FLAGS 0x00000010 @@ -71,10 +72,8 @@ static InitChainEntry sInitChain[] = { ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP), }; -extern Gfx D_06000A10[]; extern CollisionHeader D_06005E30; extern CollisionHeader D_06006F70; -extern CollisionHeader D_06000C2C; void BgHakaZou_Init(Actor* thisx, GlobalContext* globalCtx) { s32 pad; @@ -186,7 +185,7 @@ void BgHakaZou_Wait(BgHakaZou* this, GlobalContext* globalCtx) { CollisionHeader_GetVirtual(&D_06005E30, &colHeader); this->collider.dim.yShift = -50; } else { - CollisionHeader_GetVirtual(&D_06000C2C, &colHeader); + CollisionHeader_GetVirtual(&gBotwBombSpotCol, &colHeader); this->collider.dim.radius = 55; this->collider.dim.height = 20; } @@ -259,13 +258,13 @@ void func_80882E54(BgHakaZou* this, GlobalContext* globalCtx) { fragmentPos.y = this->collider.dim.pos.y; fragmentPos.z = this->collider.dim.pos.z; - EffectSsHahen_SpawnBurst(globalCtx, &fragmentPos, 10.0f, 0, 10, 10, 4, 141, 40, D_06000A10); + EffectSsHahen_SpawnBurst(globalCtx, &fragmentPos, 10.0f, 0, 10, 10, 4, 141, 40, gBotwBombSpotDL); for (i = 0; i < 2; i++) { for (j = 0; j < 2; j++) { fragmentPos.x = this->collider.dim.pos.x + (((j * 2) - 1) * num); fragmentPos.z = this->collider.dim.pos.z + (((i * 2) - 1) * num); - EffectSsHahen_SpawnBurst(globalCtx, &fragmentPos, 10.0f, 0, 10, 10, 4, 141, 40, D_06000A10); + EffectSsHahen_SpawnBurst(globalCtx, &fragmentPos, 10.0f, 0, 10, 10, 4, 141, 40, gBotwBombSpotDL); func_800286CC(globalCtx, &fragmentPos, &sZeroVec, &sZeroVec, 1000, 50); } } @@ -405,7 +404,7 @@ void BgHakaZou_Update(Actor* thisx, GlobalContext* globalCtx) { } void BgHakaZou_Draw(Actor* thisx, GlobalContext* globalCtx) { - static Gfx* dLists[] = { 0x060064E0, 0x06005CE0, 0x06000A10, 0x06005CE0 }; + static Gfx* dLists[] = { 0x060064E0, 0x06005CE0, gBotwBombSpotDL, 0x06005CE0 }; Gfx_DrawDListOpa(globalCtx, dLists[thisx->params]); } diff --git a/src/overlays/actors/ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.c b/src/overlays/actors/ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.c index 8e99a85b06..43de77e3f6 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.c +++ b/src/overlays/actors/ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.c @@ -73,7 +73,7 @@ static s16 D_80899520[] = { 18, 26, 34, 42, 50, 60, 70, 80 }; static s16 D_80899530[] = { 48, 42, 36, 32, 28, 24, 20, 16 }; static InitChainEntry sInitChain[] = { - ICHAIN_VEC3F_DIV1000(scale.x, 100, ICHAIN_CONTINUE), + 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), diff --git a/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/z_bg_jya_zurerukabe.c b/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/z_bg_jya_zurerukabe.c index fa47035d12..08b0b225bd 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/z_bg_jya_zurerukabe.c +++ b/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/z_bg_jya_zurerukabe.c @@ -180,7 +180,7 @@ void BgJyaZurerukabe_Update(Actor* thisx, GlobalContext* globalCtx) { } this->actionFunc(this, globalCtx); - + if (this->unk_168 == 0) { func_8089B4C8(this, globalCtx); } diff --git a/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c b/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c index ef4a2ca3f8..7e4ccf88bc 100644 --- a/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c +++ b/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c @@ -1,4 +1,5 @@ #include "z_bg_spot16_bombstone.h" +#include "objects/object_spot16_obj/object_spot16_obj.h" #include "overlays/actors/ovl_En_Bombf/z_en_bombf.h" #include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h" @@ -184,7 +185,7 @@ s32 func_808B4D9C(BgSpot16Bombstone* this, GlobalContext* globalCtx) { func_808B4D04(this, globalCtx); this->sinRotation = Math_SinS(this->actor.shape.rot.y); this->cosRotation = Math_CosS(this->actor.shape.rot.y); - this->unk_150 = D_06000C20; + this->dList = gDodongosCavernRock3DL; func_808B5934(this); return true; @@ -220,7 +221,7 @@ s32 func_808B4E58(BgSpot16Bombstone* this, GlobalContext* globalctx) { actor->shape.rot.y = D_808B5DD8[actor->params][8]; actor->shape.rot.z = D_808B5DD8[actor->params][9]; - this->unk_150 = D_060009E0; + this->dList = D_060009E0; this->bombiwaBankIndex = Object_GetIndex(&globalctx->objectCtx, OBJECT_BOMBIWA); if (this->bombiwaBankIndex < 0) { @@ -298,8 +299,6 @@ void func_808B5240(BgSpot16Bombstone* this, GlobalContext* globalCtx) { if (1) {} - // for(;this->unk_158 < ARRAY_COUNTU(D_808B5EB0); this->unk_158++) - while (true) { if ((u32)this->unk_158 >= ARRAY_COUNTU(D_808B5EB0) || this->unk_154 < D_808B5EB0[this->unk_158][0]) { break; @@ -547,11 +546,11 @@ void BgSpot16Bombstone_Draw(Actor* thisx, GlobalContext* globalCtx) { if (this->actor.params == 0xFF) { // The boulder is intact - gSPDisplayList(POLY_OPA_DISP++, this->unk_150); + gSPDisplayList(POLY_OPA_DISP++, this->dList); } else { // The boulder is debris gSPSegment(POLY_OPA_DISP++, 0x06, globalCtx->objectCtx.status[this->bombiwaBankIndex].segment); - gSPDisplayList(POLY_OPA_DISP++, this->unk_150); + gSPDisplayList(POLY_OPA_DISP++, this->dList); } CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_spot16_bombstone.c", 1274); diff --git a/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.h b/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.h index 9ebec63a10..1642b31ba2 100644 --- a/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.h +++ b/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.h @@ -11,7 +11,7 @@ typedef void (*BgSpot16BombstoneActionFunc)(struct BgSpot16Bombstone*, GlobalCon typedef struct BgSpot16Bombstone { /* 0x0000 */ Actor actor; /* 0x014C */ BgSpot16BombstoneActionFunc actionFunc; - /* 0x0150 */ Gfx* unk_150; + /* 0x0150 */ Gfx* dList; /* 0x0154 */ s16 unk_154; /* 0x0156 */ s16 switchFlag; /* 0x0158 */ s16 unk_158; diff --git a/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c b/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c index dc8fe5092c..0943f952f8 100644 --- a/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c +++ b/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c @@ -12,6 +12,7 @@ #include "objects/object_goma/object_goma.h" #include "objects/gameplay_keep/gameplay_keep.h" #include "objects/object_hidan_objects/object_hidan_objects.h" +#include "objects/object_jya_door/object_jya_door.h" #include "objects/object_mizu_objects/object_mizu_objects.h" #define FLAGS 0x00000010 @@ -57,7 +58,7 @@ typedef struct { u8 index2; } ShutterObjectInfo; -static ShutterObjectInfo D_809980F0[] = { +static ShutterObjectInfo sObjectInfo[] = { { OBJECT_GND, 4, 4 }, { OBJECT_GOMA, 5, 5 }, { OBJECT_YDAN_OBJECTS, 0, 1 }, @@ -86,14 +87,14 @@ typedef struct { /* 0x000B */ u8 f; } ShutterInfo; -static ShutterInfo D_80998134[] = { +static ShutterInfo sShutterInfo[] = { { gDTDungeonDoor1DL, gDoorMetalBarsDL, 130, 12, 20, 15 }, { gDTDungeonDoor2DL, gDoorMetalBarsDL, 130, 12, 20, 15 }, { 0x060000C0, 0x060001F0, 240, 14, 70, 15 }, { 0x06000590, 0x06006460, 0, 110, 50, 15 }, { gPhantomGanonBarsDL, NULL, 130, 12, 50, 15 }, { gGohmaDoorDL, NULL, 130, 12, 50, 15 }, - { 0x06000100, 0x060001F0, 240, 14, 50, 15 }, + { gSpiritDoorDL, gJyaDoorMetalBarsDL, 240, 14, 50, 15 }, { 0x060010C0, NULL, 130, 12, 50, 15 }, { gDungeonDoorDL, gDoorMetalBarsDL, 130, 12, 20, 15 }, { gFireTempleDoorFrontDL, gDoorMetalBarsDL, 130, 12, 20, 15 }, @@ -125,7 +126,7 @@ typedef struct { u8 index; } ShutterSceneInfo; -static ShutterSceneInfo D_80998240[] = { +static ShutterSceneInfo sSceneInfo[] = { { SCENE_YDAN, 0x02 }, { SCENE_DDAN, 0x03 }, { SCENE_DDAN_BOSS, 0x03 }, { SCENE_BDAN, 0x04 }, { SCENE_BMORI1, 0x05 }, { SCENE_HIDAN, 0x08 }, { SCENE_GANON, 0x09 }, { SCENE_GANON_BOSS, 0x09 }, { SCENE_JYASINZOU, 0x0A }, @@ -168,7 +169,7 @@ s32 DoorShutter_SetupDoor(DoorShutter* this, GlobalContext* globalCtx) { TransitionActorEntry* transitionEntry = &globalCtx->transitionActorList[(u16)this->dyna.actor.params >> 0xA]; s8 frontRoom = transitionEntry->sides[0].room; s32 doorType = this->doorType; - ShutterObjectInfo* temp_t0 = &D_809980F0[this->unk_16B]; + ShutterObjectInfo* temp_t0 = &sObjectInfo[this->unk_16B]; if (doorType != SHUTTER_KEY_LOCKED) { if (frontRoom == transitionEntry->sides[1].room) { @@ -224,7 +225,7 @@ void DoorShutter_Init(Actor* thisx, GlobalContext* globalCtx) { if (phi_a3 < 0) { ShutterSceneInfo* phi_v1; - for (phi_v1 = &D_80998240[0], i = 0; i < ARRAY_COUNT(D_80998240) - 1; i++, phi_v1++) { + for (phi_v1 = &sSceneInfo[0], i = 0; i < ARRAY_COUNT(sSceneInfo) - 1; i++, phi_v1++) { if (globalCtx2->sceneNum == phi_v1->sceneNum) { break; } @@ -242,7 +243,8 @@ void DoorShutter_Init(Actor* thisx, GlobalContext* globalCtx) { } else { this->dyna.actor.room = -1; } - if (this->requiredObjBankIndex = objectIndex = Object_GetIndex(&globalCtx2->objectCtx, D_809980F0[phi_a3].objectId), + if (this->requiredObjBankIndex = objectIndex = + Object_GetIndex(&globalCtx2->objectCtx, sObjectInfo[phi_a3].objectId), (s8)objectIndex < 0) { Actor_Kill(&this->dyna.actor); return; @@ -283,7 +285,7 @@ void DoorShutter_SetupType(DoorShutter* this, GlobalContext* globalCtx) { CollisionHeader* colHeader = NULL; Actor_SetObjectDependency(globalCtx, &this->dyna.actor); - this->unk_16C = D_809980F0[this->unk_16B].index1; + this->unk_16C = sObjectInfo[this->unk_16B].index1; CollisionHeader_GetVirtual((this->doorType == SHUTTER_GOHMA_BLOCK) ? &gGohmaDoorCol : &gPhantomGanonBarsCol, &colHeader); this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader); @@ -323,7 +325,7 @@ s32 func_809968D4(DoorShutter* this, GlobalContext* globalCtx) { Player* player = PLAYER; if (!Player_InCsMode(globalCtx)) { - ShutterInfo* temp_v1 = &D_80998134[this->unk_16C]; + ShutterInfo* temp_v1 = &sShutterInfo[this->unk_16C]; f32 temp_f2 = func_80996840(globalCtx, this, (this->unk_16C != 3) ? 0.0f : 80.0f, temp_v1->e, temp_v1->f); if (fabsf(temp_f2) < 50.0f) { @@ -683,7 +685,7 @@ void DoorShutter_Draw(Actor* thisx, GlobalContext* globalCtx) { //! from drawing until initialization is complete. However if the required object is the same as the //! object dependency listed in init vars (gameplay_keep in this case), the check will pass even though //! initialization has not completed. When this happens, it will try to draw the display list of the - //! first entry in `D_80998134`, which will likely crash the game. + //! first entry in `sShutterInfo`, which will likely crash the game. //! This only matters in very specific scenarios, when the door is unculled on the first possible frame //! after spawning. It will try to draw without having run update yet. //! @@ -693,7 +695,7 @@ void DoorShutter_Draw(Actor* thisx, GlobalContext* globalCtx) { if (this->dyna.actor.objBankIndex == this->requiredObjBankIndex && (this->unk_16B == 0 || func_80997A34(this, globalCtx) != 0)) { s32 pad[2]; - ShutterInfo* sp70 = &D_80998134[this->unk_16C]; + ShutterInfo* sp70 = &sShutterInfo[this->unk_16C]; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_door_shutter.c", 2048); diff --git a/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c b/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c index 1c309a8c09..daa4de2f94 100644 --- a/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c +++ b/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c @@ -1,4 +1,5 @@ #include "z_door_warp1.h" +#include "objects/object_warp1/object_warp1.h" #define FLAGS 0x00000000 @@ -9,10 +10,6 @@ void DoorWarp1_Destroy(Actor* thisx, GlobalContext* globalCtx); void DoorWarp1_Update(Actor* thisx, GlobalContext* globalCtx); void DoorWarp1_Draw(Actor* thisx, GlobalContext* globalCtx); -extern UNK_TYPE D_060001A0; -extern UNK_TYPE D_06001374; -extern UNK_TYPE D_06002CA8; - /* const ActorInit Door_Warp1_InitVars = { ACTOR_DOOR_WARP1, diff --git a/src/overlays/actors/ovl_En_Cs/z_en_cs.c b/src/overlays/actors/ovl_En_Cs/z_en_cs.c index 260fdfe76e..6ab5c3ebff 100644 --- a/src/overlays/actors/ovl_En_Cs/z_en_cs.c +++ b/src/overlays/actors/ovl_En_Cs/z_en_cs.c @@ -1,4 +1,5 @@ #include "z_en_cs.h" +#include "objects/object_cs/object_cs.h" #include "objects/object_link_child/object_link_child.h" #define FLAGS 0x00000009 @@ -16,8 +17,6 @@ void EnCs_Wait(EnCs* this, GlobalContext* globalCtx); s32 EnCs_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* thisx); void EnCs_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx); -extern FlexSkeletonHeader D_06008540; // Graveyard boy skeleton - const ActorInit En_Cs_InitVars = { ACTOR_EN_CS, ACTORCAT_NPC, @@ -52,13 +51,46 @@ static ColliderCylinderInit sCylinderInit = { static CollisionCheckInfoInit2 sColChkInfoInit2 = { 0, 0, 0, 0, MASS_IMMOVABLE }; -static DamageTable sDamageTable = { 0 }; +static DamageTable sDamageTable[] = { + /* Deku nut */ DMG_ENTRY(0, 0x0), + /* Deku stick */ DMG_ENTRY(0, 0x0), + /* Slingshot */ DMG_ENTRY(0, 0x0), + /* Explosive */ DMG_ENTRY(0, 0x0), + /* Boomerang */ DMG_ENTRY(0, 0x0), + /* Normal arrow */ DMG_ENTRY(0, 0x0), + /* Hammer swing */ DMG_ENTRY(0, 0x0), + /* Hookshot */ DMG_ENTRY(0, 0x0), + /* Kokiri sword */ DMG_ENTRY(0, 0x0), + /* Master sword */ DMG_ENTRY(0, 0x0), + /* Giant's Knife */ DMG_ENTRY(0, 0x0), + /* Fire arrow */ DMG_ENTRY(0, 0x0), + /* Ice arrow */ DMG_ENTRY(0, 0x0), + /* Light arrow */ DMG_ENTRY(0, 0x0), + /* Unk arrow 1 */ DMG_ENTRY(0, 0x0), + /* Unk arrow 2 */ DMG_ENTRY(0, 0x0), + /* Unk arrow 3 */ DMG_ENTRY(0, 0x0), + /* Fire magic */ DMG_ENTRY(0, 0x0), + /* Ice magic */ DMG_ENTRY(0, 0x0), + /* Light magic */ DMG_ENTRY(0, 0x0), + /* Shield */ DMG_ENTRY(0, 0x0), + /* Mirror Ray */ DMG_ENTRY(0, 0x0), + /* Kokiri spin */ DMG_ENTRY(0, 0x0), + /* Giant spin */ DMG_ENTRY(0, 0x0), + /* Master spin */ DMG_ENTRY(0, 0x0), + /* Kokiri jump */ DMG_ENTRY(0, 0x0), + /* Giant jump */ DMG_ENTRY(0, 0x0), + /* Master jump */ DMG_ENTRY(0, 0x0), + /* Unknown 1 */ DMG_ENTRY(0, 0x0), + /* Unblockable */ DMG_ENTRY(0, 0x0), + /* Hammer jump */ DMG_ENTRY(0, 0x0), + /* Unknown 2 */ DMG_ENTRY(0, 0x0), +}; static struct_D_80AA1678 sAnimations[] = { - { 0x06000700, 1.0f, ANIMMODE_ONCE, -10.0f }, - { 0x06000E10, 1.0f, ANIMMODE_ONCE, -10.0f }, - { 0x06001588, 1.0f, ANIMMODE_ONCE, -10.0f }, - { 0x0600195C, 1.0f, ANIMMODE_ONCE, -10.0f }, + { &gGraveyardKidWalkAnim, 1.0f, ANIMMODE_ONCE, -10.0f }, + { &gGraveyardKidSwingStickUpAnim, 1.0f, ANIMMODE_ONCE, -10.0f }, + { &gGraveyardKidGrabStickTwoHandsAnim, 1.0f, ANIMMODE_ONCE, -10.0f }, + { &gGraveyardKidIdleAnim, 1.0f, ANIMMODE_ONCE, -10.0f }, }; void EnCs_SetAnimFromIndex(EnCs* this, s32 animIndex, s32* currentAnimIndex) { @@ -94,12 +126,12 @@ void EnCs_Init(Actor* thisx, GlobalContext* globalCtx) { ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 19.0f); - SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_06008540, NULL, this->jointTable, this->morphTable, 16); + SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gGraveyardKidSkel, NULL, this->jointTable, this->morphTable, 16); Collider_InitCylinder(globalCtx, &this->collider); Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit); - CollisionCheck_SetInfo2(&this->actor.colChkInfo, &sDamageTable, &sColChkInfoInit2); + CollisionCheck_SetInfo2(&this->actor.colChkInfo, sDamageTable, &sColChkInfoInit2); Actor_UpdateBgCheckInfo(globalCtx, &this->actor, 0.0f, 0.0f, 0.0f, 4); Animation_Change(&this->skelAnime, sAnimations[0].animation, 1.0f, 0.0f, @@ -416,7 +448,11 @@ void EnCs_Update(Actor* thisx, GlobalContext* globalCtx) { } void EnCs_Draw(Actor* thisx, GlobalContext* globalCtx) { - static u64* eyeTextures[] = { 0x06002130, 0x06002930, 0x06003130 }; + static u64* eyeTextures[] = { + gGraveyardKidEyesOpenTex, + gGraveyardKidEyesHalfTex, + gGraveyardKidEyesClosedTex, + }; EnCs* this = THIS; s32 pad; diff --git a/undefined_syms.txt b/undefined_syms.txt index f01a05649d..b7d4fd4406 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -382,17 +382,6 @@ D_060003C0 = 0x060003C0; D_060030A0 = 0x060030A0; D_06003158 = 0x06003158; -// z_bg_haka_megane -D_06001250 = 0x06001250; -D_06001830 = 0x06001830; -D_06001AB8 = 0x06001AB8; -D_06004330 = 0x06004330; -D_060044D0 = 0x060044D0; -D_06004780 = 0x06004780; -D_06004940 = 0x06004940; -D_06004B00 = 0x06004B00; -D_06004CC0 = 0x06004CC0; - // z_bg_haka_meganebg D_06000118 = 0x06000118; D_06005334 = 0x06005334; @@ -1055,10 +1044,6 @@ D_06001000 = 0x06001000; D_060011B8 = 0x060011B8; D_06001040 = 0x06001040; -// z_bg_haka_water -D_06001E50 = 0x06001E50; -D_06002010 = 0x06002010; - // z_en_yukabyun D_06000A60 = 0x06000A60; D_06000970 = 0x06000970; @@ -1274,10 +1259,6 @@ D_06010E10 = 0x06010E10; D_060131C4 = 0x060131C4; D_0600A938 = 0x0600A938; -// z_bg_haka_huta -D_060006B0 = 0x060006B0; -D_06000870 = 0x06000870; - // z_bg_haka_sgami D_0600BF20 = 0x0600BF20; D_060021F0 = 0x060021F0; @@ -1290,10 +1271,8 @@ D_0600E910 = 0x0600E910; D_0600ED7C = 0x0600ED7C; // z_bg_haka_zou -D_06000A10 = 0x06000A10; D_06005E30 = 0x06005E30; D_06006F70 = 0x06006F70; -D_06000C2C = 0x06000C2C; // z_bg_ice_objects D_06000190 = 0x06000190; @@ -1637,11 +1616,6 @@ D_06005CB0 = 0x06005CB0; // z_door_killer D_06001BC8 = 0x06001BC8; -// z_door_warp1 -D_060001A0 = 0x060001A0; -D_06001374 = 0x06001374; -D_06002CA8 = 0x06002CA8; - // z_efc_erupc D_06001720 = 0x06001720; D_06002570 = 0x06002570; @@ -1699,7 +1673,6 @@ D_060021A0 = 0x060021A0; D_06002250 = 0x06002250; // z_en_cs -D_06008540 = 0x06008540; D_0602AF70 = 0x0602AF70; // z_en_daiku_kakariko