summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2019-06-16 18:12:11 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2019-06-16 18:12:11 -0400
commitd681d7f727e01f1e5b167f5042e9edd1542ae6c6 (patch)
treed08afe4f1968d1ea25c1666dcdc485fb42d449d8
parentb624de76db01db7e8b2e65f054483bfe1ec4b590 (diff)
item_pc: through sub_810E200
-rw-r--r--asm/item.s8
-rw-r--r--asm/item_menu.s4
-rw-r--r--asm/item_pc.s455
-rw-r--r--asm/party_menu.s2
-rw-r--r--asm/pokemon_special_anim.s2
-rw-r--r--asm/pokemon_storage_system.s4
-rw-r--r--include/item.h2
-rw-r--r--include/item_menu.h1
-rw-r--r--include/item_menu_icons.h2
-rw-r--r--include/list_menu.h1
-rw-r--r--include/pc_screen_effect.h1
-rw-r--r--include/strings.h1
-rw-r--r--src/item_pc.c127
-rw-r--r--src/quest_log.c28
14 files changed, 157 insertions, 481 deletions
diff --git a/asm/item.s b/asm/item.s
index ce20d4f8c..1ffaffddb 100644
--- a/asm/item.s
+++ b/asm/item.s
@@ -169,7 +169,7 @@ CopyItemName: @ 8099E90
.align 2, 0
_08099EB4: .4byte gUnknown_84162BD
_08099EB8:
- bl ItemId_GetItem
+ bl ItemId_GetName
adds r1, r0, 0
adds r0, r4, 0
bl StringCopy
@@ -1567,8 +1567,8 @@ _0809A8B8:
bx r1
thumb_func_end SanitizeItemId
- thumb_func_start ItemId_GetItem
-ItemId_GetItem: @ 809A8BC
+ thumb_func_start ItemId_GetName
+ItemId_GetName: @ 809A8BC
push {lr}
lsls r0, 16
lsrs r0, 16
@@ -1583,7 +1583,7 @@ ItemId_GetItem: @ 809A8BC
bx r1
.align 2, 0
_0809A8D8: .4byte gItems
- thumb_func_end ItemId_GetItem
+ thumb_func_end ItemId_GetName
thumb_func_start itemid_get_number
itemid_get_number: @ 809A8DC
diff --git a/asm/item_menu.s b/asm/item_menu.s
index dd1fde957..3aad5b4f5 100644
--- a/asm/item_menu.s
+++ b/asm/item_menu.s
@@ -981,7 +981,7 @@ _08108584:
bl StringCopy
_0810858C:
adds r0, r5, 0
- bl ItemId_GetItem
+ bl ItemId_GetName
adds r1, r0, 0
adds r0, r4, 0
bl StringAppend
@@ -2853,7 +2853,7 @@ sub_81093B8: @ 81093B8
bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
- bl ItemId_GetItem
+ bl ItemId_GetName
adds r1, r0, 0
adds r0, r4, 0
bl StringCopy
diff --git a/asm/item_pc.s b/asm/item_pc.s
index 8d27851ef..dadc7ff92 100644
--- a/asm/item_pc.s
+++ b/asm/item_pc.s
@@ -5,461 +5,6 @@
.text
- thumb_func_start sub_810DEA0
-sub_810DEA0: @ 810DEA0
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0810DF10 @ =gTasks+0x8
- adds r6, r0, r1
- ldr r0, _0810DF14 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810DF9E
- bl sub_80A0A98
- lsls r0, 24
- cmp r0, 0
- bne _0810DF9E
- ldr r0, _0810DF18 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0810DF20
- ldrb r0, [r6]
- mov r4, sp
- adds r4, 0x2
- mov r1, sp
- adds r2, r4, 0
- bl ListMenuGetScrollAndRow
- mov r0, sp
- ldrh r1, [r0]
- ldrh r0, [r4]
- adds r1, r0
- ldr r0, _0810DF1C @ =gUnknown_203ADBC
- ldr r0, [r0]
- ldrb r0, [r0, 0x7]
- cmp r1, r0
- beq _0810DF20
- movs r0, 0x5
- bl PlaySE
- mov r0, sp
- ldrh r1, [r4]
- ldrh r0, [r0]
- adds r1, r0
- lsls r1, 16
- asrs r1, 16
- adds r0, r5, 0
- bl sub_810DFE0
- b _0810DF9E
- .align 2, 0
-_0810DF10: .4byte gTasks+0x8
-_0810DF14: .4byte gPaletteFade
-_0810DF18: .4byte gMain
-_0810DF1C: .4byte gUnknown_203ADBC
-_0810DF20:
- ldrb r0, [r6]
- bl ListMenuHandleInput
- adds r4, r0, 0
- ldrb r0, [r6]
- ldr r1, _0810DF44 @ =gUnknown_203ADCC + 0x4
- adds r2, r1, 0x2
- bl ListMenuGetScrollAndRow
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- beq _0810DF48
- adds r0, 0x1
- cmp r4, r0
- bne _0810DF6C
- b _0810DF9E
- .align 2, 0
-_0810DF44: .4byte gUnknown_203ADCC + 0x4
-_0810DF48:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl sub_810DE94
- ldr r0, _0810DF64 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0810DF68 @ =sub_810DC8C
- str r0, [r1]
- b _0810DF9E
- .align 2, 0
-_0810DF64: .4byte gTasks
-_0810DF68: .4byte sub_810DC8C
-_0810DF6C:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_810DE6C
- bl sub_810DBD0
- strh r4, [r6, 0x2]
- lsls r0, r4, 16
- lsrs r0, 16
- bl ItemPc_GetItemQuantityBySlotId
- strh r0, [r6, 0x4]
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_810DAB4
- ldr r1, _0810DFA8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810DFAC @ =sub_810E274
- str r1, [r0]
-_0810DF9E:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DFA8: .4byte gTasks
-_0810DFAC: .4byte sub_810E274
- thumb_func_end sub_810DEA0
-
- thumb_func_start sub_810DFB0
-sub_810DFB0: @ 810DFB0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl sub_810DE6C
- bl sub_810DB5C
- ldr r1, _0810DFD8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810DFDC @ =sub_810DEA0
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DFD8: .4byte gTasks
-_0810DFDC: .4byte sub_810DEA0
- thumb_func_end sub_810DFB0
-
- thumb_func_start sub_810DFE0
-sub_810DFE0: @ 810DFE0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x14
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 16
- lsrs r4, 16
- lsls r5, r0, 2
- adds r5, r0
- lsls r5, 3
- ldr r0, _0810E09C @ =gTasks+0x8
- mov r8, r0
- adds r6, r5, r0
- ldrb r0, [r6]
- movs r1, 0x10
- movs r2, 0x1
- bl sub_8107BD0
- strh r4, [r6, 0x2]
- ldr r0, _0810E0A0 @ =gUnknown_203ADBC
- ldr r0, [r0]
- movs r1, 0
- mov r9, r1
- strb r4, [r0, 0x4]
- ldr r4, _0810E0A4 @ =gStringVar1
- ldrh r0, [r6, 0x2]
- bl ItemPc_GetItemIdBySlotId
- lsls r0, 16
- lsrs r0, 16
- bl ItemId_GetItem
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldr r4, _0810E0A8 @ =gStringVar4
- ldr r1, _0810E0AC @ =gUnknown_841633F
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r1, 0x3
- str r1, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- str r1, [sp, 0x8]
- mov r0, r9
- str r0, [sp, 0xC]
- str r0, [sp, 0x10]
- movs r0, 0x1
- movs r1, 0x2
- adds r2, r4, 0
- movs r3, 0
- bl sub_810EA34
- movs r4, 0x20
- negs r4, r4
- ldrb r0, [r6]
- bl ListMenuGetYCoordForPrintingArrowCursor
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_80986A8
- movs r0, 0
- bl sub_8098660
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_810DAB4
- movs r1, 0x8
- negs r1, r1
- add r8, r1
- add r5, r8
- ldr r0, _0810E0B0 @ =sub_810E0B4
- str r0, [r5]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E09C: .4byte gTasks+0x8
-_0810E0A0: .4byte gUnknown_203ADBC
-_0810E0A4: .4byte gStringVar1
-_0810E0A8: .4byte gStringVar4
-_0810E0AC: .4byte gUnknown_841633F
-_0810E0B0: .4byte sub_810E0B4
- thumb_func_end sub_810DFE0
-
- thumb_func_start sub_810E0B4
-sub_810E0B4: @ 810E0B4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- mov r8, r6
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 3
- ldr r0, _0810E11C @ =gTasks+0x8
- adds r4, r0
- ldrb r0, [r4]
- bl ListMenuHandleInput
- ldrb r0, [r4]
- ldr r7, _0810E120 @ =gUnknown_203ADCC + 0x4
- adds r2, r7, 0x2
- adds r1, r7, 0
- bl ListMenuGetScrollAndRow
- movs r5, 0x20
- negs r5, r5
- ldrb r0, [r4]
- bl ListMenuGetYCoordForPrintingArrowCursor
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r5, 0
- bl sub_80986A8
- ldr r0, _0810E124 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x5
- ands r0, r1
- cmp r0, 0
- beq _0810E12C
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0810E128 @ =gUnknown_203ADBC
- ldr r1, [r0]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- subs r0, r7, 0x4
- ldrh r1, [r0, 0x4]
- ldrh r0, [r0, 0x6]
- adds r1, r0
- adds r0, r6, 0
- bl sub_810E160
- b _0810E150
- .align 2, 0
-_0810E11C: .4byte gTasks+0x8
-_0810E120: .4byte gUnknown_203ADCC + 0x4
-_0810E124: .4byte gMain
-_0810E128: .4byte gUnknown_203ADBC
-_0810E12C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810E150
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0810E15C @ =gUnknown_203ADBC
- ldr r1, [r0]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- subs r0, r7, 0x4
- ldrh r1, [r0, 0x4]
- ldrh r0, [r0, 0x6]
- adds r1, r0
- mov r0, r8
- bl sub_810E200
-_0810E150:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E15C: .4byte gUnknown_203ADBC
- thumb_func_end sub_810E0B4
-
- thumb_func_start sub_810E160
-sub_810E160: @ 810E160
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r7, r0, 3
- ldr r0, _0810E190 @ =gTasks+0x8
- mov r8, r0
- adds r6, r7, r0
- movs r0, 0x2
- ldrsh r1, [r6, r0]
- cmp r1, r4
- beq _0810E186
- subs r0, r4, 0x1
- cmp r1, r0
- bne _0810E194
-_0810E186:
- adds r0, r2, 0
- adds r1, r4, 0
- bl sub_810E200
- b _0810E1E6
- .align 2, 0
-_0810E190: .4byte gTasks+0x8
-_0810E194:
- ldr r0, _0810E1F0 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r2, 0xA6
- lsls r2, 2
- adds r0, r2
- adds r2, r4, 0
- bl sub_8108D60
- ldrb r0, [r6]
- ldr r5, _0810E1F4 @ =gUnknown_203ADCC + 0x4
- adds r2, r5, 0x2
- adds r1, r5, 0
- bl DestroyListMenu
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- cmp r0, r4
- bcs _0810E1C0
- subs r1, r5, 0x4
- ldrh r0, [r1, 0x6]
- subs r0, 0x1
- strh r0, [r1, 0x6]
-_0810E1C0:
- bl sub_810D878
- ldr r0, _0810E1F8 @ =gMultiuseListMenuTemplate
- subs r2, r5, 0x4
- ldrh r1, [r2, 0x4]
- ldrh r2, [r2, 0x6]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6]
- movs r0, 0x1
- bl sub_8098660
- mov r0, r8
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, _0810E1FC @ =sub_810DEA0
- str r1, [r0]
-_0810E1E6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E1F0: .4byte gSaveBlock1Ptr
-_0810E1F4: .4byte gUnknown_203ADCC + 0x4
-_0810E1F8: .4byte gMultiuseListMenuTemplate
-_0810E1FC: .4byte sub_810DEA0
- thumb_func_end sub_810E160
-
- thumb_func_start sub_810E200
-sub_810E200: @ 810E200
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r7, r1, 3
- ldr r0, _0810E264 @ =gTasks+0x8
- mov r8, r0
- adds r6, r7, r0
- ldrb r0, [r6]
- ldr r5, _0810E268 @ =gUnknown_203ADCC + 0x4
- adds r2, r5, 0x2
- adds r1, r5, 0
- bl DestroyListMenu
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- cmp r0, r4
- bcs _0810E234
- subs r1, r5, 0x4
- ldrh r0, [r1, 0x6]
- subs r0, 0x1
- strh r0, [r1, 0x6]
-_0810E234:
- bl sub_810D878
- ldr r0, _0810E26C @ =gMultiuseListMenuTemplate
- subs r2, r5, 0x4
- ldrh r1, [r2, 0x4]
- ldrh r2, [r2, 0x6]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6]
- movs r0, 0x1
- bl sub_8098660
- mov r0, r8
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, _0810E270 @ =sub_810DEA0
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E264: .4byte gTasks+0x8
-_0810E268: .4byte gUnknown_203ADCC + 0x4
-_0810E26C: .4byte gMultiuseListMenuTemplate
-_0810E270: .4byte sub_810DEA0
- thumb_func_end sub_810E200
-
thumb_func_start sub_810E274
sub_810E274: @ 810E274
push {r4-r6,lr}
diff --git a/asm/party_menu.s b/asm/party_menu.s
index b3ce0f3be..b18e3f9a5 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -3627,7 +3627,7 @@ _08120678:
_0812067E:
ldr r0, _08120698 @ =0x0000016d
_08120680:
- bl ItemId_GetItem
+ bl ItemId_GetName
adds r1, r0, 0
_08120686:
ldr r0, _0812069C @ =gStringVar1
diff --git a/asm/pokemon_special_anim.s b/asm/pokemon_special_anim.s
index abbf7a14f..117c81783 100644
--- a/asm/pokemon_special_anim.s
+++ b/asm/pokemon_special_anim.s
@@ -1759,7 +1759,7 @@ _0811D330:
_0811D358:
adds r4, 0x14
adds r0, r7, 0
- bl ItemId_GetItem
+ bl ItemId_GetName
adds r1, r0, 0
adds r0, r4, 0
bl StringCopy
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index 366f714c2..46c36058e 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -16876,7 +16876,7 @@ _08093EF2:
beq _08093F78
ldr r3, _08093F74 @ =0x00000d61
adds r4, r3
- bl ItemId_GetItem
+ bl ItemId_GetName
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0
@@ -21364,7 +21364,7 @@ sub_80961A8: @ 80961A8
ldr r1, _080961C0 @ =0x00002224
adds r0, r1
ldrh r0, [r0]
- bl ItemId_GetItem
+ bl ItemId_GetName
pop {r1}
bx r1
.align 2, 0
diff --git a/include/item.h b/include/item.h
index ffc32b50a..9d67bec66 100644
--- a/include/item.h
+++ b/include/item.h
@@ -44,7 +44,7 @@ bool8 CheckPCHasItem(u16 itemId, u16 count);
bool8 AddPCItem(u16 itemId, u16 count);
void RemovePCItem(u8 index, u16 count);
void SwapRegisteredBike(void);
-const struct Item *ItemId_GetItem(u16 itemId);
+const u8 *ItemId_GetName(u16 itemId);
u16 ItemId_GetId(u16 itemId);
u16 ItemId_GetPrice(u16 itemId);
u8 ItemId_GetHoldEffect(u16 itemId);
diff --git a/include/item_menu.h b/include/item_menu.h
index 2801a5001..840c357d0 100644
--- a/include/item_menu.h
+++ b/include/item_menu.h
@@ -27,5 +27,6 @@ void sub_81AAC70(void);
void sub_8108CF0(void);
void sub_810B108(u8);
void UseFameCheckerFromMenu(void);
+void sub_8108D60(struct ItemSlot * slots, int pos1, int pos2);
#endif //GUARD_ITEM_MENU_H
diff --git a/include/item_menu_icons.h b/include/item_menu_icons.h
index c964a0bdc..980016573 100644
--- a/include/item_menu_icons.h
+++ b/include/item_menu_icons.h
@@ -8,5 +8,7 @@ void sub_80985E4(void);
u8 sub_80D511C(u8 a0, u8 a1, u8 a2, u8 a3);
void sub_8098940(bool8 a0);
void sub_80988E8(u16 itemId, bool8 a0);
+void sub_80986A8(s16 x, u16 y);
+void sub_8098660(u8);
#endif // GUARD_ITEM_MENU_ICONS
diff --git a/include/list_menu.h b/include/list_menu.h
index 6116ee39a..290b1d925 100644
--- a/include/list_menu.h
+++ b/include/list_menu.h
@@ -62,5 +62,6 @@ u16 ListMenuGetYCoordForPrintingArrowCursor(u8);
void sub_8107D38(u8, u8);
s32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const struct ListMenuTemplate *listMenuTemplate, u8 arg2, u16 tileNum, u16 palNum);
void ListMenuDefaultCursorMoveFunc(s32, u8, struct ListMenu *);
+void sub_8107BD0(u8 taskId, u8 attr, s32 value);
#endif //GUARD_LIST_MENU_H
diff --git a/include/pc_screen_effect.h b/include/pc_screen_effect.h
index 91e1f6d1d..6d68de2d3 100644
--- a/include/pc_screen_effect.h
+++ b/include/pc_screen_effect.h
@@ -4,5 +4,6 @@
void sub_80A0A48(u16, u16, u8);
void sub_80A0A70(u16, u16, u8);
bool8 sub_80A0AAC(void);
+bool8 sub_80A0A98(void);
#endif //GUARD_PC_SCREEN_EFFECT_H
diff --git a/include/strings.h b/include/strings.h
index 3c374270d..822bd4783 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -149,6 +149,7 @@ extern const u8 gString_Someone[];
extern const u8 gString_Help[];
extern const u8 gString_HelpSystem_ClearTo8[];
+extern const u8 gUnknown_841633F[];
extern const u8 gUnknown_8416655[];
extern const u8 gUnknown_84178A7[];
extern const u8 gUnknown_84178BE[];
diff --git a/src/item_pc.c b/src/item_pc.c
index 8b0b67d2f..7a3fbd7af 100644
--- a/src/item_pc.c
+++ b/src/item_pc.c
@@ -6,6 +6,7 @@
#include "graphics.h"
#include "help_system.h"
#include "item.h"
+#include "item_menu.h"
#include "item_menu_icons.h"
#include "list_menu.h"
#include "main.h"
@@ -76,6 +77,11 @@ void sub_810DDA4(void);
void sub_810DE08(void);
void sub_810DE94(u8);
void sub_810DEA0(u8 taskId);
+void sub_810DFE0(u8 taskId, s16 pos);
+void sub_810E0B4(u8 taskId);
+void sub_810E160(u8 taskId, u32 pos);
+void sub_810E200(u8 taskId, u32 pos);
+void sub_810E274(u8 taskId);
void sub_810E8F0(void);
void sub_810EA34(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx);
@@ -368,7 +374,7 @@ void sub_810D878(void)
for (i = 0; i < gUnknown_203ADBC->field_07; i++)
{
- gUnknown_203ADC4[i].label = ItemId_GetItem(gSaveBlock1Ptr->pcItems[i].itemId)->name;
+ gUnknown_203ADC4[i].label = ItemId_GetName(gSaveBlock1Ptr->pcItems[i].itemId);
gUnknown_203ADC4[i].index = i;
}
gUnknown_203ADC4[i].label = gFameCheckerText_Cancel;
@@ -598,3 +604,122 @@ void sub_810DE94(u8 a0)
{
gUnknown_203ADCC.field_8 = a0;
}
+
+void sub_810DEA0(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+ u16 scroll;
+ u16 row;
+ s32 input;
+
+ if (!gPaletteFade.active && !sub_80A0A98())
+ {
+ if (JOY_NEW(SELECT_BUTTON))
+ {
+ ListMenuGetScrollAndRow(data[0], &scroll, &row);
+ if (scroll + row != gUnknown_203ADBC->field_07)
+ {
+ PlaySE(SE_SELECT);
+ sub_810DFE0(taskId, scroll + row);
+ return;
+ }
+ }
+ input = ListMenuHandleInput(data[0]);
+ ListMenuGetScrollAndRow(data[0], &gUnknown_203ADCC.field_4, &gUnknown_203ADCC.field_6);
+ switch (input)
+ {
+ case -1:
+ break;
+ case -2:
+ PlaySE(SE_SELECT);
+ sub_810DE94(0);
+ gTasks[taskId].func = sub_810DC8C;
+ break;
+ default:
+ PlaySE(SE_SELECT);
+ sub_810DE6C(1);
+ sub_810DBD0();
+ data[1] = input;
+ data[2] = ItemPc_GetItemQuantityBySlotId(input);
+ sub_810DAB4(data[0], 2);
+ gTasks[taskId].func = sub_810E274;
+ break;
+ }
+ }
+}
+
+void sub_810DFB0(u8 taskId)
+{
+ sub_810DE6C(0);
+ sub_810DB5C();
+ gTasks[taskId].func = sub_810DEA0;
+}
+
+void sub_810DFE0(u8 taskId, s16 pos)
+{
+ s16 * data = gTasks[taskId].data;
+
+ sub_8107BD0(data[0], 16, 1);
+ data[1] = pos;
+ gUnknown_203ADBC->field_04 = pos;
+ StringCopy(gStringVar1, ItemId_GetName(ItemPc_GetItemIdBySlotId(data[1])));
+ StringExpandPlaceholders(gStringVar4, gUnknown_841633F);
+ FillWindowPixelBuffer(1, 0x00);
+ sub_810EA34(1, 2, gStringVar4, 0, 3, 2, 3, 0, 0);
+ sub_80986A8(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0]));
+ sub_8098660(0);
+ sub_810DAB4(data[0], 2);
+ gTasks[taskId].func = sub_810E0B4;
+}
+
+void sub_810E0B4(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ ListMenuHandleInput(data[0]);
+ ListMenuGetScrollAndRow(data[0], &gUnknown_203ADCC.field_4, &gUnknown_203ADCC.field_6);
+ sub_80986A8(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0]));
+ if (JOY_NEW(A_BUTTON | SELECT_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ gUnknown_203ADBC->field_04 = 0xFF;
+ sub_810E160(taskId, gUnknown_203ADCC.field_4 + gUnknown_203ADCC.field_6);
+ }
+ else if (JOY_NEW(B_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ gUnknown_203ADBC->field_04 = 0xFF;
+ sub_810E200(taskId, gUnknown_203ADCC.field_4 + gUnknown_203ADCC.field_6);
+ }
+}
+
+void sub_810E160(u8 taskId, u32 pos)
+{
+ s16 * data = gTasks[taskId].data;
+ if (data[1] == pos || data[1] == pos - 1)
+ sub_810E200(taskId, pos);
+ else
+ {
+ sub_8108D60(gSaveBlock1Ptr->pcItems, data[1], pos);
+ DestroyListMenu(data[0], &gUnknown_203ADCC.field_4, &gUnknown_203ADCC.field_6);
+ if (data[1] < pos)
+ gUnknown_203ADCC.field_6--;
+ sub_810D878();
+ data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_203ADCC.field_4, gUnknown_203ADCC.field_6);
+ sub_8098660(1);
+ gTasks[taskId].func = sub_810DEA0;
+ }
+}
+
+void sub_810E200(u8 taskId, u32 pos)
+{
+ s16 * data = gTasks[taskId].data;
+
+ DestroyListMenu(data[0], &gUnknown_203ADCC.field_4, &gUnknown_203ADCC.field_6);
+ if (data[1] < pos)
+ gUnknown_203ADCC.field_6--;
+ sub_810D878();
+ data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_203ADCC.field_4, gUnknown_203ADCC.field_6);
+ sub_8098660(1);
+ gTasks[taskId].func = sub_810DEA0;
+}
diff --git a/src/quest_log.c b/src/quest_log.c
index ed061a8b6..258e6a688 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -3708,7 +3708,7 @@ const u16 * sub_8113FBC(const u16 * a0)
case POCKET_ITEMS:
case POCKET_POKE_BALLS:
case POCKET_BERRY_POUCH:
- StringCopy(gStringVar1, ItemId_GetItem(r5[0])->name);
+ StringCopy(gStringVar1, ItemId_GetName(r5[0]));
if (r5[0] == ITEM_ESCAPE_ROPE)
{
sub_80C4DF8(gStringVar2, r5[2]);
@@ -3725,7 +3725,7 @@ const u16 * sub_8113FBC(const u16 * a0)
}
break;
case POCKET_KEY_ITEMS:
- StringCopy(gStringVar1, ItemId_GetItem(r5[0])->name);
+ StringCopy(gStringVar1, ItemId_GetName(r5[0]));
StringExpandPlaceholders(gStringVar4, gUnknown_841A220);
break;
case POCKET_TM_CASE:
@@ -3771,7 +3771,7 @@ const u16 * sub_8114188(const u16 * a0)
{
const u16 * r4 = sub_8113E88(5, a0);
QuestLog_AutoGetSpeciesName(r4[1], gStringVar1, 0);
- StringCopy(gStringVar2, ItemId_GetItem(r4[0])->name);
+ StringCopy(gStringVar2, ItemId_GetName(r4[0]));
StringExpandPlaceholders(gStringVar4, gUnknown_841AB74);
r4 += 2;
return r4;
@@ -3787,7 +3787,7 @@ const u16 * sub_81141E4(const u16 * a0)
const u16 * r4 = sub_8113E88(6, a0);
QuestLog_AutoGetSpeciesName(r4[1], gStringVar1, 0);
- StringCopy(gStringVar2, ItemId_GetItem(r4[0])->name);
+ StringCopy(gStringVar2, ItemId_GetName(r4[0]));
StringExpandPlaceholders(gStringVar4, gUnknown_841AB8E);
r4 += 2;
return r4;
@@ -3803,7 +3803,7 @@ const u16 * sub_8114240(const u16 * a0)
const u16 * r4 = sub_8113E88(7, a0);
QuestLog_AutoGetSpeciesName(r4[1], gStringVar2, 0);
- StringCopy(gStringVar1, ItemId_GetItem(r4[0])->name);
+ StringCopy(gStringVar1, ItemId_GetName(r4[0]));
StringExpandPlaceholders(gStringVar4, gUnknown_841A6A5);
r4 += 2;
return r4;
@@ -3819,7 +3819,7 @@ const u16 * sub_811429C(const u16 * a0)
const u16 * r4 = sub_8113E88(8, a0);
QuestLog_AutoGetSpeciesName(r4[1], gStringVar1, 0);
- StringCopy(gStringVar2, ItemId_GetItem(r4[0])->name);
+ StringCopy(gStringVar2, ItemId_GetName(r4[0]));
StringExpandPlaceholders(gStringVar4, gUnknown_841A1CD);
r4 += 2;
return r4;
@@ -3846,8 +3846,8 @@ const u16 * sub_8114324(const u16 * a0)
{
const u16 * r4 = sub_8113E88(9, a0);
QuestLog_AutoGetSpeciesName(r4[2], gStringVar1, 0);
- StringCopy(gStringVar2, ItemId_GetItem(r4[0])->name);
- StringCopy(gStringVar3, ItemId_GetItem(r4[1])->name);
+ StringCopy(gStringVar2, ItemId_GetName(r4[0]));
+ StringCopy(gStringVar3, ItemId_GetName(r4[1]));
StringExpandPlaceholders(gStringVar4, gUnknown_841A193);
r4 += 3;
return r4;
@@ -3862,8 +3862,8 @@ const u16 * sub_8114394(const u16 * a0)
{
const u16 * r4 = sub_8113E88(10, a0);
QuestLog_AutoGetSpeciesName(r4[2], gStringVar2, 0);
- StringCopy(gStringVar3, ItemId_GetItem(r4[0])->name);
- StringCopy(gStringVar1, ItemId_GetItem(r4[1])->name);
+ StringCopy(gStringVar3, ItemId_GetName(r4[0]));
+ StringCopy(gStringVar1, ItemId_GetName(r4[1]));
StringExpandPlaceholders(gStringVar4, gUnknown_841A6E1);
r4 += 3;
return r4;
@@ -4817,7 +4817,7 @@ const u16 * sub_8115518(const u16 * a0)
UnkTextUtil_Reset();
sub_80C4DF8(gStringVar1, r7[0]);
UnkTextUtil_SetPtrI(0, gStringVar1);
- UnkTextUtil_SetPtrI(1, ItemId_GetItem(r4[0])->name);
+ UnkTextUtil_SetPtrI(1, ItemId_GetName(r4[0]));
if (r4[1] < 2)
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A7DD);
else
@@ -4852,7 +4852,7 @@ const u16 * sub_81155E0(const u16 * a0) {
if (r7[1] == 0) {
UnkTextUtil_SetPtrI(0, gSaveBlock2Ptr->playerName);
UnkTextUtil_SetPtrI(1, gStringVar1);
- UnkTextUtil_SetPtrI(2, ItemId_GetItem(r5[0])->name);
+ UnkTextUtil_SetPtrI(2, ItemId_GetName(r5[0]));
if (r5[1] == 1)
UnkTextUtil_SetPtrI(3, gUnknown_841A8D4);
else
@@ -4867,7 +4867,7 @@ const u16 * sub_81155E0(const u16 * a0) {
else
{
UnkTextUtil_SetPtrI(0, gStringVar1);
- UnkTextUtil_SetPtrI(1, ItemId_GetItem(r5[0])->name);
+ UnkTextUtil_SetPtrI(1, ItemId_GetName(r5[0]));
ConvertIntToDecimalStringN(gStringVar2, r6, STR_CONV_MODE_LEFT_ALIGN, 6);
UnkTextUtil_SetPtrI(2, gStringVar2);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A896);
@@ -4890,7 +4890,7 @@ const u16 * sub_8115700(const u16 * a0)
const u16 * r4 = sub_8113E88(40, a0);
const u8 * r5 = (const u8 *)r4 + 2;
sub_80C4DF8(gStringVar1, r5[0]);
- StringCopy(gStringVar2, ItemId_GetItem(r4[0])->name);
+ StringCopy(gStringVar2, ItemId_GetName(r4[0]));
StringExpandPlaceholders(gStringVar4, gUnknown_841B03F);
return (const u16 *)(r5 + 2);
}