summaryrefslogtreecommitdiff
path: root/src/option_menu.c
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@users.noreply.github.com>2020-04-03 19:25:01 -0400
committerGitHub <noreply@github.com>2020-04-03 19:25:01 -0400
commitc47eca8a182a2a202cd65e2af93e9ef322d8674c (patch)
tree30cc360cbf4b2f3250864aa28cc88a728074e3db /src/option_menu.c
parent200c82e01a94dbe535e6ed8768d8afad4444d4d2 (diff)
parent8f74dda3e443d561b21d6b267aa71d14aed05031 (diff)
Merge pull request #316 from PikalaxALT/various_documentation
Various documentation
Diffstat (limited to 'src/option_menu.c')
-rw-r--r--src/option_menu.c89
1 files changed, 46 insertions, 43 deletions
diff --git a/src/option_menu.c b/src/option_menu.c
index 87306c98f..54cca0501 100644
--- a/src/option_menu.c
+++ b/src/option_menu.c
@@ -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));
}