summaryrefslogtreecommitdiff
path: root/src/main_menu_1.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main_menu_1.c')
-rw-r--r--src/main_menu_1.c103
1 files changed, 49 insertions, 54 deletions
diff --git a/src/main_menu_1.c b/src/main_menu_1.c
index 6715af4..1879db4 100644
--- a/src/main_menu_1.c
+++ b/src/main_menu_1.c
@@ -1,23 +1,18 @@
#include "global.h"
#include "main_menu.h"
+#include "menu.h"
struct unkData
{
u8 unk0[24];
};
-struct unkSubStruct
-{
- u32 unk0;
- u32 unk4;
-};
-
struct unkStruct_203B34C
{
// size: 0x1A8
u32 unk0;
u32 unk4;
- struct unkSubStruct *unk8; // Array of menu choices??
+ struct MenuItem *unk8; // Array of menu choices??
u8 fillC[0x30 - 0xC];
s16 unk30;
u8 fill32[0x144 - 0x32];
@@ -26,54 +21,54 @@ struct unkStruct_203B34C
};
extern struct unkStruct_203B34C *gUnknown_203B34C;
+extern u32 gUnknown_203B350;
extern u32 gUnknown_80E59E0;
-extern u32 gUnknown_203B350;
-extern u32 gUnknown_80E59F8;
extern u32 gUnknown_80E5A78;
extern u32 gUnknown_80E5B34;
-extern u32 gUnknown_80E5A90;
-extern u32 gUnknown_80E5A60;
-extern u32 gUnknown_80E5AFC;
-extern u32 gUnknown_80E5B8C;
-extern u32 gUnknown_80E5B4C;
extern u32 gUnknown_80E5BC4;
-extern u32 gUnknown_80E5BDC;
-extern u32 gUnknown_80E5C18;
-
extern u32 gUnknown_80E5CB4;
-extern u32 gUnknown_80E5D48;
-extern u32 gUnknown_80E5CCC;
-extern u32 gUnknown_80E5F1C;
-extern u32 gUnknown_80E5DA0;
-extern u32 gUnknown_80E5DF0;
-extern u32 gUnknown_80E5D0C;
-extern u32 gUnknown_80E6030;
-extern u32 gUnknown_80E5FCC;
-extern u32 gUnknown_80E5F80;
-extern u32 gUnknown_80E5EBC;
-extern u32 gUnknown_80E5E5C;
+extern u32 gUnknown_80E5A60;
+
+extern const struct MenuItem gUnknown_80E59F8[];
+extern const struct MenuItem gUnknown_80E5A90[];
+extern const struct MenuItem gUnknown_80E5AFC[];
+extern const struct MenuItem gUnknown_80E5B4C[];
+extern const struct MenuItem gUnknown_80E5B8C[];
+extern const struct MenuItem gUnknown_80E5BDC[];
+extern const struct MenuItem gUnknown_80E5C18[];
+extern const struct MenuItem gUnknown_80E5CCC[];
+extern const struct MenuItem gUnknown_80E5D0C[];
+extern const struct MenuItem gUnknown_80E5D48[];
+extern const struct MenuItem gUnknown_80E5DA0[];
+extern const struct MenuItem gUnknown_80E5DF0[];
+extern const struct MenuItem gUnknown_80E5E5C[];
+extern const struct MenuItem gUnknown_80E5EBC[];
+extern const struct MenuItem gUnknown_80E5F1C[];
+extern const struct MenuItem gUnknown_80E5F80[];
+extern const struct MenuItem gUnknown_80E5FCC[];
+extern const struct MenuItem gUnknown_80E6030[];
extern u8 sub_803D0D8();
extern s32 sub_8011C34();
extern s32 sub_8095324(u32);
-extern void SetMenuItems(u32 *, struct unkData *, u32, u32 *, u32 *, u32, u32, u32);
+extern void SetMenuItems(u32 *, struct unkData *, u32, u32 *, const struct MenuItem *, u32, u32, u32);
void SetMainMenuItems(void);
-extern u8 SetMainMenuText();
+extern bool8 SetMainMenuText();
extern void sub_8035CF4(u32 *, u32, u32);
extern void sub_8035CC0(struct unkData *, u32);
-u8 SetMainMenuText(void)
+bool8 SetMainMenuText(void)
{
u32 menuChoice;
- struct unkSubStruct *preload;
+ struct MenuItem *preload;
// Have to load the pointer before the index
preload = gUnknown_203B34C->unk8;
- menuChoice = preload[gUnknown_203B34C->unk30].unk4; // chosen menu action?
+ menuChoice = preload[gUnknown_203B34C->unk30].menuAction; // chosen menu action?
if (gUnknown_203B34C->currMenuChoice == menuChoice) {
- return 0;
+ return FALSE;
}
gUnknown_203B34C->currMenuChoice = menuChoice;
@@ -82,55 +77,55 @@ u8 SetMainMenuText(void)
switch(menuChoice) {
case MENU_WIRELESS_COMMS:
// Using wireless communications, you can go on an adventure to unknown worlds.
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,&gUnknown_80E6030,0,0,0);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E6030,0,0,0);
break;
case MENU_WONDER_MAIL:
// Using passwords, you can receive Wonder Mail
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,&gUnknown_80E5F80,0,0,0);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5F80,0,0,0);
break;
case MENU_AWAITING_RESCUE:
// You are awaiting resuce by a friend
// You can give up waiting for rescue
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,&gUnknown_80E5F1C,0,0,0);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5F1C,0,0,0);
break;
case MENU_NEW_GAME:
// Start an entirely new adventure
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,&gUnknown_80E5CCC,0,0,0);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5CCC,0,0,0);
break;
case MENU_CONTINUE:
// Resume your adventure from where you last saved
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,&gUnknown_80E5DA0,0,0,0);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5DA0,0,0,0);
break;
case MENU_DELETE_SAVE_PROMPT:
// This will delete your saved game data.
// Beware! This will delete it forever
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,&gUnknown_80E5DF0,0,0,0);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5DF0,0,0,0);
break;
case MENU_ADVENTURE_LOG:
// Check your career as an adventurer
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,&gUnknown_80E5D0C,0,0,0);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5D0C,0,0,0);
break;
case MENU_FRIEND_RESCUE:
// Using a Game Link cable or passwords, friends may rescue each other
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,&gUnknown_80E5E5C,0,0,0);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5E5C,0,0,0);
break;
case MENU_TRADE_ITEMS:
// Using a Game Link cable you can trade stored items with a friend
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,&gUnknown_80E5EBC,0,0,0);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5EBC,0,0,0);
break;
case MENU_DUAL_SLOT:
// Using Dual Slot function, you can receive teams from your friends
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,&gUnknown_80E5FCC,0,0,0);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5FCC,0,0,0);
break;
case MENU_DEBUG:
// This is the Debug Mode.
// It won't be in the release version
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,&gUnknown_80E5D48,0,0,0);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5D48,0,0,0);
break;
default:
break;
}
- return 1;
+ return TRUE;
}
void sub_803623C(void)
@@ -138,7 +133,7 @@ void sub_803623C(void)
sub_8035CC0(gUnknown_203B34C->unk144,1);
SetMainMenuItems();
gUnknown_203B34C->currMenuChoice = -1;
- if (SetMainMenuText() != 0) {
+ if (SetMainMenuText()) {
sub_8035CF4(&gUnknown_203B34C->unk4,2,0);
}
sub_8035CF4(&gUnknown_203B34C->unk4,0,1);
@@ -156,7 +151,7 @@ void SetMainMenuItems(void)
// Friend Rescue
// Trade Items
// Wonder Mail
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,&gUnknown_80E5C18,1,gUnknown_203B350,1);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5C18,1,gUnknown_203B350,1);
}
else {
// Revive Team
@@ -164,7 +159,7 @@ void SetMainMenuItems(void)
// Adventure Log
// Friend Rescue
// Trade Items
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5BC4,&gUnknown_80E5BDC,1,gUnknown_203B350,1);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5BC4,gUnknown_80E5BDC,1,gUnknown_203B350,1);
}
}
else {
@@ -175,7 +170,7 @@ void SetMainMenuItems(void)
// Friend Rescue
// Trade Items
// Wonder Mail
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,&gUnknown_80E5AFC,1,gUnknown_203B350,1);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5AFC,1,gUnknown_203B350,1);
}
else {
// Continue
@@ -183,7 +178,7 @@ void SetMainMenuItems(void)
// Adventure Log
// Friend Rescue
// Trade Items
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A60,&gUnknown_80E5A90,1,gUnknown_203B350,1);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A60,gUnknown_80E5A90,1,gUnknown_203B350,1);
}
}
}
@@ -195,7 +190,7 @@ void SetMainMenuItems(void)
// Friend Rescue
// Trade Items
// Wonder Mail
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,&gUnknown_80E5B8C,1,gUnknown_203B350,1);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5B8C,1,gUnknown_203B350,1);
}
else {
// Awaiting Rescue
@@ -203,7 +198,7 @@ void SetMainMenuItems(void)
// Adventure Log
// Friend Rescue
// Trade Items
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5B34,&gUnknown_80E5B4C,1,gUnknown_203B350,1);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5B34,gUnknown_80E5B4C,1,gUnknown_203B350,1);
}
}
}
@@ -211,7 +206,7 @@ void SetMainMenuItems(void)
{
// New Game
// Adventure Log
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E59E0,&gUnknown_80E59F8,1,gUnknown_203B350,1);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E59E0,gUnknown_80E59F8,1,gUnknown_203B350,1);
}
}