item_pc: through sub_810E200

This commit is contained in:
PikalaxALT
2019-06-16 18:12:11 -04:00
parent b624de76db
commit d681d7f727
14 changed files with 157 additions and 481 deletions
+126 -1
View File
@@ -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;
}
+14 -14
View File
@@ -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);
}