diff options
-rw-r--r-- | arm9/arm9.lsf | 2 | ||||
-rw-r--r-- | arm9/asm/unk_02035068.s | 4 | ||||
-rw-r--r-- | arm9/asm/unk_0206E2F0.s | 375 | ||||
-rw-r--r-- | arm9/asm/unk_02088AAC.s | 4 | ||||
-rw-r--r-- | arm9/global.inc | 6 | ||||
-rw-r--r-- | arm9/src/bag.c | 25 | ||||
-rw-r--r-- | arm9/src/bag_view.c | 211 | ||||
-rw-r--r-- | include/bag.h | 8 | ||||
-rw-r--r-- | include/bag_view.h | 56 |
9 files changed, 287 insertions, 404 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index 6241fe43..19c29a3c 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -264,7 +264,7 @@ Static arm9 Object unk_0206C700.o Object unk_0206DE24.o Object unk_0206E0F0.o - Object unk_0206E2F0.o + Object bag_view.o ##itemtool## Object itemtool.o diff --git a/arm9/asm/unk_02035068.s b/arm9/asm/unk_02035068.s index 5f456651..f2ef44dc 100644 --- a/arm9/asm/unk_02035068.s +++ b/arm9/asm/unk_02035068.s @@ -2326,9 +2326,9 @@ FUN_020362E4: ; 0x020362E4 bl FUN_0204652C add r4, r0, #0x0 mov r0, #0xb - bl BagView_new + bl BagView_New str r0, [sp, #0x8] - bl FUN_0206E308 + bl BagView_sizeof mov r1, #0x7e lsl r1, r1, #0x2 add r2, r0, #0x0 diff --git a/arm9/asm/unk_0206E2F0.s b/arm9/asm/unk_0206E2F0.s deleted file mode 100644 index d7460439..00000000 --- a/arm9/asm/unk_0206E2F0.s +++ /dev/null @@ -1,375 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start BagView_new -BagView_new: ; 0x0206E2F0 - push {r4, lr} - mov r1, #0x78 - bl AllocFromHeap - mov r1, #0x0 - mov r2, #0x78 - add r4, r0, #0x0 - bl memset - add r0, r4, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0206E308 -FUN_0206E308: ; 0x0206E308 - mov r0, #0x78 - bx lr - - thumb_func_start FUN_0206E30C -FUN_0206E30C: ; 0x0206E30C - add r0, #0x65 - strb r1, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_0206E314 -FUN_0206E314: ; 0x0206E314 - push {r4-r6, lr} - add r4, r1, #0x0 - add r1, r2, #0x0 - add r5, r0, #0x0 - add r6, r3, #0x0 - bl FUN_0206E30C - str r4, [r5, #0x0] - str r6, [r5, #0x6c] - mov r0, #0x0 - add r5, #0x66 - strh r0, [r5, #0x0] - pop {r4-r6, pc} - .balign 4 - - thumb_func_start BagView_setitem -BagView_setitem: ; 0x0206E330 - push {r3-r4} - mov r4, #0xc - mul r4, r3 - add r0, r0, r4 - str r1, [r0, #0x4] - strb r2, [r0, #0xc] - pop {r3-r4} - bx lr - - thumb_func_start FUN_0206E340 -FUN_0206E340: ; 0x0206E340 - add r1, r0, #0x0 - add r1, #0x76 - ldrh r2, [r1, #0x0] - mov r1, #0x1 - add r0, #0x76 - bic r2, r1 - mov r1, #0x1 - orr r1, r2 - strh r1, [r0, #0x0] - bx lr - - thumb_func_start FUN_0206E354 -FUN_0206E354: ; 0x0206E354 - str r1, [r0, #0x70] - bx lr - - thumb_func_start FUN_0206E358 -FUN_0206E358: ; 0x0206E358 - add r0, #0x74 - strb r1, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_0206E360 -FUN_0206E360: ; 0x0206E360 - add r2, r0, #0x0 - add r2, #0x76 - ldrh r3, [r2, #0x0] - ldr r2, _0206E378 ; =0xFFFF0001 - lsl r1, r1, #0x11 - and r2, r3 - lsr r1, r1, #0x10 - orr r1, r2 - add r0, #0x76 - strh r1, [r0, #0x0] - bx lr - nop -_0206E378: .word 0xFFFF0001 - - thumb_func_start FUN_0206E37C -FUN_0206E37C: ; 0x0206E37C - add r0, #0x66 - ldrh r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_0206E384 -FUN_0206E384: ; 0x0206E384 - add r0, #0x68 - ldrh r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_0206E38C -FUN_0206E38C: ; 0x0206E38C - add r0, #0x74 - ldrb r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_0206E394 -FUN_0206E394: ; 0x0206E394 - add r0, #0x75 - ldrb r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_0206E39C -FUN_0206E39C: ; 0x0206E39C - push {r3, lr} - bl Sav2_PlayerData_GetCoinsAddr - bl CheckCoins - pop {r3, pc} - - thumb_func_start FUN_0206E3A8 -FUN_0206E3A8: ; 0x0206E3A8 - push {r4-r6, lr} - bl Sav2_SealCase_get - add r6, r0, #0x0 - mov r5, #0x0 - mov r4, #0x1 -_0206E3B4: - add r0, r6, #0x0 - add r1, r4, #0x0 - bl FUN_02029E2C - add r4, r4, #0x1 - add r5, r5, r0 - cmp r4, #0x50 - bls _0206E3B4 - add r0, r5, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_0206E3C8 -FUN_0206E3C8: ; 0x0206E3C8 - push {r3, lr} - bl FUN_02027E24 - bl FUN_0202708C - bl FUN_02027168 - pop {r3, pc} - - thumb_func_start FUN_0206E3D8 -FUN_0206E3D8: ; 0x0206E3D8 - push {r3, lr} - bl FUN_02027E24 - bl FUN_0202708C - bl FUN_02027184 - pop {r3, pc} - - thumb_func_start FUN_0206E3E8 -FUN_0206E3E8: ; 0x0206E3E8 - push {r3, lr} - bl FUN_0202A8D8 - mov r1, #0x0 - add r2, r1, #0x0 - bl FUN_0202A3B4 - pop {r3, pc} - - thumb_func_start FUN_0206E3F8 -FUN_0206E3F8: ; 0x0206E3F8 - push {r4-r7, lr} - sub sp, #0xc - add r7, r0, #0x0 - str r1, [sp, #0x8] - add r5, r2, #0x0 - add r4, r3, #0x0 - mov r0, #0x0 - mov r1, #0x1a - mov r2, #0x7 - bl NewMsgDataFromNarc - add r6, r0, #0x0 - add r0, r4, #0x0 - bl ScrStrBufs_new - add r4, r0, #0x0 - cmp r5, #0x0 - bne _0206E428 - add r0, r6, #0x0 - mov r1, #0x63 - bl NewString_ReadMsgData - add r5, r0, #0x0 - b _0206E4FA -_0206E428: - mov r1, #0x1b - lsl r1, r1, #0x4 ; ITEM_POINT_CARD - cmp r5, r1 - bne _0206E454 - add r0, r6, #0x0 - mov r1, #0x61 - bl NewString_ReadMsgData - add r5, r0, #0x0 - add r0, r7, #0x0 - bl FUN_0206E3E8 - mov r1, #0x0 - add r2, r0, #0x0 - str r1, [sp, #0x0] - mov r0, #0x1 - str r0, [sp, #0x4] - add r0, r4, #0x0 - mov r3, #0x4 - bl BufferIntegerAsString - b _0206E4FA -_0206E454: - add r2, r1, #0x2 ; ITEM_SEAL_CASE - cmp r5, r2 - bne _0206E47E - add r0, r6, #0x0 - mov r1, #0x5c - bl NewString_ReadMsgData - add r5, r0, #0x0 - add r0, r7, #0x0 - bl FUN_0206E3A8 - mov r1, #0x0 - add r2, r0, #0x0 - str r1, [sp, #0x0] - mov r0, #0x1 - str r0, [sp, #0x4] - add r0, r4, #0x0 - mov r3, #0x4 - bl BufferIntegerAsString - b _0206E4FA -_0206E47E: - add r2, r1, #0x3 ; ITEM_FASHION_CASE - cmp r5, r2 - bne _0206E4C0 - add r0, r6, #0x0 - mov r1, #0x5d - bl NewString_ReadMsgData - add r5, r0, #0x0 - add r0, r7, #0x0 - bl FUN_0206E3C8 - mov r1, #0x0 - add r2, r0, #0x0 - str r1, [sp, #0x0] - mov r0, #0x1 - str r0, [sp, #0x4] - add r0, r4, #0x0 - mov r3, #0x3 - bl BufferIntegerAsString - add r0, r7, #0x0 - bl FUN_0206E3D8 - add r2, r0, #0x0 - mov r0, #0x0 - str r0, [sp, #0x0] - mov r1, #0x1 - add r0, r4, #0x0 - mov r3, #0x2 - str r1, [sp, #0x4] - bl BufferIntegerAsString - b _0206E4FA -_0206E4C0: - add r1, #0xc ; ITEM_COIN_CASE - cmp r5, r1 - bne _0206E4EA - add r0, r6, #0x0 - mov r1, #0x39 - bl NewString_ReadMsgData - add r5, r0, #0x0 - add r0, r7, #0x0 - bl FUN_0206E39C - mov r1, #0x0 - add r2, r0, #0x0 - str r1, [sp, #0x0] - mov r0, #0x1 - str r0, [sp, #0x4] - add r0, r4, #0x0 - mov r3, #0x5 - bl BufferIntegerAsString - b _0206E4FA -_0206E4EA: - bl ScrStrBufs_delete - add r0, r6, #0x0 - bl DestroyMsgData - add sp, #0xc - mov r0, #0x0 - pop {r4-r7, pc} -_0206E4FA: - ldr r1, [sp, #0x8] - add r0, r4, #0x0 - add r2, r5, #0x0 - bl StringExpandPlaceholders - add r0, r5, #0x0 - bl String_dtor - add r0, r4, #0x0 - bl ScrStrBufs_delete - add r0, r6, #0x0 - bl DestroyMsgData - mov r0, #0x1 - add sp, #0xc - pop {r4-r7, pc} - - thumb_func_start FUN_0206E51C -FUN_0206E51C: ; 0x0206E51C - push {r3-r7, lr} - add r5, r1, #0x0 - str r0, [sp, #0x0] - ldr r4, [sp, #0x18] - cmp r3, #0x1 - beq _0206E52E - cmp r3, #0x2 - beq _0206E54C - b _0206E56A -_0206E52E: - mov r0, #0x1 - mov r1, #0x1a - mov r2, #0x7 - add r3, r4, #0x0 - bl NewMsgDataFromNarc - add r4, r0, #0x0 - mov r1, #0x38 - add r2, r5, #0x0 - bl ReadMsgDataIntoString - add r0, r4, #0x0 - bl DestroyMsgData - pop {r3-r7, pc} -_0206E54C: - mov r0, #0x1 - mov r1, #0x1a - mov r2, #0x7 - add r3, r4, #0x0 - bl NewMsgDataFromNarc - add r4, r0, #0x0 - mov r1, #0x6f - add r2, r5, #0x0 - bl ReadMsgDataIntoString - add r0, r4, #0x0 - bl DestroyMsgData - pop {r3-r7, pc} -_0206E56A: - mov r0, #0x1 - mov r1, #0x1a - mov r2, #0xc7 - add r3, r4, #0x0 - bl NewMsgDataFromNarc - add r7, r0, #0x0 - add r0, r4, #0x0 - bl ScrStrBufs_new - add r4, r0, #0x0 - add r0, r7, #0x0 - mov r1, #0x24 - bl NewString_ReadMsgData - add r6, r0, #0x0 - ldr r2, [sp, #0x0] - add r0, r4, #0x0 - mov r1, #0x0 - bl BufferPlayersName - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl StringExpandPlaceholders - add r0, r6, #0x0 - bl String_dtor - add r0, r4, #0x0 - bl ScrStrBufs_delete - add r0, r7, #0x0 - bl DestroyMsgData - pop {r3-r7, pc} - .balign 4 diff --git a/arm9/asm/unk_02088AAC.s b/arm9/asm/unk_02088AAC.s index 1d8fe8cc..92ea42bc 100644 --- a/arm9/asm/unk_02088AAC.s +++ b/arm9/asm/unk_02088AAC.s @@ -177,9 +177,9 @@ _02088BBA: ldr r0, [r4, #0x0] lsl r0, r0, #0x18 lsr r0, r0, #0x18 - bl BagView_new + bl BagView_New add r5, r0, #0x0 - bl FUN_0206E308 + bl BagView_sizeof add r2, r0, #0x0 ldr r1, [r4, #0x18] add r0, r5, #0x0 diff --git a/arm9/global.inc b/arm9/global.inc index 72bdc677..144d5c43 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -4971,10 +4971,10 @@ .extern FUN_0206E2AC .extern FUN_0206E2E0 .extern FUN_0206E2E8 -.extern BagView_new -.extern FUN_0206E308 +.extern BagView_New +.extern BagView_sizeof .extern FUN_0206E314 -.extern BagView_setitem +.extern BagView_SetItem .extern FUN_0206E340 .extern FUN_0206E354 .extern FUN_0206E358 diff --git a/arm9/src/bag.c b/arm9/src/bag.c index 57609a8f..506f3ec1 100644 --- a/arm9/src/bag.c +++ b/arm9/src/bag.c @@ -296,40 +296,37 @@ void SortPocket(struct ItemSlot * slots, u32 count) } } -extern struct BagView * BagView_new(u8 heap_id); -extern void BagView_setitem(struct BagView * view, struct ItemSlot * slot, u8 pocket, u8 idx); - struct BagView * CreateBagView(struct Bag * bag, const u8 * pockets, u32 heap_id) { - struct BagView * view = BagView_new((u8)heap_id); - int i; - for (i = 0; pockets[i] != 0xFF; i++) + struct BagView * view = BagView_New((u8)heap_id); + + for (u32 i = 0; pockets[i] != 0xFF; i++) { switch (pockets[i]) { case POCKET_KEY_ITEMS: - BagView_setitem(view, bag->keyItems, POCKET_KEY_ITEMS, (u8)i); + BagView_SetItem(view, bag->keyItems, POCKET_KEY_ITEMS, (u8)i); break; case POCKET_ITEMS: - BagView_setitem(view, bag->items, POCKET_ITEMS, (u8)i); + BagView_SetItem(view, bag->items, POCKET_ITEMS, (u8)i); break; case POCKET_BERRIES: - BagView_setitem(view, bag->berries, POCKET_BERRIES, (u8)i); + BagView_SetItem(view, bag->berries, POCKET_BERRIES, (u8)i); break; case POCKET_MEDICINE: - BagView_setitem(view, bag->medicine, POCKET_MEDICINE, (u8)i); + BagView_SetItem(view, bag->medicine, POCKET_MEDICINE, (u8)i); break; case POCKET_BALLS: - BagView_setitem(view, bag->balls, POCKET_BALLS, (u8)i); + BagView_SetItem(view, bag->balls, POCKET_BALLS, (u8)i); break; case POCKET_BATTLE_ITEMS: - BagView_setitem(view, bag->battleItems, POCKET_BATTLE_ITEMS, (u8)i); + BagView_SetItem(view, bag->battleItems, POCKET_BATTLE_ITEMS, (u8)i); break; case POCKET_MAIL: - BagView_setitem(view, bag->mail, POCKET_MAIL, (u8)i); + BagView_SetItem(view, bag->mail, POCKET_MAIL, (u8)i); break; case POCKET_TMHMS: - BagView_setitem(view, bag->TMsHMs, POCKET_TMHMS, (u8)i); + BagView_SetItem(view, bag->TMsHMs, POCKET_TMHMS, (u8)i); break; } } diff --git a/arm9/src/bag_view.c b/arm9/src/bag_view.c new file mode 100644 index 00000000..91bbafd2 --- /dev/null +++ b/arm9/src/bag_view.c @@ -0,0 +1,211 @@ +#include "global.h" +#include "bag_view.h" +#include "coins.h" +#include "constants/items.h" +#include "heap.h" +#include "msgdata.h" +#include "player_data.h" +#include "script_buffers.h" +#include "seal.h" + +extern u32 *FUN_0202708C(u32 *); +extern u32 FUN_02027168(u32 *); +extern u16 FUN_02027184(u32 *); +extern u32 *FUN_02027E24(struct SaveBlock2 *sav2); +extern u8 FUN_02029E2C(struct SealCase *, u32); +extern u32 FUN_0202A8D8(struct SaveBlock2 *); +extern u16 FUN_0202A3B4(u32, u32, u32); + +THUMB_FUNC struct BagView *BagView_New(u8 heap_id) +{ + struct BagView *ptr = AllocFromHeap(heap_id, sizeof(struct BagView)); + + memset(ptr, 0, sizeof(struct BagView)); + + return ptr; +} + +THUMB_FUNC u32 BagView_sizeof() +{ + return sizeof(struct BagView); +} + +THUMB_FUNC void FUN_0206E30C(struct BagView *bag_view, u8 r1) +{ + bag_view->unk65 = r1; +} + +THUMB_FUNC void FUN_0206E314( + struct BagView *bag_view, struct SaveBlock2 *sav2, u8 r2, struct UnkStruct_0206F164 *r3) +{ + FUN_0206E30C(bag_view, r2); + + bag_view->sav2 = sav2; + bag_view->unk6C = r3; + bag_view->unk66 = 0; +} + +THUMB_FUNC void BagView_SetItem(struct BagView *bag_view, struct ItemSlot *slot, u8 pocket, u8 idx) +{ + bag_view->slots[idx].slot = slot; + bag_view->slots[idx].pocket = pocket; +} + +THUMB_FUNC void FUN_0206E340(struct BagView *bag_view) +{ + bag_view->unk76 = 1; +} + +THUMB_FUNC void FUN_0206E354(struct BagView *bag_view, u32 r1) +{ + bag_view->unk70 = r1; +} + +THUMB_FUNC void FUN_0206E358(struct BagView *bag_view, u8 r1) +{ + bag_view->unk74 = r1; +} + +THUMB_FUNC void FUN_0206E360(struct BagView *bag_view, u16 r1) +{ + bag_view->unk76_2 = r1; +} + +THUMB_FUNC u16 FUN_0206E37C(struct BagView *bag_view) +{ + return bag_view->unk66; +} + +THUMB_FUNC u16 FUN_0206E384(struct BagView *bag_view) +{ + return bag_view->unk68; +} + +THUMB_FUNC u8 FUN_0206E38C(struct BagView *bag_view) +{ + return bag_view->unk74; +} + +THUMB_FUNC u8 FUN_0206E394(struct BagView *bag_view) +{ + return bag_view->unk75; +} + +THUMB_FUNC u32 FUN_0206E39C(struct SaveBlock2 *sav2) +{ + return (u32)CheckCoins(Sav2_PlayerData_GetCoinsAddr(sav2)); +} + +THUMB_FUNC u32 FUN_0206E3A8(struct SaveBlock2 *sav2) +{ + struct SealCase *seal_case = Sav2_SealCase_get(sav2); + u32 i; + u32 count = 0; + + for (i = 1; i <= 0x50; ++i) + { + count += FUN_02029E2C(seal_case, i); + } + + return count; +} + +THUMB_FUNC u32 FUN_0206E3C8(struct SaveBlock2 *sav2) +{ + return FUN_02027168(FUN_0202708C(FUN_02027E24(sav2))); +} + +THUMB_FUNC u32 FUN_0206E3D8(struct SaveBlock2 *sav2) +{ + return FUN_02027184(FUN_0202708C(FUN_02027E24(sav2))); +} + +THUMB_FUNC u32 FUN_0206E3E8(struct SaveBlock2 *sav2) +{ + return FUN_0202A3B4(FUN_0202A8D8(sav2), 0, 0); +} + +THUMB_FUNC BOOL FUN_0206E3F8(struct SaveBlock2 *sav2, struct String *dest, u32 item_id, u32 heap_id) +{ + struct MsgData *msgData = NewMsgDataFromNarc(0, NARC_MSGDATA_MSG, 7, heap_id); + struct ScrStrBufs *scrStrBufs = ScrStrBufs_new(heap_id); + struct String *string; + + if (item_id == ITEM_NONE) + { + string = NewString_ReadMsgData(msgData, 0x63); + } + else if (item_id == ITEM_POINT_CARD) + { + string = NewString_ReadMsgData(msgData, 0x61); + + BufferIntegerAsString(scrStrBufs, 0, FUN_0206E3E8(sav2), 4, 0, TRUE); + } + else if (item_id == ITEM_SEAL_CASE) + { + string = NewString_ReadMsgData(msgData, 0x5C); + + BufferIntegerAsString(scrStrBufs, 0, FUN_0206E3A8(sav2), 4, 0, TRUE); + } + else if (item_id == ITEM_FASHION_CASE) + { + string = NewString_ReadMsgData(msgData, 0x5D); + + BufferIntegerAsString(scrStrBufs, 0, FUN_0206E3C8(sav2), 3, 0, TRUE); + BufferIntegerAsString(scrStrBufs, 1, FUN_0206E3D8(sav2), 2, 0, TRUE); + } + else if (item_id == ITEM_COIN_CASE) + { + string = NewString_ReadMsgData(msgData, 0x39); + + BufferIntegerAsString(scrStrBufs, 0, FUN_0206E39C(sav2), 5, 0, TRUE); + } + else + { + ScrStrBufs_delete(scrStrBufs); + DestroyMsgData(msgData); + + return FALSE; + } + + StringExpandPlaceholders(scrStrBufs, dest, string); + String_dtor(string); + ScrStrBufs_delete(scrStrBufs); + DestroyMsgData(msgData); + + return TRUE; +} + +THUMB_FUNC void FUN_0206E51C( + struct PlayerData *playerData, struct String *dest, u32 r2, u32 r3, u32 heap_id) +{ +#pragma unused(r2) + struct MsgData *msgData; + + switch (r3) + { + case 1: + msgData = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, 7, heap_id); + + ReadMsgDataIntoString(msgData, 0x38, dest); + DestroyMsgData(msgData); + return; + case 2: + msgData = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, 7, heap_id); + + ReadMsgDataIntoString(msgData, 0x6F, dest); + DestroyMsgData(msgData); + return; + default: + msgData = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, 0xC7, heap_id); + struct ScrStrBufs *scrStrBufs = ScrStrBufs_new(heap_id); + struct String *src = NewString_ReadMsgData(msgData, 0x24); + + BufferPlayersName(scrStrBufs, 0, playerData); + StringExpandPlaceholders(scrStrBufs, dest, src); + String_dtor(src); + ScrStrBufs_delete(scrStrBufs); + DestroyMsgData(msgData); + return; + } +} diff --git a/include/bag.h b/include/bag.h index 14735443..a785afc6 100644 --- a/include/bag.h +++ b/include/bag.h @@ -1,6 +1,7 @@ #ifndef POKEDIAMOND_BAG_H #define POKEDIAMOND_BAG_H +#include "bag_view.h" #include "itemtool.h" #include "save_block_2.h" @@ -17,13 +18,6 @@ struct Bag u32 registeredItem; }; -struct BagView -{ - struct ItemSlot * slots; - u32 count; - u8 pocket; -}; - struct UnkStruct_0206F164 { u8 unk_00[8]; diff --git a/include/bag_view.h b/include/bag_view.h new file mode 100644 index 00000000..423d2677 --- /dev/null +++ b/include/bag_view.h @@ -0,0 +1,56 @@ +#ifndef POKEDIAMOND_BAG_VIEW_H +#define POKEDIAMOND_BAG_VIEW_H + +#include "player_data.h" +#include "save_block_2.h" + +struct UnkStruct_0206F164; + +struct BagView_UnkSub +{ + struct ItemSlot *slot; + u8 padding[0x4]; + u8 pocket; + u8 padding2[0x3]; +}; // total size = 0xC + +struct BagView +{ + struct SaveBlock2 *sav2; + struct BagView_UnkSub slots[8]; + u8 padding; + u8 unk65; + u16 unk66; + u16 unk68; + u8 padding2[0x2]; + struct UnkStruct_0206F164 *unk6C; + u32 unk70; + u8 unk74; + u8 unk75; + u16 unk76 : 1; + u16 unk76_2 : 15; +}; // total size = 0x78 + +struct BagView *BagView_New(u8 heap_id); +u32 BagView_sizeof(); +void FUN_0206E30C(struct BagView *bag_view, u8 r1); +void FUN_0206E314( + struct BagView *bag_view, struct SaveBlock2 *sav2, u8 r2, struct UnkStruct_0206F164 *r3); +void BagView_SetItem(struct BagView *bag_view, struct ItemSlot *slot, u8 pocket, u8 idx); +void FUN_0206E340(struct BagView *bag_view); +void FUN_0206E354(struct BagView *bag_view, u32 r1); +void FUN_0206E358(struct BagView *bag_view, u8 r1); +void FUN_0206E360(struct BagView *bag_view, u16 r1); +u16 FUN_0206E37C(struct BagView *bag_view); +u16 FUN_0206E384(struct BagView *bag_view); +u8 FUN_0206E38C(struct BagView *bag_view); +u8 FUN_0206E394(struct BagView *bag_view); +u32 FUN_0206E39C(struct SaveBlock2 *sav2); +u32 FUN_0206E3A8(struct SaveBlock2 *sav2); +u32 FUN_0206E3C8(struct SaveBlock2 *sav2); +u32 FUN_0206E3D8(struct SaveBlock2 *sav2); +u32 FUN_0206E3E8(struct SaveBlock2 *sav2); +BOOL FUN_0206E3F8(struct SaveBlock2 *sav2, struct String *dest, u32 item_id, u32 heap_id); +void FUN_0206E51C(struct PlayerData *playerData, struct String *dest, u32 r2, u32 r3, u32 heap_id); + +#endif // POKEDIAMOND_BAG_VIEW_H |