diff options
author | YamaArashi <shadow962@live.com> | 2016-12-29 21:32:16 -0800 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-12-29 21:32:16 -0800 |
commit | 1eeb0b58b51d9a12e6d7059816a5f6598c4facc7 (patch) | |
tree | 52cabbce8b6560024e383aadb32657e9b0fff9ad | |
parent | 9eceeb2a37763413b015f8fc01da9ec7d35c8d16 (diff) |
add nonmatching cleaner code for mystery_event_menu.c
-rw-r--r-- | include/asm.inc.h | 3 | ||||
-rw-r--r-- | include/mystery_event_menu.h | 6 | ||||
-rw-r--r-- | src/main_menu.c | 1 | ||||
-rw-r--r-- | src/mystery_event_menu.c | 94 |
4 files changed, 88 insertions, 16 deletions
diff --git a/include/asm.inc.h b/include/asm.inc.h index 9c2ca5e94..c375389dc 100644 --- a/include/asm.inc.h +++ b/include/asm.inc.h @@ -448,9 +448,6 @@ void sub_813E930(/*TODO: arg types*/); void sub_813EB4C(u8); void sub_813EDBC(/*TODO: arg types*/); -// asm/mystery_event_menu.o -void CB2_InitMysteryEventMenu(void); - // asm/rom_81473B8.o bool8 sub_81474C8(void); void sub_8147514(void); diff --git a/include/mystery_event_menu.h b/include/mystery_event_menu.h new file mode 100644 index 000000000..8801789d9 --- /dev/null +++ b/include/mystery_event_menu.h @@ -0,0 +1,6 @@ +#ifndef GUARD_MYSTERY_EVENT_MENU_H +#define GUARD_MYSTERY_EVENT_MENU_H + +void CB2_InitMysteryEventMenu(void); + +#endif // GUARD_MYSTERY_EVENT_MENU_H diff --git a/src/main_menu.c b/src/main_menu.c index 274386b03..9842d6f39 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -3,6 +3,7 @@ #include "asm.h" #include "decompress.h" #include "menu.h" +#include "mystery_event_menu.h" #include "option_menu.h" #include "palette.h" #include "rom4.h" diff --git a/src/mystery_event_menu.c b/src/mystery_event_menu.c index 1227e4110..a1e94c2f9 100644 --- a/src/mystery_event_menu.c +++ b/src/mystery_event_menu.c @@ -11,6 +11,7 @@ #include "sound.h" #include "save.h" #include "asm.h" +#include "mystery_event_menu.h" extern u8 unk_2000000[]; extern u8 gUnknown_02039338; @@ -22,7 +23,10 @@ extern u8 gSystemText_DontCutLink[]; extern u8 gSystemText_EventLoadSuccess[]; extern u8 gSystemText_LoadingError[]; -void sub_81469E4(void); +static void VBlankCB(void); +static bool8 CheckLanguageMatch(void); +static bool8 GetEventLoadMessage(u8 *dest, u32 status); +static void CB2_MysteryEventMenu(void); static void VBlankCB(void) { @@ -31,7 +35,7 @@ static void VBlankCB(void) TransferPlttBuffer(); } -bool8 sub_8146914(void) +static bool8 CheckLanguageMatch(void) { bool8 val = FALSE; @@ -59,29 +63,29 @@ void CB2_InitMysteryEventMenu(void) BuildOamBuffer(); UpdatePaletteFade(); FillPalette(0, 0, 2); - SetMainCallback2(sub_81469E4); + SetMainCallback2(CB2_MysteryEventMenu); } -bool8 sub_81469AC(u8 *dest, u32 a2) +static bool8 GetEventLoadMessage(u8 *dest, u32 status) { bool8 retVal = 1; - if (a2 == 0) + if (status == 0) { StringCopy(dest, gSystemText_EventLoadSuccess); retVal = 0; } - if (a2 == 2) + if (status == 2) retVal = 0; - if (a2 == 1) + if (status == 1) StringCopy(dest, gSystemText_LoadingError); return retVal; } -void sub_81469E4(void) +static void CB2_MysteryEventMenu(void) { u16 unkVal; @@ -124,6 +128,69 @@ void sub_81469E4(void) if (MenuUpdateWindowText()) gMain.state++; break; +#ifdef NONMATCHING + case 5: + if (GetLinkPlayerCount_2() != 2) + { + GetEventLoadMessage(gStringVar4, 1); + sub_8072044(gStringVar4); + gMain.state = 13; + break; + } + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + sub_8007F4C(); + MenuDrawTextWindow(6, 5, 23, 8); + MenuPrint(gSystemText_LoadingEvent, 7, 6); + gMain.state++; + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + CloseLink(); + gMain.state = 15; + } + break; + case 6: + if (IsLinkConnectionEstablished()) + { + if (!gReceivedRemoteLinkPlayers) + break; + + if (GetLinkPlayerDataExchangeStatusTimed() == 3) + { + sub_800832C(); + MenuZeroFillWindowRect(6, 5, 23, 8); + GetEventLoadMessage(gStringVar4, 1); + sub_8072044(gStringVar4); + gMain.state = 13; + break; + } + else if (CheckLanguageMatch()) + { + sub_8072044(gSystemText_DontCutLink); + gMain.state++; + } + else + { + CloseLink(); + MenuZeroFillWindowRect(6, 5, 23, 8); + GetEventLoadMessage(gStringVar4, 1); + sub_8072044(gStringVar4); + gMain.state = 13; + break; + } + } + if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + CloseLink(); + gMain.state = 15; + break; + } + break; +#else case 5: if (GetLinkPlayerCount_2() != 2) { @@ -158,7 +225,7 @@ void sub_81469E4(void) { sub_800832C(); MenuZeroFillWindowRect(6, 5, 23, 8); - sub_81469AC(gStringVar4, 1); + GetEventLoadMessage(gStringVar4, 1); sub_8072044(gStringVar4); ptr = (u8 *)&gMain; offset1 = offsetof(struct Main, state); @@ -166,7 +233,7 @@ void sub_81469E4(void) ptr += offset1; *ptr = 13; } - else if (sub_8146914()) + else if (CheckLanguageMatch()) { register u8 *ptr2 asm("r1"); register int offset3 asm("r0"); @@ -185,7 +252,7 @@ void sub_81469E4(void) CloseLink(); MenuZeroFillWindowRect(6, 5, 23, 8); label: - sub_81469AC(gStringVar4, 1); + GetEventLoadMessage(gStringVar4, 1); sub_8072044(gStringVar4); ptr = (u8 *)&gMain; offset2 = offsetof(struct Main, state); @@ -202,6 +269,7 @@ void sub_81469E4(void) break; } break; +#endif case 7: if (MenuUpdateWindowText()) gMain.state++; @@ -225,7 +293,7 @@ void sub_81469E4(void) break; unkVal = sub_812613C(unk_2000000); CpuFill32(0, unk_2000000, 0x7D4); - if (!sub_81469AC(gStringVar4, unkVal)) + if (!GetEventLoadMessage(gStringVar4, unkVal)) sub_8125D44(0); gMain.state++; break; @@ -264,7 +332,7 @@ void sub_81469E4(void) { CloseLink(); MenuZeroFillWindowRect(6, 5, 23, 8); - sub_81469AC(gStringVar4, 1); + GetEventLoadMessage(gStringVar4, 1); sub_8072044(gStringVar4); gMain.state = 13; } |