From 8b358fdf8dc692d155edfa66b0c98a83a57ba28a Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 23 Nov 2020 00:31:50 -0500 Subject: [PATCH] dSv_player_item_max_c::init ok dSv_player_item_max_c::setBombNum ok --- asm/d/com/inf/d_com_inf_game.s | 6 +- asm/d/d_item.s | 12 +-- asm/d/d_meter2.s | 14 ++-- asm/d/d_save.s | 135 +-------------------------------- asm/d/menu/d_menu_ring.s | 2 +- asm/d/msg/d_msg_class.s | 6 +- asm/d/msg/d_msg_flow.s | 20 ++--- include/d_save.h | 6 +- include/func_80033828.s | 2 +- include/func_80033910.s | 4 +- include/func_80033B08.s | 4 +- include/func_80034040.s | 31 ++++++++ include/func_800340B8.s | 20 +++++ include/func_800340F8.s | 52 +++++++++++++ include/func_800341AC.s | 16 ++++ include/functions.h | 4 +- src/d/d_save/d_save.cpp | 63 +++++++++++++++ 17 files changed, 224 insertions(+), 173 deletions(-) create mode 100644 include/func_80034040.s create mode 100644 include/func_800340B8.s create mode 100644 include/func_800340F8.s create mode 100644 include/func_800341AC.s diff --git a/asm/d/com/inf/d_com_inf_game.s b/asm/d/com/inf/d_com_inf_game.s index c51a7771b24..d6f197886b7 100644 --- a/asm/d/com/inf/d_com_inf_game.s +++ b/asm/d/com/inf/d_com_inf_game.s @@ -3884,7 +3884,7 @@ lbl_8002E6CC: /* 8002E6CC 0002B60C 3C 60 80 40 */ lis r3, lbl_804061C0@ha /* 8002E6D0 0002B610 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 8002E6D4 0002B614 38 63 00 F8 */ addi r3, r3, 0xf8 -/* 8002E6D8 0002B618 48 00 5A 21 */ bl dSv_player_item_max_c_NS_getBombNum +/* 8002E6D8 0002B618 48 00 5A 21 */ bl getBombNum__21dSv_player_item_max_cCFUc /* 8002E6DC 0002B61C 54 63 06 3E */ clrlwi r3, r3, 0x18 /* 8002E6E0 0002B620 48 00 00 24 */ b lbl_8002E704 lbl_8002E6E4: @@ -3931,14 +3931,14 @@ lbl_8002E754: /* 8002E76C 0002B6AC 3B C3 00 F8 */ addi r30, r3, 0xf8 /* 8002E770 0002B6B0 7F C3 F3 78 */ mr r3, r30 /* 8002E774 0002B6B4 7F A4 EB 78 */ mr r4, r29 -/* 8002E778 0002B6B8 48 00 59 81 */ bl dSv_player_item_max_c_NS_getBombNum +/* 8002E778 0002B6B8 48 00 59 81 */ bl getBombNum__21dSv_player_item_max_cCFUc /* 8002E77C 0002B6BC 7F E4 07 34 */ extsh r4, r31 /* 8002E780 0002B6C0 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 8002E784 0002B6C4 7C 04 00 00 */ cmpw r4, r0 /* 8002E788 0002B6C8 40 81 00 14 */ ble lbl_8002E79C /* 8002E78C 0002B6CC 7F C3 F3 78 */ mr r3, r30 /* 8002E790 0002B6D0 7F A4 EB 78 */ mr r4, r29 -/* 8002E794 0002B6D4 48 00 59 65 */ bl dSv_player_item_max_c_NS_getBombNum +/* 8002E794 0002B6D4 48 00 59 65 */ bl getBombNum__21dSv_player_item_max_cCFUc /* 8002E798 0002B6D8 54 7F 06 3E */ clrlwi r31, r3, 0x18 lbl_8002E79C: /* 8002E79C 0002B6DC 3C 60 80 40 */ lis r3, lbl_804061C0@ha diff --git a/asm/d/d_item.s b/asm/d/d_item.s index 2d56770725d..23f021e942a 100644 --- a/asm/d/d_item.s +++ b/asm/d/d_item.s @@ -3922,7 +3922,7 @@ lbl_8009BA64: /* 8009BA7C 000989BC 40 81 00 24 */ ble lbl_8009BAA0 /* 8009BA80 000989C0 7F 63 DB 78 */ mr r3, r27 /* 8009BA84 000989C4 7C 9D 20 AE */ lbzx r4, r29, r4 -/* 8009BA88 000989C8 4B F9 86 71 */ bl dSv_player_item_max_c_NS_getBombNum +/* 8009BA88 000989C8 4B F9 86 71 */ bl getBombNum__21dSv_player_item_max_cCFUc /* 8009BA8C 000989CC 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 8009BA90 000989D0 7C 14 00 00 */ cmpw r20, r0 /* 8009BA94 000989D4 41 82 00 0C */ beq lbl_8009BAA0 @@ -3943,7 +3943,7 @@ lbl_8009BAC0: /* 8009BAC4 00098A04 40 82 00 68 */ bne lbl_8009BB2C /* 8009BAC8 00098A08 7F 63 DB 78 */ mr r3, r27 /* 8009BACC 00098A0C 7F C4 F3 78 */ mr r4, r30 -/* 8009BAD0 00098A10 4B F9 86 29 */ bl dSv_player_item_max_c_NS_getBombNum +/* 8009BAD0 00098A10 4B F9 86 29 */ bl getBombNum__21dSv_player_item_max_cCFUc /* 8009BAD4 00098A14 54 63 06 3E */ clrlwi r3, r3, 0x18 /* 8009BAD8 00098A18 57 E0 06 3E */ clrlwi r0, r31, 0x18 /* 8009BADC 00098A1C 7C 03 00 40 */ cmplw r3, r0 @@ -3963,7 +3963,7 @@ lbl_8009BB00: /* 8009BB10 00098A50 4B F9 7F 41 */ bl setEmptyBombBagItemIn__17dSv_player_item_cFUcUcb /* 8009BB14 00098A54 7F 63 DB 78 */ mr r3, r27 /* 8009BB18 00098A58 7F C4 F3 78 */ mr r4, r30 -/* 8009BB1C 00098A5C 4B F9 85 DD */ bl dSv_player_item_max_c_NS_getBombNum +/* 8009BB1C 00098A5C 4B F9 85 DD */ bl getBombNum__21dSv_player_item_max_cCFUc /* 8009BB20 00098A60 7C 03 F8 50 */ subf r0, r3, r31 /* 8009BB24 00098A64 54 1F 06 3E */ clrlwi r31, r0, 0x18 /* 8009BB28 00098A68 48 00 00 6C */ b lbl_8009BB94 @@ -3972,7 +3972,7 @@ lbl_8009BB2C: /* 8009BB30 00098A70 38 81 00 08 */ addi r4, r1, 8 /* 8009BB34 00098A74 7E 84 B8 AE */ lbzx r20, r4, r23 /* 8009BB38 00098A78 7E 84 A3 78 */ mr r4, r20 -/* 8009BB3C 00098A7C 4B F9 85 BD */ bl dSv_player_item_max_c_NS_getBombNum +/* 8009BB3C 00098A7C 4B F9 85 BD */ bl getBombNum__21dSv_player_item_max_cCFUc /* 8009BB40 00098A80 54 63 06 3E */ clrlwi r3, r3, 0x18 /* 8009BB44 00098A84 57 F5 06 3E */ clrlwi r21, r31, 0x18 /* 8009BB48 00098A88 7C 16 AA 14 */ add r0, r22, r21 @@ -3991,14 +3991,14 @@ lbl_8009BB6C: /* 8009BB78 00098AB8 4B F8 F7 F5 */ bl dComIfG_play_c_NS_setItemBombNumCount /* 8009BB7C 00098ABC 7F 63 DB 78 */ mr r3, r27 /* 8009BB80 00098AC0 7E 84 A3 78 */ mr r4, r20 -/* 8009BB84 00098AC4 4B F9 85 75 */ bl dSv_player_item_max_c_NS_getBombNum +/* 8009BB84 00098AC4 4B F9 85 75 */ bl getBombNum__21dSv_player_item_max_cCFUc /* 8009BB88 00098AC8 7C 16 18 50 */ subf r0, r22, r3 /* 8009BB8C 00098ACC 7C 00 A8 50 */ subf r0, r0, r21 /* 8009BB90 00098AD0 54 1F 06 3E */ clrlwi r31, r0, 0x18 lbl_8009BB94: /* 8009BB94 00098AD4 7F 63 DB 78 */ mr r3, r27 /* 8009BB98 00098AD8 7C 9D B8 AE */ lbzx r4, r29, r23 -/* 8009BB9C 00098ADC 4B F9 85 5D */ bl dSv_player_item_max_c_NS_getBombNum +/* 8009BB9C 00098ADC 4B F9 85 5D */ bl getBombNum__21dSv_player_item_max_cCFUc /* 8009BBA0 00098AE0 54 63 06 3E */ clrlwi r3, r3, 0x18 /* 8009BBA4 00098AE4 56 E0 10 3A */ slwi r0, r23, 2 /* 8009BBA8 00098AE8 7C 7C 01 2E */ stwx r3, r28, r0 diff --git a/asm/d/d_meter2.s b/asm/d/d_meter2.s index 95fe9227008..7cbcc3628f4 100644 --- a/asm/d/d_meter2.s +++ b/asm/d/d_meter2.s @@ -83,7 +83,7 @@ lbl_8021EB20: /* 8021EB30 0021BA70 4B E1 45 01 */ bl getItem__17dSv_player_item_cCFib /* 8021EB34 0021BA74 7C 64 1B 78 */ mr r4, r3 /* 8021EB38 0021BA78 7F A3 EB 78 */ mr r3, r29 -/* 8021EB3C 0021BA7C 4B E1 55 BD */ bl dSv_player_item_max_c_NS_getBombNum +/* 8021EB3C 0021BA7C 4B E1 55 BD */ bl getBombNum__21dSv_player_item_max_cCFUc /* 8021EB40 0021BA80 7F 5F CA 14 */ add r26, r31, r25 /* 8021EB44 0021BA84 98 7A 01 F6 */ stb r3, 0x1f6(r26) /* 8021EB48 0021BA88 7F 83 E3 78 */ mr r3, r28 @@ -5948,14 +5948,14 @@ lbl_80223EAC: /* 80223EB8 00220DF8 7C 73 1B 78 */ mr r19, r3 /* 80223EBC 00220DFC 7F 23 CB 78 */ mr r3, r25 /* 80223EC0 00220E00 7F 84 E3 78 */ mr r4, r28 -/* 80223EC4 00220E04 4B E1 02 35 */ bl dSv_player_item_max_c_NS_getBombNum +/* 80223EC4 00220E04 4B E1 02 35 */ bl getBombNum__21dSv_player_item_max_cCFUc /* 80223EC8 00220E08 54 63 06 3E */ clrlwi r3, r3, 0x18 /* 80223ECC 00220E0C 56 60 06 3E */ clrlwi r0, r19, 0x18 /* 80223ED0 00220E10 7C 03 00 40 */ cmplw r3, r0 /* 80223ED4 00220E14 41 82 00 24 */ beq lbl_80223EF8 /* 80223ED8 00220E18 7F 23 CB 78 */ mr r3, r25 /* 80223EDC 00220E1C 7F 84 E3 78 */ mr r4, r28 -/* 80223EE0 00220E20 4B E1 02 19 */ bl dSv_player_item_max_c_NS_getBombNum +/* 80223EE0 00220E20 4B E1 02 19 */ bl getBombNum__21dSv_player_item_max_cCFUc /* 80223EE4 00220E24 7C 60 1B 78 */ mr r0, r3 /* 80223EE8 00220E28 7F 03 C3 78 */ mr r3, r24 /* 80223EEC 00220E2C 56 E4 06 3E */ clrlwi r4, r23, 0x18 @@ -5986,7 +5986,7 @@ lbl_80223F18: /* 80223F48 00220E88 40 82 00 20 */ bne lbl_80223F68 /* 80223F4C 00220E8C 7F 23 CB 78 */ mr r3, r25 /* 80223F50 00220E90 7F 84 E3 78 */ mr r4, r28 -/* 80223F54 00220E94 4B E1 01 A5 */ bl dSv_player_item_max_c_NS_getBombNum +/* 80223F54 00220E94 4B E1 01 A5 */ bl getBombNum__21dSv_player_item_max_cCFUc /* 80223F58 00220E98 88 93 01 F6 */ lbz r4, 0x1f6(r19) /* 80223F5C 00220E9C 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 80223F60 00220EA0 7C 04 00 40 */ cmplw r4, r0 @@ -6011,14 +6011,14 @@ lbl_80223F68: lbl_80223FA8: /* 80223FA8 00220EE8 7F 23 CB 78 */ mr r3, r25 /* 80223FAC 00220EEC 7F 84 E3 78 */ mr r4, r28 -/* 80223FB0 00220EF0 4B E1 01 49 */ bl dSv_player_item_max_c_NS_getBombNum +/* 80223FB0 00220EF0 4B E1 01 49 */ bl getBombNum__21dSv_player_item_max_cCFUc /* 80223FB4 00220EF4 7E C4 07 34 */ extsh r4, r22 /* 80223FB8 00220EF8 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 80223FBC 00220EFC 7C 04 00 00 */ cmpw r4, r0 /* 80223FC0 00220F00 40 81 00 14 */ ble lbl_80223FD4 /* 80223FC4 00220F04 7F 23 CB 78 */ mr r3, r25 /* 80223FC8 00220F08 7F 84 E3 78 */ mr r4, r28 -/* 80223FCC 00220F0C 4B E1 01 2D */ bl dSv_player_item_max_c_NS_getBombNum +/* 80223FCC 00220F0C 4B E1 01 2D */ bl getBombNum__21dSv_player_item_max_cCFUc /* 80223FD0 00220F10 54 76 06 3E */ clrlwi r22, r3, 0x18 lbl_80223FD4: /* 80223FD4 00220F14 7E C0 07 35 */ extsh. r0, r22 @@ -6084,7 +6084,7 @@ lbl_8022409C: /* 802240A8 00220FE8 4B E0 FE C5 */ bl setBombNum__24dSv_player_item_record_cFUcUc /* 802240AC 00220FEC 7F 23 CB 78 */ mr r3, r25 /* 802240B0 00220FF0 7F 84 E3 78 */ mr r4, r28 -/* 802240B4 00220FF4 4B E1 00 45 */ bl dSv_player_item_max_c_NS_getBombNum +/* 802240B4 00220FF4 4B E1 00 45 */ bl getBombNum__21dSv_player_item_max_cCFUc /* 802240B8 00220FF8 38 17 01 F6 */ addi r0, r23, 0x1f6 /* 802240BC 00220FFC 7C 75 01 AE */ stbx r3, r21, r0 /* 802240C0 00221000 57 E0 06 3E */ clrlwi r0, r31, 0x18 diff --git a/asm/d/d_save.s b/asm/d/d_save.s index 9a25dbe74ab..880c7d81761 100644 --- a/asm/d/d_save.s +++ b/asm/d/d_save.s @@ -2,137 +2,6 @@ .section .text, "ax" # 80032918 -.global dSv_player_item_max_c_NS_init -dSv_player_item_max_c_NS_init: -/* 80034040 00030F80 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80034044 00030F84 7C 08 02 A6 */ mflr r0 -/* 80034048 00030F88 90 01 00 14 */ stw r0, 0x14(r1) -/* 8003404C 00030F8C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80034050 00030F90 7C 7F 1B 78 */ mr r31, r3 -/* 80034054 00030F94 38 80 00 1E */ li r4, 0x1e -/* 80034058 00030F98 38 00 00 07 */ li r0, 7 -/* 8003405C 00030F9C 7C 09 03 A6 */ mtctr r0 -lbl_80034060: -/* 80034060 00030FA0 98 83 00 00 */ stb r4, 0(r3) -/* 80034064 00030FA4 38 63 00 01 */ addi r3, r3, 1 -/* 80034068 00030FA8 42 00 FF F8 */ bdnz lbl_80034060 -/* 8003406C 00030FAC 7F E3 FB 78 */ mr r3, r31 -/* 80034070 00030FB0 38 80 00 70 */ li r4, 0x70 -/* 80034074 00030FB4 38 A0 00 1E */ li r5, 0x1e -/* 80034078 00030FB8 48 00 00 41 */ bl dSv_player_item_max_c_NS_setBombNum -/* 8003407C 00030FBC 7F E3 FB 78 */ mr r3, r31 -/* 80034080 00030FC0 38 80 00 71 */ li r4, 0x71 -/* 80034084 00030FC4 38 A0 00 0F */ li r5, 0xf -/* 80034088 00030FC8 48 00 00 31 */ bl dSv_player_item_max_c_NS_setBombNum -/* 8003408C 00030FCC 7F E3 FB 78 */ mr r3, r31 -/* 80034090 00030FD0 38 80 00 72 */ li r4, 0x72 -/* 80034094 00030FD4 38 A0 00 0A */ li r5, 0xa -/* 80034098 00030FD8 48 00 00 21 */ bl dSv_player_item_max_c_NS_setBombNum -/* 8003409C 00030FDC 38 00 00 00 */ li r0, 0 -/* 800340A0 00030FE0 98 1F 00 07 */ stb r0, 7(r31) -/* 800340A4 00030FE4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800340A8 00030FE8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800340AC 00030FEC 7C 08 03 A6 */ mtlr r0 -/* 800340B0 00030FF0 38 21 00 10 */ addi r1, r1, 0x10 -/* 800340B4 00030FF4 4E 80 00 20 */ blr - -.global dSv_player_item_max_c_NS_setBombNum -dSv_player_item_max_c_NS_setBombNum: -/* 800340B8 00030FF8 54 80 06 3E */ clrlwi r0, r4, 0x18 -/* 800340BC 00030FFC 2C 00 00 71 */ cmpwi r0, 0x71 -/* 800340C0 00031000 41 82 00 28 */ beq lbl_800340E8 -/* 800340C4 00031004 40 80 00 10 */ bge lbl_800340D4 -/* 800340C8 00031008 2C 00 00 70 */ cmpwi r0, 0x70 -/* 800340CC 0003100C 40 80 00 14 */ bge lbl_800340E0 -/* 800340D0 00031010 4E 80 00 20 */ blr -lbl_800340D4: -/* 800340D4 00031014 2C 00 00 73 */ cmpwi r0, 0x73 -/* 800340D8 00031018 4C 80 00 20 */ bgelr -/* 800340DC 0003101C 48 00 00 14 */ b lbl_800340F0 -lbl_800340E0: -/* 800340E0 00031020 98 A3 00 01 */ stb r5, 1(r3) -/* 800340E4 00031024 4E 80 00 20 */ blr -lbl_800340E8: -/* 800340E8 00031028 98 A3 00 02 */ stb r5, 2(r3) -/* 800340EC 0003102C 4E 80 00 20 */ blr -lbl_800340F0: -/* 800340F0 00031030 98 A3 00 06 */ stb r5, 6(r3) -/* 800340F4 00031034 4E 80 00 20 */ blr - -.global dSv_player_item_max_c_NS_getBombNum -dSv_player_item_max_c_NS_getBombNum: -/* 800340F8 00031038 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 800340FC 0003103C 7C 08 02 A6 */ mflr r0 -/* 80034100 00031040 90 01 00 24 */ stw r0, 0x24(r1) -/* 80034104 00031044 39 61 00 20 */ addi r11, r1, 0x20 -/* 80034108 00031048 48 32 E0 D5 */ bl _savegpr_29 -/* 8003410C 0003104C 7C 7D 1B 78 */ mr r29, r3 -/* 80034110 00031050 7C 9E 23 78 */ mr r30, r4 -/* 80034114 00031054 3B E0 00 01 */ li r31, 1 -/* 80034118 00031058 3C 60 80 40 */ lis r3, lbl_804061C0@ha -/* 8003411C 0003105C 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l -/* 80034120 00031060 38 63 00 CC */ addi r3, r3, 0xcc -/* 80034124 00031064 38 80 00 4F */ li r4, 0x4f -/* 80034128 00031068 4B FF FD A1 */ bl isFirstBit__21dSv_player_get_item_cCFUc -/* 8003412C 0003106C 2C 03 00 00 */ cmpwi r3, 0 -/* 80034130 00031070 41 82 00 08 */ beq lbl_80034138 -/* 80034134 00031074 3B E0 00 02 */ li r31, 2 -lbl_80034138: -/* 80034138 00031078 57 C0 06 3E */ clrlwi r0, r30, 0x18 -/* 8003413C 0003107C 2C 00 00 71 */ cmpwi r0, 0x71 -/* 80034140 00031080 41 82 00 30 */ beq lbl_80034170 -/* 80034144 00031084 40 80 00 10 */ bge lbl_80034154 -/* 80034148 00031088 2C 00 00 70 */ cmpwi r0, 0x70 -/* 8003414C 0003108C 40 80 00 14 */ bge lbl_80034160 -/* 80034150 00031090 48 00 00 40 */ b lbl_80034190 -lbl_80034154: -/* 80034154 00031094 2C 00 00 73 */ cmpwi r0, 0x73 -/* 80034158 00031098 40 80 00 38 */ bge lbl_80034190 -/* 8003415C 0003109C 48 00 00 24 */ b lbl_80034180 -lbl_80034160: -/* 80034160 000310A0 88 1D 00 01 */ lbz r0, 1(r29) -/* 80034164 000310A4 7C 00 F9 D6 */ mullw r0, r0, r31 -/* 80034168 000310A8 54 03 06 3E */ clrlwi r3, r0, 0x18 -/* 8003416C 000310AC 48 00 00 28 */ b lbl_80034194 -lbl_80034170: -/* 80034170 000310B0 88 1D 00 02 */ lbz r0, 2(r29) -/* 80034174 000310B4 7C 00 F9 D6 */ mullw r0, r0, r31 -/* 80034178 000310B8 54 03 06 3E */ clrlwi r3, r0, 0x18 -/* 8003417C 000310BC 48 00 00 18 */ b lbl_80034194 -lbl_80034180: -/* 80034180 000310C0 88 1D 00 06 */ lbz r0, 6(r29) -/* 80034184 000310C4 7C 00 F9 D6 */ mullw r0, r0, r31 -/* 80034188 000310C8 54 03 06 3E */ clrlwi r3, r0, 0x18 -/* 8003418C 000310CC 48 00 00 08 */ b lbl_80034194 -lbl_80034190: -/* 80034190 000310D0 38 60 00 00 */ li r3, 0 -lbl_80034194: -/* 80034194 000310D4 39 61 00 20 */ addi r11, r1, 0x20 -/* 80034198 000310D8 48 32 E0 91 */ bl _restgpr_29 -/* 8003419C 000310DC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 800341A0 000310E0 7C 08 03 A6 */ mtlr r0 -/* 800341A4 000310E4 38 21 00 20 */ addi r1, r1, 0x20 -/* 800341A8 000310E8 4E 80 00 20 */ blr - -.global dSv_player_collect_c_NS_init -dSv_player_collect_c_NS_init: -/* 800341AC 000310EC 38 A0 00 00 */ li r5, 0 -/* 800341B0 000310F0 7C 64 1B 78 */ mr r4, r3 -/* 800341B4 000310F4 38 00 00 08 */ li r0, 8 -/* 800341B8 000310F8 7C 09 03 A6 */ mtctr r0 -lbl_800341BC: -/* 800341BC 000310FC 98 A4 00 00 */ stb r5, 0(r4) -/* 800341C0 00031100 38 84 00 01 */ addi r4, r4, 1 -/* 800341C4 00031104 42 00 FF F8 */ bdnz lbl_800341BC -/* 800341C8 00031108 38 80 00 00 */ li r4, 0 -/* 800341CC 0003110C 98 83 00 08 */ stb r4, 8(r3) -/* 800341D0 00031110 98 83 00 09 */ stb r4, 9(r3) -/* 800341D4 00031114 98 83 00 0A */ stb r4, 0xa(r3) -/* 800341D8 00031118 38 00 00 FF */ li r0, 0xff -/* 800341DC 0003111C 98 03 00 0B */ stb r0, 0xb(r3) -/* 800341E0 00031120 98 83 00 0C */ stb r4, 0xc(r3) -/* 800341E4 00031124 4E 80 00 20 */ blr - .global dSv_player_collect_c_NS_setCollect dSv_player_collect_c_NS_setCollect: /* 800341E8 00031128 7C E3 20 AE */ lbzx r7, r3, r4 @@ -548,9 +417,9 @@ dSv_player_c_NS_init: /* 800346F4 00031634 38 7F 00 EC */ addi r3, r31, 0xec /* 800346F8 00031638 4B FF F8 09 */ bl init__24dSv_player_item_record_cFv /* 800346FC 0003163C 38 7F 00 F8 */ addi r3, r31, 0xf8 -/* 80034700 00031640 4B FF F9 41 */ bl dSv_player_item_max_c_NS_init +/* 80034700 00031640 4B FF F9 41 */ bl init__21dSv_player_item_max_cFv /* 80034704 00031644 38 7F 01 00 */ addi r3, r31, 0x100 -/* 80034708 00031648 4B FF FA A5 */ bl dSv_player_collect_c_NS_init +/* 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 /* 80034714 00031654 38 7F 01 14 */ addi r3, r31, 0x114 diff --git a/asm/d/menu/d_menu_ring.s b/asm/d/menu/d_menu_ring.s index a90cd2ae2b4..5cf905c6609 100644 --- a/asm/d/menu/d_menu_ring.s +++ b/asm/d/menu/d_menu_ring.s @@ -5603,7 +5603,7 @@ lbl_801EE1E8: /* 801EE1E8 001EB128 3C 60 80 40 */ lis r3, lbl_804061C0@ha /* 801EE1EC 001EB12C 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 801EE1F0 001EB130 38 63 00 F8 */ addi r3, r3, 0xf8 -/* 801EE1F4 001EB134 4B E4 5F 05 */ bl dSv_player_item_max_c_NS_getBombNum +/* 801EE1F4 001EB134 4B E4 5F 05 */ bl getBombNum__21dSv_player_item_max_cCFUc /* 801EE1F8 001EB138 48 00 00 20 */ b lbl_801EE218 lbl_801EE1FC: /* 801EE1FC 001EB13C 4B E4 03 BD */ bl dComIfGs_getBottleMax diff --git a/asm/d/msg/d_msg_class.s b/asm/d/msg/d_msg_class.s index 5cfbd031e9b..992f66b148c 100644 --- a/asm/d/msg/d_msg_class.s +++ b/asm/d/msg/d_msg_class.s @@ -2609,7 +2609,7 @@ lbl_8022A9C4: /* 8022A9C4 00227904 3C 60 80 40 */ lis r3, lbl_804061C0@ha /* 8022A9C8 00227908 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 8022A9CC 0022790C 38 63 00 F8 */ addi r3, r3, 0xf8 -/* 8022A9D0 00227910 4B E0 97 29 */ bl dSv_player_item_max_c_NS_getBombNum +/* 8022A9D0 00227910 4B E0 97 29 */ bl getBombNum__21dSv_player_item_max_cCFUc /* 8022A9D4 00227914 7C 60 1B 78 */ mr r0, r3 /* 8022A9D8 00227918 38 6D 8B 50 */ addi r3, r13, lbl_804510D0-_SDA_BASE_ /* 8022A9DC 0022791C 38 80 00 07 */ li r4, 7 @@ -8680,7 +8680,7 @@ lbl_802301A0: /* 802301A0 0022D0E0 3C 60 80 40 */ lis r3, lbl_804061C0@ha /* 802301A4 0022D0E4 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 802301A8 0022D0E8 38 63 00 F8 */ addi r3, r3, 0xf8 -/* 802301AC 0022D0EC 4B E0 3F 4D */ bl dSv_player_item_max_c_NS_getBombNum +/* 802301AC 0022D0EC 4B E0 3F 4D */ bl getBombNum__21dSv_player_item_max_cCFUc /* 802301B0 0022D0F0 7C 60 1B 78 */ mr r0, r3 /* 802301B4 0022D0F4 38 6D 8B 50 */ addi r3, r13, lbl_804510D0-_SDA_BASE_ /* 802301B8 0022D0F8 38 80 00 07 */ li r4, 7 @@ -10055,7 +10055,7 @@ lbl_802315F4: /* 802315F4 0022E534 3C 60 80 40 */ lis r3, lbl_804061C0@ha /* 802315F8 0022E538 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 802315FC 0022E53C 38 63 00 F8 */ addi r3, r3, 0xf8 -/* 80231600 0022E540 4B E0 2A F9 */ bl dSv_player_item_max_c_NS_getBombNum +/* 80231600 0022E540 4B E0 2A F9 */ bl getBombNum__21dSv_player_item_max_cCFUc /* 80231604 0022E544 7C 60 1B 78 */ mr r0, r3 /* 80231608 0022E548 38 6D 8B 50 */ addi r3, r13, lbl_804510D0-_SDA_BASE_ /* 8023160C 0022E54C 38 80 00 07 */ li r4, 7 diff --git a/asm/d/msg/d_msg_flow.s b/asm/d/msg/d_msg_flow.s index db54752d846..93ba71f2024 100644 --- a/asm/d/msg/d_msg_flow.s +++ b/asm/d/msg/d_msg_flow.s @@ -2197,7 +2197,7 @@ lbl_8024BD94: /* 8024BE04 00248D44 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 8024BE08 00248D48 38 63 00 F8 */ addi r3, r3, 0xf8 /* 8024BE0C 00248D4C 38 80 00 70 */ li r4, 0x70 -/* 8024BE10 00248D50 4B DE 82 E9 */ bl dSv_player_item_max_c_NS_getBombNum +/* 8024BE10 00248D50 4B DE 82 E9 */ bl getBombNum__21dSv_player_item_max_cCFUc /* 8024BE14 00248D54 54 65 06 3E */ clrlwi r5, r3, 0x18 /* 8024BE18 00248D58 57 E0 06 3E */ clrlwi r0, r31, 0x18 /* 8024BE1C 00248D5C 7C 00 F2 14 */ add r0, r0, r30 @@ -2262,7 +2262,7 @@ lbl_8024BEC4: /* 8024BEFC 00248E3C 3C 60 80 40 */ lis r3, lbl_804061C0@ha /* 8024BF00 00248E40 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 8024BF04 00248E44 38 63 00 F8 */ addi r3, r3, 0xf8 -/* 8024BF08 00248E48 4B DE 81 F1 */ bl dSv_player_item_max_c_NS_getBombNum +/* 8024BF08 00248E48 4B DE 81 F1 */ bl getBombNum__21dSv_player_item_max_cCFUc /* 8024BF0C 00248E4C 57 E4 06 3F */ clrlwi. r4, r31, 0x18 /* 8024BF10 00248E50 40 82 00 0C */ bne lbl_8024BF1C /* 8024BF14 00248E54 38 00 00 00 */ li r0, 0 @@ -2307,7 +2307,7 @@ lbl_8024BF34: /* 8024BFA4 00248EE4 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 8024BFA8 00248EE8 38 63 00 F8 */ addi r3, r3, 0xf8 /* 8024BFAC 00248EEC 38 80 00 71 */ li r4, 0x71 -/* 8024BFB0 00248EF0 4B DE 81 49 */ bl dSv_player_item_max_c_NS_getBombNum +/* 8024BFB0 00248EF0 4B DE 81 49 */ bl getBombNum__21dSv_player_item_max_cCFUc /* 8024BFB4 00248EF4 54 65 06 3E */ clrlwi r5, r3, 0x18 /* 8024BFB8 00248EF8 57 E0 06 3E */ clrlwi r0, r31, 0x18 /* 8024BFBC 00248EFC 7C 00 F2 14 */ add r0, r0, r30 @@ -2397,7 +2397,7 @@ lbl_8024C08C: /* 8024C0FC 0024903C 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 8024C100 00249040 38 63 00 F8 */ addi r3, r3, 0xf8 /* 8024C104 00249044 38 80 00 72 */ li r4, 0x72 -/* 8024C108 00249048 4B DE 7F F1 */ bl dSv_player_item_max_c_NS_getBombNum +/* 8024C108 00249048 4B DE 7F F1 */ bl getBombNum__21dSv_player_item_max_cCFUc /* 8024C10C 0024904C 54 65 06 3E */ clrlwi r5, r3, 0x18 /* 8024C110 00249050 57 E0 06 3E */ clrlwi r0, r31, 0x18 /* 8024C114 00249054 7C 00 F2 14 */ add r0, r0, r30 @@ -3507,7 +3507,7 @@ lbl_8024D130: /* 8024D134 0024A074 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 8024D138 0024A078 38 63 00 F8 */ addi r3, r3, 0xf8 /* 8024D13C 0024A07C 38 80 00 70 */ li r4, 0x70 -/* 8024D140 0024A080 4B DE 6F B9 */ bl dSv_player_item_max_c_NS_getBombNum +/* 8024D140 0024A080 4B DE 6F B9 */ bl getBombNum__21dSv_player_item_max_cCFUc /* 8024D144 0024A084 7C 60 1B 78 */ mr r0, r3 /* 8024D148 0024A088 3C 60 80 40 */ lis r3, lbl_804061C0@ha /* 8024D14C 0024A08C 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l @@ -3548,7 +3548,7 @@ lbl_8024D1CC: /* 8024D1D0 0024A110 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 8024D1D4 0024A114 38 63 00 F8 */ addi r3, r3, 0xf8 /* 8024D1D8 0024A118 38 80 00 71 */ li r4, 0x71 -/* 8024D1DC 0024A11C 4B DE 6F 1D */ bl dSv_player_item_max_c_NS_getBombNum +/* 8024D1DC 0024A11C 4B DE 6F 1D */ bl getBombNum__21dSv_player_item_max_cCFUc /* 8024D1E0 0024A120 7C 60 1B 78 */ mr r0, r3 /* 8024D1E4 0024A124 3C 60 80 40 */ lis r3, lbl_804061C0@ha /* 8024D1E8 0024A128 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l @@ -3589,7 +3589,7 @@ lbl_8024D268: /* 8024D26C 0024A1AC 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 8024D270 0024A1B0 38 63 00 F8 */ addi r3, r3, 0xf8 /* 8024D274 0024A1B4 38 80 00 72 */ li r4, 0x72 -/* 8024D278 0024A1B8 4B DE 6E 81 */ bl dSv_player_item_max_c_NS_getBombNum +/* 8024D278 0024A1B8 4B DE 6E 81 */ bl getBombNum__21dSv_player_item_max_cCFUc /* 8024D27C 0024A1BC 7C 60 1B 78 */ mr r0, r3 /* 8024D280 0024A1C0 3C 60 80 40 */ lis r3, lbl_804061C0@ha /* 8024D284 0024A1C4 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l @@ -3617,7 +3617,7 @@ lbl_8024D268: /* 8024D2DC 0024A21C 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 8024D2E0 0024A220 38 63 00 F8 */ addi r3, r3, 0xf8 /* 8024D2E4 0024A224 38 80 00 70 */ li r4, 0x70 -/* 8024D2E8 0024A228 4B DE 6E 11 */ bl dSv_player_item_max_c_NS_getBombNum +/* 8024D2E8 0024A228 4B DE 6E 11 */ bl getBombNum__21dSv_player_item_max_cCFUc /* 8024D2EC 0024A22C 7C 60 1B 78 */ mr r0, r3 /* 8024D2F0 0024A230 3C 60 80 40 */ lis r3, lbl_804061C0@ha /* 8024D2F4 0024A234 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l @@ -3637,7 +3637,7 @@ lbl_8024D268: /* 8024D32C 0024A26C 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 8024D330 0024A270 38 63 00 F8 */ addi r3, r3, 0xf8 /* 8024D334 0024A274 38 80 00 71 */ li r4, 0x71 -/* 8024D338 0024A278 4B DE 6D C1 */ bl dSv_player_item_max_c_NS_getBombNum +/* 8024D338 0024A278 4B DE 6D C1 */ bl getBombNum__21dSv_player_item_max_cCFUc /* 8024D33C 0024A27C 7C 60 1B 78 */ mr r0, r3 /* 8024D340 0024A280 3C 60 80 40 */ lis r3, lbl_804061C0@ha /* 8024D344 0024A284 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l @@ -3657,7 +3657,7 @@ lbl_8024D268: /* 8024D37C 0024A2BC 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 8024D380 0024A2C0 38 63 00 F8 */ addi r3, r3, 0xf8 /* 8024D384 0024A2C4 38 80 00 72 */ li r4, 0x72 -/* 8024D388 0024A2C8 4B DE 6D 71 */ bl dSv_player_item_max_c_NS_getBombNum +/* 8024D388 0024A2C8 4B DE 6D 71 */ bl getBombNum__21dSv_player_item_max_cCFUc /* 8024D38C 0024A2CC 7C 60 1B 78 */ mr r0, r3 /* 8024D390 0024A2D0 3C 60 80 40 */ lis r3, lbl_804061C0@ha /* 8024D394 0024A2D4 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l diff --git a/include/d_save.h b/include/d_save.h index 369ae611590..7a0284814d0 100644 --- a/include/d_save.h +++ b/include/d_save.h @@ -281,13 +281,11 @@ class dSv_player_item_record_c { class dSv_player_item_max_c { public: void init(void); - void setbombNum(u8, u8); + void setBombNum(u8, u8); u8 getBombNum(u8) const; private: - u8 bow_ammo_max; - u8 bomb_bags_ammo_max[3]; - u8 unk_ammo_max[4]; + u8 unk0[8]; }; class dSv_player_collect_c { diff --git a/include/func_80033828.s b/include/func_80033828.s index 89c9cbc35ba..af0f1ce0bbd 100644 --- a/include/func_80033828.s +++ b/include/func_80033828.s @@ -26,7 +26,7 @@ lbl_80033854: /* 80033888 000307C8 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 8003388C 000307CC 38 63 00 F8 */ addi r3, r3, 0xf8 /* 80033890 000307D0 7F C4 F3 78 */ mr r4, r30 -/* 80033894 000307D4 48 00 08 65 */ bl dSv_player_item_max_c_NS_getBombNum +/* 80033894 000307D4 48 00 08 65 */ bl getBombNum__21dSv_player_item_max_cCFUc /* 80033898 000307D8 7C 65 1B 78 */ mr r5, r3 /* 8003389C 000307DC 3C 60 80 40 */ lis r3, lbl_804061C0@ha /* 800338A0 000307E0 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l diff --git a/include/func_80033910.s b/include/func_80033910.s index 1b7fc04ed00..151c618a2cd 100644 --- a/include/func_80033910.s +++ b/include/func_80033910.s @@ -28,14 +28,14 @@ lbl_80033940: /* 80033978 000308B8 3B C3 00 F8 */ addi r30, r3, 0xf8 /* 8003397C 000308BC 7F C3 F3 78 */ mr r3, r30 /* 80033980 000308C0 7F 64 DB 78 */ mr r4, r27 -/* 80033984 000308C4 48 00 07 75 */ bl dSv_player_item_max_c_NS_getBombNum +/* 80033984 000308C4 48 00 07 75 */ bl getBombNum__21dSv_player_item_max_cCFUc /* 80033988 000308C8 57 84 06 3E */ clrlwi r4, r28, 0x18 /* 8003398C 000308CC 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 80033990 000308D0 7C 04 00 40 */ cmplw r4, r0 /* 80033994 000308D4 40 81 00 14 */ ble lbl_800339A8 /* 80033998 000308D8 7F C3 F3 78 */ mr r3, r30 /* 8003399C 000308DC 7F 64 DB 78 */ mr r4, r27 -/* 800339A0 000308E0 48 00 07 59 */ bl dSv_player_item_max_c_NS_getBombNum +/* 800339A0 000308E0 48 00 07 59 */ bl getBombNum__21dSv_player_item_max_cCFUc /* 800339A4 000308E4 7C 7C 1B 78 */ mr r28, r3 lbl_800339A8: /* 800339A8 000308E8 3C 60 80 40 */ lis r3, lbl_804061C0@ha diff --git a/include/func_80033B08.s b/include/func_80033B08.s index 7aabbac55d0..4270e39cc59 100644 --- a/include/func_80033B08.s +++ b/include/func_80033B08.s @@ -31,14 +31,14 @@ lbl_80033B34: /* 80033B7C 00030ABC 3B 83 00 F8 */ addi r28, r3, 0xf8 /* 80033B80 00030AC0 7F 83 E3 78 */ mr r3, r28 /* 80033B84 00030AC4 7F 64 DB 78 */ mr r4, r27 -/* 80033B88 00030AC8 48 00 05 71 */ bl dSv_player_item_max_c_NS_getBombNum +/* 80033B88 00030AC8 48 00 05 71 */ bl getBombNum__21dSv_player_item_max_cCFUc /* 80033B8C 00030ACC 57 C4 06 3E */ clrlwi r4, r30, 0x18 /* 80033B90 00030AD0 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 80033B94 00030AD4 7C 04 00 40 */ cmplw r4, r0 /* 80033B98 00030AD8 40 81 00 14 */ ble lbl_80033BAC /* 80033B9C 00030ADC 7F 83 E3 78 */ mr r3, r28 /* 80033BA0 00030AE0 7F 64 DB 78 */ mr r4, r27 -/* 80033BA4 00030AE4 48 00 05 55 */ bl dSv_player_item_max_c_NS_getBombNum +/* 80033BA4 00030AE4 48 00 05 55 */ bl getBombNum__21dSv_player_item_max_cCFUc /* 80033BA8 00030AE8 7C 7E 1B 78 */ mr r30, r3 lbl_80033BAC: /* 80033BAC 00030AEC 3C 60 80 40 */ lis r3, lbl_804061C0@ha diff --git a/include/func_80034040.s b/include/func_80034040.s new file mode 100644 index 00000000000..7d16a201c77 --- /dev/null +++ b/include/func_80034040.s @@ -0,0 +1,31 @@ +/* 80034040 00030F80 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80034044 00030F84 7C 08 02 A6 */ mflr r0 +/* 80034048 00030F88 90 01 00 14 */ stw r0, 0x14(r1) +/* 8003404C 00030F8C 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80034050 00030F90 7C 7F 1B 78 */ mr r31, r3 +/* 80034054 00030F94 38 80 00 1E */ li r4, 0x1e +/* 80034058 00030F98 38 00 00 07 */ li r0, 7 +/* 8003405C 00030F9C 7C 09 03 A6 */ mtctr r0 +lbl_80034060: +/* 80034060 00030FA0 98 83 00 00 */ stb r4, 0(r3) +/* 80034064 00030FA4 38 63 00 01 */ addi r3, r3, 1 +/* 80034068 00030FA8 42 00 FF F8 */ bdnz lbl_80034060 +/* 8003406C 00030FAC 7F E3 FB 78 */ mr r3, r31 +/* 80034070 00030FB0 38 80 00 70 */ li r4, 0x70 +/* 80034074 00030FB4 38 A0 00 1E */ li r5, 0x1e +/* 80034078 00030FB8 48 00 00 41 */ bl setBombNum__21dSv_player_item_max_cFUcUc +/* 8003407C 00030FBC 7F E3 FB 78 */ mr r3, r31 +/* 80034080 00030FC0 38 80 00 71 */ li r4, 0x71 +/* 80034084 00030FC4 38 A0 00 0F */ li r5, 0xf +/* 80034088 00030FC8 48 00 00 31 */ bl setBombNum__21dSv_player_item_max_cFUcUc +/* 8003408C 00030FCC 7F E3 FB 78 */ mr r3, r31 +/* 80034090 00030FD0 38 80 00 72 */ li r4, 0x72 +/* 80034094 00030FD4 38 A0 00 0A */ li r5, 0xa +/* 80034098 00030FD8 48 00 00 21 */ bl setBombNum__21dSv_player_item_max_cFUcUc +/* 8003409C 00030FDC 38 00 00 00 */ li r0, 0 +/* 800340A0 00030FE0 98 1F 00 07 */ stb r0, 7(r31) +/* 800340A4 00030FE4 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 800340A8 00030FE8 80 01 00 14 */ lwz r0, 0x14(r1) +/* 800340AC 00030FEC 7C 08 03 A6 */ mtlr r0 +/* 800340B0 00030FF0 38 21 00 10 */ addi r1, r1, 0x10 +/* 800340B4 00030FF4 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/func_800340B8.s b/include/func_800340B8.s new file mode 100644 index 00000000000..f59d122e750 --- /dev/null +++ b/include/func_800340B8.s @@ -0,0 +1,20 @@ +/* 800340B8 00030FF8 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 800340BC 00030FFC 2C 00 00 71 */ cmpwi r0, 0x71 +/* 800340C0 00031000 41 82 00 28 */ beq lbl_800340E8 +/* 800340C4 00031004 40 80 00 10 */ bge lbl_800340D4 +/* 800340C8 00031008 2C 00 00 70 */ cmpwi r0, 0x70 +/* 800340CC 0003100C 40 80 00 14 */ bge lbl_800340E0 +/* 800340D0 00031010 4E 80 00 20 */ blr +lbl_800340D4: +/* 800340D4 00031014 2C 00 00 73 */ cmpwi r0, 0x73 +/* 800340D8 00031018 4C 80 00 20 */ bgelr +/* 800340DC 0003101C 48 00 00 14 */ b lbl_800340F0 +lbl_800340E0: +/* 800340E0 00031020 98 A3 00 01 */ stb r5, 1(r3) +/* 800340E4 00031024 4E 80 00 20 */ blr +lbl_800340E8: +/* 800340E8 00031028 98 A3 00 02 */ stb r5, 2(r3) +/* 800340EC 0003102C 4E 80 00 20 */ blr +lbl_800340F0: +/* 800340F0 00031030 98 A3 00 06 */ stb r5, 6(r3) +/* 800340F4 00031034 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/func_800340F8.s b/include/func_800340F8.s new file mode 100644 index 00000000000..07c147c55cf --- /dev/null +++ b/include/func_800340F8.s @@ -0,0 +1,52 @@ +/* 800340F8 00031038 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 800340FC 0003103C 7C 08 02 A6 */ mflr r0 +/* 80034100 00031040 90 01 00 24 */ stw r0, 0x24(r1) +/* 80034104 00031044 39 61 00 20 */ addi r11, r1, 0x20 +/* 80034108 00031048 48 32 E0 D5 */ bl _savegpr_29 +/* 8003410C 0003104C 7C 7D 1B 78 */ mr r29, r3 +/* 80034110 00031050 7C 9E 23 78 */ mr r30, r4 +/* 80034114 00031054 3B E0 00 01 */ li r31, 1 +/* 80034118 00031058 3C 60 80 40 */ lis r3, lbl_804061C0@ha +/* 8003411C 0003105C 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l +/* 80034120 00031060 38 63 00 CC */ addi r3, r3, 0xcc +/* 80034124 00031064 38 80 00 4F */ li r4, 0x4f +/* 80034128 00031068 4B FF FD A1 */ bl isFirstBit__21dSv_player_get_item_cCFUc +/* 8003412C 0003106C 2C 03 00 00 */ cmpwi r3, 0 +/* 80034130 00031070 41 82 00 08 */ beq lbl_80034138 +/* 80034134 00031074 3B E0 00 02 */ li r31, 2 +lbl_80034138: +/* 80034138 00031078 57 C0 06 3E */ clrlwi r0, r30, 0x18 +/* 8003413C 0003107C 2C 00 00 71 */ cmpwi r0, 0x71 +/* 80034140 00031080 41 82 00 30 */ beq lbl_80034170 +/* 80034144 00031084 40 80 00 10 */ bge lbl_80034154 +/* 80034148 00031088 2C 00 00 70 */ cmpwi r0, 0x70 +/* 8003414C 0003108C 40 80 00 14 */ bge lbl_80034160 +/* 80034150 00031090 48 00 00 40 */ b lbl_80034190 +lbl_80034154: +/* 80034154 00031094 2C 00 00 73 */ cmpwi r0, 0x73 +/* 80034158 00031098 40 80 00 38 */ bge lbl_80034190 +/* 8003415C 0003109C 48 00 00 24 */ b lbl_80034180 +lbl_80034160: +/* 80034160 000310A0 88 1D 00 01 */ lbz r0, 1(r29) +/* 80034164 000310A4 7C 00 F9 D6 */ mullw r0, r0, r31 +/* 80034168 000310A8 54 03 06 3E */ clrlwi r3, r0, 0x18 +/* 8003416C 000310AC 48 00 00 28 */ b lbl_80034194 +lbl_80034170: +/* 80034170 000310B0 88 1D 00 02 */ lbz r0, 2(r29) +/* 80034174 000310B4 7C 00 F9 D6 */ mullw r0, r0, r31 +/* 80034178 000310B8 54 03 06 3E */ clrlwi r3, r0, 0x18 +/* 8003417C 000310BC 48 00 00 18 */ b lbl_80034194 +lbl_80034180: +/* 80034180 000310C0 88 1D 00 06 */ lbz r0, 6(r29) +/* 80034184 000310C4 7C 00 F9 D6 */ mullw r0, r0, r31 +/* 80034188 000310C8 54 03 06 3E */ clrlwi r3, r0, 0x18 +/* 8003418C 000310CC 48 00 00 08 */ b lbl_80034194 +lbl_80034190: +/* 80034190 000310D0 38 60 00 00 */ li r3, 0 +lbl_80034194: +/* 80034194 000310D4 39 61 00 20 */ addi r11, r1, 0x20 +/* 80034198 000310D8 48 32 E0 91 */ bl _restgpr_29 +/* 8003419C 000310DC 80 01 00 24 */ lwz r0, 0x24(r1) +/* 800341A0 000310E0 7C 08 03 A6 */ mtlr r0 +/* 800341A4 000310E4 38 21 00 20 */ addi r1, r1, 0x20 +/* 800341A8 000310E8 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/func_800341AC.s b/include/func_800341AC.s new file mode 100644 index 00000000000..96458cfde39 --- /dev/null +++ b/include/func_800341AC.s @@ -0,0 +1,16 @@ +/* 800341AC 000310EC 38 A0 00 00 */ li r5, 0 +/* 800341B0 000310F0 7C 64 1B 78 */ mr r4, r3 +/* 800341B4 000310F4 38 00 00 08 */ li r0, 8 +/* 800341B8 000310F8 7C 09 03 A6 */ mtctr r0 +lbl_800341BC: +/* 800341BC 000310FC 98 A4 00 00 */ stb r5, 0(r4) +/* 800341C0 00031100 38 84 00 01 */ addi r4, r4, 1 +/* 800341C4 00031104 42 00 FF F8 */ bdnz lbl_800341BC +/* 800341C8 00031108 38 80 00 00 */ li r4, 0 +/* 800341CC 0003110C 98 83 00 08 */ stb r4, 8(r3) +/* 800341D0 00031110 98 83 00 09 */ stb r4, 9(r3) +/* 800341D4 00031114 98 83 00 0A */ stb r4, 0xa(r3) +/* 800341D8 00031118 38 00 00 FF */ li r0, 0xff +/* 800341DC 0003111C 98 03 00 0B */ stb r0, 0xb(r3) +/* 800341E0 00031120 98 83 00 0C */ stb r4, 0xc(r3) +/* 800341E4 00031124 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/functions.h b/include/functions.h index 85829220e98..4aae75ff74e 100644 --- a/include/functions.h +++ b/include/functions.h @@ -1,4 +1,5 @@ extern "C" { + void init__20dSv_player_collect_cFv(void); void dComIfGp_setSelectItem(int); void OSReport_Error(void); void dSv_event_c_NS_isEventBit(void); @@ -7,6 +8,7 @@ extern "C" { void dComIfGs_getMixItemIndex(void); void dComIfGs_getBottleMax(void); char* strcpy(char*,const char*); + void setBombNum__21dSv_player_item_max_cFUcUc(void); void func_80362224(void); void func_803621D8(void); void func_8036221C(void); @@ -27,6 +29,6 @@ extern "C" { void setEquipBottleItemIn__17dSv_player_item_cFUcUc(u8,u8); void isFirstBit__21dSv_player_get_item_cCFUc(void); void setBombNum__24dSv_player_item_record_cFUcUc(void); - void dSv_player_item_max_c_NS_getBombNum(void); + void getBombNum__21dSv_player_item_max_cCFUc(void); void setItem__17dSv_player_item_cFiUc(void); } \ No newline at end of file diff --git a/src/d/d_save/d_save.cpp b/src/d/d_save/d_save.cpp index ede793cbc2a..8f1a2693aba 100644 --- a/src/d/d_save/d_save.cpp +++ b/src/d/d_save/d_save.cpp @@ -607,3 +607,66 @@ asm u8 dSv_player_item_record_c::addBottleNum(u8 param_1, short param_2) { u8 dSv_player_item_record_c::getBottleNum(u8 bottle_index) const { return bottles[bottle_index]; } + +void dSv_player_item_max_c::init(void) { + + for (int i = 0; i < 7; i++) { + this->unk0[i] = 30; + } + setBombNum(REGULAR_BOMBS,30); + setBombNum(WATER_BOMBS,15); + setBombNum(BOMBLINGS,10); + this->unk0[7] = 0; +} + +void dSv_player_item_max_c::setBombNum(u8 bomb_id,u8 bomb_max) { + switch (bomb_id) { + case REGULAR_BOMBS: this->unk0[1] = bomb_max; return; + case WATER_BOMBS: this->unk0[2] = bomb_max; return; + case BOMBLINGS: this->unk0[6] = bomb_max; return; + } +} + +// this is close, the isFirstBit keeps screwing everything up :( +// u8 dSv_player_item_max_c::getBombNum(u8 param_1) const { +// u8 uVar2; +// u8 iVar3; + +// iVar3 = 0x1; +// if (isFirstBit(79)) { +// iVar3 = 0x2; +// } + +// switch (param_1) { +// case WATER_BOMBS: return (u8)(this->bomb_bags_ammo_max[0x1] * iVar3); break; +// case REGULAR_BOMBS: return (u8)(this->bomb_bags_ammo_max[0x1] * iVar3); break; +// case BOMBLINGS: return (u8)(this->unk_ammo_max[0x2] * iVar3); break; +// default: uVar2 = 0; +// } +// return uVar2; +// } + +asm u8 dSv_player_item_max_c::getBombNum(u8 param_1) const { + nofralloc + #include "func_800340F8.s" +} + +// This is a match but the linker refuses to find it's reference. Thank u metrowerks +// void dSv_player_collect_c::init(void) { + +// for (int i = 0; i < 8; i++) { +// this->unk0[i] = 0; +// } + +// this->unk8 = 0; +// this->crystal = 0; +// this->mirror = 0; +// this->unk11 = 0xFF; +// this->poe_count = 0; +// } + +asm void dSv_player_collect_c::init(void) { + nofralloc + #include "func_800341AC.s" +} +