summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@gmail.com>2020-01-17 22:23:20 -0500
committerPikalaxALT <PikalaxALT@gmail.com>2020-01-17 22:23:20 -0500
commit881199142ccac48aa975d0b59be07dfd78ad70af (patch)
treebd24a96c3b9c6b3c685a88d68bcdda7f760fd146 /src
parentdbf3ac402d94be993839bddd109e3cfaef8e3dea (diff)
through bag_menu_print_cursor
Diffstat (limited to 'src')
-rw-r--r--src/bag.c2
-rw-r--r--src/item_menu.c71
2 files changed, 71 insertions, 2 deletions
diff --git a/src/bag.c b/src/bag.c
index c30bc626d..4a962bec6 100644
--- a/src/bag.c
+++ b/src/bag.c
@@ -227,7 +227,7 @@ void sub_810B858(void)
}
}
-void sub_810B8F0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, s8 speed, u8 colorIdx)
+void sub_810B8F0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx)
{
AddTextPrinterParameterized4(windowId, fontId, x, y, letterSpacing, lineSpacing, gUnknown_84530B8[colorIdx], speed, str);
}
diff --git a/src/item_menu.c b/src/item_menu.c
index ce964b647..578170c17 100644
--- a/src/item_menu.c
+++ b/src/item_menu.c
@@ -14,6 +14,7 @@
#include "scanline_effect.h"
#include "strings.h"
#include "constants/items.h"
+#include "constants/songs.h"
struct BagMenuAlloc
{
@@ -46,10 +47,12 @@ bool8 sub_8108240(void);
u8 sub_8108388(u8 location);
bool8 sub_81083F4(void);
void sub_810842C(u8 pocket);
+void sub_8108560(u8 *dest, u16 itemId);
void sub_81085A4(s32 itemIndex, bool8 onInit, struct ListMenu *list);
void sub_8108654(u8 windowId, s32 itemId, u8 y);
-void sub_8108560(u8 *dest, u16 itemId);
+void bag_menu_print_cursor(u8 y, u8 colorIdx);
void sub_81087EC(void);
+void sub_8108818(s32 itemIndex);
void sub_8108888(void);
void sub_81088D8(void);
void sub_8108A68(void);
@@ -68,6 +71,7 @@ void sub_810B5D4(u8 taskId);
extern const struct BgTemplate gUnknown_8452CF4[2];
extern const u8 gUnknown_8452F60[];
extern const u8 gUnknown_8452F66[];
+extern const u8 gUnknown_8452F7C[];
void GoToBagMenu(u8 location, u8 a1, MainCallback a2)
{
@@ -437,3 +441,68 @@ void sub_8108560(u8 *dest, u16 itemId)
StringCopy(dest, gUnknown_8452F60);
StringAppend(dest, ItemId_GetName(itemId));
}
+
+void sub_81085A4(s32 itemIndex, bool8 onInit, struct ListMenu *list)
+{
+ if (onInit != TRUE)
+ {
+ PlaySE(SE_BAG1);
+ sub_8098580();
+ }
+ if (gUnknown_203AD10->field_04 == 0xFF)
+ {
+ DestroyItemMenuIcon(gUnknown_203AD10->field_05_4 ^ 1);
+ if (gUnknown_203AD10->field_0A[gUnknown_203ACFC.pocket] != itemIndex)
+ CreateItemMenuIcon(BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, itemIndex), gUnknown_203AD10->field_05_4);
+ else
+ CreateItemMenuIcon(ITEM_N_A, gUnknown_203AD10->field_05_4);
+ gUnknown_203AD10->field_05_4 ^= 1;
+ if (gUnknown_203AD10->field_05_6 == 0)
+ sub_8108818(itemIndex);
+ }
+}
+
+void sub_8108654(u8 windowId, s32 itemId, u8 y)
+{
+ u16 bagItemId;
+ u16 bagItemQuantity;
+ if (gUnknown_203AD10->field_04 != 0xFF)
+ {
+ if (gUnknown_203AD10->field_04 == (u8)itemId)
+ bag_menu_print_cursor(y, 2);
+ else
+ bag_menu_print_cursor(y, 0xFF);
+ }
+ if (itemId != -2 && gUnknown_203AD10->field_0A[gUnknown_203ACFC.pocket] != itemId)
+ {
+ bagItemId = BagGetItemIdByPocketPosition(gUnknown_203ACFC.pocket + 1, itemId);
+ bagItemQuantity = BagGetQuantityByPocketPosition(gUnknown_203ACFC.pocket + 1, itemId);
+ if (gUnknown_203ACFC.pocket != POCKET_KEY_ITEMS - 1 && !itemid_is_unique(bagItemId))
+ {
+ ConvertIntToDecimalStringN(gStringVar1, bagItemQuantity, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1);
+ sub_810B8F0(windowId, 0, gStringVar4, 0x6e, y, 0, 0, 0xFF, 1);
+ }
+ else if (gSaveBlock1Ptr->registeredItem != ITEM_NONE && gSaveBlock1Ptr->registeredItem == bagItemId)
+ {
+ BlitBitmapToWindow(windowId, gUnknown_8452F7C, 0x70, y, 0x18, 0x10);
+ }
+ }
+}
+
+void bag_menu_print_cursor_(u8 taskId, u8 colorIdx)
+{
+ bag_menu_print_cursor(ListMenuGetYCoordForPrintingArrowCursor(taskId), colorIdx);
+}
+
+void bag_menu_print_cursor(u8 y, u8 colorIdx)
+{
+ if (colorIdx == 0xFF)
+ {
+ FillWindowPixelRect(0, PIXEL_FILL(0), 1, y, GetMenuCursorDimensionByFont(2, 0), GetMenuCursorDimensionByFont(2, 1));
+ }
+ else
+ {
+ sub_810B8F0(0, 2, gFameCheckerText_ListMenuCursor, 1, y, 0, 0, 0, colorIdx);
+ }
+}