Merge pull request #581 from GriffinRichards/sync-menuhelpers
Sync menu_helpers.c
This commit is contained in:
@@ -15,19 +15,19 @@ struct YesNoFuncTable
|
||||
};
|
||||
|
||||
bool16 RunTextPrinters_CheckActive(u8 textPrinterId);
|
||||
bool8 MenuHelpers_CallLinkSomething(void);
|
||||
bool8 sub_80BF748(void);
|
||||
bool8 MenuHelpers_LinkSomething(void);
|
||||
bool8 IsActiveOverworldLinkBusy(void);
|
||||
bool8 MenuHelpers_ShouldWaitForLinkRecv(void);
|
||||
bool8 MenuHelpers_IsLinkActive(void);
|
||||
void SetVBlankHBlankCallbacksToNull(void);
|
||||
void ResetAllBgsCoordinatesAndBgCntRegs(void);
|
||||
u8 GetDialogBoxFontId(void);
|
||||
bool8 AdjustQuantityAccordingToDPadInput(s16 *quantity_p, u16 qmax);
|
||||
void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 tileNum, u8 paletteNum, u8 fontId, u8 textSpeed, const u8 *string, void *taskFunc);
|
||||
void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *template, u8 fontId, u8 left, u8 top, u16 tileStart, u8 palette, const struct YesNoFuncTable *yesNo);
|
||||
u8 GetLRKeysState(void);
|
||||
u8 GetLRKeysPressed(void);
|
||||
u8 GetLRKeysPressedAndHeld(void);
|
||||
bool8 itemid_link_can_give_berry(u16 itemId);
|
||||
bool8 CanWriteMailHere(u16 itemId);
|
||||
bool8 IsHoldingItemAllowed(u16 itemId);
|
||||
bool8 IsWritingMailAllowed(u16 itemId);
|
||||
void ResetVramOamAndBgCntRegs(void);
|
||||
|
||||
#endif //GUARD_MENU_HELPERS_H
|
||||
|
||||
+8
-8
@@ -457,11 +457,11 @@ static void CB2_InitBerryPouch(void)
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
if (MenuHelpers_CallLinkSomething() == TRUE)
|
||||
if (IsActiveOverworldLinkBusy() == TRUE)
|
||||
break;
|
||||
if (RunBerryPouchInit() == TRUE)
|
||||
break;
|
||||
if (MenuHelpers_LinkSomething() == TRUE)
|
||||
if (MenuHelpers_IsLinkActive() == TRUE)
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -498,7 +498,7 @@ static bool8 RunBerryPouchInit(void)
|
||||
gMain.state++;
|
||||
break;
|
||||
case 6:
|
||||
if (!MenuHelpers_LinkSomething())
|
||||
if (!MenuHelpers_IsLinkActive())
|
||||
ResetTasks();
|
||||
gMain.state++;
|
||||
break;
|
||||
@@ -934,7 +934,7 @@ static void Task_BerryPouchMain(u8 taskId)
|
||||
{
|
||||
s16 * data = gTasks[taskId].data;
|
||||
s32 menuInput;
|
||||
if (!gPaletteFade.active && MenuHelpers_CallLinkSomething() != TRUE)
|
||||
if (!gPaletteFade.active && IsActiveOverworldLinkBusy() != TRUE)
|
||||
{
|
||||
menuInput = ListMenu_ProcessInput(data[0]);
|
||||
ListMenuGetScrollAndRow(data[0], &sStaticCnt.listMenuScrollOffset, &sStaticCnt.listMenuSelectedRow);
|
||||
@@ -1004,9 +1004,9 @@ static void CreateNormalContextMenu(u8 taskId)
|
||||
sContextMenuOptions = sOptions_UseToss_Exit;
|
||||
sContextMenuNumOptions = 3;
|
||||
}
|
||||
else if (MenuHelpers_LinkSomething() == TRUE || InUnionRoom() == TRUE)
|
||||
else if (MenuHelpers_IsLinkActive() == TRUE || InUnionRoom() == TRUE)
|
||||
{
|
||||
if (!itemid_link_can_give_berry(gSpecialVar_ItemId))
|
||||
if (!IsHoldingItemAllowed(gSpecialVar_ItemId))
|
||||
{
|
||||
sContextMenuOptions = sOptions_Exit;
|
||||
sContextMenuNumOptions = 1;
|
||||
@@ -1040,7 +1040,7 @@ static void Task_NormalContextMenu(u8 taskId)
|
||||
static void Task_NormalContextMenu_HandleInput(u8 taskId)
|
||||
{
|
||||
s8 input;
|
||||
if (MenuHelpers_CallLinkSomething() != TRUE)
|
||||
if (IsActiveOverworldLinkBusy() != TRUE)
|
||||
{
|
||||
input = Menu_ProcessInputNoWrapAround();
|
||||
switch (input)
|
||||
@@ -1243,7 +1243,7 @@ static void Task_ContextMenu_FromPartyGiveMenu(u8 taskId)
|
||||
{
|
||||
s16 * data = gTasks[taskId].data;
|
||||
u16 itemId = BagGetItemIdByPocketPosition(POCKET_BERRY_POUCH, data[1]);
|
||||
if (!itemid_link_can_give_berry(itemId))
|
||||
if (!IsHoldingItemAllowed(itemId))
|
||||
{
|
||||
CopyItemName(itemId, gStringVar1);
|
||||
StringExpandPlaceholders(gStringVar4, gText_TheStrVar1CantBeHeldHere);
|
||||
|
||||
+13
-13
@@ -377,11 +377,11 @@ static void CB2_OpenBagMenu(void)
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
if (MenuHelpers_CallLinkSomething() == TRUE)
|
||||
if (IsActiveOverworldLinkBusy() == TRUE)
|
||||
break;
|
||||
if (LoadBagMenuGraphics() == TRUE)
|
||||
break;
|
||||
if (MenuHelpers_LinkSomething() == TRUE)
|
||||
if (MenuHelpers_IsLinkActive() == TRUE)
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -419,7 +419,7 @@ static bool8 LoadBagMenuGraphics(void)
|
||||
gMain.state++;
|
||||
break;
|
||||
case 6:
|
||||
if (!MenuHelpers_LinkSomething())
|
||||
if (!MenuHelpers_IsLinkActive())
|
||||
{
|
||||
ResetTasks();
|
||||
}
|
||||
@@ -1050,7 +1050,7 @@ static void Task_BagMenu_HandleInput(u8 taskId)
|
||||
return;
|
||||
if (FuncIsActiveTask(Task_AnimateWin0v) == TRUE)
|
||||
return;
|
||||
if (MenuHelpers_CallLinkSomething() == TRUE)
|
||||
if (IsActiveOverworldLinkBusy() == TRUE)
|
||||
return;
|
||||
switch (ProcessPocketSwitchInput(taskId, gBagMenuState.pocket))
|
||||
{
|
||||
@@ -1131,15 +1131,15 @@ static u8 ProcessPocketSwitchInput(u8 taskId, u8 pocketId)
|
||||
u8 lrState;
|
||||
if (sBagMenuDisplay->pocketSwitchMode != 0)
|
||||
return 0;
|
||||
lrState = GetLRKeysState();
|
||||
if (JOY_NEW(DPAD_LEFT) || lrState == 1)
|
||||
lrState = GetLRKeysPressed();
|
||||
if (JOY_NEW(DPAD_LEFT) || lrState == MENU_L_PRESSED)
|
||||
{
|
||||
if (pocketId == POCKET_ITEMS - 1)
|
||||
return 0;
|
||||
PlaySE(SE_BAG_POCKET);
|
||||
return 1;
|
||||
}
|
||||
if (JOY_NEW(DPAD_RIGHT) || lrState == 2)
|
||||
if (JOY_NEW(DPAD_RIGHT) || lrState == MENU_R_PRESSED)
|
||||
{
|
||||
if (pocketId >= POCKET_POKE_BALLS - 1)
|
||||
return 0;
|
||||
@@ -1174,7 +1174,7 @@ static void SwitchPockets(u8 taskId, s16 direction, bool16 a2)
|
||||
static void Task_AnimateSwitchPockets(u8 taskId)
|
||||
{
|
||||
s16 *data = gTasks[taskId].data;
|
||||
if (!MenuHelpers_LinkSomething() && !BagIsTutorial())
|
||||
if (!MenuHelpers_IsLinkActive() && !BagIsTutorial())
|
||||
{
|
||||
switch (ProcessPocketSwitchInput(taskId, gBagMenuState.pocket + data[11]))
|
||||
{
|
||||
@@ -1244,7 +1244,7 @@ static void Task_MoveItemInPocket_HandleInput(u8 taskId)
|
||||
s32 input;
|
||||
u16 itemsAbove;
|
||||
u16 cursorPos;
|
||||
if (MenuHelpers_CallLinkSomething() == TRUE)
|
||||
if (IsActiveOverworldLinkBusy() == TRUE)
|
||||
return;
|
||||
input = ListMenu_ProcessInput(data[0]);
|
||||
ListMenuGetScrollAndRow(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]);
|
||||
@@ -1370,7 +1370,7 @@ static void OpenContextMenu(u8 taskId)
|
||||
sContextMenuNumItems = 2;
|
||||
break;
|
||||
default:
|
||||
if (MenuHelpers_LinkSomething() == TRUE || InUnionRoom() == TRUE)
|
||||
if (MenuHelpers_IsLinkActive() == TRUE || InUnionRoom() == TRUE)
|
||||
{
|
||||
if (gSpecialVar_ItemId == ITEM_TM_CASE || gSpecialVar_ItemId == ITEM_BERRY_POUCH)
|
||||
{
|
||||
@@ -1447,7 +1447,7 @@ static void Task_ItemContext_FieldOrBattle(u8 taskId)
|
||||
static void Task_FieldItemContextMenuHandleInput(u8 taskId)
|
||||
{
|
||||
s8 input;
|
||||
if (MenuHelpers_CallLinkSomething() != TRUE)
|
||||
if (IsActiveOverworldLinkBusy() != TRUE)
|
||||
{
|
||||
input = Menu_ProcessInputNoWrapAround();
|
||||
switch (input)
|
||||
@@ -1609,7 +1609,7 @@ static void Task_ItemMenuAction_Give(u8 taskId)
|
||||
PutWindowTilemap(0);
|
||||
PutWindowTilemap(1);
|
||||
CopyWindowToVram(0, COPYWIN_MAP);
|
||||
if (!CanWriteMailHere(itemId))
|
||||
if (!IsWritingMailAllowed(itemId))
|
||||
DisplayItemMessageInBag(taskId, FONT_2, gText_CantWriteMailHere, Task_WaitAButtonAndCloseContextMenu);
|
||||
else if (ItemId_GetImportance(itemId) == 0)
|
||||
{
|
||||
@@ -1703,7 +1703,7 @@ static void Task_ItemContext_FieldGive(u8 taskId)
|
||||
{
|
||||
s16 *data = gTasks[taskId].data;
|
||||
u16 itemId = BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, data[1]);
|
||||
if (!CanWriteMailHere(itemId))
|
||||
if (!IsWritingMailAllowed(itemId))
|
||||
{
|
||||
DisplayItemMessageInBag(taskId, FONT_2, gText_CantWriteMailHere, Task_WaitAButtonAndCloseContextMenu);
|
||||
}
|
||||
|
||||
+2
-2
@@ -259,7 +259,7 @@ static void ItemPc_RunSetup(void)
|
||||
{
|
||||
if (ItemPc_DoGfxSetup() == TRUE)
|
||||
break;
|
||||
if (MenuHelpers_LinkSomething() == TRUE)
|
||||
if (MenuHelpers_IsLinkActive() == TRUE)
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -379,7 +379,7 @@ static bool8 ItemPc_DoGfxSetup(void)
|
||||
gMain.state++;
|
||||
break;
|
||||
case 20:
|
||||
if (MenuHelpers_CallLinkSomething() != TRUE)
|
||||
if (IsActiveOverworldLinkBusy() != TRUE)
|
||||
gMain.state++;
|
||||
break;
|
||||
default:
|
||||
|
||||
+1
-1
@@ -629,7 +629,7 @@ static void CB2_InitMailView(void)
|
||||
SetMainCallback2(CB2_RunShowMailCB);
|
||||
break;
|
||||
}
|
||||
} while (MenuHelpers_LinkSomething() != TRUE);
|
||||
} while (MenuHelpers_IsLinkActive() != TRUE);
|
||||
}
|
||||
|
||||
static void BufferMailMessage(void)
|
||||
|
||||
+8
-8
@@ -729,13 +729,13 @@ static s8 sub_81105A0(void)
|
||||
MultichoiceGrid_MoveCursor(0, 1);
|
||||
return MENU_NOTHING_CHOSEN;
|
||||
}
|
||||
else if (JOY_NEW(DPAD_LEFT) || GetLRKeysState() == 1)
|
||||
else if (JOY_NEW(DPAD_LEFT) || GetLRKeysPressed() == MENU_L_PRESSED)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
MultichoiceGrid_MoveCursor(-1, 0);
|
||||
return MENU_NOTHING_CHOSEN;
|
||||
}
|
||||
else if (JOY_NEW(DPAD_RIGHT) || GetLRKeysState() == 2)
|
||||
else if (JOY_NEW(DPAD_RIGHT) || GetLRKeysPressed() == MENU_R_PRESSED)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
MultichoiceGrid_MoveCursor(1, 0);
|
||||
@@ -769,13 +769,13 @@ s8 Menu_ProcessInputGridLayout(void)
|
||||
PlaySE(SE_SELECT);
|
||||
return MENU_NOTHING_CHOSEN;
|
||||
}
|
||||
else if (JOY_NEW(DPAD_LEFT) || GetLRKeysState() == 1)
|
||||
else if (JOY_NEW(DPAD_LEFT) || GetLRKeysPressed() == MENU_L_PRESSED)
|
||||
{
|
||||
if (oldPos != MultichoiceGrid_MoveCursorIfValid(-1, 0))
|
||||
PlaySE(SE_SELECT);
|
||||
return MENU_NOTHING_CHOSEN;
|
||||
}
|
||||
else if (JOY_NEW(DPAD_RIGHT) || GetLRKeysState() == 2)
|
||||
else if (JOY_NEW(DPAD_RIGHT) || GetLRKeysPressed() == MENU_R_PRESSED)
|
||||
{
|
||||
if (oldPos != MultichoiceGrid_MoveCursorIfValid(1, 0))
|
||||
PlaySE(SE_SELECT);
|
||||
@@ -808,13 +808,13 @@ static s8 sub_81106F4(void)
|
||||
MultichoiceGrid_MoveCursor(0, 1);
|
||||
return MENU_NOTHING_CHOSEN;
|
||||
}
|
||||
else if (JOY_REPT(DPAD_ANY) == DPAD_LEFT || GetLRKeysPressedAndHeld() == 1)
|
||||
else if (JOY_REPT(DPAD_ANY) == DPAD_LEFT || GetLRKeysPressedAndHeld() == MENU_L_PRESSED)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
MultichoiceGrid_MoveCursor(-1, 0);
|
||||
return MENU_NOTHING_CHOSEN;
|
||||
}
|
||||
else if (JOY_REPT(DPAD_ANY) == DPAD_RIGHT || GetLRKeysPressedAndHeld() == 2)
|
||||
else if (JOY_REPT(DPAD_ANY) == DPAD_RIGHT || GetLRKeysPressedAndHeld() == MENU_R_PRESSED)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
MultichoiceGrid_MoveCursor(1, 0);
|
||||
@@ -850,13 +850,13 @@ static s8 sub_81107A0(void)
|
||||
PlaySE(SE_SELECT);
|
||||
return MENU_NOTHING_CHOSEN;
|
||||
}
|
||||
else if (JOY_REPT(DPAD_ANY) == DPAD_LEFT || GetLRKeysPressedAndHeld() == 1)
|
||||
else if (JOY_REPT(DPAD_ANY) == DPAD_LEFT || GetLRKeysPressedAndHeld() == MENU_L_PRESSED)
|
||||
{
|
||||
if (oldPos != MultichoiceGrid_MoveCursorIfValid(-1, 0))
|
||||
PlaySE(SE_SELECT);
|
||||
return MENU_NOTHING_CHOSEN;
|
||||
}
|
||||
else if (JOY_REPT(DPAD_ANY) == DPAD_RIGHT || GetLRKeysPressedAndHeld() == 2)
|
||||
else if (JOY_REPT(DPAD_ANY) == DPAD_RIGHT || GetLRKeysPressedAndHeld() == MENU_R_PRESSED)
|
||||
{
|
||||
if (oldPos != MultichoiceGrid_MoveCursorIfValid(1, 0))
|
||||
PlaySE(SE_SELECT);
|
||||
|
||||
+32
-37
@@ -12,15 +12,15 @@
|
||||
#include "constants/items.h"
|
||||
#include "constants/maps.h"
|
||||
|
||||
static EWRAM_DATA const struct YesNoFuncTable *gUnknown_20399C8 = NULL;
|
||||
static EWRAM_DATA TaskFunc gUnknown_20399CC = NULL;
|
||||
static EWRAM_DATA u8 gUnknown_20399D0 = {0};
|
||||
static EWRAM_DATA const struct YesNoFuncTable *sYesNo = NULL;
|
||||
static EWRAM_DATA TaskFunc sMessageNextTask = NULL;
|
||||
static EWRAM_DATA u8 sMessageWindowId = {0};
|
||||
|
||||
static void Task_ContinueTaskAfterMessagePrints(u8 taskId);
|
||||
|
||||
void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 tileNum, u8 paletteNum, u8 fontId, u8 textSpeed, const u8 *string, void *taskFunc)
|
||||
{
|
||||
gUnknown_20399D0 = windowId;
|
||||
sMessageWindowId = windowId;
|
||||
DrawDialogFrameWithCustomTileAndPalette(windowId, TRUE, tileNum, paletteNum);
|
||||
|
||||
if (string != gStringVar4)
|
||||
@@ -28,7 +28,7 @@ void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 tileNum, u8 palet
|
||||
|
||||
gTextFlags.canABSpeedUpPrint = 1;
|
||||
AddTextPrinterParameterized2(windowId, fontId, gStringVar4, textSpeed, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
|
||||
gUnknown_20399CC = taskFunc;
|
||||
sMessageNextTask = taskFunc;
|
||||
gTasks[taskId].func = Task_ContinueTaskAfterMessagePrints;
|
||||
}
|
||||
|
||||
@@ -40,8 +40,8 @@ bool16 RunTextPrinters_CheckActive(u8 textPrinterId)
|
||||
|
||||
static void Task_ContinueTaskAfterMessagePrints(u8 taskId)
|
||||
{
|
||||
if (!RunTextPrinters_CheckActive(gUnknown_20399D0))
|
||||
gUnknown_20399CC(taskId);
|
||||
if (!RunTextPrinters_CheckActive(sMessageWindowId))
|
||||
sMessageNextTask(taskId);
|
||||
}
|
||||
|
||||
static void Task_CallYesOrNoCallback(u8 taskId)
|
||||
@@ -50,12 +50,12 @@ static void Task_CallYesOrNoCallback(u8 taskId)
|
||||
{
|
||||
case 0:
|
||||
PlaySE(SE_SELECT);
|
||||
gTasks[taskId].func = gUnknown_20399C8->yesFunc;
|
||||
gTasks[taskId].func = sYesNo->yesFunc;
|
||||
break;
|
||||
case 1:
|
||||
case MENU_B_PRESSED:
|
||||
PlaySE(SE_SELECT);
|
||||
gTasks[taskId].func = gUnknown_20399C8->noFunc;
|
||||
gTasks[taskId].func = sYesNo->noFunc;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -63,18 +63,18 @@ static void Task_CallYesOrNoCallback(u8 taskId)
|
||||
void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *template, u8 fontId, u8 left, u8 top, u16 tileStart, u8 palette, const struct YesNoFuncTable *yesNo)
|
||||
{
|
||||
CreateYesNoMenu(template, fontId, left, top, tileStart, palette, 0);
|
||||
gUnknown_20399C8 = yesNo;
|
||||
sYesNo = yesNo;
|
||||
gTasks[taskId].func = Task_CallYesOrNoCallback;
|
||||
}
|
||||
|
||||
u8 GetLRKeysState(void)
|
||||
u8 GetLRKeysPressed(void)
|
||||
{
|
||||
if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR)
|
||||
{
|
||||
if (JOY_NEW(L_BUTTON))
|
||||
return 1;
|
||||
return MENU_L_PRESSED;
|
||||
if (JOY_NEW(R_BUTTON))
|
||||
return 2;
|
||||
return MENU_R_PRESSED;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -84,37 +84,34 @@ u8 GetLRKeysPressedAndHeld(void)
|
||||
if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR)
|
||||
{
|
||||
if (JOY_REPT(L_BUTTON))
|
||||
return 1;
|
||||
return MENU_L_PRESSED;
|
||||
if (JOY_REPT(R_BUTTON))
|
||||
return 2;
|
||||
return MENU_R_PRESSED;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool8 itemid_link_can_give_berry(u16 itemId)
|
||||
bool8 IsHoldingItemAllowed(u16 itemId)
|
||||
{
|
||||
if (itemId != ITEM_ENIGMA_BERRY)
|
||||
return TRUE;
|
||||
else if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(TRADE_CENTER)
|
||||
&& gSaveBlock1Ptr->location.mapNum == MAP_NUM(TRADE_CENTER))
|
||||
// Enigma Berry can't be held in link areas
|
||||
if (itemId == ITEM_ENIGMA_BERRY
|
||||
&& ((gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(TRADE_CENTER)
|
||||
&& gSaveBlock1Ptr->location.mapNum == MAP_NUM(TRADE_CENTER))
|
||||
|| InUnionRoom() == TRUE))
|
||||
return FALSE;
|
||||
else if (InUnionRoom() != TRUE)
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 CanWriteMailHere(u16 itemId)
|
||||
bool8 IsWritingMailAllowed(u16 itemId)
|
||||
{
|
||||
if (IsUpdateLinkStateCBActive() != TRUE && InUnionRoom() != TRUE)
|
||||
return TRUE;
|
||||
else if (ItemIsMail(itemId) != TRUE)
|
||||
return TRUE;
|
||||
else
|
||||
if ((IsUpdateLinkStateCBActive() == TRUE || InUnionRoom() == TRUE) && ItemIsMail(itemId) == TRUE)
|
||||
return FALSE;
|
||||
else
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 MenuHelpers_LinkSomething(void)
|
||||
bool8 MenuHelpers_IsLinkActive(void)
|
||||
{
|
||||
if (IsUpdateLinkStateCBActive() == TRUE || gReceivedRemoteLinkPlayers == 1)
|
||||
return TRUE;
|
||||
@@ -122,22 +119,20 @@ bool8 MenuHelpers_LinkSomething(void)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 MenuHelpers_CallLinkSomething(void)
|
||||
bool8 IsActiveOverworldLinkBusy(void)
|
||||
{
|
||||
if (!MenuHelpers_LinkSomething())
|
||||
if (!MenuHelpers_IsLinkActive())
|
||||
return FALSE;
|
||||
else
|
||||
return (u8)Overworld_LinkRecvQueueLengthMoreThan2();
|
||||
}
|
||||
|
||||
bool8 sub_80BF748(void)
|
||||
bool8 MenuHelpers_ShouldWaitForLinkRecv(void)
|
||||
{
|
||||
if (MenuHelpers_CallLinkSomething() == TRUE)
|
||||
if (IsActiveOverworldLinkBusy() == TRUE || IsLinkRecvQueueAtOverworldMax() == TRUE)
|
||||
return TRUE;
|
||||
else if (IsLinkRecvQueueAtOverworldMax() != TRUE)
|
||||
return FALSE;
|
||||
else
|
||||
return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void SetVBlankHBlankCallbacksToNull(void)
|
||||
|
||||
+2
-2
@@ -12,7 +12,7 @@
|
||||
#include "gba/m4a_internal.h"
|
||||
|
||||
// can't include the one in menu_helpers.h since Task_OptionMenu needs bool32 for matching
|
||||
bool32 MenuHelpers_CallLinkSomething(void);
|
||||
bool32 IsActiveOverworldLinkBusy(void);
|
||||
|
||||
// Menu items
|
||||
enum
|
||||
@@ -371,7 +371,7 @@ static void Task_OptionMenu(u8 taskId)
|
||||
sOptionMenuPtr->loadState++;
|
||||
break;
|
||||
case 2:
|
||||
if (((bool32)MenuHelpers_CallLinkSomething()) == TRUE)
|
||||
if (((bool32)IsActiveOverworldLinkBusy()) == TRUE)
|
||||
break;
|
||||
switch (OptionMenu_ProcessInput())
|
||||
{
|
||||
|
||||
+8
-8
@@ -476,7 +476,7 @@ static void CB2_InitPartyMenu(void)
|
||||
{
|
||||
while (TRUE)
|
||||
{
|
||||
if (sub_80BF748() == TRUE || ShowPartyMenu() == TRUE || MenuHelpers_LinkSomething() == TRUE)
|
||||
if (MenuHelpers_ShouldWaitForLinkRecv() == TRUE || ShowPartyMenu() == TRUE || MenuHelpers_IsLinkActive() == TRUE)
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -509,7 +509,7 @@ static bool8 ShowPartyMenu(void)
|
||||
++gMain.state;
|
||||
break;
|
||||
case 5:
|
||||
if (!MenuHelpers_LinkSomething())
|
||||
if (!MenuHelpers_IsLinkActive())
|
||||
ResetTasks();
|
||||
++gMain.state;
|
||||
break;
|
||||
@@ -1118,7 +1118,7 @@ u8 GetPartyMenuType(void)
|
||||
|
||||
void Task_HandleChooseMonInput(u8 taskId)
|
||||
{
|
||||
if (!gPaletteFade.active && sub_80BF748() != TRUE)
|
||||
if (!gPaletteFade.active && MenuHelpers_ShouldWaitForLinkRecv() != TRUE)
|
||||
{
|
||||
s8 *slotPtr = GetCurrentPartySlotPtr();
|
||||
|
||||
@@ -1248,7 +1248,7 @@ static void HandleChooseMonCancel(u8 taskId, s8 *slotPtr)
|
||||
DisplayCancelChooseMonYesNo(taskId);
|
||||
else
|
||||
{
|
||||
if (!MenuHelpers_LinkSomething())
|
||||
if (!MenuHelpers_IsLinkActive())
|
||||
gSpecialVar_0x8004 = SLOT_CANCEL;
|
||||
gPartyMenuUseExitCallback = FALSE;
|
||||
*slotPtr = SLOT_CANCEL;
|
||||
@@ -1548,7 +1548,7 @@ bool8 IsPartyMenuTextPrinterActive(void)
|
||||
|
||||
static void Task_WaitForLinkAndReturnToChooseMon(u8 taskId)
|
||||
{
|
||||
if (sub_80BF748() != TRUE)
|
||||
if (MenuHelpers_ShouldWaitForLinkRecv() != TRUE)
|
||||
{
|
||||
DisplayPartyMenuStdMessage(PARTY_MSG_CHOOSE_MON);
|
||||
gTasks[taskId].func = Task_HandleChooseMonInput;
|
||||
@@ -1561,7 +1561,7 @@ static void Task_ReturnToChooseMonAfterText(u8 taskId)
|
||||
{
|
||||
ClearStdWindowAndFrameToTransparent(6, FALSE);
|
||||
ClearWindowTilemap(6);
|
||||
if (MenuHelpers_LinkSomething() == TRUE)
|
||||
if (MenuHelpers_IsLinkActive() == TRUE)
|
||||
{
|
||||
gTasks[taskId].func = Task_WaitForLinkAndReturnToChooseMon;
|
||||
}
|
||||
@@ -3061,7 +3061,7 @@ static void Task_TryCreateSelectionWindow(u8 taskId)
|
||||
|
||||
static void Task_HandleSelectionMenuInput(u8 taskId)
|
||||
{
|
||||
if (!gPaletteFade.active && sub_80BF748() != TRUE)
|
||||
if (!gPaletteFade.active && MenuHelpers_ShouldWaitForLinkRecv() != TRUE)
|
||||
{
|
||||
s8 input;
|
||||
s16 *data = gTasks[taskId].data;
|
||||
@@ -3912,7 +3912,7 @@ static void CursorCB_FieldMove(u8 taskId)
|
||||
return;
|
||||
PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[0]);
|
||||
PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[1]);
|
||||
if (MenuHelpers_LinkSomething() == TRUE || InUnionRoom() == TRUE)
|
||||
if (MenuHelpers_IsLinkActive() == TRUE || InUnionRoom() == TRUE)
|
||||
{
|
||||
if (fieldMove == FIELD_MOVE_MILK_DRINK || fieldMove == FIELD_MOVE_SOFT_BOILED)
|
||||
DisplayPartyMenuStdMessage(PARTY_MSG_CANT_USE_HERE);
|
||||
|
||||
@@ -1117,7 +1117,7 @@ static void Task_InputHandler_Info(u8 taskId)
|
||||
sMonSummaryScreen->state3270 = PSS_STATE3270_PLAYCRY;
|
||||
break;
|
||||
case PSS_STATE3270_HANDLEINPUT:
|
||||
if (MenuHelpers_CallLinkSomething() == TRUE)
|
||||
if (IsActiveOverworldLinkBusy() == TRUE)
|
||||
return;
|
||||
else if (IsLinkRecvQueueAtOverworldMax() == TRUE)
|
||||
return;
|
||||
@@ -3501,7 +3501,7 @@ static void Task_HandleInput_SelectMove(u8 taskId)
|
||||
switch (sMonSummaryScreen->selectMoveInputHandlerState)
|
||||
{
|
||||
case 0:
|
||||
if (MenuHelpers_CallLinkSomething() == TRUE || IsLinkRecvQueueAtOverworldMax() == TRUE)
|
||||
if (IsActiveOverworldLinkBusy() == TRUE || IsLinkRecvQueueAtOverworldMax() == TRUE)
|
||||
return;
|
||||
|
||||
if (JOY_NEW(DPAD_UP))
|
||||
@@ -3662,7 +3662,7 @@ static void Task_HandleInput_SelectMove(u8 taskId)
|
||||
sMonSummaryScreen->selectMoveInputHandlerState = 3;
|
||||
break;
|
||||
case 3:
|
||||
if (MenuHelpers_CallLinkSomething() == TRUE || IsLinkRecvQueueAtOverworldMax() == TRUE)
|
||||
if (IsActiveOverworldLinkBusy() == TRUE || IsLinkRecvQueueAtOverworldMax() == TRUE)
|
||||
return;
|
||||
|
||||
CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], 2);
|
||||
@@ -3880,7 +3880,7 @@ static void Task_InputHandler_SelectOrForgetMove(u8 taskId)
|
||||
sMonSummaryScreen->selectMoveInputHandlerState = 4;
|
||||
break;
|
||||
case 4:
|
||||
if (MenuHelpers_CallLinkSomething() == TRUE || IsLinkRecvQueueAtOverworldMax() == TRUE)
|
||||
if (IsActiveOverworldLinkBusy() == TRUE || IsLinkRecvQueueAtOverworldMax() == TRUE)
|
||||
return;
|
||||
|
||||
CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], 2);
|
||||
|
||||
+1
-1
@@ -1275,7 +1275,7 @@ static void SortQuestLogInSav1(void)
|
||||
|
||||
void SaveQuestLogData(void)
|
||||
{
|
||||
if (MenuHelpers_LinkSomething() != TRUE)
|
||||
if (MenuHelpers_IsLinkActive() != TRUE)
|
||||
{
|
||||
QuestLog_CutRecording();
|
||||
SortQuestLogInSav1();
|
||||
|
||||
@@ -189,7 +189,7 @@ void SetQuestLogEvent(u16 eventId, const u16 *eventData)
|
||||
if (TrySetLinkQuestLogEvent(eventId, eventData) == TRUE)
|
||||
return;
|
||||
|
||||
if (MenuHelpers_LinkSomething() == TRUE)
|
||||
if (MenuHelpers_IsLinkActive() == TRUE)
|
||||
return;
|
||||
|
||||
if (InUnionRoom() == TRUE)
|
||||
|
||||
+3
-3
@@ -319,7 +319,7 @@ static s8 DoDrawStartMenu(void)
|
||||
break;
|
||||
case 5:
|
||||
sStartMenuCursorPos = Menu_InitCursor(GetStartMenuWindowId(), FONT_2, 0, 0, 15, sNumStartMenuItems, sStartMenuCursorPos);
|
||||
if (!MenuHelpers_LinkSomething() && InUnionRoom() != TRUE && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_HELP)
|
||||
if (!MenuHelpers_IsLinkActive() && InUnionRoom() != TRUE && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_HELP)
|
||||
{
|
||||
DrawHelpMessageWindowWithText(sStartMenuDescPointers[sStartMenuOrder[sStartMenuCursorPos]]);
|
||||
}
|
||||
@@ -403,7 +403,7 @@ static bool8 StartCB_HandleInput(void)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
sStartMenuCursorPos = Menu_MoveCursor(-1);
|
||||
if (!MenuHelpers_LinkSomething() && InUnionRoom() != TRUE && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_HELP)
|
||||
if (!MenuHelpers_IsLinkActive() && InUnionRoom() != TRUE && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_HELP)
|
||||
{
|
||||
PrintTextOnHelpMessageWindow(sStartMenuDescPointers[sStartMenuOrder[sStartMenuCursorPos]], 2);
|
||||
}
|
||||
@@ -412,7 +412,7 @@ static bool8 StartCB_HandleInput(void)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
sStartMenuCursorPos = Menu_MoveCursor(+1);
|
||||
if (!MenuHelpers_LinkSomething() && InUnionRoom() != TRUE && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_HELP)
|
||||
if (!MenuHelpers_IsLinkActive() && InUnionRoom() != TRUE && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_HELP)
|
||||
{
|
||||
PrintTextOnHelpMessageWindow(sStartMenuDescPointers[sStartMenuOrder[sStartMenuCursorPos]], 2);
|
||||
}
|
||||
|
||||
+5
-5
@@ -449,11 +449,11 @@ static void CB2_SetUpTMCaseUI_Blocking(void)
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
if (MenuHelpers_CallLinkSomething() == TRUE)
|
||||
if (IsActiveOverworldLinkBusy() == TRUE)
|
||||
break;
|
||||
if (DoSetUpTMCaseUI() == TRUE)
|
||||
break;
|
||||
if (MenuHelpers_LinkSomething() == TRUE)
|
||||
if (MenuHelpers_IsLinkActive() == TRUE)
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -894,7 +894,7 @@ static void Task_HandleListInput(u8 taskId)
|
||||
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
if (MenuHelpers_CallLinkSomething() != TRUE)
|
||||
if (IsActiveOverworldLinkBusy() != TRUE)
|
||||
{
|
||||
input = ListMenu_ProcessInput(tListTaskId);
|
||||
ListMenuGetScrollAndRow(tListTaskId, &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
|
||||
@@ -946,7 +946,7 @@ static void Task_SelectedTMHM_Field(u8 taskId)
|
||||
|
||||
// Create context window
|
||||
TMCase_SetWindowBorder2(WIN_SELECTED_MSG);
|
||||
if (!MenuHelpers_LinkSomething() && InUnionRoom() != TRUE)
|
||||
if (!MenuHelpers_IsLinkActive() && InUnionRoom() != TRUE)
|
||||
{
|
||||
// Regular TM/HM context menu
|
||||
AddContextMenu(&sTMCaseDynamicResources->contextMenuWindowId, WIN_USE_GIVE_EXIT);
|
||||
@@ -995,7 +995,7 @@ static void Task_ContextMenu_HandleInput(u8 taskId)
|
||||
{
|
||||
s8 input;
|
||||
|
||||
if (MenuHelpers_CallLinkSomething() != TRUE)
|
||||
if (IsActiveOverworldLinkBusy() != TRUE)
|
||||
{
|
||||
input = Menu_ProcessInputNoWrapAround();
|
||||
switch (input)
|
||||
|
||||
Reference in New Issue
Block a user