summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2017-01-05 04:24:19 -0800
committerYamaArashi <shadow962@live.com>2017-01-05 04:24:19 -0800
commit9b0872d1b84d6b4ed4e36a576049b3f409674b95 (patch)
treef2a7719a0addc6706534870f671f30590415b9bd
parent3d412c4502bfb255e839b6d9289bf01f9f4814bd (diff)
define some menu data in C
-rw-r--r--data/data_83760F0.s36
-rw-r--r--include/start_menu.h10
-rw-r--r--ld_script.txt2
-rw-r--r--src/menu.c9
-rw-r--r--src/start_menu.c62
5 files changed, 67 insertions, 52 deletions
diff --git a/data/data_83760F0.s b/data/data_83760F0.s
index b7da9498e..f01a3d135 100644
--- a/data/data_83760F0.s
+++ b/data/data_83760F0.s
@@ -4,24 +4,6 @@
.section .rodata
.align 2
-gStartMenuItems:: @ 8376D24
- .4byte SystemText_Pokedex, StartMenu_PokedexCallback
- .4byte SystemText_Pokemon, StartMenu_PokemonCallback
- .4byte SystemText_BAG, StartMenu_BagCallback
- .4byte SystemText_Pokenav, StartMenu_PokenavCallback
- .4byte SystemText_Player, StartMenu_PlayerCallback
- .4byte SystemText_Save, StartMenu_SaveCallback
- .4byte SystemText_Option, StartMenu_OptionCallback
- .4byte SystemText_Exit, StartMenu_ExitCallback
- .4byte SystemText_Retire, StartMenu_RetireCallback
- .4byte SystemText_Player, StartMenu_PlayerLinkCallback
-
- .align 2
-gMenuYesNoItems:: @ 8376D74
- .4byte OtherText_Yes, 0
- .4byte OtherText_No, 0
-
- .align 2
TilesetAnimTiles_General_0_1: @ 8376D84
.incbin "data/tilesets/primary/general/anim/0/1.4bpp"
@@ -23077,23 +23059,23 @@ gSystemText_LR:: @ 842C465
gSystemText_LA:: @ 842C46B
.string "{PALETTE 15}L=A$"
-SystemText_Pokedex:
+SystemText_Pokedex::
.string "POKéDEX$"
-SystemText_Pokemon:
+SystemText_Pokemon::
.string "POKéMON$"
-SystemText_BAG:
+SystemText_BAG::
.string "BAG$"
-SystemText_Pokenav:
+SystemText_Pokenav::
.string "POKéNAV$"
-SystemText_Player:
+SystemText_Player::
.string "{PLAYER}$"
-SystemText_Save:
+SystemText_Save::
.string "SAVE$"
-SystemText_Option:
+SystemText_Option::
.string "OPTION$"
-SystemText_Exit:
+SystemText_Exit::
.string "EXIT$"
-SystemText_Retire: @ safari zone?
+SystemText_Retire:: @ safari zone?
.string "RETIRE$"
gOtherText_SafariStock:: @ 842C4A9
diff --git a/include/start_menu.h b/include/start_menu.h
index ae9e51284..5169b3bf0 100644
--- a/include/start_menu.h
+++ b/include/start_menu.h
@@ -5,16 +5,6 @@
void CreateStartMenuTask(void (*func)(u8));
void sub_80712B4(u8 taskId);
void sub_8071310(void);
-u8 StartMenu_PokedexCallback(void);
-u8 StartMenu_PokemonCallback(void);
-u8 StartMenu_BagCallback(void);
-u8 StartMenu_PokenavCallback(void);
-u8 StartMenu_PlayerCallback(void);
-u8 StartMenu_SaveCallback(void);
-u8 StartMenu_OptionCallback(void);
-u8 StartMenu_ExitCallback(void);
-u8 StartMenu_RetireCallback(void);
-u8 StartMenu_PlayerLinkCallback(void);
void InitSaveDialog(void);
void sub_8071B28(void);
diff --git a/ld_script.txt b/ld_script.txt
index ce0847733..9fd3acaf8 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -318,6 +318,8 @@ SECTIONS {
data/field_tasks.o(.rodata);
data/reset_rtc_screen.o(.rodata);
data/party_menu.o(.rodata);
+ src/start_menu.o(.rodata);
+ src/menu.o(.rodata);
data/data_83760F0.o(.rodata);
src/m4a_tables.o(.rodata);
data/sound_data.o(.rodata);
diff --git a/src/menu.c b/src/menu.c
index 31841146d..ee9376079 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -22,6 +22,9 @@ struct Menu
u8 columnXCoords[8];
};
+extern u8 OtherText_Yes[];
+extern u8 OtherText_No[];
+
static void MultistepInitMenuWindowInternal(const struct WindowConfig *, u16);
static void InitMenuWindowInternal(const struct WindowConfig *, u16);
static bool8 sub_80723D4(void);
@@ -41,7 +44,11 @@ EWRAM_DATA u16 gMenuTextWindowTileOffset = 0;
EWRAM_DATA u16 gMenuTextWindowContentTileOffset = 0;
EWRAM_DATA u16 gMenuMessageBoxContentTileOffset = 0;
-extern const struct MenuAction gMenuYesNoItems[];
+const struct MenuAction gMenuYesNoItems[] =
+{
+ { OtherText_Yes, NULL },
+ { OtherText_No, NULL },
+};
void CloseMenu(void)
{
diff --git a/src/start_menu.c b/src/start_menu.c
index d0e552591..4c5e30c8a 100644
--- a/src/start_menu.c
+++ b/src/start_menu.c
@@ -51,7 +51,6 @@ extern u16 gSaveFileStatus;
extern u16 gScriptResult;
extern u8 (*gCallback_03004AE8)(void);
extern u8 gUnknown_03004860;
-extern struct MenuItem gStartMenuItems[];
extern u8 gNumSafariBalls;
EWRAM_DATA static u8 sStartMenuCursorPos = 0;
@@ -67,6 +66,41 @@ extern u8 gSaveText_ThereIsAlreadyAFile[];
extern u8 gSaveText_ThereIsADifferentFile[];
extern u8 gSaveText_WouldYouLikeToSave[];
extern u8 gOtherText_SafariStock[];
+extern u8 SystemText_Pokedex[];
+extern u8 SystemText_Pokemon[];
+extern u8 SystemText_BAG[];
+extern u8 SystemText_Pokenav[];
+extern u8 SystemText_Player[];
+extern u8 SystemText_Save[];
+extern u8 SystemText_Option[];
+extern u8 SystemText_Exit[];
+extern u8 SystemText_Retire[];
+extern u8 SystemText_Player[];
+
+static u8 StartMenu_PokedexCallback(void);
+static u8 StartMenu_PokemonCallback(void);
+static u8 StartMenu_BagCallback(void);
+static u8 StartMenu_PokenavCallback(void);
+static u8 StartMenu_PlayerCallback(void);
+static u8 StartMenu_SaveCallback(void);
+static u8 StartMenu_OptionCallback(void);
+static u8 StartMenu_ExitCallback(void);
+static u8 StartMenu_RetireCallback(void);
+static u8 StartMenu_PlayerLinkCallback(void);
+
+static const struct MenuItem sStartMenuItems[] =
+{
+ { SystemText_Pokedex, StartMenu_PokedexCallback },
+ { SystemText_Pokemon, StartMenu_PokemonCallback },
+ { SystemText_BAG, StartMenu_BagCallback },
+ { SystemText_Pokenav, StartMenu_PokenavCallback },
+ { SystemText_Player, StartMenu_PlayerCallback },
+ { SystemText_Save, StartMenu_SaveCallback },
+ { SystemText_Option, StartMenu_OptionCallback },
+ { SystemText_Exit, StartMenu_ExitCallback },
+ { SystemText_Retire, StartMenu_RetireCallback },
+ { SystemText_Player, StartMenu_PlayerLinkCallback },
+};
//Private functions
static void BuildStartMenuActions(void);
@@ -180,7 +214,7 @@ static bool32 PrintStartMenuItemsMultistep(s16 *index, u32 n)
do
{
- MenuPrint(gStartMenuItems[sCurrentStartMenuActions[_index]].text, 23, 2 + _index * 2);
+ MenuPrint(sStartMenuItems[sCurrentStartMenuActions[_index]].text, 23, 2 + _index * 2);
_index++;
if(_index >= sNumStartMenuActions)
{
@@ -303,12 +337,12 @@ static u8 StartMenu_InputProcessCallback(void)
if(gMain.newKeys & A_BUTTON)
{
PlaySE(SE_SELECT);
- if(gStartMenuItems[sCurrentStartMenuActions[sStartMenuCursorPos]].callback == StartMenu_PokedexCallback)
+ if(sStartMenuItems[sCurrentStartMenuActions[sStartMenuCursorPos]].callback == StartMenu_PokedexCallback)
{
if(GetNationalPokedexCount(0) == 0)
return 0;
}
- gCallback_03004AE8 = gStartMenuItems[sCurrentStartMenuActions[sStartMenuCursorPos]].callback;
+ gCallback_03004AE8 = sStartMenuItems[sCurrentStartMenuActions[sStartMenuCursorPos]].callback;
if(gCallback_03004AE8 != StartMenu_SaveCallback &&
gCallback_03004AE8 != StartMenu_ExitCallback &&
gCallback_03004AE8 != StartMenu_RetireCallback)
@@ -324,7 +358,7 @@ static u8 StartMenu_InputProcessCallback(void)
}
//When player selects POKEDEX
-u8 StartMenu_PokedexCallback(void)
+static u8 StartMenu_PokedexCallback(void)
{
if(!gPaletteFade.active)
{
@@ -337,7 +371,7 @@ u8 StartMenu_PokedexCallback(void)
}
//When player selects POKEMON
-u8 StartMenu_PokemonCallback(void)
+static u8 StartMenu_PokemonCallback(void)
{
if(!gPaletteFade.active)
{
@@ -349,7 +383,7 @@ u8 StartMenu_PokemonCallback(void)
}
//When player selects BAG
-u8 StartMenu_BagCallback(void)
+static u8 StartMenu_BagCallback(void)
{
if(!gPaletteFade.active)
{
@@ -361,7 +395,7 @@ u8 StartMenu_BagCallback(void)
}
//When player selects POKENAV
-u8 StartMenu_PokenavCallback(void)
+static u8 StartMenu_PokenavCallback(void)
{
if(!gPaletteFade.active)
{
@@ -373,7 +407,7 @@ u8 StartMenu_PokenavCallback(void)
}
//When player selects his/her name
-u8 StartMenu_PlayerCallback(void)
+static u8 StartMenu_PlayerCallback(void)
{
if(!gPaletteFade.active)
{
@@ -385,7 +419,7 @@ u8 StartMenu_PlayerCallback(void)
}
//When player selects SAVE
-u8 StartMenu_SaveCallback(void)
+static u8 StartMenu_SaveCallback(void)
{
sub_8072DEC();
gCallback_03004AE8 = SaveCallback1;
@@ -393,7 +427,7 @@ u8 StartMenu_SaveCallback(void)
}
//When player selects OPTION
-u8 StartMenu_OptionCallback(void)
+static u8 StartMenu_OptionCallback(void)
{
if(!gPaletteFade.active)
{
@@ -406,14 +440,14 @@ u8 StartMenu_OptionCallback(void)
}
//When player selects EXIT
-u8 StartMenu_ExitCallback(void)
+static u8 StartMenu_ExitCallback(void)
{
CloseMenu();
return 1;
}
//When player selects RETIRE
-u8 StartMenu_RetireCallback(void)
+static u8 StartMenu_RetireCallback(void)
{
CloseMenu();
SafariZoneRetirePrompt();
@@ -421,7 +455,7 @@ u8 StartMenu_RetireCallback(void)
}
//When player selects their name in multiplayer mode
-u8 StartMenu_PlayerLinkCallback(void)
+static u8 StartMenu_PlayerLinkCallback(void)
{
if(!gPaletteFade.active)
{