mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-09 12:35:23 -05:00
remove compile errors
This commit is contained in:
parent
83cba31033
commit
46602859cd
1337
asm/option_menu.s
1337
asm/option_menu.s
File diff suppressed because it is too large
Load Diff
|
|
@ -2907,25 +2907,25 @@ gUnknown_8419D89:: @ 8419D89
|
|||
gUnknown_8419DCC:: @ 8419DCC
|
||||
.string "OPTION$"
|
||||
|
||||
gUnknown_8419DD3:: @ 0x8419DD3
|
||||
gText_TextSpeed:: @ 0x8419DD3
|
||||
.string "TEXT SPEED$"
|
||||
|
||||
gUnknown_8419DDE:: @ 0x8419DDE
|
||||
gText_BattleScene:: @ 0x8419DDE
|
||||
.string "BATTLE SCENE$"
|
||||
|
||||
gUnknown_8419DEB:: @ 0x8419DEB
|
||||
gText_BattleStyle:: @ 0x8419DEB
|
||||
.string "BATTLE STYLE$"
|
||||
|
||||
gUnknown_8419DF8:: @ 0x8419DF8
|
||||
gText_Sound:: @ 0x8419DF8
|
||||
.string "SOUND$"
|
||||
|
||||
gUnknown_8419DFE:: @ 0x8419DFE
|
||||
gText_ButtonMode:: @ 0x8419DFE
|
||||
.string "BUTTON MODE$"
|
||||
|
||||
gUnknown_8419E0A:: @ 0x8419E0A
|
||||
gText_Frame:: @ 0x8419E0A
|
||||
.string "FRAME$"
|
||||
|
||||
gUnknown_8419E10:: @ 0x8419E10
|
||||
gText_OptionMenuCancel:: @ 0x8419E10
|
||||
.string "CANCEL$"
|
||||
|
||||
gUnknown_8419E17:: @ 0x8419E17
|
||||
|
|
|
|||
|
|
@ -291,11 +291,11 @@ struct SaveBlock2
|
|||
/*0x012*/ u8 playTimeVBlanks;
|
||||
/*0x013*/ u8 optionsButtonMode; // OPTIONS_BUTTON_MODE_[NORMAL/LR/L_EQUALS_A]
|
||||
/*0x014*/ u16 optionsTextSpeed:3; // OPTIONS_TEXT_SPEED_[SLOW/MID/FAST]
|
||||
u16 optionsWindowFrameType:5; // Specifies one of the 20 decorative borders for text boxes
|
||||
u16 optionsSound:1; // OPTIONS_SOUND_[MONO/STEREO]
|
||||
u16 optionsBattleStyle:1; // OPTIONS_BATTLE_STYLE_[SHIFT/SET]
|
||||
u16 optionsBattleSceneOff:1; // whether battle animations are disabled
|
||||
u16 regionMapZoom:1; // whether the map is zoomed in
|
||||
u16 optionsWindowFrameType:5; // Specifies one of the 20 decorative borders for text boxes
|
||||
/*0x15*/ u16 optionsSound:1; // OPTIONS_SOUND_[MONO/STEREO]
|
||||
u16 optionsBattleStyle:1; // OPTIONS_BATTLE_STYLE_[SHIFT/SET]
|
||||
u16 optionsBattleSceneOff:1; // whether battle animations are disabled
|
||||
u16 regionMapZoom:1; // whether the map is zoomed in
|
||||
/*0x018*/ struct Pokedex pokedex;
|
||||
/*0x090*/ u8 filler_90[0x8];
|
||||
/*0x098*/ struct Time localTimeOffset;
|
||||
|
|
|
|||
|
|
@ -741,4 +741,15 @@ extern const u8 gText_DecimalPoint[];
|
|||
// map_name_popup
|
||||
extern const u8 gUnknown_841D18D[];
|
||||
|
||||
// options menu
|
||||
extern const u8 gText_TextSpeed[];
|
||||
extern const u8 gText_BattleScene[];
|
||||
extern const u8 gText_BattleStyle[];
|
||||
extern const u8 gText_Sound[];
|
||||
extern const u8 gText_ButtonMode[];
|
||||
extern const u8 gText_Frame[];
|
||||
extern const u8 gText_OptionMenuCancel[];
|
||||
extern const u8 gText_PickSwitchCancel[];
|
||||
|
||||
|
||||
#endif //GUARD_STRINGS_H
|
||||
|
|
|
|||
|
|
@ -128,7 +128,7 @@ SECTIONS {
|
|||
src/wild_encounter.o(.text);
|
||||
asm/field_effect.o(.text);
|
||||
src/scanline_effect.o(.text);
|
||||
asm/option_menu.o(.text);
|
||||
src/option_menu.o(.text);
|
||||
src/pokedex.o(.text);
|
||||
asm/trainer_card.o(.text);
|
||||
asm/pokemon_storage_system.o(.text);
|
||||
|
|
|
|||
594
src/option_menu.c
Normal file
594
src/option_menu.c
Normal file
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
@ -226,7 +226,7 @@ gFieldEffectArguments: @ 20386E0
|
|||
.include "src/scanline_effect.o"
|
||||
|
||||
.align 2
|
||||
gUnknown_2039620: @ 2039620
|
||||
sOptionsMenu: @ 2039620
|
||||
.space 0x4
|
||||
|
||||
gTrainerCards: @ 2039624
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user