mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-26 03:34:15 +01:00
Merge pull request #1638 from GriffinRichards/menu-arr-count
Add missing menu array counts
This commit is contained in:
commit
2142ad96d5
@ -33,7 +33,7 @@ static void ClearDecorationInventory(u8 category)
|
||||
void ClearDecorationInventories(void)
|
||||
{
|
||||
u8 category;
|
||||
for (category = 0; category < 8; category++)
|
||||
for (category = 0; category < DECORCAT_COUNT; category++)
|
||||
ClearDecorationInventory(category);
|
||||
}
|
||||
|
||||
|
@ -2090,7 +2090,7 @@ static void NewGameBirchSpeech_ShowGenderMenu(void)
|
||||
DrawMainMenuWindowBorder(&gNewGameBirchSpeechTextWindows[1], 0xF3);
|
||||
FillWindowPixelBuffer(1, PIXEL_FILL(1));
|
||||
PrintMenuTable(1, ARRAY_COUNT(sMenuActions_Gender), sMenuActions_Gender);
|
||||
InitMenuInUpperLeftCornerNormal(1, 2, 0);
|
||||
InitMenuInUpperLeftCornerNormal(1, ARRAY_COUNT(sMenuActions_Gender), 0);
|
||||
PutWindowTilemap(1);
|
||||
CopyWindowToVram(1, COPYWIN_FULL);
|
||||
}
|
||||
|
@ -1542,25 +1542,25 @@ static s8 Menu_ProcessGridInputRepeat(void)
|
||||
{
|
||||
return MENU_B_PRESSED;
|
||||
}
|
||||
else if ((JOY_REPEAT(DPAD_ANY)) == DPAD_UP)
|
||||
else if (JOY_REPEAT(DPAD_ANY) == DPAD_UP)
|
||||
{
|
||||
if (oldPos != ChangeGridMenuCursorPosition(0, -1))
|
||||
PlaySE(SE_SELECT);
|
||||
return MENU_NOTHING_CHOSEN;
|
||||
}
|
||||
else if ((JOY_REPEAT(DPAD_ANY)) == DPAD_DOWN)
|
||||
else if (JOY_REPEAT(DPAD_ANY) == DPAD_DOWN)
|
||||
{
|
||||
if (oldPos != ChangeGridMenuCursorPosition(0, 1))
|
||||
PlaySE(SE_SELECT);
|
||||
return MENU_NOTHING_CHOSEN;
|
||||
}
|
||||
else if ((JOY_REPEAT(DPAD_ANY)) == DPAD_LEFT || GetLRKeysPressedAndHeld() == MENU_L_PRESSED)
|
||||
else if (JOY_REPEAT(DPAD_ANY) == DPAD_LEFT || GetLRKeysPressedAndHeld() == MENU_L_PRESSED)
|
||||
{
|
||||
if (oldPos != ChangeGridMenuCursorPosition(-1, 0))
|
||||
PlaySE(SE_SELECT);
|
||||
return MENU_NOTHING_CHOSEN;
|
||||
}
|
||||
else if ((JOY_REPEAT(DPAD_ANY)) == DPAD_RIGHT || GetLRKeysPressedAndHeld() == MENU_R_PRESSED)
|
||||
else if (JOY_REPEAT(DPAD_ANY) == DPAD_RIGHT || GetLRKeysPressedAndHeld() == MENU_R_PRESSED)
|
||||
{
|
||||
if (oldPos != ChangeGridMenuCursorPosition(1, 0))
|
||||
PlaySE(SE_SELECT);
|
||||
|
@ -511,7 +511,7 @@ static void InitItemStorageMenu(u8 taskId, u8 var)
|
||||
tWindowId = AddWindow(&windowTemplate);
|
||||
SetStandardWindowBorderStyle(tWindowId, 0);
|
||||
PrintMenuTable(tWindowId, ARRAY_COUNT(sItemStorage_MenuActions), sItemStorage_MenuActions);
|
||||
InitMenuInUpperLeftCornerNormal(tWindowId, 4, var);
|
||||
InitMenuInUpperLeftCornerNormal(tWindowId, ARRAY_COUNT(sItemStorage_MenuActions), var);
|
||||
ScheduleBgCopyTilemapToVram(0);
|
||||
ItemStorageMenuPrint(sItemStorage_OptionDescriptions[var]);
|
||||
}
|
||||
@ -753,7 +753,7 @@ static void Mailbox_PrintMailOptions(u8 taskId)
|
||||
{
|
||||
u8 windowId = MailboxMenu_AddWindow(MAILBOXWIN_OPTIONS);
|
||||
PrintMenuTable(windowId, ARRAY_COUNT(gMailboxMailOptions), gMailboxMailOptions);
|
||||
InitMenuInUpperLeftCornerNormal(windowId, 4, 0);
|
||||
InitMenuInUpperLeftCornerNormal(windowId, ARRAY_COUNT(gMailboxMailOptions), 0);
|
||||
ScheduleBgCopyTilemapToVram(0);
|
||||
gTasks[taskId].func = Mailbox_MailOptionsProcessInput;
|
||||
}
|
||||
|
@ -1027,7 +1027,7 @@ static void ShowRegistryMenuActions(u8 taskId)
|
||||
tActionWindowId = AddWindow(&template);
|
||||
SetStandardWindowBorderStyle(tActionWindowId, 0);
|
||||
PrintMenuTable(tActionWindowId, ARRAY_COUNT(sRegistryMenuActions), sRegistryMenuActions);
|
||||
InitMenuInUpperLeftCornerNormal(tActionWindowId, 2, 0);
|
||||
InitMenuInUpperLeftCornerNormal(tActionWindowId, ARRAY_COUNT(sRegistryMenuActions), 0);
|
||||
ScheduleBgCopyTilemapToVram(0);
|
||||
gTasks[taskId].func = HandleRegistryMenuActionsInput;
|
||||
}
|
||||
|
@ -1394,7 +1394,7 @@ static void TradeMenuProcessInput(void)
|
||||
DrawTextBorderOuter(1, 1, 14);
|
||||
FillWindowPixelBuffer(1, PIXEL_FILL(1));
|
||||
PrintMenuTable(1, ARRAY_COUNT(sSelectTradeMonActions), sSelectTradeMonActions);
|
||||
InitMenuInUpperLeftCornerNormal(1, 2, 0);
|
||||
InitMenuInUpperLeftCornerNormal(1, ARRAY_COUNT(sSelectTradeMonActions), 0);
|
||||
PutWindowTilemap(1);
|
||||
CopyWindowToVram(1, COPYWIN_FULL);
|
||||
sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_SELECTED_MON;
|
||||
|
48
src/trader.c
48
src/trader.c
@ -15,7 +15,7 @@
|
||||
#include "task.h"
|
||||
#include "script_menu.h"
|
||||
|
||||
static const u8 * const sDefaultTraderNames[] =
|
||||
static const u8 * const sDefaultTraderNames[NUM_TRADER_ITEMS] =
|
||||
{
|
||||
gText_Tristan,
|
||||
gText_Philip,
|
||||
@ -23,7 +23,7 @@ static const u8 * const sDefaultTraderNames[] =
|
||||
gText_Roberto,
|
||||
};
|
||||
|
||||
static const u8 sDefaultTraderDecorations[] =
|
||||
static const u8 sDefaultTraderDecorations[NUM_TRADER_ITEMS] =
|
||||
{
|
||||
DECOR_DUSKULL_DOLL,
|
||||
DECOR_BALL_CUSHION,
|
||||
@ -39,7 +39,7 @@ void TraderSetup(void)
|
||||
trader->id = MAUVILLE_MAN_TRADER;
|
||||
trader->alreadyTraded = FALSE;
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
for (i = 0; i < NUM_TRADER_ITEMS; i++)
|
||||
{
|
||||
StringCopy(trader->playerNames[i], sDefaultTraderNames[i]);
|
||||
trader->decorations[i] = sDefaultTraderDecorations[i];
|
||||
@ -53,15 +53,25 @@ void Trader_ResetFlag(void)
|
||||
trader->alreadyTraded = FALSE;
|
||||
}
|
||||
|
||||
#define tWindowId data[3]
|
||||
|
||||
void CreateAvailableDecorationsMenu(u8 taskId)
|
||||
{
|
||||
u8 i;
|
||||
s16 * data = gTasks[taskId].data;
|
||||
struct MauvilleOldManTrader *trader = &gSaveBlock1Ptr->oldMan.trader;
|
||||
struct WindowTemplate windowTemplate = {0, 1, 1, 10, 10, 15, 1};
|
||||
struct WindowTemplate windowTemplate = {
|
||||
.bg = 0,
|
||||
.tilemapLeft = 1,
|
||||
.tilemapTop = 1,
|
||||
.width = 10,
|
||||
.height = 10,
|
||||
.paletteNum = 15,
|
||||
.baseBlock = 1
|
||||
};
|
||||
s32 windowWidth = GetStringWidth(FONT_NORMAL, gText_Exit, 0);
|
||||
s32 fiveMarksWidth = GetStringWidth(FONT_NORMAL, gText_FiveMarks, 0);
|
||||
for (i = 0; i < 4; i++)
|
||||
for (i = 0; i < NUM_TRADER_ITEMS; i++)
|
||||
{
|
||||
s32 curWidth;
|
||||
if (trader->decorations[i] > NUM_DECORATIONS)
|
||||
@ -72,17 +82,17 @@ void CreateAvailableDecorationsMenu(u8 taskId)
|
||||
windowWidth = curWidth;
|
||||
}
|
||||
windowTemplate.width = ConvertPixelWidthToTileWidth(windowWidth);
|
||||
data[3] = AddWindow(&windowTemplate);
|
||||
DrawStdFrameWithCustomTileAndPalette(data[3], FALSE, 0x214, 14);
|
||||
for (i = 0; i < 4; i++)
|
||||
tWindowId = AddWindow(&windowTemplate);
|
||||
DrawStdFrameWithCustomTileAndPalette(tWindowId, FALSE, 0x214, 14);
|
||||
for (i = 0; i < NUM_TRADER_ITEMS; i++)
|
||||
{
|
||||
if (trader->decorations[i] > NUM_DECORATIONS)
|
||||
AddTextPrinterParameterized(data[3], FONT_NORMAL, gText_FiveMarks, 8, 16 * i + 1, TEXT_SKIP_DRAW, NULL);
|
||||
AddTextPrinterParameterized(tWindowId, FONT_NORMAL, gText_FiveMarks, 8, 16 * i + 1, TEXT_SKIP_DRAW, NULL);
|
||||
else
|
||||
AddTextPrinterParameterized(data[3], FONT_NORMAL, gDecorations[trader->decorations[i]].name, 8, 16 * i + 1, TEXT_SKIP_DRAW, NULL);
|
||||
AddTextPrinterParameterized(tWindowId, FONT_NORMAL, gDecorations[trader->decorations[i]].name, 8, 16 * i + 1, TEXT_SKIP_DRAW, NULL);
|
||||
}
|
||||
AddTextPrinterParameterized(data[3], FONT_NORMAL, gText_Exit, 8, 16 * i + 1, TEXT_SKIP_DRAW, NULL);
|
||||
InitMenuInUpperLeftCornerNormal(data[3], 5, 0);
|
||||
AddTextPrinterParameterized(tWindowId, FONT_NORMAL, gText_Exit, 8, 16 * i + 1, TEXT_SKIP_DRAW, NULL);
|
||||
InitMenuInUpperLeftCornerNormal(tWindowId, NUM_TRADER_ITEMS + 1, 0);
|
||||
ScheduleBgCopyTilemapToVram(0);
|
||||
}
|
||||
|
||||
@ -90,17 +100,13 @@ void Task_BufferDecorSelectionAndCloseWindow(u8 taskId, u8 decorationId)
|
||||
{
|
||||
s16 * data = gTasks[taskId].data;
|
||||
if (decorationId > NUM_DECORATIONS)
|
||||
{
|
||||
gSpecialVar_0x8004 = 0xFFFF;
|
||||
}
|
||||
else
|
||||
{
|
||||
gSpecialVar_0x8004 = decorationId;
|
||||
}
|
||||
|
||||
ClearStdWindowAndFrameToTransparent(data[3], FALSE);
|
||||
ClearWindowTilemap(data[3]);
|
||||
RemoveWindow(data[3]);
|
||||
ClearStdWindowAndFrameToTransparent(tWindowId, FALSE);
|
||||
ClearWindowTilemap(tWindowId);
|
||||
RemoveWindow(tWindowId);
|
||||
ScheduleBgCopyTilemapToVram(0);
|
||||
DestroyTask(taskId);
|
||||
EnableBothScriptContexts();
|
||||
@ -116,7 +122,7 @@ void Task_HandleGetDecorationMenuInput(u8 taskId)
|
||||
case MENU_NOTHING_CHOSEN:
|
||||
break;
|
||||
case MENU_B_PRESSED:
|
||||
case 4:
|
||||
case NUM_TRADER_ITEMS: // EXIT
|
||||
PlaySE(SE_SELECT);
|
||||
Task_BufferDecorSelectionAndCloseWindow(taskId, 0);
|
||||
break;
|
||||
@ -140,7 +146,7 @@ void DoesPlayerHaveNoDecorations(void)
|
||||
{
|
||||
u8 i;
|
||||
|
||||
for (i = 0; i < 8; i++)
|
||||
for (i = 0; i < DECORCAT_COUNT; i++)
|
||||
{
|
||||
if (GetNumOwnedDecorationsInCategory(i))
|
||||
{
|
||||
|
@ -2987,7 +2987,7 @@ static void ShowKeyboardSwapMenu(void)
|
||||
{
|
||||
FillWindowPixelBuffer(3, PIXEL_FILL(1));
|
||||
DrawTextBorderOuter(3, 1, 13);
|
||||
PrintMenuActionTextsAtPos(3, FONT_SHORT, 8, 1, 14, 5, sKeyboardPageTitleTexts);
|
||||
PrintMenuActionTextsAtPos(3, FONT_SHORT, 8, 1, 14, ARRAY_COUNT(sKeyboardPageTitleTexts), sKeyboardPageTitleTexts);
|
||||
InitMenuNormal(3, FONT_SHORT, 0, 1, 14, 5, GetCurrentKeyboardPage());
|
||||
PutWindowTilemap(3);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user