mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-24 06:36:49 -05:00
Replace unknown list struct
This commit is contained in:
parent
9ed87063f1
commit
693e1c0fc9
|
|
@ -28,6 +28,28 @@ struct ListMenuItem
|
|||
|
||||
struct ListMenu;
|
||||
|
||||
// For ListMenuGet/SetTemplateField
|
||||
enum ListMenuFields
|
||||
{
|
||||
LISTFIELD_MOVECURSORFUNC = 0,
|
||||
LISTFIELD_MOVECURSORFUNC2,
|
||||
LISTFIELD_TOTALITEMS,
|
||||
LISTFIELD_MAXSHOWED,
|
||||
LISTFIELD_WINDOWID,
|
||||
LISTFIELD_HEADERX,
|
||||
LISTFIELD_ITEMX,
|
||||
LISTFIELD_CURSORX,
|
||||
LISTFIELD_UPTEXTY,
|
||||
LISTFIELD_CURSORPAL,
|
||||
LISTFIELD_FILLVALUE,
|
||||
LISTFIELD_CURSORSHADOWPAL,
|
||||
LISTFIELD_LETTERSPACING,
|
||||
LISTFIELD_ITEMVERTICALPADDING,
|
||||
LISTFIELD_SCROLLMULTIPLE,
|
||||
LISTFIELD_FONTID,
|
||||
LISTFIELD_CURSORKIND,
|
||||
};
|
||||
|
||||
struct ListMenuTemplate
|
||||
{
|
||||
/*0x00*/ const struct ListMenuItem *items;
|
||||
|
|
@ -82,6 +104,6 @@ void ListMenuGetScrollAndRow(u8 listTaskId, u16 *cursorPos, u16 *itemsAbove);
|
|||
u16 ListMenuGetYCoordForPrintingArrowCursor(u8 listTaskId);
|
||||
void ListMenuOverrideSetColors(u8 cursorPal, u8 fillValue, u8 cursorShadowPal);
|
||||
void ListMenuDefaultCursorMoveFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list);
|
||||
void ListMenuSetUnkIndicatorsStructField(u8 taskId, u8 field, s32 value);
|
||||
void ListMenuSetTemplateField(u8 taskId, u8 field, s32 value);
|
||||
|
||||
#endif //GUARD_LIST_MENU_H
|
||||
|
|
|
|||
|
|
@ -1224,7 +1224,7 @@ static void BeginMovingItemInPocket(u8 taskId, s16 itemIndex)
|
|||
u16 cursorPos;
|
||||
s16 *data = gTasks[taskId].data;
|
||||
ListMenuGetScrollAndRow(data[0], &cursorPos, &itemsAbove);
|
||||
ListMenuSetUnkIndicatorsStructField(data[0], 0x10, 1);
|
||||
ListMenuSetTemplateField(data[0], LISTFIELD_CURSORKIND, 1);
|
||||
data[1] = itemIndex;
|
||||
sBagMenuDisplay->itemOriginalLocation = itemIndex;
|
||||
StringCopy(gStringVar1, ItemId_GetName(BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, data[1])));
|
||||
|
|
|
|||
|
|
@ -767,7 +767,7 @@ static void ItemPc_MoveItemModeInit(u8 taskId, s16 pos)
|
|||
{
|
||||
s16 * data = gTasks[taskId].data;
|
||||
|
||||
ListMenuSetUnkIndicatorsStructField(data[0], 16, 1);
|
||||
ListMenuSetTemplateField(data[0], LISTFIELD_CURSORKIND, 1);
|
||||
data[1] = pos;
|
||||
sStateDataPtr->moveModeOrigPos = pos;
|
||||
StringCopy(gStringVar1, ItemId_GetName(ItemPc_GetItemIdBySlotId(data[1])));
|
||||
|
|
|
|||
163
src/list_menu.c
163
src/list_menu.c
|
|
@ -11,29 +11,6 @@
|
|||
#include "pokemon_icon.h"
|
||||
#include "constants/songs.h"
|
||||
|
||||
struct UnkIndicatorsStruct
|
||||
{
|
||||
u8 field_0;
|
||||
u16 *field_4;
|
||||
u16 field_8;
|
||||
u16 field_A;
|
||||
u16 field_C;
|
||||
u16 field_E;
|
||||
u8 field_10;
|
||||
u8 field_11;
|
||||
u8 field_12;
|
||||
u8 field_13;
|
||||
u8 field_14_0:4;
|
||||
u8 field_14_1:4;
|
||||
u8 field_15_0:4;
|
||||
u8 field_15_1:4;
|
||||
u8 field_16_0:3;
|
||||
u8 field_16_1:3;
|
||||
u8 field_16_2:2;
|
||||
u8 field_17_0:6;
|
||||
u8 field_17_1:2;
|
||||
};
|
||||
|
||||
struct MysteryGiftLinkMenuStruct
|
||||
{
|
||||
u32 currItemId;
|
||||
|
|
@ -646,104 +623,104 @@ void ListMenuDefaultCursorMoveFunc(s32 itemIndex, bool8 onInit, struct ListMenu
|
|||
PlaySE(SE_SELECT);
|
||||
}
|
||||
|
||||
static s32 ListMenuGetUnkIndicatorsStructFields(u8 taskId, u8 field)
|
||||
static s32 ListMenuGetTemplateField(u8 taskId, u8 field)
|
||||
{
|
||||
struct UnkIndicatorsStruct *data = (struct UnkIndicatorsStruct *)gTasks[taskId].data;
|
||||
struct ListMenu *data = (struct ListMenu *)gTasks[taskId].data;
|
||||
|
||||
switch (field)
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
return (s32)(data->field_4);
|
||||
case 2:
|
||||
return data->field_C;
|
||||
case 3:
|
||||
return data->field_E;
|
||||
case 4:
|
||||
return data->field_10;
|
||||
case 5:
|
||||
return data->field_11;
|
||||
case 6:
|
||||
return data->field_12;
|
||||
case 7:
|
||||
return data->field_13;
|
||||
case 8:
|
||||
return data->field_14_0;
|
||||
case 9:
|
||||
return data->field_14_1;
|
||||
case 10:
|
||||
return data->field_15_0;
|
||||
case 11:
|
||||
return data->field_15_1;
|
||||
case 12:
|
||||
return data->field_16_0;
|
||||
case 13:
|
||||
return data->field_16_1;
|
||||
case 14:
|
||||
return data->field_16_2;
|
||||
case 15:
|
||||
return data->field_17_0;
|
||||
case 16:
|
||||
return data->field_17_1;
|
||||
case LISTFIELD_MOVECURSORFUNC:
|
||||
case LISTFIELD_MOVECURSORFUNC2:
|
||||
return (s32)(data->template.moveCursorFunc);
|
||||
case LISTFIELD_TOTALITEMS:
|
||||
return data->template.totalItems;
|
||||
case LISTFIELD_MAXSHOWED:
|
||||
return data->template.maxShowed;
|
||||
case LISTFIELD_WINDOWID:
|
||||
return data->template.windowId;
|
||||
case LISTFIELD_HEADERX:
|
||||
return data->template.header_X;
|
||||
case LISTFIELD_ITEMX:
|
||||
return data->template.item_X;
|
||||
case LISTFIELD_CURSORX:
|
||||
return data->template.cursor_X;
|
||||
case LISTFIELD_UPTEXTY:
|
||||
return data->template.upText_Y;
|
||||
case LISTFIELD_CURSORPAL:
|
||||
return data->template.cursorPal;
|
||||
case LISTFIELD_FILLVALUE:
|
||||
return data->template.fillValue;
|
||||
case LISTFIELD_CURSORSHADOWPAL:
|
||||
return data->template.cursorShadowPal;
|
||||
case LISTFIELD_LETTERSPACING:
|
||||
return data->template.lettersSpacing;
|
||||
case LISTFIELD_ITEMVERTICALPADDING:
|
||||
return data->template.itemVerticalPadding;
|
||||
case LISTFIELD_SCROLLMULTIPLE:
|
||||
return data->template.scrollMultiple;
|
||||
case LISTFIELD_FONTID:
|
||||
return data->template.fontId;
|
||||
case LISTFIELD_CURSORKIND:
|
||||
return data->template.cursorKind;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
void ListMenuSetUnkIndicatorsStructField(u8 taskId, u8 field, s32 value)
|
||||
void ListMenuSetTemplateField(u8 taskId, u8 field, s32 value)
|
||||
{
|
||||
struct UnkIndicatorsStruct *data = (struct UnkIndicatorsStruct *)gTasks[taskId].data;
|
||||
struct ListMenu *data = (struct ListMenu *)gTasks[taskId].data;
|
||||
|
||||
switch (field)
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
data->field_4 = (void *)value;
|
||||
case LISTFIELD_MOVECURSORFUNC:
|
||||
case LISTFIELD_MOVECURSORFUNC2:
|
||||
data->template.moveCursorFunc = (void *)value;
|
||||
break;
|
||||
case 2:
|
||||
data->field_C = value;
|
||||
case LISTFIELD_TOTALITEMS:
|
||||
data->template.totalItems = value;
|
||||
break;
|
||||
case 3:
|
||||
data->field_E = value;
|
||||
case LISTFIELD_MAXSHOWED:
|
||||
data->template.maxShowed = value;
|
||||
break;
|
||||
case 4:
|
||||
data->field_10 = value;
|
||||
case LISTFIELD_WINDOWID:
|
||||
data->template.windowId = value;
|
||||
break;
|
||||
case 5:
|
||||
data->field_11 = value;
|
||||
case LISTFIELD_HEADERX:
|
||||
data->template.header_X = value;
|
||||
break;
|
||||
case 6:
|
||||
data->field_12 = value;
|
||||
case LISTFIELD_ITEMX:
|
||||
data->template.item_X = value;
|
||||
break;
|
||||
case 7:
|
||||
data->field_13 = value;
|
||||
case LISTFIELD_CURSORX:
|
||||
data->template.cursor_X = value;
|
||||
break;
|
||||
case 8:
|
||||
data->field_14_0 = value;
|
||||
case LISTFIELD_UPTEXTY:
|
||||
data->template.upText_Y = value;
|
||||
break;
|
||||
case 9:
|
||||
data->field_14_1 = value;
|
||||
case LISTFIELD_CURSORPAL:
|
||||
data->template.cursorPal = value;
|
||||
break;
|
||||
case 10:
|
||||
data->field_15_0 = value;
|
||||
case LISTFIELD_FILLVALUE:
|
||||
data->template.fillValue = value;
|
||||
break;
|
||||
case 11:
|
||||
data->field_15_1 = value;
|
||||
case LISTFIELD_CURSORSHADOWPAL:
|
||||
data->template.cursorShadowPal = value;
|
||||
break;
|
||||
case 12:
|
||||
data->field_16_0 = value;
|
||||
case LISTFIELD_LETTERSPACING:
|
||||
data->template.lettersSpacing = value;
|
||||
break;
|
||||
case 13:
|
||||
data->field_16_1 = value;
|
||||
case LISTFIELD_ITEMVERTICALPADDING:
|
||||
data->template.itemVerticalPadding = value;
|
||||
break;
|
||||
case 14:
|
||||
data->field_16_2 = value;
|
||||
case LISTFIELD_SCROLLMULTIPLE:
|
||||
data->template.scrollMultiple = value;
|
||||
break;
|
||||
case 15:
|
||||
data->field_17_0 = value;
|
||||
case LISTFIELD_FONTID:
|
||||
data->template.fontId = value;
|
||||
break;
|
||||
case 16:
|
||||
data->field_17_1 = value;
|
||||
case LISTFIELD_CURSORKIND:
|
||||
data->template.cursorKind = value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1187,10 +1187,10 @@ static void MoveCursorFunc_DexModeSelect(s32 itemIndex, bool8 onInit, struct Lis
|
|||
static void ItemPrintFunc_DexModeSelect(u8 windowId, s32 itemId, u8 y)
|
||||
{
|
||||
u32 itemId_ = itemId;
|
||||
if (itemId_ > 8 || sPokedexScreenData->unlockedCategories & (1 << itemId_))
|
||||
ListMenuOverrideSetColors(1, 0, 3);
|
||||
if (itemId_ >= DEX_CATEGORY_COUNT || sPokedexScreenData->unlockedCategories & (1 << itemId_))
|
||||
ListMenuOverrideSetColors(TEXT_COLOR_WHITE, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_GRAY);
|
||||
else
|
||||
ListMenuOverrideSetColors(10, 0, 11);
|
||||
ListMenuOverrideSetColors(TEXT_DYNAMIC_COLOR_1, TEXT_COLOR_TRANSPARENT, TEXT_DYNAMIC_COLOR_2);
|
||||
}
|
||||
|
||||
static void Task_DexScreen_NumericalOrder(u8 taskId)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user