pr fixes
This commit is contained in:
+4
-4
@@ -2904,7 +2904,7 @@ gUnknown_8419D89:: @ 8419D89
|
|||||||
.string "Waiting for the other TRAINER to\n"
|
.string "Waiting for the other TRAINER to\n"
|
||||||
.string "finish reading your TRAINER CARD.$"
|
.string "finish reading your TRAINER CARD.$"
|
||||||
|
|
||||||
gText_MenuOptionOption:: @ 8419DCC
|
gText_MenuOption:: @ 8419DCC
|
||||||
.string "OPTION$"
|
.string "OPTION$"
|
||||||
|
|
||||||
gText_TextSpeed:: @ 0x8419DD3
|
gText_TextSpeed:: @ 0x8419DD3
|
||||||
@@ -2955,16 +2955,16 @@ gText_SoundMono:: @ 0x8419E36
|
|||||||
gText_SoundStereo:: @ 0x8419E3B
|
gText_SoundStereo:: @ 0x8419E3B
|
||||||
.string "STEREO$"
|
.string "STEREO$"
|
||||||
|
|
||||||
gUnknown_8419E42:: @ 0x8419E42
|
gTextJP_Type:: @ 0x8419E42
|
||||||
.string "タイプ$"
|
.string "タイプ$"
|
||||||
|
|
||||||
gText_ButtonTypeNormal:: @ 0x8419E46
|
gText_ButtonTypeNormal:: @ 0x8419E46
|
||||||
.string "HELP$"
|
.string "HELP$"
|
||||||
|
|
||||||
gText_ButtonTypeLR:: @ 0x8419E4B
|
gText_ButtonTypeLEqualsA:: @ 0x8419E4B
|
||||||
.string "LゅA$"
|
.string "LゅA$"
|
||||||
|
|
||||||
gText_ButtonTypeLEqualsA:: @ 0x8419E4F
|
gText_ButtonTypeLR:: @ 0x8419E4F
|
||||||
.string "LR$"
|
.string "LR$"
|
||||||
|
|
||||||
gText_FrameType:: @ 8419E52
|
gText_FrameType:: @ 8419E52
|
||||||
|
|||||||
+2
-1
@@ -783,8 +783,9 @@ extern const u8 gText_SoundStereo[];
|
|||||||
extern const u8 gText_ButtonTypeNormal[];
|
extern const u8 gText_ButtonTypeNormal[];
|
||||||
extern const u8 gText_ButtonTypeLR[];
|
extern const u8 gText_ButtonTypeLR[];
|
||||||
extern const u8 gText_ButtonTypeLEqualsA[];
|
extern const u8 gText_ButtonTypeLEqualsA[];
|
||||||
extern const u8 gText_MenuOptionOption[];
|
extern const u8 gText_MenuOption[];
|
||||||
extern const u8 gText_FrameType[];
|
extern const u8 gText_FrameType[];
|
||||||
|
extern const u8 gTextJP_Type[];
|
||||||
extern const u8 gText_PickSwitchCancel[];
|
extern const u8 gText_PickSwitchCancel[];
|
||||||
|
|
||||||
#endif //GUARD_STRINGS_H
|
#endif //GUARD_STRINGS_H
|
||||||
|
|||||||
+197
-224
@@ -29,16 +29,41 @@ enum
|
|||||||
MENUITEM_BUTTONMODE,
|
MENUITEM_BUTTONMODE,
|
||||||
MENUITEM_FRAMETYPE,
|
MENUITEM_FRAMETYPE,
|
||||||
MENUITEM_CANCEL,
|
MENUITEM_CANCEL,
|
||||||
MENUITEM_COUNT,
|
MENUITEM_COUNT
|
||||||
};
|
};
|
||||||
|
|
||||||
// Window Ids
|
// Window Ids
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
WIN_TEXT_OPTION,
|
WIN_TEXT_OPTION,
|
||||||
WIN_OPTIONS,
|
WIN_OPTIONS
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct WindowTemplate sOptionMenuWinTemplates[] = //3CC2B8
|
// RAM sumbols
|
||||||
|
EWRAM_DATA struct OptionMenu *sOptionMenuPtr = NULL;
|
||||||
|
|
||||||
|
//Function Declarataions
|
||||||
|
static void CB2_InitOptionMenu(void);
|
||||||
|
static void VBlankCB_OptionMenu(void);
|
||||||
|
static void OptionMenu_InitCallbacks(void);
|
||||||
|
static void OptionMenu_SetVBlankCallback(void);
|
||||||
|
static void CB2_OptionMenu(void);
|
||||||
|
static void SetOptionMenuTask(void);
|
||||||
|
static void InitOptionMenuBg(void);
|
||||||
|
static void OptionMenu_PickSwitchCancel(void);
|
||||||
|
static void OptionMenu_ResetSpriteData(void);
|
||||||
|
static bool8 LoadOptionMenuPalette(void);
|
||||||
|
static void Task_OptionMenu(u8 taskId);
|
||||||
|
static u8 OptionMenu_ProcessInput(void);
|
||||||
|
static void BufferOptionMenuString(u8 selection);
|
||||||
|
static void CloseAndSaveOptionMenu(u8 taskId);
|
||||||
|
static void PrintOptionMenuHeader(void);
|
||||||
|
static void sub_8088C0C(void);
|
||||||
|
static void LoadOptionMenuItemNames(void);
|
||||||
|
static void sub_8088DE0(u16 selection);
|
||||||
|
|
||||||
|
// Data Definitions
|
||||||
|
static const struct WindowTemplate sOptionMenuWinTemplates[] =
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
.bg = 1,
|
.bg = 1,
|
||||||
@@ -47,7 +72,7 @@ static const struct WindowTemplate sOptionMenuWinTemplates[] = //3CC2B8
|
|||||||
.width = 26,
|
.width = 26,
|
||||||
.height = 2,
|
.height = 2,
|
||||||
.paletteNum = 1,
|
.paletteNum = 1,
|
||||||
.baseBlock = 2,
|
.baseBlock = 2
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.bg = 0,
|
.bg = 0,
|
||||||
@@ -56,7 +81,7 @@ static const struct WindowTemplate sOptionMenuWinTemplates[] = //3CC2B8
|
|||||||
.width = 26,
|
.width = 26,
|
||||||
.height = 12,
|
.height = 12,
|
||||||
.paletteNum = 1,
|
.paletteNum = 1,
|
||||||
.baseBlock = 0x36,
|
.baseBlock = 0x36
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.bg = 2,
|
.bg = 2,
|
||||||
@@ -65,11 +90,12 @@ static const struct WindowTemplate sOptionMenuWinTemplates[] = //3CC2B8
|
|||||||
.width = 30,
|
.width = 30,
|
||||||
.height = 2,
|
.height = 2,
|
||||||
.paletteNum = 0xF,
|
.paletteNum = 0xF,
|
||||||
.baseBlock = 0x16e,
|
.baseBlock = 0x16e
|
||||||
},
|
},
|
||||||
DUMMY_WIN_TEMPLATE,
|
DUMMY_WIN_TEMPLATE
|
||||||
};
|
};
|
||||||
static const struct BgTemplate sOptionMenuBgTemplates[] = //3CC2D8
|
|
||||||
|
static const struct BgTemplate sOptionMenuBgTemplates[] =
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
.bg = 1,
|
.bg = 1,
|
||||||
@@ -78,7 +104,7 @@ static const struct BgTemplate sOptionMenuBgTemplates[] = //3CC2D8
|
|||||||
.screenSize = 0,
|
.screenSize = 0,
|
||||||
.paletteMode = 0,
|
.paletteMode = 0,
|
||||||
.priority = 0,
|
.priority = 0,
|
||||||
.baseTile = 0,
|
.baseTile = 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.bg = 0,
|
.bg = 0,
|
||||||
@@ -87,7 +113,7 @@ static const struct BgTemplate sOptionMenuBgTemplates[] = //3CC2D8
|
|||||||
.screenSize = 0,
|
.screenSize = 0,
|
||||||
.paletteMode = 0,
|
.paletteMode = 0,
|
||||||
.priority = 1,
|
.priority = 1,
|
||||||
.baseTile = 0,
|
.baseTile = 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.bg = 2,
|
.bg = 2,
|
||||||
@@ -96,12 +122,14 @@ static const struct BgTemplate sOptionMenuBgTemplates[] = //3CC2D8
|
|||||||
.screenSize = 0,
|
.screenSize = 0,
|
||||||
.paletteMode = 0,
|
.paletteMode = 0,
|
||||||
.priority = 2,
|
.priority = 2,
|
||||||
.baseTile = 0,
|
.baseTile = 0
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
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 u16 sOptionMenuPalette[] = INCBIN_U16("graphics/misc/unk_83cc2e4.gbapal");
|
||||||
static const u8 *const sOptionMenuItemsNames[MENUITEM_COUNT] = //3CC314
|
static const u16 sOptionMenuItemCounts[MENUITEM_COUNT] = {3, 2, 2, 2, 3, 10, 0};
|
||||||
|
|
||||||
|
static const u8 *const sOptionMenuItemsNames[MENUITEM_COUNT] =
|
||||||
{
|
{
|
||||||
[MENUITEM_TEXTSPEED] = gText_TextSpeed,
|
[MENUITEM_TEXTSPEED] = gText_TextSpeed,
|
||||||
[MENUITEM_BATTLESCENE] = gText_BattleScene,
|
[MENUITEM_BATTLESCENE] = gText_BattleScene,
|
||||||
@@ -111,60 +139,44 @@ static const u8 *const sOptionMenuItemsNames[MENUITEM_COUNT] = //3CC314
|
|||||||
[MENUITEM_FRAMETYPE] = gText_Frame,
|
[MENUITEM_FRAMETYPE] = gText_Frame,
|
||||||
[MENUITEM_CANCEL] = gText_OptionMenuCancel,
|
[MENUITEM_CANCEL] = gText_OptionMenuCancel,
|
||||||
};
|
};
|
||||||
static const u8 *const sTextSpeedOptions[] = //3CC330
|
|
||||||
|
static const u8 *const sTextSpeedOptions[] =
|
||||||
{
|
{
|
||||||
gText_TextSpeedSlow,
|
gText_TextSpeedSlow,
|
||||||
gText_TextSpeedMid,
|
gText_TextSpeedMid,
|
||||||
gText_TextSpeedFast
|
gText_TextSpeedFast
|
||||||
};
|
};
|
||||||
static const u8 *const sBattleSceneOptions[] = //3CC33C
|
|
||||||
|
static const u8 *const sBattleSceneOptions[] =
|
||||||
{
|
{
|
||||||
gText_BattleSceneOn,
|
gText_BattleSceneOn,
|
||||||
gText_BattleSceneOff
|
gText_BattleSceneOff
|
||||||
};
|
};
|
||||||
static const u8 *const sBattleStyleOptions[] = //3CC344
|
|
||||||
|
static const u8 *const sBattleStyleOptions[] =
|
||||||
{
|
{
|
||||||
gText_BattleStyleShift,
|
gText_BattleStyleShift,
|
||||||
gText_BattleStyleSet
|
gText_BattleStyleSet
|
||||||
};
|
};
|
||||||
static const u8 *const sSoundOptions[] = //3CC34C
|
static const u8 *const sSoundOptions[] =
|
||||||
{
|
{
|
||||||
gText_SoundMono,
|
gText_SoundMono,
|
||||||
gText_SoundStereo
|
gText_SoundStereo
|
||||||
};
|
};
|
||||||
static const u8 *const sButtonTypeOptions[] = //3CC354
|
|
||||||
|
static const u8 *const sButtonTypeOptions[] =
|
||||||
{
|
{
|
||||||
gText_ButtonTypeNormal,
|
gText_ButtonTypeNormal,
|
||||||
gText_ButtonTypeLEqualsA,
|
gText_ButtonTypeLR,
|
||||||
gText_ButtonTypeLR,
|
gText_ButtonTypeLEqualsA
|
||||||
};
|
};
|
||||||
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 sOptionMenuPickSwitchCancelTextColor[] = {TEXT_DYNAMIC_COLOR_6, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY};
|
||||||
|
static const u8 sOptionMenuTextColor[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_RED, TEXT_COLOR_RED};
|
||||||
|
|
||||||
//This file's functions
|
struct OptionMenu
|
||||||
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(u16 selection);
|
|
||||||
|
|
||||||
struct OptionsMenu
|
|
||||||
{
|
{
|
||||||
/*0x00*/ u16 option[MENUITEM_COUNT]; //0,2,4,6,8,a,c
|
/*0x00*/ u16 option[MENUITEM_COUNT];
|
||||||
/*0x0E*/ u16 unkE;
|
/*0x0E*/ u16 unkE;
|
||||||
/*0x10*/ u8 state3;
|
/*0x10*/ u8 state3;
|
||||||
/*0x11*/ u8 state;
|
/*0x11*/ u8 state;
|
||||||
@@ -172,12 +184,7 @@ struct OptionsMenu
|
|||||||
/*0x13*/ u8 unk13;
|
/*0x13*/ u8 unk13;
|
||||||
};
|
};
|
||||||
|
|
||||||
EWRAM_DATA struct OptionsMenu *sOptionsMenuPtr = {0};
|
static void CB2_InitOptionMenu(void)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//CB2_InitOptionsMenu
|
|
||||||
static void sub_808835C(void)
|
|
||||||
{
|
{
|
||||||
RunTasks();
|
RunTasks();
|
||||||
AnimateSprites();
|
AnimateSprites();
|
||||||
@@ -185,123 +192,110 @@ static void sub_808835C(void)
|
|||||||
UpdatePaletteFade();
|
UpdatePaletteFade();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void VBlankCB_OptionMenu(void)
|
||||||
//VBlankCB_OptionsMenu
|
|
||||||
static void sub_8088374(void)
|
|
||||||
{
|
{
|
||||||
LoadOam();
|
LoadOam();
|
||||||
ProcessSpriteCopyRequests();
|
ProcessSpriteCopyRequests();
|
||||||
TransferPlttBuffer();
|
TransferPlttBuffer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//sub_8088388
|
|
||||||
void CB2_OptionsMenuFromStartMenu(void)
|
void CB2_OptionsMenuFromStartMenu(void)
|
||||||
{
|
{
|
||||||
u8 i;
|
u8 i;
|
||||||
|
|
||||||
if (gMain.savedCallback == NULL)
|
if (gMain.savedCallback == NULL)
|
||||||
gMain.savedCallback = CB2_ReturnToStartMenu;
|
gMain.savedCallback = CB2_ReturnToStartMenu;
|
||||||
sOptionsMenuPtr = AllocZeroed(sizeof(struct OptionsMenu));
|
sOptionMenuPtr = AllocZeroed(sizeof(struct OptionMenu));
|
||||||
sOptionsMenuPtr->state3 = 0;
|
sOptionMenuPtr->state3 = 0;
|
||||||
sOptionsMenuPtr->state2 = 0;
|
sOptionMenuPtr->state2 = 0;
|
||||||
sOptionsMenuPtr->state = 0;
|
sOptionMenuPtr->state = 0;
|
||||||
sOptionsMenuPtr->unkE = 0;
|
sOptionMenuPtr->unkE = 0;
|
||||||
sOptionsMenuPtr->option[MENUITEM_TEXTSPEED] = gSaveBlock2Ptr->optionsTextSpeed;
|
sOptionMenuPtr->option[MENUITEM_TEXTSPEED] = gSaveBlock2Ptr->optionsTextSpeed;
|
||||||
sOptionsMenuPtr->option[MENUITEM_BATTLESCENE] = gSaveBlock2Ptr->optionsBattleSceneOff;
|
sOptionMenuPtr->option[MENUITEM_BATTLESCENE] = gSaveBlock2Ptr->optionsBattleSceneOff;
|
||||||
sOptionsMenuPtr->option[MENUITEM_BATTLESTYLE] = gSaveBlock2Ptr->optionsBattleStyle;
|
sOptionMenuPtr->option[MENUITEM_BATTLESTYLE] = gSaveBlock2Ptr->optionsBattleStyle;
|
||||||
sOptionsMenuPtr->option[MENUITEM_SOUND] = gSaveBlock2Ptr->optionsSound;
|
sOptionMenuPtr->option[MENUITEM_SOUND] = gSaveBlock2Ptr->optionsSound;
|
||||||
sOptionsMenuPtr->option[MENUITEM_BUTTONMODE] = gSaveBlock2Ptr->optionsButtonMode;
|
sOptionMenuPtr->option[MENUITEM_BUTTONMODE] = gSaveBlock2Ptr->optionsButtonMode;
|
||||||
sOptionsMenuPtr->option[MENUITEM_FRAMETYPE] = gSaveBlock2Ptr->optionsWindowFrameType;
|
sOptionMenuPtr->option[MENUITEM_FRAMETYPE] = gSaveBlock2Ptr->optionsWindowFrameType;
|
||||||
|
|
||||||
for (i = 0; i < MENUITEM_COUNT-1; i++)
|
for (i = 0; i < MENUITEM_COUNT-1; i++)
|
||||||
{
|
{
|
||||||
if (sOptionsMenuPtr->option[i] > (sOptionsMenuItemCounts[i])-1)
|
if (sOptionMenuPtr->option[i] > (sOptionMenuItemCounts[i])-1)
|
||||||
sOptionsMenuPtr->option[i] = 0;
|
sOptionMenuPtr->option[i] = 0;
|
||||||
}
|
}
|
||||||
HelpSystem_SetSomeVariable2(0xD);
|
HelpSystem_SetSomeVariable2(0xD);
|
||||||
SetMainCallback2(sub_8088454);
|
SetMainCallback2(CB2_OptionMenu);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void OptionMenu_InitCallbacks(void)
|
||||||
//sub_8088430
|
|
||||||
static void sub_8088430(void)
|
|
||||||
{
|
{
|
||||||
SetVBlankCallback(0);
|
SetVBlankCallback(0);
|
||||||
SetHBlankCallback(0);
|
SetHBlankCallback(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void OptionMenu_SetVBlankCallback(void)
|
||||||
//sub_8088444
|
|
||||||
static void sub_8088444(void)
|
|
||||||
{
|
{
|
||||||
SetVBlankCallback(sub_8088374);
|
SetVBlankCallback(VBlankCB_OptionMenu);
|
||||||
}
|
}
|
||||||
|
|
||||||
//sub_8088454
|
static void CB2_OptionMenu(void)
|
||||||
static void sub_8088454(void)
|
|
||||||
{
|
{
|
||||||
u8 i, state;
|
u8 i, state;
|
||||||
state = sOptionsMenuPtr->state;
|
state = sOptionMenuPtr->state;
|
||||||
switch (state)
|
switch (state)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
sub_8088430();
|
OptionMenu_InitCallbacks();
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
sub_8088530();
|
InitOptionMenuBg();
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
sub_80886D4();
|
OptionMenu_ResetSpriteData();
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
if (sub_80886F0() != TRUE) //silly matching quirk
|
if (LoadOptionMenuPalette() != TRUE)
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
sub_8088BD0();
|
PrintOptionMenuHeader();
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
sub_8088C0C();
|
sub_8088C0C();
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
sub_8088D8C();
|
LoadOptionMenuItemNames();
|
||||||
break;
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
for (i = 0; i < MENUITEM_COUNT; i++)
|
for (i = 0; i < MENUITEM_COUNT; i++)
|
||||||
sub_80889A8(i);
|
BufferOptionMenuString(i);
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
sub_8088DE0(sOptionsMenuPtr->unkE);
|
sub_8088DE0(sOptionMenuPtr->unkE);
|
||||||
break;
|
break;
|
||||||
case 9:
|
case 9:
|
||||||
sub_8088680();
|
OptionMenu_PickSwitchCancel();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
sub_8088514();
|
SetOptionMenuTask();
|
||||||
}
|
}
|
||||||
sOptionsMenuPtr->state++;
|
sOptionMenuPtr->state++;
|
||||||
}
|
}
|
||||||
|
|
||||||
//sub_8088514
|
static void SetOptionMenuTask(void)
|
||||||
static void sub_8088514(void)
|
|
||||||
{
|
{
|
||||||
CreateTask(sub_8088780, 0);
|
CreateTask(Task_OptionMenu, 0);
|
||||||
SetMainCallback2(sub_808835C);
|
SetMainCallback2(CB2_InitOptionMenu);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void InitOptionMenuBg(void)
|
||||||
//sub_8088530
|
|
||||||
static void sub_8088530(void)
|
|
||||||
{
|
{
|
||||||
void * dest = (void *) VRAM;
|
void * dest = (void *) VRAM;
|
||||||
DmaClearLarge16(3, dest, VRAM_SIZE, 0x1000);
|
DmaClearLarge16(3, dest, VRAM_SIZE, 0x1000);
|
||||||
|
|
||||||
DmaClear32(3, (void *)OAM, OAM_SIZE);
|
DmaClear32(3, (void *)OAM, OAM_SIZE);
|
||||||
DmaClear16(3, (void *)PLTT, PLTT_SIZE);
|
DmaClear16(3, (void *)PLTT, PLTT_SIZE);
|
||||||
SetGpuReg(REG_OFFSET_DISPCNT, 0);
|
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0);
|
||||||
ResetBgsAndClearDma3BusyFlags(0);
|
ResetBgsAndClearDma3BusyFlags(0);
|
||||||
InitBgsFromTemplates(0, sOptionMenuBgTemplates, ARRAY_COUNT(sOptionMenuBgTemplates));
|
InitBgsFromTemplates(0, sOptionMenuBgTemplates, NELEMS(sOptionMenuBgTemplates));
|
||||||
ChangeBgX(0, 0, 0);
|
ChangeBgX(0, 0, 0);
|
||||||
ChangeBgY(0, 0, 0);
|
ChangeBgY(0, 0, 0);
|
||||||
ChangeBgX(1, 0, 0);
|
ChangeBgX(1, 0, 0);
|
||||||
@@ -312,30 +306,27 @@ static void sub_8088530(void)
|
|||||||
ChangeBgY(3, 0, 0);
|
ChangeBgY(3, 0, 0);
|
||||||
InitWindows(sOptionMenuWinTemplates);
|
InitWindows(sOptionMenuWinTemplates);
|
||||||
DeactivateAllTextPrinters();
|
DeactivateAllTextPrinters();
|
||||||
SetGpuReg(REG_OFFSET_BLDCNT, 0xC1);
|
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_EFFECT_LIGHTEN);
|
||||||
SetGpuReg(REG_OFFSET_BLDY, 2);
|
SetGpuReg(REG_OFFSET_BLDY, BLDCNT_TGT1_BG1);
|
||||||
SetGpuReg(REG_OFFSET_WININ, 1);
|
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG0);
|
||||||
SetGpuReg(REG_OFFSET_WINOUT, 0x27);
|
SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_CLR);
|
||||||
SetGpuReg(0, 0x3040);
|
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON);
|
||||||
ShowBg(0);
|
ShowBg(0);
|
||||||
ShowBg(1);
|
ShowBg(1);
|
||||||
ShowBg(2);
|
ShowBg(2);
|
||||||
};
|
};
|
||||||
|
|
||||||
//sub_8088680
|
static void OptionMenu_PickSwitchCancel(void)
|
||||||
static void sub_8088680(void)
|
|
||||||
{
|
{
|
||||||
s32 x;
|
s32 x;
|
||||||
x = 0xE4 - GetStringWidth(0, gText_PickSwitchCancel, 0);
|
x = 0xE4 - GetStringWidth(0, gText_PickSwitchCancel, 0);
|
||||||
FillWindowPixelBuffer(2, 0xFF);
|
FillWindowPixelBuffer(2, PIXEL_FILL(15));
|
||||||
AddTextPrinterParameterized3(2, 0, x, 0, sOptionsMenuPickSwitchCancelTextColor, 0, gText_PickSwitchCancel);
|
AddTextPrinterParameterized3(2, 0, x, 0, sOptionMenuPickSwitchCancelTextColor, 0, gText_PickSwitchCancel);
|
||||||
PutWindowTilemap(2);
|
PutWindowTilemap(2);
|
||||||
CopyWindowToVram(2, 3);
|
CopyWindowToVram(2, 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void OptionMenu_ResetSpriteData(void)
|
||||||
//sub_80886D4
|
|
||||||
static void sub_80886D4(void)
|
|
||||||
{
|
{
|
||||||
ResetSpriteData();
|
ResetSpriteData();
|
||||||
ResetPaletteFade();
|
ResetPaletteFade();
|
||||||
@@ -344,19 +335,18 @@ static void sub_80886D4(void)
|
|||||||
ScanlineEffect_Stop();
|
ScanlineEffect_Stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
//sub_80886F0
|
static bool8 LoadOptionMenuPalette(void)
|
||||||
static bool8 sub_80886F0(void)
|
|
||||||
{
|
{
|
||||||
switch (sOptionsMenuPtr->state2)
|
switch (sOptionMenuPtr->state2)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
LoadBgTiles(1, GetUserFrameGraphicsInfo(sOptionsMenuPtr->option[MENUITEM_FRAMETYPE])->tiles, 0x120, 0x1AA);
|
LoadBgTiles(1, GetUserFrameGraphicsInfo(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->tiles, 0x120, 0x1AA);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
LoadPalette(GetUserFrameGraphicsInfo(sOptionsMenuPtr->option[MENUITEM_FRAMETYPE])->palette, 0x20, 0x20);
|
LoadPalette(GetUserFrameGraphicsInfo(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->palette, 0x20, 0x20);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
LoadPalette(sOptionsMenuPalette, 0x10, 0x20);
|
LoadPalette(sOptionMenuPalette, 0x10, 0x20);
|
||||||
LoadPalette(stdpal_get(2), 0xF0, 0x20);
|
LoadPalette(stdpal_get(2), 0xF0, 0x20);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
@@ -365,60 +355,58 @@ static bool8 sub_80886F0(void)
|
|||||||
default:
|
default:
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
sOptionsMenuPtr->state2++;
|
sOptionMenuPtr->state2++;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// I could not get this function to match. GOTO statements weren't even compiling correctly.
|
// I could not get this function to match. GOTO statements weren't even compiling correctly.
|
||||||
#ifdef NONMATCHING
|
#ifdef NONMATCHING
|
||||||
static void sub_8088780(u8 taskId)
|
static void Task_OptionMenu(u8 taskId)
|
||||||
{
|
{
|
||||||
u8 v2, v5;
|
u8 v2, v5;
|
||||||
struct OptionsMenu v4;
|
struct OptionMenu v4;
|
||||||
|
|
||||||
switch (sOptionsMenuPtr->state3)
|
switch (sOptionMenuPtr->state3)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
|
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK);
|
||||||
sub_8088444();
|
OptionMenu_SetVBlankCallback();
|
||||||
sOptionsMenuPtr->state3++;
|
sOptionMenuPtr->state3++;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
if ((bool32) sub_80BF72C() == TRUE) //cast to bool32 to remove the lsl/lsr 0x18 after func call
|
if ((bool32) sub_80BF72C() == TRUE) //cast to bool32 to remove the lsl/lsr 0x18 after func call
|
||||||
return;
|
return;
|
||||||
switch (sub_80888C0())
|
switch (OptionMenu_ProcessInput())
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
sOptionsMenuPtr->state3++;
|
sOptionMenuPtr->state3++;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
LoadBgTiles(1, GetUserFrameGraphicsInfo(sOptionsMenuPtr->option[MENUITEM_FRAMETYPE])->tiles, 0x120, 0x1AA);
|
LoadBgTiles(1, GetUserFrameGraphicsInfo(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->tiles, 0x120, 0x1AA);
|
||||||
LoadPalette(GetUserFrameGraphicsInfo(sOptionsMenuPtr->option[MENUITEM_FRAMETYPE])->palette, 0x20, 0x20);
|
LoadPalette(GetUserFrameGraphicsInfo(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->palette, 0x20, 0x20);
|
||||||
sub_80889A8(sOptionsMenuPtr->unkE);
|
BufferOptionMenuString(sOptionMenuPtr->unkE);
|
||||||
sOptionsMenuPtr->state3++;
|
sOptionMenuPtr->state3++;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
sub_8088DE0(sOptionsMenuPtr->unkE);
|
sub_8088DE0(sOptionMenuPtr->unkE);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
sub_80889A8(sOptionsMenuPtr->unkE);
|
BufferOptionMenuString(sOptionMenuPtr->unkE);
|
||||||
sOptionsMenuPtr->state3++;
|
sOptionMenuPtr->state3++;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
case 3:
|
case 3:
|
||||||
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
|
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK);
|
||||||
sOptionsMenuPtr->state3++;
|
sOptionMenuPtr->state3++;
|
||||||
case 1:
|
case 1:
|
||||||
case 4:
|
case 4:
|
||||||
if (gPaletteFade.active)
|
if (gPaletteFade.active)
|
||||||
return;
|
return;
|
||||||
sOptionsMenuPtr->state3++;
|
sOptionMenuPtr->state3++;
|
||||||
case 5:
|
case 5:
|
||||||
sub_8088B00(taskId);
|
CloseAndSaveOptionMenu(taskId);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
@@ -426,13 +414,13 @@ static void sub_8088780(u8 taskId)
|
|||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
NAKED
|
NAKED
|
||||||
static void sub_8088780(u8 taskId)
|
static void Task_OptionMenu(u8 taskId)
|
||||||
{
|
{
|
||||||
asm_unified("\tpush {r4,lr}\n"
|
asm_unified("\tpush {r4,lr}\n"
|
||||||
"\tsub sp, 0x4\n"
|
"\tsub sp, 0x4\n"
|
||||||
"\tlsls r0, 24\n"
|
"\tlsls r0, 24\n"
|
||||||
"\tlsrs r2, r0, 24\n"
|
"\tlsrs r2, r0, 24\n"
|
||||||
"\tldr r1, _080887A0 @ =sOptionsMenuPtr\n"
|
"\tldr r1, _080887A0 @ =sOptionMenuPtr\n"
|
||||||
"\tldr r0, [r1]\n"
|
"\tldr r0, [r1]\n"
|
||||||
"\tldrb r0, [r0, 0x10]\n"
|
"\tldrb r0, [r0, 0x10]\n"
|
||||||
"\tadds r3, r1, 0\n"
|
"\tadds r3, r1, 0\n"
|
||||||
@@ -446,7 +434,7 @@ static void sub_8088780(u8 taskId)
|
|||||||
"\tldr r0, [r0]\n"
|
"\tldr r0, [r0]\n"
|
||||||
"\tmov pc, r0\n"
|
"\tmov pc, r0\n"
|
||||||
"\t.align 2, 0\n"
|
"\t.align 2, 0\n"
|
||||||
"_080887A0: .4byte sOptionsMenuPtr\n"
|
"_080887A0: .4byte sOptionMenuPtr\n"
|
||||||
"_080887A4: .4byte _080887A8\n"
|
"_080887A4: .4byte _080887A8\n"
|
||||||
"\t.align 2, 0\n"
|
"\t.align 2, 0\n"
|
||||||
"_080887A8:\n"
|
"_080887A8:\n"
|
||||||
@@ -464,17 +452,17 @@ static void sub_8088780(u8 taskId)
|
|||||||
"\tmovs r2, 0x10\n"
|
"\tmovs r2, 0x10\n"
|
||||||
"\tmovs r3, 0\n"
|
"\tmovs r3, 0\n"
|
||||||
"\tbl BeginNormalPaletteFade\n"
|
"\tbl BeginNormalPaletteFade\n"
|
||||||
"\tbl sub_8088444\n"
|
"\tbl OptionMenu_SetVBlankCallback\n"
|
||||||
"\tldr r0, _080887DC @ =sOptionsMenuPtr\n"
|
"\tldr r0, _080887DC @ =sOptionMenuPtr\n"
|
||||||
"\tldr r1, [r0]\n"
|
"\tldr r1, [r0]\n"
|
||||||
"\tb _080888A2\n"
|
"\tb _080888A2\n"
|
||||||
"\t.align 2, 0\n"
|
"\t.align 2, 0\n"
|
||||||
"_080887DC: .4byte sOptionsMenuPtr\n"
|
"_080887DC: .4byte sOptionMenuPtr\n"
|
||||||
"_080887E0:\n"
|
"_080887E0:\n"
|
||||||
"\tbl sub_80BF72C\n"
|
"\tbl sub_80BF72C\n"
|
||||||
"\tcmp r0, 0x1\n"
|
"\tcmp r0, 0x1\n"
|
||||||
"\tbeq _080888B6\n"
|
"\tbeq _080888B6\n"
|
||||||
"\tbl sub_80888C0\n"
|
"\tbl OptionMenu_ProcessInput\n"
|
||||||
"\tlsls r0, 24\n"
|
"\tlsls r0, 24\n"
|
||||||
"\tlsrs r0, 24\n"
|
"\tlsrs r0, 24\n"
|
||||||
"\tcmp r0, 0x4\n"
|
"\tcmp r0, 0x4\n"
|
||||||
@@ -494,13 +482,13 @@ static void sub_8088780(u8 taskId)
|
|||||||
"\t.4byte _08088858\n"
|
"\t.4byte _08088858\n"
|
||||||
"\t.4byte _08088868\n"
|
"\t.4byte _08088868\n"
|
||||||
"_08088818:\n"
|
"_08088818:\n"
|
||||||
"\tldr r0, _08088820 @ =sOptionsMenuPtr\n"
|
"\tldr r0, _08088820 @ =sOptionMenuPtr\n"
|
||||||
"\tldr r1, [r0]\n"
|
"\tldr r1, [r0]\n"
|
||||||
"\tb _080888A2\n"
|
"\tb _080888A2\n"
|
||||||
"\t.align 2, 0\n"
|
"\t.align 2, 0\n"
|
||||||
"_08088820: .4byte sOptionsMenuPtr\n"
|
"_08088820: .4byte sOptionMenuPtr\n"
|
||||||
"_08088824:\n"
|
"_08088824:\n"
|
||||||
"\tldr r4, _08088854 @ =sOptionsMenuPtr\n"
|
"\tldr r4, _08088854 @ =sOptionMenuPtr\n"
|
||||||
"\tldr r0, [r4]\n"
|
"\tldr r0, [r4]\n"
|
||||||
"\tldrb r0, [r0, 0xA]\n"
|
"\tldrb r0, [r0, 0xA]\n"
|
||||||
"\tbl GetUserFrameGraphicsInfo\n"
|
"\tbl GetUserFrameGraphicsInfo\n"
|
||||||
@@ -521,24 +509,24 @@ static void sub_8088780(u8 taskId)
|
|||||||
"\tldr r0, [r4]\n"
|
"\tldr r0, [r4]\n"
|
||||||
"\tb _0808886C\n"
|
"\tb _0808886C\n"
|
||||||
"\t.align 2, 0\n"
|
"\t.align 2, 0\n"
|
||||||
"_08088854: .4byte sOptionsMenuPtr\n"
|
"_08088854: .4byte sOptionMenuPtr\n"
|
||||||
"_08088858:\n"
|
"_08088858:\n"
|
||||||
"\tldr r0, _08088864 @ =sOptionsMenuPtr\n"
|
"\tldr r0, _08088864 @ =sOptionMenuPtr\n"
|
||||||
"\tldr r0, [r0]\n"
|
"\tldr r0, [r0]\n"
|
||||||
"\tldrh r0, [r0, 0xE]\n"
|
"\tldrh r0, [r0, 0xE]\n"
|
||||||
"\tbl sub_8088DE0\n"
|
"\tbl sub_8088DE0\n"
|
||||||
"\tb _080888B6\n"
|
"\tb _080888B6\n"
|
||||||
"\t.align 2, 0\n"
|
"\t.align 2, 0\n"
|
||||||
"_08088864: .4byte sOptionsMenuPtr\n"
|
"_08088864: .4byte sOptionMenuPtr\n"
|
||||||
"_08088868:\n"
|
"_08088868:\n"
|
||||||
"\tldr r0, _08088874 @ =sOptionsMenuPtr\n"
|
"\tldr r0, _08088874 @ =sOptionMenuPtr\n"
|
||||||
"\tldr r0, [r0]\n"
|
"\tldr r0, [r0]\n"
|
||||||
"_0808886C:\n"
|
"_0808886C:\n"
|
||||||
"\tldrb r0, [r0, 0xE]\n"
|
"\tldrb r0, [r0, 0xE]\n"
|
||||||
"\tbl sub_80889A8\n"
|
"\tbl BufferOptionMenuString\n"
|
||||||
"\tb _080888B6\n"
|
"\tb _080888B6\n"
|
||||||
"\t.align 2, 0\n"
|
"\t.align 2, 0\n"
|
||||||
"_08088874: .4byte sOptionsMenuPtr\n"
|
"_08088874: .4byte sOptionMenuPtr\n"
|
||||||
"_08088878:\n"
|
"_08088878:\n"
|
||||||
"\tmovs r0, 0x1\n"
|
"\tmovs r0, 0x1\n"
|
||||||
"\tnegs r0, r0\n"
|
"\tnegs r0, r0\n"
|
||||||
@@ -547,11 +535,11 @@ static void sub_8088780(u8 taskId)
|
|||||||
"\tmovs r2, 0\n"
|
"\tmovs r2, 0\n"
|
||||||
"\tmovs r3, 0x10\n"
|
"\tmovs r3, 0x10\n"
|
||||||
"\tbl BeginNormalPaletteFade\n"
|
"\tbl BeginNormalPaletteFade\n"
|
||||||
"\tldr r0, _08088890 @ =sOptionsMenuPtr\n"
|
"\tldr r0, _08088890 @ =sOptionMenuPtr\n"
|
||||||
"\tldr r1, [r0]\n"
|
"\tldr r1, [r0]\n"
|
||||||
"\tb _080888A2\n"
|
"\tb _080888A2\n"
|
||||||
"\t.align 2, 0\n"
|
"\t.align 2, 0\n"
|
||||||
"_08088890: .4byte sOptionsMenuPtr\n"
|
"_08088890: .4byte sOptionMenuPtr\n"
|
||||||
"_08088894:\n"
|
"_08088894:\n"
|
||||||
"\tldr r0, _080888AC @ =gPaletteFade\n"
|
"\tldr r0, _080888AC @ =gPaletteFade\n"
|
||||||
"\tldrb r1, [r0, 0x7]\n"
|
"\tldrb r1, [r0, 0x7]\n"
|
||||||
@@ -569,7 +557,7 @@ static void sub_8088780(u8 taskId)
|
|||||||
"_080888AC: .4byte gPaletteFade\n"
|
"_080888AC: .4byte gPaletteFade\n"
|
||||||
"_080888B0:\n"
|
"_080888B0:\n"
|
||||||
"\tadds r0, r2, 0\n"
|
"\tadds r0, r2, 0\n"
|
||||||
"\tbl sub_8088B00\n"
|
"\tbl CloseAndSaveOptionMenu\n"
|
||||||
"_080888B6:\n"
|
"_080888B6:\n"
|
||||||
"\tadd sp, 0x4\n"
|
"\tadd sp, 0x4\n"
|
||||||
"\tpop {r4}\n"
|
"\tpop {r4}\n"
|
||||||
@@ -578,53 +566,52 @@ static void sub_8088780(u8 taskId)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//OptionsMenu_ProcessInput
|
static u8 OptionMenu_ProcessInput(void)
|
||||||
static u8 sub_80888C0(void)
|
|
||||||
{
|
{
|
||||||
u16 current;
|
u16 current;
|
||||||
u16* curr;
|
u16* curr;
|
||||||
if (gMain.newAndRepeatedKeys & DPAD_RIGHT)
|
if (JOY_REPT(DPAD_RIGHT))
|
||||||
{
|
{
|
||||||
current = sOptionsMenuPtr->option[(sOptionsMenuPtr->unkE)];
|
current = sOptionMenuPtr->option[(sOptionMenuPtr->unkE)];
|
||||||
if (current == (sOptionsMenuItemCounts[sOptionsMenuPtr->unkE] - 1))
|
if (current == (sOptionMenuItemCounts[sOptionMenuPtr->unkE] - 1))
|
||||||
sOptionsMenuPtr->option[sOptionsMenuPtr->unkE] = 0;
|
sOptionMenuPtr->option[sOptionMenuPtr->unkE] = 0;
|
||||||
else
|
else
|
||||||
sOptionsMenuPtr->option[sOptionsMenuPtr->unkE] = current + 1;
|
sOptionMenuPtr->option[sOptionMenuPtr->unkE] = current + 1;
|
||||||
if (sOptionsMenuPtr->unkE == MENUITEM_FRAMETYPE)
|
if (sOptionMenuPtr->unkE == MENUITEM_FRAMETYPE)
|
||||||
return 2;
|
return 2;
|
||||||
else
|
else
|
||||||
return 4;
|
return 4;
|
||||||
}
|
}
|
||||||
else if (gMain.newAndRepeatedKeys & DPAD_LEFT)
|
else if (JOY_REPT(DPAD_LEFT))
|
||||||
{
|
{
|
||||||
curr = &sOptionsMenuPtr->option[sOptionsMenuPtr->unkE];
|
curr = &sOptionMenuPtr->option[sOptionMenuPtr->unkE];
|
||||||
if (*curr == 0)
|
if (*curr == 0)
|
||||||
*curr = sOptionsMenuItemCounts[sOptionsMenuPtr->unkE] - 1;
|
*curr = sOptionMenuItemCounts[sOptionMenuPtr->unkE] - 1;
|
||||||
else
|
else
|
||||||
--*(curr);
|
--*curr;
|
||||||
|
|
||||||
if (sOptionsMenuPtr->unkE == MENUITEM_FRAMETYPE)
|
if (sOptionMenuPtr->unkE == MENUITEM_FRAMETYPE)
|
||||||
return 2;
|
return 2;
|
||||||
else
|
else
|
||||||
return 4;
|
return 4;
|
||||||
}
|
}
|
||||||
else if (gMain.newAndRepeatedKeys & DPAD_UP)
|
else if (JOY_REPT(DPAD_UP))
|
||||||
{
|
{
|
||||||
if (sOptionsMenuPtr->unkE == MENUITEM_TEXTSPEED)
|
if (sOptionMenuPtr->unkE == MENUITEM_TEXTSPEED)
|
||||||
sOptionsMenuPtr->unkE = MENUITEM_CANCEL;
|
sOptionMenuPtr->unkE = MENUITEM_CANCEL;
|
||||||
else
|
else
|
||||||
sOptionsMenuPtr->unkE = sOptionsMenuPtr->unkE - 1;
|
sOptionMenuPtr->unkE = sOptionMenuPtr->unkE - 1;
|
||||||
return 3;
|
return 3;
|
||||||
}
|
}
|
||||||
else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
|
else if (JOY_REPT(DPAD_DOWN))
|
||||||
{
|
{
|
||||||
if (sOptionsMenuPtr->unkE == MENUITEM_CANCEL)
|
if (sOptionMenuPtr->unkE == MENUITEM_CANCEL)
|
||||||
sOptionsMenuPtr->unkE = MENUITEM_TEXTSPEED;
|
sOptionMenuPtr->unkE = MENUITEM_TEXTSPEED;
|
||||||
else
|
else
|
||||||
sOptionsMenuPtr->unkE = sOptionsMenuPtr->unkE + 1;
|
sOptionMenuPtr->unkE = sOptionMenuPtr->unkE + 1;
|
||||||
return 3;
|
return 3;
|
||||||
}
|
}
|
||||||
else if ((gMain.newKeys & B_BUTTON) || (gMain.newKeys & A_BUTTON))
|
else if (JOY_NEW(B_BUTTON) || JOY_NEW(A_BUTTON))
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@@ -634,17 +621,15 @@ static u8 sub_80888C0(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//sub_80889A8
|
|
||||||
#ifdef NONMATCHING // could not get it to match perfectly, no idea how they put so many vars on the stack
|
#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)
|
static void BufferOptionMenuString(u8 selection)
|
||||||
{
|
{
|
||||||
u8* dst;
|
u8 dst[3];
|
||||||
u8* str;
|
u8* str;
|
||||||
u8* v8;
|
u8* v8;
|
||||||
u8 x, y;
|
u8 x, y;
|
||||||
|
|
||||||
memcpy(&dst, sOptionsMenuTextColor, 3);
|
memcpy(&dst, sOptionMenuTextColor, 3);
|
||||||
y = ((GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT) - 1) * selection) + 2;
|
y = ((GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT) - 1) * selection) + 2;
|
||||||
x = 0x82;
|
x = 0x82;
|
||||||
FillWindowPixelRect(1, 1, x, y, 0x46, GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT));
|
FillWindowPixelRect(1, 1, x, y, 0x46, GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT));
|
||||||
@@ -668,7 +653,7 @@ static void sub_80889A8(u8 selection)
|
|||||||
break;
|
break;
|
||||||
case MENUITEM_FRAMETYPE:
|
case MENUITEM_FRAMETYPE:
|
||||||
StringCopy(str, gText_FrameType);
|
StringCopy(str, gText_FrameType);
|
||||||
ConvertIntToDecimalStringN(v8, sOptionsMenuPtr->option[2*selection] + 1, 1, 2);
|
ConvertIntToDecimalStringN(v8, sOptionMenuPtr->option[2 * selection] + 1, 1, 2);
|
||||||
StringAppendN(str, v8, 3);
|
StringAppendN(str, v8, 3);
|
||||||
AddTextPrinterParameterized3(1, 2, x, y, dst, -1, str);
|
AddTextPrinterParameterized3(1, 2, x, y, dst, -1, str);
|
||||||
break;
|
break;
|
||||||
@@ -680,7 +665,7 @@ static void sub_80889A8(u8 selection)
|
|||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
NAKED
|
NAKED
|
||||||
static void sub_80889A8(u8 selection)
|
static void BufferOptionMenuString(u8 selection)
|
||||||
{
|
{
|
||||||
asm_unified("\tpush {r4-r7,lr}\n"
|
asm_unified("\tpush {r4-r7,lr}\n"
|
||||||
"\tmov r7, r8\n"
|
"\tmov r7, r8\n"
|
||||||
@@ -689,7 +674,7 @@ static void sub_80889A8(u8 selection)
|
|||||||
"\tlsls r0, 24\n"
|
"\tlsls r0, 24\n"
|
||||||
"\tlsrs r5, r0, 24\n"
|
"\tlsrs r5, r0, 24\n"
|
||||||
"\tadd r4, sp, 0x2C\n"
|
"\tadd r4, sp, 0x2C\n"
|
||||||
"\tldr r1, _08088A08 @ =sOptionsMenuTextColor\n"
|
"\tldr r1, _08088A08 @ =sOptionMenuTextColor\n"
|
||||||
"\tadds r0, r4, 0\n"
|
"\tadds r0, r4, 0\n"
|
||||||
"\tmovs r2, 0x3\n"
|
"\tmovs r2, 0x3\n"
|
||||||
"\tbl memcpy\n"
|
"\tbl memcpy\n"
|
||||||
@@ -727,7 +712,7 @@ static void sub_80889A8(u8 selection)
|
|||||||
"\tldr r0, [r0]\n"
|
"\tldr r0, [r0]\n"
|
||||||
"\tmov pc, r0\n"
|
"\tmov pc, r0\n"
|
||||||
"\t.align 2, 0\n"
|
"\t.align 2, 0\n"
|
||||||
"_08088A08: .4byte sOptionsMenuTextColor\n"
|
"_08088A08: .4byte sOptionMenuTextColor\n"
|
||||||
"_08088A0C: .4byte _08088A10\n"
|
"_08088A0C: .4byte _08088A10\n"
|
||||||
"\t.align 2, 0\n"
|
"\t.align 2, 0\n"
|
||||||
"_08088A10:\n"
|
"_08088A10:\n"
|
||||||
@@ -780,7 +765,7 @@ static void sub_80889A8(u8 selection)
|
|||||||
"\tstr r0, [sp, 0x4]\n"
|
"\tstr r0, [sp, 0x4]\n"
|
||||||
"\tldr r2, _08088A94 @ =sButtonTypeOptions\n"
|
"\tldr r2, _08088A94 @ =sButtonTypeOptions\n"
|
||||||
"_08088A72:\n"
|
"_08088A72:\n"
|
||||||
"\tldr r0, _08088A98 @ =sOptionsMenuPtr\n"
|
"\tldr r0, _08088A98 @ =sOptionMenuPtr\n"
|
||||||
"\tldr r0, [r0]\n"
|
"\tldr r0, [r0]\n"
|
||||||
"\tlsls r1, r5, 1\n"
|
"\tlsls r1, r5, 1\n"
|
||||||
"\tadds r0, r1\n"
|
"\tadds r0, r1\n"
|
||||||
@@ -797,13 +782,13 @@ static void sub_80889A8(u8 selection)
|
|||||||
"\tb _08088ADE\n"
|
"\tb _08088ADE\n"
|
||||||
"\t.align 2, 0\n"
|
"\t.align 2, 0\n"
|
||||||
"_08088A94: .4byte sButtonTypeOptions\n"
|
"_08088A94: .4byte sButtonTypeOptions\n"
|
||||||
"_08088A98: .4byte sOptionsMenuPtr\n"
|
"_08088A98: .4byte sOptionMenuPtr\n"
|
||||||
"_08088A9C:\n"
|
"_08088A9C:\n"
|
||||||
"\tldr r1, _08088AF8 @ =gText_FrameType\n"
|
"\tldr r1, _08088AF8 @ =gText_FrameType\n"
|
||||||
"\tadd r0, sp, 0xC\n"
|
"\tadd r0, sp, 0xC\n"
|
||||||
"\tbl StringCopy\n"
|
"\tbl StringCopy\n"
|
||||||
"\tadd r4, sp, 0x20\n"
|
"\tadd r4, sp, 0x20\n"
|
||||||
"\tldr r0, _08088AFC @ =sOptionsMenuPtr\n"
|
"\tldr r0, _08088AFC @ =sOptionMenuPtr\n"
|
||||||
"\tldr r0, [r0]\n"
|
"\tldr r0, [r0]\n"
|
||||||
"\tlsls r1, r5, 1\n"
|
"\tlsls r1, r5, 1\n"
|
||||||
"\tadds r0, r1\n"
|
"\tadds r0, r1\n"
|
||||||
@@ -842,43 +827,35 @@ static void sub_80889A8(u8 selection)
|
|||||||
"\tbx r0\n"
|
"\tbx r0\n"
|
||||||
"\t.align 2, 0\n"
|
"\t.align 2, 0\n"
|
||||||
"_08088AF8: .4byte gText_FrameType\n"
|
"_08088AF8: .4byte gText_FrameType\n"
|
||||||
"_08088AFC: .4byte sOptionsMenuPtr\n");
|
"_08088AFC: .4byte sOptionMenuPtr\n");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static void CloseAndSaveOptionMenu(u8 taskId)
|
||||||
//sub_8088B00
|
|
||||||
static void sub_8088B00(u8 taskId)
|
|
||||||
{
|
{
|
||||||
gFieldCallback = sub_807DF64;
|
gFieldCallback = sub_807DF64;
|
||||||
SetMainCallback2(gMain.savedCallback);
|
SetMainCallback2(gMain.savedCallback);
|
||||||
FreeAllWindowBuffers();
|
FreeAllWindowBuffers();
|
||||||
|
|
||||||
gSaveBlock2Ptr->optionsTextSpeed = (u8) sOptionsMenuPtr->option[MENUITEM_TEXTSPEED];
|
gSaveBlock2Ptr->optionsTextSpeed = (u8) sOptionMenuPtr->option[MENUITEM_TEXTSPEED];
|
||||||
gSaveBlock2Ptr->optionsBattleSceneOff = (u8) sOptionsMenuPtr->option[MENUITEM_BATTLESCENE];
|
gSaveBlock2Ptr->optionsBattleSceneOff = (u8) sOptionMenuPtr->option[MENUITEM_BATTLESCENE];
|
||||||
gSaveBlock2Ptr->optionsBattleStyle = (u8) sOptionsMenuPtr->option[MENUITEM_BATTLESTYLE];
|
gSaveBlock2Ptr->optionsBattleStyle = (u8) sOptionMenuPtr->option[MENUITEM_BATTLESTYLE];
|
||||||
gSaveBlock2Ptr->optionsSound = sOptionsMenuPtr->option[MENUITEM_SOUND];
|
gSaveBlock2Ptr->optionsSound = sOptionMenuPtr->option[MENUITEM_SOUND];
|
||||||
gSaveBlock2Ptr->optionsButtonMode = (u8) sOptionsMenuPtr->option[MENUITEM_BUTTONMODE];
|
gSaveBlock2Ptr->optionsButtonMode = (u8) sOptionMenuPtr->option[MENUITEM_BUTTONMODE];
|
||||||
gSaveBlock2Ptr->optionsWindowFrameType = (u8) sOptionsMenuPtr->option[MENUITEM_FRAMETYPE];
|
gSaveBlock2Ptr->optionsWindowFrameType = (u8) sOptionMenuPtr->option[MENUITEM_FRAMETYPE];
|
||||||
SetPokemonCryStereo(gSaveBlock2Ptr->optionsSound);
|
SetPokemonCryStereo(gSaveBlock2Ptr->optionsSound);
|
||||||
Free(sOptionsMenuPtr);
|
FREE_AND_SET_NULL(sOptionMenuPtr);
|
||||||
sOptionsMenuPtr = NULL;
|
|
||||||
DestroyTask(taskId);
|
DestroyTask(taskId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void PrintOptionMenuHeader(void)
|
||||||
|
|
||||||
//sub_8088BD0
|
|
||||||
static void sub_8088BD0(void)
|
|
||||||
{
|
{
|
||||||
FillWindowPixelBuffer(0, 0x11);
|
FillWindowPixelBuffer(0, PIXEL_FILL(1));
|
||||||
AddTextPrinterParameterized(WIN_TEXT_OPTION, 2, gText_MenuOptionOption, 8, 1, TEXT_SPEED_FF, NULL);
|
AddTextPrinterParameterized(WIN_TEXT_OPTION, 2, gText_MenuOption, 8, 1, TEXT_SPEED_FF, NULL);
|
||||||
PutWindowTilemap(0);
|
PutWindowTilemap(0);
|
||||||
CopyWindowToVram(0, 3);
|
CopyWindowToVram(0, 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//sub_8088C0C
|
|
||||||
static void sub_8088C0C(void)
|
static void sub_8088C0C(void)
|
||||||
{
|
{
|
||||||
u8 h;
|
u8 h;
|
||||||
@@ -903,27 +880,23 @@ static void sub_8088C0C(void)
|
|||||||
CopyBgTilemapBufferToVram(1);
|
CopyBgTilemapBufferToVram(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
//sub_8088D8C
|
static void LoadOptionMenuItemNames(void)
|
||||||
static void sub_8088D8C(void)
|
|
||||||
{
|
{
|
||||||
u8 i;
|
u8 i;
|
||||||
|
|
||||||
FillWindowPixelBuffer(1, 0x11);
|
FillWindowPixelBuffer(1, PIXEL_FILL(1));
|
||||||
for (i = 0; i < MENUITEM_COUNT; i++)
|
for (i = 0; i < MENUITEM_COUNT; i++)
|
||||||
{
|
{
|
||||||
AddTextPrinterParameterized(1, 2, sOptionMenuItemsNames[i], 8, (u8) ((i*(GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT))) + 2) - i, 0xFF, 0);
|
AddTextPrinterParameterized(WIN_OPTIONS, 2, sOptionMenuItemsNames[i], 8, (u8) ((i * (GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT))) + 2) - i, TEXT_SPEED_FF, NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//sub_8088DE0
|
|
||||||
static void sub_8088DE0(u16 selection)
|
static void sub_8088DE0(u16 selection)
|
||||||
{
|
{
|
||||||
u16 v1, v2;
|
u16 v1, v2;
|
||||||
|
|
||||||
v1 = GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT);
|
v1 = GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT);
|
||||||
v2 = selection * (v1 - 1) + 0x3A;
|
v2 = selection * (v1 - 1) + 0x3A;
|
||||||
SetGpuReg(0x44, (v2 << 8) | (v2 + v1));
|
SetGpuReg(REG_OFFSET_WIN0V, (v2 << 8) | (v2 + v1));
|
||||||
SetGpuReg(0x40, 0x10E0);
|
SetGpuReg(REG_OFFSET_WIN0H, WINOUT_WINOBJ_OBJ | WIN_RANGE(0, 0xE0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-2
@@ -226,8 +226,7 @@ gFieldEffectArguments: @ 20386E0
|
|||||||
.include "src/scanline_effect.o"
|
.include "src/scanline_effect.o"
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
sOptionsMenuPtr: @ 2039620
|
.include "src/option_menu.o"
|
||||||
.space 0x4
|
|
||||||
|
|
||||||
gTrainerCards: @ 2039624
|
gTrainerCards: @ 2039624
|
||||||
.space 0x180
|
.space 0x180
|
||||||
|
|||||||
Reference in New Issue
Block a user