summaryrefslogtreecommitdiff
path: root/src
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 /src
parentb624de76db01db7e8b2e65f054483bfe1ec4b590 (diff)
item_pc: through sub_810E200
Diffstat (limited to 'src')
-rw-r--r--src/item_pc.c127
-rw-r--r--src/quest_log.c28
2 files changed, 140 insertions, 15 deletions
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);
}