summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2019-09-29 12:48:11 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2019-09-29 12:48:11 -0400
commit3766ddcfda811cff3a7c38808c9efe294c33ed7c (patch)
tree8b166e3118cac3b98de79edc3ab05e26e6647b8a /src
parent01d42d07f849ea476bad3e80fb75c36806f39382 (diff)
berry pouch through sub_813DD74
Diffstat (limited to 'src')
-rw-r--r--src/berry_pouch.c136
1 files changed, 135 insertions, 1 deletions
diff --git a/src/berry_pouch.c b/src/berry_pouch.c
index a00a15f0c..31657a381 100644
--- a/src/berry_pouch.c
+++ b/src/berry_pouch.c
@@ -18,6 +18,8 @@
#include "strings.h"
#include "string_util.h"
#include "sound.h"
+#include "link.h"
+#include "menu.h"
#include "menu_indicators.h"
#include "constants/items.h"
#include "constants/songs.h"
@@ -49,6 +51,10 @@ EWRAM_DATA struct BerryPouchStruct_203F36C *gUnknown_203F36C = NULL;
EWRAM_DATA struct BerryPouchStruct_203F370 gUnknown_203F370 = {};
EWRAM_DATA struct ListMenuItem *gUnknown_203F37C = NULL;
EWRAM_DATA u8 *gUnknown_203F380 = NULL;
+EWRAM_DATA const u8 *gUnknown_203F384 = NULL;
+EWRAM_DATA u8 gUnknown_203F388 = 0;
+ALIGNED(4) EWRAM_DATA u8 gUnknown_203F38C[14] = {};
+ALIGNED(4) EWRAM_DATA u8 gUnknown_203F39C = 0;
void sub_813CE30(void);
bool8 sub_813CE5C(void);
@@ -71,6 +77,15 @@ void sub_813D7CC(void);
void sub_813D844(u8 taskId);
void sub_813D8AC(void);
void sub_813DA68(u8 taskId);
+void sub_813DD74(u8 taskId);
+void sub_813DDA0(u8 taskId);
+void sub_813DE0C(u8 taskId);
+void sub_813DEBC(u8 taskId);
+void sub_813E200(u8 taskId);
+void sub_813E320(u8 taskId);
+void sub_813E37C(u8 taskId);
+void sub_813E3FC(u8 taskId);
+void sub_813E428(u8 taskId);
void sub_813EC28(void);
void sub_813E910(void);
void sub_813E9A0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx);
@@ -106,8 +121,20 @@ static const struct BgTemplate gUnknown_846434C[] = {
}
};
-extern const u8 gUnknown_84643B4[];
+const TaskFunc gUnknown_8464358[] = {
+ sub_813DD74,
+ sub_813E37C,
+ sub_813E428,
+ sub_813E3FC,
+ sub_813DD74
+};
+extern const struct MenuAction gUnknown_846437C[];
+extern const u8 gUnknown_84643A4[];
+extern const u8 gUnknown_84643A8[];
+extern const u8 gUnknown_84643AC[];
+extern const u8 gUnknown_84643B0[];
+extern const u8 gUnknown_84643B4[];
extern const struct CompressedSpriteSheet gUnknown_84644A8;
extern const struct CompressedSpritePalette gUnknown_84644B0;
@@ -631,3 +658,110 @@ void sub_813D9F8(u8 whichWindow, s16 quantity, u8 ndigits)
StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1);
sub_813E9A0(windowId, 0, gStringVar4, 4, 10, 1, 0, 0, 1);
}
+
+void sub_813DA68(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+ s32 menuInput;
+ if (!gPaletteFade.active && sub_80BF72C() != TRUE)
+ {
+ menuInput = ListMenu_ProcessInput(data[0]);
+ ListMenuGetScrollAndRow(data[0], &gUnknown_203F370.unk_0A, &gUnknown_203F370.unk_08);
+ if (JOY_NEW(SELECT_BUTTON) && gUnknown_203F370.unk_05 == 1)
+ {
+ PlaySE(SE_SELECT);
+ gSpecialVar_ItemId = 0;
+ BerryPouch_StartFadeToExitCallback(taskId);
+ }
+ else
+ {
+ switch (menuInput)
+ {
+ case -1:
+ return;
+ case -2:
+ if (gUnknown_203F370.unk_04 != 5)
+ {
+ PlaySE(SE_SELECT);
+ gSpecialVar_ItemId = 0;
+ BerryPouch_StartFadeToExitCallback(taskId);
+ }
+ break;
+ default:
+ PlaySE(SE_SELECT);
+ if (gUnknown_203F370.unk_04 == 5)
+ {
+ gSpecialVar_ItemId = BagGetItemIdByPocketPosition(POCKET_BERRY_POUCH, menuInput);
+ BerryPouch_StartFadeToExitCallback(taskId);
+ }
+ else if (menuInput == gUnknown_203F36C->unk_007)
+ {
+ gSpecialVar_ItemId = 0;
+ BerryPouch_StartFadeToExitCallback(taskId);
+ }
+ else
+ {
+ sub_813D684();
+ sub_813D594(1);
+ sub_813D4B0(data[0], 2);
+ data[1] = menuInput;
+ data[2] = BagGetQuantityByPocketPosition(POCKET_BERRY_POUCH, menuInput);
+ gSpecialVar_ItemId = BagGetItemIdByPocketPosition(POCKET_BERRY_POUCH, menuInput);
+ gTasks[taskId].func = gUnknown_8464358[gUnknown_203F370.unk_04];
+ }
+ break;
+ }
+ }
+ }
+}
+
+void sub_813DBB4(u8 taskId)
+{
+ sub_813D594(0);
+ sub_813D5BC();
+ gTasks[taskId].func = sub_813DA68;
+}
+
+void sub_813DBE4(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+ u8 windowId;
+ u8 windowId2;
+
+ if (gUnknown_203F370.unk_04 == 4)
+ {
+ gUnknown_203F384 = gUnknown_84643B0;
+ gUnknown_203F388 = 3;
+ }
+ else if (MenuHelpers_LinkSomething() == TRUE || InUnionRoom() == TRUE)
+ {
+ if (!sub_80BF6A8(gSpecialVar_ItemId))
+ {
+ gUnknown_203F384 = gUnknown_84643AC;
+ gUnknown_203F388 = 1;
+ }
+ else
+ {
+ gUnknown_203F384 = gUnknown_84643A8;
+ gUnknown_203F388 = 2;
+ }
+ }
+ else
+ {
+ gUnknown_203F384 = gUnknown_84643A4;
+ gUnknown_203F388 = 4;
+ }
+ windowId = sub_813EA08(gUnknown_203F388 + 9);
+ AddItemMenuActionTextPrinters(windowId, 2, GetMenuCursorDimensionByFont(2, 0), 2, GetFontAttribute(2, FONTATTR_LETTER_SPACING), GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT) + 2, gUnknown_203F388, gUnknown_846437C, gUnknown_203F384);
+ Menu_InitCursor(windowId, 2, 0, 2, GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT) + 2, gUnknown_203F388, 0);
+ windowId2 = sub_813EA08(6);
+ sub_813D39C(data[1], gStringVar1);
+ StringExpandPlaceholders(gStringVar4, gOtherText_StrVar1);
+ sub_813E9A0(windowId2, 2, gStringVar4, 0, 2, 1, 2, 0, 1);
+}
+
+void sub_813DD74(u8 taskId)
+{
+ sub_813DBE4(taskId);
+ gTasks[taskId].func = sub_813DDA0;
+}