diff options
-rw-r--r-- | asm/item_menu.s | 253 | ||||
-rw-r--r-- | include/bag.h | 2 | ||||
-rw-r--r-- | include/strings.h | 3 | ||||
-rw-r--r-- | src/bag.c | 2 | ||||
-rw-r--r-- | src/item_menu.c | 92 | ||||
-rw-r--r-- | sym_ewram.txt | 11 |
6 files changed, 102 insertions, 261 deletions
diff --git a/asm/item_menu.s b/asm/item_menu.s index 8e0d2e137..a6d327eb2 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -5,251 +5,6 @@ .text - thumb_func_start sub_81087EC -sub_81087EC: @ 81087EC - push {lr} - movs r0, 0x2 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r2, _08108810 @ =gUnknown_8452CFC - ldr r0, _08108814 @ =gUnknown_203ACFC - ldrh r1, [r0, 0x6] - lsls r0, r1, 2 - adds r0, r2 - ldr r0, [r0] - lsls r1, 24 - lsrs r1, 24 - bl sub_810B958 - pop {r0} - bx r0 - .align 2, 0 -_08108810: .4byte gUnknown_8452CFC -_08108814: .4byte gUnknown_203ACFC - thumb_func_end sub_81087EC - - thumb_func_start sub_8108818 -sub_8108818: @ 8108818 - push {r4,lr} - sub sp, 0x14 - adds r2, r0, 0 - ldr r0, _0810884C @ =gUnknown_203AD10 - ldr r0, [r0] - ldr r1, _08108850 @ =gUnknown_203ACFC - ldrh r1, [r1, 0x6] - adds r0, 0xA - adds r0, r1 - ldrb r0, [r0] - cmp r2, r0 - beq _08108854 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r2, 16 - lsrs r1, 16 - bl BagGetItemIdByPocketPosition - lsls r0, 16 - lsrs r0, 16 - bl ItemId_GetDescription - adds r4, r0, 0 - b _08108856 - .align 2, 0 -_0810884C: .4byte gUnknown_203AD10 -_08108850: .4byte gUnknown_203ACFC -_08108854: - ldr r4, _08108884 @ =gUnknown_84162F5 -_08108856: - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x3 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r0, [sp, 0x10] - movs r0, 0x1 - movs r1, 0x2 - adds r2, r4, 0 - movs r3, 0 - bl sub_810B8F0 - add sp, 0x14 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08108884: .4byte gUnknown_84162F5 - thumb_func_end sub_8108818 - - thumb_func_start sub_8108888 -sub_8108888: @ 8108888 - push {r4,lr} - sub sp, 0x10 - ldr r4, _081088D0 @ =gUnknown_203AD10 - ldr r1, [r4] - ldr r2, _081088D4 @ =gUnknown_203ACFC - ldrh r3, [r2, 0x6] - adds r0, r1, 0 - adds r0, 0xA - adds r0, r3 - ldrb r0, [r0] - adds r1, 0xD - adds r1, r3 - ldrb r1, [r1] - subs r0, r1 - adds r0, 0x1 - str r0, [sp] - movs r0, 0x6E - str r0, [sp, 0x4] - str r0, [sp, 0x8] - ldrh r0, [r2, 0x6] - lsls r0, 1 - adds r2, 0xE - adds r0, r2 - str r0, [sp, 0xC] - movs r0, 0x2 - movs r1, 0xA0 - movs r2, 0x8 - movs r3, 0x68 - bl AddScrollIndicatorArrowPairParameterized - ldr r1, [r4] - strb r0, [r1, 0x8] - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081088D0: .4byte gUnknown_203AD10 -_081088D4: .4byte gUnknown_203ACFC - thumb_func_end sub_8108888 - - thumb_func_start sub_81088D8 -sub_81088D8: @ 81088D8 - push {r4,lr} - ldr r4, _081088FC @ =gUnknown_203AD10 - ldr r0, [r4] - ldrb r1, [r0, 0x5] - movs r0, 0xF - ands r0, r1 - cmp r0, 0x1 - beq _081088F4 - ldr r0, _08108900 @ =gUnknown_8452F6C - ldr r1, _08108904 @ =gUnknown_203AD02 - bl AddScrollIndicatorArrowPair - ldr r1, [r4] - strb r0, [r1, 0x9] -_081088F4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081088FC: .4byte gUnknown_203AD10 -_08108900: .4byte gUnknown_8452F6C -_08108904: .4byte gUnknown_203AD02 - thumb_func_end sub_81088D8 - - thumb_func_start sub_8108908 -sub_8108908: @ 8108908 - push {r4,lr} - sub sp, 0x10 - ldr r4, _0810893C @ =gUnknown_203AD10 - ldr r1, [r4] - movs r0, 0x1 - strh r0, [r1, 0x6] - movs r0, 0x2 - str r0, [sp] - movs r0, 0x6E - str r0, [sp, 0x4] - str r0, [sp, 0x8] - adds r1, 0x6 - str r1, [sp, 0xC] - movs r0, 0x2 - movs r1, 0x98 - movs r2, 0x48 - movs r3, 0x68 - bl AddScrollIndicatorArrowPairParameterized - ldr r1, [r4] - strb r0, [r1, 0x8] - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810893C: .4byte gUnknown_203AD10 - thumb_func_end sub_8108908 - - thumb_func_start sub_8108940 -sub_8108940: @ 8108940 - push {r4,lr} - sub sp, 0x10 - ldr r4, _08108974 @ =gUnknown_203AD10 - ldr r1, [r4] - movs r0, 0x1 - strh r0, [r1, 0x6] - movs r0, 0x2 - str r0, [sp] - movs r0, 0x6E - str r0, [sp, 0x4] - str r0, [sp, 0x8] - adds r1, 0x6 - str r1, [sp, 0xC] - movs r0, 0x2 - movs r1, 0xD4 - movs r2, 0x78 - movs r3, 0x98 - bl AddScrollIndicatorArrowPairParameterized - ldr r1, [r4] - strb r0, [r1, 0x8] - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08108974: .4byte gUnknown_203AD10 - thumb_func_end sub_8108940 - - thumb_func_start sub_8108978 -sub_8108978: @ 8108978 - push {r4,lr} - ldr r4, _08108998 @ =gUnknown_203AD10 - ldr r1, [r4] - ldrb r0, [r1, 0x8] - cmp r0, 0xFF - beq _0810898E - bl RemoveScrollIndicatorArrowPair - ldr r1, [r4] - movs r0, 0xFF - strb r0, [r1, 0x8] -_0810898E: - bl sub_810899C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08108998: .4byte gUnknown_203AD10 - thumb_func_end sub_8108978 - - thumb_func_start sub_810899C -sub_810899C: @ 810899C - push {r4,lr} - ldr r4, _081089B8 @ =gUnknown_203AD10 - ldr r1, [r4] - ldrb r0, [r1, 0x9] - cmp r0, 0xFF - beq _081089B2 - bl RemoveScrollIndicatorArrowPair - ldr r1, [r4] - movs r0, 0xFF - strb r0, [r1, 0x9] -_081089B2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081089B8: .4byte gUnknown_203AD10 - thumb_func_end sub_810899C - thumb_func_start sub_81089BC sub_81089BC: @ 81089BC push {r4,r5,lr} @@ -368,7 +123,7 @@ sub_8108A84: @ 8108A84 mov r7, r8 push {r7} movs r6, 0 - ldr r0, _08108AF8 @ =gUnknown_203AD04 + ldr r0, _08108AF8 @ =gUnknown_203ACFC+8 mov r8, r0 _08108A90: lsls r2, r6, 1 @@ -382,7 +137,7 @@ _08108A90: subs r0, 0x3 cmp r5, r0 bgt _08108AE6 - ldr r0, _08108AFC @ =gUnknown_203AD0A + ldr r0, _08108AFC @ =gUnknown_203ACFC+14 ldr r3, _08108B00 @ =gUnknown_203AD10 mov r12, r3 adds r4, r2, r0 @@ -426,8 +181,8 @@ _08108AE6: pop {r0} bx r0 .align 2, 0 -_08108AF8: .4byte gUnknown_203AD04 -_08108AFC: .4byte gUnknown_203AD0A +_08108AF8: .4byte gUnknown_203ACFC+8 +_08108AFC: .4byte gUnknown_203ACFC+14 _08108B00: .4byte gUnknown_203AD10 thumb_func_end sub_8108A84 diff --git a/include/bag.h b/include/bag.h index 321a48ab0..c48940173 100644 --- a/include/bag.h +++ b/include/bag.h @@ -5,7 +5,7 @@ void sub_810B858(void); void sub_810B8F0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx); -void sub_810B958(const u8 * str); +void sub_810B958(const u8 * str, u8 unused); void sub_810B994(void); u8 sub_810B9DC(u8 a0, u8 a1); void sub_810BA3C(u8 a0); diff --git a/include/strings.h b/include/strings.h index eace8d67e..2e74d7b38 100644 --- a/include/strings.h +++ b/include/strings.h @@ -1038,4 +1038,7 @@ extern const u8 gText_SaveFailedScreen_CheckingBackupMemory[]; extern const u8 gText_SaveFailedScreen_BackupMemoryDamaged[]; extern const u8 gText_SaveFailedScreen_SaveCompleted[]; +// item_menu +extern const u8 gUnknown_84162F5[]; + #endif //GUARD_STRINGS_H @@ -232,7 +232,7 @@ void sub_810B8F0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSp AddTextPrinterParameterized4(windowId, fontId, x, y, letterSpacing, lineSpacing, gUnknown_84530B8[colorIdx], speed, str); } -void sub_810B958(const u8 * str) +void sub_810B958(const u8 * str, u8 unused) { u32 x = 0x48 - GetStringWidth(1, str, 0); AddTextPrinterParameterized3(2, 1, x / 2, 1, gUnknown_84530B8[0], 0, str); diff --git a/src/item_menu.c b/src/item_menu.c index 578170c17..12db534e8 100644 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -9,6 +9,7 @@ #include "item_menu.h" #include "item_menu_icons.h" #include "list_menu.h" +#include "menu_indicators.h" #include "new_menu_helpers.h" #include "overworld.h" #include "scanline_effect.h" @@ -55,6 +56,7 @@ void sub_81087EC(void); void sub_8108818(s32 itemIndex); void sub_8108888(void); void sub_81088D8(void); +void sub_810899C(void); void sub_8108A68(void); void sub_8108A84(void); void sub_8108B04(void); @@ -69,8 +71,10 @@ void sub_810B4BC(u8 taskId); void sub_810B5D4(u8 taskId); extern const struct BgTemplate gUnknown_8452CF4[2]; +extern const u8 *const gUnknown_8452CFC[]; extern const u8 gUnknown_8452F60[]; extern const u8 gUnknown_8452F66[]; +extern const struct ScrollArrowsTemplate gUnknown_8452F6C; extern const u8 gUnknown_8452F7C[]; void GoToBagMenu(u8 location, u8 a1, MainCallback a2) @@ -506,3 +510,91 @@ void bag_menu_print_cursor(u8 y, u8 colorIdx) sub_810B8F0(0, 2, gFameCheckerText_ListMenuCursor, 1, y, 0, 0, 0, colorIdx); } } + +void sub_81087EC(void) +{ + FillWindowPixelBuffer(2, PIXEL_FILL(0)); + sub_810B958(gUnknown_8452CFC[gUnknown_203ACFC.pocket], gUnknown_203ACFC.pocket); +} + +void sub_8108818(s32 itemIndex) +{ + const u8 *description; + if (itemIndex != gUnknown_203AD10->field_0A[gUnknown_203ACFC.pocket]) + description = ItemId_GetDescription(BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, itemIndex)); + else + description = gUnknown_84162F5; + FillWindowPixelBuffer(1, PIXEL_FILL(0)); + sub_810B8F0(1, 2, description, 0, 3, 2, 0, 0, 0); +} + +void sub_8108888(void) +{ + gUnknown_203AD10->field_08 = AddScrollIndicatorArrowPairParameterized( + 2, + 160, + 8, + 104, + gUnknown_203AD10->field_0A[gUnknown_203ACFC.pocket] - gUnknown_203AD10->field_0D[gUnknown_203ACFC.pocket] + 1, + 110, + 110, + &gUnknown_203ACFC.cursorPos[gUnknown_203ACFC.pocket] + ); +} + +void sub_81088D8(void) +{ + if (gUnknown_203AD10->field_05_0 != 1) + { + gUnknown_203AD10->field_09 = AddScrollIndicatorArrowPair(&gUnknown_8452F6C, &gUnknown_203ACFC.pocket); + } +} + +void sub_8108908(void) +{ + gUnknown_203AD10->field_06 = 1; + gUnknown_203AD10->field_08 = AddScrollIndicatorArrowPairParameterized( + 2, + 152, + 72, + 104, + 2, + 110, + 110, + &gUnknown_203AD10->field_06 + ); +} + +void sub_8108940(void) +{ + gUnknown_203AD10->field_06 = 1; + gUnknown_203AD10->field_08 = AddScrollIndicatorArrowPairParameterized( + 2, + 212, + 120, + 152, + 2, + 110, + 110, + &gUnknown_203AD10->field_06 + ); +} + +void sub_8108978(void) +{ + if (gUnknown_203AD10->field_08 != 0xFF) + { + RemoveScrollIndicatorArrowPair(gUnknown_203AD10->field_08); + gUnknown_203AD10->field_08 = 0xFF; + } + sub_810899C(); +} + +void sub_810899C(void) +{ + if (gUnknown_203AD10->field_09 != 0xFF) + { + RemoveScrollIndicatorArrowPair(gUnknown_203AD10->field_09); + gUnknown_203AD10->field_09 = 0xFF; + } +} diff --git a/sym_ewram.txt b/sym_ewram.txt index 188ccd3aa..cb8a6f205 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -336,16 +336,7 @@ gUnknown_203ACF0: @ 203ACF0 .include "src/list_menu.o" .align 2 gUnknown_203ACFC: @ 203ACFC - .space 0x6 - -gUnknown_203AD02: @ 203AD02 - .space 0x2 - -gUnknown_203AD04: @ 203AD04 - .space 0x6 - -gUnknown_203AD0A: @ 203AD0A - .space 0x6 + .space 0x14 gUnknown_203AD10: @ 203AD10 .space 0x4 |