From 2fceccbd08b34d4c1ba2d47b2c6350cef5fa60ec Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 23 Nov 2020 21:26:10 -0500 Subject: [PATCH] dSv_light_drop_c ok --- asm/d/a/d_a_alink.s | 2 +- asm/d/com/inf/d_com_inf_game.s | 4 +- asm/d/d_item.s | 12 ++-- asm/d/d_meter2.s | 14 ++--- asm/d/d_save.s | 100 +-------------------------------- asm/d/meter2/d_meter2_draw.s | 12 ++-- asm/d/meter2/d_meter2_info.s | 2 +- asm/d/msg/d_msg_flow.s | 8 +-- asm/d/save/d_save_HIO.s | 4 +- include/d_save.h | 29 +++++----- ldscript.lcf | 1 + src/d/d_save/d_save.cpp | 48 ++++++++++++++++ 12 files changed, 95 insertions(+), 141 deletions(-) diff --git a/asm/d/a/d_a_alink.s b/asm/d/a/d_a_alink.s index e15464c61ad..9ef10d177e8 100644 --- a/asm/d/a/d_a_alink.s +++ b/asm/d/a/d_a_alink.s @@ -149572,7 +149572,7 @@ lbl_8012167C: /* 801216AC 0011E5EC 38 83 61 C0 */ addi r4, r3, lbl_804061C0@l /* 801216B0 0011E5F0 38 64 01 14 */ addi r3, r4, 0x114 /* 801216B4 0011E5F4 88 84 4E 0C */ lbz r4, 0x4e0c(r4) -/* 801216B8 0011E5F8 4B F1 2C 89 */ bl dSv_light_drop_c_NS_getLightDropNum +/* 801216B8 0011E5F8 4B F1 2C 89 */ bl getLightDropNum__16dSv_light_drop_cCFUc /* 801216BC 0011E5FC 3C 80 80 40 */ lis r4, lbl_804061C0@ha /* 801216C0 0011E600 38 84 61 C0 */ addi r4, r4, lbl_804061C0@l /* 801216C4 0011E604 88 84 5E A1 */ lbz r4, 0x5ea1(r4) diff --git a/asm/d/com/inf/d_com_inf_game.s b/asm/d/com/inf/d_com_inf_game.s index 516e8c6ea27..fe1417305c4 100644 --- a/asm/d/com/inf/d_com_inf_game.s +++ b/asm/d/com/inf/d_com_inf_game.s @@ -4407,12 +4407,12 @@ dComIfGp_isLightDropMapVisible: lbl_8002EE04: /* 8002EE04 0002BD44 7F E3 FB 78 */ mr r3, r31 /* 8002EE08 0002BD48 57 C4 06 3E */ clrlwi r4, r30, 0x18 -/* 8002EE0C 0002BD4C 48 00 55 91 */ bl dSv_light_drop_c_NS_isLightDropGetFlag +/* 8002EE0C 0002BD4C 48 00 55 91 */ bl isLightDropGetFlag__16dSv_light_drop_cCFUc /* 8002EE10 0002BD50 2C 03 00 00 */ cmpwi r3, 0 /* 8002EE14 0002BD54 41 82 00 24 */ beq lbl_8002EE38 /* 8002EE18 0002BD58 7F E3 FB 78 */ mr r3, r31 /* 8002EE1C 0002BD5C 57 C4 06 3E */ clrlwi r4, r30, 0x18 -/* 8002EE20 0002BD60 48 00 55 21 */ bl dSv_light_drop_c_NS_getLightDropNum +/* 8002EE20 0002BD60 48 00 55 21 */ bl getLightDropNum__16dSv_light_drop_cCFUc /* 8002EE24 0002BD64 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 8002EE28 0002BD68 28 00 00 10 */ cmplwi r0, 0x10 /* 8002EE2C 0002BD6C 40 80 00 0C */ bge lbl_8002EE38 diff --git a/asm/d/d_item.s b/asm/d/d_item.s index 6fdb2c761b1..db60675b97f 100644 --- a/asm/d/d_item.s +++ b/asm/d/d_item.s @@ -1361,7 +1361,7 @@ lbl_80098F68: /* 8009937C 000962BC 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 80099380 000962C0 38 63 01 14 */ addi r3, r3, 0x114 /* 80099384 000962C4 38 80 00 00 */ li r4, 0 -/* 80099388 000962C8 4B F9 AF E1 */ bl dSv_light_drop_c_NS_onLightDropGetFlag +/* 80099388 000962C8 4B F9 AF E1 */ bl onLightDropGetFlag__16dSv_light_drop_cFUc /* 8009938C 000962CC 80 01 00 14 */ lwz r0, 0x14(r1) /* 80099390 000962D0 7C 08 03 A6 */ mtlr r0 /* 80099394 000962D4 38 21 00 10 */ addi r1, r1, 0x10 @@ -1373,7 +1373,7 @@ lbl_80098F68: /* 800993AC 000962EC 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 800993B0 000962F0 38 63 01 14 */ addi r3, r3, 0x114 /* 800993B4 000962F4 38 80 00 01 */ li r4, 1 -/* 800993B8 000962F8 4B F9 AF B1 */ bl dSv_light_drop_c_NS_onLightDropGetFlag +/* 800993B8 000962F8 4B F9 AF B1 */ bl onLightDropGetFlag__16dSv_light_drop_cFUc /* 800993BC 000962FC 80 01 00 14 */ lwz r0, 0x14(r1) /* 800993C0 00096300 7C 08 03 A6 */ mtlr r0 /* 800993C4 00096304 38 21 00 10 */ addi r1, r1, 0x10 @@ -1385,7 +1385,7 @@ lbl_80098F68: /* 800993DC 0009631C 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 800993E0 00096320 38 63 01 14 */ addi r3, r3, 0x114 /* 800993E4 00096324 38 80 00 02 */ li r4, 2 -/* 800993E8 00096328 4B F9 AF 81 */ bl dSv_light_drop_c_NS_onLightDropGetFlag +/* 800993E8 00096328 4B F9 AF 81 */ bl onLightDropGetFlag__16dSv_light_drop_cFUc /* 800993EC 0009632C 80 01 00 14 */ lwz r0, 0x14(r1) /* 800993F0 00096330 7C 08 03 A6 */ mtlr r0 /* 800993F4 00096334 38 21 00 10 */ addi r1, r1, 0x10 @@ -3060,7 +3060,7 @@ lbl_8009A438: /* 8009ADDC 00097D1C 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 8009ADE0 00097D20 38 63 01 14 */ addi r3, r3, 0x114 /* 8009ADE4 00097D24 38 80 00 00 */ li r4, 0 -/* 8009ADE8 00097D28 4B F9 95 B5 */ bl dSv_light_drop_c_NS_isLightDropGetFlag +/* 8009ADE8 00097D28 4B F9 95 B5 */ bl isLightDropGetFlag__16dSv_light_drop_cCFUc /* 8009ADEC 00097D2C 80 01 00 14 */ lwz r0, 0x14(r1) /* 8009ADF0 00097D30 7C 08 03 A6 */ mtlr r0 /* 8009ADF4 00097D34 38 21 00 10 */ addi r1, r1, 0x10 @@ -3072,7 +3072,7 @@ lbl_8009A438: /* 8009AE0C 00097D4C 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 8009AE10 00097D50 38 63 01 14 */ addi r3, r3, 0x114 /* 8009AE14 00097D54 38 80 00 01 */ li r4, 1 -/* 8009AE18 00097D58 4B F9 95 85 */ bl dSv_light_drop_c_NS_isLightDropGetFlag +/* 8009AE18 00097D58 4B F9 95 85 */ bl isLightDropGetFlag__16dSv_light_drop_cCFUc /* 8009AE1C 00097D5C 80 01 00 14 */ lwz r0, 0x14(r1) /* 8009AE20 00097D60 7C 08 03 A6 */ mtlr r0 /* 8009AE24 00097D64 38 21 00 10 */ addi r1, r1, 0x10 @@ -3084,7 +3084,7 @@ lbl_8009A438: /* 8009AE3C 00097D7C 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 8009AE40 00097D80 38 63 01 14 */ addi r3, r3, 0x114 /* 8009AE44 00097D84 38 80 00 02 */ li r4, 2 -/* 8009AE48 00097D88 4B F9 95 55 */ bl dSv_light_drop_c_NS_isLightDropGetFlag +/* 8009AE48 00097D88 4B F9 95 55 */ bl isLightDropGetFlag__16dSv_light_drop_cCFUc /* 8009AE4C 00097D8C 80 01 00 14 */ lwz r0, 0x14(r1) /* 8009AE50 00097D90 7C 08 03 A6 */ mtlr r0 /* 8009AE54 00097D94 38 21 00 10 */ addi r1, r1, 0x10 diff --git a/asm/d/d_meter2.s b/asm/d/d_meter2.s index 1e91a10d9d3..c0db7c38e24 100644 --- a/asm/d/d_meter2.s +++ b/asm/d/d_meter2.s @@ -165,7 +165,7 @@ lbl_8021EBD4: /* 8021EC6C 0021BBAC D0 1F 01 30 */ stfs f0, 0x130(r31) /* 8021EC70 0021BBB0 38 64 01 14 */ addi r3, r4, 0x114 /* 8021EC74 0021BBB4 88 84 4E 0C */ lbz r4, 0x4e0c(r4) -/* 8021EC78 0021BBB8 4B E1 56 C9 */ bl dSv_light_drop_c_NS_getLightDropNum +/* 8021EC78 0021BBB8 4B E1 56 C9 */ bl getLightDropNum__16dSv_light_drop_cCFUc /* 8021EC7C 0021BBBC 98 7F 01 C2 */ stb r3, 0x1c2(r31) /* 8021EC80 0021BBC0 3C 60 80 40 */ lis r3, lbl_804061C0@ha /* 8021EC84 0021BBC4 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l @@ -2153,7 +2153,7 @@ dMeter2_c_NS_moveLightDrop: /* 802208E0 0021D820 38 83 61 C0 */ addi r4, r3, lbl_804061C0@l /* 802208E4 0021D824 38 64 01 14 */ addi r3, r4, 0x114 /* 802208E8 0021D828 88 84 4E 0C */ lbz r4, 0x4e0c(r4) -/* 802208EC 0021D82C 4B E1 3A 55 */ bl dSv_light_drop_c_NS_getLightDropNum +/* 802208EC 0021D82C 4B E1 3A 55 */ bl getLightDropNum__16dSv_light_drop_cCFUc /* 802208F0 0021D830 3C 80 80 40 */ lis r4, lbl_804061C0@ha /* 802208F4 0021D834 38 84 61 C0 */ addi r4, r4, lbl_804061C0@l /* 802208F8 0021D838 88 84 5E A1 */ lbz r4, 0x5ea1(r4) @@ -2167,14 +2167,14 @@ lbl_8022090C: /* 80220914 0021D854 3B DF 01 14 */ addi r30, r31, 0x114 /* 80220918 0021D858 7F C3 F3 78 */ mr r3, r30 /* 8022091C 0021D85C 88 9F 4E 0C */ lbz r4, 0x4e0c(r31) -/* 80220920 0021D860 4B E1 3A 21 */ bl dSv_light_drop_c_NS_getLightDropNum +/* 80220920 0021D860 4B E1 3A 21 */ bl getLightDropNum__16dSv_light_drop_cCFUc /* 80220924 0021D864 88 9B 01 C2 */ lbz r4, 0x1c2(r27) /* 80220928 0021D868 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 8022092C 0021D86C 7C 04 00 40 */ cmplw r4, r0 /* 80220930 0021D870 41 82 00 CC */ beq lbl_802209FC /* 80220934 0021D874 7F C3 F3 78 */ mr r3, r30 /* 80220938 0021D878 88 9F 4E 0C */ lbz r4, 0x4e0c(r31) -/* 8022093C 0021D87C 4B E1 3A 05 */ bl dSv_light_drop_c_NS_getLightDropNum +/* 8022093C 0021D87C 4B E1 3A 05 */ bl getLightDropNum__16dSv_light_drop_cCFUc /* 80220940 0021D880 3C 80 80 40 */ lis r4, lbl_804061C0@ha /* 80220944 0021D884 38 84 61 C0 */ addi r4, r4, lbl_804061C0@l /* 80220948 0021D888 88 84 5E A1 */ lbz r4, 0x5ea1(r4) @@ -2199,7 +2199,7 @@ lbl_8022090C: lbl_80220994: /* 80220994 0021D8D4 7F C3 F3 78 */ mr r3, r30 /* 80220998 0021D8D8 88 9F 4E 0C */ lbz r4, 0x4e0c(r31) -/* 8022099C 0021D8DC 4B E1 39 A5 */ bl dSv_light_drop_c_NS_getLightDropNum +/* 8022099C 0021D8DC 4B E1 39 A5 */ bl getLightDropNum__16dSv_light_drop_cCFUc /* 802209A0 0021D8E0 88 9B 01 C2 */ lbz r4, 0x1c2(r27) /* 802209A4 0021D8E4 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 802209A8 0021D8E8 7C 04 00 40 */ cmplw r4, r0 @@ -2221,7 +2221,7 @@ lbl_80220994: lbl_802209E8: /* 802209E8 0021D928 7F C3 F3 78 */ mr r3, r30 /* 802209EC 0021D92C 88 9F 4E 0C */ lbz r4, 0x4e0c(r31) -/* 802209F0 0021D930 4B E1 39 51 */ bl dSv_light_drop_c_NS_getLightDropNum +/* 802209F0 0021D930 4B E1 39 51 */ bl getLightDropNum__16dSv_light_drop_cCFUc /* 802209F4 0021D934 98 7B 01 C2 */ stb r3, 0x1c2(r27) /* 802209F8 0021D938 3B A0 00 01 */ li r29, 1 lbl_802209FC: @@ -7685,7 +7685,7 @@ dMeter2_c_NS_isShowLightDrop: /* 80225718 00222658 3B C3 61 C0 */ addi r30, r3, lbl_804061C0@l /* 8022571C 0022265C 38 7E 01 14 */ addi r3, r30, 0x114 /* 80225720 00222660 88 9E 4E 0C */ lbz r4, 0x4e0c(r30) -/* 80225724 00222664 4B E0 EC 79 */ bl dSv_light_drop_c_NS_isLightDropGetFlag +/* 80225724 00222664 4B E0 EC 79 */ bl isLightDropGetFlag__16dSv_light_drop_cCFUc /* 80225728 00222668 2C 03 00 00 */ cmpwi r3, 0 /* 8022572C 0022266C 41 82 01 50 */ beq lbl_8022587C /* 80225730 00222670 3C 60 80 43 */ lis r3, lbl_80430188@ha diff --git a/asm/d/d_save.s b/asm/d/d_save.s index 79ee7b9f2cd..c4dc11e2630 100644 --- a/asm/d/d_save.s +++ b/asm/d/d_save.s @@ -2,102 +2,6 @@ .section .text, "ax" # 80032918 -.global dSv_player_wolf_c_NS_init -dSv_player_wolf_c_NS_init: -/* 800342B4 000311F4 38 A0 00 00 */ li r5, 0 -/* 800342B8 000311F8 7C 64 1B 78 */ mr r4, r3 -/* 800342BC 000311FC 38 00 00 03 */ li r0, 3 -/* 800342C0 00031200 7C 09 03 A6 */ mtctr r0 -lbl_800342C4: -/* 800342C4 00031204 98 A4 00 00 */ stb r5, 0(r4) -/* 800342C8 00031208 38 84 00 01 */ addi r4, r4, 1 -/* 800342CC 0003120C 42 00 FF F8 */ bdnz lbl_800342C4 -/* 800342D0 00031210 38 00 00 00 */ li r0, 0 -/* 800342D4 00031214 98 03 00 03 */ stb r0, 3(r3) -/* 800342D8 00031218 4E 80 00 20 */ blr - -.global dSv_light_drop_c_NS_init -dSv_light_drop_c_NS_init: -/* 800342DC 0003121C 38 A0 00 00 */ li r5, 0 -/* 800342E0 00031220 7C 64 1B 78 */ mr r4, r3 -/* 800342E4 00031224 38 00 00 04 */ li r0, 4 -/* 800342E8 00031228 7C 09 03 A6 */ mtctr r0 -lbl_800342EC: -/* 800342EC 0003122C 98 A4 00 00 */ stb r5, 0(r4) -/* 800342F0 00031230 38 84 00 01 */ addi r4, r4, 1 -/* 800342F4 00031234 42 00 FF F8 */ bdnz lbl_800342EC -/* 800342F8 00031238 38 80 00 00 */ li r4, 0 -/* 800342FC 0003123C 98 83 00 04 */ stb r4, 4(r3) -/* 80034300 00031240 38 A0 00 00 */ li r5, 0 -/* 80034304 00031244 38 00 00 03 */ li r0, 3 -/* 80034308 00031248 7C 09 03 A6 */ mtctr r0 -lbl_8003430C: -/* 8003430C 0003124C 38 05 00 05 */ addi r0, r5, 5 -/* 80034310 00031250 7C 83 01 AE */ stbx r4, r3, r0 -/* 80034314 00031254 38 A5 00 01 */ addi r5, r5, 1 -/* 80034318 00031258 42 00 FF F4 */ bdnz lbl_8003430C -/* 8003431C 0003125C 4E 80 00 20 */ blr -/* 80034320 00031260 54 80 06 3E */ clrlwi r0, r4, 0x18 -/* 80034324 00031264 28 00 00 04 */ cmplwi r0, 4 -/* 80034328 00031268 41 80 00 0C */ blt lbl_80034334 -/* 8003432C 0003126C 28 00 00 06 */ cmplwi r0, 6 -/* 80034330 00031270 4C 81 00 20 */ blelr -lbl_80034334: -/* 80034334 00031274 54 80 06 3E */ clrlwi r0, r4, 0x18 -/* 80034338 00031278 7C A3 01 AE */ stbx r5, r3, r0 -/* 8003433C 0003127C 4E 80 00 20 */ blr - -.global dSv_light_drop_c_NS_getLightDropNum -dSv_light_drop_c_NS_getLightDropNum: -/* 80034340 00031280 54 80 06 3E */ clrlwi r0, r4, 0x18 -/* 80034344 00031284 28 00 00 04 */ cmplwi r0, 4 -/* 80034348 00031288 41 80 00 14 */ blt lbl_8003435C -/* 8003434C 0003128C 28 00 00 06 */ cmplwi r0, 6 -/* 80034350 00031290 41 81 00 0C */ bgt lbl_8003435C -/* 80034354 00031294 38 60 00 00 */ li r3, 0 -/* 80034358 00031298 4E 80 00 20 */ blr -lbl_8003435C: -/* 8003435C 0003129C 54 80 06 3E */ clrlwi r0, r4, 0x18 -/* 80034360 000312A0 7C 63 00 AE */ lbzx r3, r3, r0 -/* 80034364 000312A4 4E 80 00 20 */ blr - -.global dSv_light_drop_c_NS_onLightDropGetFlag -dSv_light_drop_c_NS_onLightDropGetFlag: -/* 80034368 000312A8 54 80 06 3E */ clrlwi r0, r4, 0x18 -/* 8003436C 000312AC 28 00 00 04 */ cmplwi r0, 4 -/* 80034370 000312B0 41 80 00 0C */ blt lbl_8003437C -/* 80034374 000312B4 28 00 00 06 */ cmplwi r0, 6 -/* 80034378 000312B8 4C 81 00 20 */ blelr -lbl_8003437C: -/* 8003437C 000312BC 88 C3 00 04 */ lbz r6, 4(r3) -/* 80034380 000312C0 38 A0 00 01 */ li r5, 1 -/* 80034384 000312C4 54 80 06 3E */ clrlwi r0, r4, 0x18 -/* 80034388 000312C8 7C A0 00 30 */ slw r0, r5, r0 -/* 8003438C 000312CC 54 00 06 3E */ clrlwi r0, r0, 0x18 -/* 80034390 000312D0 7C C0 03 78 */ or r0, r6, r0 -/* 80034394 000312D4 98 03 00 04 */ stb r0, 4(r3) -/* 80034398 000312D8 4E 80 00 20 */ blr - -.global dSv_light_drop_c_NS_isLightDropGetFlag -dSv_light_drop_c_NS_isLightDropGetFlag: -/* 8003439C 000312DC 54 80 06 3E */ clrlwi r0, r4, 0x18 -/* 800343A0 000312E0 28 00 00 04 */ cmplwi r0, 4 -/* 800343A4 000312E4 41 80 00 14 */ blt lbl_800343B8 -/* 800343A8 000312E8 28 00 00 06 */ cmplwi r0, 6 -/* 800343AC 000312EC 41 81 00 0C */ bgt lbl_800343B8 -/* 800343B0 000312F0 38 60 00 00 */ li r3, 0 -/* 800343B4 000312F4 4E 80 00 20 */ blr -lbl_800343B8: -/* 800343B8 000312F8 88 A3 00 04 */ lbz r5, 4(r3) -/* 800343BC 000312FC 38 60 00 01 */ li r3, 1 -/* 800343C0 00031300 54 80 06 3E */ clrlwi r0, r4, 0x18 -/* 800343C4 00031304 7C 60 00 30 */ slw r0, r3, r0 -/* 800343C8 00031308 54 00 06 3E */ clrlwi r0, r0, 0x18 -/* 800343CC 0003130C 7C A3 00 38 */ and r3, r5, r0 -/* 800343D0 00031310 30 03 FF FF */ addic r0, r3, -1 -/* 800343D4 00031314 7C 60 19 10 */ subfe r3, r0, r3 -/* 800343D8 00031318 4E 80 00 20 */ blr - .global dSv_letter_info_c_NS_init dSv_letter_info_c_NS_init: /* 800343DC 0003131C 38 80 00 00 */ li r4, 0 @@ -352,9 +256,9 @@ dSv_player_c_NS_init: /* 80034704 00031644 38 7F 01 00 */ addi r3, r31, 0x100 /* 80034708 00031648 4B FF FA A5 */ bl init__20dSv_player_collect_cFv /* 8003470C 0003164C 38 7F 01 10 */ addi r3, r31, 0x110 -/* 80034710 00031650 4B FF FB A5 */ bl dSv_player_wolf_c_NS_init +/* 80034710 00031650 4B FF FB A5 */ bl init__17dSv_player_wolf_cFv /* 80034714 00031654 38 7F 01 14 */ addi r3, r31, 0x114 -/* 80034718 00031658 4B FF FB C5 */ bl dSv_light_drop_c_NS_init +/* 80034718 00031658 4B FF FB C5 */ bl init__16dSv_light_drop_cFv /* 8003471C 0003165C 38 7F 01 1C */ addi r3, r31, 0x11c /* 80034720 00031660 4B FF FC BD */ bl dSv_letter_info_c_NS_init /* 80034724 00031664 38 7F 01 6C */ addi r3, r31, 0x16c diff --git a/asm/d/meter2/d_meter2_draw.s b/asm/d/meter2/d_meter2_draw.s index 458a5ee807a..4d6eb0a1488 100644 --- a/asm/d/meter2/d_meter2_draw.s +++ b/asm/d/meter2/d_meter2_draw.s @@ -2209,7 +2209,7 @@ lbl_80211A80: /* 80211A88 0020E9C8 41 82 00 28 */ beq lbl_80211AB0 /* 80211A8C 0020E9CC 7F 83 E3 78 */ mr r3, r28 /* 80211A90 0020E9D0 88 9F 4E 0C */ lbz r4, 0x4e0c(r31) -/* 80211A94 0020E9D4 4B E2 28 AD */ bl dSv_light_drop_c_NS_getLightDropNum +/* 80211A94 0020E9D4 4B E2 28 AD */ bl getLightDropNum__16dSv_light_drop_cCFUc /* 80211A98 0020E9D8 88 9F 5E A1 */ lbz r4, 0x5ea1(r31) /* 80211A9C 0020E9DC 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 80211AA0 0020E9E0 7C 04 00 40 */ cmplw r4, r0 @@ -2815,7 +2815,7 @@ lbl_80212318: lbl_80212368: /* 80212368 0020F2A8 7F 43 D3 78 */ mr r3, r26 /* 8021236C 0020F2AC 57 24 06 3E */ clrlwi r4, r25, 0x18 -/* 80212370 0020F2B0 4B E2 20 2D */ bl dSv_light_drop_c_NS_isLightDropGetFlag +/* 80212370 0020F2B0 4B E2 20 2D */ bl isLightDropGetFlag__16dSv_light_drop_cCFUc /* 80212374 0020F2B4 2C 03 00 00 */ cmpwi r3, 0 /* 80212378 0020F2B8 41 82 00 10 */ beq lbl_80212388 /* 8021237C 0020F2BC 7C 7C CA 14 */ add r3, r28, r25 @@ -2833,7 +2833,7 @@ lbl_80212390: /* 802123A4 0020F2E4 8B 64 5E A1 */ lbz r27, 0x5ea1(r4) /* 802123A8 0020F2E8 7F 43 D3 78 */ mr r3, r26 /* 802123AC 0020F2EC 88 84 4E 0C */ lbz r4, 0x4e0c(r4) -/* 802123B0 0020F2F0 4B E2 1F 91 */ bl dSv_light_drop_c_NS_getLightDropNum +/* 802123B0 0020F2F0 4B E2 1F 91 */ bl getLightDropNum__16dSv_light_drop_cCFUc /* 802123B4 0020F2F4 7C 64 1B 78 */ mr r4, r3 /* 802123B8 0020F2F8 7F C3 F3 78 */ mr r3, r30 /* 802123BC 0020F2FC 7F 65 DB 78 */ mr r5, r27 @@ -6811,7 +6811,7 @@ dMeter2Draw_c_NS_getNowLightDropRateCalc: /* 80215DB8 00212CF8 38 83 61 C0 */ addi r4, r3, lbl_804061C0@l /* 80215DBC 00212CFC 38 64 01 14 */ addi r3, r4, 0x114 /* 80215DC0 00212D00 88 84 4E 0C */ lbz r4, 0x4e0c(r4) -/* 80215DC4 00212D04 4B E1 E5 7D */ bl dSv_light_drop_c_NS_getLightDropNum +/* 80215DC4 00212D04 4B E1 E5 7D */ bl getLightDropNum__16dSv_light_drop_cCFUc /* 80215DC8 00212D08 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 80215DCC 00212D0C C8 22 AE C0 */ lfd f1, lbl_804548C0-_SDA2_BASE_(r2) /* 80215DD0 00212D10 90 01 00 0C */ stw r0, 0xc(r1) @@ -6895,7 +6895,7 @@ lbl_80215EA8: lbl_80215EEC: /* 80215EEC 00212E2C 7F 83 E3 78 */ mr r3, r28 /* 80215EF0 00212E30 88 9D 4E 0C */ lbz r4, 0x4e0c(r29) -/* 80215EF4 00212E34 4B E1 E4 4D */ bl dSv_light_drop_c_NS_getLightDropNum +/* 80215EF4 00212E34 4B E1 E4 4D */ bl getLightDropNum__16dSv_light_drop_cCFUc /* 80215EF8 00212E38 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 80215EFC 00212E3C 7C 1A 00 00 */ cmpw r26, r0 /* 80215F00 00212E40 40 80 00 2C */ bge lbl_80215F2C @@ -7144,7 +7144,7 @@ lbl_80216274: lbl_80216288: /* 80216288 002131C8 7F 63 DB 78 */ mr r3, r27 /* 8021628C 002131CC 88 9F 4E 0C */ lbz r4, 0x4e0c(r31) -/* 80216290 002131D0 4B E1 E0 B1 */ bl dSv_light_drop_c_NS_getLightDropNum +/* 80216290 002131D0 4B E1 E0 B1 */ bl getLightDropNum__16dSv_light_drop_cCFUc /* 80216294 002131D4 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 80216298 002131D8 7C 19 00 00 */ cmpw r25, r0 /* 8021629C 002131DC 40 80 00 2C */ bge lbl_802162C8 diff --git a/asm/d/meter2/d_meter2_info.s b/asm/d/meter2/d_meter2_info.s index c1a41a7edb5..d600a58ef31 100644 --- a/asm/d/meter2/d_meter2_info.s +++ b/asm/d/meter2/d_meter2_info.s @@ -191,7 +191,7 @@ lbl_8021BFFC: lbl_8021C094: /* 8021C094 00218FD4 7F 83 E3 78 */ mr r3, r28 /* 8021C098 00218FD8 57 64 06 3E */ clrlwi r4, r27, 0x18 -/* 8021C09C 00218FDC 4B E1 83 01 */ bl dSv_light_drop_c_NS_isLightDropGetFlag +/* 8021C09C 00218FDC 4B E1 83 01 */ bl isLightDropGetFlag__16dSv_light_drop_cCFUc /* 8021C0A0 00218FE0 2C 03 00 00 */ cmpwi r3, 0 /* 8021C0A4 00218FE4 41 82 00 10 */ beq lbl_8021C0B4 /* 8021C0A8 00218FE8 38 1B 00 E3 */ addi r0, r27, 0xe3 diff --git a/asm/d/msg/d_msg_flow.s b/asm/d/msg/d_msg_flow.s index 93ba71f2024..2c0e2555d4b 100644 --- a/asm/d/msg/d_msg_flow.s +++ b/asm/d/msg/d_msg_flow.s @@ -1930,7 +1930,7 @@ lbl_8024BA14: /* 8024BA18 00248958 38 83 61 C0 */ addi r4, r3, lbl_804061C0@l /* 8024BA1C 0024895C 38 64 01 14 */ addi r3, r4, 0x114 /* 8024BA20 00248960 88 84 4E 0C */ lbz r4, 0x4e0c(r4) -/* 8024BA24 00248964 4B DE 89 1D */ bl dSv_light_drop_c_NS_getLightDropNum +/* 8024BA24 00248964 4B DE 89 1D */ bl getLightDropNum__16dSv_light_drop_cCFUc /* 8024BA28 00248968 54 63 06 3E */ clrlwi r3, r3, 0x18 /* 8024BA2C 0024896C 57 E0 06 3E */ clrlwi r0, r31, 0x18 /* 8024BA30 00248970 7C 00 18 50 */ subf r0, r0, r3 @@ -3084,7 +3084,7 @@ lbl_8024CAEC: /* 8024CB00 00249A40 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 8024CB04 00249A44 38 63 01 14 */ addi r3, r3, 0x114 /* 8024CB08 00249A48 38 80 00 00 */ li r4, 0 -/* 8024CB0C 00249A4C 4B DE 78 5D */ bl dSv_light_drop_c_NS_onLightDropGetFlag +/* 8024CB0C 00249A4C 4B DE 78 5D */ bl onLightDropGetFlag__16dSv_light_drop_cFUc /* 8024CB10 00249A50 48 00 00 5C */ b lbl_8024CB6C lbl_8024CB14: /* 8024CB14 00249A54 38 00 00 01 */ li r0, 1 @@ -3095,7 +3095,7 @@ lbl_8024CB14: /* 8024CB28 00249A68 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 8024CB2C 00249A6C 38 63 01 14 */ addi r3, r3, 0x114 /* 8024CB30 00249A70 38 80 00 01 */ li r4, 1 -/* 8024CB34 00249A74 4B DE 78 35 */ bl dSv_light_drop_c_NS_onLightDropGetFlag +/* 8024CB34 00249A74 4B DE 78 35 */ bl onLightDropGetFlag__16dSv_light_drop_cFUc /* 8024CB38 00249A78 48 00 00 34 */ b lbl_8024CB6C lbl_8024CB3C: /* 8024CB3C 00249A7C 38 00 00 01 */ li r0, 1 @@ -3106,7 +3106,7 @@ lbl_8024CB3C: /* 8024CB50 00249A90 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 8024CB54 00249A94 38 63 01 14 */ addi r3, r3, 0x114 /* 8024CB58 00249A98 38 80 00 02 */ li r4, 2 -/* 8024CB5C 00249A9C 4B DE 78 0D */ bl dSv_light_drop_c_NS_onLightDropGetFlag +/* 8024CB5C 00249A9C 4B DE 78 0D */ bl onLightDropGetFlag__16dSv_light_drop_cFUc /* 8024CB60 00249AA0 48 00 00 0C */ b lbl_8024CB6C lbl_8024CB64: /* 8024CB64 00249AA4 54 03 06 3E */ clrlwi r3, r0, 0x18 diff --git a/asm/d/save/d_save_HIO.s b/asm/d/save/d_save_HIO.s index f7d6721e703..b01457f9f32 100644 --- a/asm/d/save/d_save_HIO.s +++ b/asm/d/save/d_save_HIO.s @@ -492,7 +492,7 @@ dSvBit_childOtherHIO_c_NS_init: /* 8025C198 002590D8 3B E4 01 14 */ addi r31, r4, 0x114 /* 8025C19C 002590DC 7F E3 FB 78 */ mr r3, r31 /* 8025C1A0 002590E0 88 84 4E 0C */ lbz r4, 0x4e0c(r4) -/* 8025C1A4 002590E4 4B DD 81 9D */ bl dSv_light_drop_c_NS_getLightDropNum +/* 8025C1A4 002590E4 4B DD 81 9D */ bl getLightDropNum__16dSv_light_drop_cCFUc /* 8025C1A8 002590E8 98 7D 00 05 */ stb r3, 5(r29) /* 8025C1AC 002590EC 88 1D 00 05 */ lbz r0, 5(r29) /* 8025C1B0 002590F0 98 1D 00 06 */ stb r0, 6(r29) @@ -500,7 +500,7 @@ dSvBit_childOtherHIO_c_NS_init: lbl_8025C1B8: /* 8025C1B8 002590F8 7F E3 FB 78 */ mr r3, r31 /* 8025C1BC 002590FC 57 C4 06 3E */ clrlwi r4, r30, 0x18 -/* 8025C1C0 00259100 4B DD 81 DD */ bl dSv_light_drop_c_NS_isLightDropGetFlag +/* 8025C1C0 00259100 4B DD 81 DD */ bl isLightDropGetFlag__16dSv_light_drop_cCFUc /* 8025C1C4 00259104 7C 9D F2 14 */ add r4, r29, r30 /* 8025C1C8 00259108 98 64 00 07 */ stb r3, 7(r4) /* 8025C1CC 0025910C 88 04 00 07 */ lbz r0, 7(r4) diff --git a/include/d_save.h b/include/d_save.h index 2a4be32ae3f..75b6ebd31d2 100644 --- a/include/d_save.h +++ b/include/d_save.h @@ -319,9 +319,10 @@ class dSv_player_wolf_c { class dSv_light_drop_c { public: void init(void); + void setLightDropNum(u8,u8); u8 getLightDropNum(u8) const; void onLightDropGetFlag(u8); - u8 isLightDropGetFlag(u8) const; + bool isLightDropGetFlag(u8) const; private: u8 unk0[4]; @@ -333,9 +334,9 @@ class dSv_letter_info_c { public: void init(void); void onLetterGetFlag(int); - u8 isLetterGetFlag(int) const; + bool isLetterGetFlag(int) const; void onLetterReadFlag(int); - u8 isLetterReadFlag(int) const; + bool isLetterReadFlag(int) const; private: u8 letter_read_flags[16]; @@ -426,15 +427,15 @@ class dSv_memBit_c { void init(void); void onTBox(int); // merged with init in the assembly void offTbox(int); // merged with init in the assembly - u8 isTbox(int) const; + bool isTbox(int) const; void onSwitch(int); void offSwitch(int); - u8 isSwitch(int) const; + bool isSwitch(int) const; u8 revSwitch(int); void onItem(int); - u8 isItem(int) const; + bool isItem(int) const; void onDungeonItem(int); - u8 isDungeonItem(int) const; + bool isDungeonItem(int) const; private: u32 area_flags_bitfields1[2]; @@ -488,7 +489,7 @@ class dSv_memory2_c { void init(void); void onVisitedRoom(int); void offVisitedRoom(int); - u8 isVisitedRoom(int); + bool isVisitedRoom(int); private: u32 unk0[2]; @@ -499,10 +500,10 @@ class dSv_danBit_c { void init(void); void onSwitch(int); void offSwitch(int); - u8 isSwitch(int) const; + bool isSwitch(int) const; u8 revSwitch(int); void onItem(int); - u8 isItem(int) const; + bool isItem(int) const; private: u8 unk0; @@ -524,16 +525,16 @@ class dSv_zoneBit_c { void clearRoomItem(void); void onSwitch(int); void offSwitch(int); - u8 isSwitch(int) const; + bool isSwitch(int) const; u8 revSwitch(int); void onOneSwitch(int); void offOneSwitch(int); - void isOneSwitch(int) const; + bool isOneSwitch(int) const; u8 revOneSwitch(int); void onItem(int); - void isItem(int) const; + bool isItem(int) const; void onOneItem(int); - u8 isOneItem(int) const; + bool isOneItem(int) const; private: u16 unk0[2]; diff --git a/ldscript.lcf b/ldscript.lcf index 536ce3329af..263db169d0d 100644 --- a/ldscript.lcf +++ b/ldscript.lcf @@ -27,6 +27,7 @@ SECTIONS { } FORCEACTIVE { set__17dSv_horse_place_cFPCcRC4cXyzsSc + setLightDropNum__16dSv_light_drop_cFUcUc } /* .init 80003100 - 80005600 diff --git a/src/d/d_save/d_save.cpp b/src/d/d_save/d_save.cpp index 1c71c28e6ed..61802f74daf 100644 --- a/src/d/d_save/d_save.cpp +++ b/src/d/d_save/d_save.cpp @@ -690,4 +690,52 @@ void dSv_player_collect_c::onCollectMirror(u8 param_1) { bool dSv_player_collect_c::isCollectMirror(u8 param_1) const { return this->mirror & (u8)(1 << param_1) ? true : false; +} + +void dSv_player_wolf_c::init(void) { + for (int i = 0; i < 3; i++) { + this->unk0[i] = 0; + } + + this->unk3 = 0; +} + +void dSv_light_drop_c::init(void) { + for (int i = 0; i < 4; i++) { + this->unk0[i] = 0; + } + + this->light_drop_get_flag = 0; + + for (int i = 0; i < 3; i++) { + this->unk5[i] = 0; + } +} + +void dSv_light_drop_c::setLightDropNum(u8 param_1,u8 param_2) { + if ((4 <= param_1) && (param_1 <= 6)) { + return; + } + this->unk0[param_1] = param_2; +} + +u8 dSv_light_drop_c::getLightDropNum(u8 param_1) const { + if ((4 <= param_1) && (param_1 <= 6)) { + return 0; + } + return this->unk0[param_1]; +} + +void dSv_light_drop_c::onLightDropGetFlag(u8 param_1) { + if ((4 <= param_1) && (param_1 <= 6)) { + return; + } + this->light_drop_get_flag = this->light_drop_get_flag | (u8)(1 << param_1); +} + +bool dSv_light_drop_c::isLightDropGetFlag(u8 param_1) const { + if ((4 <= param_1) && (param_1 <= 6)) { + return 0; + } + return this->light_drop_get_flag & (u8)(1 << param_1) ? true : false; } \ No newline at end of file