doc option_menu
This commit is contained in:
+3
-3
@@ -457,7 +457,7 @@ static void CB2_InitBerryPouch(void)
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
if ((u8)sub_80BF72C() == TRUE)
|
||||
if ((u8)MenuHelpers_CallLinkSomething() == TRUE)
|
||||
break;
|
||||
if (RunBerryPouchInit() == TRUE)
|
||||
break;
|
||||
@@ -934,7 +934,7 @@ static void Task_BerryPouchMain(u8 taskId)
|
||||
{
|
||||
s16 * data = gTasks[taskId].data;
|
||||
s32 menuInput;
|
||||
if (!gPaletteFade.active && (u8)sub_80BF72C() != TRUE)
|
||||
if (!gPaletteFade.active && (u8)MenuHelpers_CallLinkSomething() != TRUE)
|
||||
{
|
||||
menuInput = ListMenu_ProcessInput(data[0]);
|
||||
ListMenuGetScrollAndRow(data[0], &sStaticCnt.listMenuScrollOffset, &sStaticCnt.listMenuSelectedRow);
|
||||
@@ -1040,7 +1040,7 @@ static void Task_NormalContextMenu(u8 taskId)
|
||||
static void Task_NormalContextMenu_HandleInput(u8 taskId)
|
||||
{
|
||||
s8 input;
|
||||
if ((u8)sub_80BF72C() != TRUE)
|
||||
if ((u8)MenuHelpers_CallLinkSomething() != TRUE)
|
||||
{
|
||||
input = Menu_ProcessInputNoWrapAround();
|
||||
switch (input)
|
||||
|
||||
+4
-4
@@ -377,7 +377,7 @@ static void CB2_OpenBagMenu(void)
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
if ((u8)sub_80BF72C() == TRUE)
|
||||
if ((u8)MenuHelpers_CallLinkSomething() == TRUE)
|
||||
break;
|
||||
if (LoadBagMenuGraphics() == TRUE)
|
||||
break;
|
||||
@@ -1050,7 +1050,7 @@ static void Task_BagMenu_HandleInput(u8 taskId)
|
||||
return;
|
||||
if (FuncIsActiveTask(Task_AnimateWin0v) == TRUE)
|
||||
return;
|
||||
if ((u8)sub_80BF72C() == TRUE)
|
||||
if ((u8)MenuHelpers_CallLinkSomething() == TRUE)
|
||||
return;
|
||||
switch (ProcessPocketSwitchInput(taskId, gBagMenuState.pocket))
|
||||
{
|
||||
@@ -1244,7 +1244,7 @@ static void Task_MoveItemInPocket_HandleInput(u8 taskId)
|
||||
s32 input;
|
||||
u16 itemsAbove;
|
||||
u16 cursorPos;
|
||||
if ((u8)sub_80BF72C() == TRUE)
|
||||
if ((u8)MenuHelpers_CallLinkSomething() == TRUE)
|
||||
return;
|
||||
input = ListMenu_ProcessInput(data[0]);
|
||||
ListMenuGetScrollAndRow(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]);
|
||||
@@ -1447,7 +1447,7 @@ static void Task_ItemContext_FieldOrBattle(u8 taskId)
|
||||
static void Task_FieldItemContextMenuHandleInput(u8 taskId)
|
||||
{
|
||||
s8 input;
|
||||
if ((u8)sub_80BF72C() != TRUE)
|
||||
if ((u8)MenuHelpers_CallLinkSomething() != TRUE)
|
||||
{
|
||||
input = Menu_ProcessInputNoWrapAround();
|
||||
switch (input)
|
||||
|
||||
+1
-1
@@ -385,7 +385,7 @@ static bool8 ItemPc_DoGfxSetup(void)
|
||||
gMain.state++;
|
||||
break;
|
||||
case 20:
|
||||
if ((u8)sub_80BF72C() != TRUE)
|
||||
if ((u8)MenuHelpers_CallLinkSomething() != TRUE)
|
||||
gMain.state++;
|
||||
break;
|
||||
default:
|
||||
|
||||
+1
-1
@@ -588,7 +588,7 @@ static bool8 DoInitMailView(void)
|
||||
}
|
||||
break;
|
||||
case 15:
|
||||
if (sub_8058244() == TRUE)
|
||||
if (Overworld_LinkRecvQueueLengthMoreThan2() == TRUE)
|
||||
return FALSE;
|
||||
break;
|
||||
case 16:
|
||||
|
||||
+3
-3
@@ -125,17 +125,17 @@ bool8 MenuHelpers_LinkSomething(void)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool32 sub_80BF72C(void)
|
||||
bool32 MenuHelpers_CallLinkSomething(void)
|
||||
{
|
||||
if (!MenuHelpers_LinkSomething())
|
||||
return FALSE;
|
||||
else
|
||||
return (u8)sub_8058244();
|
||||
return (u8)Overworld_LinkRecvQueueLengthMoreThan2();
|
||||
}
|
||||
|
||||
bool8 sub_80BF748(void)
|
||||
{
|
||||
if ((u8)sub_80BF72C() == TRUE)
|
||||
if ((u8)MenuHelpers_CallLinkSomething() == TRUE)
|
||||
return TRUE;
|
||||
else if (sub_800B270() != TRUE)
|
||||
return FALSE;
|
||||
|
||||
+46
-43
@@ -43,11 +43,10 @@ enum
|
||||
struct OptionMenu
|
||||
{
|
||||
/*0x00*/ u16 option[MENUITEM_COUNT];
|
||||
/*0x0E*/ u16 unkE;
|
||||
/*0x10*/ u8 state3;
|
||||
/*0x0E*/ u16 cursorPos;
|
||||
/*0x10*/ u8 loadState;
|
||||
/*0x11*/ u8 state;
|
||||
/*0x12*/ u8 state2;
|
||||
/*0x13*/ u8 unk13;
|
||||
/*0x12*/ u8 loadPaletteState;
|
||||
};
|
||||
|
||||
static EWRAM_DATA struct OptionMenu *sOptionMenuPtr = NULL;
|
||||
@@ -68,9 +67,9 @@ static u8 OptionMenu_ProcessInput(void);
|
||||
static void BufferOptionMenuString(u8 selection);
|
||||
static void CloseAndSaveOptionMenu(u8 taskId);
|
||||
static void PrintOptionMenuHeader(void);
|
||||
static void sub_8088C0C(void);
|
||||
static void DrawOptionMenuBg(void);
|
||||
static void LoadOptionMenuItemNames(void);
|
||||
static void sub_8088DE0(u16 selection);
|
||||
static void UpdateSettingSelectionDisplay(u16 selection);
|
||||
|
||||
// Data Definitions
|
||||
static const struct WindowTemplate sOptionMenuWinTemplates[] =
|
||||
@@ -208,10 +207,10 @@ void CB2_OptionsMenuFromStartMenu(void)
|
||||
if (gMain.savedCallback == NULL)
|
||||
gMain.savedCallback = CB2_ReturnToFieldWithOpenMenu;
|
||||
sOptionMenuPtr = AllocZeroed(sizeof(struct OptionMenu));
|
||||
sOptionMenuPtr->state3 = 0;
|
||||
sOptionMenuPtr->state2 = 0;
|
||||
sOptionMenuPtr->loadState = 0;
|
||||
sOptionMenuPtr->loadPaletteState = 0;
|
||||
sOptionMenuPtr->state = 0;
|
||||
sOptionMenuPtr->unkE = 0;
|
||||
sOptionMenuPtr->cursorPos = 0;
|
||||
sOptionMenuPtr->option[MENUITEM_TEXTSPEED] = gSaveBlock2Ptr->optionsTextSpeed;
|
||||
sOptionMenuPtr->option[MENUITEM_BATTLESCENE] = gSaveBlock2Ptr->optionsBattleSceneOff;
|
||||
sOptionMenuPtr->option[MENUITEM_BATTLESTYLE] = gSaveBlock2Ptr->optionsBattleStyle;
|
||||
@@ -262,7 +261,7 @@ static void CB2_OptionMenu(void)
|
||||
PrintOptionMenuHeader();
|
||||
break;
|
||||
case 5:
|
||||
sub_8088C0C();
|
||||
DrawOptionMenuBg();
|
||||
break;
|
||||
case 6:
|
||||
LoadOptionMenuItemNames();
|
||||
@@ -272,7 +271,7 @@ static void CB2_OptionMenu(void)
|
||||
BufferOptionMenuString(i);
|
||||
break;
|
||||
case 8:
|
||||
sub_8088DE0(sOptionMenuPtr->unkE);
|
||||
UpdateSettingSelectionDisplay(sOptionMenuPtr->cursorPos);
|
||||
break;
|
||||
case 9:
|
||||
OptionMenu_PickSwitchCancel();
|
||||
@@ -340,7 +339,7 @@ static void OptionMenu_ResetSpriteData(void)
|
||||
|
||||
static bool8 LoadOptionMenuPalette(void)
|
||||
{
|
||||
switch (sOptionMenuPtr->state2)
|
||||
switch (sOptionMenuPtr->loadPaletteState)
|
||||
{
|
||||
case 0:
|
||||
LoadBgTiles(1, GetUserFrameGraphicsInfo(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->tiles, 0x120, 0x1AA);
|
||||
@@ -358,51 +357,55 @@ static bool8 LoadOptionMenuPalette(void)
|
||||
default:
|
||||
return TRUE;
|
||||
}
|
||||
sOptionMenuPtr->state2++;
|
||||
sOptionMenuPtr->loadPaletteState++;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void Task_OptionMenu(u8 taskId)
|
||||
{
|
||||
switch (sOptionMenuPtr->state3)
|
||||
switch (sOptionMenuPtr->loadState)
|
||||
{
|
||||
case 0:
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK);
|
||||
OptionMenu_SetVBlankCallback();
|
||||
sOptionMenuPtr->state3++;
|
||||
sOptionMenuPtr->loadState++;
|
||||
break;
|
||||
case 1:
|
||||
if (gPaletteFade.active)
|
||||
return;
|
||||
sOptionMenuPtr->loadState++;
|
||||
break;
|
||||
case 2:
|
||||
if (sub_80BF72C() == TRUE)
|
||||
if (MenuHelpers_CallLinkSomething() == TRUE)
|
||||
break;
|
||||
switch (OptionMenu_ProcessInput())
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
sOptionMenuPtr->state3++;
|
||||
sOptionMenuPtr->loadState++;
|
||||
break;
|
||||
case 2:
|
||||
LoadBgTiles(1, GetUserFrameGraphicsInfo(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->tiles, 0x120, 0x1AA);
|
||||
LoadPalette(GetUserFrameGraphicsInfo(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->palette, 0x20, 0x20);
|
||||
BufferOptionMenuString(sOptionMenuPtr->unkE);
|
||||
BufferOptionMenuString(sOptionMenuPtr->cursorPos);
|
||||
break;
|
||||
case 3:
|
||||
sub_8088DE0(sOptionMenuPtr->unkE);
|
||||
UpdateSettingSelectionDisplay(sOptionMenuPtr->cursorPos);
|
||||
break;
|
||||
case 4:
|
||||
BufferOptionMenuString(sOptionMenuPtr->unkE);
|
||||
BufferOptionMenuString(sOptionMenuPtr->cursorPos);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK);
|
||||
sOptionMenuPtr->state3++;
|
||||
sOptionMenuPtr->loadState++;
|
||||
break;
|
||||
case 1:
|
||||
case 4:
|
||||
if (gPaletteFade.active)
|
||||
return;
|
||||
sOptionMenuPtr->state3++;
|
||||
sOptionMenuPtr->loadState++;
|
||||
break;
|
||||
case 5:
|
||||
CloseAndSaveOptionMenu(taskId);
|
||||
@@ -416,43 +419,43 @@ static u8 OptionMenu_ProcessInput(void)
|
||||
u16* curr;
|
||||
if (JOY_REPT(DPAD_RIGHT))
|
||||
{
|
||||
current = sOptionMenuPtr->option[(sOptionMenuPtr->unkE)];
|
||||
if (current == (sOptionMenuItemCounts[sOptionMenuPtr->unkE] - 1))
|
||||
sOptionMenuPtr->option[sOptionMenuPtr->unkE] = 0;
|
||||
current = sOptionMenuPtr->option[(sOptionMenuPtr->cursorPos)];
|
||||
if (current == (sOptionMenuItemCounts[sOptionMenuPtr->cursorPos] - 1))
|
||||
sOptionMenuPtr->option[sOptionMenuPtr->cursorPos] = 0;
|
||||
else
|
||||
sOptionMenuPtr->option[sOptionMenuPtr->unkE] = current + 1;
|
||||
if (sOptionMenuPtr->unkE == MENUITEM_FRAMETYPE)
|
||||
sOptionMenuPtr->option[sOptionMenuPtr->cursorPos] = current + 1;
|
||||
if (sOptionMenuPtr->cursorPos == MENUITEM_FRAMETYPE)
|
||||
return 2;
|
||||
else
|
||||
return 4;
|
||||
}
|
||||
else if (JOY_REPT(DPAD_LEFT))
|
||||
{
|
||||
curr = &sOptionMenuPtr->option[sOptionMenuPtr->unkE];
|
||||
curr = &sOptionMenuPtr->option[sOptionMenuPtr->cursorPos];
|
||||
if (*curr == 0)
|
||||
*curr = sOptionMenuItemCounts[sOptionMenuPtr->unkE] - 1;
|
||||
*curr = sOptionMenuItemCounts[sOptionMenuPtr->cursorPos] - 1;
|
||||
else
|
||||
--*curr;
|
||||
|
||||
if (sOptionMenuPtr->unkE == MENUITEM_FRAMETYPE)
|
||||
if (sOptionMenuPtr->cursorPos == MENUITEM_FRAMETYPE)
|
||||
return 2;
|
||||
else
|
||||
return 4;
|
||||
}
|
||||
else if (JOY_REPT(DPAD_UP))
|
||||
{
|
||||
if (sOptionMenuPtr->unkE == MENUITEM_TEXTSPEED)
|
||||
sOptionMenuPtr->unkE = MENUITEM_CANCEL;
|
||||
if (sOptionMenuPtr->cursorPos == MENUITEM_TEXTSPEED)
|
||||
sOptionMenuPtr->cursorPos = MENUITEM_CANCEL;
|
||||
else
|
||||
sOptionMenuPtr->unkE = sOptionMenuPtr->unkE - 1;
|
||||
sOptionMenuPtr->cursorPos = sOptionMenuPtr->cursorPos - 1;
|
||||
return 3;
|
||||
}
|
||||
else if (JOY_REPT(DPAD_DOWN))
|
||||
{
|
||||
if (sOptionMenuPtr->unkE == MENUITEM_CANCEL)
|
||||
sOptionMenuPtr->unkE = MENUITEM_TEXTSPEED;
|
||||
if (sOptionMenuPtr->cursorPos == MENUITEM_CANCEL)
|
||||
sOptionMenuPtr->cursorPos = MENUITEM_TEXTSPEED;
|
||||
else
|
||||
sOptionMenuPtr->unkE = sOptionMenuPtr->unkE + 1;
|
||||
sOptionMenuPtr->cursorPos = sOptionMenuPtr->cursorPos + 1;
|
||||
return 3;
|
||||
}
|
||||
else if (JOY_NEW(B_BUTTON) || JOY_NEW(A_BUTTON))
|
||||
@@ -531,7 +534,7 @@ static void PrintOptionMenuHeader(void)
|
||||
CopyWindowToVram(0, 3);
|
||||
}
|
||||
|
||||
static void sub_8088C0C(void)
|
||||
static void DrawOptionMenuBg(void)
|
||||
{
|
||||
u8 h;
|
||||
h = 2;
|
||||
@@ -566,12 +569,12 @@ static void LoadOptionMenuItemNames(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_8088DE0(u16 selection)
|
||||
static void UpdateSettingSelectionDisplay(u16 selection)
|
||||
{
|
||||
u16 v1, v2;
|
||||
u16 maxLetterHeight, y;
|
||||
|
||||
v1 = GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT);
|
||||
v2 = selection * (v1 - 1) + 0x3A;
|
||||
SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(v2, v2 + v1));
|
||||
maxLetterHeight = GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT);
|
||||
y = selection * ( maxLetterHeight - 1) + 0x3A;
|
||||
SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(y, y + maxLetterHeight));
|
||||
SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0x10, 0xE0));
|
||||
}
|
||||
|
||||
+8
-8
@@ -120,7 +120,7 @@ u8 gFieldLinkPlayerCount;
|
||||
|
||||
static u8 sPlayerTradingStates[4];
|
||||
static KeyInterCB sPlayerKeyInterceptCallback;
|
||||
static bool8 gUnknown_3000E88;
|
||||
static bool8 sReceivingFromLink;
|
||||
static u8 sRfuKeepAliveTimer;
|
||||
|
||||
static u8 CountBadgesForOverworldWhiteOutLossCalculation(void);
|
||||
@@ -1629,7 +1629,7 @@ static void CB2_ReturnToFieldLocal(void)
|
||||
|
||||
static void CB2_ReturnToFieldLink(void)
|
||||
{
|
||||
if (!sub_8058244() && map_loading_iteration_2_link(&gMain.state))
|
||||
if (!Overworld_LinkRecvQueueLengthMoreThan2() && map_loading_iteration_2_link(&gMain.state))
|
||||
SetMainCallback2(CB2_Overworld);
|
||||
}
|
||||
|
||||
@@ -3181,15 +3181,15 @@ static void sub_8058230(void)
|
||||
ScriptContext2_Enable();
|
||||
}
|
||||
|
||||
bool32 sub_8058244(void)
|
||||
bool32 Overworld_LinkRecvQueueLengthMoreThan2(void)
|
||||
{
|
||||
if (!IsUpdateLinkStateCBActive())
|
||||
return FALSE;
|
||||
if (GetLinkRecvQueueLength() >= 3)
|
||||
gUnknown_3000E88 = TRUE;
|
||||
sReceivingFromLink = TRUE;
|
||||
else
|
||||
gUnknown_3000E88 = FALSE;
|
||||
return gUnknown_3000E88;
|
||||
sReceivingFromLink = FALSE;
|
||||
return sReceivingFromLink;
|
||||
}
|
||||
|
||||
bool32 sub_8058274(void)
|
||||
@@ -3207,8 +3207,8 @@ bool32 sub_8058274(void)
|
||||
else if (sPlayerKeyInterceptCallback != KeyInterCB_DeferToEventScript)
|
||||
return FALSE;
|
||||
|
||||
temp = gUnknown_3000E88;
|
||||
gUnknown_3000E88 = FALSE;
|
||||
temp = sReceivingFromLink;
|
||||
sReceivingFromLink = FALSE;
|
||||
|
||||
if (temp == TRUE)
|
||||
return TRUE;
|
||||
|
||||
+3
-3
@@ -304,7 +304,7 @@ static void CB2_SetUpTMCaseUI_Blocking(void)
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
if ((u8)sub_80BF72C() == TRUE)
|
||||
if ((u8)MenuHelpers_CallLinkSomething() == TRUE)
|
||||
break;
|
||||
if (DoSetUpTMCaseUI() == TRUE)
|
||||
break;
|
||||
@@ -733,7 +733,7 @@ static void Task_TMCaseMain(u8 taskId)
|
||||
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
if ((u8)sub_80BF72C() != TRUE)
|
||||
if ((u8)MenuHelpers_CallLinkSomething() != TRUE)
|
||||
{
|
||||
input = ListMenu_ProcessInput(data[0]);
|
||||
ListMenuGetScrollAndRow(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
|
||||
@@ -814,7 +814,7 @@ static void Task_TMContextMenu_HandleInput(u8 taskId)
|
||||
{
|
||||
s8 input;
|
||||
|
||||
if ((u8)sub_80BF72C() != TRUE)
|
||||
if ((u8)MenuHelpers_CallLinkSomething() != TRUE)
|
||||
{
|
||||
input = Menu_ProcessInputNoWrapAround();
|
||||
switch (input)
|
||||
|
||||
+3
-3
@@ -589,7 +589,7 @@ static void Task_TrainerCard(u8 taskId)
|
||||
}
|
||||
break;
|
||||
case STATE_WAIT_FLIP_TO_BACK:
|
||||
if (IsCardFlipTaskActive() && sub_8058244() != TRUE)
|
||||
if (IsCardFlipTaskActive() && Overworld_LinkRecvQueueLengthMoreThan2() != TRUE)
|
||||
{
|
||||
PlaySE(SE_CARD3);
|
||||
sTrainerCardDataPtr->mainState = STATE_HANDLE_INPUT_BACK;
|
||||
@@ -647,7 +647,7 @@ static void Task_TrainerCard(u8 taskId)
|
||||
CloseTrainerCard(taskId);
|
||||
break;
|
||||
case STATE_WAIT_FLIP_TO_FRONT:
|
||||
if (IsCardFlipTaskActive() && sub_8058244() != TRUE)
|
||||
if (IsCardFlipTaskActive() && Overworld_LinkRecvQueueLengthMoreThan2() != TRUE)
|
||||
{
|
||||
sTrainerCardDataPtr->mainState = STATE_HANDLE_INPUT_FRONT;
|
||||
PlaySE(SE_CARD3);
|
||||
@@ -1727,7 +1727,7 @@ static bool8 Task_AnimateCardFlipDown(struct Task* task)
|
||||
static bool8 Task_DrawFlippedCardSide(struct Task* task)
|
||||
{
|
||||
sTrainerCardDataPtr->allowDMACopy = FALSE;
|
||||
if (sub_8058244() == TRUE)
|
||||
if (Overworld_LinkRecvQueueLengthMoreThan2() == TRUE)
|
||||
return FALSE;
|
||||
|
||||
do
|
||||
|
||||
Reference in New Issue
Block a user