diff options
-rw-r--r-- | asm/berry_pouch.s | 537 | ||||
-rw-r--r-- | include/item.h | 1 | ||||
-rw-r--r-- | include/strings.h | 1 | ||||
-rw-r--r-- | src/berry_pouch.c | 152 | ||||
-rw-r--r-- | sym_ewram.txt | 18 |
5 files changed, 162 insertions, 547 deletions
diff --git a/asm/berry_pouch.s b/asm/berry_pouch.s index a34c409e1..9d5ecb593 100644 --- a/asm/berry_pouch.s +++ b/asm/berry_pouch.s @@ -5,527 +5,6 @@ .text - thumb_func_start sub_813D614 -sub_813D614: @ 813D614 - push {r4,lr} - sub sp, 0x10 - ldr r4, _0813D648 @ =gUnknown_203F36C - ldr r1, [r4] - movs r0, 0x1 - strh r0, [r1, 0x4] - movs r0, 0x2 - str r0, [sp] - movs r0, 0x6E - str r0, [sp, 0x4] - str r0, [sp, 0x8] - adds r1, 0x4 - str r1, [sp, 0xC] - movs r0, 0x2 - movs r1, 0xD4 - movs r2, 0x78 - movs r3, 0x98 - bl AddScrollIndicatorArrowPairParameterized - ldr r1, [r4] - strb r0, [r1, 0x6] - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813D648: .4byte gUnknown_203F36C - thumb_func_end sub_813D614 - - thumb_func_start sub_813D64C -sub_813D64C: @ 813D64C - push {r4,lr} - sub sp, 0x10 - ldr r4, _0813D680 @ =gUnknown_203F36C - ldr r1, [r4] - movs r0, 0x1 - strh r0, [r1, 0x4] - movs r0, 0x2 - str r0, [sp] - movs r0, 0x6E - str r0, [sp, 0x4] - str r0, [sp, 0x8] - adds r1, 0x4 - str r1, [sp, 0xC] - movs r0, 0x2 - movs r1, 0x98 - movs r2, 0x48 - movs r3, 0x68 - bl AddScrollIndicatorArrowPairParameterized - ldr r1, [r4] - strb r0, [r1, 0x6] - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813D680: .4byte gUnknown_203F36C - thumb_func_end sub_813D64C - - thumb_func_start sub_813D684 -sub_813D684: @ 813D684 - push {r4,lr} - ldr r4, _0813D6A0 @ =gUnknown_203F36C - ldr r1, [r4] - ldrb r0, [r1, 0x6] - cmp r0, 0xFF - beq _0813D69A - bl RemoveScrollIndicatorArrowPair - ldr r1, [r4] - movs r0, 0xFF - strb r0, [r1, 0x6] -_0813D69A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813D6A0: .4byte gUnknown_203F36C - thumb_func_end sub_813D684 - - thumb_func_start sub_813D6A4 -sub_813D6A4: @ 813D6A4 - push {r4,lr} - sub sp, 0x14 - ldr r4, _0813D6E0 @ =gUnknown_841670A - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0 - bl GetStringWidth - movs r3, 0x48 - subs r3, r0 - lsrs r3, 1 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r0, [sp, 0x10] - movs r0, 0x2 - movs r1, 0x1 - adds r2, r4, 0 - bl sub_813E9A0 - add sp, 0x14 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813D6E0: .4byte gUnknown_841670A - thumb_func_end sub_813D6A4 - - thumb_func_start sub_813D6E4 -sub_813D6E4: @ 813D6E4 - ldr r1, _0813D6F0 @ =gUnknown_203F370 - movs r0, 0 - strh r0, [r1, 0x8] - strh r0, [r1, 0xA] - bx lr - .align 2, 0 -_0813D6F0: .4byte gUnknown_203F370 - thumb_func_end sub_813D6E4 - - thumb_func_start sub_813D6F4 -sub_813D6F4: @ 813D6F4 - push {r4,lr} - ldr r0, _0813D70C @ =gUnknown_203F370 - ldrb r1, [r0, 0x4] - adds r4, r0, 0 - cmp r1, 0x5 - beq _0813D714 - ldr r0, _0813D710 @ =gUnknown_203F36C - ldr r1, [r0] - ldrb r1, [r1, 0x7] - adds r2, r1, 0x1 - adds r1, r0, 0 - b _0813D71A - .align 2, 0 -_0813D70C: .4byte gUnknown_203F370 -_0813D710: .4byte gUnknown_203F36C -_0813D714: - ldr r1, _0813D744 @ =gUnknown_203F36C - ldr r0, [r1] - ldrb r2, [r0, 0x7] -_0813D71A: - ldrh r0, [r4, 0xA] - cmp r0, 0 - beq _0813D72E - ldr r1, [r1] - ldrb r1, [r1, 0x8] - adds r0, r1 - cmp r0, r2 - ble _0813D72E - subs r0, r2, r1 - strh r0, [r4, 0xA] -_0813D72E: - adds r3, r4, 0 - ldrh r0, [r3, 0xA] - ldrh r1, [r3, 0x8] - adds r0, r1 - cmp r0, r2 - blt _0813D74C - cmp r2, 0x1 - bhi _0813D748 - movs r0, 0 - strh r0, [r3, 0x8] - b _0813D74C - .align 2, 0 -_0813D744: .4byte gUnknown_203F36C -_0813D748: - subs r0, r2, 0x1 - strh r0, [r4, 0x8] -_0813D74C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_813D6F4 - - thumb_func_start sub_813D754 -sub_813D754: @ 813D754 - push {r4-r6,lr} - ldr r0, _0813D770 @ =gUnknown_203F370 - ldrb r1, [r0, 0x4] - adds r5, r0, 0 - cmp r1, 0x5 - beq _0813D778 - ldr r1, _0813D774 @ =gUnknown_203F36C - ldr r0, [r1] - ldrb r0, [r0, 0x7] - adds r0, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - b _0813D77E - .align 2, 0 -_0813D770: .4byte gUnknown_203F370 -_0813D774: .4byte gUnknown_203F36C -_0813D778: - ldr r1, _0813D7C8 @ =gUnknown_203F36C - ldr r0, [r1] - ldrb r4, [r0, 0x7] -_0813D77E: - adds r6, r1, 0 - ldrh r0, [r5, 0x8] - cmp r0, 0x4 - bls _0813D7C2 - movs r3, 0 - subs r0, 0x4 - cmp r3, r0 - bgt _0813D7C2 - ldrh r0, [r5, 0xA] - ldr r1, [r6] - ldrb r1, [r1, 0x8] - adds r0, r1 - cmp r0, r4 - beq _0813D7C2 - adds r2, r5, 0 -_0813D79C: - ldrh r0, [r2, 0x8] - subs r0, 0x1 - strh r0, [r2, 0x8] - ldrh r0, [r2, 0xA] - adds r0, 0x1 - strh r0, [r2, 0xA] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - ldrh r0, [r2, 0x8] - subs r0, 0x4 - cmp r3, r0 - bgt _0813D7C2 - ldrh r0, [r5, 0xA] - ldr r1, [r6] - ldrb r1, [r1, 0x8] - adds r0, r1 - cmp r0, r4 - bne _0813D79C -_0813D7C2: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813D7C8: .4byte gUnknown_203F36C - thumb_func_end sub_813D754 - - thumb_func_start sub_813D7CC -sub_813D7CC: @ 813D7CC - push {lr} - ldr r0, _0813D7FC @ =gUnknown_203F36C - ldr r0, [r0] - cmp r0, 0 - beq _0813D7DA - bl Free -_0813D7DA: - ldr r0, _0813D800 @ =gUnknown_203F37C - ldr r0, [r0] - cmp r0, 0 - beq _0813D7E6 - bl Free -_0813D7E6: - ldr r0, _0813D804 @ =gUnknown_203F380 - ldr r0, [r0] - cmp r0, 0 - beq _0813D7F2 - bl Free -_0813D7F2: - bl FreeAllWindowBuffers - pop {r0} - bx r0 - .align 2, 0 -_0813D7FC: .4byte gUnknown_203F36C -_0813D800: .4byte gUnknown_203F37C -_0813D804: .4byte gUnknown_203F380 - thumb_func_end sub_813D7CC - - thumb_func_start BerryPouch_StartFadeToExitCallback -BerryPouch_StartFadeToExitCallback: @ 813D808 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0x2 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0813D83C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0813D840 @ =sub_813D844 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813D83C: .4byte gTasks -_0813D840: .4byte sub_813D844 - thumb_func_end BerryPouch_StartFadeToExitCallback - - thumb_func_start sub_813D844 -sub_813D844: @ 813D844 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _0813D87C @ =gTasks+0x8 - adds r2, r0, r1 - ldr r0, _0813D880 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0813D8A4 - ldrb r0, [r2] - ldr r4, _0813D884 @ =gUnknown_203F37A - subs r2, r4, 0x2 - adds r1, r4, 0 - bl DestroyListMenuTask - ldr r0, _0813D888 @ =gUnknown_203F36C - ldr r0, [r0] - ldr r0, [r0] - cmp r0, 0 - beq _0813D88C - bl SetMainCallback2 - b _0813D896 - .align 2, 0 -_0813D87C: .4byte gTasks+0x8 -_0813D880: .4byte gPaletteFade -_0813D884: .4byte gUnknown_203F37A -_0813D888: .4byte gUnknown_203F36C -_0813D88C: - adds r0, r4, 0 - subs r0, 0xA - ldr r0, [r0] - bl SetMainCallback2 -_0813D896: - bl sub_813D684 - bl sub_813D7CC - adds r0, r5, 0 - bl DestroyTask -_0813D8A4: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_813D844 - - thumb_func_start sub_813D8AC -sub_813D8AC: @ 813D8AC - push {r4,lr} - ldr r4, _0813D904 @ =gBagPockets + 0x20 - adds r0, r4, 0 - bl SortAndCompactBagPocket - ldr r3, _0813D908 @ =gUnknown_203F36C - ldr r1, [r3] - movs r0, 0 - strb r0, [r1, 0x7] - movs r2, 0 - ldrb r0, [r4, 0x4] - cmp r2, r0 - bcs _0813D8EE - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, 0 - beq _0813D8EE -_0813D8CE: - ldr r0, [r3] - ldrb r1, [r0, 0x7] - adds r1, 0x1 - strb r1, [r0, 0x7] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldrb r0, [r4, 0x4] - cmp r2, r0 - bcs _0813D8EE - ldr r0, [r4] - lsls r1, r2, 2 - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - bne _0813D8CE -_0813D8EE: - ldr r0, _0813D90C @ =gUnknown_203F370 - ldrb r0, [r0, 0x4] - cmp r0, 0x5 - beq _0813D910 - ldr r0, _0813D908 @ =gUnknown_203F36C - ldr r1, [r0] - ldrb r1, [r1, 0x7] - adds r2, r1, 0x1 - adds r1, r0, 0 - b _0813D916 - .align 2, 0 -_0813D904: .4byte gBagPockets + 0x20 -_0813D908: .4byte gUnknown_203F36C -_0813D90C: .4byte gUnknown_203F370 -_0813D910: - ldr r1, _0813D924 @ =gUnknown_203F36C - ldr r0, [r1] - ldrb r2, [r0, 0x7] -_0813D916: - cmp r2, 0x7 - bls _0813D928 - ldr r1, [r1] - movs r0, 0x7 - strb r0, [r1, 0x8] - b _0813D92C - .align 2, 0 -_0813D924: .4byte gUnknown_203F36C -_0813D928: - ldr r0, [r1] - strb r2, [r0, 0x8] -_0813D92C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_813D8AC - - thumb_func_start BerryPouch_SetExitCallback -BerryPouch_SetExitCallback: @ 813D934 - ldr r1, _0813D93C @ =gUnknown_203F36C - ldr r1, [r1] - str r0, [r1] - bx lr - .align 2, 0 -_0813D93C: .4byte gUnknown_203F36C - thumb_func_end BerryPouch_SetExitCallback - - thumb_func_start sub_813D940 -sub_813D940: @ 813D940 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x14 - adds r6, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _0813D9E8 @ =gTasks+0x8 - adds r4, r0 - movs r0, 0x8 - bl sub_813EA08 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r1, 0x2 - ldrsh r0, [r4, r1] - ldr r1, _0813D9EC @ =gStringVar1 - mov r10, r1 - bl sub_813D39C - ldr r0, _0813D9F0 @ =gStringVar4 - mov r9, r0 - adds r1, r6, 0 - bl StringExpandPlaceholders - movs r0, 0x2 - str r0, [sp] - movs r6, 0x1 - str r6, [sp, 0x4] - str r0, [sp, 0x8] - movs r1, 0 - mov r8, r1 - str r1, [sp, 0xC] - str r6, [sp, 0x10] - adds r0, r5, 0 - movs r1, 0x2 - mov r2, r9 - movs r3, 0 - bl sub_813E9A0 - movs r0, 0 - bl sub_813EA08 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r0, r10 - movs r1, 0x1 - movs r2, 0x2 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r1, _0813D9F4 @ =gText_TimesStrVar1 - mov r0, r9 - bl StringExpandPlaceholders - movs r0, 0xA - str r0, [sp] - str r6, [sp, 0x4] - mov r0, r8 - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r6, [sp, 0x10] - adds r0, r4, 0 - movs r1, 0 - mov r2, r9 - movs r3, 0x4 - bl sub_813E9A0 - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813D9E8: .4byte gTasks+0x8 -_0813D9EC: .4byte gStringVar1 -_0813D9F0: .4byte gStringVar4 -_0813D9F4: .4byte gText_TimesStrVar1 - thumb_func_end sub_813D940 - thumb_func_start sub_813D9F8 sub_813D9F8: @ 813D9F8 push {r4-r6,lr} @@ -613,7 +92,7 @@ _0813DA9E: bl ListMenu_ProcessInput adds r5, r0, 0 ldrb r0, [r7] - ldr r4, _0813DAE0 @ =gUnknown_203F37A + ldr r4, _0813DAE0 @ =gUnknown_203F370 + 10 subs r2, r4, 0x2 adds r1, r4, 0 bl ListMenuGetScrollAndRow @@ -637,7 +116,7 @@ _0813DA9E: .align 2, 0 _0813DAD8: .4byte gTasks+0x8 _0813DADC: .4byte gPaletteFade -_0813DAE0: .4byte gUnknown_203F37A +_0813DAE0: .4byte gUnknown_203F370 + 10 _0813DAE4: .4byte gMain _0813DAE8: .4byte gSpecialVar_ItemId _0813DAEC: @@ -1423,7 +902,7 @@ _0813E18A: movs r0, 0x9 bl sub_813EA98 ldrb r0, [r5] - ldr r4, _0813E1F8 @ =gUnknown_203F37A + ldr r4, _0813E1F8 @ =gUnknown_203F370 + 10 subs r2, r4, 0x2 adds r1, r4, 0 bl DestroyListMenuTask @@ -1455,7 +934,7 @@ _0813E1E4: _0813E1EC: .4byte gTasks+0x8 _0813E1F0: .4byte gMain _0813E1F4: .4byte gSpecialVar_ItemId -_0813E1F8: .4byte gUnknown_203F37A +_0813E1F8: .4byte gUnknown_203F370 + 10 _0813E1FC: .4byte gMultiuseListMenuTemplate thumb_func_end sub_813E164 @@ -1565,7 +1044,7 @@ sub_813E2B8: @ 813E2B8 movs r0, 0x5 bl sub_813EACC ldrb r0, [r5] - ldr r4, _0813E318 @ =gUnknown_203F37A + ldr r4, _0813E318 @ =gUnknown_203F370 + 10 subs r2, r4, 0x2 adds r1, r4, 0 bl DestroyListMenuTask @@ -1592,7 +1071,7 @@ sub_813E2B8: @ 813E2B8 bx r0 .align 2, 0 _0813E314: .4byte gTasks+0x8 -_0813E318: .4byte gUnknown_203F37A +_0813E318: .4byte gUnknown_203F370 + 10 _0813E31C: .4byte gMultiuseListMenuTemplate thumb_func_end sub_813E2B8 @@ -2196,7 +1675,7 @@ sub_813E7F0: @ 813E7F0 bl sub_809C09C mov r3, r8 ldrb r0, [r3] - ldr r4, _0813E8C8 @ =gUnknown_203F37A + ldr r4, _0813E8C8 @ =gUnknown_203F370 + 10 subs r2, r4, 0x2 adds r1, r4, 0 bl DestroyListMenuTask @@ -2243,7 +1722,7 @@ sub_813E7F0: @ 813E7F0 _0813E8BC: .4byte gTasks+0x8 _0813E8C0: .4byte gSpecialVar_ItemId _0813E8C4: .4byte gSaveBlock1Ptr -_0813E8C8: .4byte gUnknown_203F37A +_0813E8C8: .4byte gUnknown_203F370 + 10 _0813E8CC: .4byte gMultiuseListMenuTemplate _0813E8D0: .4byte sub_813E8D4 thumb_func_end sub_813E7F0 diff --git a/include/item.h b/include/item.h index 0f0adbca8..f0aaa0f6c 100644 --- a/include/item.h +++ b/include/item.h @@ -77,5 +77,6 @@ u16 GetPcItemQuantity(u16 *); void ItemPcCompaction(void); void RemoveItemFromPC(u16 itemId, u16 quantity); +void SortAndCompactBagPocket(struct BagPocket * pocket); #endif // GUARD_ITEM_H diff --git a/include/strings.h b/include/strings.h index 5c3cbb67b..c0863dffb 100644 --- a/include/strings.h +++ b/include/strings.h @@ -316,6 +316,7 @@ extern const u8 gCreditsString_Graphic_Designer[]; extern const u8 gCreditsString_Akira_Kinashi[]; // berry_pouch +extern const u8 gUnknown_841670A[]; extern const u8 gUnknown_8416716[]; #endif //GUARD_STRINGS_H diff --git a/src/berry_pouch.c b/src/berry_pouch.c index c8d6b508c..48baac93a 100644 --- a/src/berry_pouch.c +++ b/src/berry_pouch.c @@ -24,8 +24,8 @@ struct BerryPouchStruct_203F36C { - u32 unk_000; - u8 filler_004[2]; + void (*unk_000)(void); + u16 unk_004; u8 unk_006; u8 unk_007; u8 unk_008; @@ -68,11 +68,13 @@ void sub_813D6A4(void); void sub_813D6F4(void); void sub_813D754(void); void sub_813D7CC(void); +void sub_813D844(u8 taskId); void sub_813D8AC(void); void sub_813DA68(u8 taskId); void sub_813EC28(void); void sub_813E910(void); void sub_813E9A0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx); +u8 sub_813EA08(u8); void sub_813EC08(void); static const struct BgTemplate gUnknown_846434C[] = { @@ -125,7 +127,7 @@ void InitBerryPouch(u8 a0, void (*savedCallback)(void), u8 a2) gUnknown_203F370.unk_05 = a2; if (savedCallback != NULL) gUnknown_203F370.savedCallback = savedCallback; - gUnknown_203F36C->unk_000 = 0; + gUnknown_203F36C->unk_000 = NULL; gUnknown_203F36C->unk_009 = 0; gUnknown_203F36C->unk_006 = 0xFF; for (i = 0; i < 4; i++) @@ -475,3 +477,147 @@ void sub_813D5BC(void) else gUnknown_203F36C->unk_006 = AddScrollIndicatorArrowPairParameterized(2, 160, 8, 120, gUnknown_203F36C->unk_007 - gUnknown_203F36C->unk_008, 110, 110, &gUnknown_203F370.unk_0A); } + +void sub_813D614(void) +{ + gUnknown_203F36C->unk_004 = 1; + gUnknown_203F36C->unk_006 = AddScrollIndicatorArrowPairParameterized(2, 212, 120, 152, 2, 110, 110, &gUnknown_203F36C->unk_004); +} + +void sub_813D64C(void) +{ + gUnknown_203F36C->unk_004 = 1; + gUnknown_203F36C->unk_006 = AddScrollIndicatorArrowPairParameterized(2, 152, 72, 104, 2, 110, 110, &gUnknown_203F36C->unk_004); +} + +void sub_813D684(void) +{ + if (gUnknown_203F36C->unk_006 != 0xFF) + { + RemoveScrollIndicatorArrowPair(gUnknown_203F36C->unk_006); + gUnknown_203F36C->unk_006 = 0xFF; + } +} + +void sub_813D6A4(void) +{ + u32 slack = 72 - GetStringWidth(1, gUnknown_841670A, 0); + sub_813E9A0(2, 1, gUnknown_841670A, slack / 2, 1, 0, 0, 0, 0); +} + +void sub_813D6E4(void) +{ + gUnknown_203F370.unk_08 = 0; + gUnknown_203F370.unk_0A = 0; +} + +void sub_813D6F4(void) +{ + s32 r2; + if (gUnknown_203F370.unk_04 != 5) + r2 = gUnknown_203F36C->unk_007 + 1; + else + r2 = gUnknown_203F36C->unk_007; + if (gUnknown_203F370.unk_0A != 0 && gUnknown_203F370.unk_0A + gUnknown_203F36C->unk_008 > r2) + gUnknown_203F370.unk_0A = r2 - gUnknown_203F36C->unk_008; + if (gUnknown_203F370.unk_0A + gUnknown_203F370.unk_08 >= r2) + { + if (r2 == 0 || r2 == 1) + gUnknown_203F370.unk_08 = 0; + else + gUnknown_203F370.unk_08 = r2 - 1; + } +} + +void sub_813D754(void) +{ + u8 lim; + u8 i; + if (gUnknown_203F370.unk_04 != 5) + lim = gUnknown_203F36C->unk_007 + 1; + else + lim = gUnknown_203F36C->unk_007; + if (gUnknown_203F370.unk_08 > 4) + { + for (i = 0; i <= gUnknown_203F370.unk_08 - 4; gUnknown_203F370.unk_08--, gUnknown_203F370.unk_0A++, i++) + { + if (gUnknown_203F370.unk_0A + gUnknown_203F36C->unk_008 == lim) + break; + } + } +} + +void sub_813D7CC(void) +{ + if (gUnknown_203F36C != NULL) + Free(gUnknown_203F36C); + if (gUnknown_203F37C != NULL) + Free(gUnknown_203F37C); + if (gUnknown_203F380 != NULL) + Free(gUnknown_203F380); + FreeAllWindowBuffers(); +} + +void BerryPouch_StartFadeToExitCallback(u8 taskId) +{ + BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_BLACK); + gTasks[taskId].func = sub_813D844; +} + +void sub_813D844(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + if (!gPaletteFade.active) + { + DestroyListMenuTask(data[0], &gUnknown_203F370.unk_0A, &gUnknown_203F370.unk_08); + if (gUnknown_203F36C->unk_000 != NULL) + SetMainCallback2(gUnknown_203F36C->unk_000); + else + SetMainCallback2(gUnknown_203F370.savedCallback); + sub_813D684(); + sub_813D7CC(); + DestroyTask(taskId); + } +} + +void sub_813D8AC(void) +{ + u16 i; + u32 r2; + struct BagPocket *pocket = &gBagPockets[POCKET_BERRY_POUCH - 1]; + SortAndCompactBagPocket(pocket); + gUnknown_203F36C->unk_007 = 0; + for (i = 0; i < pocket->capacity; i++) + { + if (pocket->itemSlots[i].itemId == ITEM_NONE) + break; + gUnknown_203F36C->unk_007++; + } + if (gUnknown_203F370.unk_04 != 5) + r2 = gUnknown_203F36C->unk_007 + 1; + else + r2 = gUnknown_203F36C->unk_007; + if (r2 > 7) + gUnknown_203F36C->unk_008 = 7; + else + gUnknown_203F36C->unk_008 = r2; +} + +void BerryPouch_SetExitCallback(void (*callback)(void)) +{ + gUnknown_203F36C->unk_000 = callback; +} + +void sub_813D940(u8 taskId, const u8 * str) +{ + s16 * data = gTasks[taskId].data; + u8 windowId = sub_813EA08(8); + u8 windowId2; + sub_813D39C(data[1], gStringVar1); + StringExpandPlaceholders(gStringVar4, str); + sub_813E9A0(windowId, 2, gStringVar4, 0, 2, 1, 2, 0, 1); + windowId2 = sub_813EA08(0); + ConvertIntToDecimalStringN(gStringVar1, 1, STR_CONV_MODE_LEADING_ZEROS, 3); + StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1); + sub_813E9A0(windowId2, 0, gStringVar4, 4, 10, 1, 0, 0, 1); +} diff --git a/sym_ewram.txt b/sym_ewram.txt index 0a91bcce7..1ee1f4b5b 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1342,22 +1342,10 @@ gUnknown_203B170: @ 203B170 .align 2 .include "src/help_system.o" + .align 2 .include "src/dynamic_placeholder_text_util.o" - -gUnknown_203F36C: @ 203F36C - .space 0x4 - -gUnknown_203F370: @ 203F370 - .space 0xA - -gUnknown_203F37A: @ 203F37A - .space 0x2 - -gUnknown_203F37C: @ 203F37C - .space 0x4 - -gUnknown_203F380: @ 203F380 - .space 0x4 + .align 2 + .include "src/berry_pouch.o" gUnknown_203F384: @ 203F384 .space 0x4 |