From 46602859cd1cf7b3ecbc3f0730eebe2e60ef3845 Mon Sep 17 00:00:00 2001 From: Evan Date: Sat, 16 Nov 2019 19:45:55 -0700 Subject: remove compile errors --- src/option_menu.c | 594 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 594 insertions(+) create mode 100644 src/option_menu.c (limited to 'src') diff --git a/src/option_menu.c b/src/option_menu.c new file mode 100644 index 000000000..57de35f11 --- /dev/null +++ b/src/option_menu.c @@ -0,0 +1,594 @@ +#include "global.h" +#include "gpu_regs.h" +#include "scanline_effect.h" +#include "text_window_graphics.h" +#include "menu.h" +#include "menu_helpers.h" +#include "task.h" +#include "palette.h" +#include "overworld.h" +#include "malloc.h" +#include "help_system.h" +#include "main.h" +#include "bg.h" +#include "window.h" +#include "text.h" +#include "text_window.h" +#include "string_util.h" +#include "strings.h" +#include "field_fadetransition.h" +#include "gba/m4a_internal.h" + + +// Menu items +enum +{ + MENUITEM_TEXTSPEED = 0, + MENUITEM_BATTLESCENE, + MENUITEM_BATTLESTYLE, + MENUITEM_SOUND, + MENUITEM_BUTTONMODE, + MENUITEM_FRAMETYPE, + MENUITEM_CANCEL, + MENUITEM_COUNT, +}; +// Window Ids +enum +{ + WIN_TEXT_OPTION, + WIN_OPTIONS +}; + +//This file's functions +static void sub_808835C(void); +static void sub_8088374(void); +static void sub_8088430(void); +static void sub_8088444(void); +static void sub_8088454(void); +static void sub_8088514(void); +static void sub_8088530(void); +static void sub_8088680(void); +static void sub_80886D4(void); +static bool8 sub_80886F0(void); +static void sub_8088780(u8 taskId); +static u8 sub_80888C0(void); +static void sub_80889A8(u8 selection); +static void sub_8088B00(u8 taskId); +static void sub_8088BD0(void); +static void sub_8088C0C(void); +static void sub_8088D8C(void); +static void sub_8088DE0(u8 selection); + +extern const u16 gUnknown_83CC304[]; //sOptionsMenuItemCounts +extern const struct BgTemplate gUnknown_83CC2D8[]; +extern const u8 gUnknown_83CC360[]; +extern const u16 gUnknown_83CC2E4[]; +extern const struct WindowTemplate gUnknown_83CC2B8[]; +extern const u8 gUnknown_83CC363[]; +extern const u8 gUnknown_83CC330[]; +extern const u8 gUnknown_83CC33C[]; +extern const u8 gUnknown_83CC344[]; +extern const u8 gUnknown_83CC34C[]; +extern const u8 gUnknown_83CC354[]; +extern const u8 gUnknown_8419E52[]; +extern const u8 gUnknown_8419DCC[]; +extern const u8* gUnknown_83CC314[MENUITEM_COUNT]; +extern const u8 gUnknown_8419E57[]; + +struct OptionsMenu +{ + /*0x00*/ u16 option[7]; + /*0x0E*/ u16 unkE; + /*0x10*/ u8 state3; + /*0x11*/ u8 state; + /*0x12*/ u8 state2; + /*0x13*/ u8 unk13; +}; + +EWRAM_DATA struct OptionsMenu *sOptionsMenu = {0}; + + +//CB2_InitOptionsMenu +static void sub_808835C(void) +{ + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + + +//VBlankCB_OptionsMenu +static void sub_8088374(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + + +//sub_8088388 +void CB2_OptionsMenuFromStartMenu(void) +{ + int i; + + if (gMain.savedCallback == NULL) + gMain.savedCallback = CB2_ReturnToStartMenu; + sOptionsMenu = AllocZeroed(sizeof(struct OptionsMenu)); + sOptionsMenu->state3 = 0; + sOptionsMenu->state2 = 0; + sOptionsMenu->state = 0; + sOptionsMenu->unkE = 0; + sOptionsMenu->option[MENUITEM_TEXTSPEED] = gSaveBlock2Ptr->optionsTextSpeed; + sOptionsMenu->option[MENUITEM_BATTLESCENE] = gSaveBlock2Ptr->optionsBattleSceneOff; + sOptionsMenu->option[MENUITEM_BATTLESTYLE] = gSaveBlock2Ptr->optionsBattleStyle; + sOptionsMenu->option[MENUITEM_SOUND] = gSaveBlock2Ptr->optionsSound; + sOptionsMenu->option[MENUITEM_BUTTONMODE] = gSaveBlock2Ptr->optionsButtonMode; + sOptionsMenu->option[MENUITEM_FRAMETYPE] = gSaveBlock2Ptr->optionsWindowFrameType; + + for (i = 0; i < MENUITEM_COUNT-2; i++) + { + if (sOptionsMenu->option[i] > gUnknown_83CC304[i]-1) + sOptionsMenu->option[i] = 0; + } + HelpSystem_SetSomeVariable2(0xD); + SetMainCallback2(sub_8088454); +} + + +//sub_8088430 +static void sub_8088430(void) +{ + SetVBlankCallback(0); + SetHBlankCallback(0); +} + + +//sub_8088444 +static void sub_8088444(void) +{ + SetVBlankCallback(sub_8088374); +} + +//sub_8088454 +static void sub_8088454(void) +{ + int i; + switch (sOptionsMenu->state) + { + case 0: + sub_8088430(); + sOptionsMenu->state++; + break; + case 1: + sub_8088530(); + sOptionsMenu->state++; + break; + case 2: + sub_80886D4(); + sOptionsMenu->state++; + break; + case 3: + if (!(sub_80886F0())); + return; + sOptionsMenu->state++; + break; + case 4: + sub_8088BD0(); + sOptionsMenu->state++; + break; + case 5: + sub_8088C0C(); + sOptionsMenu->state++; + break; + case 6: + sub_8088D8C(); + sOptionsMenu->state++; + break; + case 7: + for (i = 0; i < MENUITEM_COUNT; i++) + sub_80889A8(i); + sOptionsMenu->state++; + break; + case 8: + sub_8088DE0(sOptionsMenu->unkE); + sOptionsMenu->state++; + break; + case 9: + sub_8088680(); + sOptionsMenu->state++; + break; + default: + sub_8088514(); + return; + } +} + +//sub_8088514 +static void sub_8088514(void) +{ + CreateTask(sub_8088780, 0); + SetMainCallback2(sub_808835C); +} + + +//sub_8088530 +static void sub_8088530(void) +{ + void * dest = (void *) VRAM; + DmaClearLarge16(3, dest, VRAM_SIZE, 0x1000); + + DmaClear32(3, (void *)OAM, OAM_SIZE); + DmaClear16(3, (void *)PLTT, PLTT_SIZE); + SetGpuReg(REG_OFFSET_DISPCNT, 0); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gUnknown_83CC2D8, 3); //3 -> ARRAY_COUNT(gUnknown_83CC2D8) + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + ChangeBgX(2, 0, 0); + ChangeBgY(2, 0, 0); + ChangeBgX(3, 0, 0); + ChangeBgY(3, 0, 0); + InitWindows(gUnknown_83CC2B8); + DeactivateAllTextPrinters(); + SetGpuReg(REG_OFFSET_BLDCNT, 193); + SetGpuReg(REG_OFFSET_BLDY, 2); + SetGpuReg(REG_OFFSET_WININ, 1); + SetGpuReg(REG_OFFSET_WINOUT, 27); + SetGpuReg(0, 0x3040); + ShowBg(0); + ShowBg(1); + ShowBg(2); +}; + +//sub_8088680 +static void sub_8088680(void) +{ + s32 x; + x = 0xE4 - GetStringWidth(0, gUnknown_8419E57, 0); + FillWindowPixelBuffer(WIN_OPTIONS, 0xFF); + AddTextPrinterParameterized3(2, 0, x, 0, gUnknown_83CC360, 0, gUnknown_8419E57); + PutWindowTilemap(2); + CopyWindowToVram(2, 3); +} + + +//sub_80886D4 +static void sub_80886D4(void) +{ + ResetSpriteData(); + ResetPaletteFade(); + FreeAllSpritePalettes(); + ResetTasks(); + ScanlineEffect_Stop(); +} + +//sub_80886F0 +static bool8 sub_80886F0(void) +{ + switch (sOptionsMenu->state2) + { + case 0: + LoadBgTiles(1, GetUserFrameGraphicsInfo(sOptionsMenu->option[6])->tiles, 0x120, 0x1AA); + break; + case 1: + LoadPalette(GetUserFrameGraphicsInfo(sOptionsMenu->option[6])->palette, 0x20, 0x20); + break; + case 2: + LoadPalette(gUnknown_83CC2E4, 0x10, 0x20); + LoadPalette(stdpal_get(2), 0xF0, 0x20); + break; + case 3: + sub_814FDA0(1, 0x1B3, 0x30); + break; + default: + return TRUE; + } + sOptionsMenu->state2++; + return FALSE; +} + + +//sub_8088780 +static void sub_8088780(u8 taskId) +{ + switch (sOptionsMenu->state3) + { + case 0: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + sub_8088444(); + sOptionsMenu->state3++; + break; + case 2: + if (sub_80BF72C) + return; + switch (sub_80888C0()) + { + case 0: + return; + case 1: + sOptionsMenu->state3++; + break; + case 2: + LoadBgTiles(1, GetUserFrameGraphicsInfo(sOptionsMenu->option[6])->tiles, 0x120, 0x1AA); + LoadPalette(GetUserFrameGraphicsInfo(sOptionsMenu->option[6])->palette, 0x20, 0x20); + sub_80889A8(sOptionsMenu->unkE); + return; + case 3: + sub_8088DE0(sOptionsMenu->unkE); + return; + case 4: + sub_80889A8(sOptionsMenu->unkE); + return; + default: + return; + } + case 3: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + sOptionsMenu->state3++; + break; + case 1: + case 4: + if (gPaletteFade.active) + return; + sOptionsMenu->state3++; + return; + case 5: + sub_8088B00(taskId); + return; + default: + return; + } +} + + +//OptionsMenu_ProcessInput +static u8 sub_80888C0(void) +{ + u16 current, selection; + if (gMain.newAndRepeatedKeys & DPAD_RIGHT) + { + selection = 2 * sOptionsMenu->unkE; + current = sOptionsMenu->option[selection]; + + if (current == gUnknown_83CC304[selection] - 1) + sOptionsMenu->option[selection] = 0; + else + sOptionsMenu->option[selection] = current + 1; + if (sOptionsMenu->unkE == MENUITEM_FRAMETYPE) + return 2; + else + return 4; + } + else if (gMain.newAndRepeatedKeys & DPAD_LEFT) + { + selection = 2*sOptionsMenu->unkE; + current = sOptionsMenu->option[selection]; + if (current == 0) + sOptionsMenu->option[selection] = gUnknown_83CC304[selection] - 1; + else + sOptionsMenu->option[selection] = current - 1; + if (sOptionsMenu->unkE == MENUITEM_FRAMETYPE) + return 2; + else + return 4; + } + else if (gMain.newAndRepeatedKeys & DPAD_UP) + { + selection = sOptionsMenu->unkE; + if (selection == MENUITEM_TEXTSPEED) + sOptionsMenu->unkE = MENUITEM_CANCEL; + else + sOptionsMenu->unkE = selection - 1; + return 3; + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + selection = sOptionsMenu->unkE; + if (selection == MENUITEM_CANCEL) + sOptionsMenu->unkE = MENUITEM_TEXTSPEED; + else + sOptionsMenu->unkE = selection + 1; + return 3; + } + else if ((gMain.newKeys & B_BUTTON) || (gMain.newKeys & A_BUTTON)) + { + return 1; + } + else + { + return 0; + } +} + +/* +// must match with goto :( +bool sub_80888C0() +{ + int v0; // r0@2 + _WORD *v1; // r3@2 + int v2; // r4@2 + __int16 v3; // r0@3 + int v4; // r3@8 + __int16 v5; // r0@8 + int v7; // r1@14 + signed __int16 v8; // r0@15 + int v9; // r0@18 + + if (gMain.buttons4_new_and_keyrepeat & DPAD_RIGHT) + { + v0 = 2 * *(_WORD *)(sOptionsMenu + 14); + v1 = (_WORD *)(sOptionsMenu + v0); + v2 = *(_WORD *)(sOptionsMenu + v0); + if ( v2 == *(_WORD *)((char *)&sOptionsMenuItemCounts + v0) - 1 ) + v3 = 0; + else + v3 = v2 + 1; + *v1 = v3; + if ( *(_WORD *)(sOptionsMenu + 14) != 5 ) + return 4; + return 2; + } + if ( gMain.buttons4_new_and_keyrepeat & DPAD_LEFT ) + { + v4 = 2 * *(_WORD *)(sOptionsMenu + 14); + v5 = *(_WORD *)(sOptionsMenu + v4); + if ( !*(_WORD *)(sOptionsMenu + v4) ) + v5 = *(_WORD *)((char *)&sOptionsMenuItemCounts + v4); + *(_WORD *)(sOptionsMenu + v4) = v5 - 1; + if ( *(_WORD *)(sOptionsMenu + 14) != 5 ) + return 4; + return 2; + } + if ( gMain.buttons4_new_and_keyrepeat & 0x40 ) + { + v7 = sOptionsMenu; + if ( *(_WORD *)(sOptionsMenu + 14) ) + v8 = *(_WORD *)(sOptionsMenu + 14) - 1; + else + v8 = 6; + goto LABEL_21; + } + if ( gMain.buttons4_new_and_keyrepeat & 0x80 ) + { + v7 = sOptionsMenu; + v9 = *(_WORD *)(sOptionsMenu + 14); + if ( v9 == 6 ) + { + *(_WORD *)(sOptionsMenu + 14) = 0; + return 3; + } + v8 = v9 + 1; +LABEL_21: + *(_WORD *)(v7 + 14) = v8; + return 3; + } + return gMain.buttons3_new_remapped & 2 || gMain.buttons3_new_remapped & 1; +} +*/ + + +//sub_80889A8 +static void sub_80889A8(u8 selection) +{ + u8* dst; + u8* str; + u8* v8; + u8 x, y; + + x = 0x82; + memcpy(dst, gUnknown_83CC363, 3); + y = ((GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT) - 1) * selection) + 2; + FillWindowPixelRect(1, 1, x, y, 0x46, GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT)); + switch (selection) + { + case MENUITEM_TEXTSPEED: + AddTextPrinterParameterized3(1, 2, x, y, dst, -1, gUnknown_83CC330); + break; + case MENUITEM_BATTLESCENE: + AddTextPrinterParameterized3(1, 2, x, y, dst, -1, gUnknown_83CC33C); + break; + case MENUITEM_BATTLESTYLE: + AddTextPrinterParameterized3(1, 2, x, y, dst, -1, gUnknown_83CC344); + break; + case MENUITEM_SOUND: + AddTextPrinterParameterized3(1, 2, x, y, dst, -1, gUnknown_83CC34C); + break; + case MENUITEM_BUTTONMODE: + AddTextPrinterParameterized3(1, 2, x, y, dst, -1, gUnknown_83CC354); + break; + case MENUITEM_FRAMETYPE: + StringCopy(str, gUnknown_8419E52); + ConvertIntToDecimalStringN(v8, sOptionsMenu->option[2*selection] + 1, 1, 2); + StringAppendN(str, v8, 3); + AddTextPrinterParameterized3(1, 2, x, y, dst, -1, str); + break; + default: + break; + } + PutWindowTilemap(1); + CopyWindowToVram(1, 3); +} + + +//sub_8088B00 +static void sub_8088B00(u8 taskId) +{ + gFieldCallback = sub_807DF64; + SetMainCallback2(gMain.savedCallback); + FreeAllWindowBuffers(); + + gSaveBlock2Ptr->optionsTextSpeed = sOptionsMenu->option[MENUITEM_TEXTSPEED] & 0x7; + gSaveBlock2Ptr->optionsBattleSceneOff = sOptionsMenu->option[MENUITEM_BATTLESCENE] & 0x1; + gSaveBlock2Ptr->optionsBattleStyle = sOptionsMenu->option[MENUITEM_BATTLESTYLE] & 0x1; + gSaveBlock2Ptr->optionsSound = sOptionsMenu->option[MENUITEM_SOUND] & 0x1; + gSaveBlock2Ptr->optionsButtonMode = sOptionsMenu->option[MENUITEM_BUTTONMODE]; + gSaveBlock2Ptr->optionsWindowFrameType = sOptionsMenu->option[MENUITEM_FRAMETYPE]; + + SetPokemonCryStereo(gSaveBlock2Ptr->optionsSound); + Free(sOptionsMenu); + sOptionsMenu = NULL; + DestroyTask(taskId); +} + + +//sub_8088BD0 +static void sub_8088BD0(void) +{ + FillWindowPixelBuffer(0, 0x11); + AddTextPrinterParameterized(WIN_TEXT_OPTION, 2, gUnknown_8419DCC, 8, 1, TEXT_SPEED_FF, NULL); + PutWindowTilemap(0); + CopyWindowToVram(0, 3); +} + + +//sub_8088C0C +static void sub_8088C0C(void) +{ + FillBgTilemapBufferRect(1, 0x1B3, 1, 2, 1, 1, 3); + FillBgTilemapBufferRect(1, 0x1B4, 2, 2, 0x1B, 1, 3); + FillBgTilemapBufferRect(1, 0x1B5, 0x1C, 2, 1, 1, 3); + FillBgTilemapBufferRect(1, 0x1B6, 1, 3, 1, 2, 3); + FillBgTilemapBufferRect(1, 0x1B8, 1, 0x1C, 1, 2, 3); + FillBgTilemapBufferRect(1, 0x1B9, 1, 5, 1, 1, 3); + FillBgTilemapBufferRect(1, 0x1BA, 2, 5, 0x1B, 1, 3); + FillBgTilemapBufferRect(1, 0x1BB, 0x1C, 5, 1, 1, 3); + FillBgTilemapBufferRect(1, 0x1AA, 1, 6, 1, 1, 2); + FillBgTilemapBufferRect(1, 0x1AB, 2, 6, 0x1A, 1, 2); + FillBgTilemapBufferRect(1, 0x1AC, 0x1C, 6, 1, 1, 2); + FillBgTilemapBufferRect(1, 0x1AD, 1, 7, 1, 0x10, 2); + FillBgTilemapBufferRect(1, 0x1AF, 0x1C, 7, 1, 0x10, 2); + FillBgTilemapBufferRect(1, 0x1B0, 1, 0x13, 1, 1, 2); + FillBgTilemapBufferRect(1, 0x1B1, 2, 0x13, 0x1A, 1, 2); + FillBgTilemapBufferRect(1, 0x1B2, 0x1C, 0x13, 1, 1, 2); + CopyBgTilemapBufferToVram(1); +} + + +//sub_8088D8C +static void sub_8088D8C(void) +{ + int i; + u8 attr; + + FillWindowPixelBuffer(1, 0x11); + + for (i = 0; i < MENUITEM_COUNT; i++) + { + attr = (((GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT))*i) + 2) - i; + AddTextPrinterParameterized(1, 2, gUnknown_83CC314[i], 8, attr, 0xFF, 0); + } +} + + +//sub_8088DE0 +static void sub_8088DE0(u8 selection) +{ + u8 attr; + attr = GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT); + SetGpuReg(0x44, ((selection * (attr - 1) + 58) << 8) | (selection * (attr - 1) + 58 + attr)); + SetGpuReg(0x40, 4320); +} + -- cgit v1.2.3 From 186e17b7ebec8f5abcbcb4a7e06de5c87aa7162c Mon Sep 17 00:00:00 2001 From: Evan Date: Mon, 18 Nov 2019 15:21:22 -0700 Subject: matching up to sub_8088D8C --- src/menu_helpers.c | 2 +- src/option_menu.c | 657 +++++++++++++++++++++++++++++++++++++++-------------- 2 files changed, 488 insertions(+), 171 deletions(-) (limited to 'src') diff --git a/src/menu_helpers.c b/src/menu_helpers.c index 06e7bb08b..027280beb 100644 --- a/src/menu_helpers.c +++ b/src/menu_helpers.c @@ -125,7 +125,7 @@ bool8 MenuHelpers_LinkSomething(void) return FALSE; } -bool8 sub_80BF72C(void) +bool32 sub_80BF72C(void) { if (!MenuHelpers_LinkSomething()) return FALSE; diff --git a/src/option_menu.c b/src/option_menu.c index 57de35f11..c98a2ec7b 100644 --- a/src/option_menu.c +++ b/src/option_menu.c @@ -39,6 +39,65 @@ enum WIN_OPTIONS }; +/* +static const struct WindowTemplate gUnknown_83CC2B8[] = //sOptionMenuWinTemplates +{ + { + .bg = 1, + .tilemapLeft = 2, + .tilemapTop = 3, + .width = 26, + .height = 2, + .paletteNum = 1, + .baseBlock = 2 + }, + { + .bg = 0, + .tilemapLeft = 2, + .tilemapTop =7, + .width = 26, + .height = 12, + .paletteNum = 1, + .baseBlock = 0x36 + }, + DUMMY_WIN_TEMPLATE +}; +static const struct BgTemplate gUnknown_83CC2D8[] = //sOptionMenuBgTemplates +{ + { + .bg = 1, + .charBaseIndex = 1, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 0, + .charBaseIndex = 1, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + } +}; + + +static const u16 gUnknown_83CC304[MENUITEM_COUNT] = {3, 2, 2, 2, 3, 10, 0}; //sOptionsMenuItemCounts +static const u8* gUnknown_83CC314[MENUITEM_COUNT] = //sOptionMenuItemsNames +{ + [MENUITEM_TEXTSPEED] = gText_TextSpeed, + [MENUITEM_BATTLESCENE] = gText_BattleScene, + [MENUITEM_BATTLESTYLE] = gText_BattleStyle, + [MENUITEM_SOUND] = gText_Sound, + [MENUITEM_BUTTONMODE] = gText_ButtonMode, + [MENUITEM_FRAMETYPE] = gText_Frame, + [MENUITEM_CANCEL] = gText_OptionMenuCancel, +}; +*/ + //This file's functions static void sub_808835C(void); static void sub_8088374(void); @@ -57,27 +116,27 @@ static void sub_8088B00(u8 taskId); static void sub_8088BD0(void); static void sub_8088C0C(void); static void sub_8088D8C(void); -static void sub_8088DE0(u8 selection); - -extern const u16 gUnknown_83CC304[]; //sOptionsMenuItemCounts -extern const struct BgTemplate gUnknown_83CC2D8[]; -extern const u8 gUnknown_83CC360[]; -extern const u16 gUnknown_83CC2E4[]; -extern const struct WindowTemplate gUnknown_83CC2B8[]; -extern const u8 gUnknown_83CC363[]; -extern const u8 gUnknown_83CC330[]; -extern const u8 gUnknown_83CC33C[]; -extern const u8 gUnknown_83CC344[]; -extern const u8 gUnknown_83CC34C[]; -extern const u8 gUnknown_83CC354[]; -extern const u8 gUnknown_8419E52[]; -extern const u8 gUnknown_8419DCC[]; +static void sub_8088DE0(u16 selection); + +extern const struct WindowTemplate gUnknown_83CC2B8[3]; +extern const struct BgTemplate gUnknown_83CC2D8[2]; +extern const u16 gUnknown_83CC2E4[0x20]; +extern const u16 gUnknown_83CC304[MENUITEM_COUNT]; //sOptionsMenuItemCounts extern const u8* gUnknown_83CC314[MENUITEM_COUNT]; +extern const u8 gUnknown_83CC330[0xC]; +extern const u8 gUnknown_83CC33C[0x8]; +extern const u8 gUnknown_83CC344[0x8]; +extern const u8 gUnknown_83CC34C[0x8]; +extern const u8 gUnknown_83CC354[0xC]; +extern const u8 gUnknown_83CC360[0x3]; +extern const u8 gUnknown_83CC363[0x3]; +extern const u8 gUnknown_8419DCC[]; +extern const u8 gUnknown_8419E52[]; extern const u8 gUnknown_8419E57[]; struct OptionsMenu { - /*0x00*/ u16 option[7]; + /*0x00*/ u16 option[7]; //0,2,4,6,8,a,c /*0x0E*/ u16 unkE; /*0x10*/ u8 state3; /*0x11*/ u8 state; @@ -110,7 +169,7 @@ static void sub_8088374(void) //sub_8088388 void CB2_OptionsMenuFromStartMenu(void) { - int i; + u8 i; if (gMain.savedCallback == NULL) gMain.savedCallback = CB2_ReturnToStartMenu; @@ -126,10 +185,10 @@ void CB2_OptionsMenuFromStartMenu(void) sOptionsMenu->option[MENUITEM_BUTTONMODE] = gSaveBlock2Ptr->optionsButtonMode; sOptionsMenu->option[MENUITEM_FRAMETYPE] = gSaveBlock2Ptr->optionsWindowFrameType; - for (i = 0; i < MENUITEM_COUNT-2; i++) + for (i = 0; i < MENUITEM_COUNT-1; i++) { - if (sOptionsMenu->option[i] > gUnknown_83CC304[i]-1) - sOptionsMenu->option[i] = 0; + if (sOptionsMenu->option[i] > (gUnknown_83CC304[i])-1) + sOptionsMenu->option[i] = 0; } HelpSystem_SetSomeVariable2(0xD); SetMainCallback2(sub_8088454); @@ -153,55 +212,46 @@ static void sub_8088444(void) //sub_8088454 static void sub_8088454(void) { - int i; - switch (sOptionsMenu->state) + u8 i, state; + state = sOptionsMenu->state; + switch (state) { case 0: sub_8088430(); - sOptionsMenu->state++; break; case 1: sub_8088530(); - sOptionsMenu->state++; break; case 2: sub_80886D4(); - sOptionsMenu->state++; break; case 3: - if (!(sub_80886F0())); + if (sub_80886F0() != TRUE) //silly matching quirk return; - sOptionsMenu->state++; break; case 4: sub_8088BD0(); - sOptionsMenu->state++; break; case 5: sub_8088C0C(); - sOptionsMenu->state++; break; case 6: sub_8088D8C(); - sOptionsMenu->state++; break; case 7: for (i = 0; i < MENUITEM_COUNT; i++) sub_80889A8(i); - sOptionsMenu->state++; break; case 8: sub_8088DE0(sOptionsMenu->unkE); - sOptionsMenu->state++; break; case 9: sub_8088680(); - sOptionsMenu->state++; break; default: sub_8088514(); - return; } + sOptionsMenu->state++; } //sub_8088514 @@ -217,12 +267,12 @@ static void sub_8088530(void) { void * dest = (void *) VRAM; DmaClearLarge16(3, dest, VRAM_SIZE, 0x1000); - + DmaClear32(3, (void *)OAM, OAM_SIZE); DmaClear16(3, (void *)PLTT, PLTT_SIZE); SetGpuReg(REG_OFFSET_DISPCNT, 0); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_83CC2D8, 3); //3 -> ARRAY_COUNT(gUnknown_83CC2D8) + InitBgsFromTemplates(0, gUnknown_83CC2D8, 3); //3 -> ARRAY_COUNT(gUnknown_83CC2D8) ChangeBgX(0, 0, 0); ChangeBgY(0, 0, 0); ChangeBgX(1, 0, 0); @@ -233,10 +283,10 @@ static void sub_8088530(void) ChangeBgY(3, 0, 0); InitWindows(gUnknown_83CC2B8); DeactivateAllTextPrinters(); - SetGpuReg(REG_OFFSET_BLDCNT, 193); + SetGpuReg(REG_OFFSET_BLDCNT, 0xC1); SetGpuReg(REG_OFFSET_BLDY, 2); SetGpuReg(REG_OFFSET_WININ, 1); - SetGpuReg(REG_OFFSET_WINOUT, 27); + SetGpuReg(REG_OFFSET_WINOUT, 0x27); SetGpuReg(0, 0x3040); ShowBg(0); ShowBg(1); @@ -248,7 +298,7 @@ static void sub_8088680(void) { s32 x; x = 0xE4 - GetStringWidth(0, gUnknown_8419E57, 0); - FillWindowPixelBuffer(WIN_OPTIONS, 0xFF); + FillWindowPixelBuffer(2, 0xFF); AddTextPrinterParameterized3(2, 0, x, 0, gUnknown_83CC360, 0, gUnknown_8419E57); PutWindowTilemap(2); CopyWindowToVram(2, 3); @@ -271,10 +321,10 @@ static bool8 sub_80886F0(void) switch (sOptionsMenu->state2) { case 0: - LoadBgTiles(1, GetUserFrameGraphicsInfo(sOptionsMenu->option[6])->tiles, 0x120, 0x1AA); + LoadBgTiles(1, GetUserFrameGraphicsInfo(sOptionsMenu->option[MENUITEM_FRAMETYPE])->tiles, 0x120, 0x1AA); break; case 1: - LoadPalette(GetUserFrameGraphicsInfo(sOptionsMenu->option[6])->palette, 0x20, 0x20); + LoadPalette(GetUserFrameGraphicsInfo(sOptionsMenu->option[MENUITEM_FRAMETYPE])->palette, 0x20, 0x20); break; case 2: LoadPalette(gUnknown_83CC2E4, 0x10, 0x20); @@ -291,72 +341,228 @@ static bool8 sub_80886F0(void) } -//sub_8088780 + +// I could not get this function to match. GOTO statements weren't even compiling correctly. +#ifdef NONMATCHING static void sub_8088780(u8 taskId) { + u8 v2, v5; + struct OptionsMenu v4; + switch (sOptionsMenu->state3) { case 0: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); sub_8088444(); sOptionsMenu->state3++; break; case 2: - if (sub_80BF72C) + if (sub_80BF72C() == TRUE) return; switch (sub_80888C0()) { - case 0: - return; case 1: sOptionsMenu->state3++; break; case 2: - LoadBgTiles(1, GetUserFrameGraphicsInfo(sOptionsMenu->option[6])->tiles, 0x120, 0x1AA); - LoadPalette(GetUserFrameGraphicsInfo(sOptionsMenu->option[6])->palette, 0x20, 0x20); + LoadBgTiles(1, GetUserFrameGraphicsInfo(sOptionsMenu->option[MENUITEM_FRAMETYPE])->tiles, 0x120, 0x1AA); + LoadPalette(GetUserFrameGraphicsInfo(sOptionsMenu->option[MENUITEM_FRAMETYPE])->palette, 0x20, 0x20); sub_80889A8(sOptionsMenu->unkE); - return; + sOptionsMenu->state3++; + break; case 3: sub_8088DE0(sOptionsMenu->unkE); - return; + break; case 4: sub_80889A8(sOptionsMenu->unkE); - return; + sOptionsMenu->state3++; + break; default: return; } case 3: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); sOptionsMenu->state3++; - break; case 1: case 4: if (gPaletteFade.active) return; sOptionsMenu->state3++; - return; case 5: sub_8088B00(taskId); - return; + break; default: return; } } - - +#else +NAKED +static void sub_8088780(u8 taskId) +{ + asm_unified("\tpush {r4,lr}\n" + "\tsub sp, 0x4\n" + "\tlsls r0, 24\n" + "\tlsrs r2, r0, 24\n" + "\tldr r1, _080887A0 @ =sOptionsMenu\n" + "\tldr r0, [r1]\n" + "\tldrb r0, [r0, 0x10]\n" + "\tadds r3, r1, 0\n" + "\tcmp r0, 0x5\n" + "\tbls _08088796\n" + "\tb _080888B6\n" + "_08088796:\n" + "\tlsls r0, 2\n" + "\tldr r1, _080887A4 @ =_080887A8\n" + "\tadds r0, r1\n" + "\tldr r0, [r0]\n" + "\tmov pc, r0\n" + "\t.align 2, 0\n" + "_080887A0: .4byte sOptionsMenu\n" + "_080887A4: .4byte _080887A8\n" + "\t.align 2, 0\n" + "_080887A8:\n" + "\t.4byte _080887C0\n" + "\t.4byte _08088894\n" + "\t.4byte _080887E0\n" + "\t.4byte _08088878\n" + "\t.4byte _08088894\n" + "\t.4byte _080888B0\n" + "_080887C0:\n" + "\tmovs r0, 0x1\n" + "\tnegs r0, r0\n" + "\tmovs r1, 0\n" + "\tstr r1, [sp]\n" + "\tmovs r2, 0x10\n" + "\tmovs r3, 0\n" + "\tbl BeginNormalPaletteFade\n" + "\tbl sub_8088444\n" + "\tldr r0, _080887DC @ =sOptionsMenu\n" + "\tldr r1, [r0]\n" + "\tb _080888A2\n" + "\t.align 2, 0\n" + "_080887DC: .4byte sOptionsMenu\n" + "_080887E0:\n" + "\tbl sub_80BF72C\n" + "\tcmp r0, 0x1\n" + "\tbeq _080888B6\n" + "\tbl sub_80888C0\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tcmp r0, 0x4\n" + "\tbhi _080888B6\n" + "\tlsls r0, 2\n" + "\tldr r1, _08088800 @ =_08088804\n" + "\tadds r0, r1\n" + "\tldr r0, [r0]\n" + "\tmov pc, r0\n" + "\t.align 2, 0\n" + "_08088800: .4byte _08088804\n" + "\t.align 2, 0\n" + "_08088804:\n" + "\t.4byte _080888B6\n" + "\t.4byte _08088818\n" + "\t.4byte _08088824\n" + "\t.4byte _08088858\n" + "\t.4byte _08088868\n" + "_08088818:\n" + "\tldr r0, _08088820 @ =sOptionsMenu\n" + "\tldr r1, [r0]\n" + "\tb _080888A2\n" + "\t.align 2, 0\n" + "_08088820: .4byte sOptionsMenu\n" + "_08088824:\n" + "\tldr r4, _08088854 @ =sOptionsMenu\n" + "\tldr r0, [r4]\n" + "\tldrb r0, [r0, 0xA]\n" + "\tbl GetUserFrameGraphicsInfo\n" + "\tldr r1, [r0]\n" + "\tmovs r2, 0x90\n" + "\tlsls r2, 1\n" + "\tmovs r3, 0xD5\n" + "\tlsls r3, 1\n" + "\tmovs r0, 0x1\n" + "\tbl LoadBgTiles\n" + "\tldr r0, [r4]\n" + "\tldrb r0, [r0, 0xA]\n" + "\tbl GetUserFrameGraphicsInfo\n" + "\tldr r0, [r0, 0x4]\n" + "\tmovs r1, 0x20\n" + "\tmovs r2, 0x20\n" + "\tbl LoadPalette\n" + "\tldr r0, [r4]\n" + "\tb _0808886C\n" + "\t.align 2, 0\n" + "_08088854: .4byte sOptionsMenu\n" + "_08088858:\n" + "\tldr r0, _08088864 @ =sOptionsMenu\n" + "\tldr r0, [r0]\n" + "\tldrh r0, [r0, 0xE]\n" + "\tbl sub_8088DE0\n" + "\tb _080888B6\n" + "\t.align 2, 0\n" + "_08088864: .4byte sOptionsMenu\n" + "_08088868:\n" + "\tldr r0, _08088874 @ =sOptionsMenu\n" + "\tldr r0, [r0]\n" + "_0808886C:\n" + "\tldrb r0, [r0, 0xE]\n" + "\tbl sub_80889A8\n" + "\tb _080888B6\n" + "\t.align 2, 0\n" + "_08088874: .4byte sOptionsMenu\n" + "_08088878:\n" + "\tmovs r0, 0x1\n" + "\tnegs r0, r0\n" + "\tmovs r1, 0\n" + "\tstr r1, [sp]\n" + "\tmovs r2, 0\n" + "\tmovs r3, 0x10\n" + "\tbl BeginNormalPaletteFade\n" + "\tldr r0, _08088890 @ =sOptionsMenu\n" + "\tldr r1, [r0]\n" + "\tb _080888A2\n" + "\t.align 2, 0\n" + "_08088890: .4byte sOptionsMenu\n" + "_08088894:\n" + "\tldr r0, _080888AC @ =gPaletteFade\n" + "\tldrb r1, [r0, 0x7]\n" + "\tmovs r0, 0x80\n" + "\tands r0, r1\n" + "\tcmp r0, 0\n" + "\tbne _080888B6\n" + "\tldr r1, [r3]\n" + "_080888A2:\n" + "\tldrb r0, [r1, 0x10]\n" + "\tadds r0, 0x1\n" + "\tstrb r0, [r1, 0x10]\n" + "\tb _080888B6\n" + "\t.align 2, 0\n" + "_080888AC: .4byte gPaletteFade\n" + "_080888B0:\n" + "\tadds r0, r2, 0\n" + "\tbl sub_8088B00\n" + "_080888B6:\n" + "\tadd sp, 0x4\n" + "\tpop {r4}\n" + "\tpop {r0}\n" + "\tbx r0\n"); +} +#endif + + + //OptionsMenu_ProcessInput static u8 sub_80888C0(void) { - u16 current, selection; + u16 current; + u16* curr; if (gMain.newAndRepeatedKeys & DPAD_RIGHT) { - selection = 2 * sOptionsMenu->unkE; - current = sOptionsMenu->option[selection]; - - if (current == gUnknown_83CC304[selection] - 1) - sOptionsMenu->option[selection] = 0; + current = sOptionsMenu->option[(sOptionsMenu->unkE)]; + if (current == (gUnknown_83CC304[sOptionsMenu->unkE] - 1)) + sOptionsMenu->option[sOptionsMenu->unkE] = 0; else - sOptionsMenu->option[selection] = current + 1; + sOptionsMenu->option[sOptionsMenu->unkE] = current + 1; if (sOptionsMenu->unkE == MENUITEM_FRAMETYPE) return 2; else @@ -364,12 +570,12 @@ static u8 sub_80888C0(void) } else if (gMain.newAndRepeatedKeys & DPAD_LEFT) { - selection = 2*sOptionsMenu->unkE; - current = sOptionsMenu->option[selection]; - if (current == 0) - sOptionsMenu->option[selection] = gUnknown_83CC304[selection] - 1; + curr = &sOptionsMenu->option[sOptionsMenu->unkE]; + if (*curr == 0) + *curr = gUnknown_83CC304[sOptionsMenu->unkE] - 1; else - sOptionsMenu->option[selection] = current - 1; + --*(curr); + if (sOptionsMenu->unkE == MENUITEM_FRAMETYPE) return 2; else @@ -377,20 +583,18 @@ static u8 sub_80888C0(void) } else if (gMain.newAndRepeatedKeys & DPAD_UP) { - selection = sOptionsMenu->unkE; - if (selection == MENUITEM_TEXTSPEED) + if (sOptionsMenu->unkE == MENUITEM_TEXTSPEED) sOptionsMenu->unkE = MENUITEM_CANCEL; else - sOptionsMenu->unkE = selection - 1; + sOptionsMenu->unkE = sOptionsMenu->unkE - 1; return 3; } else if (gMain.newAndRepeatedKeys & DPAD_DOWN) { - selection = sOptionsMenu->unkE; - if (selection == MENUITEM_CANCEL) + if (sOptionsMenu->unkE == MENUITEM_CANCEL) sOptionsMenu->unkE = MENUITEM_TEXTSPEED; else - sOptionsMenu->unkE = selection + 1; + sOptionsMenu->unkE = sOptionsMenu->unkE + 1; return 3; } else if ((gMain.newKeys & B_BUTTON) || (gMain.newKeys & A_BUTTON)) @@ -403,85 +607,22 @@ static u8 sub_80888C0(void) } } -/* -// must match with goto :( -bool sub_80888C0() -{ - int v0; // r0@2 - _WORD *v1; // r3@2 - int v2; // r4@2 - __int16 v3; // r0@3 - int v4; // r3@8 - __int16 v5; // r0@8 - int v7; // r1@14 - signed __int16 v8; // r0@15 - int v9; // r0@18 - - if (gMain.buttons4_new_and_keyrepeat & DPAD_RIGHT) - { - v0 = 2 * *(_WORD *)(sOptionsMenu + 14); - v1 = (_WORD *)(sOptionsMenu + v0); - v2 = *(_WORD *)(sOptionsMenu + v0); - if ( v2 == *(_WORD *)((char *)&sOptionsMenuItemCounts + v0) - 1 ) - v3 = 0; - else - v3 = v2 + 1; - *v1 = v3; - if ( *(_WORD *)(sOptionsMenu + 14) != 5 ) - return 4; - return 2; - } - if ( gMain.buttons4_new_and_keyrepeat & DPAD_LEFT ) - { - v4 = 2 * *(_WORD *)(sOptionsMenu + 14); - v5 = *(_WORD *)(sOptionsMenu + v4); - if ( !*(_WORD *)(sOptionsMenu + v4) ) - v5 = *(_WORD *)((char *)&sOptionsMenuItemCounts + v4); - *(_WORD *)(sOptionsMenu + v4) = v5 - 1; - if ( *(_WORD *)(sOptionsMenu + 14) != 5 ) - return 4; - return 2; - } - if ( gMain.buttons4_new_and_keyrepeat & 0x40 ) - { - v7 = sOptionsMenu; - if ( *(_WORD *)(sOptionsMenu + 14) ) - v8 = *(_WORD *)(sOptionsMenu + 14) - 1; - else - v8 = 6; - goto LABEL_21; - } - if ( gMain.buttons4_new_and_keyrepeat & 0x80 ) - { - v7 = sOptionsMenu; - v9 = *(_WORD *)(sOptionsMenu + 14); - if ( v9 == 6 ) - { - *(_WORD *)(sOptionsMenu + 14) = 0; - return 3; - } - v8 = v9 + 1; -LABEL_21: - *(_WORD *)(v7 + 14) = v8; - return 3; - } - return gMain.buttons3_new_remapped & 2 || gMain.buttons3_new_remapped & 1; -} -*/ - //sub_80889A8 +#ifdef NONMATCHING // could not get it to match perfectly, no idea how they put so many vars on the stack static void sub_80889A8(u8 selection) { u8* dst; u8* str; - u8* v8; + u8* v8; u8 x, y; + u8** col; - x = 0x82; - memcpy(dst, gUnknown_83CC363, 3); + memcpy(&dst, gUnknown_83CC363, 3); y = ((GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT) - 1) * selection) + 2; + x = 0x82; FillWindowPixelRect(1, 1, x, y, 0x46, GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT)); + switch (selection) { case MENUITEM_TEXTSPEED: @@ -501,7 +642,7 @@ static void sub_80889A8(u8 selection) break; case MENUITEM_FRAMETYPE: StringCopy(str, gUnknown_8419E52); - ConvertIntToDecimalStringN(v8, sOptionsMenu->option[2*selection] + 1, 1, 2); + ConvertIntToDecimalStringN(v8, sOptionsMenu->option[2*selection] + 1, 1, 2); StringAppendN(str, v8, 3); AddTextPrinterParameterized3(1, 2, x, y, dst, -1, str); break; @@ -511,6 +652,173 @@ static void sub_80889A8(u8 selection) PutWindowTilemap(1); CopyWindowToVram(1, 3); } +#else +NAKED +static void sub_80889A8(u8 selection) +{ + asm_unified("\tpush {r4-r7,lr}\n" + "\tmov r7, r8\n" + "\tpush {r7}\n" + "\tsub sp, 0x30\n" + "\tlsls r0, 24\n" + "\tlsrs r5, r0, 24\n" + "\tadd r4, sp, 0x2C\n" + "\tldr r1, _08088A08 @ =gUnknown_83CC363\n" + "\tadds r0, r4, 0\n" + "\tmovs r2, 0x3\n" + "\tbl memcpy\n" + "\tmovs r0, 0x82\n" + "\tmov r8, r0\n" + "\tmovs r0, 0x2\n" + "\tmovs r1, 0x1\n" + "\tbl GetFontAttribute\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tsubs r0, 0x1\n" + "\tmuls r0, r5\n" + "\tadds r0, 0x2\n" + "\tlsls r0, 24\n" + "\tlsrs r7, r0, 24\n" + "\tmovs r0, 0x2\n" + "\tmovs r1, 0x1\n" + "\tbl GetFontAttribute\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tmovs r1, 0x46\n" + "\tstr r1, [sp]\n" + "\tstr r0, [sp, 0x4]\n" + "\tmovs r0, 0x1\n" + "\tmovs r1, 0x1\n" + "\tmovs r2, 0x82\n" + "\tadds r3, r7, 0\n" + "\tbl FillWindowPixelRect\n" + "\tadds r6, r4, 0\n" + "\tcmp r5, 0x5\n" + "\tbhi _08088ADE\n" + "\tlsls r0, r5, 2\n" + "\tldr r1, _08088A0C @ =_08088A10\n" + "\tadds r0, r1\n" + "\tldr r0, [r0]\n" + "\tmov pc, r0\n" + "\t.align 2, 0\n" + "_08088A08: .4byte gUnknown_83CC363\n" + "_08088A0C: .4byte _08088A10\n" + "\t.align 2, 0\n" + "_08088A10:\n" + "\t.4byte _08088A28\n" + "\t.4byte _08088A38\n" + "\t.4byte _08088A48\n" + "\t.4byte _08088A58\n" + "\t.4byte _08088A68\n" + "\t.4byte _08088A9C\n" + "_08088A28:\n" + "\tstr r6, [sp]\n" + "\tmovs r0, 0x1\n" + "\tnegs r0, r0\n" + "\tstr r0, [sp, 0x4]\n" + "\tldr r2, _08088A34 @ =gUnknown_83CC330\n" + "\tb _08088A72\n" + "\t.align 2, 0\n" + "_08088A34: .4byte gUnknown_83CC330\n" + "_08088A38:\n" + "\tstr r6, [sp]\n" + "\tmovs r0, 0x1\n" + "\tnegs r0, r0\n" + "\tstr r0, [sp, 0x4]\n" + "\tldr r2, _08088A44 @ =gUnknown_83CC33C\n" + "\tb _08088A72\n" + "\t.align 2, 0\n" + "_08088A44: .4byte gUnknown_83CC33C\n" + "_08088A48:\n" + "\tstr r6, [sp]\n" + "\tmovs r0, 0x1\n" + "\tnegs r0, r0\n" + "\tstr r0, [sp, 0x4]\n" + "\tldr r2, _08088A54 @ =gUnknown_83CC344\n" + "\tb _08088A72\n" + "\t.align 2, 0\n" + "_08088A54: .4byte gUnknown_83CC344\n" + "_08088A58:\n" + "\tstr r6, [sp]\n" + "\tmovs r0, 0x1\n" + "\tnegs r0, r0\n" + "\tstr r0, [sp, 0x4]\n" + "\tldr r2, _08088A64 @ =gUnknown_83CC34C\n" + "\tb _08088A72\n" + "\t.align 2, 0\n" + "_08088A64: .4byte gUnknown_83CC34C\n" + "_08088A68:\n" + "\tstr r6, [sp]\n" + "\tmovs r0, 0x1\n" + "\tnegs r0, r0\n" + "\tstr r0, [sp, 0x4]\n" + "\tldr r2, _08088A94 @ =gUnknown_83CC354\n" + "_08088A72:\n" + "\tldr r0, _08088A98 @ =sOptionsMenu\n" + "\tldr r0, [r0]\n" + "\tlsls r1, r5, 1\n" + "\tadds r0, r1\n" + "\tldrh r0, [r0]\n" + "\tlsls r0, 2\n" + "\tadds r0, r2\n" + "\tldr r0, [r0]\n" + "\tstr r0, [sp, 0x8]\n" + "\tmovs r0, 0x1\n" + "\tmovs r1, 0x2\n" + "\tmov r2, r8\n" + "\tadds r3, r7, 0\n" + "\tbl AddTextPrinterParameterized3\n" + "\tb _08088ADE\n" + "\t.align 2, 0\n" + "_08088A94: .4byte gUnknown_83CC354\n" + "_08088A98: .4byte sOptionsMenu\n" + "_08088A9C:\n" + "\tldr r1, _08088AF8 @ =gUnknown_8419E52\n" + "\tadd r0, sp, 0xC\n" + "\tbl StringCopy\n" + "\tadd r4, sp, 0x20\n" + "\tldr r0, _08088AFC @ =sOptionsMenu\n" + "\tldr r0, [r0]\n" + "\tlsls r1, r5, 1\n" + "\tadds r0, r1\n" + "\tldrh r1, [r0]\n" + "\tadds r1, 0x1\n" + "\tadds r0, r4, 0\n" + "\tmovs r2, 0x1\n" + "\tmovs r3, 0x2\n" + "\tbl ConvertIntToDecimalStringN\n" + "\tadd r0, sp, 0xC\n" + "\tadds r1, r4, 0\n" + "\tmovs r2, 0x3\n" + "\tbl StringAppendN\n" + "\tstr r6, [sp]\n" + "\tmovs r0, 0x1\n" + "\tnegs r0, r0\n" + "\tstr r0, [sp, 0x4]\n" + "\tadd r0, sp, 0xC\n" + "\tstr r0, [sp, 0x8]\n" + "\tmovs r0, 0x1\n" + "\tmovs r1, 0x2\n" + "\tmov r2, r8\n" + "\tadds r3, r7, 0\n" + "\tbl AddTextPrinterParameterized3\n" + "_08088ADE:\n" + "\tmovs r0, 0x1\n" + "\tbl PutWindowTilemap\n" + "\tmovs r0, 0x1\n" + "\tmovs r1, 0x3\n" + "\tbl CopyWindowToVram\n" + "\tadd sp, 0x30\n" + "\tpop {r3}\n" + "\tmov r8, r3\n" + "\tpop {r4-r7}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" + "_08088AF8: .4byte gUnknown_8419E52\n" + "_08088AFC: .4byte sOptionsMenu\n"); +} +#endif //sub_8088B00 @@ -520,20 +828,20 @@ static void sub_8088B00(u8 taskId) SetMainCallback2(gMain.savedCallback); FreeAllWindowBuffers(); - gSaveBlock2Ptr->optionsTextSpeed = sOptionsMenu->option[MENUITEM_TEXTSPEED] & 0x7; - gSaveBlock2Ptr->optionsBattleSceneOff = sOptionsMenu->option[MENUITEM_BATTLESCENE] & 0x1; - gSaveBlock2Ptr->optionsBattleStyle = sOptionsMenu->option[MENUITEM_BATTLESTYLE] & 0x1; - gSaveBlock2Ptr->optionsSound = sOptionsMenu->option[MENUITEM_SOUND] & 0x1; - gSaveBlock2Ptr->optionsButtonMode = sOptionsMenu->option[MENUITEM_BUTTONMODE]; - gSaveBlock2Ptr->optionsWindowFrameType = sOptionsMenu->option[MENUITEM_FRAMETYPE]; - + gSaveBlock2Ptr->optionsTextSpeed = (u8) sOptionsMenu->option[MENUITEM_TEXTSPEED]; + gSaveBlock2Ptr->optionsBattleSceneOff = (u8) sOptionsMenu->option[MENUITEM_BATTLESCENE]; + gSaveBlock2Ptr->optionsBattleStyle = (u8) sOptionsMenu->option[MENUITEM_BATTLESTYLE]; + gSaveBlock2Ptr->optionsSound = sOptionsMenu->option[MENUITEM_SOUND]; + gSaveBlock2Ptr->optionsButtonMode = (u8) sOptionsMenu->option[MENUITEM_BUTTONMODE]; + gSaveBlock2Ptr->optionsWindowFrameType = (u8) sOptionsMenu->option[MENUITEM_FRAMETYPE]; SetPokemonCryStereo(gSaveBlock2Ptr->optionsSound); - Free(sOptionsMenu); + Free(sOptionsMenu); sOptionsMenu = NULL; - DestroyTask(taskId); + DestroyTask(taskId); } - + + //sub_8088BD0 static void sub_8088BD0(void) { @@ -545,24 +853,28 @@ static void sub_8088BD0(void) //sub_8088C0C +//double check static void sub_8088C0C(void) { + u8 h; + h = 2; + FillBgTilemapBufferRect(1, 0x1B3, 1, 2, 1, 1, 3); FillBgTilemapBufferRect(1, 0x1B4, 2, 2, 0x1B, 1, 3); FillBgTilemapBufferRect(1, 0x1B5, 0x1C, 2, 1, 1, 3); - FillBgTilemapBufferRect(1, 0x1B6, 1, 3, 1, 2, 3); - FillBgTilemapBufferRect(1, 0x1B8, 1, 0x1C, 1, 2, 3); - FillBgTilemapBufferRect(1, 0x1B9, 1, 5, 1, 1, 3); + FillBgTilemapBufferRect(1, 0x1B6, 1, 3, 1, h, 3); + FillBgTilemapBufferRect(1, 0x1B8, 1, 0x1C, 1, h, 3); + FillBgTilemapBufferRect(1, 0x1B9, 1, 5, 1, 1, 3); FillBgTilemapBufferRect(1, 0x1BA, 2, 5, 0x1B, 1, 3); FillBgTilemapBufferRect(1, 0x1BB, 0x1C, 5, 1, 1, 3); - FillBgTilemapBufferRect(1, 0x1AA, 1, 6, 1, 1, 2); - FillBgTilemapBufferRect(1, 0x1AB, 2, 6, 0x1A, 1, 2); - FillBgTilemapBufferRect(1, 0x1AC, 0x1C, 6, 1, 1, 2); - FillBgTilemapBufferRect(1, 0x1AD, 1, 7, 1, 0x10, 2); - FillBgTilemapBufferRect(1, 0x1AF, 0x1C, 7, 1, 0x10, 2); - FillBgTilemapBufferRect(1, 0x1B0, 1, 0x13, 1, 1, 2); - FillBgTilemapBufferRect(1, 0x1B1, 2, 0x13, 0x1A, 1, 2); - FillBgTilemapBufferRect(1, 0x1B2, 0x1C, 0x13, 1, 1, 2); + FillBgTilemapBufferRect(1, 0x1AA, 1, 6, 1, 1, h); + FillBgTilemapBufferRect(1, 0x1AB, 2, 6, 0x1A, 1, h); + FillBgTilemapBufferRect(1, 0x1AC, 0x1C, 6, 1, 1, h); + FillBgTilemapBufferRect(1, 0x1AD, 1, 7, 1, 0x10, h); + FillBgTilemapBufferRect(1, 0x1AF, 0x1C, 7, 1, 0x10, h); + FillBgTilemapBufferRect(1, 0x1B0, 1, 0x13, 1, 1, h); + FillBgTilemapBufferRect(1, 0x1B1, 2, 0x13, 0x1A, 1, h); + FillBgTilemapBufferRect(1, 0x1B2, 0x1C, 0x13, 1, 1, h); CopyBgTilemapBufferToVram(1); } @@ -571,20 +883,25 @@ static void sub_8088C0C(void) static void sub_8088D8C(void) { int i; - u8 attr; + u8 y; FillWindowPixelBuffer(1, 0x11); for (i = 0; i < MENUITEM_COUNT; i++) { - attr = (((GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT))*i) + 2) - i; - AddTextPrinterParameterized(1, 2, gUnknown_83CC314[i], 8, attr, 0xFF, 0); + //AddTextPrinterParameterized(1, 2, gUnknown_83CC314[i], 8, (u8) ((i*(GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT))) + 2) - i, 0xFF, 0); + //gets registers right, but an lsl/lsr 0x18 after GetFontAttribute that shouldn't be there + y = i*(GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT)); + y += 2; + y -= i; + AddTextPrinterParameterized(1, 2, gUnknown_83CC314[i], 8, y, 0xFF, 0); + } } //sub_8088DE0 -static void sub_8088DE0(u8 selection) +static void sub_8088DE0(u16 selection) { u8 attr; attr = GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT); -- cgit v1.2.3 From 6fb437f9eb64e0df62a8b8ad7f28bfd92a2a986f Mon Sep 17 00:00:00 2001 From: Evan Date: Mon, 18 Nov 2019 21:03:51 -0700 Subject: matching rom --- src/menu_helpers.c | 2 +- src/option_menu.c | 130 ++++++++++++++++++++++++++++------------------------- 2 files changed, 71 insertions(+), 61 deletions(-) (limited to 'src') diff --git a/src/menu_helpers.c b/src/menu_helpers.c index 027280beb..06e7bb08b 100644 --- a/src/menu_helpers.c +++ b/src/menu_helpers.c @@ -125,7 +125,7 @@ bool8 MenuHelpers_LinkSomething(void) return FALSE; } -bool32 sub_80BF72C(void) +bool8 sub_80BF72C(void) { if (!MenuHelpers_LinkSomething()) return FALSE; diff --git a/src/option_menu.c b/src/option_menu.c index c98a2ec7b..c1cde37a6 100644 --- a/src/option_menu.c +++ b/src/option_menu.c @@ -36,11 +36,10 @@ enum enum { WIN_TEXT_OPTION, - WIN_OPTIONS + WIN_OPTIONS, }; - /* -static const struct WindowTemplate gUnknown_83CC2B8[] = //sOptionMenuWinTemplates +static const struct WindowTemplate gUnknown_83CC2B8[] = //3CC2B8 -> sOptionMenuWinTemplates { { .bg = 1, @@ -49,20 +48,29 @@ static const struct WindowTemplate gUnknown_83CC2B8[] = //sOptionMenuWinTempl .width = 26, .height = 2, .paletteNum = 1, - .baseBlock = 2 + .baseBlock = 2, }, { .bg = 0, .tilemapLeft = 2, - .tilemapTop =7, + .tilemapTop = 7, .width = 26, .height = 12, .paletteNum = 1, - .baseBlock = 0x36 + .baseBlock = 0x36, }, - DUMMY_WIN_TEMPLATE + { + .bg = 2, + .tilemapLeft = 0, + .tilemapTop = 0, + .width = 30, + .height = 2, + .paletteNum = 0xF, + .baseBlock = 0x16e, + }, + DUMMY_WIN_TEMPLATE, }; -static const struct BgTemplate gUnknown_83CC2D8[] = //sOptionMenuBgTemplates +static const struct BgTemplate gUnknown_83CC2D8[] = //3CC2D8 -> sOptionMenuBgTemplates { { .bg = 1, @@ -81,12 +89,20 @@ static const struct BgTemplate gUnknown_83CC2D8[] = //sOptionMenuBgTemplates .paletteMode = 0, .priority = 1, .baseTile = 0 - } + }, + { + .bg = 2, + .charBaseIndex = 1, + .mapBaseIndex = 29, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0, + }, }; - - -static const u16 gUnknown_83CC304[MENUITEM_COUNT] = {3, 2, 2, 2, 3, 10, 0}; //sOptionsMenuItemCounts -static const u8* gUnknown_83CC314[MENUITEM_COUNT] = //sOptionMenuItemsNames +static const u16 gUnknown_83CC2E4[] = INCBIN_U16("graphics/misc/unk_83cc2e4.gbapal"); //3CC2E4 +static const u16 gUnknown_83CC304[MENUITEM_COUNT] = {3, 2, 2, 2, 3, 10, 0}; //3CC304 -> sOptionsMenuItemCounts +static const u8* gUnknown_83CC314[MENUITEM_COUNT] = //3CC314 -> sOptionMenuItemsNames { [MENUITEM_TEXTSPEED] = gText_TextSpeed, [MENUITEM_BATTLESCENE] = gText_BattleScene, @@ -96,8 +112,28 @@ static const u8* gUnknown_83CC314[MENUITEM_COUNT] = //sOptionMenuItemsNames [MENUITEM_FRAMETYPE] = gText_Frame, [MENUITEM_CANCEL] = gText_OptionMenuCancel, }; +static const u8* gUnknown_83CC330[] = {gText_TextSpeedSlow, gText_TextSpeedMid, gText_TextSpeedFast}; //3CC330 +static const u8* gUnknown_83CC33C[] = {gText_BattleSceneOn, gText_BattleSceneOff}; //3CC33C +static const u8* gUnknown_83CC344[] = {gText_BattleStyleShift, gText_BattleStyleSet}; //3CC344 +static const u8* gUnknown_83CC34C[] = {gText_SoundMono, gText_SoundStereo}; //3CC34C +static const u8* gUnknown_83CC354[] = {gText_ButtonTypeNormal, gText_ButtonTypeLR, gText_ButtonTypeLEqualsA}; //3CC354 +static const u8 gUnknown_83CC360[] = {0xF, 0x1, 0x2}; //3CC360 +static const u8 gUnknown_83CC363[] = {0, 5, 4, 0, 0}; //3CC363 */ +extern const struct WindowTemplate gUnknown_83CC2B8[3]; +extern const struct BgTemplate gUnknown_83CC2D8[3]; +extern const u16 gUnknown_83CC2E4[0x20]; +extern const u16 gUnknown_83CC304[MENUITEM_COUNT]; +extern const u8* gUnknown_83CC314[MENUITEM_COUNT]; +extern const u8* gUnknown_83CC330[12]; +extern const u8* gUnknown_83CC33C[8]; +extern const u8* gUnknown_83CC344[8]; +extern const u8* gUnknown_83CC34C[8]; +extern const u8* gUnknown_83CC354[12]; +extern const u8 gUnknown_83CC360[3]; +extern const u8 gUnknown_83CC363[3]; + //This file's functions static void sub_808835C(void); static void sub_8088374(void); @@ -118,25 +154,9 @@ static void sub_8088C0C(void); static void sub_8088D8C(void); static void sub_8088DE0(u16 selection); -extern const struct WindowTemplate gUnknown_83CC2B8[3]; -extern const struct BgTemplate gUnknown_83CC2D8[2]; -extern const u16 gUnknown_83CC2E4[0x20]; -extern const u16 gUnknown_83CC304[MENUITEM_COUNT]; //sOptionsMenuItemCounts -extern const u8* gUnknown_83CC314[MENUITEM_COUNT]; -extern const u8 gUnknown_83CC330[0xC]; -extern const u8 gUnknown_83CC33C[0x8]; -extern const u8 gUnknown_83CC344[0x8]; -extern const u8 gUnknown_83CC34C[0x8]; -extern const u8 gUnknown_83CC354[0xC]; -extern const u8 gUnknown_83CC360[0x3]; -extern const u8 gUnknown_83CC363[0x3]; -extern const u8 gUnknown_8419DCC[]; -extern const u8 gUnknown_8419E52[]; -extern const u8 gUnknown_8419E57[]; - struct OptionsMenu { - /*0x00*/ u16 option[7]; //0,2,4,6,8,a,c + /*0x00*/ u16 option[MENUITEM_COUNT]; //0,2,4,6,8,a,c /*0x0E*/ u16 unkE; /*0x10*/ u8 state3; /*0x11*/ u8 state; @@ -147,6 +167,7 @@ struct OptionsMenu EWRAM_DATA struct OptionsMenu *sOptionsMenu = {0}; + //CB2_InitOptionsMenu static void sub_808835C(void) { @@ -272,7 +293,7 @@ static void sub_8088530(void) DmaClear16(3, (void *)PLTT, PLTT_SIZE); SetGpuReg(REG_OFFSET_DISPCNT, 0); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_83CC2D8, 3); //3 -> ARRAY_COUNT(gUnknown_83CC2D8) + InitBgsFromTemplates(0, gUnknown_83CC2D8, ARRAY_COUNT(gUnknown_83CC2D8)); ChangeBgX(0, 0, 0); ChangeBgY(0, 0, 0); ChangeBgX(1, 0, 0); @@ -297,9 +318,9 @@ static void sub_8088530(void) static void sub_8088680(void) { s32 x; - x = 0xE4 - GetStringWidth(0, gUnknown_8419E57, 0); + x = 0xE4 - GetStringWidth(0, gText_PickSwitchCancel, 0); FillWindowPixelBuffer(2, 0xFF); - AddTextPrinterParameterized3(2, 0, x, 0, gUnknown_83CC360, 0, gUnknown_8419E57); + AddTextPrinterParameterized3(2, 0, x, 0, gUnknown_83CC360, 0, gText_PickSwitchCancel); PutWindowTilemap(2); CopyWindowToVram(2, 3); } @@ -357,7 +378,7 @@ static void sub_8088780(u8 taskId) sOptionsMenu->state3++; break; case 2: - if (sub_80BF72C() == TRUE) + if ((bool32) sub_80BF72C() == TRUE) //cast to bool32 to remove the lsl/lsr 0x18 after func call return; switch (sub_80888C0()) { @@ -547,10 +568,8 @@ static void sub_8088780(u8 taskId) "\tpop {r0}\n" "\tbx r0\n"); } -#endif - - - +#endif + //OptionsMenu_ProcessInput static u8 sub_80888C0(void) { @@ -616,7 +635,6 @@ static void sub_80889A8(u8 selection) u8* str; u8* v8; u8 x, y; - u8** col; memcpy(&dst, gUnknown_83CC363, 3); y = ((GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT) - 1) * selection) + 2; @@ -641,7 +659,7 @@ static void sub_80889A8(u8 selection) AddTextPrinterParameterized3(1, 2, x, y, dst, -1, gUnknown_83CC354); break; case MENUITEM_FRAMETYPE: - StringCopy(str, gUnknown_8419E52); + StringCopy(str, gText_FrameType); ConvertIntToDecimalStringN(v8, sOptionsMenu->option[2*selection] + 1, 1, 2); StringAppendN(str, v8, 3); AddTextPrinterParameterized3(1, 2, x, y, dst, -1, str); @@ -773,7 +791,7 @@ static void sub_80889A8(u8 selection) "_08088A94: .4byte gUnknown_83CC354\n" "_08088A98: .4byte sOptionsMenu\n" "_08088A9C:\n" - "\tldr r1, _08088AF8 @ =gUnknown_8419E52\n" + "\tldr r1, _08088AF8 @ =gText_FrameType\n" "\tadd r0, sp, 0xC\n" "\tbl StringCopy\n" "\tadd r4, sp, 0x20\n" @@ -815,7 +833,7 @@ static void sub_80889A8(u8 selection) "\tpop {r0}\n" "\tbx r0\n" "\t.align 2, 0\n" - "_08088AF8: .4byte gUnknown_8419E52\n" + "_08088AF8: .4byte gText_FrameType\n" "_08088AFC: .4byte sOptionsMenu\n"); } #endif @@ -846,14 +864,13 @@ static void sub_8088B00(u8 taskId) static void sub_8088BD0(void) { FillWindowPixelBuffer(0, 0x11); - AddTextPrinterParameterized(WIN_TEXT_OPTION, 2, gUnknown_8419DCC, 8, 1, TEXT_SPEED_FF, NULL); + AddTextPrinterParameterized(WIN_TEXT_OPTION, 2, gText_MenuOptionOption, 8, 1, TEXT_SPEED_FF, NULL); PutWindowTilemap(0); CopyWindowToVram(0, 3); } //sub_8088C0C -//double check static void sub_8088C0C(void) { u8 h; @@ -863,7 +880,7 @@ static void sub_8088C0C(void) FillBgTilemapBufferRect(1, 0x1B4, 2, 2, 0x1B, 1, 3); FillBgTilemapBufferRect(1, 0x1B5, 0x1C, 2, 1, 1, 3); FillBgTilemapBufferRect(1, 0x1B6, 1, 3, 1, h, 3); - FillBgTilemapBufferRect(1, 0x1B8, 1, 0x1C, 1, h, 3); + FillBgTilemapBufferRect(1, 0x1B8, 0x1C, 3, 1, h, 3); FillBgTilemapBufferRect(1, 0x1B9, 1, 5, 1, 1, 3); FillBgTilemapBufferRect(1, 0x1BA, 2, 5, 0x1B, 1, 3); FillBgTilemapBufferRect(1, 0x1BB, 0x1C, 5, 1, 1, 3); @@ -878,24 +895,15 @@ static void sub_8088C0C(void) CopyBgTilemapBufferToVram(1); } - //sub_8088D8C static void sub_8088D8C(void) { - int i; - u8 y; + u8 i; FillWindowPixelBuffer(1, 0x11); - for (i = 0; i < MENUITEM_COUNT; i++) { - //AddTextPrinterParameterized(1, 2, gUnknown_83CC314[i], 8, (u8) ((i*(GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT))) + 2) - i, 0xFF, 0); - //gets registers right, but an lsl/lsr 0x18 after GetFontAttribute that shouldn't be there - y = i*(GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT)); - y += 2; - y -= i; - AddTextPrinterParameterized(1, 2, gUnknown_83CC314[i], 8, y, 0xFF, 0); - + AddTextPrinterParameterized(1, 2, gUnknown_83CC314[i], 8, (u8) ((i*(GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT))) + 2) - i, 0xFF, 0); } } @@ -903,9 +911,11 @@ static void sub_8088D8C(void) //sub_8088DE0 static void sub_8088DE0(u16 selection) { - u8 attr; - attr = GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT); - SetGpuReg(0x44, ((selection * (attr - 1) + 58) << 8) | (selection * (attr - 1) + 58 + attr)); - SetGpuReg(0x40, 4320); + u16 v1, v2; + + v1 = GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT); + v2 = selection * (v1 - 1) + 0x3A; + SetGpuReg(0x44, (v2 << 8) | (v2 + v1)); + SetGpuReg(0x40, 0x10E0); } -- cgit v1.2.3 From b8db7961d6760d3d729a080c76474f552516bb95 Mon Sep 17 00:00:00 2001 From: Evan Date: Mon, 18 Nov 2019 21:41:45 -0700 Subject: match baserom --- src/option_menu.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/option_menu.c b/src/option_menu.c index c1cde37a6..54b0e29cb 100644 --- a/src/option_menu.c +++ b/src/option_menu.c @@ -38,8 +38,8 @@ enum WIN_TEXT_OPTION, WIN_OPTIONS, }; -/* -static const struct WindowTemplate gUnknown_83CC2B8[] = //3CC2B8 -> sOptionMenuWinTemplates + +static const struct WindowTemplate gUnknown_83CC2B8[4] = //3CC2B8 -> sOptionMenuWinTemplates { { .bg = 1, @@ -70,7 +70,7 @@ static const struct WindowTemplate gUnknown_83CC2B8[] = //3CC2B8 -> sOptionMe }, DUMMY_WIN_TEMPLATE, }; -static const struct BgTemplate gUnknown_83CC2D8[] = //3CC2D8 -> sOptionMenuBgTemplates +static const struct BgTemplate gUnknown_83CC2D8[3] = //3CC2D8 -> sOptionMenuBgTemplates { { .bg = 1, @@ -79,7 +79,7 @@ static const struct BgTemplate gUnknown_83CC2D8[] = //3CC2D8 -> sOptionMenuBg .screenSize = 0, .paletteMode = 0, .priority = 0, - .baseTile = 0 + .baseTile = 0, }, { .bg = 0, @@ -88,7 +88,7 @@ static const struct BgTemplate gUnknown_83CC2D8[] = //3CC2D8 -> sOptionMenuBg .screenSize = 0, .paletteMode = 0, .priority = 1, - .baseTile = 0 + .baseTile = 0, }, { .bg = 2, @@ -119,9 +119,10 @@ static const u8* gUnknown_83CC34C[] = {gText_SoundMono, gText_SoundStereo}; //3 static const u8* gUnknown_83CC354[] = {gText_ButtonTypeNormal, gText_ButtonTypeLR, gText_ButtonTypeLEqualsA}; //3CC354 static const u8 gUnknown_83CC360[] = {0xF, 0x1, 0x2}; //3CC360 static const u8 gUnknown_83CC363[] = {0, 5, 4, 0, 0}; //3CC363 -*/ -extern const struct WindowTemplate gUnknown_83CC2B8[3]; + +/* +extern const struct WindowTemplate gUnknown_83CC2B8[4]; extern const struct BgTemplate gUnknown_83CC2D8[3]; extern const u16 gUnknown_83CC2E4[0x20]; extern const u16 gUnknown_83CC304[MENUITEM_COUNT]; @@ -133,6 +134,7 @@ extern const u8* gUnknown_83CC34C[8]; extern const u8* gUnknown_83CC354[12]; extern const u8 gUnknown_83CC360[3]; extern const u8 gUnknown_83CC363[3]; +*/ //This file's functions static void sub_808835C(void); -- cgit v1.2.3 From 9b81c9556457a92a3ac751b78ac7b97a4e810a1d Mon Sep 17 00:00:00 2001 From: Evan Date: Tue, 19 Nov 2019 09:46:10 -0700 Subject: update option menu const structs --- src/option_menu.c | 258 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 132 insertions(+), 126 deletions(-) (limited to 'src') diff --git a/src/option_menu.c b/src/option_menu.c index 54b0e29cb..4898ac1cd 100644 --- a/src/option_menu.c +++ b/src/option_menu.c @@ -19,7 +19,6 @@ #include "field_fadetransition.h" #include "gba/m4a_internal.h" - // Menu items enum { @@ -39,7 +38,7 @@ enum WIN_OPTIONS, }; -static const struct WindowTemplate gUnknown_83CC2B8[4] = //3CC2B8 -> sOptionMenuWinTemplates +static const struct WindowTemplate sOptionMenuWinTemplates[] = //3CC2B8 { { .bg = 1, @@ -70,7 +69,7 @@ static const struct WindowTemplate gUnknown_83CC2B8[4] = //3CC2B8 -> sOptionM }, DUMMY_WIN_TEMPLATE, }; -static const struct BgTemplate gUnknown_83CC2D8[3] = //3CC2D8 -> sOptionMenuBgTemplates +static const struct BgTemplate sOptionMenuBgTemplates[] = //3CC2D8 { { .bg = 1, @@ -100,9 +99,9 @@ static const struct BgTemplate gUnknown_83CC2D8[3] = //3CC2D8 -> sOptionMenuB .baseTile = 0, }, }; -static const u16 gUnknown_83CC2E4[] = INCBIN_U16("graphics/misc/unk_83cc2e4.gbapal"); //3CC2E4 -static const u16 gUnknown_83CC304[MENUITEM_COUNT] = {3, 2, 2, 2, 3, 10, 0}; //3CC304 -> sOptionsMenuItemCounts -static const u8* gUnknown_83CC314[MENUITEM_COUNT] = //3CC314 -> sOptionMenuItemsNames +static const u16 sOptionsMenuPalette[] = INCBIN_U16("graphics/misc/unk_83cc2e4.gbapal"); //3CC2E4 +static const u16 sOptionsMenuItemCounts[MENUITEM_COUNT] = {3, 2, 2, 2, 3, 10, 0}; //3CC304 +static const u8 *const sOptionMenuItemsNames[MENUITEM_COUNT] = //3CC314 { [MENUITEM_TEXTSPEED] = gText_TextSpeed, [MENUITEM_BATTLESCENE] = gText_BattleScene, @@ -112,29 +111,36 @@ static const u8* gUnknown_83CC314[MENUITEM_COUNT] = //3CC314 -> sOptionMenuI [MENUITEM_FRAMETYPE] = gText_Frame, [MENUITEM_CANCEL] = gText_OptionMenuCancel, }; -static const u8* gUnknown_83CC330[] = {gText_TextSpeedSlow, gText_TextSpeedMid, gText_TextSpeedFast}; //3CC330 -static const u8* gUnknown_83CC33C[] = {gText_BattleSceneOn, gText_BattleSceneOff}; //3CC33C -static const u8* gUnknown_83CC344[] = {gText_BattleStyleShift, gText_BattleStyleSet}; //3CC344 -static const u8* gUnknown_83CC34C[] = {gText_SoundMono, gText_SoundStereo}; //3CC34C -static const u8* gUnknown_83CC354[] = {gText_ButtonTypeNormal, gText_ButtonTypeLR, gText_ButtonTypeLEqualsA}; //3CC354 -static const u8 gUnknown_83CC360[] = {0xF, 0x1, 0x2}; //3CC360 -static const u8 gUnknown_83CC363[] = {0, 5, 4, 0, 0}; //3CC363 - - -/* -extern const struct WindowTemplate gUnknown_83CC2B8[4]; -extern const struct BgTemplate gUnknown_83CC2D8[3]; -extern const u16 gUnknown_83CC2E4[0x20]; -extern const u16 gUnknown_83CC304[MENUITEM_COUNT]; -extern const u8* gUnknown_83CC314[MENUITEM_COUNT]; -extern const u8* gUnknown_83CC330[12]; -extern const u8* gUnknown_83CC33C[8]; -extern const u8* gUnknown_83CC344[8]; -extern const u8* gUnknown_83CC34C[8]; -extern const u8* gUnknown_83CC354[12]; -extern const u8 gUnknown_83CC360[3]; -extern const u8 gUnknown_83CC363[3]; -*/ +static const u8 *const sTextSpeedOptions[] = //3CC330 +{ + gText_TextSpeedSlow, + gText_TextSpeedMid, + gText_TextSpeedFast +}; +static const u8 *const sBattleSceneOptions[] = //3CC33C +{ + gText_BattleSceneOn, + gText_BattleSceneOff +}; +static const u8 *const sBattleStyleOptions[] = //3CC344 +{ + gText_BattleStyleShift, + gText_BattleStyleSet +}; +static const u8 *const sSoundOptions[] = //3CC34C +{ + gText_SoundMono, + gText_SoundStereo +}; +static const u8 *const sButtonTypeOptions[] = //3CC354 +{ + gText_ButtonTypeNormal, + gText_ButtonTypeLEqualsA, + gText_ButtonTypeLR, +}; +static const u8 sOptionsMenuPickSwitchCancelTextColor[] = {TEXT_DYNAMIC_COLOR_6, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY}; //3CC360 +static const u8 sOptionsMenuTextColor[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_RED, TEXT_COLOR_RED}; //3CC363 + //This file's functions static void sub_808835C(void); @@ -166,7 +172,7 @@ struct OptionsMenu /*0x13*/ u8 unk13; }; -EWRAM_DATA struct OptionsMenu *sOptionsMenu = {0}; +EWRAM_DATA struct OptionsMenu *sOptionsMenuPtr = {0}; @@ -196,22 +202,22 @@ void CB2_OptionsMenuFromStartMenu(void) if (gMain.savedCallback == NULL) gMain.savedCallback = CB2_ReturnToStartMenu; - sOptionsMenu = AllocZeroed(sizeof(struct OptionsMenu)); - sOptionsMenu->state3 = 0; - sOptionsMenu->state2 = 0; - sOptionsMenu->state = 0; - sOptionsMenu->unkE = 0; - sOptionsMenu->option[MENUITEM_TEXTSPEED] = gSaveBlock2Ptr->optionsTextSpeed; - sOptionsMenu->option[MENUITEM_BATTLESCENE] = gSaveBlock2Ptr->optionsBattleSceneOff; - sOptionsMenu->option[MENUITEM_BATTLESTYLE] = gSaveBlock2Ptr->optionsBattleStyle; - sOptionsMenu->option[MENUITEM_SOUND] = gSaveBlock2Ptr->optionsSound; - sOptionsMenu->option[MENUITEM_BUTTONMODE] = gSaveBlock2Ptr->optionsButtonMode; - sOptionsMenu->option[MENUITEM_FRAMETYPE] = gSaveBlock2Ptr->optionsWindowFrameType; + sOptionsMenuPtr = AllocZeroed(sizeof(struct OptionsMenu)); + sOptionsMenuPtr->state3 = 0; + sOptionsMenuPtr->state2 = 0; + sOptionsMenuPtr->state = 0; + sOptionsMenuPtr->unkE = 0; + sOptionsMenuPtr->option[MENUITEM_TEXTSPEED] = gSaveBlock2Ptr->optionsTextSpeed; + sOptionsMenuPtr->option[MENUITEM_BATTLESCENE] = gSaveBlock2Ptr->optionsBattleSceneOff; + sOptionsMenuPtr->option[MENUITEM_BATTLESTYLE] = gSaveBlock2Ptr->optionsBattleStyle; + sOptionsMenuPtr->option[MENUITEM_SOUND] = gSaveBlock2Ptr->optionsSound; + sOptionsMenuPtr->option[MENUITEM_BUTTONMODE] = gSaveBlock2Ptr->optionsButtonMode; + sOptionsMenuPtr->option[MENUITEM_FRAMETYPE] = gSaveBlock2Ptr->optionsWindowFrameType; for (i = 0; i < MENUITEM_COUNT-1; i++) { - if (sOptionsMenu->option[i] > (gUnknown_83CC304[i])-1) - sOptionsMenu->option[i] = 0; + if (sOptionsMenuPtr->option[i] > (sOptionsMenuItemCounts[i])-1) + sOptionsMenuPtr->option[i] = 0; } HelpSystem_SetSomeVariable2(0xD); SetMainCallback2(sub_8088454); @@ -236,7 +242,7 @@ static void sub_8088444(void) static void sub_8088454(void) { u8 i, state; - state = sOptionsMenu->state; + state = sOptionsMenuPtr->state; switch (state) { case 0: @@ -266,7 +272,7 @@ static void sub_8088454(void) sub_80889A8(i); break; case 8: - sub_8088DE0(sOptionsMenu->unkE); + sub_8088DE0(sOptionsMenuPtr->unkE); break; case 9: sub_8088680(); @@ -274,7 +280,7 @@ static void sub_8088454(void) default: sub_8088514(); } - sOptionsMenu->state++; + sOptionsMenuPtr->state++; } //sub_8088514 @@ -295,7 +301,7 @@ static void sub_8088530(void) DmaClear16(3, (void *)PLTT, PLTT_SIZE); SetGpuReg(REG_OFFSET_DISPCNT, 0); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_83CC2D8, ARRAY_COUNT(gUnknown_83CC2D8)); + InitBgsFromTemplates(0, sOptionMenuBgTemplates, ARRAY_COUNT(sOptionMenuBgTemplates)); ChangeBgX(0, 0, 0); ChangeBgY(0, 0, 0); ChangeBgX(1, 0, 0); @@ -304,7 +310,7 @@ static void sub_8088530(void) ChangeBgY(2, 0, 0); ChangeBgX(3, 0, 0); ChangeBgY(3, 0, 0); - InitWindows(gUnknown_83CC2B8); + InitWindows(sOptionMenuWinTemplates); DeactivateAllTextPrinters(); SetGpuReg(REG_OFFSET_BLDCNT, 0xC1); SetGpuReg(REG_OFFSET_BLDY, 2); @@ -322,7 +328,7 @@ static void sub_8088680(void) s32 x; x = 0xE4 - GetStringWidth(0, gText_PickSwitchCancel, 0); FillWindowPixelBuffer(2, 0xFF); - AddTextPrinterParameterized3(2, 0, x, 0, gUnknown_83CC360, 0, gText_PickSwitchCancel); + AddTextPrinterParameterized3(2, 0, x, 0, sOptionsMenuPickSwitchCancelTextColor, 0, gText_PickSwitchCancel); PutWindowTilemap(2); CopyWindowToVram(2, 3); } @@ -341,16 +347,16 @@ static void sub_80886D4(void) //sub_80886F0 static bool8 sub_80886F0(void) { - switch (sOptionsMenu->state2) + switch (sOptionsMenuPtr->state2) { case 0: - LoadBgTiles(1, GetUserFrameGraphicsInfo(sOptionsMenu->option[MENUITEM_FRAMETYPE])->tiles, 0x120, 0x1AA); + LoadBgTiles(1, GetUserFrameGraphicsInfo(sOptionsMenuPtr->option[MENUITEM_FRAMETYPE])->tiles, 0x120, 0x1AA); break; case 1: - LoadPalette(GetUserFrameGraphicsInfo(sOptionsMenu->option[MENUITEM_FRAMETYPE])->palette, 0x20, 0x20); + LoadPalette(GetUserFrameGraphicsInfo(sOptionsMenuPtr->option[MENUITEM_FRAMETYPE])->palette, 0x20, 0x20); break; case 2: - LoadPalette(gUnknown_83CC2E4, 0x10, 0x20); + LoadPalette(sOptionsMenuPalette, 0x10, 0x20); LoadPalette(stdpal_get(2), 0xF0, 0x20); break; case 3: @@ -359,7 +365,7 @@ static bool8 sub_80886F0(void) default: return TRUE; } - sOptionsMenu->state2++; + sOptionsMenuPtr->state2++; return FALSE; } @@ -372,12 +378,12 @@ static void sub_8088780(u8 taskId) u8 v2, v5; struct OptionsMenu v4; - switch (sOptionsMenu->state3) + switch (sOptionsMenuPtr->state3) { case 0: BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); sub_8088444(); - sOptionsMenu->state3++; + sOptionsMenuPtr->state3++; break; case 2: if ((bool32) sub_80BF72C() == TRUE) //cast to bool32 to remove the lsl/lsr 0x18 after func call @@ -385,32 +391,32 @@ static void sub_8088780(u8 taskId) switch (sub_80888C0()) { case 1: - sOptionsMenu->state3++; + sOptionsMenuPtr->state3++; break; case 2: - LoadBgTiles(1, GetUserFrameGraphicsInfo(sOptionsMenu->option[MENUITEM_FRAMETYPE])->tiles, 0x120, 0x1AA); - LoadPalette(GetUserFrameGraphicsInfo(sOptionsMenu->option[MENUITEM_FRAMETYPE])->palette, 0x20, 0x20); - sub_80889A8(sOptionsMenu->unkE); - sOptionsMenu->state3++; + LoadBgTiles(1, GetUserFrameGraphicsInfo(sOptionsMenuPtr->option[MENUITEM_FRAMETYPE])->tiles, 0x120, 0x1AA); + LoadPalette(GetUserFrameGraphicsInfo(sOptionsMenuPtr->option[MENUITEM_FRAMETYPE])->palette, 0x20, 0x20); + sub_80889A8(sOptionsMenuPtr->unkE); + sOptionsMenuPtr->state3++; break; case 3: - sub_8088DE0(sOptionsMenu->unkE); + sub_8088DE0(sOptionsMenuPtr->unkE); break; case 4: - sub_80889A8(sOptionsMenu->unkE); - sOptionsMenu->state3++; + sub_80889A8(sOptionsMenuPtr->unkE); + sOptionsMenuPtr->state3++; break; default: return; } case 3: BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); - sOptionsMenu->state3++; + sOptionsMenuPtr->state3++; case 1: case 4: if (gPaletteFade.active) return; - sOptionsMenu->state3++; + sOptionsMenuPtr->state3++; case 5: sub_8088B00(taskId); break; @@ -426,7 +432,7 @@ static void sub_8088780(u8 taskId) "\tsub sp, 0x4\n" "\tlsls r0, 24\n" "\tlsrs r2, r0, 24\n" - "\tldr r1, _080887A0 @ =sOptionsMenu\n" + "\tldr r1, _080887A0 @ =sOptionsMenuPtr\n" "\tldr r0, [r1]\n" "\tldrb r0, [r0, 0x10]\n" "\tadds r3, r1, 0\n" @@ -440,7 +446,7 @@ static void sub_8088780(u8 taskId) "\tldr r0, [r0]\n" "\tmov pc, r0\n" "\t.align 2, 0\n" - "_080887A0: .4byte sOptionsMenu\n" + "_080887A0: .4byte sOptionsMenuPtr\n" "_080887A4: .4byte _080887A8\n" "\t.align 2, 0\n" "_080887A8:\n" @@ -459,11 +465,11 @@ static void sub_8088780(u8 taskId) "\tmovs r3, 0\n" "\tbl BeginNormalPaletteFade\n" "\tbl sub_8088444\n" - "\tldr r0, _080887DC @ =sOptionsMenu\n" + "\tldr r0, _080887DC @ =sOptionsMenuPtr\n" "\tldr r1, [r0]\n" "\tb _080888A2\n" "\t.align 2, 0\n" - "_080887DC: .4byte sOptionsMenu\n" + "_080887DC: .4byte sOptionsMenuPtr\n" "_080887E0:\n" "\tbl sub_80BF72C\n" "\tcmp r0, 0x1\n" @@ -488,13 +494,13 @@ static void sub_8088780(u8 taskId) "\t.4byte _08088858\n" "\t.4byte _08088868\n" "_08088818:\n" - "\tldr r0, _08088820 @ =sOptionsMenu\n" + "\tldr r0, _08088820 @ =sOptionsMenuPtr\n" "\tldr r1, [r0]\n" "\tb _080888A2\n" "\t.align 2, 0\n" - "_08088820: .4byte sOptionsMenu\n" + "_08088820: .4byte sOptionsMenuPtr\n" "_08088824:\n" - "\tldr r4, _08088854 @ =sOptionsMenu\n" + "\tldr r4, _08088854 @ =sOptionsMenuPtr\n" "\tldr r0, [r4]\n" "\tldrb r0, [r0, 0xA]\n" "\tbl GetUserFrameGraphicsInfo\n" @@ -515,24 +521,24 @@ static void sub_8088780(u8 taskId) "\tldr r0, [r4]\n" "\tb _0808886C\n" "\t.align 2, 0\n" - "_08088854: .4byte sOptionsMenu\n" + "_08088854: .4byte sOptionsMenuPtr\n" "_08088858:\n" - "\tldr r0, _08088864 @ =sOptionsMenu\n" + "\tldr r0, _08088864 @ =sOptionsMenuPtr\n" "\tldr r0, [r0]\n" "\tldrh r0, [r0, 0xE]\n" "\tbl sub_8088DE0\n" "\tb _080888B6\n" "\t.align 2, 0\n" - "_08088864: .4byte sOptionsMenu\n" + "_08088864: .4byte sOptionsMenuPtr\n" "_08088868:\n" - "\tldr r0, _08088874 @ =sOptionsMenu\n" + "\tldr r0, _08088874 @ =sOptionsMenuPtr\n" "\tldr r0, [r0]\n" "_0808886C:\n" "\tldrb r0, [r0, 0xE]\n" "\tbl sub_80889A8\n" "\tb _080888B6\n" "\t.align 2, 0\n" - "_08088874: .4byte sOptionsMenu\n" + "_08088874: .4byte sOptionsMenuPtr\n" "_08088878:\n" "\tmovs r0, 0x1\n" "\tnegs r0, r0\n" @@ -541,11 +547,11 @@ static void sub_8088780(u8 taskId) "\tmovs r2, 0\n" "\tmovs r3, 0x10\n" "\tbl BeginNormalPaletteFade\n" - "\tldr r0, _08088890 @ =sOptionsMenu\n" + "\tldr r0, _08088890 @ =sOptionsMenuPtr\n" "\tldr r1, [r0]\n" "\tb _080888A2\n" "\t.align 2, 0\n" - "_08088890: .4byte sOptionsMenu\n" + "_08088890: .4byte sOptionsMenuPtr\n" "_08088894:\n" "\tldr r0, _080888AC @ =gPaletteFade\n" "\tldrb r1, [r0, 0x7]\n" @@ -579,43 +585,43 @@ static u8 sub_80888C0(void) u16* curr; if (gMain.newAndRepeatedKeys & DPAD_RIGHT) { - current = sOptionsMenu->option[(sOptionsMenu->unkE)]; - if (current == (gUnknown_83CC304[sOptionsMenu->unkE] - 1)) - sOptionsMenu->option[sOptionsMenu->unkE] = 0; + current = sOptionsMenuPtr->option[(sOptionsMenuPtr->unkE)]; + if (current == (sOptionsMenuItemCounts[sOptionsMenuPtr->unkE] - 1)) + sOptionsMenuPtr->option[sOptionsMenuPtr->unkE] = 0; else - sOptionsMenu->option[sOptionsMenu->unkE] = current + 1; - if (sOptionsMenu->unkE == MENUITEM_FRAMETYPE) + sOptionsMenuPtr->option[sOptionsMenuPtr->unkE] = current + 1; + if (sOptionsMenuPtr->unkE == MENUITEM_FRAMETYPE) return 2; else return 4; } else if (gMain.newAndRepeatedKeys & DPAD_LEFT) { - curr = &sOptionsMenu->option[sOptionsMenu->unkE]; + curr = &sOptionsMenuPtr->option[sOptionsMenuPtr->unkE]; if (*curr == 0) - *curr = gUnknown_83CC304[sOptionsMenu->unkE] - 1; + *curr = sOptionsMenuItemCounts[sOptionsMenuPtr->unkE] - 1; else --*(curr); - if (sOptionsMenu->unkE == MENUITEM_FRAMETYPE) + if (sOptionsMenuPtr->unkE == MENUITEM_FRAMETYPE) return 2; else return 4; } else if (gMain.newAndRepeatedKeys & DPAD_UP) { - if (sOptionsMenu->unkE == MENUITEM_TEXTSPEED) - sOptionsMenu->unkE = MENUITEM_CANCEL; + if (sOptionsMenuPtr->unkE == MENUITEM_TEXTSPEED) + sOptionsMenuPtr->unkE = MENUITEM_CANCEL; else - sOptionsMenu->unkE = sOptionsMenu->unkE - 1; + sOptionsMenuPtr->unkE = sOptionsMenuPtr->unkE - 1; return 3; } else if (gMain.newAndRepeatedKeys & DPAD_DOWN) { - if (sOptionsMenu->unkE == MENUITEM_CANCEL) - sOptionsMenu->unkE = MENUITEM_TEXTSPEED; + if (sOptionsMenuPtr->unkE == MENUITEM_CANCEL) + sOptionsMenuPtr->unkE = MENUITEM_TEXTSPEED; else - sOptionsMenu->unkE = sOptionsMenu->unkE + 1; + sOptionsMenuPtr->unkE = sOptionsMenuPtr->unkE + 1; return 3; } else if ((gMain.newKeys & B_BUTTON) || (gMain.newKeys & A_BUTTON)) @@ -638,7 +644,7 @@ static void sub_80889A8(u8 selection) u8* v8; u8 x, y; - memcpy(&dst, gUnknown_83CC363, 3); + memcpy(&dst, sOptionsMenuTextColor, 3); y = ((GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT) - 1) * selection) + 2; x = 0x82; FillWindowPixelRect(1, 1, x, y, 0x46, GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT)); @@ -646,23 +652,23 @@ static void sub_80889A8(u8 selection) switch (selection) { case MENUITEM_TEXTSPEED: - AddTextPrinterParameterized3(1, 2, x, y, dst, -1, gUnknown_83CC330); + AddTextPrinterParameterized3(1, 2, x, y, dst, -1, sTextSpeedOptions); break; case MENUITEM_BATTLESCENE: - AddTextPrinterParameterized3(1, 2, x, y, dst, -1, gUnknown_83CC33C); + AddTextPrinterParameterized3(1, 2, x, y, dst, -1, sBattleSceneOptions); break; case MENUITEM_BATTLESTYLE: - AddTextPrinterParameterized3(1, 2, x, y, dst, -1, gUnknown_83CC344); + AddTextPrinterParameterized3(1, 2, x, y, dst, -1, sBattleStyleOptions); break; case MENUITEM_SOUND: - AddTextPrinterParameterized3(1, 2, x, y, dst, -1, gUnknown_83CC34C); + AddTextPrinterParameterized3(1, 2, x, y, dst, -1, sSoundOptions); break; case MENUITEM_BUTTONMODE: - AddTextPrinterParameterized3(1, 2, x, y, dst, -1, gUnknown_83CC354); + AddTextPrinterParameterized3(1, 2, x, y, dst, -1, sButtonTypeOptions); break; case MENUITEM_FRAMETYPE: StringCopy(str, gText_FrameType); - ConvertIntToDecimalStringN(v8, sOptionsMenu->option[2*selection] + 1, 1, 2); + ConvertIntToDecimalStringN(v8, sOptionsMenuPtr->option[2*selection] + 1, 1, 2); StringAppendN(str, v8, 3); AddTextPrinterParameterized3(1, 2, x, y, dst, -1, str); break; @@ -683,7 +689,7 @@ static void sub_80889A8(u8 selection) "\tlsls r0, 24\n" "\tlsrs r5, r0, 24\n" "\tadd r4, sp, 0x2C\n" - "\tldr r1, _08088A08 @ =gUnknown_83CC363\n" + "\tldr r1, _08088A08 @ =sOptionsMenuTextColor\n" "\tadds r0, r4, 0\n" "\tmovs r2, 0x3\n" "\tbl memcpy\n" @@ -721,7 +727,7 @@ static void sub_80889A8(u8 selection) "\tldr r0, [r0]\n" "\tmov pc, r0\n" "\t.align 2, 0\n" - "_08088A08: .4byte gUnknown_83CC363\n" + "_08088A08: .4byte sOptionsMenuTextColor\n" "_08088A0C: .4byte _08088A10\n" "\t.align 2, 0\n" "_08088A10:\n" @@ -736,45 +742,45 @@ static void sub_80889A8(u8 selection) "\tmovs r0, 0x1\n" "\tnegs r0, r0\n" "\tstr r0, [sp, 0x4]\n" - "\tldr r2, _08088A34 @ =gUnknown_83CC330\n" + "\tldr r2, _08088A34 @ =sTextSpeedOptions\n" "\tb _08088A72\n" "\t.align 2, 0\n" - "_08088A34: .4byte gUnknown_83CC330\n" + "_08088A34: .4byte sTextSpeedOptions\n" "_08088A38:\n" "\tstr r6, [sp]\n" "\tmovs r0, 0x1\n" "\tnegs r0, r0\n" "\tstr r0, [sp, 0x4]\n" - "\tldr r2, _08088A44 @ =gUnknown_83CC33C\n" + "\tldr r2, _08088A44 @ =sBattleSceneOptions\n" "\tb _08088A72\n" "\t.align 2, 0\n" - "_08088A44: .4byte gUnknown_83CC33C\n" + "_08088A44: .4byte sBattleSceneOptions\n" "_08088A48:\n" "\tstr r6, [sp]\n" "\tmovs r0, 0x1\n" "\tnegs r0, r0\n" "\tstr r0, [sp, 0x4]\n" - "\tldr r2, _08088A54 @ =gUnknown_83CC344\n" + "\tldr r2, _08088A54 @ =sBattleStyleOptions\n" "\tb _08088A72\n" "\t.align 2, 0\n" - "_08088A54: .4byte gUnknown_83CC344\n" + "_08088A54: .4byte sBattleStyleOptions\n" "_08088A58:\n" "\tstr r6, [sp]\n" "\tmovs r0, 0x1\n" "\tnegs r0, r0\n" "\tstr r0, [sp, 0x4]\n" - "\tldr r2, _08088A64 @ =gUnknown_83CC34C\n" + "\tldr r2, _08088A64 @ =sSoundOptions\n" "\tb _08088A72\n" "\t.align 2, 0\n" - "_08088A64: .4byte gUnknown_83CC34C\n" + "_08088A64: .4byte sSoundOptions\n" "_08088A68:\n" "\tstr r6, [sp]\n" "\tmovs r0, 0x1\n" "\tnegs r0, r0\n" "\tstr r0, [sp, 0x4]\n" - "\tldr r2, _08088A94 @ =gUnknown_83CC354\n" + "\tldr r2, _08088A94 @ =sButtonTypeOptions\n" "_08088A72:\n" - "\tldr r0, _08088A98 @ =sOptionsMenu\n" + "\tldr r0, _08088A98 @ =sOptionsMenuPtr\n" "\tldr r0, [r0]\n" "\tlsls r1, r5, 1\n" "\tadds r0, r1\n" @@ -790,14 +796,14 @@ static void sub_80889A8(u8 selection) "\tbl AddTextPrinterParameterized3\n" "\tb _08088ADE\n" "\t.align 2, 0\n" - "_08088A94: .4byte gUnknown_83CC354\n" - "_08088A98: .4byte sOptionsMenu\n" + "_08088A94: .4byte sButtonTypeOptions\n" + "_08088A98: .4byte sOptionsMenuPtr\n" "_08088A9C:\n" "\tldr r1, _08088AF8 @ =gText_FrameType\n" "\tadd r0, sp, 0xC\n" "\tbl StringCopy\n" "\tadd r4, sp, 0x20\n" - "\tldr r0, _08088AFC @ =sOptionsMenu\n" + "\tldr r0, _08088AFC @ =sOptionsMenuPtr\n" "\tldr r0, [r0]\n" "\tlsls r1, r5, 1\n" "\tadds r0, r1\n" @@ -836,7 +842,7 @@ static void sub_80889A8(u8 selection) "\tbx r0\n" "\t.align 2, 0\n" "_08088AF8: .4byte gText_FrameType\n" - "_08088AFC: .4byte sOptionsMenu\n"); + "_08088AFC: .4byte sOptionsMenuPtr\n"); } #endif @@ -848,15 +854,15 @@ static void sub_8088B00(u8 taskId) SetMainCallback2(gMain.savedCallback); FreeAllWindowBuffers(); - gSaveBlock2Ptr->optionsTextSpeed = (u8) sOptionsMenu->option[MENUITEM_TEXTSPEED]; - gSaveBlock2Ptr->optionsBattleSceneOff = (u8) sOptionsMenu->option[MENUITEM_BATTLESCENE]; - gSaveBlock2Ptr->optionsBattleStyle = (u8) sOptionsMenu->option[MENUITEM_BATTLESTYLE]; - gSaveBlock2Ptr->optionsSound = sOptionsMenu->option[MENUITEM_SOUND]; - gSaveBlock2Ptr->optionsButtonMode = (u8) sOptionsMenu->option[MENUITEM_BUTTONMODE]; - gSaveBlock2Ptr->optionsWindowFrameType = (u8) sOptionsMenu->option[MENUITEM_FRAMETYPE]; + gSaveBlock2Ptr->optionsTextSpeed = (u8) sOptionsMenuPtr->option[MENUITEM_TEXTSPEED]; + gSaveBlock2Ptr->optionsBattleSceneOff = (u8) sOptionsMenuPtr->option[MENUITEM_BATTLESCENE]; + gSaveBlock2Ptr->optionsBattleStyle = (u8) sOptionsMenuPtr->option[MENUITEM_BATTLESTYLE]; + gSaveBlock2Ptr->optionsSound = sOptionsMenuPtr->option[MENUITEM_SOUND]; + gSaveBlock2Ptr->optionsButtonMode = (u8) sOptionsMenuPtr->option[MENUITEM_BUTTONMODE]; + gSaveBlock2Ptr->optionsWindowFrameType = (u8) sOptionsMenuPtr->option[MENUITEM_FRAMETYPE]; SetPokemonCryStereo(gSaveBlock2Ptr->optionsSound); - Free(sOptionsMenu); - sOptionsMenu = NULL; + Free(sOptionsMenuPtr); + sOptionsMenuPtr = NULL; DestroyTask(taskId); } @@ -905,7 +911,7 @@ static void sub_8088D8C(void) FillWindowPixelBuffer(1, 0x11); for (i = 0; i < MENUITEM_COUNT; i++) { - AddTextPrinterParameterized(1, 2, gUnknown_83CC314[i], 8, (u8) ((i*(GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT))) + 2) - i, 0xFF, 0); + AddTextPrinterParameterized(1, 2, sOptionMenuItemsNames[i], 8, (u8) ((i*(GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT))) + 2) - i, 0xFF, 0); } } -- cgit v1.2.3 From 486ea736cf87b90ae9d8e26784ca1e7b6d72910d Mon Sep 17 00:00:00 2001 From: Evan Date: Tue, 19 Nov 2019 09:53:23 -0700 Subject: fix formatting on option menu --- src/option_menu.c | 70 +++++++++++++++++++++++++++---------------------------- 1 file changed, 35 insertions(+), 35 deletions(-) (limited to 'src') diff --git a/src/option_menu.c b/src/option_menu.c index 4898ac1cd..8450633f5 100644 --- a/src/option_menu.c +++ b/src/option_menu.c @@ -58,15 +58,15 @@ static const struct WindowTemplate sOptionMenuWinTemplates[] = //3CC2B8 .paletteNum = 1, .baseBlock = 0x36, }, - { - .bg = 2, - .tilemapLeft = 0, - .tilemapTop = 0, - .width = 30, - .height = 2, - .paletteNum = 0xF, - .baseBlock = 0x16e, - }, + { + .bg = 2, + .tilemapLeft = 0, + .tilemapTop = 0, + .width = 30, + .height = 2, + .paletteNum = 0xF, + .baseBlock = 0x16e, + }, DUMMY_WIN_TEMPLATE, }; static const struct BgTemplate sOptionMenuBgTemplates[] = //3CC2D8 @@ -90,16 +90,16 @@ static const struct BgTemplate sOptionMenuBgTemplates[] = //3CC2D8 .baseTile = 0, }, { - .bg = 2, - .charBaseIndex = 1, - .mapBaseIndex = 29, - .screenSize = 0, - .paletteMode = 0, - .priority = 2, - .baseTile = 0, + .bg = 2, + .charBaseIndex = 1, + .mapBaseIndex = 29, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0, }, }; -static const u16 sOptionsMenuPalette[] = INCBIN_U16("graphics/misc/unk_83cc2e4.gbapal"); //3CC2E4 +static const u16 sOptionsMenuPalette[] = INCBIN_U16("graphics/misc/unk_83cc2e4.gbapal"); //3CC2E4 static const u16 sOptionsMenuItemCounts[MENUITEM_COUNT] = {3, 2, 2, 2, 3, 10, 0}; //3CC304 static const u8 *const sOptionMenuItemsNames[MENUITEM_COUNT] = //3CC314 { @@ -111,35 +111,35 @@ static const u8 *const sOptionMenuItemsNames[MENUITEM_COUNT] = //3CC314 [MENUITEM_FRAMETYPE] = gText_Frame, [MENUITEM_CANCEL] = gText_OptionMenuCancel, }; -static const u8 *const sTextSpeedOptions[] = //3CC330 +static const u8 *const sTextSpeedOptions[] = //3CC330 { - gText_TextSpeedSlow, - gText_TextSpeedMid, - gText_TextSpeedFast + gText_TextSpeedSlow, + gText_TextSpeedMid, + gText_TextSpeedFast }; -static const u8 *const sBattleSceneOptions[] = //3CC33C +static const u8 *const sBattleSceneOptions[] = //3CC33C { - gText_BattleSceneOn, - gText_BattleSceneOff + gText_BattleSceneOn, + gText_BattleSceneOff }; static const u8 *const sBattleStyleOptions[] = //3CC344 { - gText_BattleStyleShift, - gText_BattleStyleSet + gText_BattleStyleShift, + gText_BattleStyleSet }; -static const u8 *const sSoundOptions[] = //3CC34C +static const u8 *const sSoundOptions[] = //3CC34C { - gText_SoundMono, - gText_SoundStereo + gText_SoundMono, + gText_SoundStereo }; -static const u8 *const sButtonTypeOptions[] = //3CC354 +static const u8 *const sButtonTypeOptions[] = //3CC354 { - gText_ButtonTypeNormal, - gText_ButtonTypeLEqualsA, - gText_ButtonTypeLR, + gText_ButtonTypeNormal, + gText_ButtonTypeLEqualsA, + gText_ButtonTypeLR, }; -static const u8 sOptionsMenuPickSwitchCancelTextColor[] = {TEXT_DYNAMIC_COLOR_6, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY}; //3CC360 -static const u8 sOptionsMenuTextColor[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_RED, TEXT_COLOR_RED}; //3CC363 +static const u8 sOptionsMenuPickSwitchCancelTextColor[] = {TEXT_DYNAMIC_COLOR_6, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY}; //3CC360 +static const u8 sOptionsMenuTextColor[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_RED, TEXT_COLOR_RED}; //3CC363 //This file's functions -- cgit v1.2.3