summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/item_menu.s253
-rw-r--r--include/bag.h2
-rw-r--r--include/strings.h3
-rw-r--r--src/bag.c2
-rw-r--r--src/item_menu.c92
-rw-r--r--sym_ewram.txt11
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
diff --git a/src/bag.c b/src/bag.c
index 4a962bec6..b5ba01b4d 100644
--- a/src/bag.c
+++ b/src/bag.c
@@ -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