diff options
| -rw-r--r-- | asm/item_menu.s | 549 | ||||
| -rw-r--r-- | src/item_menu.c | 141 | 
2 files changed, 141 insertions, 549 deletions
| diff --git a/asm/item_menu.s b/asm/item_menu.s index 2b42a59b8..f13ae7f38 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -5,555 +5,6 @@  	.text -	thumb_func_start sub_810971C -sub_810971C: @ 810971C -	push {r4-r6,lr} -	mov r6, r10 -	mov r5, r9 -	mov r4, r8 -	push {r4-r6} -	sub sp, 0x14 -	adds r4, r0, 0 -	adds r6, r1, 0 -	lsls r4, 16 -	lsrs r4, 16 -	movs r0, 0x6 -	movs r1, 0x2 -	bl sub_810B9DC -	adds r5, r0, 0 -	lsls r5, 24 -	lsrs r5, 24 -	ldr r0, _081097D4 @ =gUnknown_203ACFC -	ldrb r0, [r0, 0x6] -	adds r0, 0x1 -	lsls r0, 24 -	lsrs r0, 24 -	adds r1, r4, 0 -	bl BagGetItemIdByPocketPosition -	lsls r0, 16 -	lsrs r0, 16 -	ldr r1, _081097D8 @ =gStringVar1 -	mov r10, r1 -	bl CopyItemName -	ldr r0, _081097DC @ =gStringVar4 -	mov r9, r0 -	adds r1, r6, 0 -	bl StringExpandPlaceholders -	movs r0, 0x2 -	str r0, [sp] -	movs r1, 0x1 -	mov r8, r1 -	str r1, [sp, 0x4] -	movs r6, 0 -	str r6, [sp, 0x8] -	str r6, [sp, 0xC] -	str r1, [sp, 0x10] -	adds r0, r5, 0 -	movs r1, 0x2 -	mov r2, r9 -	movs r3, 0 -	bl sub_810B8F0 -	movs r0, 0 -	movs r1, 0 -	bl sub_810B9DC -	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, _081097E0 @ =gText_TimesStrVar1 -	mov r0, r9 -	bl StringExpandPlaceholders -	movs r0, 0xA -	str r0, [sp] -	mov r0, r8 -	str r0, [sp, 0x4] -	str r6, [sp, 0x8] -	str r6, [sp, 0xC] -	str r0, [sp, 0x10] -	adds r0, r4, 0 -	movs r1, 0 -	mov r2, r9 -	movs r3, 0x4 -	bl sub_810B8F0 -	bl sub_8108940 -	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 -_081097D4: .4byte gUnknown_203ACFC -_081097D8: .4byte gStringVar1 -_081097DC: .4byte gStringVar4 -_081097E0: .4byte gText_TimesStrVar1 -	thumb_func_end sub_810971C - -	thumb_func_start sub_81097E4 -sub_81097E4: @ 81097E4 -	push {r4-r6,lr} -	sub sp, 0x14 -	adds r4, r0, 0 -	adds r5, r1, 0 -	lsls r4, 16 -	lsrs r4, 16 -	lsls r5, 24 -	lsrs r5, 24 -	movs r0, 0 -	bl sub_810BAD8 -	adds r6, r0, 0 -	lsls r6, 24 -	lsrs r6, 24 -	adds r0, r6, 0 -	movs r1, 0x11 -	bl FillWindowPixelBuffer -	ldr r0, _08109848 @ =gStringVar1 -	lsls r4, 16 -	asrs r4, 16 -	adds r1, r4, 0 -	movs r2, 0x2 -	adds r3, r5, 0 -	bl ConvertIntToDecimalStringN -	ldr r4, _0810984C @ =gStringVar4 -	ldr r1, _08109850 @ =gText_TimesStrVar1 -	adds r0, r4, 0 -	bl StringExpandPlaceholders -	movs r0, 0xA -	str r0, [sp] -	movs r1, 0x1 -	str r1, [sp, 0x4] -	movs r0, 0 -	str r0, [sp, 0x8] -	str r0, [sp, 0xC] -	str r1, [sp, 0x10] -	adds r0, r6, 0 -	movs r1, 0 -	adds r2, r4, 0 -	movs r3, 0x4 -	bl sub_810B8F0 -	add sp, 0x14 -	pop {r4-r6} -	pop {r0} -	bx r0 -	.align 2, 0 -_08109848: .4byte gStringVar1 -_0810984C: .4byte gStringVar4 -_08109850: .4byte gText_TimesStrVar1 -	thumb_func_end sub_81097E4 - -	thumb_func_start sub_8109854 -sub_8109854: @ 8109854 -	push {lr} -	sub sp, 0x8 -	lsls r0, 24 -	lsrs r0, 24 -	movs r2, 0xC -	subs r2, r0 -	lsls r1, r2, 3 -	adds r1, r2 -	lsls r1, 2 -	ldr r2, _0810988C @ =gUnknown_8452D08 -	adds r1, r2 -	movs r3, 0xD -	subs r3, r0 -	lsls r3, 24 -	lsrs r3, 24 -	movs r0, 0x12 -	str r0, [sp] -	movs r0, 0x1 -	str r0, [sp, 0x4] -	movs r2, 0xB -	bl CopyToBgTilemapBufferRect -	movs r0, 0x1 -	bl ScheduleBgCopyTilemapToVram -	add sp, 0x8 -	pop {r0} -	bx r0 -	.align 2, 0 -_0810988C: .4byte gUnknown_8452D08 -	thumb_func_end sub_8109854 - -	thumb_func_start sub_8109890 -sub_8109890: @ 8109890 -	push {r4-r7,lr} -	sub sp, 0x14 -	ldr r0, _081098A8 @ =gUnknown_203ACFC -	ldrb r0, [r0, 0x4] -	cmp r0, 0x6 -	beq _08109924 -	cmp r0, 0x6 -	bgt _081098AC -	cmp r0, 0x5 -	beq _081098B6 -	b _0810993C -	.align 2, 0 -_081098A8: .4byte gUnknown_203ACFC -_081098AC: -	cmp r0, 0x7 -	beq _081098B6 -	cmp r0, 0x8 -	beq _08109924 -	b _0810993C -_081098B6: -	ldr r2, _081098D4 @ =gSpecialVar_ItemId -	ldrh r1, [r2] -	ldr r0, _081098D8 @ =0x0000016d @ ITEM_BERRY_POUCH -	cmp r1, r0 -	bne _081098E8 -	ldr r1, _081098DC @ =gUnknown_203AD20 -	movs r0, 0x8 -	strb r0, [r1] -	movs r0, 0x4 -	strb r0, [r1, 0x1] -	ldr r0, _081098E0 @ =gUnknown_203AD24 -	str r1, [r0] -	ldr r1, _081098E4 @ =gUnknown_203AD28 -	movs r0, 0x2 -	b _08109AD0 -	.align 2, 0 -_081098D4: .4byte gSpecialVar_ItemId -_081098D8: .4byte 0x0000016d -_081098DC: .4byte gUnknown_203AD20 -_081098E0: .4byte gUnknown_203AD24 -_081098E4: .4byte gUnknown_203AD28 -_081098E8: -	ldrh r0, [r2] -	bl ItemId_GetBattleUsage -	lsls r0, 24 -	cmp r0, 0 -	beq _0810990C -	ldr r1, _08109900 @ =gUnknown_203AD24 -	ldr r0, _08109904 @ =gUnknown_8452F30 -	str r0, [r1] -	ldr r1, _08109908 @ =gUnknown_203AD28 -	movs r0, 0x2 -	b _08109AD0 -	.align 2, 0 -_08109900: .4byte gUnknown_203AD24 -_08109904: .4byte gUnknown_8452F30 -_08109908: .4byte gUnknown_203AD28 -_0810990C: -	ldr r1, _08109918 @ =gUnknown_203AD24 -	ldr r0, _0810991C @ =gUnknown_8452F32 -	str r0, [r1] -	ldr r1, _08109920 @ =gUnknown_203AD28 -	movs r0, 0x1 -	b _08109AD0 -	.align 2, 0 -_08109918: .4byte gUnknown_203AD24 -_0810991C: .4byte gUnknown_8452F32 -_08109920: .4byte gUnknown_203AD28 -_08109924: -	ldr r1, _08109930 @ =gUnknown_203AD24 -	ldr r0, _08109934 @ =gUnknown_8452F30 -	str r0, [r1] -	ldr r1, _08109938 @ =gUnknown_203AD28 -	movs r0, 0x2 -	b _08109AD0 -	.align 2, 0 -_08109930: .4byte gUnknown_203AD24 -_08109934: .4byte gUnknown_8452F30 -_08109938: .4byte gUnknown_203AD28 -_0810993C: -	bl MenuHelpers_LinkSomething -	lsls r0, 24 -	lsrs r0, 24 -	cmp r0, 0x1 -	beq _08109950 -	bl InUnionRoom -	cmp r0, 0x1 -	bne _081099C4 -_08109950: -	ldr r1, _08109970 @ =gSpecialVar_ItemId -	ldr r2, _08109974 @ =0xfffffe94 -	adds r0, r2, 0 -	ldrh r1, [r1] -	adds r0, r1 -	lsls r0, 16 -	lsrs r0, 16 -	cmp r0, 0x1 -	bhi _08109984 -	ldr r1, _08109978 @ =gUnknown_203AD24 -	ldr r0, _0810997C @ =gUnknown_8452F2E -	str r0, [r1] -	ldr r1, _08109980 @ =gUnknown_203AD28 -	movs r0, 0x2 -	b _08109AD0 -	.align 2, 0 -_08109970: .4byte gSpecialVar_ItemId -_08109974: .4byte 0xfffffe94 -_08109978: .4byte gUnknown_203AD24 -_0810997C: .4byte gUnknown_8452F2E -_08109980: .4byte gUnknown_203AD28 -_08109984: -	ldr r0, _08109998 @ =gUnknown_203ACFC -	ldrh r2, [r0, 0x6] -	adds r3, r0, 0 -	cmp r2, 0x1 -	bne _081099A0 -	ldr r0, _0810999C @ =gUnknown_203AD28 -	strb r2, [r0] -	adds r7, r0, 0 -	b _081099A8 -	.align 2, 0 -_08109998: .4byte gUnknown_203ACFC -_0810999C: .4byte gUnknown_203AD28 -_081099A0: -	ldr r1, _081099B8 @ =gUnknown_203AD28 -	movs r0, 0x2 -	strb r0, [r1] -	adds r7, r1, 0 -_081099A8: -	ldr r0, _081099BC @ =gUnknown_203AD24 -	ldrh r1, [r3, 0x6] -	lsls r1, 1 -	ldr r2, _081099C0 @ =gUnknown_8452F28 -	adds r1, r2 -	str r1, [r0] -	b _08109AD4 -	.align 2, 0 -_081099B8: .4byte gUnknown_203AD28 -_081099BC: .4byte gUnknown_203AD24 -_081099C0: .4byte gUnknown_8452F28 -_081099C4: -	ldr r5, _081099D8 @ =gUnknown_203ACFC -	ldrh r0, [r5, 0x6] -	cmp r0, 0x1 -	beq _08109A34 -	cmp r0, 0x1 -	bgt _081099E0 -	cmp r0, 0 -	beq _081099EC -	ldr r7, _081099DC @ =gUnknown_203AD28 -	b _08109AD4 -	.align 2, 0 -_081099D8: .4byte gUnknown_203ACFC -_081099DC: .4byte gUnknown_203AD28 -_081099E0: -	cmp r0, 0x2 -	beq _08109AC4 -	ldr r7, _081099E8 @ =gUnknown_203AD28 -	b _08109AD4 -	.align 2, 0 -_081099E8: .4byte gUnknown_203AD28 -_081099EC: -	ldr r4, _08109A0C @ =gUnknown_203AD28 -	movs r0, 0x4 -	strb r0, [r4] -	ldr r0, _08109A10 @ =gSpecialVar_ItemId -	ldrh r0, [r0] -	bl ItemIsMail -	lsls r0, 24 -	lsrs r0, 24 -	cmp r0, 0x1 -	bne _08109A1C -	ldr r1, _08109A14 @ =gUnknown_203AD24 -	ldr r0, _08109A18 @ =gUnknown_8452F24 -	str r0, [r1] -	adds r7, r4, 0 -	b _08109AD4 -	.align 2, 0 -_08109A0C: .4byte gUnknown_203AD28 -_08109A10: .4byte gSpecialVar_ItemId -_08109A14: .4byte gUnknown_203AD24 -_08109A18: .4byte gUnknown_8452F24 -_08109A1C: -	ldr r0, _08109A2C @ =gUnknown_203AD24 -	ldrh r1, [r5, 0x6] -	lsls r1, 2 -	ldr r2, _08109A30 @ =gUnknown_8452F18 -	adds r1, r2 -	str r1, [r0] -	adds r7, r4, 0 -	b _08109AD4 -	.align 2, 0 -_08109A2C: .4byte gUnknown_203AD24 -_08109A30: .4byte gUnknown_8452F18 -_08109A34: -	ldr r0, _08109A5C @ =gUnknown_203AD24 -	ldr r2, _08109A60 @ =gUnknown_203AD20 -	str r2, [r0] -	ldr r3, _08109A64 @ =gUnknown_203AD28 -	movs r0, 0x3 -	strb r0, [r3] -	movs r0, 0x4 -	strb r0, [r2, 0x2] -	ldr r0, _08109A68 @ =gSaveBlock1Ptr -	ldr r0, [r0] -	ldr r1, _08109A6C @ =0x00000296 -	adds r0, r1 -	ldr r1, _08109A70 @ =gSpecialVar_ItemId -	ldrh r0, [r0] -	adds r7, r3, 0 -	ldrh r3, [r1] -	cmp r0, r3 -	bne _08109A74 -	movs r0, 0xA -	b _08109A76 -	.align 2, 0 -_08109A5C: .4byte gUnknown_203AD24 -_08109A60: .4byte gUnknown_203AD20 -_08109A64: .4byte gUnknown_203AD28 -_08109A68: .4byte gSaveBlock1Ptr -_08109A6C: .4byte 0x00000296 -_08109A70: .4byte gSpecialVar_ItemId -_08109A74: -	movs r0, 0x2 -_08109A76: -	strb r0, [r2, 0x1] -	ldrh r1, [r1] -	ldr r3, _08109A8C @ =0xfffffe94 -	adds r0, r1, r3 -	lsls r0, 16 -	lsrs r0, 16 -	cmp r0, 0x1 -	bhi _08109A90 -	movs r0, 0x7 -	strb r0, [r2] -	b _08109AD4 -	.align 2, 0 -_08109A8C: .4byte 0xfffffe94 -_08109A90: -	lsls r1, 16 -	movs r0, 0xB4 -	lsls r0, 17 -	cmp r1, r0 -	bne _08109AB0 -	movs r0, 0x6 -	bl TestPlayerAvatarFlags -	lsls r0, 24 -	cmp r0, 0 -	beq _08109AB0 -	ldr r1, _08109AAC @ =gUnknown_203AD20 -	movs r0, 0x9 -	b _08109AB4 -	.align 2, 0 -_08109AAC: .4byte gUnknown_203AD20 -_08109AB0: -	ldr r1, _08109ABC @ =gUnknown_203AD20 -	movs r0, 0 -_08109AB4: -	strb r0, [r1] -	ldr r7, _08109AC0 @ =gUnknown_203AD28 -	b _08109AD4 -	.align 2, 0 -_08109ABC: .4byte gUnknown_203AD20 -_08109AC0: .4byte gUnknown_203AD28 -_08109AC4: -	ldr r1, _08109B98 @ =gUnknown_203AD24 -	ldr r0, _08109B9C @ =gUnknown_8452F18 -	adds r0, 0x8 -	str r0, [r1] -	ldr r1, _08109BA0 @ =gUnknown_203AD28 -	movs r0, 0x3 -_08109AD0: -	strb r0, [r1] -	adds r7, r1, 0 -_08109AD4: -	ldrb r1, [r7] -	subs r1, 0x1 -	lsls r1, 24 -	lsrs r1, 24 -	movs r0, 0xA -	bl sub_810B9DC -	adds r6, r0, 0 -	lsls r6, 24 -	lsrs r6, 24 -	movs r0, 0x2 -	movs r1, 0 -	bl GetMenuCursorDimensionByFont -	adds r5, r0, 0 -	lsls r5, 24 -	lsrs r5, 24 -	movs r0, 0x2 -	movs r1, 0x2 -	bl GetFontAttribute -	adds r4, r0, 0 -	lsls r4, 24 -	lsrs r4, 24 -	movs r0, 0x2 -	movs r1, 0x1 -	bl GetFontAttribute -	adds r0, 0x2 -	lsls r0, 24 -	lsrs r0, 24 -	str r4, [sp] -	str r0, [sp, 0x4] -	ldrb r0, [r7] -	str r0, [sp, 0x8] -	ldr r0, _08109BA4 @ =gUnknown_8452EB8 -	str r0, [sp, 0xC] -	ldr r0, _08109B98 @ =gUnknown_203AD24 -	ldr r0, [r0] -	str r0, [sp, 0x10] -	adds r0, r6, 0 -	movs r1, 0x2 -	adds r2, r5, 0 -	movs r3, 0x2 -	bl AddItemMenuActionTextPrinters -	movs r0, 0x2 -	movs r1, 0x1 -	bl GetFontAttribute -	adds r0, 0x2 -	lsls r0, 24 -	lsrs r0, 24 -	str r0, [sp] -	ldrb r0, [r7] -	str r0, [sp, 0x4] -	movs r5, 0 -	str r5, [sp, 0x8] -	adds r0, r6, 0 -	movs r1, 0x2 -	movs r2, 0 -	movs r3, 0x2 -	bl Menu_InitCursor -	movs r0, 0x6 -	movs r1, 0 -	bl sub_810B9DC -	adds r4, r0, 0 -	lsls r4, 24 -	lsrs r4, 24 -	ldr r0, _08109BA8 @ =gSpecialVar_ItemId -	ldrh r0, [r0] -	ldr r1, _08109BAC @ =gStringVar1 -	bl CopyItemName -	ldr r6, _08109BB0 @ =gStringVar4 -	ldr r1, _08109BB4 @ =gOtherText_StrVar1 -	adds r0, r6, 0 -	bl StringExpandPlaceholders -	movs r0, 0x2 -	str r0, [sp] -	movs r0, 0x1 -	str r0, [sp, 0x4] -	str r5, [sp, 0x8] -	str r5, [sp, 0xC] -	str r0, [sp, 0x10] -	adds r0, r4, 0 -	movs r1, 0x2 -	adds r2, r6, 0 -	movs r3, 0 -	bl sub_810B8F0 -	add sp, 0x14 -	pop {r4-r7} -	pop {r0} -	bx r0 -	.align 2, 0 -_08109B98: .4byte gUnknown_203AD24 -_08109B9C: .4byte gUnknown_8452F18 -_08109BA0: .4byte gUnknown_203AD28 -_08109BA4: .4byte gUnknown_8452EB8 -_08109BA8: .4byte gSpecialVar_ItemId -_08109BAC: .4byte gStringVar1 -_08109BB0: .4byte gStringVar4 -_08109BB4: .4byte gOtherText_StrVar1 -	thumb_func_end sub_8109890 -  	thumb_func_start sub_8109BB8  sub_8109BB8: @ 8109BB8  	push {r4,lr} diff --git a/src/item_menu.c b/src/item_menu.c index 66656f8bf..7d03c5170 100644 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -3,12 +3,15 @@  #include "bag.h"  #include "battle_controllers.h"  #include "decompress.h" +#include "field_player_avatar.h"  #include "graphics.h"  #include "help_system.h"  #include "item.h"  #include "item_menu.h"  #include "item_menu_icons.h" +#include "link.h"  #include "list_menu.h" +#include "mail_data.h"  #include "menu.h"  #include "menu_indicators.h"  #include "new_menu_helpers.h" @@ -40,6 +43,9 @@ EWRAM_DATA struct BagMenuAlloc * gUnknown_203AD10 = NULL;  EWRAM_DATA void * gUnknown_203AD14 = NULL;  EWRAM_DATA struct ListMenuItem * gUnknown_203AD18 = NULL;  EWRAM_DATA u8 (*gUnknown_203AD1C)[19] = NULL; +EWRAM_DATA u8 gUnknown_203AD20[4] = {}; +EWRAM_DATA const u8 *gUnknown_203AD24 = NULL; +EWRAM_DATA u8 gUnknown_203AD28 = 0;  void sub_8107F10(void);  bool8 sub_8107F3C(void); @@ -156,6 +162,12 @@ const struct MenuAction gUnknown_8452EB8[] = {      [ITEMMENUACTION_DUMMY] = {gString_Dummy, {.void_u8 = NULL}}  }; +extern const u8 gUnknown_8452F18[][4]; +extern const u8 gUnknown_8452F24[]; +extern const u8 gUnknown_8452F28[][2]; +extern const u8 gUnknown_8452F2E[]; +extern const u8 gUnknown_8452F30[]; +extern const u8 gUnknown_8452F32[];  extern const TaskFunc gUnknown_8452F34[];  extern const u8 gUnknown_8452F60[];  extern const u8 gUnknown_8452F66[]; @@ -1160,3 +1172,132 @@ void sub_810967C(u8 taskId, u32 itemIndex)      sub_81088D8();      gTasks[taskId].func = sub_8108F0C;  } + +void sub_810971C(u16 cursorPos, const u8 *str) +{ +    u8 r4; +    u8 r5 = sub_810B9DC(6, 2); +    CopyItemName(BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, cursorPos), gStringVar1); +    StringExpandPlaceholders(gStringVar4, str); +    sub_810B8F0(r5, 2, gStringVar4, 0, 2, 1, 0, 0, 1); +    r4 = sub_810B9DC(0, 0); +    ConvertIntToDecimalStringN(gStringVar1, 1, STR_CONV_MODE_LEADING_ZEROS, 3); +    StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1); +    sub_810B8F0(r4, 0, gStringVar4, 4, 10, 1, 0, 0, 1); +    sub_8108940(); +} + +void sub_81097E4(s16 value, u8 ndigits) +{ +    u8 r6 = sub_810BAD8(0); +    FillWindowPixelBuffer(r6, PIXEL_FILL(1)); +    ConvertIntToDecimalStringN(gStringVar1, value, STR_CONV_MODE_LEADING_ZEROS, ndigits); +    StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1); +    sub_810B8F0(r6, 0, gStringVar4, 4, 10, 1, 0, 0, 1); +} + +void sub_8109854(u8 a0) +{ +    CopyToBgTilemapBufferRect(1, gUnknown_8452D08[12 - a0], 11, 13 - a0, 18, 1); +    ScheduleBgCopyTilemapToVram(1); +} + +void sub_8109890(void) +{ +    u8 r6; +    u8 r4; +    switch (gUnknown_203ACFC.location) +    { +    case 5: +    case 7: +        if (gSpecialVar_ItemId == ITEM_BERRY_POUCH) +        { +            gUnknown_203AD20[0] = ITEMMENUACTION_OPEN_BERRIES; +            gUnknown_203AD20[1] = ITEMMENUACTION_CANCEL; +            gUnknown_203AD24 = gUnknown_203AD20; +            gUnknown_203AD28 = 2; +        } +        else if (ItemId_GetBattleUsage(gSpecialVar_ItemId)) +        { +            gUnknown_203AD24 = gUnknown_8452F30; +            gUnknown_203AD28 = 2; +        } +        else +        { +            gUnknown_203AD24 = gUnknown_8452F32; +            gUnknown_203AD28 = 1; +        } +        break; +    case 6: +    case 8: +        gUnknown_203AD24 = gUnknown_8452F30; +        gUnknown_203AD28 = 2; +        break; +    default: +        if (MenuHelpers_LinkSomething() == TRUE || InUnionRoom() == TRUE) +        { +            if (gSpecialVar_ItemId == ITEM_TM_CASE || gSpecialVar_ItemId == ITEM_BERRY_POUCH) +            { +                gUnknown_203AD24 = gUnknown_8452F2E; +                gUnknown_203AD28 = 2; +            } +            else +            { +                if (gUnknown_203ACFC.pocket == POCKET_KEY_ITEMS - 1) +                    gUnknown_203AD28 = 1; +                else +                    gUnknown_203AD28 = 2; +                gUnknown_203AD24 = gUnknown_8452F28[gUnknown_203ACFC.pocket]; +            } +        } +        else +        { +            switch (gUnknown_203ACFC.pocket) +            { +            case POCKET_ITEMS - 1: +                gUnknown_203AD28 = 4; +                if (ItemIsMail(gSpecialVar_ItemId) == TRUE) +                    gUnknown_203AD24 = gUnknown_8452F24; +                else +                    gUnknown_203AD24 = gUnknown_8452F18[gUnknown_203ACFC.pocket]; +                break; +            case POCKET_KEY_ITEMS - 1: +                gUnknown_203AD24 = gUnknown_203AD20; +                gUnknown_203AD28 = 3; +                gUnknown_203AD20[2] = ITEMMENUACTION_CANCEL; +                if (gSaveBlock1Ptr->registeredItem == gSpecialVar_ItemId) +                    gUnknown_203AD20[1] = ITEMMENUACTION_DESELECT; +                else +                    gUnknown_203AD20[1] = ITEMMENUACTION_REGISTER; +                if (gSpecialVar_ItemId == ITEM_TM_CASE || gSpecialVar_ItemId == ITEM_BERRY_POUCH) +                    gUnknown_203AD20[0] = ITEMMENUACTION_OPEN; +                else if (gSpecialVar_ItemId == ITEM_BICYCLE && TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_ACRO_BIKE | PLAYER_AVATAR_FLAG_MACH_BIKE)) +                    gUnknown_203AD20[0] = ITEMMENUACTION_WALK; +                else +                    gUnknown_203AD20[0] = ITEMMENUACTION_USE; +                break; +            case POCKET_POKE_BALLS - 1: +                gUnknown_203AD24 = gUnknown_8452F18[gUnknown_203ACFC.pocket]; +                gUnknown_203AD28 = 3; +                break; +            } +        } +    } +    r6 = sub_810B9DC(10, gUnknown_203AD28 - 1); +    AddItemMenuActionTextPrinters( +        r6, +        2, +        GetMenuCursorDimensionByFont(2, 0), +        2, +        GetFontAttribute(2, FONTATTR_LETTER_SPACING), +        GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT) + 2, +        gUnknown_203AD28, +        gUnknown_8452EB8, +        gUnknown_203AD24 +    ); +    Menu_InitCursor(r6, 2, 0, 2, GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT) + 2, gUnknown_203AD28, 0); +    r4 = sub_810B9DC(6, 0); +    CopyItemName(gSpecialVar_ItemId, gStringVar1); +    StringExpandPlaceholders(gStringVar4, gOtherText_StrVar1); +    sub_810B8F0(r4, 2, gStringVar4, 0, 2, 1, 0, 0, 1); +} | 
