diff options
44 files changed, 377 insertions, 293 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index 2265303b..297c54fe 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -257,7 +257,7 @@ Static arm9 Object unk_0206E0F0.o Object unk_0206E2F0.o Object itemtool.o - Object unk_0206EB80.o + Object bag.o Object unk_0206F1F0.o Object unk_0206F3FC.o Object unk_02072548.o diff --git a/arm9/asm/unk_0206EB80.s b/arm9/asm/bag.s index bca18f77..dba33611 100644 --- a/arm9/asm/unk_0206EB80.s +++ b/arm9/asm/bag.s @@ -3,27 +3,27 @@ .text - thumb_func_start FUN_0206EB80 -FUN_0206EB80: ; 0x0206EB80 + thumb_func_start Sav2_Bag_sizeof +Sav2_Bag_sizeof: ; 0x0206EB80 ldr r0, _0206EB84 ; =0x00000774 bx lr .balign 4 _0206EB84: .word 0x00000774 - thumb_func_start FUN_0206EB88 -FUN_0206EB88: ; 0x0206EB88 + thumb_func_start Sav2_Bag_new +Sav2_Bag_new: ; 0x0206EB88 push {r4, lr} ldr r1, _0206EB9C ; =0x00000774 bl AllocFromHeap add r4, r0, #0x0 - bl FUN_0206EBA0 + bl Sav2_Bag_init add r0, r4, #0x0 pop {r4, pc} nop _0206EB9C: .word 0x00000774 - thumb_func_start FUN_0206EBA0 -FUN_0206EBA0: ; 0x0206EBA0 + thumb_func_start Sav2_Bag_init +Sav2_Bag_init: ; 0x0206EBA0 ldr r3, _0206EBAC ; =MIi_CpuClear16 add r1, r0, #0x0 mov r0, #0x0 @@ -33,8 +33,8 @@ FUN_0206EBA0: ; 0x0206EBA0 _0206EBAC: .word MIi_CpuClear16 _0206EBB0: .word 0x00000774 - thumb_func_start FUN_0206EBB4 -FUN_0206EBB4: ; 0x0206EBB4 + thumb_func_start Sav2_Bag_copy +Sav2_Bag_copy: ; 0x0206EBB4 ldr r3, _0206EBBC ; =MI_CpuCopy8 ldr r2, _0206EBC0 ; =0x00000774 bx r3 @@ -56,8 +56,11 @@ FUN_0206EBCC: ; 0x0206EBCC str r1, [r0, r2] bx lr - thumb_func_start FUN_0206EBD4 -FUN_0206EBD4: ; 0x0206EBD4 + thumb_func_start GetItemPocket +GetItemPocket: ; 0x0206EBD4 + ; int GetItemPocket(struct BagData * bag, u16 item_id, struct ItemSlot ** slot_p, u32 * count_p, u32 heap_id) + ; Loads pocket pointer and capacity into passed pointers + ; Returns pocket ID push {r4-r6, lr} add r5, r2, #0x0 add r4, r0, #0x0 @@ -75,14 +78,14 @@ FUN_0206EBD4: ; 0x0206EBD4 asr r1, r1, #0x10 add pc, r1 _0206EBF6: ; jump table (using 16-bit offset) - .short _0206EC14 - _0206EBF6 - 2; case 0 - .short _0206EC28 - _0206EBF6 - 2; case 1 - .short _0206EC34 - _0206EBF6 - 2; case 2 - .short _0206EC58 - _0206EBF6 - 2; case 3 - .short _0206EC1C - _0206EBF6 - 2; case 4 - .short _0206EC4C - _0206EBF6 - 2; case 5 - .short _0206EC40 - _0206EBF6 - 2; case 6 - .short _0206EC06 - _0206EBF6 - 2; case 7 + .short _0206EC14 - _0206EBF6 - 2; case 0 (POCKET_ITEMS) + .short _0206EC28 - _0206EBF6 - 2; case 1 (POCKET_MEDICINE) + .short _0206EC34 - _0206EBF6 - 2; case 2 (POCKET_BALLS) + .short _0206EC58 - _0206EBF6 - 2; case 3 (POCKET_TMHMS) + .short _0206EC1C - _0206EBF6 - 2; case 4 (POCKET_BERRIES) + .short _0206EC4C - _0206EBF6 - 2; case 5 (POCKET_MAIL) + .short _0206EC40 - _0206EBF6 - 2; case 6 (POCKET_BATTLE_ITEMS) + .short _0206EC06 - _0206EBF6 - 2; case 7 (POCKET_KEY_ITEMS) _0206EC06: mov r1, #0xa5 lsl r1, r1, #0x2 @@ -147,8 +150,11 @@ _0206EC70: .word 0x000006BC _0206EC74: .word 0x000006F8 _0206EC78: .word 0x000004EC - thumb_func_start FUN_0206EC7C -FUN_0206EC7C: ; 0x0206EC7C + thumb_func_start BagGetItemSlotForAddInternal +BagGetItemSlotForAddInternal: ; 0x0206EC7C + ; Returns a pointer to the bag item slot in the current pocket + ; that has capacity for the item/quantity being added + ; NULL if no such luck push {r4-r7} add r5, r1, #0x0 mov r1, #0x0 @@ -206,8 +212,11 @@ _0206ECDC: pop {r4-r7} bx lr - thumb_func_start FUN_0206ECE0 -FUN_0206ECE0: ; 0x0206ECE0 + thumb_func_start BagGetItemSlotForAdd +BagGetItemSlotForAdd: ; 0x0206ECE0 + ; Returns a pointer to the bag item slot that has capacity + ; for the item/quantity being added + ; NULL if no such luck push {r4-r5, lr} sub sp, #0xc add r4, r2, #0x0 @@ -215,8 +224,8 @@ FUN_0206ECE0: ; 0x0206ECE0 add r2, sp, #0x8 add r3, sp, #0x4 add r5, r1, #0x0 - bl FUN_0206EBD4 - cmp r0, #0x3 + bl GetItemPocket + cmp r0, #0x3 ; POCKET_TMHMS bne _0206ED0A mov r0, #0x63 str r0, [sp, #0x0] @@ -224,7 +233,7 @@ FUN_0206ECE0: ; 0x0206ECE0 ldr r1, [sp, #0x4] add r2, r5, #0x0 add r3, r4, #0x0 - bl FUN_0206EC7C + bl BagGetItemSlotForAddInternal add sp, #0xc pop {r4-r5, pc} _0206ED0A: @@ -234,16 +243,17 @@ _0206ED0A: ldr r0, [sp, #0x8] ldr r1, [sp, #0x4] add r3, r4, #0x0 - bl FUN_0206EC7C + bl BagGetItemSlotForAddInternal add sp, #0xc pop {r4-r5, pc} nop _0206ED20: .word 0x000003E7 - thumb_func_start FUN_0206ED24 -FUN_0206ED24: ; 0x0206ED24 + thumb_func_start BagHasSpaceForItem +BagHasSpaceForItem: ; 0x0206ED24 + ; Returns bool whether space exists for the item being added push {r3, lr} - bl FUN_0206ECE0 + bl BagGetItemSlotForAdd cmp r0, #0x0 beq _0206ED32 mov r0, #0x1 @@ -253,15 +263,15 @@ _0206ED32: pop {r3, pc} .balign 4 - thumb_func_start FUN_0206ED38 -FUN_0206ED38: ; 0x0206ED38 + thumb_func_start BagAddItem +BagAddItem: ; 0x0206ED38 push {r4-r7, lr} sub sp, #0xc add r7, r0, #0x0 add r5, r1, #0x0 add r4, r2, #0x0 add r6, r3, #0x0 - bl FUN_0206ECE0 + bl BagGetItemSlotForAdd str r0, [sp, #0x8] cmp r0, #0x0 bne _0206ED54 @@ -279,20 +289,21 @@ _0206ED54: add r0, r7, #0x0 add r1, r5, #0x0 str r6, [sp, #0x0] - bl FUN_0206EBD4 + bl GetItemPocket sub r0, r0, #0x3 cmp r0, #0x1 bhi _0206ED7A + ; POCKET_TMHMS, POCKET_BERRIES ldr r0, [sp, #0x8] ldr r1, [sp, #0x4] - bl FUN_0206EF94 + bl SortPocket _0206ED7A: mov r0, #0x1 add sp, #0xc pop {r4-r7, pc} - thumb_func_start FUN_0206ED80 -FUN_0206ED80: ; 0x0206ED80 + thumb_func_start BagGetItemSlotForRemoveInternal +BagGetItemSlotForRemoveInternal: ; 0x0206ED80 push {r3-r6} mov r5, #0x0 cmp r1, #0x0 @@ -322,8 +333,8 @@ _0206EDAA: bx lr .balign 4 - thumb_func_start FUN_0206EDB0 -FUN_0206EDB0: ; 0x0206EDB0 + thumb_func_start BagGetItemSlotForRemove +BagGetItemSlotForRemove: ; 0x0206EDB0 push {r4-r5, lr} sub sp, #0xc add r4, r2, #0x0 @@ -331,25 +342,25 @@ FUN_0206EDB0: ; 0x0206EDB0 add r2, sp, #0x8 add r3, sp, #0x4 add r5, r1, #0x0 - bl FUN_0206EBD4 + bl GetItemPocket ldr r0, [sp, #0x8] ldr r1, [sp, #0x4] add r2, r5, #0x0 add r3, r4, #0x0 - bl FUN_0206ED80 + bl BagGetItemSlotForRemoveInternal add sp, #0xc pop {r4-r5, pc} .balign 4 - thumb_func_start FUN_0206EDD4 -FUN_0206EDD4: ; 0x0206EDD4 + thumb_func_start BagTakeItem +BagTakeItem: ; 0x0206EDD4 push {r4-r7, lr} sub sp, #0xc add r6, r0, #0x0 add r7, r1, #0x0 add r5, r2, #0x0 add r4, r3, #0x0 - bl FUN_0206EDB0 + bl BagGetItemSlotForRemove str r0, [sp, #0x8] cmp r0, #0x0 bne _0206EDF0 @@ -372,22 +383,22 @@ _0206EE02: add r1, r7, #0x0 add r2, sp, #0x8 add r3, sp, #0x4 - bl FUN_0206EBD4 + bl GetItemPocket ldr r0, [sp, #0x8] ldr r1, [sp, #0x4] - bl FUN_0206EF48 + bl PocketCompaction mov r0, #0x1 add sp, #0xc pop {r4-r7, pc} .balign 4 - thumb_func_start FUN_0206EE20 -FUN_0206EE20: ; 0x0206EE20 + thumb_func_start BagTakeItem2 +BagTakeItem2: ; 0x0206EE20 push {r4-r6, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r4, r3, #0x0 - bl FUN_0206ED80 + bl BagGetItemSlotForRemoveInternal cmp r0, #0x0 bne _0206EE34 mov r0, #0x0 @@ -404,14 +415,14 @@ _0206EE34: _0206EE44: add r0, r5, #0x0 add r1, r6, #0x0 - bl FUN_0206EF48 + bl PocketCompaction mov r0, #0x1 pop {r4-r6, pc} - thumb_func_start FUN_0206EE50 -FUN_0206EE50: ; 0x0206EE50 + thumb_func_start BagHasItem +BagHasItem: ; 0x0206EE50 push {r3, lr} - bl FUN_0206EDB0 + bl BagGetItemSlotForRemove cmp r0, #0x0 beq _0206EE5E mov r0, #0x1 @@ -421,8 +432,8 @@ _0206EE5E: pop {r3, pc} .balign 4 - thumb_func_start FUN_0206EE64 -FUN_0206EE64: ; 0x0206EE64 + thumb_func_start BagPocketNotEmpty +BagPocketNotEmpty: ; 0x0206EE64 cmp r1, #0x7 bhi _0206EEC4 add r1, r1, r1 @@ -508,12 +519,12 @@ _0206EEEC: .word 0x000006BC _0206EEF0: .word 0x000006F8 _0206EEF4: .word 0x000004EC - thumb_func_start FUN_0206EEF8 -FUN_0206EEF8: ; 0x0206EEF8 + thumb_func_start BagGetQuantity +BagGetQuantity: ; 0x0206EEF8 push {r3, lr} add r3, r2, #0x0 mov r2, #0x1 - bl FUN_0206EDB0 + bl BagGetItemSlotForRemove cmp r0, #0x0 bne _0206EF0A mov r0, #0x0 @@ -523,11 +534,11 @@ _0206EF0A: pop {r3, pc} .balign 4 - thumb_func_start FUN_0206EF10 -FUN_0206EF10: ; 0x0206EF10 + thumb_func_start PocketGetQuantity +PocketGetQuantity: ; 0x0206EF10 push {r3, lr} mov r3, #0x1 - bl FUN_0206ED80 + bl BagGetItemSlotForRemoveInternal cmp r0, #0x0 bne _0206EF20 mov r0, #0x0 @@ -536,8 +547,8 @@ _0206EF20: ldrh r0, [r0, #0x2] pop {r3, pc} - thumb_func_start FUN_0206EF24 -FUN_0206EF24: ; 0x0206EF24 + thumb_func_start SwapItemSlots +SwapItemSlots: ; 0x0206EF24 push {r3} sub sp, #0x4 ldrh r3, [r0, #0x0] @@ -557,8 +568,8 @@ FUN_0206EF24: ; 0x0206EF24 pop {r3} bx lr - thumb_func_start FUN_0206EF48 -FUN_0206EF48: ; 0x0206EF48 + thumb_func_start PocketCompaction +PocketCompaction: ; 0x0206EF48 push {r4-r7, lr} sub sp, #0xc str r0, [sp, #0x0] @@ -583,7 +594,7 @@ _0206EF6A: bne _0206EF78 add r0, r4, #0x0 add r1, r5, #0x0 - bl FUN_0206EF24 + bl SwapItemSlots _0206EF78: add r6, r6, #0x1 add r5, r5, #0x4 @@ -602,8 +613,8 @@ _0206EF8E: pop {r4-r7, pc} .balign 4 - thumb_func_start FUN_0206EF94 -FUN_0206EF94: ; 0x0206EF94 + thumb_func_start SortPocket +SortPocket: ; 0x0206EF94 push {r4-r7, lr} sub sp, #0xc str r0, [sp, #0x0] @@ -636,7 +647,7 @@ _0206EFB6: _0206EFCA: add r0, r4, #0x0 add r1, r5, #0x0 - bl FUN_0206EF24 + bl SwapItemSlots _0206EFD2: add r6, r6, #0x1 add r5, r5, #0x4 @@ -654,14 +665,14 @@ _0206EFE8: add sp, #0xc pop {r4-r7, pc} - thumb_func_start FUN_0206EFEC -FUN_0206EFEC: ; 0x0206EFEC + thumb_func_start CreateBagView +CreateBagView: ; 0x0206EFEC push {r3-r7, lr} add r5, r0, #0x0 lsl r0, r2, #0x18 add r7, r1, #0x0 lsr r0, r0, #0x18 - bl FUN_0206E2F0 + bl BagView_new add r6, r0, #0x0 ldrb r0, [r7, #0x0] mov r4, #0x0 @@ -694,7 +705,7 @@ _0206F026: add r1, r5, r1 mov r2, #0x7 lsr r3, r3, #0x18 - bl FUN_0206E330 + bl BagView_setitem b _0206F0B6 _0206F03A: lsl r3, r4, #0x18 @@ -702,7 +713,7 @@ _0206F03A: add r1, r5, #0x0 mov r2, #0x0 lsr r3, r3, #0x18 - bl FUN_0206E330 + bl BagView_setitem b _0206F0B6 _0206F04A: ldr r1, _0206F0C4 ; =0x000005BC @@ -711,7 +722,7 @@ _0206F04A: add r1, r5, r1 mov r2, #0x4 lsr r3, r3, #0x18 - bl FUN_0206E330 + bl BagView_setitem b _0206F0B6 _0206F05C: ldr r1, _0206F0C8 ; =0x0000051C @@ -720,7 +731,7 @@ _0206F05C: add r1, r5, r1 mov r2, #0x1 lsr r3, r3, #0x18 - bl FUN_0206E330 + bl BagView_setitem b _0206F0B6 _0206F06E: ldr r1, _0206F0CC ; =0x000006BC @@ -729,7 +740,7 @@ _0206F06E: add r1, r5, r1 mov r2, #0x2 lsr r3, r3, #0x18 - bl FUN_0206E330 + bl BagView_setitem b _0206F0B6 _0206F080: ldr r1, _0206F0D0 ; =0x000006F8 @@ -738,7 +749,7 @@ _0206F080: add r1, r5, r1 mov r2, #0x6 lsr r3, r3, #0x18 - bl FUN_0206E330 + bl BagView_setitem b _0206F0B6 _0206F092: ldr r1, _0206F0D4 ; =0x000004EC @@ -747,7 +758,7 @@ _0206F092: add r1, r5, r1 mov r2, #0x5 lsr r3, r3, #0x18 - bl FUN_0206E330 + bl BagView_setitem b _0206F0B6 _0206F0A4: mov r1, #0xd7 @@ -757,7 +768,7 @@ _0206F0A4: add r1, r5, r1 mov r2, #0x3 lsr r3, r3, #0x18 - bl FUN_0206E330 + bl BagView_setitem _0206F0B6: add r4, r4, #0x1 ldrb r0, [r7, r4] @@ -773,8 +784,8 @@ _0206F0CC: .word 0x000006BC _0206F0D0: .word 0x000006F8 _0206F0D4: .word 0x000004EC - thumb_func_start FUN_0206F0D8 -FUN_0206F0D8: ; 0x0206F0D8 + thumb_func_start BagGetPocketSlotN +BagGetPocketSlotN: ; 0x0206F0D8 cmp r1, #0x7 bhi _0206F136 add r1, r1, r1 @@ -847,8 +858,8 @@ _0206F14C: .word 0x000006BC _0206F150: .word 0x000006F8 _0206F154: .word 0x000004EC - thumb_func_start FUN_0206F158 -FUN_0206F158: ; 0x0206F158 + thumb_func_start Sav2_Bag_get +Sav2_Bag_get: ; 0x0206F158 ldr r3, _0206F160 ; =SavArray_get mov r1, #0x3 bx r3 diff --git a/arm9/asm/save.s b/arm9/asm/save.s index 4278bd36..ee94c018 100644 --- a/arm9/asm/save.s +++ b/arm9/asm/save.s @@ -21,7 +21,7 @@ UNK_020EE700: ; 0x020EE700 .word 0x00, 0x00, FUN_0202376C, FUN_02023770 .word 0x01, 0x00, Sav2_PlayerData_sizeof, Sav2_PlayerData_init .word 0x02, 0x00, SavArray_Party_sizeof, SavArray_Party_init - .word 0x03, 0x00, FUN_0206EB80, FUN_0206EBA0 + .word 0x03, 0x00, Sav2_Bag_sizeof, Sav2_Bag_init .word 0x04, 0x00, SavArray_Flags_sizeof, SavArray_Flags_init .word 0x05, 0x00, FUN_0204BE14, FUN_0204BE18 .word 0x06, 0x00, FUN_02034D7C, FUN_02034D98 @@ -63,8 +63,8 @@ UNK_021C59C8: ; 0x021C59C8 .text - thumb_func_start FUN_0202254C -FUN_0202254C: ; 0x0202254C + thumb_func_start SaveBlock2_new +SaveBlock2_new: ; 0x0202254C push {r4, lr} ldr r1, _020225E0 ; =0x000204A8 mov r0, #0x1 @@ -89,7 +89,7 @@ FUN_0202254C: ; 0x0202254C bl MATHi_CRC16InitTable ldr r0, _020225EC ; =0x00020224 add r0, r4, r0 - bl FUN_020230E4 + bl SaveBlock2_InitSubstructs ldr r0, _020225F0 ; =0x00020464 ldr r1, _020225EC ; =0x00020224 add r0, r4, r0 @@ -1638,8 +1638,8 @@ _020230BE: _020230DC: .word UNK_020EE6DC _020230E0: .word UNK_020EE700 - thumb_func_start FUN_020230E4 -FUN_020230E4: ; 0x020230E4 + thumb_func_start SaveBlock2_InitSubstructs +SaveBlock2_InitSubstructs: ; 0x020230E4 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 @@ -1831,6 +1831,7 @@ _02023244: .word UNK_020EE6DC thumb_func_start FUN_02023248 FUN_02023248: ; 0x02023248 + ; void FUN_02023248(struct SaveBlock2 * sav2, void * data, u16 id, u32 size) push {r3-r5, lr} ldr r5, _0202326C ; =0x20060623 add r4, r1, r3 diff --git a/arm9/asm/scrcmd.s b/arm9/asm/scrcmd.s index 7ffad1f7..8eb78baf 100644 --- a/arm9/asm/scrcmd.s +++ b/arm9/asm/scrcmd.s @@ -5091,9 +5091,9 @@ FUN_0203C1AC: ; 0x0203C1AC add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get mov r1, #0x4 - bl FUN_0206EE64 + bl BagPocketNotEmpty cmp r0, #0x0 bne _0203C1E0 mov r0, #0x1 @@ -8033,9 +8033,9 @@ FUN_0203D958: ; 0x0203D958 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get add r1, r6, #0x0 - bl FUN_0206EE64 + bl BagPocketNotEmpty strh r0, [r4, #0x0] mov r0, #0x0 pop {r4-r6, pc} diff --git a/arm9/asm/scrcmd_12.s b/arm9/asm/scrcmd_12.s index 2566edfd..325e85b5 100644 --- a/arm9/asm/scrcmd_12.s +++ b/arm9/asm/scrcmd_12.s @@ -755,7 +755,7 @@ FUN_02043308: ; 0x02043308 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02042D04 @@ -766,7 +766,7 @@ FUN_02043308: ; 0x02043308 lsr r1, r1, #0x10 mov r2, #0x1 mov r3, #0x20 - bl FUN_0206ED24 + bl BagHasSpaceForItem pop {r3-r5, pc} .balign 4 @@ -775,7 +775,7 @@ FUN_02043330: ; 0x02043330 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02042D04 @@ -786,7 +786,7 @@ FUN_02043330: ; 0x02043330 lsr r1, r1, #0x10 mov r2, #0x1 mov r3, #0x20 - bl FUN_0206ED38 + bl BagAddItem pop {r3-r5, pc} .balign 4 @@ -827,7 +827,7 @@ FUN_02043394: ; 0x02043394 add r4, r1, #0x0 ldr r0, [r0, #0xc] add r6, r2, #0x0 - bl FUN_0206F158 + bl Sav2_Bag_get ldr r0, [r5, #0x0] bl FUN_02042D04 ldr r0, [r0, #0x0] @@ -1099,7 +1099,7 @@ FUN_020435A0: ; 0x020435A0 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02042D04 @@ -1107,7 +1107,7 @@ FUN_020435A0: ; 0x020435A0 add r0, r4, #0x0 mov r2, #0x1 mov r3, #0x20 - bl FUN_0206ED24 + bl BagHasSpaceForItem pop {r3-r5, pc} .balign 4 _020435C0: .word 0x000001C6 @@ -1117,7 +1117,7 @@ FUN_020435C4: ; 0x020435C4 push {r3-r5, lr} add r4, r0, #0x0 ldr r0, [r4, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02042D04 @@ -1128,7 +1128,7 @@ FUN_020435C4: ; 0x020435C4 add r0, r5, #0x0 mov r2, #0x1 mov r3, #0x20 - bl FUN_0206ED38 + bl BagAddItem add r0, r4, #0x0 mov r1, #0x0 bl FUN_0205F478 @@ -1172,7 +1172,7 @@ FUN_02043634: ; 0x02043634 add r4, r1, #0x0 ldr r0, [r0, #0xc] add r6, r2, #0x0 - bl FUN_0206F158 + bl Sav2_Bag_get ldr r0, [r5, #0x0] bl FUN_02042D04 mov r2, #0x53 @@ -1191,7 +1191,7 @@ FUN_02043660: ; 0x02043660 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02042D04 @@ -1200,7 +1200,7 @@ FUN_02043660: ; 0x02043660 lsl r1, r1, #0x2 mov r2, #0x1 mov r3, #0x20 - bl FUN_0206ED24 + bl BagHasSpaceForItem pop {r3-r5, pc} .balign 4 @@ -1209,7 +1209,7 @@ FUN_02043684: ; 0x02043684 push {r3-r5, lr} add r4, r0, #0x0 ldr r0, [r4, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02042D04 @@ -1221,7 +1221,7 @@ FUN_02043684: ; 0x02043684 lsl r1, r1, #0x2 mov r2, #0x1 mov r3, #0x20 - bl FUN_0206ED38 + bl BagAddItem add r0, r4, #0x0 mov r1, #0x1 bl FUN_0205F478 @@ -1263,7 +1263,7 @@ FUN_020436F0: ; 0x020436F0 add r4, r1, #0x0 ldr r0, [r0, #0xc] add r6, r2, #0x0 - bl FUN_0206F158 + bl Sav2_Bag_get ldr r0, [r5, #0x0] bl FUN_02042D04 mov r2, #0x53 @@ -1282,7 +1282,7 @@ FUN_0204371C: ; 0x0204371C push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02042D04 @@ -1290,7 +1290,7 @@ FUN_0204371C: ; 0x0204371C add r0, r4, #0x0 mov r2, #0x1 mov r3, #0x20 - bl FUN_0206ED24 + bl BagHasSpaceForItem pop {r3-r5, pc} .balign 4 _0204373C: .word 0x000001C7 @@ -1300,7 +1300,7 @@ FUN_02043740: ; 0x02043740 push {r3-r5, lr} add r4, r0, #0x0 ldr r0, [r4, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02042D04 @@ -1311,7 +1311,7 @@ FUN_02043740: ; 0x02043740 add r0, r5, #0x0 mov r2, #0x1 mov r3, #0x20 - bl FUN_0206ED38 + bl BagAddItem add r0, r4, #0x0 mov r1, #0x2 bl FUN_0205F478 @@ -1355,7 +1355,7 @@ FUN_020437B0: ; 0x020437B0 add r4, r1, #0x0 ldr r0, [r0, #0xc] add r6, r2, #0x0 - bl FUN_0206F158 + bl Sav2_Bag_get ldr r0, [r5, #0x0] bl FUN_02042D04 mov r2, #0x53 diff --git a/arm9/asm/scrcmd_19.s b/arm9/asm/scrcmd_19.s index 0e036f08..c22bcd47 100644 --- a/arm9/asm/scrcmd_19.s +++ b/arm9/asm/scrcmd_19.s @@ -32,11 +32,11 @@ FUN_02045268: ; 0x02045268 add r5, r4, #0x0 _02045288: ldr r0, [r6, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get lsl r1, r4, #0x2 ldrh r1, [r7, r1] mov r2, #0x4 - bl FUN_0206EEF8 + bl BagGetQuantity add r0, r5, r0 lsl r0, r0, #0x10 lsr r5, r0, #0x10 @@ -133,11 +133,11 @@ FUN_02045308: ; 0x02045308 _02045358: ldr r0, [r7, #0xc] lsl r5, r4, #0x2 - bl FUN_0206F158 + bl Sav2_Bag_get ldr r1, _02045394 ; =UNK_020F450C mov r2, #0x4 ldrh r1, [r1, r5] - bl FUN_0206EEF8 + bl BagGetQuantity add r0, r6, r0 lsl r0, r0, #0x10 lsr r6, r0, #0x10 diff --git a/arm9/asm/scrcmd_22.s b/arm9/asm/scrcmd_22.s index d0563546..718e511d 100644 --- a/arm9/asm/scrcmd_22.s +++ b/arm9/asm/scrcmd_22.s @@ -33,11 +33,11 @@ FUN_02045784: ; 0x02045784 bl GetVarPointer add r4, r0, #0x0 ldr r0, [r5, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get add r1, r6, #0x0 add r2, r7, #0x0 mov r3, #0x4 - bl FUN_0206ED38 + bl BagAddItem strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r7, pc} @@ -72,11 +72,11 @@ FUN_020457DC: ; 0x020457DC bl GetVarPointer add r4, r0, #0x0 ldr r0, [r5, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get add r1, r6, #0x0 add r2, r7, #0x0 mov r3, #0x4 - bl FUN_0206EDD4 + bl BagTakeItem strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r7, pc} @@ -111,11 +111,11 @@ FUN_02045834: ; 0x02045834 bl GetVarPointer add r4, r0, #0x0 ldr r0, [r5, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get add r1, r6, #0x0 add r2, r7, #0x0 mov r3, #0x4 - bl FUN_0206ED24 + bl BagHasSpaceForItem strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r7, pc} @@ -150,11 +150,11 @@ FUN_0204588C: ; 0x0204588C bl GetVarPointer add r4, r0, #0x0 ldr r0, [r5, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get add r1, r6, #0x0 add r2, r7, #0x0 mov r3, #0xb - bl FUN_0206EE50 + bl BagHasItem strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r7, pc} diff --git a/arm9/asm/unk_02035068.s b/arm9/asm/unk_02035068.s index 093c06e6..8fc11a20 100644 --- a/arm9/asm/unk_02035068.s +++ b/arm9/asm/unk_02035068.s @@ -10,8 +10,9 @@ UNK_020F2A8C: ; 0x020F2A8C .global UNK_020F2A90 UNK_020F2A90: ; 0x020F2A90 - .byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0xFF, 0x00, 0x00, 0x00 + .byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0xFF + .balign 4, 0 .global UNK_020F2A9C UNK_020F2A9C: ; 0x020F2A9C .byte 0x00, 0x01, 0x02, 0x04, 0x03, 0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00 @@ -2088,14 +2089,14 @@ _020360EA: lsl r1, r1, #0x2 str r0, [r4, r1] ldr r0, [r5, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get add r7, r0, #0x0 ldr r0, [r5, #0xc] bl Sav2_PlayerData_GetProfileAddr ldr r1, _0203627C ; =UNK_020F2A90 add r0, r7, #0x0 mov r2, #0xb - bl FUN_0206EFEC + bl CreateBagView mov r1, #0x7e lsl r1, r1, #0x2 add r3, r5, #0x0 @@ -2325,7 +2326,7 @@ FUN_020362E4: ; 0x020362E4 bl FUN_0204652C add r4, r0, #0x0 mov r0, #0xb - bl FUN_0206E2F0 + bl BagView_new str r0, [sp, #0x8] bl FUN_0206E308 mov r1, #0x7e @@ -2402,7 +2403,7 @@ _0203638A: bl SavArray_PlayerParty_get str r0, [r5, #0x0] ldr r0, [r6, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get str r0, [r5, #0x4] ldr r0, [r6, #0xc] bl FUN_02025838 @@ -2501,7 +2502,7 @@ _02036474: ldr r0, [sp, #0x4] str r0, [r5, #0x0] ldr r0, [r6, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get str r0, [r5, #0x4] ldr r0, [r6, #0xc] bl FUN_02025838 @@ -2994,7 +2995,7 @@ FUN_0203684C: ; 0x0203684C bl SavArray_PlayerParty_get str r0, [r5, #0x0] ldr r0, [r6, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get str r0, [r5, #0x4] ldr r0, [r6, #0xc] bl FUN_02025838 @@ -3097,7 +3098,7 @@ FUN_0203695C: ; 0x0203695C str r0, [r6, r1] ldr r0, [sp, #0x4] ldr r0, [r0, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get str r0, [sp, #0x0] mov r0, #0x7e lsl r0, r0, #0x2 @@ -3115,7 +3116,7 @@ _0203699A: add r1, r7, #0x0 mov r2, #0x1 mov r3, #0xb - bl FUN_0206EE50 + bl BagHasItem cmp r0, #0x1 bne _020369C6 mov r0, #0x7e @@ -3523,7 +3524,7 @@ FUN_02036CEC: ; 0x02036CEC bl SavArray_PlayerParty_get str r0, [r4, #0x0] ldr r0, [r5, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get str r0, [r4, #0x4] ldr r0, [r5, #0xc] bl FUN_02025838 @@ -3668,7 +3669,7 @@ FUN_02036E08: ; 0x02036E08 bl FUN_02024DA0 str r0, [sp, #0x2c] ldr r0, [r4, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get str r0, [sp, #0x30] ldr r0, [r4, #0xc] bl FUN_02029FC8 @@ -3705,7 +3706,7 @@ _02036E9E: bl FUN_02024DA0 str r0, [sp, #0x3c] ldr r0, [r4, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get str r0, [sp, #0x40] ldr r0, [r4, #0xc] bl FUN_02029FC8 diff --git a/arm9/asm/unk_020377F0.s b/arm9/asm/unk_020377F0.s index 48d33a87..5f7dd028 100644 --- a/arm9/asm/unk_020377F0.s +++ b/arm9/asm/unk_020377F0.s @@ -10,165 +10,197 @@ .section .rodata + .balign 4 .global UNK_020F2BC4 UNK_020F2BC4: ; 0x020F2BC4 - .byte 0x04, 0xFF, 0x00, 0x00 + .byte 0x04, 0xFF + .balign 4 .global UNK_020F2BC8 UNK_020F2BC8: ; 0x020F2BC8 - .byte 0x00, 0xFF, 0x00, 0x00 + .byte 0x00, 0xFF + .balign 4 .global UNK_020F2BCC UNK_020F2BCC: ; 0x020F2BCC - .byte 0x03, 0x05, 0x08, 0x00 + .byte 0x03, 0x05, 0x08 + .balign 4 .global UNK_020F2BD0 UNK_020F2BD0: ; 0x020F2BD0 - .byte 0x00, 0x01, 0x02, 0x04, 0x03, 0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00 + .byte 0x00, 0x01, 0x02, 0x04, 0x03, 0x05, 0x06, 0x07, 0x08 + .balign 4 .global UNK_020F2BDC UNK_020F2BDC: ; 0x020F2BDC - .byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0xFF, 0x00, 0x00, 0x00 + .byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0xFF + .balign 4 .global UNK_020F2BE8 UNK_020F2BE8: ; 0x020F2BE8 .byte 0x00, 0x05, 0x01, 0x01, 0x04, 0x04, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03 + .balign 4 .global UNK_020F2BF4 UNK_020F2BF4: ; 0x020F2BF4 .word MOD70_021D74E0, MOD70_021D758C, MOD70_021D755C, SDK_OVERLAY_MODULE_70_ID + .balign 4 .global UNK_020F2C04 UNK_020F2C04: ; 0x020F2C04 .word MOD84_021D74E0, MOD84_021D7748, MOD84_021D76A4, SDK_OVERLAY_MODULE_84_ID + .balign 4 .global UNK_020F2C14 UNK_020F2C14: ; 0x020F2C14 .word MOD85_021D74E0, MOD85_021D75A0, MOD85_021D7644, SDK_OVERLAY_MODULE_85_ID + .balign 4 .global UNK_020F2C24 UNK_020F2C24: ; 0x020F2C24 .word MOD58_021D9A20, MOD58_021D9B8C, MOD58_021D9BF0, SDK_OVERLAY_MODULE_58_ID + .balign 4 .global UNK_020F2C34 UNK_020F2C34: ; 0x020F2C34 .word MOD64_021D74E0, MOD64_021D7640, MOD64_021D76F4, SDK_OVERLAY_MODULE_64_ID + .balign 4 .global UNK_020F2C44 UNK_020F2C44: ; 0x020F2C44 .word MOD16_021D74E0, MOD16_021D7588, MOD16_021D7614, SDK_OVERLAY_MODULE_16_ID + .balign 4 .global UNK_020F2C54 UNK_020F2C54: ; 0x020F2C54 .word MOD57_021D74E0, MOD57_021D7714, MOD57_021D7944, SDK_OVERLAY_MODULE_57_ID + .balign 4 .global UNK_020F2C64 UNK_020F2C64: ; 0x020F2C64 .word MOD80_0222DFD0, MOD80_0222E134, MOD80_0222E25C, SDK_OVERLAY_MODULE_80_ID + .balign 4 .global UNK_020F2C74 UNK_020F2C74: ; 0x020F2C74 .word MOD82_0222DA34, MOD82_0222DB7C, MOD82_0222DC50, SDK_OVERLAY_MODULE_82_ID + .balign 4 .global UNK_020F2C84 UNK_020F2C84: ; 0x020F2C84 .word MOD76_021D74E0, MOD76_021D7568, MOD76_021D761C, SDK_OVERLAY_MODULE_76_ID + .balign 4 .global UNK_020F2C94 UNK_020F2C94: ; 0x020F2C94 .word MOD53_021D74E0, MOD53_021D7654, MOD53_021D7764, SDK_OVERLAY_MODULE_53_ID + .balign 4 .global UNK_020F2CA4 UNK_020F2CA4: ; 0x020F2CA4 .word MOD81_02237E40, MOD81_02238064, MOD81_02238004, SDK_OVERLAY_MODULE_81_ID + .balign 4 .global UNK_020F2CB4 UNK_020F2CB4: ; 0x020F2CB4 .word MOD74_021D74E0, MOD74_021D755C, MOD74_021D7540, SDK_OVERLAY_MODULE_74_ID + .balign 4 .global UNK_020F2CC4 UNK_020F2CC4: ; 0x020F2CC4 .word MOD60_021D74E0, MOD60_021D76B8, MOD60_021D75B0, SDK_OVERLAY_MODULE_60_ID + .balign 4 .global UNK_020F2CD4 UNK_020F2CD4: ; 0x020F2CD4 .word MOD66_021D74E0, MOD66_021D7538, MOD66_021D75B0, SDK_OVERLAY_MODULE_66_ID + .balign 4 .global UNK_020F2CE4 UNK_020F2CE4: ; 0x020F2CE4 .word MOD15_021D74E0, MOD15_021D7558, MOD15_021D7608, SDK_OVERLAY_MODULE_15_ID + .balign 4 .global UNK_020F2CF4 UNK_020F2CF4: ; 0x020F2CF4 .word MOD14_021D74E0, MOD14_021D754C, MOD14_021D75B8, SDK_OVERLAY_MODULE_14_ID + .balign 4 .global UNK_020F2D04 UNK_020F2D04: ; 0x020F2D04 .word MOD54_021D74E0, MOD54_021D764C, MOD54_021D7740, SDK_OVERLAY_MODULE_54_ID + .balign 4 .global UNK_020F2D14 UNK_020F2D14: ; 0x020F2D14 .word MOD77_021D74E0, MOD77_021D7604, MOD77_021D7BAC, SDK_OVERLAY_MODULE_77_ID + .balign 4 .global UNK_020F2D24 UNK_020F2D24: ; 0x020F2D24 .word MOD67_021D74E0, MOD67_021D75D0, MOD67_021D7624, SDK_OVERLAY_MODULE_67_ID + + .balign 4 + .global UNK_020F2D34 +UNK_020F2D34: ; 0x020F2D34 .word MOD55_021D7614, MOD55_021D76BC, MOD55_021D77AC, SDK_OVERLAY_MODULE_55_ID + .balign 4 .global UNK_020F2D44 UNK_020F2D44: ; 0x020F2D44 .word MOD68_021D74E0, MOD68_021D75D8, MOD68_021D762C, SDK_OVERLAY_MODULE_68_ID + .balign 4 .global UNK_020F2D54 UNK_020F2D54: ; 0x020F2D54 .word MOD55_021D756C, MOD55_021D76BC, MOD55_021D77AC, SDK_OVERLAY_MODULE_55_ID + .balign 4 .global UNK_020F2D64 UNK_020F2D64: ; 0x020F2D64 .word HOF_OverlayInit, HOF_OverlayRun, HOF_OverlayTeardown, SDK_OVERLAY_MODULE_69_ID + .balign 4 .global UNK_020F2D74 UNK_020F2D74: ; 0x020F2D74 .word MOD75_021E6BA0, MOD75_021E6D6C, MOD75_021E6F00, SDK_OVERLAY_MODULE_75_ID + .balign 4 .global UNK_020F2D84 UNK_020F2D84: ; 0x020F2D84 .word MOD78_021D74E0, MOD78_021D75D0, MOD78_021D76B8, SDK_OVERLAY_MODULE_78_ID + .balign 4 .global UNK_020F2D94 UNK_020F2D94: ; 0x020F2D94 .word FUN_020377F0, FUN_020377F4, FUN_02037808, SDK_OVERLAY_MODULE_11_ID + .balign 4 .global UNK_020F2DA4 UNK_020F2DA4: ; 0x020F2DA4 .word MOD86_021D74E0, MOD86_021D758C, MOD86_021D76B0, SDK_OVERLAY_MODULE_86_ID .section .data + .balign 4 .global UNK_02105DB8 UNK_02105DB8: ; 0x02105DB8 - .byte 0x00, 0x00, 0x00, 0x00 + .word 0 ; u8 * + .balign 4 .global UNK_02105DBC UNK_02105DBC: ; 0x02105DBC - .word MOD71_0222D5C0 - .word MOD71_0222D9C8 - .word MOD71_0222E438 - .word SDK_OVERLAY_MODULE_71_ID + .word MOD71_0222D5C0, MOD71_0222D9C8, MOD71_0222E438, SDK_OVERLAY_MODULE_71_ID + .balign 4 .global UNK_02105DCC UNK_02105DCC: ; 0x02105DCC - .word MOD17_021DDB58 - .word MOD17_021DDC30 - .word MOD17_021DDCF4 - .word SDK_OVERLAY_MODULE_17_ID + .word MOD17_021DDB58, MOD17_021DDC30, MOD17_021DDCF4, SDK_OVERLAY_MODULE_17_ID + .balign 4 .global UNK_02105DDC UNK_02105DDC: ; 0x02105DDC - .word MOD17_021D83E4 - .word MOD17_021D84F0 - .word MOD17_021D8738 - .word SDK_OVERLAY_MODULE_17_ID + .word MOD17_021D83E4, MOD17_021D84F0, MOD17_021D8738, SDK_OVERLAY_MODULE_17_ID .text @@ -232,10 +264,10 @@ FUN_02037844: ; 0x02037844 add r5, r0, #0x0 ldr r0, [r5, #0xc] add r6, r1, #0x0 - bl FUN_0206F158 + bl Sav2_Bag_get ldr r1, _02037898 ; =UNK_020F2BDC mov r2, #0xb - bl FUN_0206EFEC + bl CreateBagView add r3, r5, #0x0 add r3, #0x94 ldr r1, [r5, #0xc] @@ -272,7 +304,7 @@ FUN_0203789C: ; 0x0203789C add r5, r0, #0x0 ldr r0, [r5, #0xc] add r4, r1, #0x0 - bl FUN_0206F158 + bl Sav2_Bag_get add r6, r0, #0x0 cmp r4, #0x0 beq _020378B4 @@ -296,7 +328,7 @@ _020378C8: add r0, r6, #0x0 ldr r1, [r1, #0x0] mov r2, #0x20 - bl FUN_0206EFEC + bl CreateBagView add r3, r5, #0x0 add r3, #0x94 ldr r1, [r5, #0xc] @@ -400,7 +432,7 @@ FUN_0203797C: ; 0x0203797C bl SavArray_PlayerParty_get str r0, [r4, #0x0] ldr r0, [r5, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get str r0, [r4, #0x4] ldr r0, [r5, #0xc] bl FUN_02025838 @@ -1612,7 +1644,7 @@ _020382F6: bl FUN_02024DA0 add r7, r0, #0x0 ldr r0, [r5, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get str r0, [sp, #0x28] ldr r0, [r5, #0xc] bl FUN_02029FC8 @@ -2131,7 +2163,7 @@ FUN_020386E0: ; 0x020386E0 bl FUN_02033830 str r0, [r4, #0x38] ldr r0, [r5, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get str r0, [r4, #0x30] add r0, r5, #0x0 add r1, sp, #0x0 diff --git a/arm9/asm/unk_020476CC.s b/arm9/asm/unk_020476CC.s index 0936ad10..37b92559 100644 --- a/arm9/asm/unk_020476CC.s +++ b/arm9/asm/unk_020476CC.s @@ -106,7 +106,7 @@ _02047774: cmp r6, #0x4 blt _02047774 add r0, r5, #0x0 - bl FUN_0206EB88 + bl Sav2_Bag_new mov r1, #0x42 lsl r1, r1, #0x2 str r0, [r7, r1] @@ -248,7 +248,7 @@ FUN_02047814: ; 0x02047814 mov r1, #0x4 mov r2, #0x14 add r3, r6, #0x0 - bl FUN_0206ED38 + bl BagAddItem add r0, r6, #0x0 bl AllocMonZeroed add r6, r0, #0x0 @@ -474,7 +474,7 @@ FUN_02047A78: ; 0x02047A78 bl SavArray_PlayerParty_get add r7, r0, #0x0 ldr r0, [r4, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get str r0, [sp, #0x0] ldr r0, [r4, #0xc] bl FUN_02024DA0 @@ -503,7 +503,7 @@ FUN_02047A78: ; 0x02047A78 lsl r1, r1, #0x2 ldr r0, [sp, #0x0] ldr r1, [r5, r1] - bl FUN_0206EBB4 + bl Sav2_Bag_copy mov r1, #0x11 lsl r1, r1, #0x4 ldr r0, [sp, #0x4] @@ -620,7 +620,7 @@ FUN_02047BC0: ; 0x02047BC0 str r0, [sp, #0x14] ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get str r0, [sp, #0x10] ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] @@ -702,7 +702,7 @@ _02047C98: lsl r1, r1, #0x2 ldr r0, [sp, #0x10] ldr r1, [r6, r1] - bl FUN_0206EBB4 + bl Sav2_Bag_copy mov r1, #0x11 lsl r1, r1, #0x4 ldr r0, [sp, #0xc] @@ -787,7 +787,7 @@ FUN_02047D48: ; 0x02047D48 str r0, [sp, #0x20] ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get str r0, [sp, #0x1c] ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] @@ -886,7 +886,7 @@ _02047E2C: lsl r1, r1, #0x2 ldr r0, [sp, #0x1c] ldr r1, [r5, r1] - bl FUN_0206EBB4 + bl Sav2_Bag_copy mov r1, #0x11 lsl r1, r1, #0x4 ldr r0, [sp, #0x18] @@ -1016,7 +1016,7 @@ FUN_02047F38: ; 0x02047F38 bl SavArray_PlayerParty_get add r7, r0, #0x0 ldr r0, [r5, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get str r0, [sp, #0x0] ldr r0, [r5, #0xc] bl FUN_02024DA0 @@ -1037,7 +1037,7 @@ FUN_02047F38: ; 0x02047F38 lsl r0, r0, #0x2 ldr r0, [r4, r0] ldr r1, [sp, #0x0] - bl FUN_0206EBB4 + bl Sav2_Bag_copy mov r0, #0x11 lsl r0, r0, #0x4 ldr r0, [r4, r0] @@ -1060,7 +1060,7 @@ FUN_02047FA4: ; 0x02047FA4 ldr r0, [r5, #0xc] bl SavArray_PlayerParty_get ldr r0, [r5, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get ldr r0, [r5, #0xc] bl FUN_02024DA0 add r1, r0, #0x0 diff --git a/arm9/asm/unk_0204B34C.s b/arm9/asm/unk_0204B34C.s index ac1c53ff..8276cb17 100644 --- a/arm9/asm/unk_0204B34C.s +++ b/arm9/asm/unk_0204B34C.s @@ -288,7 +288,7 @@ FUN_0204B4FC: ; 0x0204B4FC add r0, r7, #0x0 bl FUN_0205C374 ldr r0, [r5, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get add r4, r0, #0x0 ldr r0, [sp, #0x4] bl FUN_0204B34C @@ -297,7 +297,7 @@ FUN_0204B4FC: ; 0x0204B4FC add r0, r4, #0x0 lsr r2, r2, #0x10 mov r3, #0x4 - bl FUN_0206ED38 + bl BagAddItem add sp, #0xc pop {r4-r7, pc} .balign 4 diff --git a/arm9/asm/unk_02050E48.s b/arm9/asm/unk_02050E48.s index 74026711..51c42247 100644 --- a/arm9/asm/unk_02050E48.s +++ b/arm9/asm/unk_02050E48.s @@ -98,7 +98,7 @@ FUN_02050ED4: ; 0x02050ED4 str r0, [r4, #0x0] ldr r0, [r5, #0x24] ldr r0, [r0, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get str r0, [r4, #0x4] add r0, r4, #0x0 mov r1, #0x0 diff --git a/arm9/asm/unk_0205CE48.s b/arm9/asm/unk_0205CE48.s index 631cedd6..d492b9a9 100644 --- a/arm9/asm/unk_0205CE48.s +++ b/arm9/asm/unk_0205CE48.s @@ -291,7 +291,7 @@ FUN_0205D024: ; 0x0205D024 bl SavArray_PlayerParty_get str r0, [r4, #0x0] ldr r0, [r5, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get str r0, [r4, #0x4] ldr r0, [r5, #0xc] bl FUN_02025838 @@ -774,7 +774,7 @@ FUN_0205D400: ; 0x0205D400 bl SavArray_PlayerParty_get str r0, [r4, #0x0] ldr r0, [r5, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get str r0, [r4, #0x4] ldr r0, [r5, #0xc] bl FUN_02025838 @@ -1146,11 +1146,11 @@ FUN_0205D6BC: ; 0x0205D6BC mov r0, #0xa strh r0, [r4, #0x2a] ldr r0, [r6, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get ldrh r1, [r5, #0x4] mov r2, #0x1 mov r3, #0xb - bl FUN_0206EDD4 + bl BagTakeItem pop {r3-r7, pc} .balign 4 _0205D710: .word MOD05_021F57F0 @@ -1389,7 +1389,7 @@ FUN_0205D8B8: ; 0x0205D8B8 str r0, [r4, #0x10] ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get bl FUN_0206EBC4 add r2, r0, #0x0 ldr r0, [r5, #0x0] @@ -1505,7 +1505,7 @@ FUN_0205D9A8: ; 0x0205D9A8 bl SavArray_PlayerParty_get str r0, [r4, #0x0] ldr r0, [r5, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get str r0, [r4, #0x4] ldr r0, [r5, #0xc] bl FUN_02025838 @@ -1571,11 +1571,11 @@ FUN_0205DA3C: ; 0x0205DA3C mov r0, #0xa strh r0, [r4, #0x2a] ldr r0, [r6, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get ldrh r1, [r5, #0x4] mov r2, #0x1 mov r3, #0xb - bl FUN_0206EDD4 + bl BagTakeItem pop {r4-r6, pc} nop _0205DA7C: .word FUN_0205DAAC @@ -1704,7 +1704,7 @@ _0205DB54: pop {r3-r7, pc} _0205DB66: ldr r0, [r5, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get bl FUN_0206EBC4 lsl r0, r0, #0x10 lsr r0, r0, #0x10 diff --git a/arm9/asm/unk_0205DD18.s b/arm9/asm/unk_0205DD18.s index f5987509..deac026a 100644 --- a/arm9/asm/unk_0205DD18.s +++ b/arm9/asm/unk_0205DD18.s @@ -1037,11 +1037,11 @@ FUN_0205E4A4: ; 0x0205E4A4 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get ldr r1, _0205E4D4 ; =0x000001AF mov r2, #0x1 mov r3, #0x4 - bl FUN_0206EE50 + bl BagHasItem cmp r0, #0x1 bne _0205E4D0 ldr r0, [r4, #0xc] diff --git a/arm9/asm/unk_0205FA2C.s b/arm9/asm/unk_0205FA2C.s index fc7d7a17..ae0d9d3f 100644 --- a/arm9/asm/unk_0205FA2C.s +++ b/arm9/asm/unk_0205FA2C.s @@ -32,7 +32,7 @@ FUN_0205FA2C: ; 0x0205FA2C bl SavArray_PlayerParty_get str r0, [r4, #0x0] add r0, r6, #0x0 - bl FUN_0206F158 + bl Sav2_Bag_get str r0, [r4, #0x4] add r0, r4, #0x0 mov r1, #0x0 diff --git a/arm9/asm/unk_02060CCC.s b/arm9/asm/unk_02060CCC.s index 11145e7b..98c412a7 100644 --- a/arm9/asm/unk_02060CCC.s +++ b/arm9/asm/unk_02060CCC.s @@ -1726,12 +1726,12 @@ FUN_020618E0: ; 0x020618E0 FUN_020618EC: ; 0x020618EC push {r3, lr} ldr r0, [r0, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get mov r1, #0x6b lsl r1, r1, #0x2 mov r2, #0x1 mov r3, #0x20 - bl FUN_0206EE50 + bl BagHasItem pop {r3, pc} .balign 4 @@ -2083,12 +2083,12 @@ FUN_02061B80: ; 0x02061B80 FUN_02061BB4: ; 0x02061BB4 push {r3, lr} ldr r0, [r0, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get mov r1, #0x6b lsl r1, r1, #0x2 mov r2, #0x1 mov r3, #0x20 - bl FUN_0206EE50 + bl BagHasItem pop {r3, pc} .balign 4 diff --git a/arm9/asm/unk_020653EC.s b/arm9/asm/unk_020653EC.s index 452513ab..d1a47bb3 100644 --- a/arm9/asm/unk_020653EC.s +++ b/arm9/asm/unk_020653EC.s @@ -800,7 +800,7 @@ _020659DC: add r1, r4, r1 ldrh r1, [r1, #0x22] ldr r2, [r4, #0x0] - bl FUN_0206EEF8 + bl BagGetQuantity cmp r0, #0x0 ldr r1, _02065AE8 ; =0x0000013B beq _02065A1A @@ -1612,7 +1612,7 @@ FUN_02066070: ; 0x02066070 str r0, [sp, #0x4] str r0, [r6, r1] add r0, r4, #0x0 - bl FUN_0206F158 + bl Sav2_Bag_get mov r1, #0x1b lsl r1, r1, #0x4 str r0, [r6, r1] @@ -1762,7 +1762,7 @@ FUN_020661A0: ; 0x020661A0 ldr r0, [r5, r0] ldr r3, [r5, #0x0] mov r2, #0x1 - bl FUN_0206ED24 + bl BagHasSpaceForItem add r6, r0, #0x0 beq _020661D4 mov r0, #0x1b @@ -1771,7 +1771,7 @@ FUN_020661A0: ; 0x020661A0 ldr r0, [r5, r0] ldr r3, [r5, #0x0] mov r2, #0x1 - bl FUN_0206ED38 + bl BagAddItem _020661D4: mov r0, #0x6b lsl r0, r0, #0x2 @@ -1826,7 +1826,7 @@ FUN_020661F8: ; 0x020661F8 ldr r0, [r5, r0] ldr r3, [r5, #0x0] mov r2, #0x1 - bl FUN_0206ED24 + bl BagHasSpaceForItem cmp r0, #0x0 beq _0206625E mov r0, #0x1b @@ -1835,7 +1835,7 @@ FUN_020661F8: ; 0x020661F8 ldr r0, [r5, r0] ldr r3, [r5, #0x0] mov r2, #0x1 - bl FUN_0206ED38 + bl BagAddItem _0206625E: ldrb r1, [r5, #0x18] add r0, r5, #0x0 @@ -2383,7 +2383,7 @@ _02066676: lsl r0, r0, #0x2 ldr r0, [r5, r0] bl FUN_020377AC - bl FUN_0206F158 + bl Sav2_Bag_get str r0, [r4, #0x4] mov r0, #0x5b lsl r0, r0, #0x2 diff --git a/arm9/asm/unk_0206C700.s b/arm9/asm/unk_0206C700.s index 94b4217b..0cf92670 100644 --- a/arm9/asm/unk_0206C700.s +++ b/arm9/asm/unk_0206C700.s @@ -2081,7 +2081,7 @@ _0206D854: ldr r0, [r4, #0x4c] ldr r2, [r4, #0x5c] mov r1, #0x4 - bl FUN_0206EEF8 + bl BagGetQuantity cmp r0, #0x0 beq _0206D86C ldr r0, [r4, #0x24] @@ -2216,7 +2216,7 @@ _0206D8EA: ldr r3, [r4, #0x5c] mov r1, #0x4 mov r2, #0x1 - bl FUN_0206EDD4 + bl BagTakeItem add sp, #0x20 pop {r4-r6, pc} _0206D9A0: diff --git a/arm9/asm/unk_0206E2F0.s b/arm9/asm/unk_0206E2F0.s index 264f9294..d2649dcb 100644 --- a/arm9/asm/unk_0206E2F0.s +++ b/arm9/asm/unk_0206E2F0.s @@ -3,8 +3,8 @@ .text - thumb_func_start FUN_0206E2F0 -FUN_0206E2F0: ; 0x0206E2F0 + thumb_func_start BagView_new +BagView_new: ; 0x0206E2F0 push {r4, lr} mov r1, #0x78 bl AllocFromHeap @@ -44,8 +44,8 @@ FUN_0206E314: ; 0x0206E314 pop {r4-r6, pc} .balign 4 - thumb_func_start FUN_0206E330 -FUN_0206E330: ; 0x0206E330 + thumb_func_start BagView_setitem +BagView_setitem: ; 0x0206E330 push {r3-r4} mov r4, #0xc mul r4, r3 diff --git a/arm9/asm/unk_0206F3FC.s b/arm9/asm/unk_0206F3FC.s index 4dc1be07..6b3d7016 100644 --- a/arm9/asm/unk_0206F3FC.s +++ b/arm9/asm/unk_0206F3FC.s @@ -5415,7 +5415,7 @@ _02071E5A: mov r3, #0xc ldr r0, [r1, #0x4] ldrh r1, [r1, #0x24] - bl FUN_0206EDD4 + bl BagTakeItem add r0, r4, #0x0 mov r1, #0x1a bl GetItemAttr_PreloadedItemData @@ -5666,7 +5666,7 @@ FUN_02072080: ; 0x02072080 ldr r1, [r4, r0] ldr r0, [r1, #0x4] ldrh r1, [r1, #0x24] - bl FUN_0206EDD4 + bl BagTakeItem add r0, r5, #0x0 mov r1, #0x6 add r2, sp, #0x0 @@ -5709,7 +5709,7 @@ FUN_020720E0: ; 0x020720E0 lsr r1, r1, #0x10 mov r2, #0x1 mov r3, #0xc - bl FUN_0206ED38 + bl BagAddItem add r0, r5, #0x0 mov r1, #0x6 add r2, sp, #0x1c @@ -5825,7 +5825,7 @@ _020721B0: mov r2, #0x1 ldr r0, [r0, #0x4] mov r3, #0xc - bl FUN_0206ED38 + bl BagAddItem cmp r0, #0x0 bne _0207220C add r0, r5, #0x0 @@ -5854,7 +5854,7 @@ _0207220C: ldr r0, [r0, #0x4] mov r2, #0x1 mov r3, #0xc - bl FUN_0206EDD4 + bl BagTakeItem add r0, r5, #0x0 add r1, r7, #0x0 add r2, r6, #0x0 @@ -6024,7 +6024,7 @@ _02072388: ldr r0, [r0, #0x4] mov r2, #0x1 mov r3, #0xc - bl FUN_0206ED38 + bl BagAddItem ldr r2, _0207241C ; =0x0000069C mov r1, #0x54 ldr r0, [r5, r2] diff --git a/arm9/asm/unk_02073DA8.s b/arm9/asm/unk_02073DA8.s index cf11907a..2f6de2fc 100644 --- a/arm9/asm/unk_02073DA8.s +++ b/arm9/asm/unk_02073DA8.s @@ -230,7 +230,7 @@ _02073F66: ldr r0, [r0, #0x4] mov r2, #0x1 mov r3, #0xc - bl FUN_0206ED38 + bl BagAddItem cmp r0, #0x1 bne _0207400A ldr r0, _02074054 ; =0x000005A4 @@ -617,7 +617,7 @@ FUN_020742A8: ; 0x020742A8 ldr r0, [r0, #0x4] mov r2, #0x1 mov r3, #0xc - bl FUN_0206ED38 + bl BagAddItem cmp r0, #0x1 bne _0207431A ldr r0, _02074334 ; =0x000005A4 diff --git a/arm9/asm/unk_0207550C.s b/arm9/asm/unk_0207550C.s index d2c20b95..fac7015d 100644 --- a/arm9/asm/unk_0207550C.s +++ b/arm9/asm/unk_0207550C.s @@ -1744,7 +1744,7 @@ _020763B2: mov r3, #0xc ldr r0, [r1, #0x4] ldrh r1, [r1, #0x24] - bl FUN_0206EDD4 + bl BagTakeItem ldr r0, _020763F0 ; =0x000005A4 mov r1, #0x0 ldr r0, [r4, r0] @@ -3114,7 +3114,7 @@ FUN_02076F2C: ; 0x02076F2C mov r3, #0xc ldr r0, [r1, #0x4] ldrh r1, [r1, #0x24] - bl FUN_0206EDD4 + bl BagTakeItem _02076F98: add r0, r5, #0x0 bl FUN_020772CC @@ -3392,7 +3392,7 @@ _0207716A: mov r3, #0xc ldr r0, [r1, #0x4] ldrh r1, [r1, #0x24] - bl FUN_0206EDD4 + bl BagTakeItem ldr r0, _0207723C ; =0x000005EC bl FUN_020054C8 b _02077204 diff --git a/arm9/asm/unk_020859C0.s b/arm9/asm/unk_020859C0.s index 410345d4..8f1aa043 100644 --- a/arm9/asm/unk_020859C0.s +++ b/arm9/asm/unk_020859C0.s @@ -635,7 +635,7 @@ _02085E66: ldr r0, [r7, #0x1c] str r0, [r4, #0x0] ldr r0, [r6, #0x10] - bl FUN_0206F158 + bl Sav2_Bag_get str r0, [r4, #0x4] ldr r0, [r6, #0x10] bl FUN_02025838 diff --git a/arm9/asm/unk_02087D00.s b/arm9/asm/unk_02087D00.s index 46f48b7a..5676baf3 100644 --- a/arm9/asm/unk_02087D00.s +++ b/arm9/asm/unk_02087D00.s @@ -66,7 +66,7 @@ FUN_02087D00: ; 0x02087D00 bl SavArray_PlayerParty_get str r0, [r7, #0x10] add r0, r4, #0x0 - bl FUN_0206F158 + bl Sav2_Bag_get str r0, [r7, #0x14] add r0, r4, #0x0 bl Sav2_PlayerData_GetOptionsAddr diff --git a/arm9/asm/unk_0208890C.s b/arm9/asm/unk_0208890C.s index 92bfc9b5..58ffb9d8 100644 --- a/arm9/asm/unk_0208890C.s +++ b/arm9/asm/unk_0208890C.s @@ -30,7 +30,7 @@ FUN_0208890C: ; 0x0208890C bl Sav2_PlayerData_GetProfileAddr str r0, [r4, #0x10] add r0, r5, #0x0 - bl FUN_0206F158 + bl Sav2_Bag_get str r0, [r4, #0x14] add r0, r5, #0x0 bl Sav2_PlayerData_GetOptionsAddr diff --git a/arm9/asm/unk_02088AAC.s b/arm9/asm/unk_02088AAC.s index b8a83eab..612547e0 100644 --- a/arm9/asm/unk_02088AAC.s +++ b/arm9/asm/unk_02088AAC.s @@ -131,7 +131,7 @@ FUN_02088B4C: ; 0x02088B4C ldr r1, _02088BA4 ; =UNK_020FD6F4 ldr r0, [r0, #0x14] ldr r2, [r5, #0x0] - bl FUN_0206EFEC + bl CreateBagView add r4, r0, #0x0 ldrh r0, [r5, #0x6] lsl r0, r0, #0x18 @@ -177,7 +177,7 @@ _02088BBA: ldr r0, [r4, #0x0] lsl r0, r0, #0x18 lsr r0, r0, #0x18 - bl FUN_0206E2F0 + bl BagView_new add r5, r0, #0x0 bl FUN_0206E308 add r2, r0, #0x0 @@ -228,7 +228,7 @@ _02088C1E: ldr r3, [r4, #0x0] lsr r1, r1, #0x10 mov r2, #0x1 - bl FUN_0206EDD4 + bl BagTakeItem cmp r0, #0x0 bne _02088C38 bl ErrorHandling @@ -271,7 +271,7 @@ _02088C70: ldr r3, [r5, #0x0] add r1, r7, #0x0 mov r2, #0x1 - bl FUN_0206EE50 + bl BagHasItem cmp r0, #0x1 bne _02088C9A ldr r0, [r5, #0x18] diff --git a/arm9/global.inc b/arm9/global.inc index c8eaec71..a64545ad 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -1433,7 +1433,7 @@ .extern FUN_02022528 .extern FUN_02022534 .extern FUN_02022540 -.extern FUN_0202254C +.extern SaveBlock2_new .extern FUN_020225F8 .extern SavArray_get .extern FUN_02022634 @@ -4975,10 +4975,10 @@ .extern FUN_0206E2AC .extern FUN_0206E2E0 .extern FUN_0206E2E8 -.extern FUN_0206E2F0 +.extern BagView_new .extern FUN_0206E308 .extern FUN_0206E314 -.extern FUN_0206E330 +.extern BagView_setitem .extern FUN_0206E340 .extern FUN_0206E354 .extern FUN_0206E358 @@ -5011,23 +5011,23 @@ .extern ItemIsBitter .extern LoadAllItemData .extern GetItemDataPtrFromArray -.extern FUN_0206EB80 -.extern FUN_0206EB88 -.extern FUN_0206EBA0 -.extern FUN_0206EBB4 +.extern Sav2_Bag_sizeof +.extern Sav2_Bag_new +.extern Sav2_Bag_init +.extern Sav2_Bag_copy .extern FUN_0206EBC4 .extern FUN_0206EBCC -.extern FUN_0206ED24 -.extern FUN_0206ED38 -.extern FUN_0206EDD4 -.extern FUN_0206EE20 -.extern FUN_0206EE50 -.extern FUN_0206EE64 -.extern FUN_0206EEF8 -.extern FUN_0206EF10 -.extern FUN_0206EFEC -.extern FUN_0206F0D8 -.extern FUN_0206F158 +.extern BagHasSpaceForItem +.extern BagAddItem +.extern BagTakeItem +.extern BagTakeItem2 +.extern BagHasItem +.extern BagPocketNotEmpty +.extern BagGetQuantity +.extern PocketGetQuantity +.extern CreateBagView +.extern BagGetPocketSlotN +.extern Sav2_Bag_get .extern FUN_0206F164 .extern FUN_0206F17C .extern FUN_0206F18C diff --git a/arm9/modules/05/asm/mod05_021E1374.s b/arm9/modules/05/asm/mod05_021E1374.s index 018f4d8c..f4fc02fe 100644 --- a/arm9/modules/05/asm/mod05_021E1374.s +++ b/arm9/modules/05/asm/mod05_021E1374.s @@ -396,11 +396,11 @@ MOD05_021E1654: ; 0x021E1654 bl FUN_0205F43C add r5, r0, #0 ldr r0, [r7, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get ldr r1, _021E16C4 ; =0x000001BB mov r2, #1 mov r3, #4 - bl FUN_0206EE50 + bl BagHasItem cmp r0, #1 bne _021E1692 cmp r6, #0x64 diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s index bcebfd49..cb2a013d 100644 --- a/arm9/modules/05/asm/module_05.s +++ b/arm9/modules/05/asm/module_05.s @@ -26807,11 +26807,11 @@ _021EFCB0: pop {r3, r4, r5, r6, pc} _021EFCC4: ldr r0, [r6, #0x34] - bl FUN_0206F158 + bl Sav2_Bag_get ldr r1, _021EFD3C ; =0x000001B5 mov r2, #1 mov r3, #4 - bl FUN_0206EE50 + bl BagHasItem cmp r0, #1 bne _021EFCFE add r0, r6, #0 diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s index 164e4d16..5ba98611 100644 --- a/arm9/modules/06/asm/module_06.s +++ b/arm9/modules/06/asm/module_06.s @@ -8162,7 +8162,7 @@ MOD06_0223D3D0: ; 0x0223D3D0 cmp r0, #0 bne _0223D456 ldr r0, [r5, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get mov r1, #0x21 lsl r1, r1, #4 str r0, [r4, r1] @@ -9811,7 +9811,7 @@ MOD06_0223E1D8: ; 0x0223E1D8 ldrh r1, [r5, r1] ldr r0, [r5, r0] mov r2, #0xb - bl FUN_0206EEF8 + bl BagGetQuantity add r4, r0, #0 b _0223E214 _0223E1FA: @@ -10005,7 +10005,7 @@ MOD06_0223E384: ; 0x0223E384 ldrh r2, [r4, r2] ldr r0, [r4, r0] mov r3, #0xb - bl FUN_0206ED24 + bl BagHasSpaceForItem b _0223E3D2 _0223E3A8: cmp r0, #1 @@ -10507,7 +10507,7 @@ _0223E7B2: ldrh r2, [r4, r2] ldr r0, [r4, r0] mov r3, #0xb - bl FUN_0206ED38 + bl BagAddItem b _0223E7F6 _0223E7D0: cmp r0, #1 @@ -10622,7 +10622,7 @@ _0223E88A: mov r1, #0xc mov r2, #1 mov r3, #0xb - bl FUN_0206ED38 + bl BagAddItem cmp r0, #1 bne _0223E902 add r0, r5, #0 @@ -11160,10 +11160,10 @@ MOD06_0223ECF0: ; 0x0223ECF0 add r4, r0, #0 bl MOD06_0223D7B8 ldr r0, [r5, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get ldr r1, _0223ED48 ; =0x0224F47C mov r2, #0xb - bl FUN_0206EFEC + bl CreateBagView add r3, r5, #0 str r0, [r4, #4] add r3, #0x94 @@ -41161,7 +41161,7 @@ MOD06_0224D70C: ; 0x0224D70C bl FUN_0202708C str r0, [r4, #0xc] add r0, r6, #0 - bl FUN_0206F158 + bl Sav2_Bag_get str r0, [r4, #0x10] mov r2, #0x81 ldr r3, [r4, #0x18] @@ -42756,7 +42756,7 @@ MOD06_0224E410: ; 0x0224E410 add r1, #0x95 lsl r1, r1, #0x10 lsr r1, r1, #0x10 - bl FUN_0206EEF8 + bl BagGetQuantity ldr r1, [r5, #0xc] add r3, r0, #0 add r2, r1, r4 @@ -42870,7 +42870,7 @@ MOD06_0224E4E4: ; 0x0224E4E4 add r1, #0x95 lsl r1, r1, #0x10 lsr r1, r1, #0x10 - bl FUN_0206EEF8 + bl BagGetQuantity add r1, r5, r4 ldr r1, [r1, #8] cmp r0, r1 @@ -42912,7 +42912,7 @@ MOD06_0224E520: ; 0x0224E520 add r0, r6, #0 lsr r1, r1, #0x10 lsr r2, r2, #0x10 - bl FUN_0206EDD4 + bl BagTakeItem cmp r0, #1 beq _0224E550 bl ErrorHandling diff --git a/arm9/modules/09/asm/module_09.s b/arm9/modules/09/asm/module_09.s index 115ee3cb..97479bc1 100644 --- a/arm9/modules/09/asm/module_09.s +++ b/arm9/modules/09/asm/module_09.s @@ -3802,7 +3802,7 @@ MOD09_02213C84: ; 0x02213C84 add r1, r4, #0 mov r2, #1 add r3, r7, #0 - bl FUN_0206EDD4 + bl BagTakeItem _02213CA8: add r0, r5, #0 bl MOD11_02230218 @@ -14295,7 +14295,7 @@ MOD09_0221944C: ; 0x0221944C add r1, r4, #0 mov r2, #1 add r3, r7, #0 - bl FUN_0206EDD4 + bl BagTakeItem add r0, r5, #0 bl MOD11_02230218 add r1, r4, #0 @@ -15275,7 +15275,7 @@ _02219C48: ldr r0, [r3, #8] ldr r3, [r3, #0xc] mov r2, #1 - bl FUN_0206EE50 + bl BagHasItem cmp r0, #0 bne _02219C62 ldr r1, [r4] @@ -15351,7 +15351,7 @@ _02219CCA: lsl r2, r2, #0x10 ldr r1, [sp, #8] lsr r2, r2, #0x10 - bl FUN_0206F0D8 + bl BagGetPocketSlotN add r5, r0, #0 beq _02219D3C ldrh r0, [r5] diff --git a/arm9/modules/11/asm/module_11_thumb1.s b/arm9/modules/11/asm/module_11_thumb1.s index 235b01d0..a5298ae9 100644 --- a/arm9/modules/11/asm/module_11_thumb1.s +++ b/arm9/modules/11/asm/module_11_thumb1.s @@ -1178,7 +1178,7 @@ _0222DFEC: lsl r1, r1, #2 ldr r0, [r4, #0x58] ldr r1, [r7, r1] - bl FUN_0206EBB4 + bl Sav2_Bag_copy ldr r0, [r4, #0x58] bl FreeToHeap mov r1, #0x11 @@ -1758,14 +1758,14 @@ _0222E532: cmp r7, #4 blt _0222E532 mov r0, #5 - bl FUN_0206EB88 + bl Sav2_Bag_new str r0, [r4, #0x58] mov r1, #0x42 ldr r0, [sp, #4] lsl r1, r1, #2 ldr r0, [r0, r1] ldr r1, [r4, #0x58] - bl FUN_0206EBB4 + bl Sav2_Bag_copy mov r0, #5 bl FUN_02023D6C str r0, [r4, #0x60] diff --git a/arm9/modules/11/asm/module_11_thumb2.s b/arm9/modules/11/asm/module_11_thumb2.s index b3f10c3b..06169afb 100644 --- a/arm9/modules/11/asm/module_11_thumb2.s +++ b/arm9/modules/11/asm/module_11_thumb2.s @@ -33053,7 +33053,7 @@ _0223F598: ldrh r1, [r6] mov r2, #1 mov r3, #5 - bl FUN_0206EDD4 + bl BagTakeItem add r0, r7, #0 bl MOD11_02230218 ldrh r1, [r6] diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s index 738bf429..9f0f7265 100644 --- a/arm9/modules/14/asm/module_14.s +++ b/arm9/modules/14/asm/module_14.s @@ -5807,10 +5807,10 @@ _021DA41E: mov r0, #0x47 lsl r0, r0, #2 ldr r0, [r4, r0] - bl FUN_0206F158 + bl Sav2_Bag_get ldr r1, _021DA5D8 ; =MOD14_021E6264 mov r2, #9 - bl FUN_0206EFEC + bl CreateBagView mov r1, #0x85 lsl r1, r1, #2 str r0, [r4, r1] @@ -5869,12 +5869,12 @@ _021DA498: mov r0, #0x47 lsl r0, r0, #2 ldr r0, [r4, r0] - bl FUN_0206F158 + bl Sav2_Bag_get lsl r1, r6, #0x10 lsr r1, r1, #0x10 mov r2, #1 mov r3, #9 - bl FUN_0206EDD4 + bl BagTakeItem ldr r1, _021DA5E4 ; =MOD14_021E6A00 add r0, r4, #0 ldr r1, [r1, #8] @@ -6122,14 +6122,14 @@ _021DA6E4: mov r0, #0x47 lsl r0, r0, #2 ldr r0, [r4, r0] - bl FUN_0206F158 + bl Sav2_Bag_get ldr r1, _021DA7B4 ; =MOD14_021E6A00 mov r2, #1 ldr r1, [r1, #4] mov r3, #9 lsl r1, r1, #0x10 lsr r1, r1, #0x10 - bl FUN_0206ED38 + bl BagAddItem cmp r0, #0 beq _021DA72A add r0, r4, #0 @@ -6344,14 +6344,14 @@ _021DA8BA: mov r0, #0x47 lsl r0, r0, #2 ldr r0, [r4, r0] - bl FUN_0206F158 + bl Sav2_Bag_get ldr r1, _021DA9C0 ; =MOD14_021E6A00 mov r2, #1 ldr r1, [r1] mov r3, #9 lsl r1, r1, #0x10 lsr r1, r1, #0x10 - bl FUN_0206ED38 + bl BagAddItem cmp r0, #0 beq _021DA908 add r0, r4, #0 diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s index 3fbc762e..92b27707 100644 --- a/arm9/modules/18/asm/module_18.s +++ b/arm9/modules/18/asm/module_18.s @@ -34906,7 +34906,7 @@ _0224A5A6: add r4, r0, #0 ldr r0, [r5, #0xc] ldr r0, [r0, #0xc] - bl FUN_0206F158 + bl Sav2_Bag_get add r6, r0, #0 ldr r0, _0224A694 ; =0x000005DC bl FUN_020054C8 @@ -34915,7 +34915,7 @@ _0224A5A6: lsr r1, r1, #0x10 mov r2, #1 mov r3, #4 - bl FUN_0206ED38 + bl BagAddItem cmp r0, #0 beq _0224A62A ldr r0, _0224A69C ; =0x022513F8 diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s index 9c4c00c9..91abbba9 100644 --- a/arm9/modules/71/asm/module_71.s +++ b/arm9/modules/71/asm/module_71.s @@ -4681,11 +4681,11 @@ _0222FC2C: pop {r3, r4, r5, r6, r7, pc} _0222FC70: ldr r0, [r6, #4] - bl FUN_0206F158 + bl Sav2_Bag_get ldr r1, _0222FCFC ; =0x000001B5 mov r2, #1 mov r3, #0x1a - bl FUN_0206EE50 + bl BagHasItem cmp r0, #1 bne _0222FCAA ldr r0, _0222FCE4 ; =0x0000366C diff --git a/arm9/modules/73/asm/module_73.s b/arm9/modules/73/asm/module_73.s index b9d19767..800b7543 100644 --- a/arm9/modules/73/asm/module_73.s +++ b/arm9/modules/73/asm/module_73.s @@ -1159,7 +1159,7 @@ _021D7E68: ldr r0, [r6, #0x10] mov r1, #4 ldr r0, [r0, #0x14] - bl FUN_0206EE64 + bl BagPocketNotEmpty cmp r0, #0 bne _021D7E8A ldr r0, _021D7F44 ; =0x0000063C diff --git a/arm9/modules/75/asm/module_75.s b/arm9/modules/75/asm/module_75.s index 59d25787..22f2d1a4 100644 --- a/arm9/modules/75/asm/module_75.s +++ b/arm9/modules/75/asm/module_75.s @@ -473,7 +473,7 @@ MOD75_021E6FA4: ; 0x021E6FA4 add r0, #0xc4 ldr r0, [r0] ldr r0, [r0] - bl FUN_0206F158 + bl Sav2_Bag_get add r1, r4, #0 add r1, #0xc8 str r0, [r1] @@ -5004,7 +5004,7 @@ MOD75_021E92BC: ; 0x021E92BC ldrh r2, [r2] ldrh r3, [r4, r3] sub r1, r1, #3 - bl FUN_0206EE20 + bl BagTakeItem2 add r0, r4, #0 add r0, #0xc4 ldr r3, [r0] @@ -5226,7 +5226,7 @@ MOD75_021E947C: ; 0x021E947C add r2, #0x66 ldrh r2, [r2] sub r1, r1, #3 - bl FUN_0206EF10 + bl PocketGetQuantity cmp r0, #1 bne _021E94BA add r0, r4, #0 @@ -5954,7 +5954,7 @@ _021E9A6E: add r2, #0x66 ldrh r2, [r2] sub r1, r1, #3 - bl FUN_0206EF10 + bl PocketGetQuantity cmp r0, #1 bne _021E9AF4 mov r0, #0x45 diff --git a/arm9/src/main.c b/arm9/src/main.c index 3de65c45..e5e03343 100644 --- a/arm9/src/main.c +++ b/arm9/src/main.c @@ -32,8 +32,8 @@ extern void FUN_02022294(void); extern void FUN_0201259C(void); extern void FUN_02002C14(void); extern void FUN_02002C50(int, int); -extern struct SaveBlock2 * FUN_0202254C(void); -extern u32 FUN_02029EF8(struct SaveBlock2 *); +extern struct SaveBlock2 * SaveBlock2_new(void); +extern void * FUN_02029EF8(struct SaveBlock2 *); extern void FUN_02020AFC(void); extern int FUN_020337E8(int); extern void FUN_02034188(int, int); @@ -73,7 +73,7 @@ THUMB_FUNC void NitroMain(void) FUN_02002C50(1, 3); FUN_02002C50(3, 3); gBacklightTop.unk18 = -1; - gBacklightTop.unk20 = FUN_0202254C(); + gBacklightTop.unk20 = SaveBlock2_new(); InitSoundData(FUN_02029EF8(gBacklightTop.unk20), Sav2_PlayerData_GetOptionsAddr(gBacklightTop.unk20)); FUN_02020AFC(); if (FUN_020337E8(3) == 3) @@ -87,15 +87,17 @@ THUMB_FUNC void NitroMain(void) switch (OS_GetResetParameter()) { case 0: + // Title Demo gBacklightTop.unk1C = 0; FUN_02000E7C(FS_OVERLAY_ID(MODULE_63), &MOD63_021DBE18); break; case 1: + // Reset transition? gBacklightTop.unk1C = 1; FUN_02000E7C(FS_OVERLAY_ID(MODULE_52), &MOD52_021D76C8); break; default: - ErrorHandling(); + GF_ASSERT(0); break; } } @@ -215,7 +217,7 @@ THUMB_FUNC void FUN_02000EE8(void) } } -extern void FUN_0200E3A0(int, int); +extern void FUN_0200E3A0(PMLCDTarget, int); extern BOOL FUN_02032DAC(void); extern void FUN_020225F8(void); extern void FUN_0202287C(void); @@ -223,8 +225,8 @@ extern void FUN_0202287C(void); // No Return THUMB_FUNC void DoSoftReset(u32 parameter) { - FUN_0200E3A0(0, 0x7FFF); - FUN_0200E3A0(1, 0x7FFF); + FUN_0200E3A0(PM_LCD_TOP, 0x7FFF); + FUN_0200E3A0(PM_LCD_BOTTOM, 0x7FFF); if (FUN_02032DAC()) { FUN_020225F8(); diff --git a/arm9/src/sound.c b/arm9/src/sound.c index d971872f..dd928287 100644 --- a/arm9/src/sound.c +++ b/arm9/src/sound.c @@ -25,7 +25,7 @@ extern void FUN_0200538C(int, int, int); extern BOOL FUN_02005404(void); extern void FUN_02005CFC(void); -void InitSoundData(u32 a0, struct Options * a1) +void InitSoundData(void * a0, struct Options * a1) { struct SoundData * sdat = GetSoundDataPointer(); SDAT_Init(); diff --git a/include/bag.h b/include/bag.h new file mode 100644 index 00000000..d4b4ff3c --- /dev/null +++ b/include/bag.h @@ -0,0 +1,19 @@ +#ifndef POKEDIAMOND_BAG_H +#define POKEDIAMOND_BAG_H + +#include "itemtool.h" + +struct Bag +{ + struct ItemSlot items[NUM_BAG_ITEMS]; + struct ItemSlot keyItems[NUM_BAG_KEY_ITEMS]; + struct ItemSlot TMsHMs[NUM_BAG_TMS_HMS]; + struct ItemSlot mail[NUM_BAG_MAIL]; + struct ItemSlot medicine[NUM_BAG_MEDICINE]; + struct ItemSlot berries[NUM_BAG_BERRIES]; + struct ItemSlot balls[NUM_BAG_BALLS]; + struct ItemSlot battleItems[NUM_BAG_BATTLE_ITEMS]; + u32 registeredItem; +}; + +#endif //POKEDIAMOND_BAG_H diff --git a/include/constants/items.h b/include/constants/items.h index 5fb58947..f1649cf3 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -10,6 +10,15 @@ #define POCKET_BATTLE_ITEMS 6 #define POCKET_KEY_ITEMS 7 +#define NUM_BAG_ITEMS 165 +#define NUM_BAG_KEY_ITEMS 50 +#define NUM_BAG_TMS_HMS 100 +#define NUM_BAG_MAIL 12 +#define NUM_BAG_MEDICINE 40 +#define NUM_BAG_BERRIES 64 +#define NUM_BAG_BALLS 15 +#define NUM_BAG_BATTLE_ITEMS 30 + #define HOLD_EFFECT_NONE 0 #define HOLD_EFFECT_HP_RESTORE 1 #define HOLD_EFFECT_DIALGA_BOOST 2 diff --git a/include/save_block_2.h b/include/save_block_2.h index fe052b1d..8ab96183 100644 --- a/include/save_block_2.h +++ b/include/save_block_2.h @@ -13,6 +13,15 @@ struct SavArrayHeader u16 field_E; }; +struct SavArrayFooter +{ + u32 magic; + u32 next; + u32 size; + u16 id; + u16 crc; +}; + struct SaveBlock2_Sub_20464 { u8 unk_0; u8 padding[3]; diff --git a/include/sound.h b/include/sound.h index 6e78bfa4..9cec824d 100644 --- a/include/sound.h +++ b/include/sound.h @@ -42,7 +42,7 @@ struct SoundData u32 unk_BCD3C; u64 unk_BCD40; u32 unk_BCD48; - u32 unk_BCD4C; + void * unk_BCD4C; u32 unk_BCD50; u32 unk_BCD54; u32 unk_BCD58; @@ -50,7 +50,7 @@ struct SoundData }; struct SoundData * GetSoundDataPointer(void); -void InitSoundData(u32 a0, struct Options * a1); +void InitSoundData(void * a0, struct Options * a1); void * FUN_02003D38(u32 a0); int FUN_02003F3C(int * a0); void FUN_02003F64(int a0); |