summaryrefslogtreecommitdiff
path: root/src/menu.c
diff options
context:
space:
mode:
authorMarcus Huderle <huderlem@gmail.com>2019-03-23 09:39:46 -0500
committerMarcus Huderle <huderlem@gmail.com>2019-03-23 09:39:46 -0500
commit65391a1eb2979dc050dd4a98afea02bb0ef310ea (patch)
treee31a90d0966cec7e8713ead9ca8083d439c8d9b5 /src/menu.c
parenteb48cc2f7eefc1e56c2dcec21c38381b4534b897 (diff)
parentabe56579c107af58e6f3a43968ba2257ff358189 (diff)
Merge remote-tracking branch 'upstream/master' into use_pokeblock
# Conflicts: # src/use_pokeblock.c
Diffstat (limited to 'src/menu.c')
-rw-r--r--src/menu.c129
1 files changed, 65 insertions, 64 deletions
diff --git a/src/menu.c b/src/menu.c
index ae589dff4..b04572b81 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -122,20 +122,18 @@ const struct MoveMenuInfoIcon gMoveMenuInfoIcons[] =
{ 8, 8, 0xAF }, // Unused (Small dark pokeball)
};
+
// Forward declarations
-extern void sub_81973A4(void);
-extern void DrawStandardFrame(u8, u8, u8, u8, u8, u8);
-extern void DrawDialogueFrame(u8, u8, u8, u8, u8, u8);
-extern void sub_81977BC(u8, u8, u8, u8, u8, u8);
-extern void sub_8197804(u8, u8, u8, u8, u8, u8);
-extern void sub_8197BB4(u8, u8, u8, u8, u8, u8);
-extern void sub_8197E30(u8, u8, u8, u8, u8, u8);
-extern void DrawWindowBorder(u8, u8, u8, u8, u8, u8);
-extern void sub_81980A8(u8, u8, u8, u8, u8, u8);
-extern u8 Menu_MoveCursor(s8);
-extern u8 sub_8199134(s8, s8);
-extern void sub_8198C78(void);
-extern void task_free_buf_after_copying_tile_data_to_vram(u8 taskId);
+void WindowFunc_DrawStandardFrame(u8, u8, u8, u8, u8, u8);
+void WindowFunc_DrawDialogueFrame(u8, u8, u8, u8, u8, u8);
+void WindowFunc_ClearStdWindowAndFrame(u8, u8, u8, u8, u8, u8);
+void WindowFunc_ClearDialogWindowAndFrame(u8, u8, u8, u8, u8, u8);
+void WindowFunc_DrawDialogFrameWithCustomTileAndPalette(u8, u8, u8, u8, u8, u8);
+void WindowFunc_ClearDialogWindowAndFrameNullPalette(u8, u8, u8, u8, u8, u8);
+void WindowFunc_DrawStdFrameWithCustomTileAndPalette(u8, u8, u8, u8, u8, u8);
+void WindowFunc_ClearStdWindowAndFrameToTransparent(u8, u8, u8, u8, u8, u8);
+void sub_8198C78(void);
+void task_free_buf_after_copying_tile_data_to_vram(u8 taskId);
void InitStandardTextBoxWindows(void)
{
@@ -210,43 +208,43 @@ void sub_81973A4(void)
LoadUserWindowBorderGfx(0, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM * 0x10);
}
-void NewMenuHelpers_DrawDialogueFrame(u8 windowId, bool8 copyToVram)
+void DrawDialogueFrame(u8 windowId, bool8 copyToVram)
{
- CallWindowFunction(windowId, DrawDialogueFrame);
- FillWindowPixelBuffer(windowId, 0x11);
+ CallWindowFunction(windowId, WindowFunc_DrawDialogueFrame);
+ FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
PutWindowTilemap(windowId);
if (copyToVram == TRUE)
CopyWindowToVram(windowId, 3);
}
-void NewMenuHelpers_DrawStdWindowFrame(u8 windowId, bool8 copyToVram)
+void DrawStdWindowFrame(u8 windowId, bool8 copyToVram)
{
- CallWindowFunction(windowId, DrawStandardFrame);
- FillWindowPixelBuffer(windowId, 0x11);
+ CallWindowFunction(windowId, WindowFunc_DrawStandardFrame);
+ FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
PutWindowTilemap(windowId);
if (copyToVram == TRUE)
CopyWindowToVram(windowId, 3);
}
-void sub_8197434(u8 windowId, bool8 copyToVram)
+void ClearDialogWindowAndFrame(u8 windowId, bool8 copyToVram)
{
- CallWindowFunction(windowId, sub_8197804);
- FillWindowPixelBuffer(windowId, 0x11);
+ CallWindowFunction(windowId, WindowFunc_ClearDialogWindowAndFrame);
+ FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
ClearWindowTilemap(windowId);
if (copyToVram == TRUE)
CopyWindowToVram(windowId, 3);
}
-void sub_819746C(u8 windowId, bool8 copyToVram)
+void ClearStdWindowAndFrame(u8 windowId, bool8 copyToVram)
{
- CallWindowFunction(windowId, sub_81977BC);
- FillWindowPixelBuffer(windowId, 0x11);
+ CallWindowFunction(windowId, WindowFunc_ClearStdWindowAndFrame);
+ FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
ClearWindowTilemap(windowId);
if (copyToVram == TRUE)
CopyWindowToVram(windowId, 3);
}
-void DrawStandardFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
+void WindowFunc_DrawStandardFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
{
int i;
@@ -313,7 +311,7 @@ void DrawStandardFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height
STD_WINDOW_PALETTE_NUM);
}
-void DrawDialogueFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
+void WindowFunc_DrawDialogueFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
{
FillBgTilemapBufferRect(bg,
DLG_WINDOW_BASE_TILE_NUM + 1,
@@ -408,25 +406,25 @@ void DrawDialogueFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height
DLG_WINDOW_PALETTE_NUM);
}
-void sub_81977BC(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
+void WindowFunc_ClearStdWindowAndFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
{
FillBgTilemapBufferRect(bg, 0, tilemapLeft - 1, tilemapTop - 1, width + 2, height + 2, STD_WINDOW_PALETTE_NUM);
}
-void sub_8197804(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
+void WindowFunc_ClearDialogWindowAndFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
{
FillBgTilemapBufferRect(bg, 0, tilemapLeft - 3, tilemapTop - 1, width + 6, height + 2, STD_WINDOW_PALETTE_NUM);
}
void SetStandardWindowBorderStyle(u8 windowId, bool8 copyToVram)
{
- SetWindowBorderStyle(windowId, copyToVram, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM);
+ DrawStdFrameWithCustomTileAndPalette(windowId, copyToVram, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM);
}
void sub_819786C(u8 windowId, bool8 copyToVram)
{
LoadMessageBoxGfx(windowId, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM * 0x10);
- sub_8197B1C(windowId, copyToVram, DLG_WINDOW_BASE_TILE_NUM, 0xF);
+ DrawDialogFrameWithCustomTileAndPalette(windowId, copyToVram, DLG_WINDOW_BASE_TILE_NUM, 0xF);
}
void sub_819789C(void)
@@ -458,12 +456,12 @@ void DisplayItemMessageOnField(u8 taskId, const u8 *string, TaskFunc callback)
CopyWindowToVram(0, 3);
}
-void DisplayYesNoMenu(void)
+void DisplayYesNoMenuDefaultYes(void)
{
CreateYesNoMenu(&sYesNo_WindowTemplates, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM, 0);
}
-void sub_8197948(u8 initialCursorPos)
+void DisplayYesNoMenuWithDefault(u8 initialCursorPos)
{
CreateYesNoMenu(&sYesNo_WindowTemplates, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM, initialCursorPos);
}
@@ -549,29 +547,30 @@ void sub_8197AE8(bool8 copyToVram)
CopyBgTilemapBufferToVram(0);
}
-void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 tileNum, u8 paletteNum)
+void DrawDialogFrameWithCustomTileAndPalette(u8 windowId, bool8 copyToVram, u16 tileNum, u8 paletteNum)
{
sTileNum = tileNum;
sPaletteNum = paletteNum;
- CallWindowFunction(windowId, sub_8197BB4);
- FillWindowPixelBuffer(windowId, 0x11);
+ CallWindowFunction(windowId, WindowFunc_DrawDialogFrameWithCustomTileAndPalette);
+ FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
PutWindowTilemap(windowId);
if (copyToVram == TRUE)
CopyWindowToVram(windowId, 3);
}
-void sub_8197B64(u8 windowId, bool8 copyToVram, u16 tileNum)
+// Never used.
+void DrawDialogFrameWithCustomTile(u8 windowId, bool8 copyToVram, u16 tileNum)
{
sTileNum = tileNum;
sPaletteNum = GetWindowAttribute(windowId, WINDOW_PALETTE_NUM);
- CallWindowFunction(windowId, sub_8197BB4);
- FillWindowPixelBuffer(windowId, 0x11);
+ CallWindowFunction(windowId, WindowFunc_DrawDialogFrameWithCustomTileAndPalette);
+ FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
PutWindowTilemap(windowId);
if (copyToVram == TRUE)
CopyWindowToVram(windowId, 3);
}
-void sub_8197BB4(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
+void WindowFunc_DrawDialogFrameWithCustomTileAndPalette(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
{
FillBgTilemapBufferRect(bg,
sTileNum + 1,
@@ -666,43 +665,45 @@ void sub_8197BB4(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 p
sPaletteNum);
}
-void sub_8197DF8(u8 windowId, bool8 copyToVram)
+void ClearDialogWindowAndFrameToTransparent(u8 windowId, bool8 copyToVram)
{
- CallWindowFunction(windowId, sub_8197E30);
- FillWindowPixelBuffer(windowId, 0);
+ // The palette slot doesn't matter, since the tiles are transparent.
+ CallWindowFunction(windowId, WindowFunc_ClearDialogWindowAndFrameNullPalette);
+ FillWindowPixelBuffer(windowId, PIXEL_FILL(0));
ClearWindowTilemap(windowId);
if (copyToVram == TRUE)
CopyWindowToVram(windowId, 3);
}
-void sub_8197E30(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
+void WindowFunc_ClearDialogWindowAndFrameNullPalette(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
{
FillBgTilemapBufferRect(bg, 0, tilemapLeft - 3, tilemapTop - 1, width + 6, height + 2, 0);
}
-void SetWindowBorderStyle(u8 windowId, bool8 copyToVram, u16 baseTileNum, u8 paletteNum)
+void DrawStdFrameWithCustomTileAndPalette(u8 windowId, bool8 copyToVram, u16 baseTileNum, u8 paletteNum)
{
sTileNum = baseTileNum;
sPaletteNum = paletteNum;
- CallWindowFunction(windowId, DrawWindowBorder);
- FillWindowPixelBuffer(windowId, 0x11);
+ CallWindowFunction(windowId, WindowFunc_DrawStdFrameWithCustomTileAndPalette);
+ FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
PutWindowTilemap(windowId);
if (copyToVram == TRUE)
CopyWindowToVram(windowId, 3);
}
-void sub_8197EC8(u8 windowId, bool8 copyToVram, u16 baseTileNum)
+// Never used.
+void DrawStdFrameWithCustomTile(u8 windowId, bool8 copyToVram, u16 baseTileNum)
{
sTileNum = baseTileNum;
sPaletteNum = GetWindowAttribute(windowId, WINDOW_PALETTE_NUM);
- CallWindowFunction(windowId, DrawWindowBorder);
- FillWindowPixelBuffer(windowId, 0x11);
+ CallWindowFunction(windowId, WindowFunc_DrawStdFrameWithCustomTileAndPalette);
+ FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
PutWindowTilemap(windowId);
if (copyToVram == TRUE)
CopyWindowToVram(windowId, 3);
}
-void DrawWindowBorder(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
+void WindowFunc_DrawStdFrameWithCustomTileAndPalette(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
{
FillBgTilemapBufferRect(bg,
sTileNum + 0,
@@ -762,16 +763,16 @@ void DrawWindowBorder(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height,
sPaletteNum);
}
-void sub_8198070(u8 windowId, bool8 copyToVram)
+void ClearStdWindowAndFrameToTransparent(u8 windowId, bool8 copyToVram)
{
- CallWindowFunction(windowId, sub_81980A8);
- FillWindowPixelBuffer(windowId, 0);
+ CallWindowFunction(windowId, WindowFunc_ClearStdWindowAndFrameToTransparent);
+ FillWindowPixelBuffer(windowId, PIXEL_FILL(0));
ClearWindowTilemap(windowId);
if (copyToVram == TRUE)
CopyWindowToVram(windowId, 3);
}
-void sub_81980A8(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
+void WindowFunc_ClearStdWindowAndFrameToTransparent(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
{
FillBgTilemapBufferRect(bg, 0, tilemapLeft - 1, tilemapTop - 1, width + 2, height + 2, 0);
}
@@ -811,7 +812,7 @@ void sub_8198180(const u8 *string, u8 a2, bool8 copyToVram)
if (sWindowId != 0xFF)
{
PutWindowTilemap(sWindowId);
- FillWindowPixelBuffer(sWindowId, 0xFF);
+ FillWindowPixelBuffer(sWindowId, PIXEL_FILL(15));
width = GetStringWidth(0, string, 0);
AddTextPrinterParameterized3(sWindowId,
0,
@@ -845,7 +846,7 @@ void sub_8198204(const u8 *string, const u8 *string2, u8 a3, u8 a4, bool8 copyTo
color[2] = 2;
}
PutWindowTilemap(sWindowId);
- FillWindowPixelBuffer(sWindowId, 0xFF);
+ FillWindowPixelBuffer(sWindowId, PIXEL_FILL(15));
if (string2 != NULL)
{
width = GetStringWidth(0, string2, 0);
@@ -873,7 +874,7 @@ void sub_81982F0(void)
{
if (sWindowId != 0xFF)
{
- FillWindowPixelBuffer(sWindowId, 0xFF);
+ FillWindowPixelBuffer(sWindowId, PIXEL_FILL(15));
CopyWindowToVram(sWindowId, 3);
}
}
@@ -882,7 +883,7 @@ void sub_8198314(void)
{
if (sWindowId != 0xFF)
{
- FillWindowPixelBuffer(sWindowId, 0);
+ FillWindowPixelBuffer(sWindowId, PIXEL_FILL(0));
ClearWindowTilemap(sWindowId);
CopyWindowToVram(sWindowId, 3);
RemoveWindow(sWindowId);
@@ -931,7 +932,7 @@ void RedrawMenuCursor(u8 oldPos, u8 newPos)
width = GetMenuCursorDimensionByFont(sMenu.fontId, 0);
height = GetMenuCursorDimensionByFont(sMenu.fontId, 1);
- FillWindowPixelRect(sMenu.windowId, 0x11, sMenu.left, sMenu.optionHeight * oldPos + sMenu.top, width, height);
+ FillWindowPixelRect(sMenu.windowId, PIXEL_FILL(1), sMenu.left, sMenu.optionHeight * oldPos + sMenu.top, width, height);
AddTextPrinterParameterized(sMenu.windowId, sMenu.fontId, gText_SelectorArrow3, sMenu.left, sMenu.optionHeight * newPos + sMenu.top, 0, 0);
}
@@ -1175,7 +1176,7 @@ void sub_8198AF8(const struct WindowTemplate *window, u8 fontId, u8 left, u8 top
struct TextPrinterTemplate printer;
sYesNoWindowId = AddWindow(window);
- SetWindowBorderStyle(sYesNoWindowId, TRUE, baseTileNum, paletteNum);
+ DrawStdFrameWithCustomTileAndPalette(sYesNoWindowId, TRUE, baseTileNum, paletteNum);
printer.currentChar = gText_YesNo;
printer.windowId = sYesNoWindowId;
@@ -1211,7 +1212,7 @@ s8 Menu_ProcessInputNoWrapClearOnChoose(void)
void sub_8198C78(void)
{
- sub_8198070(sYesNoWindowId, TRUE);
+ ClearStdWindowAndFrameToTransparent(sYesNoWindowId, TRUE);
RemoveWindow(sYesNoWindowId);
}
@@ -1310,7 +1311,7 @@ void sub_8199060(u8 oldCursorPos, u8 newCursorPos)
u8 xPos = (oldCursorPos % sMenu.horizontalCount) * sMenu.optionWidth + sMenu.left;
u8 yPos = (oldCursorPos / sMenu.horizontalCount) * sMenu.optionHeight + sMenu.top;
FillWindowPixelRect(sMenu.windowId,
- 0x11,
+ PIXEL_FILL(1),
xPos,
yPos,
cursorWidth,
@@ -1640,7 +1641,7 @@ void CreateYesNoMenu(const struct WindowTemplate *window, u16 baseTileNum, u8 pa
struct TextPrinterTemplate printer;
sYesNoWindowId = AddWindow(window);
- SetWindowBorderStyle(sYesNoWindowId, TRUE, baseTileNum, paletteNum);
+ DrawStdFrameWithCustomTileAndPalette(sYesNoWindowId, TRUE, baseTileNum, paletteNum);
printer.currentChar = gText_YesNo;
printer.windowId = sYesNoWindowId;