mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-26 03:34:15 +01:00
commit
f8c708a82a
472
src/menu.c
472
src/menu.c
@ -1,24 +1,24 @@
|
|||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "bg.h"
|
|
||||||
#include "window.h"
|
|
||||||
#include "palette.h"
|
|
||||||
#include "menu.h"
|
|
||||||
#include "constants/songs.h"
|
|
||||||
#include "main.h"
|
|
||||||
#include "sound.h"
|
|
||||||
#include "menu_helpers.h"
|
|
||||||
#include "alloc.h"
|
#include "alloc.h"
|
||||||
#include "task.h"
|
#include "bg.h"
|
||||||
#include "dma3.h"
|
#include "dma3.h"
|
||||||
#include "string_util.h"
|
|
||||||
#include "pokemon_icon.h"
|
|
||||||
#include "constants/flags.h"
|
|
||||||
#include "event_data.h"
|
#include "event_data.h"
|
||||||
#include "pokedex.h"
|
|
||||||
#include "region_map.h"
|
|
||||||
#include "text_window.h"
|
|
||||||
#include "strings.h"
|
|
||||||
#include "graphics.h"
|
#include "graphics.h"
|
||||||
|
#include "main.h"
|
||||||
|
#include "menu.h"
|
||||||
|
#include "menu_helpers.h"
|
||||||
|
#include "palette.h"
|
||||||
|
#include "pokedex.h"
|
||||||
|
#include "pokemon_icon.h"
|
||||||
|
#include "region_map.h"
|
||||||
|
#include "sound.h"
|
||||||
|
#include "string_util.h"
|
||||||
|
#include "strings.h"
|
||||||
|
#include "task.h"
|
||||||
|
#include "text_window.h"
|
||||||
|
#include "window.h"
|
||||||
|
#include "constants/flags.h"
|
||||||
|
#include "constants/songs.h"
|
||||||
|
|
||||||
#define DLG_WINDOW_PALETTE_NUM 15
|
#define DLG_WINDOW_PALETTE_NUM 15
|
||||||
#define DLG_WINDOW_BASE_TILE_NUM 0x200
|
#define DLG_WINDOW_BASE_TILE_NUM 0x200
|
||||||
@ -50,11 +50,11 @@ struct Menu
|
|||||||
|
|
||||||
static EWRAM_DATA u8 sStartMenuWindowId = 0;
|
static EWRAM_DATA u8 sStartMenuWindowId = 0;
|
||||||
static EWRAM_DATA u8 sMapNamePopupWindowId = 0;
|
static EWRAM_DATA u8 sMapNamePopupWindowId = 0;
|
||||||
static EWRAM_DATA struct Menu gUnknown_0203CD90 = {0};
|
static EWRAM_DATA struct Menu sMenu = {0};
|
||||||
static EWRAM_DATA u16 gUnknown_0203CD9C = 0;
|
static EWRAM_DATA u16 sTileNum = 0;
|
||||||
static EWRAM_DATA u8 gUnknown_0203CD9E = 0;
|
static EWRAM_DATA u8 sPaletteNum = 0;
|
||||||
static EWRAM_DATA u8 gUnknown_0203CD9F = 0;
|
static EWRAM_DATA u8 sYesNoWindowId = 0;
|
||||||
static EWRAM_DATA u8 gUnknown_0203CDA0 = 0;
|
static EWRAM_DATA u8 sWindowId = 0;
|
||||||
static EWRAM_DATA u16 sFiller = 0; // needed to align
|
static EWRAM_DATA u16 sFiller = 0; // needed to align
|
||||||
static EWRAM_DATA bool8 gUnknown_0203CDA4[4] = {FALSE};
|
static EWRAM_DATA bool8 gUnknown_0203CDA4[4] = {FALSE};
|
||||||
static EWRAM_DATA u16 gUnknown_0203CDA8 = 0;
|
static EWRAM_DATA u16 gUnknown_0203CDA8 = 0;
|
||||||
@ -549,10 +549,10 @@ void sub_8197AE8(bool8 copyToVram)
|
|||||||
CopyBgTilemapBufferToVram(0);
|
CopyBgTilemapBufferToVram(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a3, u8 a4)
|
void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 tileNum, u8 paletteNum)
|
||||||
{
|
{
|
||||||
gUnknown_0203CD9C = a3;
|
sTileNum = tileNum;
|
||||||
gUnknown_0203CD9E = a4;
|
sPaletteNum = paletteNum;
|
||||||
CallWindowFunction(windowId, sub_8197BB4);
|
CallWindowFunction(windowId, sub_8197BB4);
|
||||||
FillWindowPixelBuffer(windowId, 0x11);
|
FillWindowPixelBuffer(windowId, 0x11);
|
||||||
PutWindowTilemap(windowId);
|
PutWindowTilemap(windowId);
|
||||||
@ -560,10 +560,10 @@ void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a3, u8 a4)
|
|||||||
CopyWindowToVram(windowId, 3);
|
CopyWindowToVram(windowId, 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_8197B64(u8 windowId, bool8 copyToVram, u16 a3)
|
void sub_8197B64(u8 windowId, bool8 copyToVram, u16 tileNum)
|
||||||
{
|
{
|
||||||
gUnknown_0203CD9C = a3;
|
sTileNum = tileNum;
|
||||||
gUnknown_0203CD9E = GetWindowAttribute(windowId, WINDOW_PALETTE_NUM);
|
sPaletteNum = GetWindowAttribute(windowId, WINDOW_PALETTE_NUM);
|
||||||
CallWindowFunction(windowId, sub_8197BB4);
|
CallWindowFunction(windowId, sub_8197BB4);
|
||||||
FillWindowPixelBuffer(windowId, 0x11);
|
FillWindowPixelBuffer(windowId, 0x11);
|
||||||
PutWindowTilemap(windowId);
|
PutWindowTilemap(windowId);
|
||||||
@ -574,96 +574,96 @@ void sub_8197B64(u8 windowId, bool8 copyToVram, u16 a3)
|
|||||||
void sub_8197BB4(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
|
void sub_8197BB4(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
|
||||||
{
|
{
|
||||||
FillBgTilemapBufferRect(bg,
|
FillBgTilemapBufferRect(bg,
|
||||||
gUnknown_0203CD9C + 1,
|
sTileNum + 1,
|
||||||
tilemapLeft - 2,
|
tilemapLeft - 2,
|
||||||
tilemapTop - 1,
|
tilemapTop - 1,
|
||||||
1,
|
1,
|
||||||
1,
|
1,
|
||||||
gUnknown_0203CD9E);
|
sPaletteNum);
|
||||||
FillBgTilemapBufferRect(bg,
|
FillBgTilemapBufferRect(bg,
|
||||||
gUnknown_0203CD9C + 3,
|
sTileNum + 3,
|
||||||
tilemapLeft - 1,
|
tilemapLeft - 1,
|
||||||
tilemapTop - 1,
|
tilemapTop - 1,
|
||||||
1,
|
1,
|
||||||
1,
|
1,
|
||||||
gUnknown_0203CD9E);
|
sPaletteNum);
|
||||||
FillBgTilemapBufferRect(bg,
|
FillBgTilemapBufferRect(bg,
|
||||||
gUnknown_0203CD9C + 4,
|
sTileNum + 4,
|
||||||
tilemapLeft,
|
tilemapLeft,
|
||||||
tilemapTop - 1,
|
tilemapTop - 1,
|
||||||
width - 1,
|
width - 1,
|
||||||
1,
|
1,
|
||||||
gUnknown_0203CD9E);
|
sPaletteNum);
|
||||||
FillBgTilemapBufferRect(bg,
|
FillBgTilemapBufferRect(bg,
|
||||||
gUnknown_0203CD9C + 5,
|
sTileNum + 5,
|
||||||
tilemapLeft + width - 1,
|
tilemapLeft + width - 1,
|
||||||
tilemapTop - 1,
|
tilemapTop - 1,
|
||||||
1,
|
1,
|
||||||
1,
|
1,
|
||||||
gUnknown_0203CD9E);
|
sPaletteNum);
|
||||||
FillBgTilemapBufferRect(bg,
|
FillBgTilemapBufferRect(bg,
|
||||||
gUnknown_0203CD9C + 6,
|
sTileNum + 6,
|
||||||
tilemapLeft + width,
|
tilemapLeft + width,
|
||||||
tilemapTop - 1,
|
tilemapTop - 1,
|
||||||
1,
|
1,
|
||||||
1,
|
1,
|
||||||
gUnknown_0203CD9E);
|
sPaletteNum);
|
||||||
FillBgTilemapBufferRect(bg,
|
FillBgTilemapBufferRect(bg,
|
||||||
gUnknown_0203CD9C + 7,
|
sTileNum + 7,
|
||||||
tilemapLeft - 2,
|
tilemapLeft - 2,
|
||||||
tilemapTop,
|
tilemapTop,
|
||||||
1,
|
1,
|
||||||
5,
|
5,
|
||||||
gUnknown_0203CD9E);
|
sPaletteNum);
|
||||||
FillBgTilemapBufferRect(bg,
|
FillBgTilemapBufferRect(bg,
|
||||||
gUnknown_0203CD9C + 9,
|
sTileNum + 9,
|
||||||
tilemapLeft - 1,
|
tilemapLeft - 1,
|
||||||
tilemapTop,
|
tilemapTop,
|
||||||
width + 1,
|
width + 1,
|
||||||
5,
|
5,
|
||||||
gUnknown_0203CD9E);
|
sPaletteNum);
|
||||||
FillBgTilemapBufferRect(bg,
|
FillBgTilemapBufferRect(bg,
|
||||||
gUnknown_0203CD9C + 10,
|
sTileNum + 10,
|
||||||
tilemapLeft + width,
|
tilemapLeft + width,
|
||||||
tilemapTop,
|
tilemapTop,
|
||||||
1,
|
1,
|
||||||
5,
|
5,
|
||||||
gUnknown_0203CD9E);
|
sPaletteNum);
|
||||||
FillBgTilemapBufferRect(bg,
|
FillBgTilemapBufferRect(bg,
|
||||||
BG_TILE_V_FLIP(gUnknown_0203CD9C + 1),
|
BG_TILE_V_FLIP(sTileNum + 1),
|
||||||
tilemapLeft - 2,
|
tilemapLeft - 2,
|
||||||
tilemapTop + height,
|
tilemapTop + height,
|
||||||
1,
|
1,
|
||||||
1,
|
1,
|
||||||
gUnknown_0203CD9E);
|
sPaletteNum);
|
||||||
FillBgTilemapBufferRect(bg,
|
FillBgTilemapBufferRect(bg,
|
||||||
BG_TILE_V_FLIP(gUnknown_0203CD9C + 3),
|
BG_TILE_V_FLIP(sTileNum + 3),
|
||||||
tilemapLeft - 1,
|
tilemapLeft - 1,
|
||||||
tilemapTop + height,
|
tilemapTop + height,
|
||||||
1,
|
1,
|
||||||
1,
|
1,
|
||||||
gUnknown_0203CD9E);
|
sPaletteNum);
|
||||||
FillBgTilemapBufferRect(bg,
|
FillBgTilemapBufferRect(bg,
|
||||||
BG_TILE_V_FLIP(gUnknown_0203CD9C + 4),
|
BG_TILE_V_FLIP(sTileNum + 4),
|
||||||
tilemapLeft,
|
tilemapLeft,
|
||||||
tilemapTop + height,
|
tilemapTop + height,
|
||||||
width - 1,
|
width - 1,
|
||||||
1,
|
1,
|
||||||
gUnknown_0203CD9E);
|
sPaletteNum);
|
||||||
FillBgTilemapBufferRect(bg,
|
FillBgTilemapBufferRect(bg,
|
||||||
BG_TILE_V_FLIP(gUnknown_0203CD9C + 5),
|
BG_TILE_V_FLIP(sTileNum + 5),
|
||||||
tilemapLeft + width - 1,
|
tilemapLeft + width - 1,
|
||||||
tilemapTop + height,
|
tilemapTop + height,
|
||||||
1,
|
1,
|
||||||
1,
|
1,
|
||||||
gUnknown_0203CD9E);
|
sPaletteNum);
|
||||||
FillBgTilemapBufferRect(bg,
|
FillBgTilemapBufferRect(bg,
|
||||||
BG_TILE_V_FLIP(gUnknown_0203CD9C + 6),
|
BG_TILE_V_FLIP(sTileNum + 6),
|
||||||
tilemapLeft + width,
|
tilemapLeft + width,
|
||||||
tilemapTop + height,
|
tilemapTop + height,
|
||||||
1,
|
1,
|
||||||
1,
|
1,
|
||||||
gUnknown_0203CD9E);
|
sPaletteNum);
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_8197DF8(u8 windowId, bool8 copyToVram)
|
void sub_8197DF8(u8 windowId, bool8 copyToVram)
|
||||||
@ -682,8 +682,8 @@ void sub_8197E30(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 p
|
|||||||
|
|
||||||
void SetWindowBorderStyle(u8 windowId, bool8 copyToVram, u16 baseTileNum, u8 paletteNum)
|
void SetWindowBorderStyle(u8 windowId, bool8 copyToVram, u16 baseTileNum, u8 paletteNum)
|
||||||
{
|
{
|
||||||
gUnknown_0203CD9C = baseTileNum;
|
sTileNum = baseTileNum;
|
||||||
gUnknown_0203CD9E = paletteNum;
|
sPaletteNum = paletteNum;
|
||||||
CallWindowFunction(windowId, DrawWindowBorder);
|
CallWindowFunction(windowId, DrawWindowBorder);
|
||||||
FillWindowPixelBuffer(windowId, 0x11);
|
FillWindowPixelBuffer(windowId, 0x11);
|
||||||
PutWindowTilemap(windowId);
|
PutWindowTilemap(windowId);
|
||||||
@ -693,8 +693,8 @@ void SetWindowBorderStyle(u8 windowId, bool8 copyToVram, u16 baseTileNum, u8 pal
|
|||||||
|
|
||||||
void sub_8197EC8(u8 windowId, bool8 copyToVram, u16 baseTileNum)
|
void sub_8197EC8(u8 windowId, bool8 copyToVram, u16 baseTileNum)
|
||||||
{
|
{
|
||||||
gUnknown_0203CD9C = baseTileNum;
|
sTileNum = baseTileNum;
|
||||||
gUnknown_0203CD9E = GetWindowAttribute(windowId, WINDOW_PALETTE_NUM);
|
sPaletteNum = GetWindowAttribute(windowId, WINDOW_PALETTE_NUM);
|
||||||
CallWindowFunction(windowId, DrawWindowBorder);
|
CallWindowFunction(windowId, DrawWindowBorder);
|
||||||
FillWindowPixelBuffer(windowId, 0x11);
|
FillWindowPixelBuffer(windowId, 0x11);
|
||||||
PutWindowTilemap(windowId);
|
PutWindowTilemap(windowId);
|
||||||
@ -705,61 +705,61 @@ void sub_8197EC8(u8 windowId, bool8 copyToVram, u16 baseTileNum)
|
|||||||
void DrawWindowBorder(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
|
void DrawWindowBorder(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
|
||||||
{
|
{
|
||||||
FillBgTilemapBufferRect(bg,
|
FillBgTilemapBufferRect(bg,
|
||||||
gUnknown_0203CD9C + 0,
|
sTileNum + 0,
|
||||||
tilemapLeft - 1,
|
tilemapLeft - 1,
|
||||||
tilemapTop - 1,
|
tilemapTop - 1,
|
||||||
1,
|
1,
|
||||||
1,
|
1,
|
||||||
gUnknown_0203CD9E);
|
sPaletteNum);
|
||||||
FillBgTilemapBufferRect(bg,
|
FillBgTilemapBufferRect(bg,
|
||||||
gUnknown_0203CD9C + 1,
|
sTileNum + 1,
|
||||||
tilemapLeft,
|
tilemapLeft,
|
||||||
tilemapTop - 1,
|
tilemapTop - 1,
|
||||||
width,
|
width,
|
||||||
1,
|
1,
|
||||||
gUnknown_0203CD9E);
|
sPaletteNum);
|
||||||
FillBgTilemapBufferRect(bg,
|
FillBgTilemapBufferRect(bg,
|
||||||
gUnknown_0203CD9C + 2,
|
sTileNum + 2,
|
||||||
tilemapLeft + width,
|
tilemapLeft + width,
|
||||||
tilemapTop - 1,
|
tilemapTop - 1,
|
||||||
1,
|
1,
|
||||||
1,
|
1,
|
||||||
gUnknown_0203CD9E);
|
sPaletteNum);
|
||||||
FillBgTilemapBufferRect(bg,
|
FillBgTilemapBufferRect(bg,
|
||||||
gUnknown_0203CD9C + 3,
|
sTileNum + 3,
|
||||||
tilemapLeft - 1,
|
tilemapLeft - 1,
|
||||||
tilemapTop,
|
tilemapTop,
|
||||||
1,
|
1,
|
||||||
height,
|
height,
|
||||||
gUnknown_0203CD9E);
|
sPaletteNum);
|
||||||
FillBgTilemapBufferRect(bg,
|
FillBgTilemapBufferRect(bg,
|
||||||
gUnknown_0203CD9C + 5,
|
sTileNum + 5,
|
||||||
tilemapLeft + width,
|
tilemapLeft + width,
|
||||||
tilemapTop,
|
tilemapTop,
|
||||||
1,
|
1,
|
||||||
height,
|
height,
|
||||||
gUnknown_0203CD9E);
|
sPaletteNum);
|
||||||
FillBgTilemapBufferRect(bg,
|
FillBgTilemapBufferRect(bg,
|
||||||
gUnknown_0203CD9C + 6,
|
sTileNum + 6,
|
||||||
tilemapLeft - 1,
|
tilemapLeft - 1,
|
||||||
tilemapTop + height,
|
tilemapTop + height,
|
||||||
1,
|
1,
|
||||||
1,
|
1,
|
||||||
gUnknown_0203CD9E);
|
sPaletteNum);
|
||||||
FillBgTilemapBufferRect(bg,
|
FillBgTilemapBufferRect(bg,
|
||||||
gUnknown_0203CD9C + 7,
|
sTileNum + 7,
|
||||||
tilemapLeft,
|
tilemapLeft,
|
||||||
tilemapTop + height,
|
tilemapTop + height,
|
||||||
width,
|
width,
|
||||||
1,
|
1,
|
||||||
gUnknown_0203CD9E);
|
sPaletteNum);
|
||||||
FillBgTilemapBufferRect(bg,
|
FillBgTilemapBufferRect(bg,
|
||||||
gUnknown_0203CD9C + 8,
|
sTileNum + 8,
|
||||||
tilemapLeft + width,
|
tilemapLeft + width,
|
||||||
tilemapTop + height,
|
tilemapTop + height,
|
||||||
1,
|
1,
|
||||||
1,
|
1,
|
||||||
gUnknown_0203CD9E);
|
sPaletteNum);
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_8198070(u8 windowId, bool8 copyToVram)
|
void sub_8198070(u8 windowId, bool8 copyToVram)
|
||||||
@ -793,7 +793,7 @@ u8 sub_81980F0(u8 bg, u8 xPos, u8 yPos, u8 palette, u16 baseTile)
|
|||||||
window.paletteNum = palette;
|
window.paletteNum = palette;
|
||||||
window.baseBlock = baseTile;
|
window.baseBlock = baseTile;
|
||||||
|
|
||||||
gUnknown_0203CDA0 = AddWindow(&window);
|
sWindowId = AddWindow(&window);
|
||||||
|
|
||||||
if (palette > 15)
|
if (palette > 15)
|
||||||
palette = 15 * 16;
|
palette = 15 * 16;
|
||||||
@ -801,27 +801,27 @@ u8 sub_81980F0(u8 bg, u8 xPos, u8 yPos, u8 palette, u16 baseTile)
|
|||||||
palette *= 16;
|
palette *= 16;
|
||||||
|
|
||||||
LoadPalette(gUnknown_0860F0B0, palette, sizeof(gUnknown_0860F0B0));
|
LoadPalette(gUnknown_0860F0B0, palette, sizeof(gUnknown_0860F0B0));
|
||||||
return gUnknown_0203CDA0;
|
return sWindowId;
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_8198180(const u8 *string, u8 a2, bool8 copyToVram)
|
void sub_8198180(const u8 *string, u8 a2, bool8 copyToVram)
|
||||||
{
|
{
|
||||||
u16 width = 0;
|
u16 width = 0;
|
||||||
|
|
||||||
if (gUnknown_0203CDA0 != 0xFF)
|
if (sWindowId != 0xFF)
|
||||||
{
|
{
|
||||||
PutWindowTilemap(gUnknown_0203CDA0);
|
PutWindowTilemap(sWindowId);
|
||||||
FillWindowPixelBuffer(gUnknown_0203CDA0, 0xFF);
|
FillWindowPixelBuffer(sWindowId, 0xFF);
|
||||||
width = GetStringWidth(0, string, 0);
|
width = GetStringWidth(0, string, 0);
|
||||||
AddTextPrinterParameterized3(gUnknown_0203CDA0,
|
AddTextPrinterParameterized3(sWindowId,
|
||||||
0,
|
0,
|
||||||
0xEC - (GetWindowAttribute(gUnknown_0203CDA0, WINDOW_TILEMAP_LEFT) * 8) - a2 - width,
|
0xEC - (GetWindowAttribute(sWindowId, WINDOW_TILEMAP_LEFT) * 8) - a2 - width,
|
||||||
1,
|
1,
|
||||||
gUnknown_0860F0D0,
|
gUnknown_0860F0D0,
|
||||||
0,
|
0,
|
||||||
string);
|
string);
|
||||||
if (copyToVram)
|
if (copyToVram)
|
||||||
CopyWindowToVram(gUnknown_0203CDA0, 3);
|
CopyWindowToVram(sWindowId, 3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -830,7 +830,7 @@ void sub_8198204(const u8 *string, const u8 *string2, u8 a3, u8 a4, bool8 copyTo
|
|||||||
u8 color[3];
|
u8 color[3];
|
||||||
u16 width = 0;
|
u16 width = 0;
|
||||||
|
|
||||||
if (gUnknown_0203CDA0 != 0xFF)
|
if (sWindowId != 0xFF)
|
||||||
{
|
{
|
||||||
if (a3 != 0)
|
if (a3 != 0)
|
||||||
{
|
{
|
||||||
@ -844,49 +844,49 @@ void sub_8198204(const u8 *string, const u8 *string2, u8 a3, u8 a4, bool8 copyTo
|
|||||||
color[1] = 1;
|
color[1] = 1;
|
||||||
color[2] = 2;
|
color[2] = 2;
|
||||||
}
|
}
|
||||||
PutWindowTilemap(gUnknown_0203CDA0);
|
PutWindowTilemap(sWindowId);
|
||||||
FillWindowPixelBuffer(gUnknown_0203CDA0, 0xFF);
|
FillWindowPixelBuffer(sWindowId, 0xFF);
|
||||||
if (string2 != NULL)
|
if (string2 != NULL)
|
||||||
{
|
{
|
||||||
width = GetStringWidth(0, string2, 0);
|
width = GetStringWidth(0, string2, 0);
|
||||||
AddTextPrinterParameterized3(gUnknown_0203CDA0,
|
AddTextPrinterParameterized3(sWindowId,
|
||||||
0,
|
0,
|
||||||
0xEC - (GetWindowAttribute(gUnknown_0203CDA0, WINDOW_TILEMAP_LEFT) * 8) - a4 - width,
|
0xEC - (GetWindowAttribute(sWindowId, WINDOW_TILEMAP_LEFT) * 8) - a4 - width,
|
||||||
1,
|
1,
|
||||||
color,
|
color,
|
||||||
0,
|
0,
|
||||||
string2);
|
string2);
|
||||||
}
|
}
|
||||||
AddTextPrinterParameterized4(gUnknown_0203CDA0, 1, 4, 1, 0, 0, color, 0, string);
|
AddTextPrinterParameterized4(sWindowId, 1, 4, 1, 0, 0, color, 0, string);
|
||||||
if (copyToVram)
|
if (copyToVram)
|
||||||
CopyWindowToVram(gUnknown_0203CDA0, 3);
|
CopyWindowToVram(sWindowId, 3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_81982D8(void)
|
void sub_81982D8(void)
|
||||||
{
|
{
|
||||||
if (gUnknown_0203CDA0 != 0xFF)
|
if (sWindowId != 0xFF)
|
||||||
CopyWindowToVram(gUnknown_0203CDA0, 3);
|
CopyWindowToVram(sWindowId, 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_81982F0(void)
|
void sub_81982F0(void)
|
||||||
{
|
{
|
||||||
if (gUnknown_0203CDA0 != 0xFF)
|
if (sWindowId != 0xFF)
|
||||||
{
|
{
|
||||||
FillWindowPixelBuffer(gUnknown_0203CDA0, 0xFF);
|
FillWindowPixelBuffer(sWindowId, 0xFF);
|
||||||
CopyWindowToVram(gUnknown_0203CDA0, 3);
|
CopyWindowToVram(sWindowId, 3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_8198314(void)
|
void sub_8198314(void)
|
||||||
{
|
{
|
||||||
if (gUnknown_0203CDA0 != 0xFF)
|
if (sWindowId != 0xFF)
|
||||||
{
|
{
|
||||||
FillWindowPixelBuffer(gUnknown_0203CDA0, 0);
|
FillWindowPixelBuffer(sWindowId, 0);
|
||||||
ClearWindowTilemap(gUnknown_0203CDA0);
|
ClearWindowTilemap(sWindowId);
|
||||||
CopyWindowToVram(gUnknown_0203CDA0, 3);
|
CopyWindowToVram(sWindowId, 3);
|
||||||
RemoveWindow(gUnknown_0203CDA0);
|
RemoveWindow(sWindowId);
|
||||||
gUnknown_0203CDA0 = 0xFF;
|
sWindowId = 0xFF;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -894,24 +894,24 @@ u8 sub_8198348(u8 windowId, u8 fontId, u8 left, u8 top, u8 cursorHeight, u8 numC
|
|||||||
{
|
{
|
||||||
s32 pos;
|
s32 pos;
|
||||||
|
|
||||||
gUnknown_0203CD90.left = left;
|
sMenu.left = left;
|
||||||
gUnknown_0203CD90.top = top;
|
sMenu.top = top;
|
||||||
gUnknown_0203CD90.minCursorPos = 0;
|
sMenu.minCursorPos = 0;
|
||||||
gUnknown_0203CD90.maxCursorPos = numChoices - 1;
|
sMenu.maxCursorPos = numChoices - 1;
|
||||||
gUnknown_0203CD90.windowId = windowId;
|
sMenu.windowId = windowId;
|
||||||
gUnknown_0203CD90.fontId = fontId;
|
sMenu.fontId = fontId;
|
||||||
gUnknown_0203CD90.optionHeight = cursorHeight;
|
sMenu.optionHeight = cursorHeight;
|
||||||
gUnknown_0203CD90.APressMuted = a7;
|
sMenu.APressMuted = a7;
|
||||||
|
|
||||||
pos = initialCursorPos;
|
pos = initialCursorPos;
|
||||||
|
|
||||||
if (pos < 0 || pos > gUnknown_0203CD90.maxCursorPos)
|
if (pos < 0 || pos > sMenu.maxCursorPos)
|
||||||
gUnknown_0203CD90.cursorPos = 0;
|
sMenu.cursorPos = 0;
|
||||||
else
|
else
|
||||||
gUnknown_0203CD90.cursorPos = pos;
|
sMenu.cursorPos = pos;
|
||||||
|
|
||||||
Menu_MoveCursor(0);
|
Menu_MoveCursor(0);
|
||||||
return gUnknown_0203CD90.cursorPos;
|
return sMenu.cursorPos;
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 sub_81983AC(u8 windowId, u8 fontId, u8 left, u8 top, u8 cursorHeight, u8 numChoices, u8 initialCursorPos)
|
u8 sub_81983AC(u8 windowId, u8 fontId, u8 left, u8 top, u8 cursorHeight, u8 numChoices, u8 initialCursorPos)
|
||||||
@ -929,56 +929,56 @@ void RedrawMenuCursor(u8 oldPos, u8 newPos)
|
|||||||
{
|
{
|
||||||
u8 width, height;
|
u8 width, height;
|
||||||
|
|
||||||
width = GetMenuCursorDimensionByFont(gUnknown_0203CD90.fontId, 0);
|
width = GetMenuCursorDimensionByFont(sMenu.fontId, 0);
|
||||||
height = GetMenuCursorDimensionByFont(gUnknown_0203CD90.fontId, 1);
|
height = GetMenuCursorDimensionByFont(sMenu.fontId, 1);
|
||||||
FillWindowPixelRect(gUnknown_0203CD90.windowId, 0x11, gUnknown_0203CD90.left, gUnknown_0203CD90.optionHeight * oldPos + gUnknown_0203CD90.top, width, height);
|
FillWindowPixelRect(sMenu.windowId, 0x11, sMenu.left, sMenu.optionHeight * oldPos + sMenu.top, width, height);
|
||||||
AddTextPrinterParameterized(gUnknown_0203CD90.windowId, gUnknown_0203CD90.fontId, gText_SelectorArrow3, gUnknown_0203CD90.left, gUnknown_0203CD90.optionHeight * newPos + gUnknown_0203CD90.top, 0, 0);
|
AddTextPrinterParameterized(sMenu.windowId, sMenu.fontId, gText_SelectorArrow3, sMenu.left, sMenu.optionHeight * newPos + sMenu.top, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 Menu_MoveCursor(s8 cursorDelta)
|
u8 Menu_MoveCursor(s8 cursorDelta)
|
||||||
{
|
{
|
||||||
u8 oldPos = gUnknown_0203CD90.cursorPos;
|
u8 oldPos = sMenu.cursorPos;
|
||||||
int newPos = gUnknown_0203CD90.cursorPos + cursorDelta;
|
int newPos = sMenu.cursorPos + cursorDelta;
|
||||||
|
|
||||||
if (newPos < gUnknown_0203CD90.minCursorPos)
|
if (newPos < sMenu.minCursorPos)
|
||||||
gUnknown_0203CD90.cursorPos = gUnknown_0203CD90.maxCursorPos;
|
sMenu.cursorPos = sMenu.maxCursorPos;
|
||||||
else if (newPos > gUnknown_0203CD90.maxCursorPos)
|
else if (newPos > sMenu.maxCursorPos)
|
||||||
gUnknown_0203CD90.cursorPos = gUnknown_0203CD90.minCursorPos;
|
sMenu.cursorPos = sMenu.minCursorPos;
|
||||||
else
|
else
|
||||||
gUnknown_0203CD90.cursorPos += cursorDelta;
|
sMenu.cursorPos += cursorDelta;
|
||||||
|
|
||||||
RedrawMenuCursor(oldPos, gUnknown_0203CD90.cursorPos);
|
RedrawMenuCursor(oldPos, sMenu.cursorPos);
|
||||||
return gUnknown_0203CD90.cursorPos;
|
return sMenu.cursorPos;
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 Menu_MoveCursorNoWrapAround(s8 cursorDelta)
|
u8 Menu_MoveCursorNoWrapAround(s8 cursorDelta)
|
||||||
{
|
{
|
||||||
u8 oldPos = gUnknown_0203CD90.cursorPos;
|
u8 oldPos = sMenu.cursorPos;
|
||||||
int newPos = gUnknown_0203CD90.cursorPos + cursorDelta;
|
int newPos = sMenu.cursorPos + cursorDelta;
|
||||||
|
|
||||||
if (newPos < gUnknown_0203CD90.minCursorPos)
|
if (newPos < sMenu.minCursorPos)
|
||||||
gUnknown_0203CD90.cursorPos = gUnknown_0203CD90.minCursorPos;
|
sMenu.cursorPos = sMenu.minCursorPos;
|
||||||
else if (newPos > gUnknown_0203CD90.maxCursorPos)
|
else if (newPos > sMenu.maxCursorPos)
|
||||||
gUnknown_0203CD90.cursorPos = gUnknown_0203CD90.maxCursorPos;
|
sMenu.cursorPos = sMenu.maxCursorPos;
|
||||||
else
|
else
|
||||||
gUnknown_0203CD90.cursorPos += cursorDelta;
|
sMenu.cursorPos += cursorDelta;
|
||||||
|
|
||||||
RedrawMenuCursor(oldPos, gUnknown_0203CD90.cursorPos);
|
RedrawMenuCursor(oldPos, sMenu.cursorPos);
|
||||||
return gUnknown_0203CD90.cursorPos;
|
return sMenu.cursorPos;
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 Menu_GetCursorPos(void)
|
u8 Menu_GetCursorPos(void)
|
||||||
{
|
{
|
||||||
return gUnknown_0203CD90.cursorPos;
|
return sMenu.cursorPos;
|
||||||
}
|
}
|
||||||
|
|
||||||
s8 Menu_ProcessInput(void)
|
s8 Menu_ProcessInput(void)
|
||||||
{
|
{
|
||||||
if (gMain.newKeys & A_BUTTON)
|
if (gMain.newKeys & A_BUTTON)
|
||||||
{
|
{
|
||||||
if (!gUnknown_0203CD90.APressMuted)
|
if (!sMenu.APressMuted)
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
return gUnknown_0203CD90.cursorPos;
|
return sMenu.cursorPos;
|
||||||
}
|
}
|
||||||
else if (gMain.newKeys & B_BUTTON)
|
else if (gMain.newKeys & B_BUTTON)
|
||||||
{
|
{
|
||||||
@ -1002,13 +1002,13 @@ s8 Menu_ProcessInput(void)
|
|||||||
|
|
||||||
s8 Menu_ProcessInputNoWrap(void)
|
s8 Menu_ProcessInputNoWrap(void)
|
||||||
{
|
{
|
||||||
u8 oldPos = gUnknown_0203CD90.cursorPos;
|
u8 oldPos = sMenu.cursorPos;
|
||||||
|
|
||||||
if (gMain.newKeys & A_BUTTON)
|
if (gMain.newKeys & A_BUTTON)
|
||||||
{
|
{
|
||||||
if (!gUnknown_0203CD90.APressMuted)
|
if (!sMenu.APressMuted)
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
return gUnknown_0203CD90.cursorPos;
|
return sMenu.cursorPos;
|
||||||
}
|
}
|
||||||
else if (gMain.newKeys & B_BUTTON)
|
else if (gMain.newKeys & B_BUTTON)
|
||||||
{
|
{
|
||||||
@ -1034,9 +1034,9 @@ s8 ProcessMenuInput_other(void)
|
|||||||
{
|
{
|
||||||
if (gMain.newKeys & A_BUTTON)
|
if (gMain.newKeys & A_BUTTON)
|
||||||
{
|
{
|
||||||
if (!gUnknown_0203CD90.APressMuted)
|
if (!sMenu.APressMuted)
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
return gUnknown_0203CD90.cursorPos;
|
return sMenu.cursorPos;
|
||||||
}
|
}
|
||||||
else if (gMain.newKeys & B_BUTTON)
|
else if (gMain.newKeys & B_BUTTON)
|
||||||
{
|
{
|
||||||
@ -1060,13 +1060,13 @@ s8 ProcessMenuInput_other(void)
|
|||||||
|
|
||||||
s8 Menu_ProcessInputNoWrapAround_other(void)
|
s8 Menu_ProcessInputNoWrapAround_other(void)
|
||||||
{
|
{
|
||||||
u8 oldPos = gUnknown_0203CD90.cursorPos;
|
u8 oldPos = sMenu.cursorPos;
|
||||||
|
|
||||||
if (gMain.newKeys & A_BUTTON)
|
if (gMain.newKeys & A_BUTTON)
|
||||||
{
|
{
|
||||||
if (!gUnknown_0203CD90.APressMuted)
|
if (!sMenu.APressMuted)
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
return gUnknown_0203CD90.cursorPos;
|
return sMenu.cursorPos;
|
||||||
}
|
}
|
||||||
else if (gMain.newKeys & B_BUTTON)
|
else if (gMain.newKeys & B_BUTTON)
|
||||||
{
|
{
|
||||||
@ -1174,11 +1174,11 @@ void sub_8198AF8(const struct WindowTemplate *window, u8 fontId, u8 left, u8 top
|
|||||||
{
|
{
|
||||||
struct TextPrinterTemplate printer;
|
struct TextPrinterTemplate printer;
|
||||||
|
|
||||||
gUnknown_0203CD9F = AddWindow(window);
|
sYesNoWindowId = AddWindow(window);
|
||||||
SetWindowBorderStyle(gUnknown_0203CD9F, TRUE, baseTileNum, paletteNum);
|
SetWindowBorderStyle(sYesNoWindowId, TRUE, baseTileNum, paletteNum);
|
||||||
|
|
||||||
printer.currentChar = gText_YesNo;
|
printer.currentChar = gText_YesNo;
|
||||||
printer.windowId = gUnknown_0203CD9F;
|
printer.windowId = sYesNoWindowId;
|
||||||
printer.fontId = fontId;
|
printer.fontId = fontId;
|
||||||
printer.x = GetFontAttribute(fontId, FONTATTR_MAX_LETTER_WIDTH) + left;
|
printer.x = GetFontAttribute(fontId, FONTATTR_MAX_LETTER_WIDTH) + left;
|
||||||
printer.y = top;
|
printer.y = top;
|
||||||
@ -1193,7 +1193,7 @@ void sub_8198AF8(const struct WindowTemplate *window, u8 fontId, u8 left, u8 top
|
|||||||
|
|
||||||
AddTextPrinter(&printer, 0xFF, NULL);
|
AddTextPrinter(&printer, 0xFF, NULL);
|
||||||
|
|
||||||
sub_81983AC(gUnknown_0203CD9F, fontId, left, top, GetFontAttribute(fontId, FONTATTR_MAX_LETTER_HEIGHT), 2, initialCursorPos);
|
sub_81983AC(sYesNoWindowId, fontId, left, top, GetFontAttribute(fontId, FONTATTR_MAX_LETTER_HEIGHT), 2, initialCursorPos);
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_8198C34(const struct WindowTemplate *window, u8 fontId, u16 baseTileNum, u8 paletteNum)
|
void sub_8198C34(const struct WindowTemplate *window, u8 fontId, u16 baseTileNum, u8 paletteNum)
|
||||||
@ -1211,8 +1211,8 @@ s8 Menu_ProcessInputNoWrapClearOnChoose(void)
|
|||||||
|
|
||||||
void sub_8198C78(void)
|
void sub_8198C78(void)
|
||||||
{
|
{
|
||||||
sub_8198070(gUnknown_0203CD9F, TRUE);
|
sub_8198070(sYesNoWindowId, TRUE);
|
||||||
RemoveWindow(gUnknown_0203CD9F);
|
RemoveWindow(sYesNoWindowId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_8198C94(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 a5, u8 a6, u8 a7, const struct MenuAction *strs)
|
void sub_8198C94(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 a5, u8 a6, u8 a7, const struct MenuAction *strs)
|
||||||
@ -1274,26 +1274,26 @@ u8 sub_8198F58(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 cursorHeight,
|
|||||||
{
|
{
|
||||||
s32 pos;
|
s32 pos;
|
||||||
|
|
||||||
gUnknown_0203CD90.left = left;
|
sMenu.left = left;
|
||||||
gUnknown_0203CD90.top = top;
|
sMenu.top = top;
|
||||||
gUnknown_0203CD90.minCursorPos = 0;
|
sMenu.minCursorPos = 0;
|
||||||
gUnknown_0203CD90.maxCursorPos = numChoices - 1;
|
sMenu.maxCursorPos = numChoices - 1;
|
||||||
gUnknown_0203CD90.windowId = windowId;
|
sMenu.windowId = windowId;
|
||||||
gUnknown_0203CD90.fontId = fontId;
|
sMenu.fontId = fontId;
|
||||||
gUnknown_0203CD90.optionWidth = a4;
|
sMenu.optionWidth = a4;
|
||||||
gUnknown_0203CD90.optionHeight = cursorHeight;
|
sMenu.optionHeight = cursorHeight;
|
||||||
gUnknown_0203CD90.horizontalCount = a6;
|
sMenu.horizontalCount = a6;
|
||||||
gUnknown_0203CD90.verticalCount = a7;
|
sMenu.verticalCount = a7;
|
||||||
|
|
||||||
pos = a9;
|
pos = a9;
|
||||||
|
|
||||||
if (pos < 0 || pos > gUnknown_0203CD90.maxCursorPos)
|
if (pos < 0 || pos > sMenu.maxCursorPos)
|
||||||
gUnknown_0203CD90.cursorPos = 0;
|
sMenu.cursorPos = 0;
|
||||||
else
|
else
|
||||||
gUnknown_0203CD90.cursorPos = pos;
|
sMenu.cursorPos = pos;
|
||||||
|
|
||||||
sub_8199134(0, 0);
|
sub_8199134(0, 0);
|
||||||
return gUnknown_0203CD90.cursorPos;
|
return sMenu.cursorPos;
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 sub_8198FD4(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 a5, u8 a6, u8 a7)
|
u8 sub_8198FD4(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 a5, u8 a6, u8 a7)
|
||||||
@ -1305,20 +1305,20 @@ u8 sub_8198FD4(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 a5, u8 a6, u8
|
|||||||
|
|
||||||
void sub_8199060(u8 oldCursorPos, u8 newCursorPos)
|
void sub_8199060(u8 oldCursorPos, u8 newCursorPos)
|
||||||
{
|
{
|
||||||
u8 cursorWidth = GetMenuCursorDimensionByFont(gUnknown_0203CD90.fontId, 0);
|
u8 cursorWidth = GetMenuCursorDimensionByFont(sMenu.fontId, 0);
|
||||||
u8 cursorHeight = GetMenuCursorDimensionByFont(gUnknown_0203CD90.fontId, 1);
|
u8 cursorHeight = GetMenuCursorDimensionByFont(sMenu.fontId, 1);
|
||||||
u8 xPos = (oldCursorPos % gUnknown_0203CD90.horizontalCount) * gUnknown_0203CD90.optionWidth + gUnknown_0203CD90.left;
|
u8 xPos = (oldCursorPos % sMenu.horizontalCount) * sMenu.optionWidth + sMenu.left;
|
||||||
u8 yPos = (oldCursorPos / gUnknown_0203CD90.horizontalCount) * gUnknown_0203CD90.optionHeight + gUnknown_0203CD90.top;
|
u8 yPos = (oldCursorPos / sMenu.horizontalCount) * sMenu.optionHeight + sMenu.top;
|
||||||
FillWindowPixelRect(gUnknown_0203CD90.windowId,
|
FillWindowPixelRect(sMenu.windowId,
|
||||||
0x11,
|
0x11,
|
||||||
xPos,
|
xPos,
|
||||||
yPos,
|
yPos,
|
||||||
cursorWidth,
|
cursorWidth,
|
||||||
cursorHeight);
|
cursorHeight);
|
||||||
xPos = (newCursorPos % gUnknown_0203CD90.horizontalCount) * gUnknown_0203CD90.optionWidth + gUnknown_0203CD90.left;
|
xPos = (newCursorPos % sMenu.horizontalCount) * sMenu.optionWidth + sMenu.left;
|
||||||
yPos = (newCursorPos / gUnknown_0203CD90.horizontalCount) * gUnknown_0203CD90.optionHeight + gUnknown_0203CD90.top;
|
yPos = (newCursorPos / sMenu.horizontalCount) * sMenu.optionHeight + sMenu.top;
|
||||||
AddTextPrinterParameterized(gUnknown_0203CD90.windowId,
|
AddTextPrinterParameterized(sMenu.windowId,
|
||||||
gUnknown_0203CD90.fontId,
|
sMenu.fontId,
|
||||||
gText_SelectorArrow3,
|
gText_SelectorArrow3,
|
||||||
xPos,
|
xPos,
|
||||||
yPos,
|
yPos,
|
||||||
@ -1328,83 +1328,83 @@ void sub_8199060(u8 oldCursorPos, u8 newCursorPos)
|
|||||||
|
|
||||||
u8 sub_8199134(s8 deltaX, s8 deltaY)
|
u8 sub_8199134(s8 deltaX, s8 deltaY)
|
||||||
{
|
{
|
||||||
u8 oldPos = gUnknown_0203CD90.cursorPos;
|
u8 oldPos = sMenu.cursorPos;
|
||||||
|
|
||||||
if (deltaX != 0)
|
if (deltaX != 0)
|
||||||
{
|
{
|
||||||
if ((gUnknown_0203CD90.cursorPos % gUnknown_0203CD90.horizontalCount) + deltaX < 0)
|
if ((sMenu.cursorPos % sMenu.horizontalCount) + deltaX < 0)
|
||||||
{
|
{
|
||||||
gUnknown_0203CD90.cursorPos += gUnknown_0203CD90.horizontalCount - 1;
|
sMenu.cursorPos += sMenu.horizontalCount - 1;
|
||||||
}
|
}
|
||||||
else if ((gUnknown_0203CD90.cursorPos % gUnknown_0203CD90.horizontalCount) + deltaX >= gUnknown_0203CD90.horizontalCount)
|
else if ((sMenu.cursorPos % sMenu.horizontalCount) + deltaX >= sMenu.horizontalCount)
|
||||||
{
|
{
|
||||||
gUnknown_0203CD90.cursorPos = (gUnknown_0203CD90.cursorPos / gUnknown_0203CD90.horizontalCount) * gUnknown_0203CD90.horizontalCount;
|
sMenu.cursorPos = (sMenu.cursorPos / sMenu.horizontalCount) * sMenu.horizontalCount;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gUnknown_0203CD90.cursorPos += deltaX;
|
sMenu.cursorPos += deltaX;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (deltaY != 0)
|
if (deltaY != 0)
|
||||||
{
|
{
|
||||||
if ((gUnknown_0203CD90.cursorPos / gUnknown_0203CD90.horizontalCount) + deltaY < 0)
|
if ((sMenu.cursorPos / sMenu.horizontalCount) + deltaY < 0)
|
||||||
{
|
{
|
||||||
gUnknown_0203CD90.cursorPos += gUnknown_0203CD90.horizontalCount * (gUnknown_0203CD90.verticalCount - 1);
|
sMenu.cursorPos += sMenu.horizontalCount * (sMenu.verticalCount - 1);
|
||||||
}
|
}
|
||||||
else if ((gUnknown_0203CD90.cursorPos / gUnknown_0203CD90.horizontalCount) + deltaY >= gUnknown_0203CD90.verticalCount)
|
else if ((sMenu.cursorPos / sMenu.horizontalCount) + deltaY >= sMenu.verticalCount)
|
||||||
{
|
{
|
||||||
gUnknown_0203CD90.cursorPos -= gUnknown_0203CD90.horizontalCount * (gUnknown_0203CD90.verticalCount - 1);
|
sMenu.cursorPos -= sMenu.horizontalCount * (sMenu.verticalCount - 1);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gUnknown_0203CD90.cursorPos += (gUnknown_0203CD90.horizontalCount * deltaY);
|
sMenu.cursorPos += (sMenu.horizontalCount * deltaY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gUnknown_0203CD90.cursorPos > gUnknown_0203CD90.maxCursorPos)
|
if (sMenu.cursorPos > sMenu.maxCursorPos)
|
||||||
{
|
{
|
||||||
gUnknown_0203CD90.cursorPos = oldPos;
|
sMenu.cursorPos = oldPos;
|
||||||
return gUnknown_0203CD90.cursorPos;
|
return sMenu.cursorPos;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sub_8199060(oldPos, gUnknown_0203CD90.cursorPos);
|
sub_8199060(oldPos, sMenu.cursorPos);
|
||||||
return gUnknown_0203CD90.cursorPos;
|
return sMenu.cursorPos;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 sub_81991F8(s8 deltaX, s8 deltaY)
|
u8 sub_81991F8(s8 deltaX, s8 deltaY)
|
||||||
{
|
{
|
||||||
u8 oldPos = gUnknown_0203CD90.cursorPos;
|
u8 oldPos = sMenu.cursorPos;
|
||||||
|
|
||||||
if (deltaX != 0)
|
if (deltaX != 0)
|
||||||
{
|
{
|
||||||
if (((gUnknown_0203CD90.cursorPos % gUnknown_0203CD90.horizontalCount) + deltaX >= 0) &&
|
if (((sMenu.cursorPos % sMenu.horizontalCount) + deltaX >= 0) &&
|
||||||
((gUnknown_0203CD90.cursorPos % gUnknown_0203CD90.horizontalCount) + deltaX < gUnknown_0203CD90.horizontalCount))
|
((sMenu.cursorPos % sMenu.horizontalCount) + deltaX < sMenu.horizontalCount))
|
||||||
{
|
{
|
||||||
gUnknown_0203CD90.cursorPos += deltaX;
|
sMenu.cursorPos += deltaX;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (deltaY != 0)
|
if (deltaY != 0)
|
||||||
{
|
{
|
||||||
if (((gUnknown_0203CD90.cursorPos / gUnknown_0203CD90.horizontalCount) + deltaY >= 0) &&
|
if (((sMenu.cursorPos / sMenu.horizontalCount) + deltaY >= 0) &&
|
||||||
((gUnknown_0203CD90.cursorPos / gUnknown_0203CD90.horizontalCount) + deltaY < gUnknown_0203CD90.verticalCount))
|
((sMenu.cursorPos / sMenu.horizontalCount) + deltaY < sMenu.verticalCount))
|
||||||
{
|
{
|
||||||
gUnknown_0203CD90.cursorPos += (gUnknown_0203CD90.horizontalCount * deltaY);
|
sMenu.cursorPos += (sMenu.horizontalCount * deltaY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gUnknown_0203CD90.cursorPos > gUnknown_0203CD90.maxCursorPos)
|
if (sMenu.cursorPos > sMenu.maxCursorPos)
|
||||||
{
|
{
|
||||||
gUnknown_0203CD90.cursorPos = oldPos;
|
sMenu.cursorPos = oldPos;
|
||||||
return gUnknown_0203CD90.cursorPos;
|
return sMenu.cursorPos;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sub_8199060(oldPos, gUnknown_0203CD90.cursorPos);
|
sub_8199060(oldPos, sMenu.cursorPos);
|
||||||
return gUnknown_0203CD90.cursorPos;
|
return sMenu.cursorPos;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1413,7 +1413,7 @@ s8 sub_8199284(void)
|
|||||||
if (gMain.newKeys & A_BUTTON)
|
if (gMain.newKeys & A_BUTTON)
|
||||||
{
|
{
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
return gUnknown_0203CD90.cursorPos;
|
return sMenu.cursorPos;
|
||||||
}
|
}
|
||||||
else if (gMain.newKeys & B_BUTTON)
|
else if (gMain.newKeys & B_BUTTON)
|
||||||
{
|
{
|
||||||
@ -1449,12 +1449,12 @@ s8 sub_8199284(void)
|
|||||||
|
|
||||||
s8 Menu_ProcessInputGridLayout(void)
|
s8 Menu_ProcessInputGridLayout(void)
|
||||||
{
|
{
|
||||||
u8 oldPos = gUnknown_0203CD90.cursorPos;
|
u8 oldPos = sMenu.cursorPos;
|
||||||
|
|
||||||
if (gMain.newKeys & A_BUTTON)
|
if (gMain.newKeys & A_BUTTON)
|
||||||
{
|
{
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
return gUnknown_0203CD90.cursorPos;
|
return sMenu.cursorPos;
|
||||||
}
|
}
|
||||||
else if (gMain.newKeys & B_BUTTON)
|
else if (gMain.newKeys & B_BUTTON)
|
||||||
{
|
{
|
||||||
@ -1493,7 +1493,7 @@ s8 sub_81993D8(void)
|
|||||||
if (gMain.newKeys & A_BUTTON)
|
if (gMain.newKeys & A_BUTTON)
|
||||||
{
|
{
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
return gUnknown_0203CD90.cursorPos;
|
return sMenu.cursorPos;
|
||||||
}
|
}
|
||||||
else if (gMain.newKeys & B_BUTTON)
|
else if (gMain.newKeys & B_BUTTON)
|
||||||
{
|
{
|
||||||
@ -1529,12 +1529,12 @@ s8 sub_81993D8(void)
|
|||||||
|
|
||||||
s8 sub_8199484(void)
|
s8 sub_8199484(void)
|
||||||
{
|
{
|
||||||
u8 oldPos = gUnknown_0203CD90.cursorPos;
|
u8 oldPos = sMenu.cursorPos;
|
||||||
|
|
||||||
if (gMain.newKeys & A_BUTTON)
|
if (gMain.newKeys & A_BUTTON)
|
||||||
{
|
{
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
return gUnknown_0203CD90.cursorPos;
|
return sMenu.cursorPos;
|
||||||
}
|
}
|
||||||
else if (gMain.newKeys & B_BUTTON)
|
else if (gMain.newKeys & B_BUTTON)
|
||||||
{
|
{
|
||||||
@ -1572,21 +1572,21 @@ u8 InitMenuInUpperLeftCorner(u8 windowId, u8 itemCount, u8 initialCursorPos, boo
|
|||||||
{
|
{
|
||||||
s32 pos;
|
s32 pos;
|
||||||
|
|
||||||
gUnknown_0203CD90.left = 0;
|
sMenu.left = 0;
|
||||||
gUnknown_0203CD90.top = 1;
|
sMenu.top = 1;
|
||||||
gUnknown_0203CD90.minCursorPos = 0;
|
sMenu.minCursorPos = 0;
|
||||||
gUnknown_0203CD90.maxCursorPos = itemCount - 1;
|
sMenu.maxCursorPos = itemCount - 1;
|
||||||
gUnknown_0203CD90.windowId = windowId;
|
sMenu.windowId = windowId;
|
||||||
gUnknown_0203CD90.fontId = 1;
|
sMenu.fontId = 1;
|
||||||
gUnknown_0203CD90.optionHeight = 16;
|
sMenu.optionHeight = 16;
|
||||||
gUnknown_0203CD90.APressMuted = APressMuted;
|
sMenu.APressMuted = APressMuted;
|
||||||
|
|
||||||
pos = initialCursorPos;
|
pos = initialCursorPos;
|
||||||
|
|
||||||
if (pos < 0 || pos > gUnknown_0203CD90.maxCursorPos)
|
if (pos < 0 || pos > sMenu.maxCursorPos)
|
||||||
gUnknown_0203CD90.cursorPos = 0;
|
sMenu.cursorPos = 0;
|
||||||
else
|
else
|
||||||
gUnknown_0203CD90.cursorPos = pos;
|
sMenu.cursorPos = pos;
|
||||||
|
|
||||||
return Menu_MoveCursor(0);
|
return Menu_MoveCursor(0);
|
||||||
}
|
}
|
||||||
@ -1639,11 +1639,11 @@ void CreateYesNoMenu(const struct WindowTemplate *window, u16 baseTileNum, u8 pa
|
|||||||
{
|
{
|
||||||
struct TextPrinterTemplate printer;
|
struct TextPrinterTemplate printer;
|
||||||
|
|
||||||
gUnknown_0203CD9F = AddWindow(window);
|
sYesNoWindowId = AddWindow(window);
|
||||||
SetWindowBorderStyle(gUnknown_0203CD9F, TRUE, baseTileNum, paletteNum);
|
SetWindowBorderStyle(sYesNoWindowId, TRUE, baseTileNum, paletteNum);
|
||||||
|
|
||||||
printer.currentChar = gText_YesNo;
|
printer.currentChar = gText_YesNo;
|
||||||
printer.windowId = gUnknown_0203CD9F;
|
printer.windowId = sYesNoWindowId;
|
||||||
printer.fontId = 1;
|
printer.fontId = 1;
|
||||||
printer.x = 8;
|
printer.x = 8;
|
||||||
printer.y = 1;
|
printer.y = 1;
|
||||||
@ -1657,7 +1657,7 @@ void CreateYesNoMenu(const struct WindowTemplate *window, u16 baseTileNum, u8 pa
|
|||||||
printer.lineSpacing = 0;
|
printer.lineSpacing = 0;
|
||||||
|
|
||||||
AddTextPrinter(&printer, 0xFF, NULL);
|
AddTextPrinter(&printer, 0xFF, NULL);
|
||||||
InitMenuInUpperLeftCornerPlaySoundWhenAPressed(gUnknown_0203CD9F, 2, initialCursorPos);
|
InitMenuInUpperLeftCornerPlaySoundWhenAPressed(sYesNoWindowId, 2, initialCursorPos);
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_81997AC(u8 windowId, u8 a4, u8 a6, u8 a7, const struct MenuAction *strs)
|
void sub_81997AC(u8 windowId, u8 a4, u8 a6, u8 a7, const struct MenuAction *strs)
|
||||||
@ -1709,26 +1709,26 @@ u8 sub_8199944(u8 windowId, u8 optionWidth, u8 horizontalCount, u8 verticalCount
|
|||||||
{
|
{
|
||||||
s32 pos;
|
s32 pos;
|
||||||
|
|
||||||
gUnknown_0203CD90.left = 0;
|
sMenu.left = 0;
|
||||||
gUnknown_0203CD90.top = 1;
|
sMenu.top = 1;
|
||||||
gUnknown_0203CD90.minCursorPos = 0;
|
sMenu.minCursorPos = 0;
|
||||||
gUnknown_0203CD90.maxCursorPos = (horizontalCount * verticalCount) - 1;
|
sMenu.maxCursorPos = (horizontalCount * verticalCount) - 1;
|
||||||
gUnknown_0203CD90.windowId = windowId;
|
sMenu.windowId = windowId;
|
||||||
gUnknown_0203CD90.fontId = 1;
|
sMenu.fontId = 1;
|
||||||
gUnknown_0203CD90.optionWidth = optionWidth;
|
sMenu.optionWidth = optionWidth;
|
||||||
gUnknown_0203CD90.optionHeight = 16;
|
sMenu.optionHeight = 16;
|
||||||
gUnknown_0203CD90.horizontalCount = horizontalCount;
|
sMenu.horizontalCount = horizontalCount;
|
||||||
gUnknown_0203CD90.verticalCount = verticalCount;
|
sMenu.verticalCount = verticalCount;
|
||||||
|
|
||||||
pos = initialCursorPos;
|
pos = initialCursorPos;
|
||||||
|
|
||||||
if (pos < 0 || pos > gUnknown_0203CD90.maxCursorPos)
|
if (pos < 0 || pos > sMenu.maxCursorPos)
|
||||||
gUnknown_0203CD90.cursorPos = 0;
|
sMenu.cursorPos = 0;
|
||||||
else
|
else
|
||||||
gUnknown_0203CD90.cursorPos = pos;
|
sMenu.cursorPos = pos;
|
||||||
|
|
||||||
sub_8199134(0, 0);
|
sub_8199134(0, 0);
|
||||||
return gUnknown_0203CD90.cursorPos;
|
return sMenu.cursorPos;
|
||||||
}
|
}
|
||||||
|
|
||||||
void clear_scheduled_bg_copies_to_vram(void)
|
void clear_scheduled_bg_copies_to_vram(void)
|
||||||
|
Loading…
Reference in New Issue
Block a user