summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/item_menu.c141
1 files changed, 141 insertions, 0 deletions
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);
+}