mirror of
https://github.com/pret/pmd-red.git
synced 2026-08-24 01:35:07 -05:00
Split main_menu.c
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
#ifndef GUARD_CONSTANTS_MAILBOX_H
|
||||
#define GUARD_CONSTANTS_MAILBOX_H
|
||||
#define GUARD_CONSTANTS_MAILBOX_H
|
||||
|
||||
#define MAX_ACCEPTED_JOBS 8
|
||||
#define NUM_MAILBOX_SLOTS 4
|
||||
@@ -18,4 +18,4 @@ enum JOB_LIST_MAIL_TYPES
|
||||
MAIL_TYPE_UNK9,
|
||||
};
|
||||
|
||||
#endif // GUARD_CONSTANTS_MAILBOX_H
|
||||
#endif // GUARD_CONSTANTS_MAILBOX_H
|
||||
40
include/constants/main_menu.h
Normal file
40
include/constants/main_menu.h
Normal file
@@ -0,0 +1,40 @@
|
||||
#ifndef GUARD_CONSTANTS_MAIN_MENU_H
|
||||
#define GUARD_CONSTANTS_MAIN_MENU_H
|
||||
|
||||
enum MainMenuScreens
|
||||
{
|
||||
MENU_MAIN_SCREEN = 1,
|
||||
//
|
||||
MENU_NEW_GAME = 3,
|
||||
//
|
||||
MENU_AWAITING_RESCUE = 6,
|
||||
MENU_CONTINUE, // used by Revive Team/Continue
|
||||
MENU_DELETE_SAVE_PROMPT,
|
||||
MENU_DELETE_SAVE_CONFIRM,
|
||||
MENU_ADVENTURE_LOG,
|
||||
MENU_FRIEND_RESCUE,
|
||||
MENU_TRADE_ITEMS,
|
||||
MENU_WONDER_MAIL,
|
||||
MENU_DUAL_SLOT,
|
||||
MENU_WIRELESS_COMMS,
|
||||
MENU_DEBUG,
|
||||
MENU_SEND_ITEMS,
|
||||
MENU_RECEIVE_ITEMS,
|
||||
MENU_COMMUNICATION_1,
|
||||
MENU_COMMUNICATION_2,
|
||||
// NOTE: 27 - 34 used by Rescue Password Menu
|
||||
MENU_DISPLAY_RESCUE_PASSWORD = 33,
|
||||
MENU_RESCUE_PASSWORD_ENTRY,
|
||||
//
|
||||
MENU_DELETE_SAVE = 46,
|
||||
MENU_DEBUG_DUNGEON,
|
||||
MENU_DEBUG_FIELD,
|
||||
MENU_DEBUG_FIELD_MAP,
|
||||
MENU_DEBUG_FIELD_SCRIPT,
|
||||
MENU_DEBUG_DEBUG_MENU,
|
||||
MENU_DEBUG_UNKNOWN_1,
|
||||
//
|
||||
MENU_NO_SCREEN_CHANGE = 65500 // (s16)-36
|
||||
};
|
||||
|
||||
#endif // GUARD_CONSTANTS_MAIN_MENU_H
|
||||
@@ -59,9 +59,10 @@ typedef struct GameOptions
|
||||
/* 0xC */ u8 unkC;
|
||||
} GameOptions;
|
||||
|
||||
void LoadGameOptions(void);
|
||||
GameOptions * GetGameOptions(void);
|
||||
void InitializeGameOptions(bool8 initializeGender);
|
||||
GameOptions *GetGameOptions(void);
|
||||
bool8 GameOptionsNotChange(GameOptions *);
|
||||
void InitializeGameOptions(bool8 initializeGender);
|
||||
void LoadGameOptions(void);
|
||||
void SetWindowBGColor(void);
|
||||
|
||||
#endif // GUARD_GAME_OPTIONS_H
|
||||
@@ -1,97 +0,0 @@
|
||||
#ifndef GUARD_MAIN_MENU_H
|
||||
#define GUARD_MAIN_MENU_H
|
||||
|
||||
#include "menu.h"
|
||||
#include "text.h"
|
||||
|
||||
enum MainMenuScreens
|
||||
{
|
||||
MENU_MAIN_SCREEN = 1,
|
||||
MENU_NEW_GAME = 3,
|
||||
MENU_AWAITING_RESCUE = 6,
|
||||
MENU_CONTINUE = 7, // used by Revive Team/Continue
|
||||
MENU_DELETE_SAVE_PROMPT,
|
||||
MENU_DELETE_SAVE_CONFIRM,
|
||||
MENU_ADVENTURE_LOG = 10,
|
||||
MENU_FRIEND_RESCUE,
|
||||
MENU_TRADE_ITEMS,
|
||||
MENU_WONDER_MAIL,
|
||||
MENU_DUAL_SLOT,
|
||||
MENU_WIRELESS_COMMS,
|
||||
MENU_DEBUG = 16,
|
||||
MENU_SEND_ITEMS,
|
||||
MENU_RECEIVE_ITEMS,
|
||||
MENU_COMMUNICATION_1 = 19,
|
||||
MENU_COMMUNICATION_2,
|
||||
// NOTE: 0x1B - 0x22 used by Rescue Password Menu
|
||||
MENU_DISPLAY_RESCUE_PASSWORD = 33,
|
||||
MENU_RESCUE_PASSWORD_ENTRY,
|
||||
MENU_DELETE_SAVE = 46,
|
||||
MENU_DEBUG_DUNGEON,
|
||||
MENU_DEBUG_FIELD,
|
||||
MENU_DEBUG_FIELD_MAP,
|
||||
MENU_DEBUG_FIELD_SCRIPT,
|
||||
MENU_DEBUG_DEBUG_MENU,
|
||||
MENU_DEBUG_UNKNOWN_1,
|
||||
MENU_NO_SCREEN_CHANGE = 65500
|
||||
};
|
||||
|
||||
// size: 0x1A8
|
||||
typedef struct unkStruct_203B34C
|
||||
{
|
||||
u32 unk0;
|
||||
MenuStruct unk4[4];
|
||||
UnkTextStruct2 unk144[4];
|
||||
/* 0x1A4 */ u32 currMenuChoice;
|
||||
} unkStruct_203B34C;
|
||||
|
||||
// size: 0x8
|
||||
typedef struct unkStruct_8035D94
|
||||
{
|
||||
union {
|
||||
u8 itemIndex_u8;
|
||||
u32 itemIndex_u32;
|
||||
} itemIndex;
|
||||
s32 numItems;
|
||||
} unkStruct_8035D94;
|
||||
|
||||
// size: 0x4
|
||||
typedef struct MainMenuSub
|
||||
{
|
||||
u8 unk2C;
|
||||
u8 unk2D;
|
||||
u8 unk2E;
|
||||
} MainMenuSub;
|
||||
|
||||
// size: 0x40
|
||||
typedef struct MainMenu
|
||||
{
|
||||
/* 0x0 */ s32 currMenu;
|
||||
/* 0x4 */ s32 nextMenu;
|
||||
/* 0x8 */ s32 lastMenu;
|
||||
u8 padding[0x20];
|
||||
/* 0x2C */ MainMenuSub sub;
|
||||
unkStruct_8035D94 unk30;
|
||||
s16 unk38;
|
||||
u8 unk3A;
|
||||
u8 unk3B;
|
||||
s32 unk3C;
|
||||
} MainMenu;
|
||||
|
||||
void CleanUpMenu(void);
|
||||
void DeleteMainMenu(void);
|
||||
MainMenu *GetMainMenu(void);
|
||||
void InitMainMenu(void);
|
||||
void SetMenuItems(MenuStruct *, UnkTextStruct2 *, s32, const UnkTextStruct2 *, const MenuItem *, u8, u32, u32);
|
||||
void SetUpMenu(void);
|
||||
s32 UpdateMenu(void);
|
||||
|
||||
void sub_8035CC0(UnkTextStruct2 *, u32);
|
||||
void sub_8035CF4(MenuStruct*, u32, bool8);
|
||||
s16 sub_8035D3C(void);
|
||||
s32 sub_8035D74(void);
|
||||
unkStruct_8035D94 *sub_8035D94(void);
|
||||
void sub_8035DA0(void);
|
||||
bool8 sub_80363E0(void);
|
||||
|
||||
#endif // GUARD_MAIN_MENU_H
|
||||
57
include/main_menu1.h
Normal file
57
include/main_menu1.h
Normal file
@@ -0,0 +1,57 @@
|
||||
#ifndef GUARD_MAIN_MENU1_H
|
||||
#define GUARD_MAIN_MENU1_H
|
||||
|
||||
#include "menu.h"
|
||||
#include "text.h"
|
||||
|
||||
// size: 0x8
|
||||
typedef struct unkStruct_8035D94
|
||||
{
|
||||
union {
|
||||
u8 itemIndex_u8;
|
||||
u32 itemIndex_u32;
|
||||
} itemIndex;
|
||||
s32 numItems;
|
||||
} unkStruct_8035D94;
|
||||
|
||||
// size: 0x4
|
||||
typedef struct MainMenuSub
|
||||
{
|
||||
u8 unk2C;
|
||||
u8 unk2D;
|
||||
u8 unk2E;
|
||||
} MainMenuSub;
|
||||
|
||||
// size: 0x40
|
||||
typedef struct MainMenu1Work
|
||||
{
|
||||
/* 0x0 */ s32 currMenu;
|
||||
/* 0x4 */ s32 nextMenu;
|
||||
/* 0x8 */ s32 lastMenu;
|
||||
u8 padding[0x20];
|
||||
/* 0x2C */ MainMenuSub sub;
|
||||
unkStruct_8035D94 unk30;
|
||||
s16 unk38;
|
||||
u8 unk3A;
|
||||
u8 unk3B;
|
||||
s32 unk3C;
|
||||
} MainMenu1Work;
|
||||
|
||||
void CleanUpMenu(void);
|
||||
void DeleteMainMenu(void);
|
||||
MainMenu1Work *GetMainMenu(void);
|
||||
void InitMainMenu(void);
|
||||
void SetMenuItems(MenuStruct *, UnkTextStruct2 *, s32 index, const UnkTextStruct2 *, const MenuItem *menuItems, bool8, u32 menuAction, u32 unused);
|
||||
void SetUpMenu(void);
|
||||
s32 UpdateMenu(void);
|
||||
|
||||
void sub_8035C1C(void);
|
||||
void sub_8035CC0(UnkTextStruct2 *dataArray, u32 index);
|
||||
void sub_8035CF4(MenuStruct *menu, u32 index, bool8);
|
||||
void sub_8035D1C(void);
|
||||
s16 sub_8035D3C(void);
|
||||
s32 sub_8035D74(void);
|
||||
unkStruct_8035D94 *sub_8035D94(void);
|
||||
void sub_8035DA0(void);
|
||||
|
||||
#endif // GUARD_MAIN_MENU1_H
|
||||
22
include/main_menu2.h
Normal file
22
include/main_menu2.h
Normal file
@@ -0,0 +1,22 @@
|
||||
#ifndef GUARD_MAIN_MENU2_H
|
||||
#define GUARD_MAIN_MENU2_H
|
||||
|
||||
#include "menu.h"
|
||||
#include "text.h"
|
||||
|
||||
// size: 0x1A8
|
||||
typedef struct MainMenu2Work
|
||||
{
|
||||
u32 unk0;
|
||||
MenuStruct unk4[4];
|
||||
UnkTextStruct2 unk144[4];
|
||||
/* 0x1A4 */ u32 currMenuChoice;
|
||||
} MainMenu2Work;
|
||||
|
||||
void CleanMainMenu(void);
|
||||
void DrawMainMenu(void);
|
||||
u32 UpdateMainMenu(void);
|
||||
|
||||
bool8 sub_80363E0(void);
|
||||
|
||||
#endif // GUARD_MAIN_MENU2_H
|
||||
@@ -2,7 +2,7 @@
|
||||
#define GUARD_OTHER_MENUS1_H
|
||||
|
||||
#include "code_8094F88.h"
|
||||
#include "main_menu.h"
|
||||
#include "main_menu1.h"
|
||||
#include "menu.h"
|
||||
#include "pokemon.h"
|
||||
#include "sprite_oam.h"
|
||||
|
||||
19
include/save_menu.h
Normal file
19
include/save_menu.h
Normal file
@@ -0,0 +1,19 @@
|
||||
#ifndef GUARD_SAVE_MENU_H
|
||||
#define GUARD_SAVE_MENU_H
|
||||
|
||||
// size: 0x1B4
|
||||
typedef struct SaveMenuWork
|
||||
{
|
||||
/* 0x0 */ u32 currMenu;
|
||||
u32 unk4;
|
||||
MenuStruct unk8[4];
|
||||
UnkTextStruct2 unk148[4];
|
||||
SpriteOAM unk1A8;
|
||||
u32 unk1B0; // Sprite count?
|
||||
} SaveMenuWork;
|
||||
|
||||
void CleanSaveMenu(void);
|
||||
void CreateSaveMenu(s32 currMenu);
|
||||
s32 UpdateSaveMenu(void);
|
||||
|
||||
#endif // GUARD_SAVE_MENU_H
|
||||
7
include/unk_menu_203B360.h
Normal file
7
include/unk_menu_203B360.h
Normal file
@@ -0,0 +1,7 @@
|
||||
#ifndef GUARD_UNK_MENU_203B360_H
|
||||
#define GUARD_UNK_MENU_203B360_H
|
||||
|
||||
void sub_80383A8(void);
|
||||
u32 sub_80383D4(void);
|
||||
|
||||
#endif // GUARD_UNK_MENU_203B360_H
|
||||
@@ -7,4 +7,4 @@ s32 ConvertFromDecimal(s32 *decimal, s32 sign, s32 len);
|
||||
s32 ConvertFromBCD(s32 bcd);
|
||||
s32 ConvertToBCD(s32 n);
|
||||
|
||||
#endif // GUARD_UTIL_H
|
||||
#endif // GUARD_UTIL_H
|
||||
8
include/wonder_mail_main_menu.h
Normal file
8
include/wonder_mail_main_menu.h
Normal file
@@ -0,0 +1,8 @@
|
||||
#ifndef GUARD_WONDER_MAIL_MAIN_MENU_H
|
||||
#define GUARD_WONDER_MAIL_MAIN_MENU_H
|
||||
|
||||
void CleanWonderMailMenu(void);
|
||||
bool8 CreateWonderMailMenu(void);
|
||||
u32 UpdateWonderMailMenu(void);
|
||||
|
||||
#endif // GUARD_WONDER_MAIL_MAIN_MENU_H
|
||||
@@ -149,7 +149,8 @@ SECTIONS {
|
||||
src/friend_rescue.o(.text);
|
||||
src/credits1.o(.text);
|
||||
src/credits2.o(.text);
|
||||
src/main_menu.o(.text);
|
||||
src/main_menu1.o(.text);
|
||||
src/main_menu2.o(.text);
|
||||
src/trade_items_menu.o(.text);
|
||||
src/other_menus1.o(.text);
|
||||
asm/other_menus1.o(.text);
|
||||
@@ -446,7 +447,8 @@ SECTIONS {
|
||||
data/friend_rescue.o(.rodata);
|
||||
data/credits1.o(.rodata);
|
||||
src/credits2.o(.rodata);
|
||||
src/main_menu.o(.rodata);
|
||||
src/main_menu1.o(.rodata);
|
||||
src/main_menu2.o(.rodata);
|
||||
src/trade_items_menu.o(.rodata);
|
||||
src/other_menus1.o(.rodata);
|
||||
src/other_menus2.o(.rodata);
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#include "global.h"
|
||||
#include "adventure_log.h"
|
||||
#include "adventure_log_menu.h"
|
||||
#include "constants/main_menu.h"
|
||||
#include "input.h"
|
||||
#include "main_menu.h"
|
||||
#include "text1.h"
|
||||
|
||||
void CreateAdventureLogMenu(void)
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "code_8094F88.h"
|
||||
#include "code_8097670.h"
|
||||
#include "constants/bg_music.h"
|
||||
#include "constants/main_menu.h"
|
||||
#include "cpu.h"
|
||||
#include "debug.h"
|
||||
#include "event_flag.h"
|
||||
@@ -17,7 +18,8 @@
|
||||
#include "friend_area.h"
|
||||
#include "game_options.h"
|
||||
#include "input.h"
|
||||
#include "main_menu.h"
|
||||
#include "main_menu1.h"
|
||||
#include "main_menu2.h"
|
||||
#include "memory.h"
|
||||
#include "moves.h"
|
||||
#include "music.h"
|
||||
@@ -33,7 +35,6 @@
|
||||
extern void NDS_LoadOverlay_GroundMain(void);
|
||||
extern void sub_8014144(void);
|
||||
extern void LoadGameOptions(void);
|
||||
extern void SetWindowBGColor(void);
|
||||
extern void LoadItemParameters(void);
|
||||
extern void LoadMailInfo(void);
|
||||
extern void sub_800DAAC(void);
|
||||
|
||||
@@ -10,9 +10,9 @@ u8 sub_803D0D8()
|
||||
return sUnknown_203B408;
|
||||
}
|
||||
|
||||
UNUSED static void sub_803D0E4(u8 r0)
|
||||
UNUSED static void sub_803D0E4(u8 a0)
|
||||
{
|
||||
sUnknown_203B408 = r0;
|
||||
sUnknown_203B408 = a0;
|
||||
}
|
||||
|
||||
u8 sub_803D0F0(u8 r0)
|
||||
|
||||
10
src/data/main_menu1.h
Normal file
10
src/data/main_menu1.h
Normal file
@@ -0,0 +1,10 @@
|
||||
static const u8 sFill[] = "pksdir0";
|
||||
|
||||
static const UnkTextStruct2 sUnknown_80E59A8 = {
|
||||
0, 0, 0, 0,
|
||||
3,
|
||||
0, 0,
|
||||
0, 0,
|
||||
0, 0,
|
||||
NULL
|
||||
};
|
||||
291
src/data/main_menu2.h
Normal file
291
src/data/main_menu2.h
Normal file
@@ -0,0 +1,291 @@
|
||||
static const u8 sFill[] = "pksdir0";
|
||||
|
||||
static const UnkTextStruct2 sUnknown_80E59C8 = {
|
||||
0, 0, 0, 0,
|
||||
3,
|
||||
0, 0,
|
||||
0, 0,
|
||||
0, 0,
|
||||
NULL
|
||||
};
|
||||
|
||||
static const UnkTextStruct2 sUnknown_80E59E0 = {
|
||||
0, 0, 0, 0,
|
||||
3,
|
||||
2, 2,
|
||||
10, 3,
|
||||
3, 0,
|
||||
NULL
|
||||
};
|
||||
|
||||
static const MenuItem sUnknown_80E59F8[] =
|
||||
{
|
||||
{"New Game", MENU_NEW_GAME},
|
||||
{"Adventure Log", MENU_ADVENTURE_LOG},
|
||||
{NULL, 0xffdd},
|
||||
};
|
||||
|
||||
UNUSED static const UnkTextStruct2 sUnknown_80E5A29 = {
|
||||
0, 0, 0, 0,
|
||||
3,
|
||||
2, 2,
|
||||
10, 2,
|
||||
2, 0,
|
||||
NULL
|
||||
};
|
||||
|
||||
UNUSED static const MenuItem sUnknown_80E5A44[] =
|
||||
{
|
||||
{"Wonder Mail", MENU_WONDER_MAIL},
|
||||
{NULL, 0xffdd},
|
||||
};
|
||||
|
||||
static const UnkTextStruct2 sUnknown_80E5A60 = {
|
||||
0, 0, 0, 0,
|
||||
3,
|
||||
2, 2,
|
||||
10, 8,
|
||||
8, 0,
|
||||
NULL
|
||||
};
|
||||
|
||||
static const UnkTextStruct2 sUnknown_80E5A78 = {
|
||||
0, 0, 0, 0,
|
||||
3,
|
||||
2, 2,
|
||||
11, 9,
|
||||
9, 0,
|
||||
NULL
|
||||
};
|
||||
|
||||
static const MenuItem sUnknown_80E5A90[] =
|
||||
{
|
||||
{"Continue", MENU_CONTINUE},
|
||||
{"Delete Save Data", MENU_DELETE_SAVE_PROMPT},
|
||||
{"Adventure Log", MENU_ADVENTURE_LOG},
|
||||
{"Friend Rescue", MENU_FRIEND_RESCUE},
|
||||
{"Trade Items", MENU_TRADE_ITEMS},
|
||||
{NULL, 0xffdd},
|
||||
};
|
||||
|
||||
static const MenuItem sUnknown_80E5AFC[] =
|
||||
{
|
||||
{"Continue", MENU_CONTINUE},
|
||||
{"Delete Save Data", MENU_DELETE_SAVE_PROMPT},
|
||||
{"Adventure Log", MENU_ADVENTURE_LOG},
|
||||
{"Friend Rescue", MENU_FRIEND_RESCUE},
|
||||
{"Trade Items", MENU_TRADE_ITEMS},
|
||||
{"Wonder Mail", MENU_WONDER_MAIL},
|
||||
{NULL, 0xffdd},
|
||||
};
|
||||
|
||||
static const UnkTextStruct2 sUnknown_80E5B34 = {
|
||||
0, 0, 0, 0,
|
||||
3,
|
||||
2, 2,
|
||||
10, 8,
|
||||
8, 0,
|
||||
NULL
|
||||
};
|
||||
|
||||
static const MenuItem sUnknown_80E5B4C[] =
|
||||
{
|
||||
{"Awaiting Rescue", MENU_AWAITING_RESCUE},
|
||||
{"Delete Save Data", MENU_DELETE_SAVE_PROMPT},
|
||||
{"Adventure Log", MENU_ADVENTURE_LOG},
|
||||
{"Friend Rescue", MENU_FRIEND_RESCUE},
|
||||
{"Trade Items", MENU_TRADE_ITEMS},
|
||||
{NULL, 0xffdd},
|
||||
};
|
||||
|
||||
static const MenuItem sUnknown_80E5B8C[] =
|
||||
{
|
||||
{"Awaiting Rescue", MENU_AWAITING_RESCUE},
|
||||
{"Delete Save Data", MENU_DELETE_SAVE_PROMPT},
|
||||
{"Adventure Log", MENU_ADVENTURE_LOG},
|
||||
{"Friend Rescue", MENU_FRIEND_RESCUE},
|
||||
{"Trade Items", MENU_TRADE_ITEMS},
|
||||
{"Wonder Mail", MENU_WONDER_MAIL},
|
||||
{NULL, 0xffdd},
|
||||
};
|
||||
|
||||
static const UnkTextStruct2 sUnknown_80E5BC4 = {
|
||||
0, 0, 0, 0,
|
||||
3,
|
||||
2, 2,
|
||||
10, 8,
|
||||
8, 0,
|
||||
NULL
|
||||
};
|
||||
|
||||
static const MenuItem sUnknown_80E5BDC[] =
|
||||
{
|
||||
{"Revive Team", MENU_CONTINUE},
|
||||
{"Delete Save Data", MENU_DELETE_SAVE_PROMPT},
|
||||
{"Adventure Log", MENU_ADVENTURE_LOG},
|
||||
{"Friend Rescue", MENU_FRIEND_RESCUE},
|
||||
{"Trade Items", MENU_TRADE_ITEMS},
|
||||
{NULL, 0xffdd},
|
||||
};
|
||||
|
||||
static const MenuItem sUnknown_80E5C18[] =
|
||||
{
|
||||
{"Revive Team", MENU_CONTINUE},
|
||||
{"Delete Save Data", MENU_DELETE_SAVE_PROMPT},
|
||||
{"Adventure Log", MENU_ADVENTURE_LOG},
|
||||
{"Friend Rescue", MENU_FRIEND_RESCUE},
|
||||
{"Trade Items", MENU_TRADE_ITEMS},
|
||||
{"Wonder Mail", MENU_WONDER_MAIL},
|
||||
{NULL, 0xffdd},
|
||||
};
|
||||
|
||||
UNUSED static const UnkTextStruct2 sUnknown_80E5C50 = {
|
||||
0, 0, 0, 0,
|
||||
3,
|
||||
2, 2,
|
||||
10, 3,
|
||||
3, 0,
|
||||
NULL
|
||||
};
|
||||
|
||||
UNUSED static const MenuItem sUnknown_80E5C68[] =
|
||||
{
|
||||
{"Send Items", MENU_SEND_ITEMS},
|
||||
{"Receive Items", MENU_RECEIVE_ITEMS},
|
||||
{NULL, 0xffdd},
|
||||
};
|
||||
|
||||
UNUSED static const MenuItem sUnknown_80E5C9C[] =
|
||||
{
|
||||
{"Send Items", -1},
|
||||
{"Receive Items", MENU_RECEIVE_ITEMS},
|
||||
{NULL, 0xffdd},
|
||||
};
|
||||
|
||||
static const UnkTextStruct2 sUnknown_80E5CB4 = {
|
||||
0, 0, 0, 0,
|
||||
3,
|
||||
2, 15,
|
||||
26, 3,
|
||||
3, 0,
|
||||
NULL
|
||||
};
|
||||
|
||||
static const u8 sUnknown_80E5CE4[];
|
||||
static const u8 sUnknown_80E5CE8[];
|
||||
static const MenuItem sUnknown_80E5CCC[] =
|
||||
{
|
||||
{sUnknown_80E5CE8, 0xffde},
|
||||
{sUnknown_80E5CE4, 0xffde},
|
||||
{NULL, 0xffdd},
|
||||
};
|
||||
ALIGNED(4) static const u8 sUnknown_80E5CE4[] = _(" ");
|
||||
ALIGNED(4) static const u8 sUnknown_80E5CE8[] = _("Start an entirely new adventure.");
|
||||
|
||||
static const u8 sUnknown_80E5D24[];
|
||||
static const MenuItem sUnknown_80E5D0C[] =
|
||||
{
|
||||
{sUnknown_80E5D24, 0xffde},
|
||||
{sUnknown_80E5CE4, 0xffde},
|
||||
{NULL, 0xffdd},
|
||||
};
|
||||
ALIGNED(4) static const u8 sUnknown_80E5D24[] = _("Check your career as an adventurer.");
|
||||
|
||||
static const u8 sUnknown_80E5D60[];
|
||||
static const u8 sUnknown_80E5D88[];
|
||||
static const MenuItem sUnknown_80E5D48[] =
|
||||
{
|
||||
{sUnknown_80E5D88, 0xffde},
|
||||
{sUnknown_80E5D60, 0xffde},
|
||||
{NULL, 0xffdd},
|
||||
};
|
||||
ALIGNED(4) static const u8 sUnknown_80E5D60[] = _("It won{APOSTROPHE}t be in the release version.");
|
||||
ALIGNED(4) static const u8 sUnknown_80E5D88[] = _("This is the Debug Mode.");
|
||||
|
||||
static const u8 sUnknown_80E5DB8[];
|
||||
static const u8 sUnknown_80E5DCC[];
|
||||
static const MenuItem sUnknown_80E5DA0[] =
|
||||
{
|
||||
{sUnknown_80E5DCC, 0xffde},
|
||||
{sUnknown_80E5DB8, 0xffde},
|
||||
{NULL, 0xffdd},
|
||||
};
|
||||
ALIGNED(4) static const u8 sUnknown_80E5DB8[] = _("you last saved. ");
|
||||
ALIGNED(4) static const u8 sUnknown_80E5DCC[] = _("Resume your adventure from where");
|
||||
|
||||
static const u8 sUnknown_80E5E08[];
|
||||
static const u8 sUnknown_80E5E34[];
|
||||
static const MenuItem sUnknown_80E5DF0[] =
|
||||
{
|
||||
{sUnknown_80E5E34, 0xFFDE},
|
||||
{sUnknown_80E5E08, 0xFFDE},
|
||||
{0, 0xFFDD}
|
||||
};
|
||||
ALIGNED(4) static const u8 sUnknown_80E5E08[] = _("{COLOR_1 RED}Beware{END_COLOR_TEXT_1}! This will delete it forever!");
|
||||
ALIGNED(4) static const u8 sUnknown_80E5E34[] = _("This will delete your saved game data.");
|
||||
|
||||
static const u8 sUnknown_80E5E74[];
|
||||
static const u8 sUnknown_80E5EA0[];
|
||||
static const MenuItem sUnknown_80E5E5C[] =
|
||||
{
|
||||
{sUnknown_80E5EA0, 0xFFDE},
|
||||
{sUnknown_80E5E74, 0xFFDE},
|
||||
{0, 0xFFDD}
|
||||
};
|
||||
ALIGNED(4) static const u8 sUnknown_80E5E74[] = _("passwords{COMMA} friends may rescue each other.");
|
||||
ALIGNED(4) static const u8 sUnknown_80E5EA0[] = _("Using a Game Link cable or");
|
||||
|
||||
static const u8 sUnknown_80E5ED4[];
|
||||
static const u8 sUnknown_80E5EF8[];
|
||||
static const MenuItem sUnknown_80E5EBC[] =
|
||||
{
|
||||
{sUnknown_80E5EF8, 0xFFDE},
|
||||
{sUnknown_80E5ED4, 0xFFDE},
|
||||
{0, 0xFFDD}
|
||||
};
|
||||
ALIGNED(4) static const u8 sUnknown_80E5ED4[] = _("trade stored items with a friend.");
|
||||
ALIGNED(4) static const u8 sUnknown_80E5EF8[] = _("Using a Game Link cable{COMMA} you can");
|
||||
|
||||
static const u8 sUnknown_80E5F34[];
|
||||
static const u8 sUnknown_80E5F58[];
|
||||
static const MenuItem sUnknown_80E5F1C[] =
|
||||
{
|
||||
{sUnknown_80E5F58, 0xFFDE},
|
||||
{sUnknown_80E5F34, 0xFFDE},
|
||||
{0, 0xFFDD}
|
||||
};
|
||||
ALIGNED(4) static const u8 sUnknown_80E5F34[] = _("You can give up waiting for rescue.");
|
||||
ALIGNED(4) static const u8 sUnknown_80E5F58[] = _("You are awaiting rescue by a friend.");
|
||||
|
||||
static const u8 sUnknown_80E5F98[];
|
||||
static const u8 sUnknown_80E5FB0[];
|
||||
static const MenuItem sUnknown_80E5F80[] =
|
||||
{
|
||||
{sUnknown_80E5FB0, 0xFFDE},
|
||||
{sUnknown_80E5F98, 0xFFDE},
|
||||
{0, 0xFFDD}
|
||||
};
|
||||
ALIGNED(4) static const u8 sUnknown_80E5F98[] = _("receive Wonder Mail.");
|
||||
ALIGNED(4) static const u8 sUnknown_80E5FB0[] = _("Using passwords{COMMA} you can");
|
||||
|
||||
static const u8 sUnknown_80E5FE4[];
|
||||
static const u8 sUnknown_80E6008[];
|
||||
static const MenuItem sUnknown_80E5FCC[] =
|
||||
{
|
||||
{sUnknown_80E6008, 0xFFDE},
|
||||
{sUnknown_80E5FE4, 0xFFDE},
|
||||
{NULL, 0xFFDD}
|
||||
};
|
||||
ALIGNED(4) static const u8 sUnknown_80E5FE4[] = _("receive teams from your friends.");
|
||||
ALIGNED(4) static const u8 sUnknown_80E6008[] = _("Using the Dual Slot function{COMMA} you can");
|
||||
|
||||
static const u8 sUnknown_80E6048[];
|
||||
static const u8 sUnknown_80E6070[];
|
||||
static const MenuItem sUnknown_80E6030[] =
|
||||
{
|
||||
{sUnknown_80E6070, 0xFFDE},
|
||||
{sUnknown_80E6048, 0xFFDE},
|
||||
{NULL, 0xFFDD}
|
||||
};
|
||||
ALIGNED(4) static const u8 sUnknown_80E6048[] = _("go on an adventure to unknown worlds.");
|
||||
ALIGNED(4) static const u8 sUnknown_80E6070[] = _("Using wireless communication{COMMA} you can");
|
||||
@@ -1,9 +1,10 @@
|
||||
#include "global.h"
|
||||
#include "code_8097670.h"
|
||||
#include "constants/friend_area.h"
|
||||
#include "constants/main_menu.h"
|
||||
#include "debug_menu1.h"
|
||||
#include "friend_area.h"
|
||||
#include "main_menu.h"
|
||||
#include "main_menu1.h"
|
||||
#include "memory.h"
|
||||
#include "menu_input.h"
|
||||
#include "pokemon.h"
|
||||
@@ -138,7 +139,7 @@ u32 UpdateDebugMenu(void)
|
||||
|
||||
void SetDebugMenuItems(void)
|
||||
{
|
||||
SetMenuItems(sDebugMenu->unk0, sDebugMenu->unk140, 0, &sUnknown_80E7D58, sDebugMenuItems, 1, 13, 0);
|
||||
SetMenuItems(sDebugMenu->unk0, sDebugMenu->unk140, 0, &sUnknown_80E7D58, sDebugMenuItems, TRUE, 13, 0);
|
||||
sub_8035CF4(sDebugMenu->unk0, 0, 1);
|
||||
}
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
#include "cpu.h"
|
||||
#include "friend_rescue.h"
|
||||
#include "items.h"
|
||||
#include "main_menu.h"
|
||||
#include "main_menu1.h"
|
||||
#include "memory.h"
|
||||
#include "menu_input.h"
|
||||
#include "other_menus2.h"
|
||||
@@ -269,7 +269,6 @@ extern void sub_8031E00(void);
|
||||
extern u8 sub_8024108(u32);
|
||||
extern void sub_802452C(void);
|
||||
extern u32 sub_80244E4(void);
|
||||
extern void sub_8035D1C(void);
|
||||
extern u32 sub_8039068(u32, u8 *passwordBuffer, unkStruct_203B480 *r0);
|
||||
|
||||
extern void sub_803084C(void);
|
||||
@@ -889,7 +888,7 @@ void sub_8032828(void)
|
||||
break;
|
||||
case 0x27:
|
||||
sub_8006518(gUnknown_203B33C->unk35C);
|
||||
SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E2334, &gUnknown_80E234C, 1, 0, 0);
|
||||
SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E2334, &gUnknown_80E234C, TRUE, 0, 0);
|
||||
sub_8023DA4();
|
||||
sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1);
|
||||
break;
|
||||
@@ -1052,7 +1051,7 @@ void sub_8032828(void)
|
||||
break;
|
||||
case 0x5D:
|
||||
sub_8006518(gUnknown_203B33C->unk35C);
|
||||
SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E231C, &gUnknown_80E2408, 1, 0, 0);
|
||||
SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E231C, &gUnknown_80E2408, TRUE, 0, 0);
|
||||
sub_803092C();
|
||||
sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1);
|
||||
break;
|
||||
@@ -1068,7 +1067,7 @@ void sub_8032828(void)
|
||||
break;
|
||||
case 0x60:
|
||||
sub_8006518(gUnknown_203B33C->unk35C);
|
||||
SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E23F0, &gUnknown_80E2408, 1, 0, 0);
|
||||
SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E23F0, &gUnknown_80E2408, TRUE, 0, 0);
|
||||
sub_801CCD8();
|
||||
sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1);
|
||||
break;
|
||||
@@ -1231,7 +1230,7 @@ void sub_8032828(void)
|
||||
case 0x1E:
|
||||
case 0x33:
|
||||
sub_8006518(gUnknown_203B33C->unk35C);
|
||||
SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E231C, &gUnknown_80E234C, 1, 0, 0);
|
||||
SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E231C, &gUnknown_80E234C, TRUE, 0, 0);
|
||||
sub_803092C();
|
||||
sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1);
|
||||
break;
|
||||
|
||||
@@ -19,7 +19,6 @@ extern struct WindowBG gWindowBGColors;
|
||||
|
||||
EWRAM_DATA_2 GameOptions *gGameOptionsRef = {0};
|
||||
EWRAM_DATA GameOptions gGameOptions = {0};
|
||||
extern void SetWindowBGColor(void);
|
||||
|
||||
void LoadGameOptions(void)
|
||||
{
|
||||
|
||||
@@ -3,11 +3,12 @@
|
||||
#include "code_800D090.h"
|
||||
#include "code_8094F88.h"
|
||||
#include "code_8097670.h"
|
||||
#include "constants/main_menu.h"
|
||||
#include "constants/wonder_mail.h"
|
||||
#include "event_flag.h"
|
||||
#include "file_system.h"
|
||||
#include "input.h"
|
||||
#include "main_menu.h"
|
||||
#include "main_menu1.h"
|
||||
#include "memory.h"
|
||||
#include "menu.h"
|
||||
#include "menu_input.h"
|
||||
@@ -164,25 +165,25 @@ void CreateLoadScreen(u32 currMenu)
|
||||
}
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gLoadScreen->unk144, TRUE, TRUE);
|
||||
SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,0,&gUnknown_80E7610,gUnknown_203B378,0,6,0);
|
||||
SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,0,&gUnknown_80E7610,gUnknown_203B378,FALSE,6,0);
|
||||
switch(gLoadScreen->currMenu){
|
||||
case MENU_CONTINUE:
|
||||
if (IsQuickSave())
|
||||
SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gResumeQuicksaveMenuItems,0,6,0);
|
||||
SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gResumeQuicksaveMenuItems,FALSE,6,0);
|
||||
else
|
||||
SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gResumeAdventureMenuItems,0,6,0);
|
||||
SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gResumeAdventureMenuItems,FALSE,6,0);
|
||||
break;
|
||||
case MENU_AWAITING_RESCUE:
|
||||
SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gQuitWaitingRescueMenuItems,0,6,0);
|
||||
SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gQuitWaitingRescueMenuItems,FALSE,6,0);
|
||||
break;
|
||||
case MENU_DELETE_SAVE_PROMPT:
|
||||
SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gDeleteSavePromptMenuItems,0,6,0);
|
||||
SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gDeleteSavePromptMenuItems,FALSE,6,0);
|
||||
break;
|
||||
case MENU_DELETE_SAVE_CONFIRM:
|
||||
SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C, gDeleteSaveConfirmMenuItems,0,6,0);
|
||||
SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C, gDeleteSaveConfirmMenuItems,FALSE,6,0);
|
||||
break;
|
||||
}
|
||||
SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,2,&gUnknown_80E7784,gLoadScreenYesNoMenu,1,2,0);
|
||||
SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,2,&gUnknown_80E7784,gLoadScreenYesNoMenu,TRUE,2,0);
|
||||
sub_8035CF4(gLoadScreen->unk4,0,0);
|
||||
sub_8035CF4(gLoadScreen->unk4,1,0);
|
||||
sub_8035CF4(gLoadScreen->unk4,2,1);
|
||||
|
||||
1039
src/main_menu.c
1039
src/main_menu.c
File diff suppressed because it is too large
Load Diff
418
src/main_menu1.c
Normal file
418
src/main_menu1.c
Normal file
@@ -0,0 +1,418 @@
|
||||
#include "global.h"
|
||||
#include "adventure_log_menu.h"
|
||||
#include "code_8098BDC.h"
|
||||
#include "constants/item.h"
|
||||
#include "constants/main_menu.h"
|
||||
#include "debug_menu1.h"
|
||||
#include "ds_menus.h"
|
||||
#include "friend_rescue.h"
|
||||
#include "game_options.h"
|
||||
#include "load_screen.h"
|
||||
#include "main_menu1.h"
|
||||
#include "main_menu2.h"
|
||||
#include "memory.h"
|
||||
#include "menu_input.h"
|
||||
#include "other_menus1.h"
|
||||
#include "rescue_password_menu.h"
|
||||
#include "save_menu.h"
|
||||
#include "text1.h"
|
||||
#include "text2.h"
|
||||
#include "trade_items_menu.h"
|
||||
#include "unk_menu_203B360.h"
|
||||
#include "wonder_mail_main_menu.h"
|
||||
|
||||
// NOTE: 0x13 and 0x14
|
||||
// Communication Screen?
|
||||
// Got Communication warning when I wrote them to the struct
|
||||
|
||||
// NOTE: 0x29, 0x2A, 0x2B, 0x2C
|
||||
// Triggers a save
|
||||
|
||||
// NOTE: 0x2D
|
||||
// Triggers a save and then goes to 0x13 (comms warning)
|
||||
|
||||
// NOTE: 0x2E
|
||||
// Deletes the Save
|
||||
|
||||
static EWRAM_DATA_2 MainMenu1Work *sMainMenu = {0};
|
||||
|
||||
#include "data/main_menu1.h"
|
||||
|
||||
static s32 sub_8035DB4(u32 currMenu);
|
||||
|
||||
void InitMainMenu(void)
|
||||
{
|
||||
if (sMainMenu == NULL) {
|
||||
sMainMenu = MemoryAlloc(sizeof(MainMenu1Work), 8);
|
||||
MemoryFill8((u8 *)sMainMenu, 0, sizeof(MainMenu1Work));
|
||||
}
|
||||
|
||||
sMainMenu->currMenu = MENU_NO_SCREEN_CHANGE;
|
||||
sMainMenu->nextMenu = MENU_MAIN_SCREEN;
|
||||
sMainMenu->lastMenu = MENU_MAIN_SCREEN;
|
||||
sMainMenu->unk38 = -1;
|
||||
sMainMenu->unk3C = -1;
|
||||
sMainMenu->sub.unk2E = 0;
|
||||
sMainMenu->sub.unk2C = 1;
|
||||
sMainMenu->sub.unk2D = 0;
|
||||
sub_8035DA0();
|
||||
sMainMenu->unk3A = 0;
|
||||
}
|
||||
|
||||
void DeleteMainMenu(void)
|
||||
{
|
||||
if (sMainMenu) {
|
||||
MemoryFree(sMainMenu);
|
||||
sMainMenu = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void SetUpMenu(void)
|
||||
{
|
||||
if (sMainMenu->currMenu == sMainMenu->nextMenu)
|
||||
return;
|
||||
|
||||
switch (sMainMenu->nextMenu) {
|
||||
case MENU_MAIN_SCREEN:
|
||||
SetWindowBGColor();
|
||||
sub_8099690(0);
|
||||
DrawMainMenu();
|
||||
break;
|
||||
case MENU_AWAITING_RESCUE:
|
||||
case MENU_CONTINUE:
|
||||
case MENU_DELETE_SAVE_PROMPT:
|
||||
case MENU_DELETE_SAVE_CONFIRM:
|
||||
CreateLoadScreen(sMainMenu->nextMenu);
|
||||
break;
|
||||
case MENU_TRADE_ITEMS:
|
||||
CreateTradeItemsMenu();
|
||||
break;
|
||||
case MENU_COMMUNICATION_1:
|
||||
case MENU_COMMUNICATION_2:
|
||||
sub_8036FDC(sub_8035DB4(sMainMenu->nextMenu));
|
||||
break;
|
||||
case MENU_FRIEND_RESCUE:
|
||||
CreateFriendRescueMenu();
|
||||
break;
|
||||
case MENU_WONDER_MAIL:
|
||||
CreateWonderMailMenu();
|
||||
break;
|
||||
case MENU_DUAL_SLOT:
|
||||
CreateDualSlotMenu();
|
||||
break;
|
||||
case MENU_WIRELESS_COMMS:
|
||||
CreateWirelessCommsMenu();
|
||||
break;
|
||||
case MENU_DISPLAY_RESCUE_PASSWORD:
|
||||
case MENU_RESCUE_PASSWORD_ENTRY:
|
||||
CreateRescuePasswordMenu(sMainMenu->nextMenu);
|
||||
break;
|
||||
case MENU_ADVENTURE_LOG:
|
||||
CreateAdventureLogMenu();
|
||||
break;
|
||||
case 0x29:
|
||||
case 0x2A:
|
||||
case 0x2B:
|
||||
case 0x2C:
|
||||
case 0x2D:
|
||||
case MENU_DELETE_SAVE:
|
||||
CreateSaveMenu(sMainMenu->nextMenu);
|
||||
break;
|
||||
case MENU_DEBUG:
|
||||
CreateDebugMenu();
|
||||
break;
|
||||
}
|
||||
|
||||
sMainMenu->currMenu = sMainMenu->nextMenu;
|
||||
}
|
||||
|
||||
s32 UpdateMenu(void)
|
||||
{
|
||||
s32 nextMenu1;
|
||||
s32 nextMenu;
|
||||
|
||||
nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
|
||||
switch (sMainMenu->nextMenu) {
|
||||
case MENU_MAIN_SCREEN:
|
||||
nextMenu = UpdateMainMenu();
|
||||
break;
|
||||
case MENU_AWAITING_RESCUE:
|
||||
case MENU_CONTINUE:
|
||||
case MENU_DELETE_SAVE_PROMPT:
|
||||
case MENU_DELETE_SAVE_CONFIRM:
|
||||
nextMenu = UpdateLoadScreenMenu();
|
||||
break;
|
||||
case MENU_TRADE_ITEMS:
|
||||
nextMenu1 = UpdateTradeItemsMenu();
|
||||
nextMenu = MENU_MAIN_SCREEN;
|
||||
if (nextMenu1 != 3)
|
||||
nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
break;
|
||||
case MENU_FRIEND_RESCUE:
|
||||
nextMenu1 = UpdateFriendRescueMenu();
|
||||
nextMenu = MENU_MAIN_SCREEN;
|
||||
if (nextMenu1 != 3)
|
||||
nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
break;
|
||||
case MENU_WONDER_MAIL:
|
||||
nextMenu1 = UpdateWonderMailMenu();
|
||||
nextMenu = MENU_MAIN_SCREEN;
|
||||
if (nextMenu1 != 3)
|
||||
nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
break;
|
||||
case MENU_DUAL_SLOT:
|
||||
nextMenu1 = UpdateDualSlotMenu();
|
||||
nextMenu = MENU_MAIN_SCREEN;
|
||||
if (nextMenu1 != 3)
|
||||
nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
break;
|
||||
case MENU_WIRELESS_COMMS:
|
||||
nextMenu1 = UpdateWirelessCommsMenu();
|
||||
nextMenu = 5;
|
||||
if (nextMenu1 != 3) {
|
||||
nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
if (nextMenu1 == 2)
|
||||
nextMenu = MENU_MAIN_SCREEN;
|
||||
}
|
||||
break;
|
||||
case MENU_DISPLAY_RESCUE_PASSWORD:
|
||||
case MENU_RESCUE_PASSWORD_ENTRY:
|
||||
nextMenu = UpdateRescuePasswordMenu();
|
||||
break;
|
||||
case MENU_ADVENTURE_LOG:
|
||||
nextMenu = UpdateAdventureLogMenu();
|
||||
break;
|
||||
case 0x24:
|
||||
case 0x25:
|
||||
case 0x26:
|
||||
case 0x27:
|
||||
case 0x28:
|
||||
nextMenu = sub_80383D4();
|
||||
break;
|
||||
case 0x29:
|
||||
case 0x2A:
|
||||
case 0x2B:
|
||||
case 0x2C:
|
||||
case 0x2D:
|
||||
case MENU_DELETE_SAVE:
|
||||
nextMenu = UpdateSaveMenu();
|
||||
break;
|
||||
case MENU_DEBUG:
|
||||
nextMenu = UpdateDebugMenu();
|
||||
break;
|
||||
}
|
||||
|
||||
if (nextMenu != MENU_NO_SCREEN_CHANGE)
|
||||
sMainMenu->nextMenu = nextMenu;
|
||||
|
||||
return nextMenu;
|
||||
}
|
||||
|
||||
void CleanUpMenu(void)
|
||||
{
|
||||
if (sMainMenu->lastMenu == sMainMenu->nextMenu)
|
||||
return;
|
||||
|
||||
switch (sMainMenu->lastMenu) {
|
||||
case MENU_MAIN_SCREEN:
|
||||
CleanMainMenu();
|
||||
break;
|
||||
case MENU_AWAITING_RESCUE:
|
||||
case MENU_CONTINUE:
|
||||
case MENU_DELETE_SAVE_PROMPT:
|
||||
case MENU_DELETE_SAVE_CONFIRM:
|
||||
CleanLoadScreen();
|
||||
break;
|
||||
case MENU_TRADE_ITEMS:
|
||||
CleanTradeItemsMenu();
|
||||
break;
|
||||
case MENU_COMMUNICATION_1:
|
||||
case MENU_COMMUNICATION_2:
|
||||
sub_80370D4();
|
||||
break;
|
||||
case MENU_FRIEND_RESCUE:
|
||||
CleanFriendRescueMenu();
|
||||
break;
|
||||
case MENU_WONDER_MAIL:
|
||||
CleanWonderMailMenu();
|
||||
break;
|
||||
case MENU_DUAL_SLOT:
|
||||
CleanDualSlotMenu();
|
||||
break;
|
||||
case MENU_WIRELESS_COMMS:
|
||||
CleanWirelessCommsMenu();
|
||||
break;
|
||||
case MENU_DISPLAY_RESCUE_PASSWORD:
|
||||
case MENU_RESCUE_PASSWORD_ENTRY:
|
||||
CleanRescuePasswordMenu();
|
||||
break;
|
||||
case MENU_ADVENTURE_LOG:
|
||||
CleanAdventureLogMenu();
|
||||
break;
|
||||
case 0x24:
|
||||
case 0x25:
|
||||
case 0x26:
|
||||
case 0x27:
|
||||
case 0x28:
|
||||
sub_80383A8();
|
||||
break;
|
||||
case 0x29:
|
||||
case 0x2A:
|
||||
case 0x2B:
|
||||
case 0x2C:
|
||||
case 0x2D:
|
||||
case MENU_DELETE_SAVE:
|
||||
CleanSaveMenu();
|
||||
break;
|
||||
case MENU_DEBUG:
|
||||
DeleteDebugMenu();
|
||||
break;
|
||||
}
|
||||
|
||||
sMainMenu->lastMenu = sMainMenu->nextMenu;
|
||||
}
|
||||
|
||||
UNUSED static void sub_8035C00(MainMenuSub *a0)
|
||||
{
|
||||
sMainMenu->sub = *a0;
|
||||
}
|
||||
|
||||
UNUSED static MainMenuSub *sub_8035C10(void)
|
||||
{
|
||||
return &sMainMenu->sub;
|
||||
}
|
||||
|
||||
void sub_8035C1C(void)
|
||||
{
|
||||
sMainMenu->sub.unk2E = 0;
|
||||
sMainMenu->sub.unk2C = 1;
|
||||
sMainMenu->sub.unk2D = 0;
|
||||
}
|
||||
|
||||
void SetMenuItems(MenuStruct *a0, UnkTextStruct2 *a1, s32 index, const UnkTextStruct2 *a3, const MenuItem *menuItems, bool8 a5, u32 menuAction, u32 unused)
|
||||
{
|
||||
a1[index] = *a3;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(a1, TRUE, TRUE);
|
||||
|
||||
if (a5)
|
||||
sub_8012D60(&a0[index], menuItems, 0, 0, menuAction, index);
|
||||
else
|
||||
sub_8012E04(&a0[index], menuItems, 0, 0, 0, index);
|
||||
|
||||
a0[index].unk4C = TRUE;
|
||||
}
|
||||
|
||||
void sub_8035CC0(UnkTextStruct2 *dataArray, u32 index)
|
||||
{
|
||||
sub_8006518(dataArray);
|
||||
dataArray[index] = sUnknown_80E59A8;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(dataArray, TRUE, TRUE);
|
||||
}
|
||||
|
||||
void sub_8035CF4(MenuStruct *menu, u32 index, bool8 a2)
|
||||
{
|
||||
menu[index].unk4C = a2;
|
||||
menu[index].unk4D = 1;
|
||||
menu[index].menuAction = -1;
|
||||
sub_8012EBC(&menu[index]);
|
||||
}
|
||||
|
||||
void sub_8035D1C(void)
|
||||
{
|
||||
sMainMenu->unk38 = -1;
|
||||
}
|
||||
|
||||
UNUSED static void sub_8035D30(s32 a0)
|
||||
{
|
||||
sMainMenu->unk38 = a0;
|
||||
}
|
||||
|
||||
s16 sub_8035D3C(void)
|
||||
{
|
||||
return sMainMenu->unk38;
|
||||
}
|
||||
|
||||
MainMenu1Work *GetMainMenu(void)
|
||||
{
|
||||
return sMainMenu;
|
||||
}
|
||||
|
||||
UNUSED static void sub_8035D58(void)
|
||||
{
|
||||
sMainMenu->unk3C = -1;
|
||||
}
|
||||
|
||||
UNUSED static void sub_8035D68(s32 a0)
|
||||
{
|
||||
sMainMenu->unk3C = a0;
|
||||
}
|
||||
|
||||
s32 sub_8035D74(void)
|
||||
{
|
||||
return sMainMenu->unk3C;
|
||||
}
|
||||
|
||||
UNUSED static void sub_8035D80(unkStruct_8035D94 *item)
|
||||
{
|
||||
#ifndef NONMATCHING
|
||||
register u32 numItem asm("r1");
|
||||
#else
|
||||
u32 numItem;
|
||||
#endif
|
||||
|
||||
u32 itemIndex;
|
||||
MainMenu1Work *preload;
|
||||
|
||||
preload = sMainMenu;
|
||||
numItem = item->numItems;
|
||||
itemIndex = item->itemIndex.itemIndex_u32;
|
||||
preload->unk30.itemIndex.itemIndex_u32 = itemIndex;
|
||||
preload->unk30.numItems = numItem;
|
||||
}
|
||||
|
||||
unkStruct_8035D94 *sub_8035D94(void)
|
||||
{
|
||||
return &sMainMenu->unk30;
|
||||
}
|
||||
|
||||
void sub_8035DA0(void)
|
||||
{
|
||||
sMainMenu->unk30.itemIndex.itemIndex_u8 = ITEM_NOTHING;
|
||||
sMainMenu->unk30.numItems = 0;
|
||||
}
|
||||
|
||||
static s32 sub_8035DB4(u32 currMenu)
|
||||
{
|
||||
s32 returnVar = 8;
|
||||
|
||||
switch (currMenu) {
|
||||
case MENU_COMMUNICATION_1:
|
||||
returnVar = 0;
|
||||
break;
|
||||
case MENU_COMMUNICATION_2:
|
||||
returnVar = 1;
|
||||
break;
|
||||
case 0x15:
|
||||
returnVar = 2;
|
||||
break;
|
||||
case 0x16:
|
||||
returnVar = 3;
|
||||
break;
|
||||
case 0x17:
|
||||
returnVar = 4;
|
||||
break;
|
||||
case 0x18:
|
||||
returnVar = 5;
|
||||
break;
|
||||
case 0x19:
|
||||
returnVar = 6;
|
||||
break;
|
||||
case 0x1A:
|
||||
returnVar = 7;
|
||||
break;
|
||||
}
|
||||
return returnVar;
|
||||
}
|
||||
296
src/main_menu2.c
Normal file
296
src/main_menu2.c
Normal file
@@ -0,0 +1,296 @@
|
||||
#include "global.h"
|
||||
#include "code_803D0D8.h"
|
||||
#include "constants/main_menu.h"
|
||||
#include "constants/wonder_mail.h"
|
||||
#include "main_menu1.h"
|
||||
#include "main_menu2.h"
|
||||
#include "memory.h"
|
||||
#include "menu_input.h"
|
||||
#include "save.h"
|
||||
#include "text1.h"
|
||||
|
||||
static EWRAM_DATA_2 MainMenu2Work *sUnknown_203B34C = {0};
|
||||
static EWRAM_DATA_2 u32 sUnknown_203B350 = {0};
|
||||
static EWRAM_DATA_2 u32 sUnknown_203B354 = {0};
|
||||
|
||||
#include "data/main_menu2.h"
|
||||
|
||||
static void SetMainMenuItems(void);
|
||||
static bool8 SetMainMenuText(void);
|
||||
|
||||
static void sub_803623C(void);
|
||||
|
||||
void DrawMainMenu(void)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
if (sUnknown_203B34C == NULL) {
|
||||
sUnknown_203B34C = MemoryAlloc(sizeof(MainMenu2Work), 8);
|
||||
MemoryFill8((u8 *)sUnknown_203B34C, 0, sizeof(MainMenu2Work));
|
||||
}
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
sUnknown_203B34C->unk144[i] = sUnknown_80E59C8;
|
||||
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(sUnknown_203B34C->unk144, TRUE, TRUE);
|
||||
SetMainMenuItems();
|
||||
sUnknown_203B34C->currMenuChoice = -1;
|
||||
|
||||
if (SetMainMenuText())
|
||||
sub_8035CF4(sUnknown_203B34C->unk4, 2, FALSE);
|
||||
|
||||
sub_8035CF4(sUnknown_203B34C->unk4, 0, TRUE);
|
||||
sUnknown_203B34C->unk0 = 1;
|
||||
}
|
||||
|
||||
void CleanMainMenu(void)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(NULL, TRUE, TRUE);
|
||||
|
||||
if (sUnknown_203B34C != NULL) {
|
||||
MemoryFree(sUnknown_203B34C);
|
||||
sUnknown_203B34C = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
u32 UpdateMainMenu(void)
|
||||
{
|
||||
u32 nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
|
||||
switch (sUnknown_203B34C->unk0) {
|
||||
case 1:
|
||||
sub_8012FD8(&sUnknown_203B34C->unk4[2]);
|
||||
|
||||
if (!sub_8012FD8(sUnknown_203B34C->unk4))
|
||||
sub_8013114(sUnknown_203B34C->unk4, &nextMenu);
|
||||
|
||||
if (SetMainMenuText()) {
|
||||
sub_8035CF4(sUnknown_203B34C->unk4, 0, TRUE);
|
||||
sub_8035CF4(sUnknown_203B34C->unk4, 2, FALSE);
|
||||
}
|
||||
|
||||
switch (nextMenu) {
|
||||
case MENU_NO_SCREEN_CHANGE:
|
||||
nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
break;
|
||||
case 0xFFDD:
|
||||
sUnknown_203B34C->unk0 = 1;
|
||||
nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
ResetUnusedInputStruct();
|
||||
sub_8035CF4(sUnknown_203B34C->unk4, 0, TRUE);
|
||||
sub_8035CF4(sUnknown_203B34C->unk4, 2, FALSE);
|
||||
break;
|
||||
case MENU_TRADE_ITEMS:
|
||||
sub_8035DA0();
|
||||
sUnknown_203B350 = nextMenu;
|
||||
break;
|
||||
case MENU_NEW_GAME:
|
||||
case MENU_AWAITING_RESCUE:
|
||||
case MENU_CONTINUE:
|
||||
case MENU_DELETE_SAVE_PROMPT:
|
||||
case MENU_DELETE_SAVE_CONFIRM:
|
||||
case MENU_ADVENTURE_LOG:
|
||||
case MENU_FRIEND_RESCUE:
|
||||
case MENU_WONDER_MAIL:
|
||||
case MENU_DUAL_SLOT:
|
||||
case MENU_WIRELESS_COMMS:
|
||||
case MENU_DEBUG:
|
||||
sUnknown_203B350 = nextMenu;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 12:
|
||||
if (!sub_8012FD8(&sUnknown_203B34C->unk4[1]))
|
||||
sub_8013114(&sUnknown_203B34C->unk4[1], &nextMenu);
|
||||
|
||||
switch (nextMenu) {
|
||||
case 0xFFDD:
|
||||
sub_803623C();
|
||||
sUnknown_203B34C->unk0 = 1;
|
||||
nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
break;
|
||||
case MENU_SEND_ITEMS:
|
||||
sUnknown_203B354 = nextMenu;
|
||||
nextMenu = MENU_TRADE_ITEMS;
|
||||
break;
|
||||
case MENU_RECEIVE_ITEMS:
|
||||
sUnknown_203B354 = nextMenu;
|
||||
nextMenu = MENU_COMMUNICATION_2;
|
||||
break;
|
||||
case MENU_NO_SCREEN_CHANGE:
|
||||
nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
case 13: // forces the bls switch
|
||||
break;
|
||||
}
|
||||
|
||||
return nextMenu;
|
||||
}
|
||||
|
||||
static bool8 SetMainMenuText(void)
|
||||
{
|
||||
u32 menuChoice;
|
||||
const MenuItem *preload;
|
||||
|
||||
// Have to load the pointer before the index
|
||||
preload = sUnknown_203B34C->unk4[0].menuItems;
|
||||
menuChoice = preload[sUnknown_203B34C->unk4[0].input.menuIndex].menuAction; // chosen menu action?
|
||||
if (sUnknown_203B34C->currMenuChoice == menuChoice)
|
||||
return FALSE;
|
||||
|
||||
sUnknown_203B34C->currMenuChoice = menuChoice;
|
||||
sub_8035CC0(sUnknown_203B34C->unk144, 2);
|
||||
sub_8035CC0(sUnknown_203B34C->unk144, 3);
|
||||
|
||||
switch (menuChoice) {
|
||||
case MENU_WIRELESS_COMMS:
|
||||
// Using wireless communications, you can go on an adventure to unknown worlds.
|
||||
SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E6030, FALSE, 0, 0);
|
||||
break;
|
||||
case MENU_WONDER_MAIL:
|
||||
// Using passwords, you can receive Wonder Mail
|
||||
SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5F80, FALSE, 0, 0);
|
||||
break;
|
||||
case MENU_AWAITING_RESCUE:
|
||||
// You are awaiting resuce by a friend
|
||||
// You can give up waiting for rescue
|
||||
SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5F1C, FALSE, 0, 0);
|
||||
break;
|
||||
case MENU_NEW_GAME:
|
||||
// Start an entirely new adventure
|
||||
SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5CCC, FALSE, 0, 0);
|
||||
break;
|
||||
case MENU_CONTINUE:
|
||||
// Resume your adventure from where you last saved
|
||||
SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5DA0, FALSE, 0, 0);
|
||||
break;
|
||||
case MENU_DELETE_SAVE_PROMPT:
|
||||
// This will delete your saved game data.
|
||||
// Beware! This will delete it forever
|
||||
SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5DF0, FALSE, 0, 0);
|
||||
break;
|
||||
case MENU_ADVENTURE_LOG:
|
||||
// Check your career as an adventurer
|
||||
SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5D0C, FALSE, 0, 0);
|
||||
break;
|
||||
case MENU_FRIEND_RESCUE:
|
||||
// Using a Game Link cable or passwords, friends may rescue each other
|
||||
SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5E5C, FALSE, 0, 0);
|
||||
break;
|
||||
case MENU_TRADE_ITEMS:
|
||||
// Using a Game Link cable you can trade stored items with a friend
|
||||
SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5EBC, FALSE, 0, 0);
|
||||
break;
|
||||
case MENU_DUAL_SLOT:
|
||||
// Using Dual Slot function, you can receive teams from your friends
|
||||
SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5FCC, FALSE, 0, 0);
|
||||
break;
|
||||
case MENU_DEBUG:
|
||||
// This is the Debug Mode.
|
||||
// It won't be in the release version
|
||||
SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5D48, FALSE, 0, 0);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void sub_803623C(void)
|
||||
{
|
||||
sub_8035CC0(sUnknown_203B34C->unk144, 1);
|
||||
SetMainMenuItems();
|
||||
sUnknown_203B34C->currMenuChoice = -1;
|
||||
|
||||
if (SetMainMenuText())
|
||||
sub_8035CF4(sUnknown_203B34C->unk4, 2, FALSE);
|
||||
|
||||
sub_8035CF4(sUnknown_203B34C->unk4, 0, TRUE);
|
||||
}
|
||||
|
||||
static void SetMainMenuItems(void)
|
||||
{
|
||||
if (sub_8011C34() != -1) {
|
||||
if (CountMailType(WONDER_MAIL_TYPE_SOS) == 0) {
|
||||
if (CountMailType(WONDER_MAIL_TYPE_OKD) != 0) {
|
||||
if (sub_803D0D8()) {
|
||||
// Revive Team
|
||||
// Delete Save Data
|
||||
// Adventure Log
|
||||
// Friend Rescue
|
||||
// Trade Items
|
||||
// Wonder Mail
|
||||
SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5A78, sUnknown_80E5C18, TRUE, sUnknown_203B350, 1);
|
||||
}
|
||||
else {
|
||||
// Revive Team
|
||||
// Delete Save Data
|
||||
// Adventure Log
|
||||
// Friend Rescue
|
||||
// Trade Items
|
||||
SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5BC4, sUnknown_80E5BDC, TRUE, sUnknown_203B350, 1);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (sub_803D0D8()) {
|
||||
// Continue
|
||||
// Delete Save Data
|
||||
// Adventure Log
|
||||
// Friend Rescue
|
||||
// Trade Items
|
||||
// Wonder Mail
|
||||
SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5A78, sUnknown_80E5AFC, TRUE, sUnknown_203B350, 1);
|
||||
}
|
||||
else {
|
||||
// Continue
|
||||
// Delete Save Data
|
||||
// Adventure Log
|
||||
// Friend Rescue
|
||||
// Trade Items
|
||||
SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5A60, sUnknown_80E5A90, TRUE, sUnknown_203B350, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (sub_803D0D8()) {
|
||||
// Awaiting Rescue
|
||||
// Delete Save Data
|
||||
// Adventure Log
|
||||
// Friend Rescue
|
||||
// Trade Items
|
||||
// Wonder Mail
|
||||
SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5A78, sUnknown_80E5B8C, TRUE, sUnknown_203B350, 1);
|
||||
}
|
||||
else {
|
||||
// Awaiting Rescue
|
||||
// Delete Save Data
|
||||
// Adventure Log
|
||||
// Friend Rescue
|
||||
// Trade Items
|
||||
SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5B34, sUnknown_80E5B4C, TRUE, sUnknown_203B350, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
// New Game
|
||||
// Adventure Log
|
||||
SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E59E0, sUnknown_80E59F8, TRUE, sUnknown_203B350, 1);
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_80363E0(void)
|
||||
{
|
||||
if (sUnknown_203B34C == NULL)
|
||||
return FALSE;
|
||||
if (sUnknown_203B34C->unk0 == 12)
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
@@ -77,7 +77,6 @@ extern u32 HandleHintDisplayScreenInput(void);
|
||||
extern void DestroyHintDisplayScreen(void);
|
||||
extern u32 sub_801E218(void);
|
||||
extern void sub_801E2C4(void);
|
||||
extern void SetWindowBGColor(void);
|
||||
|
||||
enum
|
||||
{
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "code_80118A4.h"
|
||||
#include "code_80130A8.h"
|
||||
#include "constants/communication_error_codes.h"
|
||||
#include "constants/main_menu.h"
|
||||
#include "dungeon_global_data.h"
|
||||
#include "input.h"
|
||||
#include "items.h"
|
||||
@@ -63,7 +64,7 @@ void sub_8036FDC(s32 param_1)
|
||||
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(sUnknown_203B35C->unk15C, TRUE, TRUE);
|
||||
SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, &sUnknown_80E6CD0, sUnknown_80E6CE8, 0, 6, 0);
|
||||
SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, &sUnknown_80E6CD0, sUnknown_80E6CE8, FALSE, 6, 0);
|
||||
sub_8035CF4(sUnknown_203B35C->unk1C, 0, TRUE);
|
||||
sub_80376CC();
|
||||
}
|
||||
@@ -137,7 +138,7 @@ static void sub_80371B8(void)
|
||||
// Success!
|
||||
// The item exchange with your friend
|
||||
// went through successfully
|
||||
SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, &sUnknown_80E6C50, sUnknown_80E6C68, 0, 6, 0);
|
||||
SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, &sUnknown_80E6C50, sUnknown_80E6C68, FALSE, 6, 0);
|
||||
sub_8035CF4(sUnknown_203B35C->unk1C, 0, TRUE);
|
||||
}
|
||||
}
|
||||
@@ -199,7 +200,7 @@ static void sub_80371B8(void)
|
||||
break;
|
||||
}
|
||||
|
||||
SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, puVar5, MenuItems, 0, 6, 0);
|
||||
SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, puVar5, MenuItems, FALSE, 6, 0);
|
||||
sub_8035CF4(sUnknown_203B35C->unk1C, 0, TRUE);
|
||||
|
||||
if (sUnknown_203B35C->linkStatus != COMMS_GOOD && sUnknown_203B35C->unk0 == 0) {
|
||||
@@ -295,8 +296,7 @@ static void sub_8037400(void)
|
||||
case 4:
|
||||
mailIndex = sub_8035D74();
|
||||
sUnknown_203B35C->unk28C = *GetMailatIndex(mailIndex);
|
||||
// TODO: int16 memes?
|
||||
if (sub_8035D3C() << 0x10 != 0xffff0000) {
|
||||
if ((u16)sub_8035D3C() != 0xFFFF) {
|
||||
species = sub_8035D3C();
|
||||
sUnknown_203B35C->unk2BC = gRecruitedPokemonRef->pokemon[(s16)species];
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include "constants/communication_error_codes.h"
|
||||
#include "constants/dungeon.h"
|
||||
#include "dungeon_global_data.h"
|
||||
#include "main_menu.h"
|
||||
#include "main_menu1.h"
|
||||
#include "memory.h"
|
||||
#include "other_menus1.h"
|
||||
#include "other_menus2.h"
|
||||
@@ -253,8 +253,8 @@ static void sub_8037EBC(WonderMailStruct_203B2C0_sub *param_1, WonderMailStruct
|
||||
static void sub_8037F4C(unkStruct_203B480 *param_1, unkStruct_203B480 *param_2)
|
||||
{
|
||||
unkStruct_203B480 *mail;
|
||||
MainMenu *mainMenu;
|
||||
|
||||
MainMenu1Work *mainMenu;
|
||||
|
||||
if(sub_800D588() == 0)
|
||||
{
|
||||
param_2 = param_1;
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
#include "global.h"
|
||||
#include "code_80130A8.h"
|
||||
#include "code_8094F88.h"
|
||||
#include "constants/main_menu.h"
|
||||
#include "dungeon.h"
|
||||
#include "input.h"
|
||||
#include "items.h"
|
||||
#include "main_menu.h"
|
||||
#include "main_menu1.h"
|
||||
#include "memory.h"
|
||||
#include "menu_input.h"
|
||||
#include "pokemon.h"
|
||||
@@ -345,7 +346,7 @@ s32 UpdateRescuePasswordMenu(void)
|
||||
unkStruct_203B480 *mailPtr1;
|
||||
unkStruct_203B480 *mailPtr2;
|
||||
u32 iVar7;
|
||||
MainMenu *mainMenuPtr;
|
||||
MainMenu1Work *mainMenuPtr;
|
||||
s32 nextMenu;
|
||||
unkStruct_203B480 mail;
|
||||
u32 menuAction;
|
||||
@@ -554,31 +555,31 @@ void DisplayRescuePasswordError(u32 passwordError)
|
||||
sub_80155F0();
|
||||
switch(passwordError) {
|
||||
case PASSWORD_ENTRY_INCORRECT_PASSWORD:
|
||||
SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E71FC,gUnknown_80E7214,0,0xd,0);
|
||||
SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E71FC,gUnknown_80E7214,FALSE,0xd,0);
|
||||
break;
|
||||
case PASSWORD_ENTRY_NOT_SOS_MAIL:
|
||||
SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E72EC,gUnknown_80E7304,0,0xd,0);
|
||||
SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E72EC,gUnknown_80E7304,FALSE,0xd,0);
|
||||
break;
|
||||
case PASSWORD_ENTRY_DUPLICATE_SOS_MAIL:
|
||||
SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7344,gUnknown_80E735C,0,0xd,0);
|
||||
SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7344,gUnknown_80E735C,FALSE,0xd,0);
|
||||
break;
|
||||
case PASSWORD_ENTRY_NO_SPACE:
|
||||
SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7588,gUnknown_80E75A0,0,0xd,0);
|
||||
SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7588,gUnknown_80E75A0,FALSE,0xd,0);
|
||||
break;
|
||||
case PASSWORD_ENTRY_NOT_AOK_MAIL:
|
||||
SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E73AC,gUnknown_80E73C4,0,0xd,0);
|
||||
SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E73AC,gUnknown_80E73C4,FALSE,0xd,0);
|
||||
break;
|
||||
case PASSWORD_ENTRY_DUPLICATE_AOK_MAIL:
|
||||
SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7408,gUnknown_80E7420,0,0xd,0);
|
||||
SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7408,gUnknown_80E7420,FALSE,0xd,0);
|
||||
break;
|
||||
case PASSWORD_ENTRY_NOT_THANK_YOU_MAIL:
|
||||
SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7468,gUnknown_80E7480,0,0xd,0);
|
||||
SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7468,gUnknown_80E7480,FALSE,0xd,0);
|
||||
break;
|
||||
case PASSWORD_ENTRY_DUPLICATE_THANK_YOU_MAIL:
|
||||
SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E74C8,gUnknown_80E74E0,0,0xd,0);
|
||||
SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E74C8,gUnknown_80E74E0,FALSE,0xd,0);
|
||||
break;
|
||||
case PASSWORD_ENTRY_NOT_WONDER_MAIL:
|
||||
SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E752C,gUnknown_80E7544,0,0xd,0);
|
||||
SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E752C,gUnknown_80E7544,FALSE,0xd,0);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -592,7 +593,7 @@ void DisplayPasswordAcceptScreen(void)
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(NULL, TRUE, TRUE);
|
||||
sub_80155F0();
|
||||
SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7278,gUnknown_80E7290,0,0xd,0);
|
||||
SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7278,gUnknown_80E7290,FALSE,0xd,0);
|
||||
sub_8035CF4(gRescuePasswordMenu->unk8,0,TRUE);
|
||||
}
|
||||
|
||||
|
||||
139
src/save_menu.c
139
src/save_menu.c
@@ -1,24 +1,15 @@
|
||||
#include "global.h"
|
||||
#include "main_menu.h"
|
||||
#include "memory.h"
|
||||
#include "text1.h"
|
||||
#include "save.h"
|
||||
#include "menu_input.h"
|
||||
#include "sprite.h"
|
||||
#include "code_80130A8.h"
|
||||
#include "constants/main_menu.h"
|
||||
#include "main_menu1.h"
|
||||
#include "memory.h"
|
||||
#include "menu_input.h"
|
||||
#include "save.h"
|
||||
#include "save_menu.h"
|
||||
#include "sprite.h"
|
||||
#include "text1.h"
|
||||
|
||||
struct unkStruct_203B360
|
||||
{
|
||||
// size: 0x1b4
|
||||
u32 currMenu;
|
||||
u32 unk4;
|
||||
MenuStruct unk8[4];
|
||||
UnkTextStruct2 unk148[4];
|
||||
SpriteOAM unk1A8;
|
||||
u32 unk1B0; // Sprite count?
|
||||
};
|
||||
|
||||
EWRAM_DATA_2 struct unkStruct_203B360 *gUnknown_203B364 = {0};
|
||||
static EWRAM_DATA_2 SaveMenuWork *sUnknown_203B364 = {0};
|
||||
|
||||
const UnkTextStruct2 gUnknown_80E6F20 =
|
||||
{
|
||||
@@ -134,29 +125,29 @@ void CreateSaveMenu(s32 currMenu)
|
||||
{
|
||||
s32 index;
|
||||
|
||||
if (gUnknown_203B364 == NULL) {
|
||||
gUnknown_203B364 = MemoryAlloc(sizeof(struct unkStruct_203B360),8);
|
||||
MemoryFill8((u8 *)gUnknown_203B364,0,sizeof(struct unkStruct_203B360));
|
||||
if (sUnknown_203B364 == NULL) {
|
||||
sUnknown_203B364 = MemoryAlloc(sizeof(SaveMenuWork),8);
|
||||
MemoryFill8((u8 *)sUnknown_203B364,0,sizeof(SaveMenuWork));
|
||||
}
|
||||
for(index = 0; index < 4; index++){
|
||||
gUnknown_203B364->unk148[index] = gUnknown_80E6F20;
|
||||
sUnknown_203B364->unk148[index] = gUnknown_80E6F20;
|
||||
}
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B364->unk148, TRUE, TRUE);
|
||||
sub_800641C(sUnknown_203B364->unk148, TRUE, TRUE);
|
||||
|
||||
if (currMenu == MENU_DELETE_SAVE) {
|
||||
// Beware, Deleting your Adventure
|
||||
SetMenuItems(gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,gDeletingYourAdventureMenuItems,
|
||||
0,6,0);
|
||||
SetMenuItems(sUnknown_203B364->unk8,sUnknown_203B364->unk148,0,&gUnknown_80E6F38,gDeletingYourAdventureMenuItems,
|
||||
FALSE,6,0);
|
||||
}
|
||||
else {
|
||||
// Saving your Adventure
|
||||
SetMenuItems(gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,gSavingAdventureMenuItems,
|
||||
0,6,0);
|
||||
SetMenuItems(sUnknown_203B364->unk8,sUnknown_203B364->unk148,0,&gUnknown_80E6F38,gSavingAdventureMenuItems,
|
||||
FALSE,6,0);
|
||||
}
|
||||
sub_8035CF4(gUnknown_203B364->unk8,0,TRUE);
|
||||
gUnknown_203B364->unk4 = 0;
|
||||
gUnknown_203B364->currMenu = currMenu;
|
||||
sub_8035CF4(sUnknown_203B364->unk8,0,TRUE);
|
||||
sUnknown_203B364->unk4 = 0;
|
||||
sUnknown_203B364->currMenu = currMenu;
|
||||
sub_8038830();
|
||||
}
|
||||
|
||||
@@ -164,31 +155,31 @@ void CleanSaveMenu(void)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(NULL, TRUE, TRUE);
|
||||
if (gUnknown_203B364 != NULL) {
|
||||
MemoryFree(gUnknown_203B364);
|
||||
gUnknown_203B364 = NULL;
|
||||
if (sUnknown_203B364 != NULL) {
|
||||
MemoryFree(sUnknown_203B364);
|
||||
sUnknown_203B364 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
s32 UpdateSaveMenu(void)
|
||||
{
|
||||
int saveStatus;
|
||||
MainMenu *mainMenu;
|
||||
s32 saveStatus;
|
||||
MainMenu1Work *mainMenu;
|
||||
u32 menu;
|
||||
u32 uStack_18;
|
||||
u32 action;
|
||||
|
||||
|
||||
menu = MENU_NO_SCREEN_CHANGE;
|
||||
action = 3;
|
||||
|
||||
switch(gUnknown_203B364->unk4)
|
||||
switch(sUnknown_203B364->unk4)
|
||||
{
|
||||
default:
|
||||
case 2:
|
||||
menu = MENU_NO_SCREEN_CHANGE;
|
||||
break;
|
||||
case 0:
|
||||
sub_8012FD8(&gUnknown_203B364->unk8[0]);
|
||||
sub_8012FD8(&sUnknown_203B364->unk8[0]);
|
||||
uStack_18 = 0;
|
||||
sub_80140F8();
|
||||
saveStatus = WriteSavetoPak(&uStack_18,sub_8011C1C());
|
||||
@@ -196,76 +187,76 @@ s32 UpdateSaveMenu(void)
|
||||
switch(saveStatus)
|
||||
{
|
||||
case SAVE_COMPLETED:
|
||||
sub_8035CC0(gUnknown_203B364->unk148,0);
|
||||
if (gUnknown_203B364->currMenu == MENU_DELETE_SAVE) {
|
||||
SetMenuItems(gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,
|
||||
gDeletedSaveMenuItems,0,6,0);
|
||||
sub_8035CC0(sUnknown_203B364->unk148,0);
|
||||
if (sUnknown_203B364->currMenu == MENU_DELETE_SAVE) {
|
||||
SetMenuItems(sUnknown_203B364->unk8,sUnknown_203B364->unk148,0,&gUnknown_80E6F38,
|
||||
gDeletedSaveMenuItems,FALSE,6,0);
|
||||
}
|
||||
else {
|
||||
SetMenuItems(gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,
|
||||
gAdventureSavedMenuItems,0,6,0);
|
||||
SetMenuItems(sUnknown_203B364->unk8,sUnknown_203B364->unk148,0,&gUnknown_80E6F38,
|
||||
gAdventureSavedMenuItems,FALSE,6,0);
|
||||
}
|
||||
if (gUnknown_203B364->currMenu == 0x2d) {
|
||||
gUnknown_203B364->unk4 = 1;
|
||||
if (sUnknown_203B364->currMenu == 0x2d) {
|
||||
sUnknown_203B364->unk4 = 1;
|
||||
return MENU_COMMUNICATION_1;
|
||||
}
|
||||
sub_8035CF4(gUnknown_203B364->unk8,0,TRUE);
|
||||
gUnknown_203B364->unk4 = 1;
|
||||
sub_8035CF4(sUnknown_203B364->unk8,0,TRUE);
|
||||
sUnknown_203B364->unk4 = 1;
|
||||
break;
|
||||
case SAVE_NOT_WRTTEN:
|
||||
sub_80141B4(gUnknown_80E7178,0,0,0);
|
||||
gUnknown_203B364->unk4 = 5;
|
||||
sUnknown_203B364->unk4 = 5;
|
||||
break;
|
||||
default:
|
||||
sub_8035CC0(gUnknown_203B364->unk148,0);
|
||||
if (gUnknown_203B364->currMenu == MENU_DELETE_SAVE) {
|
||||
SetMenuItems(gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,
|
||||
gAdventureCouldNotBeDeletedMenuItems,0,6,0);
|
||||
sub_8035CC0(sUnknown_203B364->unk148,0);
|
||||
if (sUnknown_203B364->currMenu == MENU_DELETE_SAVE) {
|
||||
SetMenuItems(sUnknown_203B364->unk8,sUnknown_203B364->unk148,0,&gUnknown_80E6F38,
|
||||
gAdventureCouldNotBeDeletedMenuItems,FALSE,6,0);
|
||||
}
|
||||
else {
|
||||
SetMenuItems(gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,
|
||||
gAdventureCouldNotBeSavedMenuItems,0,6,0);
|
||||
SetMenuItems(sUnknown_203B364->unk8,sUnknown_203B364->unk148,0,&gUnknown_80E6F38,
|
||||
gAdventureCouldNotBeSavedMenuItems,FALSE,6,0);
|
||||
}
|
||||
sub_8035CF4(gUnknown_203B364->unk8,0,TRUE);
|
||||
gUnknown_203B364->unk4 = 1;
|
||||
sub_8035CF4(sUnknown_203B364->unk8,0,TRUE);
|
||||
sUnknown_203B364->unk4 = 1;
|
||||
break;
|
||||
}
|
||||
menu = MENU_NO_SCREEN_CHANGE;
|
||||
break;
|
||||
case 1:
|
||||
if (sub_80130A8(&gUnknown_203B364->unk8[0]) == '\0') {
|
||||
sub_8013114(&gUnknown_203B364->unk8[0],&action);
|
||||
if (sub_80130A8(&sUnknown_203B364->unk8[0]) == '\0') {
|
||||
sub_8013114(&sUnknown_203B364->unk8[0],&action);
|
||||
}
|
||||
switch(action)
|
||||
{
|
||||
case 2:
|
||||
case 4:
|
||||
if ((gUnknown_203B364->currMenu == 0x29) || (gUnknown_203B364->currMenu == MENU_DELETE_SAVE)) {
|
||||
gUnknown_203B364->unk4 = 1;
|
||||
if ((sUnknown_203B364->currMenu == 0x29) || (sUnknown_203B364->currMenu == MENU_DELETE_SAVE)) {
|
||||
sUnknown_203B364->unk4 = 1;
|
||||
menu = MENU_MAIN_SCREEN;
|
||||
}
|
||||
else if (gUnknown_203B364->currMenu == 0x2d) {
|
||||
gUnknown_203B364->unk4 = 1;
|
||||
else if (sUnknown_203B364->currMenu == 0x2d) {
|
||||
sUnknown_203B364->unk4 = 1;
|
||||
menu = MENU_COMMUNICATION_1;
|
||||
}
|
||||
else if (gUnknown_203B364->currMenu == 0x2c) {
|
||||
gUnknown_203B364->unk4 = 1;
|
||||
else if (sUnknown_203B364->currMenu == 0x2c) {
|
||||
sUnknown_203B364->unk4 = 1;
|
||||
menu = 0x1f;
|
||||
}
|
||||
else {
|
||||
mainMenu = GetMainMenu();
|
||||
if (mainMenu->unk3A != 0) {
|
||||
gUnknown_203B364->unk4 = 1;
|
||||
sUnknown_203B364->unk4 = 1;
|
||||
menu = 0x35;
|
||||
}
|
||||
else {
|
||||
gUnknown_203B364->unk4 = 1;
|
||||
menu = gUnknown_203B364->currMenu == 0x2b ? MENU_WONDER_MAIL : MENU_FRIEND_RESCUE;
|
||||
sUnknown_203B364->unk4 = 1;
|
||||
menu = sUnknown_203B364->currMenu == 0x2b ? MENU_WONDER_MAIL : MENU_FRIEND_RESCUE;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
gUnknown_203B364->unk4 = 1;
|
||||
sUnknown_203B364->unk4 = 1;
|
||||
break;
|
||||
}
|
||||
sub_80388C4();
|
||||
@@ -288,7 +279,7 @@ void sub_8038830(void)
|
||||
SpriteOAM *sprite;
|
||||
|
||||
r5 = 0;
|
||||
sprite = &gUnknown_203B364->unk1A8;
|
||||
sprite = &sUnknown_203B364->unk1A8;
|
||||
|
||||
r1 = sprite->attrib1;
|
||||
r0 = (u16)~SPRITEOAM_MASK_AFFINEMODE1;
|
||||
@@ -329,14 +320,14 @@ void sub_8038830(void)
|
||||
r2 |= r1;
|
||||
sprite->unk6 = r2;
|
||||
|
||||
gUnknown_203B364->unk1B0 = r5;
|
||||
sUnknown_203B364->unk1B0 = r5;
|
||||
ResetSprites(FALSE);
|
||||
}
|
||||
|
||||
void sub_80388C4(void)
|
||||
{
|
||||
if (gUnknown_203B364->unk1B0 & 8)
|
||||
AddSprite(&gUnknown_203B364->unk1A8, 0x100, NULL, NULL);
|
||||
if (sUnknown_203B364->unk1B0 & 8)
|
||||
AddSprite(&sUnknown_203B364->unk1A8, 0x100, NULL, NULL);
|
||||
|
||||
gUnknown_203B364->unk1B0++;
|
||||
sUnknown_203B364->unk1B0++;
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
#include "constants/communication_error_codes.h"
|
||||
#include "cpu.h"
|
||||
#include "items.h"
|
||||
#include "main_menu.h"
|
||||
#include "main_menu1.h"
|
||||
#include "memory.h"
|
||||
#include "menu_input.h"
|
||||
#include "other_menus2.h"
|
||||
@@ -1278,7 +1278,7 @@ void UpdateThankYouMailText(void)
|
||||
break;
|
||||
case 0x11:
|
||||
sub_8006518(gUnknown_203B2C4->unk35C);
|
||||
SetMenuItems(gUnknown_203B2C4->unk21C,gUnknown_203B2C4->unk35C,3,&gUnknown_80DED60,gUnknown_80DED78,1,0,0);
|
||||
SetMenuItems(gUnknown_203B2C4->unk21C,gUnknown_203B2C4->unk35C,3,&gUnknown_80DED60,gUnknown_80DED78,TRUE,0,0);
|
||||
sub_803092C();
|
||||
sub_8035CF4(gUnknown_203B2C4->unk21C,3,TRUE);
|
||||
break;
|
||||
@@ -1294,7 +1294,7 @@ void UpdateThankYouMailText(void)
|
||||
break;
|
||||
case 0x14:
|
||||
sub_8006518(gUnknown_203B2C4->unk35C);
|
||||
SetMenuItems(gUnknown_203B2C4->unk21C,gUnknown_203B2C4->unk35C,3,&gUnknown_80DED48,gUnknown_80DED78,1,0,0);
|
||||
SetMenuItems(gUnknown_203B2C4->unk21C,gUnknown_203B2C4->unk35C,3,&gUnknown_80DED48,gUnknown_80DED78,TRUE,0,0);
|
||||
sub_801CCD8();
|
||||
sub_8035CF4(gUnknown_203B2C4->unk21C,3,TRUE);
|
||||
break;
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#include "constants/communication_error_codes.h"
|
||||
#include "cpu.h"
|
||||
#include "items.h"
|
||||
#include "main_menu.h"
|
||||
#include "main_menu1.h"
|
||||
#include "memory.h"
|
||||
#include "menu_input.h"
|
||||
#include "other_menus2.h"
|
||||
@@ -22,8 +22,6 @@ static EWRAM_DATA_2 struct TradeItemsMenu *sTradeItemsMenu = {0};
|
||||
|
||||
#include "data/trade_items_menu.h"
|
||||
|
||||
extern void sub_8035C1C();
|
||||
|
||||
extern u32 sub_801D008();
|
||||
extern s32 sub_8037B28(u32);
|
||||
|
||||
@@ -522,7 +520,7 @@ void sub_8036B28(void)
|
||||
case TRADE_ITEMS_SEND_ITEM_POPUP_MENU:
|
||||
sub_8006518(sTradeItemsMenu->unk184);
|
||||
SetMenuItems(sTradeItemsMenu->unk44,sTradeItemsMenu->unk184,3,&sUnknown_80E60EC,
|
||||
sUnknown_80E6104,1,0,0);
|
||||
sUnknown_80E6104,TRUE,0,0);
|
||||
sub_801CCD8();
|
||||
sub_8035CF4(sTradeItemsMenu->unk44,3,TRUE);
|
||||
break;
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
#include "global.h"
|
||||
#include "input.h"
|
||||
#include "main_menu.h"
|
||||
#include "constants/main_menu.h"
|
||||
#include "main_menu1.h"
|
||||
#include "memory.h"
|
||||
#include "menu.h"
|
||||
#include "text1.h"
|
||||
#include "menu_input.h"
|
||||
#include "sprite.h"
|
||||
#include "text1.h"
|
||||
#include "unk_menu_203B360.h"
|
||||
|
||||
// Similar to RescuePasswordMenu
|
||||
struct unkStruct_203B360
|
||||
// Size: 0x1B4. Similar to SaveMenuWork
|
||||
typedef struct unkStruct_203B360
|
||||
{
|
||||
// size: 0x1b4
|
||||
u32 currMenu;
|
||||
/* 0x0 */ u32 currMenu;
|
||||
u32 unk4; // state
|
||||
MenuStruct unk8[4];
|
||||
UnkTextStruct2 unk148[4];
|
||||
SpriteOAM unk1A8;
|
||||
u32 unk1B0; // sprite count?
|
||||
};
|
||||
} unkStruct_203B360;
|
||||
|
||||
static EWRAM_DATA_2 unkStruct_203B360 *sUnknown_203B360 = {0};
|
||||
|
||||
EWRAM_DATA_2 struct unkStruct_203B360 *gUnknown_203B360 = {0};
|
||||
const UnkTextStruct2 gUnknown_80E6E7C = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
@@ -61,25 +61,25 @@ void sub_80382E4(s32 currMenu)
|
||||
{
|
||||
s32 index;
|
||||
|
||||
if (gUnknown_203B360 == NULL) {
|
||||
gUnknown_203B360 = MemoryAlloc(sizeof(struct unkStruct_203B360), 8);
|
||||
MemoryFill8((u8 *)gUnknown_203B360, 0, sizeof(struct unkStruct_203B360));
|
||||
if (sUnknown_203B360 == NULL) {
|
||||
sUnknown_203B360 = MemoryAlloc(sizeof(unkStruct_203B360), 8);
|
||||
MemoryFill8((u8 *)sUnknown_203B360, 0, sizeof(unkStruct_203B360));
|
||||
}
|
||||
for(index = 0; index < 4; index++){
|
||||
gUnknown_203B360->unk148[index] = gUnknown_80E6E7C;
|
||||
sUnknown_203B360->unk148[index] = gUnknown_80E6E7C;
|
||||
}
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B360->unk148, TRUE, TRUE);
|
||||
sub_800641C(sUnknown_203B360->unk148, TRUE, TRUE);
|
||||
if (currMenu == 0x25) {
|
||||
// Caution!
|
||||
// The storage space is empty!
|
||||
// Please check again.
|
||||
SetMenuItems(gUnknown_203B360->unk8,gUnknown_203B360->unk148,0,&gUnknown_80E6E94,gUnknown_80E6EAC,
|
||||
0,4,0);
|
||||
SetMenuItems(sUnknown_203B360->unk8,sUnknown_203B360->unk148,0,&gUnknown_80E6E94,gUnknown_80E6EAC,
|
||||
FALSE,4,0);
|
||||
}
|
||||
sub_8035CF4(gUnknown_203B360->unk8,0,TRUE);
|
||||
gUnknown_203B360->currMenu = currMenu;
|
||||
gUnknown_203B360->unk4 = 0;
|
||||
sub_8035CF4(sUnknown_203B360->unk8,0,TRUE);
|
||||
sUnknown_203B360->currMenu = currMenu;
|
||||
sUnknown_203B360->unk4 = 0;
|
||||
sub_8038440();
|
||||
}
|
||||
|
||||
@@ -87,9 +87,9 @@ void sub_80383A8(void)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(NULL, TRUE, TRUE);
|
||||
if (gUnknown_203B360 != 0) {
|
||||
MemoryFree(gUnknown_203B360);
|
||||
gUnknown_203B360 = 0;
|
||||
if (sUnknown_203B360 != 0) {
|
||||
MemoryFree(sUnknown_203B360);
|
||||
sUnknown_203B360 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,19 +101,19 @@ u32 sub_80383D4(void)
|
||||
menuAction = 2;
|
||||
nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
|
||||
if (gUnknown_203B360->unk4 == 0){
|
||||
if (sub_80130A8(&gUnknown_203B360->unk8[0]) == '\0') {
|
||||
sub_8013114(&gUnknown_203B360->unk8[0], &menuAction);
|
||||
if (sUnknown_203B360->unk4 == 0){
|
||||
if (sub_80130A8(&sUnknown_203B360->unk8[0]) == '\0') {
|
||||
sub_8013114(&sUnknown_203B360->unk8[0], &menuAction);
|
||||
}
|
||||
switch(menuAction)
|
||||
{
|
||||
case 3:
|
||||
case 1:
|
||||
gUnknown_203B360->unk4 = 0;
|
||||
sUnknown_203B360->unk4 = 0;
|
||||
nextMenu = MENU_MAIN_SCREEN;
|
||||
break;
|
||||
case 2:
|
||||
gUnknown_203B360->unk4 = 0;
|
||||
sUnknown_203B360->unk4 = 0;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -138,7 +138,7 @@ void sub_8038440(void)
|
||||
SpriteOAM *sprite;
|
||||
|
||||
r5 = 0;
|
||||
sprite = &gUnknown_203B360->unk1A8;
|
||||
sprite = &sUnknown_203B360->unk1A8;
|
||||
|
||||
r1 = sprite->attrib1;
|
||||
r0 = (u16)~SPRITEOAM_MASK_AFFINEMODE1;
|
||||
@@ -181,15 +181,15 @@ void sub_8038440(void)
|
||||
r2 |= r1;
|
||||
sprite->unk6 = r2;
|
||||
|
||||
gUnknown_203B360->unk1B0 = r5;
|
||||
sUnknown_203B360->unk1B0 = r5;
|
||||
}
|
||||
|
||||
|
||||
void sub_80384D0(void)
|
||||
{
|
||||
if ((gUnknown_203B360->unk1B0 & 8) != 0) {
|
||||
AddSprite(&gUnknown_203B360->unk1A8, 0x100, NULL, NULL);
|
||||
if ((sUnknown_203B360->unk1B0 & 8) != 0) {
|
||||
AddSprite(&sUnknown_203B360->unk1A8, 0x100, NULL, NULL);
|
||||
}
|
||||
gUnknown_203B360->unk1B0++;
|
||||
sUnknown_203B360->unk1B0++;
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#include "constants/communication_error_codes.h"
|
||||
#include "cpu.h"
|
||||
#include "items.h"
|
||||
#include "main_menu.h"
|
||||
#include "main_menu1.h"
|
||||
#include "memory.h"
|
||||
#include "menu_input.h"
|
||||
#include "other_menus2.h"
|
||||
@@ -542,7 +542,7 @@ void sub_8028348(void)
|
||||
break;
|
||||
case 0x34:
|
||||
sub_8006518(gUnknown_203B2C0->unk35C);
|
||||
SetMenuItems(gUnknown_203B2C0->unk21C, gUnknown_203B2C0->unk35C, 3, &gUnknown_80DDAE4, gUnknown_80DDAFC, 1, 0, 0);
|
||||
SetMenuItems(gUnknown_203B2C0->unk21C, gUnknown_203B2C0->unk35C, 3, &gUnknown_80DDAE4, gUnknown_80DDAFC, TRUE, 0, 0);
|
||||
sub_8023DA4();
|
||||
sub_8035CF4(gUnknown_203B2C0->unk21C, 3, TRUE);
|
||||
break;
|
||||
@@ -697,7 +697,7 @@ void sub_8028348(void)
|
||||
case 0x20:
|
||||
case 0x2B:
|
||||
sub_8006518(gUnknown_203B2C0->unk35C);
|
||||
SetMenuItems(gUnknown_203B2C0->unk21C, gUnknown_203B2C0->unk35C, 3, &gUnknown_80DDACC, gUnknown_80DDAFC, 1, 0, 0);
|
||||
SetMenuItems(gUnknown_203B2C0->unk21C, gUnknown_203B2C0->unk35C, 3, &gUnknown_80DDACC, gUnknown_80DDAFC, TRUE, 0, 0);
|
||||
sub_803092C();
|
||||
sub_8035CF4(gUnknown_203B2C0->unk21C, 3, TRUE);
|
||||
break;
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
#include "text2.h"
|
||||
#include "wonder_mail.h"
|
||||
#include "wonder_mail_3.h"
|
||||
#include "wonder_mail_main_menu.h"
|
||||
|
||||
#define SELECT_WONDER_MAIL_MODE_MAIN_SCREEN 0
|
||||
#define SEND_WONDER_MAIL_MAIN_SCREEN 1
|
||||
@@ -186,7 +187,7 @@ bool8 CreateWonderMailMenu(void)
|
||||
return 1;
|
||||
}
|
||||
|
||||
u8 UpdateWonderMailMenu(void)
|
||||
u32 UpdateWonderMailMenu(void)
|
||||
{
|
||||
switch(gUnknown_203B3E8->state) {
|
||||
case RECEIVE_WONDER_MAIL_MAIN_SCREEN:
|
||||
|
||||
@@ -325,7 +325,8 @@ gUnknown_203B328: /* 203B328 (wonder_mail_6) */
|
||||
.include "src/friend_rescue.o"
|
||||
.include "src/credits1.o"
|
||||
.include "src/credits2.o"
|
||||
.include "src/main_menu.o"
|
||||
.include "src/main_menu1.o"
|
||||
.include "src/main_menu2.o"
|
||||
.include "src/trade_items_menu.o"
|
||||
.include "src/other_menus1.o"
|
||||
.include "src/unk_menu_203B360.o"
|
||||
|
||||
Reference in New Issue
Block a user