Decompile start_menu

This commit is contained in:
PikalaxALT
2019-10-13 22:04:51 -04:00
parent 6bffe8613e
commit 8fd0bc4245
65 changed files with 1367 additions and 2510 deletions
+2 -2
View File
@@ -552,7 +552,7 @@ static void Task_TopMenuHandleInput(u8 taskId)
if (FindTaskIdByFunc(Task_FCOpenOrCloseInfoBox) == 0xFF)
{
RunTextPrinters();
if ((JOY_NEW(SELECT_BUTTON)) && !sFameCheckerData->inPickMode && sFameCheckerData->savedCallback != ReturnToBagFromKeyItem)
if ((JOY_NEW(SELECT_BUTTON)) && !sFameCheckerData->inPickMode && sFameCheckerData->savedCallback != CB2_BagMenuFromStartMenu)
task->func = Task_StartToCloseFameChecker;
else if (JOY_NEW(START_BUTTON))
{
@@ -802,7 +802,7 @@ static void WipeMsgBoxAndTransfer(void)
static void Setup_DrawMsgAndListBoxes(void)
{
sub_80F6E9C();
LoadStdWindowFrameGfx();
DrawDialogueFrame(FCWINDOWID_MSGBOX, TRUE);
FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_MSGBOX);
FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_LIST);
+6 -6
View File
@@ -475,25 +475,25 @@ static void sub_807E31C(u8 taskId)
}
}
static void sub_807E378(u8 taskId)
static void Task_WaitFadeAndCreateStartMenuTask(u8 taskId)
{
if (sub_807E418() == TRUE)
{
DestroyTask(taskId);
CreateTask(sub_806F1F0, 80);
CreateTask(Task_StartMenuHandleInput, 80);
}
}
void sub_807E3A0(void)
void FadeTransition_FadeInOnReturnToStartMenu(void)
{
sub_807DC00();
CreateTask(sub_807E378, 80);
CreateTask(Task_WaitFadeAndCreateStartMenuTask, 80);
ScriptContext2_Enable();
}
bool32 sub_807E3BC(void)
bool8 FieldCB2_ReturnToStartMenuInit(void)
{
sub_806F1D4();
SetUpReturnToStartMenu();
return FALSE;
}
+31 -31
View File
@@ -16,13 +16,13 @@
#include "constants/maps.h"
#include "constants/songs.h"
static EWRAM_DATA u16 gUnknown_203B0EC = 0;
static EWRAM_DATA u16 sSomeVariable = 0;
static EWRAM_DATA u8 gUnknown_203B0EE = 0;
u8 gUnknown_3005E9C[4];
u16 gUnknown_3005EA0;
u16 gSomeVariableBackup;
static bool32 sub_812B27C(const u16 * mapIdxs);
static bool32 IsCurrentMapInArray(const u16 * mapIdxs);
static void sub_812B520(struct HelpSystemListMenu * a0, struct ListMenuItem * a1);
static void sub_812B614(struct HelpSystemListMenu * a0, struct ListMenuItem * a1);
static bool8 sub_812B754(void);
@@ -824,7 +824,7 @@ static const u8 gUnknown_845C4B6[][6] = {
{0, 0, 0, 0, 0, 0}
};
static const u16 gUnknown_845C594[] = {
static const u16 sMartMaps[] = {
MAP_VIRIDIAN_CITY_MART,
MAP_PEWTER_CITY_MART,
MAP_CERULEAN_CITY_MART,
@@ -847,7 +847,7 @@ static const u16 gUnknown_845C594[] = {
MAP_UNDEFINED
};
static const u16 gUnknown_845C5BC[] = {
static const u16 sGymMaps[] = {
MAP_PEWTER_CITY_GYM,
MAP_CERULEAN_CITY_GYM,
MAP_VERMILION_CITY_GYM,
@@ -859,7 +859,7 @@ static const u16 gUnknown_845C5BC[] = {
MAP_UNDEFINED
};
static const u8 gUnknown_845C5CE[][3] = {
static const u8 sDungeonMaps[][3] = {
{ MAP_GROUP(VIRIDIAN_FOREST), MAP_NUM(VIRIDIAN_FOREST), 1 },
{ MAP_GROUP(MT_MOON_1F), MAP_NUM(MT_MOON_1F), 3 },
{ MAP_GROUP(ROCK_TUNNEL_1F), MAP_NUM(ROCK_TUNNEL_1F), 2 },
@@ -878,14 +878,14 @@ static const u8 gUnknown_845C5CE[][3] = {
{ MAP_GROUP(SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER), MAP_NUM(SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER), 7 }
};
void sub_812B1E0(u8 a0)
void HelpSystem_SetSomeVariable(u8 a0)
{
gUnknown_203B0EC = a0;
sSomeVariable = a0;
}
void HelpSystem_SetSomeVariable2(u8 a0)
{
switch (gUnknown_203B0EC)
switch (sSomeVariable)
{
case 23:
case 24:
@@ -895,37 +895,37 @@ void HelpSystem_SetSomeVariable2(u8 a0)
break;
// fallthrough
default:
gUnknown_203B0EC = a0;
sSomeVariable = a0;
break;
}
}
void sub_812B220(void)
void Special_SetSomeVariable(void)
{
gUnknown_203B0EC = gSpecialVar_0x8004;
sSomeVariable = gSpecialVar_0x8004;
}
void sub_812B234(void)
void HelpSystem_BackupSomeVariable(void)
{
gUnknown_3005EA0 = gUnknown_203B0EC;
gSomeVariableBackup = sSomeVariable;
}
void sub_812B248(void)
void HelpSystem_RestoreSomeVariable(void)
{
gUnknown_203B0EC = gUnknown_3005EA0;
sSomeVariable = gSomeVariableBackup;
}
static bool32 sub_812B25C(void)
static bool32 IsInMartMap(void)
{
return sub_812B27C(gUnknown_845C594);
return IsCurrentMapInArray(sMartMaps);
}
static bool32 sub_812B26C(void)
static bool32 IsInGymMap(void)
{
return sub_812B27C(gUnknown_845C5BC);
return IsCurrentMapInArray(sGymMaps);
}
static bool32 sub_812B27C(const u16 * mapIdxs)
static bool32 IsCurrentMapInArray(const u16 * mapIdxs)
{
u16 mapIdx = (gSaveBlock1Ptr->location.mapGroup << 8) + gSaveBlock1Ptr->location.mapNum;
s32 i;
@@ -939,18 +939,18 @@ static bool32 sub_812B27C(const u16 * mapIdxs)
return FALSE;
}
static bool8 sub_812B2C4(void)
static bool8 IsInDungeonMap(void)
{
u8 i, j;
for (i = 0; i < 16; i++)
{
for (j = 0; j < gUnknown_845C5CE[i][2]; j++)
for (j = 0; j < sDungeonMaps[i][2]; j++)
{
if (
gUnknown_845C5CE[i][0] == gSaveBlock1Ptr->location.mapGroup
&& gUnknown_845C5CE[i][1] + j == gSaveBlock1Ptr->location.mapNum
&& (i != 15 || FlagGet(FLAG_0x849) == TRUE)
sDungeonMaps[i][0] == gSaveBlock1Ptr->location.mapGroup
&& sDungeonMaps[i][1] + j == gSaveBlock1Ptr->location.mapNum
&& (i != 15 /* TANOBY */ || FlagGet(FLAG_0x849) == TRUE)
)
return TRUE;
}
@@ -964,7 +964,7 @@ void sub_812B35C(void)
sub_812B4B8();
if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING))
HelpSystem_SetSomeVariable2(0x16);
else if (sub_812B2C4())
else if (IsInDungeonMap())
HelpSystem_SetSomeVariable2(0x15);
else if (is_light_level_8_or_9(gMapHeader.mapType))
{
@@ -974,9 +974,9 @@ void sub_812B35C(void)
HelpSystem_SetSomeVariable2(0x0F);
else if (IsCurMapPokeCenter() == TRUE)
HelpSystem_SetSomeVariable2(0x10);
else if (sub_812B25C() == TRUE)
else if (IsInMartMap() == TRUE)
HelpSystem_SetSomeVariable2(0x11);
else if (sub_812B26C() == TRUE)
else if (IsInGymMap() == TRUE)
HelpSystem_SetSomeVariable2(0x12);
else
HelpSystem_SetSomeVariable2(0x13);
@@ -1055,7 +1055,7 @@ static void sub_812B520(struct HelpSystemListMenu * a0, struct ListMenuItem * a1
u8 r4 = 0;
for (i = 0; i < 6; i++)
{
if (gUnknown_845C4B6[gUnknown_203B0EC][gUnknown_845C4B0[i]] == 1)
if (gUnknown_845C4B6[sSomeVariable][gUnknown_845C4B0[i]] == 1)
{
a1[r4].label = gUnknown_845B080[gUnknown_845C4B0[i]];
a1[r4].index = gUnknown_845C4B0[i];
@@ -1085,7 +1085,7 @@ static void sub_812B5A8(struct HelpSystemListMenu * a0, struct ListMenuItem * a1
static void sub_812B614(struct HelpSystemListMenu * a0, struct ListMenuItem * a1)
{
u8 r6 = 0;
const u8 * r3 = gUnknown_845B9E0[gUnknown_203B0EC * 5 + gUnknown_3005E9C[1]];
const u8 * r3 = gUnknown_845B9E0[sSomeVariable * 5 + gUnknown_3005E9C[1]];
u8 i;
for (i = 0; r3[i] != 0xFF; i++)
{
+6 -6
View File
@@ -191,7 +191,7 @@ void sub_80A1208(void)
struct MailStruct mail;
mail.itemId = gSpecialVar_ItemId;
sub_80BEBEC(&mail, ReturnToBagFromKeyItem, 0);
sub_80BEBEC(&mail, CB2_BagMenuFromStartMenu, 0);
}
void FieldUseFunc_MachBike(u8 taskId)
@@ -404,7 +404,7 @@ void FieldUseFunc_TmCase(u8 taskId)
void InitTMCaseFromBag(void)
{
InitTMCase(0, ReturnToBagFromKeyItem, 0);
InitTMCase(0, CB2_BagMenuFromStartMenu, 0);
}
void Task_InitTMCaseFromField(u8 taskId)
@@ -435,7 +435,7 @@ void FieldUseFunc_BerryPouch(u8 taskId)
void InitBerryPouchFromBag(void)
{
InitBerryPouch(BERRYPOUCH_FROMFIELD, ReturnToBagFromKeyItem, 0);
InitBerryPouch(BERRYPOUCH_FROMFIELD, CB2_BagMenuFromStartMenu, 0);
}
void Task_InitBerryPouchFromField(u8 taskId)
@@ -478,7 +478,7 @@ void FieldUseFunc_TeachyTv(u8 taskId)
void InitTeachyTvFromBag(void)
{
InitTeachyTvController(0, ReturnToBagFromKeyItem);
InitTeachyTvController(0, CB2_BagMenuFromStartMenu);
}
void Task_InitTeachyTvFromField(u8 taskId)
@@ -608,7 +608,7 @@ void FieldUseFunc_TownMap(u8 taskId)
void sub_80A1CAC(void)
{
sub_80BFF50(0, ReturnToBagFromKeyItem);
sub_80BFF50(0, CB2_BagMenuFromStartMenu);
}
void sub_80A1CC0(u8 taskId)
@@ -640,7 +640,7 @@ void FieldUseFunc_FameChecker(u8 taskId)
void sub_80A1D58(void)
{
UseFameChecker(ReturnToBagFromKeyItem);
UseFameChecker(CB2_BagMenuFromStartMenu);
}
void sub_80A1D68(u8 taskId)
+1 -1
View File
@@ -485,7 +485,7 @@ void AddTextPrinterParameterized5(u8 windowId, u8 fontId, const u8 *str, u8 x, u
AddTextPrinter(&printer, speed, callback);
}
void sub_812E6DC(u8 windowId, const u8 * src, u16 x, u16 y)
void Menu_PrintFormatIntlPlayerName(u8 windowId, const u8 * src, u16 x, u16 y)
{
s32 i;
+1 -1
View File
@@ -247,7 +247,7 @@ bool8 MEScrCmd_givepokemon(struct ScriptContext *ctx)
if (species == SPECIES_EGG)
StringCopyN(gStringVar1, gText_EggNickname, POKEMON_NAME_LENGTH + 1);
else
StringCopyN(gStringVar1, gText_Pokemon, POKEMON_NAME_LENGTH + 1);
StringCopyN(gStringVar1, gStartMenuText_Pokemon, POKEMON_NAME_LENGTH + 1);
if (gPlayerPartyCount == PARTY_SIZE)
{
+9 -9
View File
@@ -395,7 +395,7 @@ void ResetBg0(void)
ChangeBgX(0, 0, 0);
ChangeBgY(0, 0, 0);
DeactivateAllTextPrinters();
sub_80F6E9C();
LoadStdWindowFrameGfx();
}
u16 RunTextPrinters_CheckPrinter0Active(void)
@@ -452,7 +452,7 @@ void AddTextPrinterWithCustomSpeedForMessage(bool8 allowSkippingDelayWithButtonP
AddTextPrinterParameterized2(0, 2, gStringVar4, speed, NULL, 2, 1, 3);
}
void sub_80F6E9C(void)
void LoadStdWindowFrameGfx(void)
{
if (gUnknown_203ADFA == 2)
{
@@ -644,7 +644,7 @@ static u16 GetStdPalColor(u8 colorNum)
void DisplayItemMessageOnField(u8 taskId, u8 bgId, const u8 *string, TaskFunc callback)
{
sub_80F6E9C();
LoadStdWindowFrameGfx();
DisplayMessageAndContinueTask(taskId, 0, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM, bgId, GetTextSpeedSetting(), string, callback);
CopyWindowToVram(0, 3);
}
@@ -667,7 +667,7 @@ u8 GetTextSpeedSetting(void)
return gUnknown_841F428[gSaveBlock2Ptr->optionsTextSpeed];
}
u8 sub_80F78E0(u8 height)
u8 CreateStartMenuWindow(u8 height)
{
if (sStartMenuWindowId == 0xFF)
{
@@ -702,15 +702,15 @@ u16 GetStdWindowBaseTileNum(void)
return STD_WINDOW_BASE_TILE_NUM;
}
void sub_80F7974(const u8 * text)
void DrawHelpMessageWindowWithText(const u8 * text)
{
sub_814FE6C(sub_8112EB4(), DLG_WINDOW_BASE_TILE_NUM, 0x10 * DLG_WINDOW_PALETTE_NUM);
sub_8113018(text, 2);
sub_814FE6C(CreateHelpMessageWindow(), DLG_WINDOW_BASE_TILE_NUM, 0x10 * DLG_WINDOW_PALETTE_NUM);
PrintTextOnHelpMessageWindow(text, 2);
}
void sub_80F7998(void)
void DestroyHelpMessageWindow_(void)
{
sub_8112EDC(2);
DestroyHelpMessageWindow(2);
}
void sub_80F79A4(void)
+7 -7
View File
@@ -154,7 +154,7 @@ void sub_80EB6AC(void)
u8 taskId;
gPlayerPcMenuManager.unk_9 = 0;
sub_812B234();
HelpSystem_BackupSomeVariable();
sItemOrder = gUnknown_8402200;
sTopMenuItemCount = 3;
taskId = CreateTask(TaskDummy, 0);
@@ -166,7 +166,7 @@ void sub_80EB6FC(void)
u8 taskId;
gPlayerPcMenuManager.unk_9 = 1;
sub_812B234();
HelpSystem_BackupSomeVariable();
sItemOrder = gUnknown_8402203;
sTopMenuItemCount = 3;
taskId = CreateTask(TaskDummy, 0);
@@ -215,7 +215,7 @@ static void Task_TopMenuHandleInput(u8 taskId)
static void Task_ReturnToTopMenu(u8 taskId)
{
sub_812B248();
HelpSystem_RestoreSomeVariable();
DisplayItemMessageOnField(taskId, 2, gText_WhatWouldYouLikeToDo, Task_DrawPlayerPcTopMenu);
}
@@ -343,7 +343,7 @@ static void Task_ReturnToItemStorageSubmenu(u8 taskId)
static void CB2_ReturnFromDepositMenu(void)
{
u8 taskId;
sub_80F6E9C();
LoadStdWindowFrameGfx();
DrawDialogueFrame(0, TRUE);
taskId = CreateTask(Task_ReturnToItemStorageSubmenu, 0);
Task_CreateItemStorageSubmenu(taskId, 1);
@@ -372,7 +372,7 @@ static void Task_PlayerPcWithdrawItem(u8 taskId)
static void CB2_ReturnFromWithdrawMenu(void)
{
u8 taskId;
sub_80F6E9C();
LoadStdWindowFrameGfx();
DrawDialogueFrame(0, TRUE);
taskId = CreateTask(Task_ReturnToItemStorageSubmenu, 0);
Task_CreateItemStorageSubmenu(taskId, 0);
@@ -584,7 +584,7 @@ static void CB2_ReturnToMailbox(void)
HelpSystem_SetSomeVariable2(34);
else
HelpSystem_SetSomeVariable2(30);
sub_80F6E9C();
LoadStdWindowFrameGfx();
taskId = CreateTask(Task_WaitFadeAndReturnToMailboxPcInputHandler, 0);
if (MailboxPC_InitBuffers(gPlayerPcMenuManager.count) == TRUE)
Task_DrawMailboxPcMenu(taskId);
@@ -700,7 +700,7 @@ static void CB2_ReturnToMailboxPc_UpdateScrollVariables(void)
}
}
Task_SetPageItemVars(taskId);
sub_80F6E9C();
LoadStdWindowFrameGfx();
if (MailboxPC_InitBuffers(gPlayerPcMenuManager.count) == TRUE)
Task_DrawMailboxPcMenu(taskId);
else
+19 -19
View File
@@ -109,7 +109,7 @@ EWRAM_DATA u8 gUnknown_203AF9A[64][2] = {{0}};
EWRAM_DATA u16 gUnknown_203B01A = 0;
EWRAM_DATA u16 gUnknown_203B01C = 0;
EWRAM_DATA u16 gUnknown_203B01E = 0;
EWRAM_DATA u8 gUnknown_203B020 = 0;
EWRAM_DATA u8 sHelpMessageWindowId = 0;
EWRAM_DATA struct UnkStruct_203B024 gUnknown_203B024 = {0};
EWRAM_DATA struct UnkStruct_203B044 gUnknown_203B044 = {0};
EWRAM_DATA u8 gUnknown_203B048 = 0;
@@ -2294,37 +2294,37 @@ void sub_8112E3C(u8 a0, struct UnkStruct_300201C * a1, u16 a2)
const u16 gUnknown_84566A8[] = INCBIN_U16("data/graphics/unknown_84566a8.bin");
const struct WindowTemplate gUnknown_8456928 = {
const struct WindowTemplate sHelpMessageWindowTemplate = {
0x00, 0, 15, 30, 5, 15, 0x008F
};
void MapNamePopupWindowIdSetDummy(void)
{
gUnknown_203B020 = 0xFF;
sHelpMessageWindowId = 0xFF;
}
u8 sub_8112EB4(void)
u8 CreateHelpMessageWindow(void)
{
if (gUnknown_203B020 == 0xFF)
if (sHelpMessageWindowId == 0xFF)
{
gUnknown_203B020 = AddWindow(&gUnknown_8456928);
PutWindowTilemap(gUnknown_203B020);
sHelpMessageWindowId = AddWindow(&sHelpMessageWindowTemplate);
PutWindowTilemap(sHelpMessageWindowId);
}
return gUnknown_203B020;
return sHelpMessageWindowId;
}
void sub_8112EDC(u8 a0)
void DestroyHelpMessageWindow(u8 a0)
{
if (gUnknown_203B020 != 0xFF)
if (sHelpMessageWindowId != 0xFF)
{
FillWindowPixelBuffer(gUnknown_203B020, 0x00);
ClearWindowTilemap(gUnknown_203B020);
FillWindowPixelBuffer(sHelpMessageWindowId, PIXEL_FILL(0));
ClearWindowTilemap(sHelpMessageWindowId);
if (a0)
CopyWindowToVram(gUnknown_203B020, a0);
CopyWindowToVram(sHelpMessageWindowId, a0);
RemoveWindow(gUnknown_203B020);
gUnknown_203B020 = 0xFF;
RemoveWindow(sHelpMessageWindowId);
sHelpMessageWindowId = 0xFF;
}
}
@@ -2460,7 +2460,7 @@ void sub_8112F18(u8 a0)
void sub_8112FD0(void)
{
sub_8112F18(gUnknown_203B020);
sub_8112F18(sHelpMessageWindowId);
}
const u8 gUnknown_8456930[3] = {
@@ -2469,15 +2469,15 @@ const u8 gUnknown_8456930[3] = {
void sub_8112FE4(const u8 * a0)
{
AddTextPrinterParameterized4(gUnknown_203B020, 0x02, 2, 5, 1, 1, gUnknown_8456930, -1, a0);
AddTextPrinterParameterized4(sHelpMessageWindowId, 0x02, 2, 5, 1, 1, gUnknown_8456930, -1, a0);
}
void sub_8113018(const u8 * text, u8 mode)
void PrintTextOnHelpMessageWindow(const u8 * text, u8 mode)
{
sub_8112FD0();
sub_8112FE4(text);
if (mode)
CopyWindowToVram(gUnknown_203B020, mode);
CopyWindowToVram(sHelpMessageWindowId, mode);
}
void sub_8113044(void)
+3 -3
View File
@@ -85,7 +85,7 @@ u16 gSaveUnusedVar;
u16 gSaveFileStatus;
void (*gGameContinueCallback)(void);
struct SaveBlockChunk gRamSaveSectionLocations[0xE];
u16 gUnknown_3005420;
u16 gSaveSucceeded;
EWRAM_DATA struct SaveSection gSaveDataBuffer = {0};
EWRAM_DATA u32 gSaveUnusedVar2 = 0;
@@ -702,11 +702,11 @@ u8 TrySavingData(u8 saveType)
else
goto OK; // really?
}
gUnknown_3005420 = 0xFF;
gSaveSucceeded = 0xFF;
return 0xFF;
OK:
gUnknown_3005420 = 1;
gSaveSucceeded = 1;
return 1;
}
+3 -3
View File
@@ -1284,14 +1284,14 @@ bool8 ScrCmd_loadhelp(struct ScriptContext *ctx)
if (msg == NULL)
msg = (const u8 *)ctx->data[0];
sub_80F7974(msg);
DrawHelpMessageWindowWithText(msg);
CopyWindowToVram(GetStartMenuWindowId(), 1);
return FALSE;
}
bool8 ScrCmd_unloadhelp(struct ScriptContext *ctx)
{
sub_80F7998();
DestroyHelpMessageWindow_();
return FALSE;
}
@@ -1566,7 +1566,7 @@ bool8 ScrCmd_braillemessage(struct ScriptContext *ctx)
if (ptr == NULL)
ptr = (u8 *)ctx->data[0];
sub_80F6E9C();
LoadStdWindowFrameGfx();
DrawDialogueFrame(0, 1);
AddTextPrinterParameterized(0, 6, ptr, 0, 1, 0, NULL);
return FALSE;
+1008
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -510,7 +510,7 @@ static void TeachyTvMainCallback(void)
ScheduleBgCopyTilemapToVram(1);
ScheduleBgCopyTilemapToVram(2);
ScheduleBgCopyTilemapToVram(3);
sub_812B1E0(9); // help system something
HelpSystem_SetSomeVariable(9); // help system something
BlendPalettes(0xFFFFFFFF, 0x10, 0);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
SetVBlankCallback(TeachyTvVblankHandler);
@@ -736,7 +736,7 @@ static void TeachyTvOptionListController(u8 taskId)
{
input = ListMenu_ProcessInput(data[0]);
ListMenuGetScrollAndRow(data[0], &sStaticResources.scrollOffset, &sStaticResources.selectedRow);
if ((JOY_NEW(SELECT_BUTTON) && sStaticResources.callback != ReturnToBagFromKeyItem))
if ((JOY_NEW(SELECT_BUTTON) && sStaticResources.callback != CB2_BagMenuFromStartMenu))
{
PlaySE(SE_SELECT);
TeachyTvQuitBeginFade(taskId);
+1 -1
View File
@@ -1278,7 +1278,7 @@ void sub_815E720(void)
sub_815EC0C();
windowId = AddWindow(gUnknown_847A218);
sub_80F6E9C();
LoadStdWindowFrameGfx();
DrawStdWindowFrame(windowId, FALSE);
AddTextPrinterParameterized(windowId, 2, gUnknown_83FE982, 0x4A, 0, 0xFF, NULL);