update d_save, begin splitting asm

This commit is contained in:
unknown 2020-11-22 14:28:16 -05:00
parent 6359c5f82b
commit c31b914681
No known key found for this signature in database
GPG Key ID: 4312662758CE7D5A
5 changed files with 246 additions and 170 deletions

View File

@ -2,84 +2,6 @@
.section .text, "ax" # 80032918
.global setBombBagItemIn__17dSv_player_item_cFUcUcb_X1_
setBombBagItemIn__17dSv_player_item_cFUcUcb_X1_:
/* 80033910 00030850 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80033914 00030854 7C 08 02 A6 */ mflr r0
/* 80033918 00030858 90 01 00 24 */ stw r0, 0x24(r1)
/* 8003391C 0003085C 39 61 00 20 */ addi r11, r1, 0x20
/* 80033920 00030860 48 32 E8 B5 */ bl _savegpr_27
/* 80033924 00030864 7C BB 2B 78 */ mr r27, r5
/* 80033928 00030868 7C DC 33 78 */ mr r28, r6
/* 8003392C 0003086C 7C FD 3B 78 */ mr r29, r7
/* 80033930 00030870 3B E0 00 00 */ li r31, 0
/* 80033934 00030874 54 85 06 3E */ clrlwi r5, r4, 0x18
/* 80033938 00030878 38 00 00 03 */ li r0, 3
/* 8003393C 0003087C 7C 09 03 A6 */ mtctr r0
lbl_80033940:
/* 80033940 00030880 38 9F 00 0F */ addi r4, r31, 0xf
/* 80033944 00030884 7C 03 20 AE */ lbzx r0, r3, r4
/* 80033948 00030888 7C 05 00 40 */ cmplw r5, r0
/* 8003394C 0003088C 40 82 00 B4 */ bne lbl_80033A00
/* 80033950 00030890 7F 65 DB 78 */ mr r5, r27
/* 80033954 00030894 4B FF F6 65 */ bl setItem__17dSv_player_item_cFiUc
/* 80033958 00030898 57 A0 06 3E */ clrlwi r0, r29, 0x18
/* 8003395C 0003089C 28 00 00 01 */ cmplwi r0, 1
/* 80033960 000308A0 40 82 00 60 */ bne lbl_800339C0
/* 80033964 000308A4 57 60 06 3E */ clrlwi r0, r27, 0x18
/* 80033968 000308A8 28 00 00 50 */ cmplwi r0, 0x50
/* 8003396C 000308AC 41 82 00 54 */ beq lbl_800339C0
/* 80033970 000308B0 3C 60 80 40 */ lis r3, lbl_804061C0@ha
/* 80033974 000308B4 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l
/* 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
/* 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
/* 800339A4 000308E4 7C 7C 1B 78 */ mr r28, r3
lbl_800339A8:
/* 800339A8 000308E8 3C 60 80 40 */ lis r3, lbl_804061C0@ha
/* 800339AC 000308EC 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l
/* 800339B0 000308F0 38 63 00 EC */ addi r3, r3, 0xec
/* 800339B4 000308F4 57 E4 06 3E */ clrlwi r4, r31, 0x18
/* 800339B8 000308F8 7F 85 E3 78 */ mr r5, r28
/* 800339BC 000308FC 48 00 05 B1 */ bl dSv_player_item_record_c_NS_setBombNum
lbl_800339C0:
/* 800339C0 00030900 3B A0 00 00 */ li r29, 0
/* 800339C4 00030904 3C 60 80 40 */ lis r3, lbl_804061C0@ha
/* 800339C8 00030908 3B C3 61 C0 */ addi r30, r3, lbl_804061C0@l
/* 800339CC 0003090C 3B FF 00 0F */ addi r31, r31, 0xf
lbl_800339D0:
/* 800339D0 00030910 7F C3 F3 78 */ mr r3, r30
/* 800339D4 00030914 7F A4 EB 78 */ mr r4, r29
/* 800339D8 00030918 4B FF F0 85 */ bl getSelectItemIndex__21dSv_player_status_a_cCFi
/* 800339DC 0003091C 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 800339E0 00030920 7C 1F 00 00 */ cmpw r31, r0
/* 800339E4 00030924 40 82 00 0C */ bne lbl_800339F0
/* 800339E8 00030928 7F A3 EB 78 */ mr r3, r29
/* 800339EC 0003092C 4B FF A4 09 */ bl dComIfGp_setSelectItem
lbl_800339F0:
/* 800339F0 00030930 3B BD 00 01 */ addi r29, r29, 1
/* 800339F4 00030934 2C 1D 00 03 */ cmpwi r29, 3
/* 800339F8 00030938 41 80 FF D8 */ blt lbl_800339D0
/* 800339FC 0003093C 48 00 00 0C */ b lbl_80033A08
lbl_80033A00:
/* 80033A00 00030940 3B FF 00 01 */ addi r31, r31, 1
/* 80033A04 00030944 42 00 FF 3C */ bdnz lbl_80033940
lbl_80033A08:
/* 80033A08 00030948 39 61 00 20 */ addi r11, r1, 0x20
/* 80033A0C 0003094C 48 32 E8 15 */ bl _restgpr_27
/* 80033A10 00030950 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80033A14 00030954 7C 08 03 A6 */ mtlr r0
/* 80033A18 00030958 38 21 00 20 */ addi r1, r1, 0x20
/* 80033A1C 0003095C 4E 80 00 20 */ blr
.global dSv_player_item_c_NS_setEmptyBombBagItemIn
dSv_player_item_c_NS_setEmptyBombBagItemIn:
/* 80033A20 00030960 94 21 FF F0 */ stwu r1, -0x10(r1)
@ -106,7 +28,7 @@ dSv_player_item_c_NS_setEmptyBombBagItemIn_X1_:
/* 80033A68 000309A8 38 80 00 50 */ li r4, 0x50
/* 80033A6C 000309AC 7D 05 43 78 */ mr r5, r8
/* 80033A70 000309B0 7C 06 03 78 */ mr r6, r0
/* 80033A74 000309B4 4B FF FE 9D */ bl setBombBagItemIn__17dSv_player_item_cFUcUcb_X1_
/* 80033A74 000309B4 4B FF FE 9D */ bl setBombBagItemIn__17dSv_player_item_cFUcUcUcb
/* 80033A78 000309B8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80033A7C 000309BC 7C 08 03 A6 */ mtlr r0
/* 80033A80 000309C0 38 21 00 10 */ addi r1, r1, 0x10

26
include/func_800332F8.s Normal file
View File

@ -0,0 +1,26 @@
/* 800332F8 00030238 38 A0 00 00 */ li r5, 0
/* 800332FC 0003023C 38 C0 00 00 */ li r6, 0
/* 80033300 00030240 38 80 00 FF */ li r4, 0xff
/* 80033304 00030244 38 00 00 18 */ li r0, 0x18
/* 80033308 00030248 7C 09 03 A6 */ mtctr r0
lbl_8003330C:
/* 8003330C 0003024C 38 06 00 18 */ addi r0, r6, 0x18
/* 80033310 00030250 7C 83 01 AE */ stbx r4, r3, r0
/* 80033314 00030254 38 C6 00 01 */ addi r6, r6, 1
/* 80033318 00030258 42 00 FF F4 */ bdnz lbl_8003330C
/* 8003331C 0003025C 3C 80 80 3A */ lis r4, lbl_803A7270@ha
/* 80033320 00030260 38 84 72 70 */ addi r4, r4, lbl_803A7270@l
/* 80033324 00030264 38 00 00 17 */ li r0, 0x17
/* 80033328 00030268 7C 09 03 A6 */ mtctr r0
lbl_8003332C:
/* 8003332C 0003026C 88 C4 00 00 */ lbz r6, 0(r4)
/* 80033330 00030270 7C 03 30 AE */ lbzx r0, r3, r6
/* 80033334 00030274 28 00 00 FF */ cmplwi r0, 0xff
/* 80033338 00030278 41 82 00 10 */ beq lbl_80033348
/* 8003333C 0003027C 38 05 00 18 */ addi r0, r5, 0x18
/* 80033340 00030280 7C C3 01 AE */ stbx r6, r3, r0
/* 80033344 00030284 38 A5 00 01 */ addi r5, r5, 1
lbl_80033348:
/* 80033348 00030288 38 84 00 01 */ addi r4, r4, 1
/* 8003334C 0003028C 42 00 FF E0 */ bdnz lbl_8003332C
/* 80033350 00030290 4E 80 00 20 */ blr

64
include/func_80033828.s Normal file
View File

@ -0,0 +1,64 @@
/* 80033828 00030768 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8003382C 0003076C 7C 08 02 A6 */ mflr r0
/* 80033830 00030770 90 01 00 24 */ stw r0, 0x24(r1)
/* 80033834 00030774 39 61 00 20 */ addi r11, r1, 0x20
/* 80033838 00030778 48 32 E9 A5 */ bl _savegpr_29
/* 8003383C 0003077C 7C BE 2B 78 */ mr r30, r5
/* 80033840 00030780 7C DD 33 78 */ mr r29, r6
/* 80033844 00030784 3B E0 00 00 */ li r31, 0
/* 80033848 00030788 54 85 06 3E */ clrlwi r5, r4, 0x18
/* 8003384C 0003078C 38 00 00 03 */ li r0, 3
/* 80033850 00030790 7C 09 03 A6 */ mtctr r0
lbl_80033854:
/* 80033854 00030794 38 9F 00 0F */ addi r4, r31, 0xf
/* 80033858 00030798 7C 03 20 AE */ lbzx r0, r3, r4
/* 8003385C 0003079C 7C 05 00 40 */ cmplw r5, r0
/* 80033860 000307A0 40 82 00 90 */ bne lbl_800338F0
/* 80033864 000307A4 7F C5 F3 78 */ mr r5, r30
/* 80033868 000307A8 4B FF F7 51 */ bl setItem__17dSv_player_item_cFiUc
/* 8003386C 000307AC 57 A0 06 3E */ clrlwi r0, r29, 0x18
/* 80033870 000307B0 28 00 00 01 */ cmplwi r0, 1
/* 80033874 000307B4 40 82 00 3C */ bne lbl_800338B0
/* 80033878 000307B8 57 C0 06 3E */ clrlwi r0, r30, 0x18
/* 8003387C 000307BC 28 00 00 50 */ cmplwi r0, 0x50
/* 80033880 000307C0 41 82 00 30 */ beq lbl_800338B0
/* 80033884 000307C4 3C 60 80 40 */ lis r3, lbl_804061C0@ha
/* 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
/* 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
/* 800338A4 000307E4 38 63 00 EC */ addi r3, r3, 0xec
/* 800338A8 000307E8 57 E4 06 3E */ clrlwi r4, r31, 0x18
/* 800338AC 000307EC 48 00 06 C1 */ bl dSv_player_item_record_c_NS_setBombNum
lbl_800338B0:
/* 800338B0 000307F0 3B A0 00 00 */ li r29, 0
/* 800338B4 000307F4 3C 60 80 40 */ lis r3, lbl_804061C0@ha
/* 800338B8 000307F8 3B C3 61 C0 */ addi r30, r3, lbl_804061C0@l
/* 800338BC 000307FC 3B FF 00 0F */ addi r31, r31, 0xf
lbl_800338C0:
/* 800338C0 00030800 7F C3 F3 78 */ mr r3, r30
/* 800338C4 00030804 7F A4 EB 78 */ mr r4, r29
/* 800338C8 00030808 4B FF F1 95 */ bl getSelectItemIndex__21dSv_player_status_a_cCFi
/* 800338CC 0003080C 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 800338D0 00030810 7C 1F 00 00 */ cmpw r31, r0
/* 800338D4 00030814 40 82 00 0C */ bne lbl_800338E0
/* 800338D8 00030818 7F A3 EB 78 */ mr r3, r29
/* 800338DC 0003081C 4B FF A5 19 */ bl dComIfGp_setSelectItem
lbl_800338E0:
/* 800338E0 00030820 3B BD 00 01 */ addi r29, r29, 1
/* 800338E4 00030824 2C 1D 00 03 */ cmpwi r29, 3
/* 800338E8 00030828 41 80 FF D8 */ blt lbl_800338C0
/* 800338EC 0003082C 48 00 00 0C */ b lbl_800338F8
lbl_800338F0:
/* 800338F0 00030830 3B FF 00 01 */ addi r31, r31, 1
/* 800338F4 00030834 42 00 FF 60 */ bdnz lbl_80033854
lbl_800338F8:
/* 800338F8 00030838 39 61 00 20 */ addi r11, r1, 0x20
/* 800338FC 0003083C 48 32 E9 2D */ bl _restgpr_29
/* 80033900 00030840 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80033904 00030844 7C 08 03 A6 */ mtlr r0
/* 80033908 00030848 38 21 00 20 */ addi r1, r1, 0x20
/* 8003390C 0003084C 4E 80 00 20 */ blr

75
include/func_80033910.s Normal file
View File

@ -0,0 +1,75 @@
/* 80033910 00030850 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80033914 00030854 7C 08 02 A6 */ mflr r0
/* 80033918 00030858 90 01 00 24 */ stw r0, 0x24(r1)
/* 8003391C 0003085C 39 61 00 20 */ addi r11, r1, 0x20
/* 80033920 00030860 48 32 E8 B5 */ bl _savegpr_27
/* 80033924 00030864 7C BB 2B 78 */ mr r27, r5
/* 80033928 00030868 7C DC 33 78 */ mr r28, r6
/* 8003392C 0003086C 7C FD 3B 78 */ mr r29, r7
/* 80033930 00030870 3B E0 00 00 */ li r31, 0
/* 80033934 00030874 54 85 06 3E */ clrlwi r5, r4, 0x18
/* 80033938 00030878 38 00 00 03 */ li r0, 3
/* 8003393C 0003087C 7C 09 03 A6 */ mtctr r0
lbl_80033940:
/* 80033940 00030880 38 9F 00 0F */ addi r4, r31, 0xf
/* 80033944 00030884 7C 03 20 AE */ lbzx r0, r3, r4
/* 80033948 00030888 7C 05 00 40 */ cmplw r5, r0
/* 8003394C 0003088C 40 82 00 B4 */ bne lbl_80033A00
/* 80033950 00030890 7F 65 DB 78 */ mr r5, r27
/* 80033954 00030894 4B FF F6 65 */ bl setItem__17dSv_player_item_cFiUc
/* 80033958 00030898 57 A0 06 3E */ clrlwi r0, r29, 0x18
/* 8003395C 0003089C 28 00 00 01 */ cmplwi r0, 1
/* 80033960 000308A0 40 82 00 60 */ bne lbl_800339C0
/* 80033964 000308A4 57 60 06 3E */ clrlwi r0, r27, 0x18
/* 80033968 000308A8 28 00 00 50 */ cmplwi r0, 0x50
/* 8003396C 000308AC 41 82 00 54 */ beq lbl_800339C0
/* 80033970 000308B0 3C 60 80 40 */ lis r3, lbl_804061C0@ha
/* 80033974 000308B4 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l
/* 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
/* 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
/* 800339A4 000308E4 7C 7C 1B 78 */ mr r28, r3
lbl_800339A8:
/* 800339A8 000308E8 3C 60 80 40 */ lis r3, lbl_804061C0@ha
/* 800339AC 000308EC 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l
/* 800339B0 000308F0 38 63 00 EC */ addi r3, r3, 0xec
/* 800339B4 000308F4 57 E4 06 3E */ clrlwi r4, r31, 0x18
/* 800339B8 000308F8 7F 85 E3 78 */ mr r5, r28
/* 800339BC 000308FC 48 00 05 B1 */ bl dSv_player_item_record_c_NS_setBombNum
lbl_800339C0:
/* 800339C0 00030900 3B A0 00 00 */ li r29, 0
/* 800339C4 00030904 3C 60 80 40 */ lis r3, lbl_804061C0@ha
/* 800339C8 00030908 3B C3 61 C0 */ addi r30, r3, lbl_804061C0@l
/* 800339CC 0003090C 3B FF 00 0F */ addi r31, r31, 0xf
lbl_800339D0:
/* 800339D0 00030910 7F C3 F3 78 */ mr r3, r30
/* 800339D4 00030914 7F A4 EB 78 */ mr r4, r29
/* 800339D8 00030918 4B FF F0 85 */ bl getSelectItemIndex__21dSv_player_status_a_cCFi
/* 800339DC 0003091C 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 800339E0 00030920 7C 1F 00 00 */ cmpw r31, r0
/* 800339E4 00030924 40 82 00 0C */ bne lbl_800339F0
/* 800339E8 00030928 7F A3 EB 78 */ mr r3, r29
/* 800339EC 0003092C 4B FF A4 09 */ bl dComIfGp_setSelectItem
lbl_800339F0:
/* 800339F0 00030930 3B BD 00 01 */ addi r29, r29, 1
/* 800339F4 00030934 2C 1D 00 03 */ cmpwi r29, 3
/* 800339F8 00030938 41 80 FF D8 */ blt lbl_800339D0
/* 800339FC 0003093C 48 00 00 0C */ b lbl_80033A08
lbl_80033A00:
/* 80033A00 00030940 3B FF 00 01 */ addi r31, r31, 1
/* 80033A04 00030944 42 00 FF 3C */ bdnz lbl_80033940
lbl_80033A08:
/* 80033A08 00030948 39 61 00 20 */ addi r11, r1, 0x20
/* 80033A0C 0003094C 48 32 E8 15 */ bl _restgpr_27
/* 80033A10 00030950 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80033A14 00030954 7C 08 03 A6 */ mtlr r0
/* 80033A18 00030958 38 21 00 20 */ addi r1, r1, 0x20
/* 80033A1C 0003095C 4E 80 00 20 */ blr

View File

@ -31,6 +31,7 @@ extern "C" {
void dSv_player_get_item_c_NS_isFirstBit(void);
void dSv_player_item_record_c_NS_setBombNum(void);
void dSv_player_item_max_c_NS_getBombNum(void);
void setItem__17dSv_player_item_cFiUc(void);
}
extern float lbl_80451D5C;
extern u8 lbl_80379234[0x64];
@ -306,6 +307,13 @@ void dSv_player_field_last_stay_info_c::onRegionBit(int i_region_bit) {
last_region = last_region | (u8)(1 << i_region_bit);
}
// this is close
// bool dSv_player_field_last_stay_info_c::isRegionBit(int param_1) const {
// if ((param_1 >= 0) && (param_1 < 8)) {
// return (last_region & (1 << (u8)param_1)) ? 1 : 0;
// }
// }
asm bool dSv_player_field_last_stay_info_c::isRegionBit(int unk) const {
nofralloc
cmpwi r4, 0
@ -396,6 +404,69 @@ addi r1, r1, 0x20
blr
}
// u8 dSv_player_item_c::getItem(int param_1, bool param_2) const {
// int IVar1;
// int IVar2;
// u8 current_select_item_index;
// if (param_1 < 0x18) {
// if (param_2 != false) {
// for (int select_item_index = 0; select_item_index < 2; select_item_index++) {
// current_select_item_index = getSelectItemIndex(select_item_index);
// if (((param_1 == (current_select_item_index)) ||
// (current_select_item_index = dComIfGs_getMixItemIndex(select_item_index), param_1 == (current_select_item_index))) &&
// (current_select_item_index = dComIfGs_getMixItemIndex(select_item_index), (current_select_item_index) != NO_ITEM)) {
// current_select_item_index = getSelectItemIndex(select_item_index);
// IVar1 = items[current_select_item_index];
// current_select_item_index = dComIfGs_getMixItemIndex(select_item_index);
// IVar2 = items[current_select_item_index];
// if (((IVar1 == HEROS_BOW) && (IVar2 == REGULAR_BOMBS)) ||
// ((IVar2 == HEROS_BOW && (IVar1 == REGULAR_BOMBS)))) {
// return 0x59;
// }
// if (((IVar1 == HEROS_BOW) && (IVar2 == WATER_BOMBS)) ||
// ((IVar2 == HEROS_BOW && (IVar1 == WATER_BOMBS)))) {
// return 0x59;
// }
// if (((IVar1 == HEROS_BOW) && (IVar2 == BOMBLINGS)) ||
// ((IVar2 == HEROS_BOW && (IVar1 == BOMBLINGS)))) {
// return 0x59;
// }
// if (((IVar1 == HEROS_BOW) && (IVar2 == HAWKEYE)) ||
// ((IVar2 == HEROS_BOW && (IVar1 == HAWKEYE)))) {
// return 0x5a;
// }
// if (((IVar1 == FISHING_ROD) && (IVar2 == BEE_LARVA)) ||
// ((IVar2 == FISHING_ROD && (IVar1 == BEE_LARVA)))) {
// return 0x5b;
// }
// if (((IVar1 == FISHING_ROD) && (IVar2 == ZORAS_JEWEL)) ||
// ((IVar2 == FISHING_ROD && (IVar1 == ZORAS_JEWEL)))) {
// return 0x5c;
// }
// if (((IVar1 == FISHING_ROD) && (IVar2 == WORM)) ||
// ((IVar2 == FISHING_ROD && (IVar1 == WORM)))) {
// return 0x5d;
// }
// if (((select_item_index == 0x3) &&
// (current_select_item_index = getSelectItemIndex(0x3),
// (current_select_item_index & 0xff) == 0x0)) &&
// (current_select_item_index = dComIfGs_getMixItemIndex(0x3), (current_select_item_index & 0xff) == 0x0)) {
// dComIfGs_setSelectItemIndex(0x3, -0x1);
// dComIfGs_setMixItemIndex(0x3, -0x1);
// return 0xff;
// }
// OSReport_Error(lbl_8037923d, (unsigned int)IVar1, (unsigned int)IVar2);
// }
// }
// }
// current_select_item_index = (unsigned int)items[param_1];
// } else {
// current_select_item_index = NO_ITEM;
// }
// return current_select_item_index;
// }
asm u8 dSv_player_item_c::getItem(int, bool) const {
nofralloc
/* 80033030 0002FF70 94 21 FF E0 */ stwu r1, -0x20(r1)
@ -606,6 +677,7 @@ lbl_800332E0:
/* 800332F4 00030234 4E 80 00 20 */ blr
}
// this is close
// void dSv_player_item_c::setLineUpItem(void) {
// u8* i_item_lst;
@ -625,32 +697,7 @@ lbl_800332E0:
asm void dSv_player_item_c::setLineUpItem(void) {
nofralloc
/* 800332F8 00030238 38 A0 00 00 */ li r5, 0
/* 800332FC 0003023C 38 C0 00 00 */ li r6, 0
/* 80033300 00030240 38 80 00 FF */ li r4, 0xff
/* 80033304 00030244 38 00 00 18 */ li r0, 0x18
/* 80033308 00030248 7C 09 03 A6 */ mtctr r0
lbl_8003330C:
/* 8003330C 0003024C 38 06 00 18 */ addi r0, r6, 0x18
/* 80033310 00030250 7C 83 01 AE */ stbx r4, r3, r0
/* 80033314 00030254 38 C6 00 01 */ addi r6, r6, 1
/* 80033318 00030258 42 00 FF F4 */ bdnz lbl_8003330C
/* 8003331C 0003025C 3C 80 80 3A */ lis r4, lbl_803A7270@ha
/* 80033320 00030260 38 84 72 70 */ addi r4, r4, lbl_803A7270@l
/* 80033324 00030264 38 00 00 17 */ li r0, 0x17
/* 80033328 00030268 7C 09 03 A6 */ mtctr r0
lbl_8003332C:
/* 8003332C 0003026C 88 C4 00 00 */ lbz r6, 0(r4)
/* 80033330 00030270 7C 03 30 AE */ lbzx r0, r3, r6
/* 80033334 00030274 28 00 00 FF */ cmplwi r0, 0xff
/* 80033338 00030278 41 82 00 10 */ beq lbl_80033348
/* 8003333C 0003027C 38 05 00 18 */ addi r0, r5, 0x18
/* 80033340 00030280 7C C3 01 AE */ stbx r6, r3, r0
/* 80033344 00030284 38 A5 00 01 */ addi r5, r5, 1
lbl_80033348:
/* 80033348 00030288 38 84 00 01 */ addi r4, r4, 1
/* 8003334C 0003028C 42 00 FF E0 */ bdnz lbl_8003332C
/* 80033350 00030290 4E 80 00 20 */ blr
#include "func_800332F8.s"
}
u8 dSv_player_item_c::getLineUpItem(int slot_number) const {
@ -761,7 +808,7 @@ lbl_80033438:
asm void dSv_player_item_c::setEmptyBottleItemIn(u8){
nofralloc
/* 80033450 00030390 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80033450 00030390 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80033454 00030394 7C 08 02 A6 */ mflr r0
/* 80033458 00030398 90 01 00 14 */ stw r0, 0x14(r1)
/* 8003345C 0003039C 93 E1 00 0C */ stw r31, 0xc(r1)
@ -1026,68 +1073,10 @@ u8 dSv_player_item_c::checkEmptyBottle(void) {
asm void dSv_player_item_c::setBombBagItemIn(u8, u8, bool) {
nofralloc
/* 80033828 00030768 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8003382C 0003076C 7C 08 02 A6 */ mflr r0
/* 80033830 00030770 90 01 00 24 */ stw r0, 0x24(r1)
/* 80033834 00030774 39 61 00 20 */ addi r11, r1, 0x20
/* 80033838 00030778 48 32 E9 A5 */ bl _savegpr_29
/* 8003383C 0003077C 7C BE 2B 78 */ mr r30, r5
/* 80033840 00030780 7C DD 33 78 */ mr r29, r6
/* 80033844 00030784 3B E0 00 00 */ li r31, 0
/* 80033848 00030788 54 85 06 3E */ clrlwi r5, r4, 0x18
/* 8003384C 0003078C 38 00 00 03 */ li r0, 3
/* 80033850 00030790 7C 09 03 A6 */ mtctr r0
lbl_80033854:
/* 80033854 00030794 38 9F 00 0F */ addi r4, r31, 0xf
/* 80033858 00030798 7C 03 20 AE */ lbzx r0, r3, r4
/* 8003385C 0003079C 7C 05 00 40 */ cmplw r5, r0
/* 80033860 000307A0 40 82 00 90 */ bne lbl_800338F0
/* 80033864 000307A4 7F C5 F3 78 */ mr r5, r30
/* 80033868 000307A8 4B FF F7 51 */ bl setItem__17dSv_player_item_cFiUc
/* 8003386C 000307AC 57 A0 06 3E */ clrlwi r0, r29, 0x18
/* 80033870 000307B0 28 00 00 01 */ cmplwi r0, 1
/* 80033874 000307B4 40 82 00 3C */ bne lbl_800338B0
/* 80033878 000307B8 57 C0 06 3E */ clrlwi r0, r30, 0x18
/* 8003387C 000307BC 28 00 00 50 */ cmplwi r0, 0x50
/* 80033880 000307C0 41 82 00 30 */ beq lbl_800338B0
/* 80033884 000307C4 3C 60 80 40 */ lis r3, lbl_804061C0@ha
/* 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
/* 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
/* 800338A4 000307E4 38 63 00 EC */ addi r3, r3, 0xec
/* 800338A8 000307E8 57 E4 06 3E */ clrlwi r4, r31, 0x18
/* 800338AC 000307EC 48 00 06 C1 */ bl dSv_player_item_record_c_NS_setBombNum
lbl_800338B0:
/* 800338B0 000307F0 3B A0 00 00 */ li r29, 0
/* 800338B4 000307F4 3C 60 80 40 */ lis r3, lbl_804061C0@ha
/* 800338B8 000307F8 3B C3 61 C0 */ addi r30, r3, lbl_804061C0@l
/* 800338BC 000307FC 3B FF 00 0F */ addi r31, r31, 0xf
lbl_800338C0:
/* 800338C0 00030800 7F C3 F3 78 */ mr r3, r30
/* 800338C4 00030804 7F A4 EB 78 */ mr r4, r29
/* 800338C8 00030808 4B FF F1 95 */ bl getSelectItemIndex__21dSv_player_status_a_cCFi
/* 800338CC 0003080C 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 800338D0 00030810 7C 1F 00 00 */ cmpw r31, r0
/* 800338D4 00030814 40 82 00 0C */ bne lbl_800338E0
/* 800338D8 00030818 7F A3 EB 78 */ mr r3, r29
/* 800338DC 0003081C 4B FF A5 19 */ bl dComIfGp_setSelectItem
lbl_800338E0:
/* 800338E0 00030820 3B BD 00 01 */ addi r29, r29, 1
/* 800338E4 00030824 2C 1D 00 03 */ cmpwi r29, 3
/* 800338E8 00030828 41 80 FF D8 */ blt lbl_800338C0
/* 800338EC 0003082C 48 00 00 0C */ b lbl_800338F8
lbl_800338F0:
/* 800338F0 00030830 3B FF 00 01 */ addi r31, r31, 1
/* 800338F4 00030834 42 00 FF 60 */ bdnz lbl_80033854
lbl_800338F8:
/* 800338F8 00030838 39 61 00 20 */ addi r11, r1, 0x20
/* 800338FC 0003083C 48 32 E9 2D */ bl _restgpr_29
/* 80033900 00030840 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80033904 00030844 7C 08 03 A6 */ mtlr r0
/* 80033908 00030848 38 21 00 20 */ addi r1, r1, 0x20
/* 8003390C 0003084C 4E 80 00 20 */ blr
#include "func_80033828.s"
}
asm void dSv_player_item_c::setBombBagItemIn(u8, u8, u8, bool) {
nofralloc
#include "func_80033910.s"
}