diff options
author | GriffinR <griffin.g.richards@gmail.com> | 2020-03-04 10:42:40 -0500 |
---|---|---|
committer | GriffinR <griffin.g.richards@gmail.com> | 2020-03-04 18:26:54 -0500 |
commit | 4df660dc76b5f35d2a89e0cb627180b79e9caa12 (patch) | |
tree | f05f6f7c4f82c18de34a494f93207165ab89dd08 | |
parent | 13e06bf7f88be6d25f420704b76828ed6f24cbc2 (diff) |
Add enums for help system text, label help context
33 files changed, 1633 insertions, 704 deletions
diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s index ccf946752..24b2474f1 100644 --- a/asm/field_player_avatar.s +++ b/asm/field_player_avatar.s @@ -4157,7 +4157,7 @@ sub_805D240: @ 805D240 bl DestroySprite adds r0, r5, 0 bl DestroyTask - bl sub_812B35C + bl SetHelpContextForMap _0805D2AE: pop {r4-r6} pop {r0} diff --git a/asm/naming_screen.s b/asm/naming_screen.s index 233c71d6d..1e0d2ef68 100644 --- a/asm/naming_screen.s +++ b/asm/naming_screen.s @@ -491,9 +491,9 @@ sub_809DD60: @ 809DD60 bl CreateTask ldr r0, _0809DD84 @ =sub_809FB70 bl SetMainCallback2 - bl HelpSystem_BackupSomeVariable - movs r0, 0x3 - bl HelpSystem_SetSomeVariable2 + bl BackupHelpContext + movs r0, 0x3 @ HELPCONTEXT_NAMING_SCREEN + bl SetHelpContext pop {r0} bx r0 .align 2, 0 @@ -868,7 +868,7 @@ _0809E06C: ldr r0, [r4] bl Free str r5, [r4] - bl HelpSystem_RestoreSomeVariable + bl RestoreHelpContext _0809E096: movs r0, 0 pop {r4,r5} diff --git a/asm/overworld.s b/asm/overworld.s index 1c366ef80..eb341d760 100644 --- a/asm/overworld.s +++ b/asm/overworld.s @@ -4012,7 +4012,7 @@ _08056ACE: bl sub_8057074 bl sub_80571A8 bl sub_8057140 - bl sub_812B35C + bl SetHelpContextForMap b _08056B62 _08056AE4: bl InitCurrentFlashLevelScanlineEffect @@ -4152,7 +4152,7 @@ _08056BFE: bl sub_80CC534 bl sub_80CC59C _08056C16: - bl sub_812B35C + bl SetHelpContextForMap b _08056CCA .align 2, 0 _08056C1C: .4byte gQuestLogState @@ -4275,7 +4275,7 @@ _08056D04: b _08056D30 _08056D1C: bl sub_8056F08 - bl sub_812B35C + bl SetHelpContextForMap b _08056D30 _08056D26: bl map_post_load_hook_exec @@ -4343,7 +4343,7 @@ _08056DAE: bl sub_8057230 bl sub_8057100 bl sub_805715C - bl sub_812B35C + bl SetHelpContextForMap b _08056E3E _08056DC0: bl InitCurrentFlashLevelScanlineEffect diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 79966093f..a5e53f6f3 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -1411,8 +1411,8 @@ _0808C3CC: .4byte _0808C5A6 .4byte _0808C680 _0808C3E0: - movs r0, 0x1C - bl HelpSystem_SetSomeVariable2 + movs r0, 0x1C @ HELPCONTEXT_BILLS_PC + bl SetHelpContext ldrb r0, [r5, 0xA] adds r1, r5, 0 adds r1, 0x26 @@ -2715,8 +2715,8 @@ _0808CE18: bl CreateTask ldr r1, [r4] strb r0, [r1, 0x4] - movs r0, 0x1C - bl HelpSystem_SetSomeVariable2 + movs r0, 0x1C @ HELPCONTEXT_BILLS_PC + bl SetHelpContext bl StorageGetCurrentBox ldr r1, _0808CE58 @ =gUnknown_20397B8 strb r0, [r1] @@ -2766,8 +2766,8 @@ _0808CE8C: bl CreateTask ldr r1, [r4] strb r0, [r1, 0x4] - movs r0, 0x1C - bl HelpSystem_SetSomeVariable2 + movs r0, 0x1C @ HELPCONTEXT_BILLS_PC + bl SetHelpContext ldr r0, _0808CEC4 @ =c2_Box bl SetMainCallback2 _0808CEB6: diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index 19b838f47..b0c2b9a87 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -106,8 +106,8 @@ _081345D0: cmp r0, 0x5 beq _08134604 _081345D4: - movs r0, 0x6 - bl HelpSystem_SetSomeVariable2 + movs r0, 0x6 @ HELPCONTEXT_POKEMON_INFO + bl SetHelpContext ldr r2, _081345F8 @ =gUnknown_203B140 ldr r0, [r2] ldr r3, _081345FC @ =0x00003214 @@ -127,8 +127,8 @@ _081345F8: .4byte gUnknown_203B140 _081345FC: .4byte 0x00003214 _08134600: .4byte 0x00003234 _08134604: - movs r0, 0x6 - bl HelpSystem_SetSomeVariable2 + movs r0, 0x6 @ HELPCONTEXT_POKEMON_INFO + bl SetHelpContext ldr r0, [r4] ldr r3, _08134628 @ =0x00003214 adds r0, r3 @@ -148,8 +148,8 @@ _08134628: .4byte 0x00003214 _0813462C: .4byte 0x0000321c _08134630: .4byte 0x00003234 _08134634: - movs r0, 0x8 - bl HelpSystem_SetSomeVariable2 + movs r0, 0x8 @ HELPCONTEXT_POKEMON_MOVES + bl SetHelpContext ldr r0, [r4] ldr r3, _08134710 @ =0x00003214 adds r0, r3 @@ -7600,15 +7600,15 @@ _08138460: .4byte 0x00003214 _08138464: cmp r0, 0x3 bgt _08138476 - movs r0, 0x8 + movs r0, 0x8 @ HELPCONTEXT_POKEMON_MOVES b _08138472 _0813846C: - movs r0, 0x6 + movs r0, 0x6 @ HELPCONTEXT_POKEMON_INFO b _08138472 _08138470: - movs r0, 0x7 + movs r0, 0x7 @ HELPCONTEXT_POKEMON_SKILLS _08138472: - bl HelpSystem_SetSomeVariable2 + bl SetHelpContext _08138476: pop {r0} bx r0 diff --git a/common_syms/help_system_812B1E0.txt b/common_syms/help_system_812B1E0.txt index cd404504e..20475eeb9 100644 --- a/common_syms/help_system_812B1E0.txt +++ b/common_syms/help_system_812B1E0.txt @@ -1,2 +1,2 @@ -sHelpSystemState -gSomeVariableBackup +gHelpSystemState +gHelpContextIdBackup diff --git a/data/event_scripts.s b/data/event_scripts.s index 3c221d2aa..ed293ba64 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -35,6 +35,7 @@ #include "constants/daycare.h" #include "constants/easy_chat.h" #include "constants/trainer_card.h" +#include "constants/help_system.h" .include "asm/macros.inc" .include "asm/macros/event.inc" .set FALSE, 0 diff --git a/data/maps/PalletTown_PlayersHouse_2F/scripts.inc b/data/maps/PalletTown_PlayersHouse_2F/scripts.inc index 975da4be1..943056ea3 100644 --- a/data/maps/PalletTown_PlayersHouse_2F/scripts.inc +++ b/data/maps/PalletTown_PlayersHouse_2F/scripts.inc @@ -32,15 +32,15 @@ PalletTown_PlayersHouse_2F_EventScript_Sign:: @ 8168CDB PalletTown_PlayersHouse_2F_EventScript_PC:: @ 8168CE4 goto_if_questlog EventScript_ReleaseEnd lockall - setvar VAR_0x8004, 32 - special HelpSystem_SetSomeVariable + setvar VAR_0x8004, HELPCONTEXT_BEDROOM_PC + special Script_SetHelpContext setvar VAR_0x8004, 1 special AnimatePcTurnOn playse SE_PC_ON msgbox Text_PlayerBootedUpPC special BedroomPC waitstate - special sub_812B35C + special SetHelpContextForMap releaseall end @@ -48,6 +48,6 @@ EventScript_PalletTown_PlayersHouse_2F_ShutDownPC:: @ 8168D17 setvar VAR_0x8004, 1 playse SE_PC_OFF special AnimatePcTurnOff - special sub_812B35C + special SetHelpContextForMap releaseall end diff --git a/data/scripts/hall_of_fame.inc b/data/scripts/hall_of_fame.inc index 5ce427a6a..5657ff2dd 100644 --- a/data/scripts/hall_of_fame.inc +++ b/data/scripts/hall_of_fame.inc @@ -1,7 +1,7 @@ EventScript_SetDefeatedEliteFourFlagsVars:: @ 81A651A clearflag FLAG_HIDE_POSTGAME_GOSSIPERS call EventScript_ResetEliteFour - special Special_UpdateTrainerFanClubGameClear + special Script_UpdateTrainerFanClubGameClear specialvar VAR_RESULT, IsNationalPokedexEnabled compare VAR_RESULT, FALSE call_if_eq EventScript_SetReadyTryGiveNationalDexScene diff --git a/data/scripts/pc.inc b/data/scripts/pc.inc index af9eca601..0c71b9c76 100644 --- a/data/scripts/pc.inc +++ b/data/scripts/pc.inc @@ -2,8 +2,8 @@ EventScript_PC:: @ 81A6955 goto_if_questlog EventScript_ReleaseEnd lockall goto_if_set FLAG_SYS_PC_STORAGE_DISABLED, EventScript_PCDisabled - setvar VAR_0x8004, 27 - special HelpSystem_SetSomeVariable + setvar VAR_0x8004, HELPCONTEXT_PC + special Script_SetHelpContext setvar VAR_0x8004, 0 special AnimatePcTurnOn playse SE_PC_ON @@ -50,8 +50,8 @@ EventScript_AccessPokemonStorage:: @ 81A6A05 msgbox Text_OpenedPkmnStorage special ShowPokemonStorageSystem waitstate - setvar VAR_0x8004, 27 - special HelpSystem_SetSomeVariable + setvar VAR_0x8004, HELPCONTEXT_PC + special Script_SetHelpContext goto EventScript_PCMainMenu end @@ -67,19 +67,19 @@ EventScript_TurnOffPC:: @ 81A6A46 setvar VAR_0x8004, 0 playse SE_PC_OFF special AnimatePcTurnOff - special sub_812B35C + special SetHelpContextForMap releaseall end EventScript_AccessHallOfFame:: @ 81A6A56 goto_if_unset FLAG_SYS_GAME_CLEAR, EventScript_TurnOffPC playse SE_PC_LOGIN - setvar VAR_0x8004, 31 - special HelpSystem_BackupSomeVariable - special HelpSystem_SetSomeVariable + setvar VAR_0x8004, HELPCONTEXT_PC_MISC + special BackupHelpContext + special Script_SetHelpContext special HallOfFamePCBeginFade waitstate - special HelpSystem_RestoreSomeVariable + special RestoreHelpContext goto EventScript_ChoosePCMenu end diff --git a/data/scripts/pokedex_rating.inc b/data/scripts/pokedex_rating.inc index c8b126e60..79f4ad84c 100644 --- a/data/scripts/pokedex_rating.inc +++ b/data/scripts/pokedex_rating.inc @@ -35,9 +35,9 @@ PokedexRating_EventScript_DexCompleteFanfare:: @ 81A73DC return PokedexRating_EventScript_Rate:: @ 81A73E0 - setvar VAR_0x8004, 31 - special HelpSystem_BackupSomeVariable - special HelpSystem_SetSomeVariable + setvar VAR_0x8004, HELPCONTEXT_PC_MISC + special BackupHelpContext + special Script_SetHelpContext setvar VAR_0x8004, 0 specialvar VAR_RESULT, GetPokedexCount copyvar VAR_0x8008, VAR_0x8005 @@ -80,5 +80,5 @@ PokedexRating_EventScript_DexComplete:: @ 81A747E end PokedexRating_EventScript_EndRating:: @ 81A748F - special HelpSystem_RestoreSomeVariable + special RestoreHelpContext return diff --git a/data/specials.inc b/data/specials.inc index 3f9addacb..0d7670f63 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -389,9 +389,9 @@ gSpecials:: @ 815FD60 def_special TakePokemonFromRoute5Daycare def_special DoSeagallopFerryScene def_special DoesPlayerPartyContainSpecies - def_special HelpSystem_SetSomeVariable - def_special HelpSystem_BackupSomeVariable - def_special HelpSystem_RestoreSomeVariable + def_special Script_SetHelpContext + def_special BackupHelpContext + def_special RestoreHelpContext def_special ValidateReceivedWonderCard def_special sub_810B810 def_special InitUnionRoom @@ -408,7 +408,7 @@ gSpecials:: @ 815FD60 def_special ChooseMonForMoveTutor def_special ChooseMonForWirelessMinigame def_special SetBattledTrainerFlag - def_special sub_812B35C + def_special SetHelpContextForMap def_special DoSSAnneDepartureCutscene def_special IsPokemonJumpSpeciesInParty def_special IsNationalPokedexEnabled diff --git a/include/constants/help_system.h b/include/constants/help_system.h new file mode 100644 index 000000000..b74183370 --- /dev/null +++ b/include/constants/help_system.h @@ -0,0 +1,42 @@ +#ifndef GUARD_CONSTANTS_HELP_SYSTEM_H +#define GUARD_CONSTANTS_HELP_SYSTEM_H + +#define HELPCONTEXT_NONE 0 +#define HELPCONTEXT_TITLE_SCREEN 1 +#define HELPCONTEXT_NEW_GAME 2 +#define HELPCONTEXT_NAMING_SCREEN 3 +#define HELPCONTEXT_POKEDEX 4 +#define HELPCONTEXT_PARTY_MENU 5 +#define HELPCONTEXT_POKEMON_INFO 6 +#define HELPCONTEXT_POKEMON_SKILLS 7 +#define HELPCONTEXT_POKEMON_MOVES 8 +#define HELPCONTEXT_BAG 9 +#define HELPCONTEXT_TRAINER_CARD_FRONT 10 +#define HELPCONTEXT_TRAINER_CARD_BACK 11 +#define HELPCONTEXT_SAVE 12 +#define HELPCONTEXT_OPTIONS 13 +#define HELPCONTEXT_PLAYERS_HOUSE 14 +#define HELPCONTEXT_OAKS_LAB 15 +#define HELPCONTEXT_POKECENTER 16 +#define HELPCONTEXT_MART 17 +#define HELPCONTEXT_GYM 18 +#define HELPCONTEXT_INDOORS 19 +#define HELPCONTEXT_OVERWORLD 20 +#define HELPCONTEXT_DUNGEON 21 // Caves and Forests +#define HELPCONTEXT_SURFING 22 +#define HELPCONTEXT_WILD_BATTLE 23 +#define HELPCONTEXT_TRAINER_BATTLE_SINGLE 24 +#define HELPCONTEXT_TRAINER_BATTLE_DOUBLE 25 +#define HELPCONTEXT_SAFARI_BATTLE 26 +#define HELPCONTEXT_PC 27 +#define HELPCONTEXT_BILLS_PC 28 +#define HELPCONTEXT_PLAYERS_PC_ITEMS 29 +#define HELPCONTEXT_PLAYERS_PC_MAILBOX 30 +#define HELPCONTEXT_PC_MISC 31 // Prof Oaks PC and the HoF PC +#define HELPCONTEXT_BEDROOM_PC 32 +#define HELPCONTEXT_BEDROOM_PC_ITEMS 33 +#define HELPCONTEXT_BEDROOM_PC_MAILBOX 34 +#define HELPCONTEXT_UNUSED 35 +#define HELPCONTEXT_COUNT 36 + +#endif //GUARD_CONSTANTS_HELP_SYSTEM_H
\ No newline at end of file diff --git a/include/help_system.h b/include/help_system.h index c5ae5e5fa..8a078f3bc 100644 --- a/include/help_system.h +++ b/include/help_system.h @@ -4,6 +4,7 @@ #include "global.h" #include "list_menu.h" #include "blit.h" +#include "constants/help_system.h" struct HelpSystemListMenu_sub { @@ -29,9 +30,10 @@ extern bool8 gHelpSystemEnabled; extern bool8 gHelpSystemToggleWithRButtonDisabled; // help_system_812B1E0 -void HelpSystem_SetSomeVariable(u8); -void HelpSystem_SetSomeVariable2(u8); -bool8 sub_812B40C(void); +void SetHelpContextDontCheckBattle(u8); +void SetHelpContextForMap(void); +void SetHelpContext(u8); +bool8 HelpSystem_UpdateHasntSeenIntro(void); bool8 sub_812B45C(void); void HelpSystem_Disable(void); void HelpSystem_Enable(void); @@ -44,7 +46,7 @@ bool8 HelpSystemSubroutine_MenuInputHandlerMain(struct HelpSystemListMenu * help bool8 HelpMenuSubroutine_InitSubmenu(struct HelpSystemListMenu * helpListMenu, struct ListMenuItem * listMenuItemsBuffer); bool8 HelpMenuSubroutine_ReturnFromSubmenu(struct HelpSystemListMenu * helpListMenu, struct ListMenuItem * listMenuItemsBuffer); bool8 HelpMenuSubroutine_SubmenuInputHandler(struct HelpSystemListMenu * helpListMenu, struct ListMenuItem * listMenuItemsBuffer); -void sub_812BDEC(void); +void HelpSystem_PrintTopicLabel(void); bool8 HelpMenuSubroutine_HelpItemPrint(struct HelpSystemListMenu * helpListMenu, struct ListMenuItem * listMenuItemsBuffer); bool8 HelpMenuSubroutine_ReturnFromHelpItem(struct HelpSystemListMenu * helpListMenu, struct ListMenuItem * listMenuItemsBuffer); bool8 HelpMenuSubroutine_HelpItemWaitButton(struct HelpSystemListMenu * helpListMenu, struct ListMenuItem * listMenuItemsBuffer); @@ -89,8 +91,8 @@ void HelpSystem_FillPanel3(void); void PrintListMenuItems(void); void PlaceListMenuCursor(void); bool8 MoveCursor(u8 by, u8 dirn); -void HelpSystem_BackupSomeVariable(void); -void HelpSystem_RestoreSomeVariable(void); +void BackupHelpContext(void); +void RestoreHelpContext(void); void HelpSystemRenderText(u8 font, u8 * dest, const u8 * src, u8 x, u8 y, u8 width, u8 height); void HelpSystem_DisableToggleWithRButton(void); diff --git a/include/player_pc.h b/include/player_pc.h index f62835911..84cf2327c 100644 --- a/include/player_pc.h +++ b/include/player_pc.h @@ -13,7 +13,7 @@ struct PlayerPCItemPageStruct u8 pageItems; u8 count; u8 filler_6[3]; - u8 unk_9; + bool8 notInRoom; u8 scrollIndicatorId; u8 filler_B[5]; }; diff --git a/src/battle_main.c b/src/battle_main.c index 9c573dcba..bbfcf5cf9 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -641,17 +641,17 @@ void CB2_InitBattle(void) if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) { if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - HelpSystem_SetSomeVariable2(0x19); + SetHelpContext(HELPCONTEXT_TRAINER_BATTLE_DOUBLE); else - HelpSystem_SetSomeVariable2(0x18); + SetHelpContext(HELPCONTEXT_TRAINER_BATTLE_SINGLE); } else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) { - HelpSystem_SetSomeVariable2(0x1A); + SetHelpContext(HELPCONTEXT_SAFARI_BATTLE); } else { - HelpSystem_SetSomeVariable2(0x17); + SetHelpContext(HELPCONTEXT_WILD_BATTLE); } } } diff --git a/src/field_effect.c b/src/field_effect.c index 9b2974f1f..b28063626 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -1232,7 +1232,7 @@ static bool8 FallWarpEffect_7(struct Task * task) { VarSet(VAR_TEMP_1, 1); SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_SURFING); - HelpSystem_SetSomeVariable2(22); + SetHelpContext(HELPCONTEXT_SURFING); } DestroyTask(FindTaskIdByFunc(Task_FallWarpFieldEffect)); return FALSE; @@ -2963,7 +2963,7 @@ static void UseSurfEffect_5(struct Task * task) ScriptContext2_Disable(); FieldEffectActiveListRemove(FLDEFF_USE_SURF); DestroyTask(FindTaskIdByFunc(Task_FldEffUseSurf)); - HelpSystem_SetSomeVariable2(22); + SetHelpContext(HELPCONTEXT_SURFING); } } diff --git a/src/field_specials.c b/src/field_specials.c index 6d01bbee6..e8def2c39 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -1518,7 +1518,7 @@ static void Task_ListMenuRemoveScrollIndicatorArrowPair(u8 taskId) void ForcePlayerToStartSurfing(void) { - HelpSystem_SetSomeVariable2(22); + SetHelpContext(HELPCONTEXT_SURFING); SetPlayerAvatarTransitionFlags(8); } diff --git a/src/help_system.c b/src/help_system.c index d68acbaa1..48483c387 100644 --- a/src/help_system.c +++ b/src/help_system.c @@ -90,7 +90,7 @@ u8 RunHelpSystemCallback(void) HelpSystem_FillPanel2(); HelpSystem_PrintText_Row61(gString_Help); sub_813BD14(1); - if (sub_812B40C() == TRUE) + if (HelpSystem_UpdateHasntSeenIntro() == TRUE) HelpSystemSubroutine_PrintWelcomeMessage(&gHelpSystemListMenu, gHelpSystemListMenuItems); else HelpSystemSubroutine_WelcomeEndGotoMenu(&gHelpSystemListMenu, gHelpSystemListMenuItems); @@ -1184,7 +1184,7 @@ bool8 MoveCursor(u8 by, u8 dirn) HelpSystem_FillPanel1(); PrintListMenuItems(); PlaceListMenuCursor(); - sub_812BDEC(); + HelpSystem_PrintTopicLabel(); sub_813C75C(); } else diff --git a/src/help_system_812B1E0.c b/src/help_system_812B1E0.c index 5f5fdb989..88a1e75b7 100644 --- a/src/help_system_812B1E0.c +++ b/src/help_system_812B1E0.c @@ -16,17 +16,17 @@ #include "constants/maps.h" #include "constants/songs.h" -static EWRAM_DATA u16 sSomeVariable = 0; -static EWRAM_DATA u8 gUnknown_203B0EE = 0; +static EWRAM_DATA u16 sHelpSystemContextId = 0; +static EWRAM_DATA u8 sSeenHelpSystemIntro = 0; -u8 sHelpSystemState[4]; -u16 gSomeVariableBackup; +u8 gHelpSystemState[4]; +u16 gHelpContextIdBackup; static bool32 IsCurrentMapInArray(const u16 * mapIdxs); static void BuildMainTopicsListAndMoveToH00(struct HelpSystemListMenu * a0, struct ListMenuItem * a1); static void SetHelpSystemSubmenuItems(struct HelpSystemListMenu * a0, struct ListMenuItem * a1); -static bool8 HelpSystem_HasDefeatedBrock(void); -static bool8 HelpSystemSubmenuIndexIsActive(u8); +static bool8 HelpSystem_ShouldShowBasicTerms(void); +static bool8 IsHelpSystemSubmenuEnabled(u8); static bool8 HasGottenAtLeastOneHM(void); static void PrintWelcomeMessageOnPanel1(void); @@ -34,22 +34,86 @@ static void PrintTextOnPanel2Row52RightAlign(const u8 *); static void ResetHelpSystemCursor(struct HelpSystemListMenu * a0); static void PrintHelpSystemTopicMouseoverDescription(struct HelpSystemListMenu * a0, struct ListMenuItem * a1); -static const u8 *const sHelpSystemTopicPtrs[] = { - Help_Text_WhatShouldIDo, - Help_Text_HowDoIDoThis, - Help_Text_WhatDoesThisTermMean, - Help_Text_AboutThisGame, - Help_Text_TypeMatchupList, - Help_Text_Exit -}; +#define HELP_NONE 0 +#define HELP_END 0xFF -static const u8 *const sHelpSystemTopicMouseoverDescriptionPtrs[] = { - Help_Text_DescWhatShouldIDo, - Help_Text_DescHowDoIDoThis, - Help_Text_DescWhatDoesThisTermMean, - Help_Text_DescAboutThisGame, - Help_Text_DescTypeMatchupList, - Help_Text_DescExit +// Help Main Topics +enum +{ + TOPIC_WHAT_TO_DO, + TOPIC_HOW_TO_DO, + TOPIC_TERMS, + TOPIC_ABOUT_GAME, + TOPIC_TYPE_MATCHUP, + TOPIC_EXIT, + TOPIC_COUNT +}; + +static const u8 *const sHelpSystemTopicPtrs[TOPIC_COUNT] = { + [TOPIC_WHAT_TO_DO] = Help_Text_WhatShouldIDo, + [TOPIC_HOW_TO_DO] = Help_Text_HowDoIDoThis, + [TOPIC_TERMS] = Help_Text_WhatDoesThisTermMean, + [TOPIC_ABOUT_GAME] = Help_Text_AboutThisGame, + [TOPIC_TYPE_MATCHUP] = Help_Text_TypeMatchupList, + [TOPIC_EXIT] = Help_Text_Exit +}; + +static const u8 *const sHelpSystemTopicMouseoverDescriptionPtrs[TOPIC_COUNT] = { + [TOPIC_WHAT_TO_DO] = Help_Text_DescWhatShouldIDo, + [TOPIC_HOW_TO_DO] = Help_Text_DescHowDoIDoThis, + [TOPIC_TERMS] = Help_Text_DescWhatDoesThisTermMean, + [TOPIC_ABOUT_GAME] = Help_Text_DescAboutThisGame, + [TOPIC_TYPE_MATCHUP] = Help_Text_DescTypeMatchupList, + [TOPIC_EXIT] = Help_Text_DescExit +}; + +// Submenu IDs for TOPIC_WHAT_TO_DO +enum +{ + HELP_PLAYING_FOR_FIRST_TIME = 1, + HELP_WHAT_SHOULD_I_BE_DOING, + HELP_CANT_GET_OUT_OF_ROOM, + HELP_CANT_FIND_PERSON_I_WANT, + HELP_TALKED_TO_EVERYONE_NOW_WHAT, + HELP_SOMEONE_BLOCKING_MY_WAY, + HELP_I_CANT_GO_ON, + HELP_OUT_OF_THINGS_TO_DO, + HELP_WHAT_HAPPENED_TO_ITEM_I_GOT, + HELP_WHAT_ARE_MY_ADVENTURE_BASICS, + HELP_HOW_ARE_ROADS_FORESTS_DIFFERENT, + HELP_HOW_ARE_CAVES_DIFFERENT, + HELP_HOW_DO_I_PROGRESS, + HELP_WHEN_CAN_I_USE_ITEM, + HELP_WHATS_A_BATTLE, + HELP_HOW_DO_I_PREPARE_FOR_BATTLE, + HELP_WHAT_IS_A_MONS_VITALITY, + HELP_MY_MONS_ARE_HURT, + HELP_WHAT_IS_STATUS_PROBLEM, + HELP_WHAT_HAPPENS_IF_ALL_MY_MONS_FAINT, + HELP_CANT_CATCH_MONS, + HELP_RAN_OUT_OF_POTIONS, + HELP_CAN_I_BUY_POKEBALLS, + HELP_WHATS_A_TRAINER, + HELP_HOW_DO_I_WIN_AGAINST_TRAINER, + HELP_WHERE_DO_MONS_APPEAR, + HELP_WHAT_ARE_MOVES, + HELP_WHAT_ARE_HIDDEN_MOVES, + HELP_WHAT_MOVES_SHOULD_I_USE, + HELP_WANT_TO_ADD_MORE_MOVES, + HELP_WANT_TO_MAKE_MON_STRONGER, + HELP_FOE_MONS_TOO_STRONG, + HELP_WHAT_DO_I_DO_IN_CAVE, + HELP_NOTHING_I_WANT_TO_KNOW, + HELP_WHATS_POKEMON_CENTER, + HELP_WHATS_POKEMON_MART, + HELP_WANT_TO_END_GAME, + HELP_WHATS_A_MON, + HELP_WHAT_IS_THAT_PERSON_LIKE, + HELP_WHAT_DOES_HIDDEN_MOVE_DO, + HELP_WHAT_DO_I_DO_IN_SAFARI, + HELP_WHAT_ARE_SAFARI_RULES, + HELP_WANT_TO_END_SAFARI, + HELP_WHAT_IS_A_GYM, }; static const u8 *const sHelpSystemSpecializedQuestionTextPtrs[] = { @@ -148,6 +212,59 @@ static const u8 *const sHelpSystemSpecializedAnswerTextPtrs[] = { Help_Text_AnswerWhatIsAGym }; +// Submenu IDs for TOPIC_HOW_TO_DO +enum +{ + HELP_USING_POKEDEX = 1, + HELP_USING_POKEMON, + HELP_USING_SUMMARY, + HELP_USING_SWITCH, + HELP_USING_ITEM, + HELP_USING_BAG, + HELP_USING_AN_ITEM, + HELP_USING_KEYITEM, + HELP_USING_POKEBALL, + HELP_USING_PLAYER, + HELP_USING_SAVE, + HELP_USING_OPTION, + HELP_USING_POTION, + HELP_USING_TOWN_MAP, + HELP_USING_TM, + HELP_USING_HM, + HELP_USING_MOVE_OUTSIDE_OF_BATTLE, + HELP_RIDING_BICYCLE, + HELP_ENTERING_NAME, + HELP_USING_PC, + HELP_USING_BILLS_PC, + HELP_USING_WITHDRAW, + HELP_USING_DEPOSIT, + HELP_USING_MOVE, + HELP_MOVING_ITEMS, + HELP_USING_PLAYERS_PC, + HELP_USING_WITHDRAW_ITEM, + HELP_USING_DEPOSIT_ITEM, + HELP_USING_MAILBOX, + HELP_USING_PROF_OAKS_PC, + HELP_OPENING_MENU, + HELP_USING_FIGHT, + HELP_USING_POKEMON2, + HELP_USING_SHIFT, + HELP_USING_SUMMARY2, + HELP_USING_BAG2, + HELP_READING_POKEDEX, + HELP_USING_HOME_PC, + HELP_USING_ITEM_STORAGE, + HELP_USING_WITHDRAW_ITEM2, + HELP_USING_DEPOSIT_ITEM2, + HELP_USING_MAILBOX2, + HELP_USING_RUN, + HELP_REGISTER_KEY_ITEM, + HELP_USING_BALL, + HELP_USING_BAIT, + HELP_USING_ROCK, + HELP_USING_HALL_OF_FAME, +}; + static const u8 *const sHelpSystemMenuTopicTextPtrs[] = { NULL, Help_Text_UsingPokedex, @@ -252,6 +369,54 @@ static const u8 *const sHelpSystemHowToUseMenuTextPtrs[] = { Help_Text_HowToUseHallOfFame }; +// Submenu IDs for TOPIC_TERMS +enum +{ + HELP_TERM_HP = 1, + HELP_TERM_EXP, + HELP_TERM_MOVES, + HELP_TERM_ATTACK, + HELP_TERM_DEFENSE, + HELP_TERM_SPATK, + HELP_TERM_SPDEF, + HELP_TERM_SPEED, + HELP_TERM_LEVEL, + HELP_TERM_TYPE, + HELP_TERM_OT, + HELP_TERM_ITEM, + HELP_TERM_ABILITY, + HELP_TERM_MONEY, + HELP_TERM_MOVE_TYPE, + HELP_TERM_NATURE, + HELP_TERM_ID_NO, + HELP_TERM_PP, + HELP_TERM_POWER, + HELP_TERM_ACCURACY, + HELP_TERM_FNT, + HELP_TERM_ITEMS, + HELP_TERM_KEYITEMS, + HELP_TERM_POKEBALLS, + HELP_TERM_POKEDEX, + HELP_TERM_PLAY_TIME, + HELP_TERM_BADGES, + HELP_TERM_TEXT_SPEED, + HELP_TERM_BATTLE_SCENE, + HELP_TERM_BATTLE_STYLE, + HELP_TERM_SOUND, + HELP_TERM_BUTTON_MODE, + HELP_TERM_FRAME, + HELP_TERM_CANCEL, + HELP_TERM_TM, + HELP_TERM_HM, + HELP_TERM_HM_MOVE, + HELP_TERM_EVOLUTION, + HELP_TERM_STATUS_PROBLEM, + HELP_TERM_POKEMON, + HELP_TERM_ID_NO2, + HELP_TERM_MONEY2, + HELP_TERM_BADGES2, +}; + static const u8 *const sHelpSystemTermTextPtrs[] = { NULL, Help_Text_HP, @@ -346,6 +511,18 @@ static const u8 *const sHelpSystemTermDefinitionsTextPtrs[] = { Help_Text_DefineBadges2 }; +// Submenu IDs for TOPIC_ABOUT_GAME +enum +{ + HELP_THE_HELP_SYSTEM = 1, + HELP_THE_GAME, + HELP_WIRELESS_ADAPTER, + HELP_GAME_FUNDAMENTALS_1, + HELP_GAME_FUNDAMENTALS_2, + HELP_GAME_FUNDAMENTALS_3, + HELP_WHAT_ARE_POKEMON, +}; + static const u8 *const sHelpSystemGeneralTopicTextPtrs[] = { NULL, Help_Text_TheHelpSystem, @@ -368,6 +545,28 @@ static const u8 *const sHelpSystemGeneralTopicDescriptionTextPtrs[] = { Help_Text_DescWhatArePokemon }; +// An enum for the type matchups isn't necessary, when used they're always used in their entirety +// Macro below is used to reference the entire group at once +#define HELP_TYPE_MATCHUPS \ + 1, \ + 2, 3, \ + 4, 5, \ + 6, 7, \ + 8, 9, \ + 10, 11, \ + 12, 13, \ + 14, 15, \ + 16, 17, \ + 18, 19, \ + 20, 21, \ + 22, 23, \ + 24, 25, \ + 26, 27, \ + 28, 29, \ + 30, 31, \ + 32, 33, \ + 34, 35 \ + static const u8 *const sHelpSystemTypeMatchupTextPtrs[] = { NULL, Help_Text_UsingTypeMatchupList, @@ -446,381 +645,1049 @@ static const u8 *const sHelpSystemTypeMatchupDescriptionTextPtrs[] = { Help_Text_TypeMatchupOwnPokemonBug }; -static const u8 gUnknown_845B660[] = { - 0x01, 0x02, 0x03, 0xff -}; - -static const u8 gUnknown_845B664[] = { - 0x01, 0x02, 0x03, 0xff -}; - -static const u8 gUnknown_845B668[] = { - 0x13, 0xff -}; - -static const u8 gUnknown_845B66A[] = { - 0x01, 0x02, 0x03, 0xff -}; - -static const u8 gUnknown_845B66E[] = { - 0x01, 0x25, 0xff -}; - -static const u8 gUnknown_845B671[] = { - 0x02, 0x03, 0x04, 0x05, 0x11, 0xff -}; - -static const u8 gUnknown_845B677[] = { - 0x09, 0x01, 0xff -}; - -static const u8 gUnknown_845B67A[] = { - 0x02, 0x03, 0xff -}; - -static const u8 gUnknown_845B67D[] = { - 0x09, 0x0a, 0x0b, 0x11, 0x0c, 0x10, 0xff -}; - -static const u8 gUnknown_845B684[] = { - 0x09, 0x01, 0x04, 0x05, 0x06, 0x07, 0x08, 0x02, 0x0d, 0xff -}; - -static const u8 gUnknown_845B68E[] = { - 0x09, 0x03, 0x0a, 0x0f, 0x12, 0x13, 0x14, 0xff -}; - -static const u8 gUnknown_845B696[] = { - 0x06, 0x07, 0x08, 0x2c, 0x09, 0x0d, 0x0e, 0x0f, 0x10, 0x12, 0xff -}; +static const u8 sAboutGame_TitleScreen[] = { + HELP_THE_HELP_SYSTEM, + HELP_THE_GAME, + HELP_WIRELESS_ADAPTER, + HELP_END +}; -static const u8 gUnknown_845B6A1[] = { - 0x16, 0x17, 0x18, 0xff +static const u8 sAboutGame_NewGame[] = { + HELP_THE_HELP_SYSTEM, + HELP_THE_GAME, + HELP_WIRELESS_ADAPTER, + HELP_END }; -static const u8 gUnknown_845B6A5[] = { - 0x0a, 0xff +static const u8 sHowTo_NamingScreen[] = { + HELP_ENTERING_NAME, + HELP_END }; -static const u8 gUnknown_845B6A7[] = { - 0x11, 0x0e, 0x19, 0x1a, 0x1b, 0xff +static const u8 sAboutGame_NamingScreen[] = { + HELP_THE_HELP_SYSTEM, + HELP_THE_GAME, + HELP_WIRELESS_ADAPTER, + HELP_END }; -static const u8 gUnknown_845B6AD[] = { - 0x0a, 0xff +static const u8 sHowTo_Pokedex[] = { + HELP_USING_POKEDEX, + HELP_READING_POKEDEX, + HELP_END }; -static const u8 gUnknown_845B6AF[] = { - 0x0b, 0xff +static const u8 sHowTo_PartyMenu[] = { + HELP_USING_POKEMON, + HELP_USING_SUMMARY, + HELP_USING_SWITCH, + HELP_USING_ITEM, + HELP_USING_MOVE_OUTSIDE_OF_BATTLE, + HELP_END }; -static const u8 gUnknown_845B6B1[] = { - 0x2b, 0x19, 0x1a, 0xff +static const u8 sTerms_PartyMenu[] = { + HELP_TERM_LEVEL, + HELP_TERM_HP, + HELP_END }; -static const u8 gUnknown_845B6B5[] = { - 0x0c, 0xff +static const u8 sHowTo_PokemonInfo[] = { + HELP_USING_POKEMON, + HELP_USING_SUMMARY, + HELP_END }; -static const u8 gUnknown_845B6B7[] = { - 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0xff +static const u8 sTerms_PokemonInfo[] = { + HELP_TERM_LEVEL, + HELP_TERM_TYPE, + HELP_TERM_OT, + HELP_TERM_ID_NO, + HELP_TERM_ITEM, + HELP_TERM_NATURE, + HELP_END }; -static const u8 gUnknown_845B6BF[] = { - 0x02, 0x03, 0x04, 0xff +static const u8 sTerms_PokemonSkills[] = { + HELP_TERM_LEVEL, + HELP_TERM_HP, + HELP_TERM_ATTACK, + HELP_TERM_DEFENSE, + HELP_TERM_SPATK, + HELP_TERM_SPDEF, + HELP_TERM_SPEED, + HELP_TERM_EXP, + HELP_TERM_ABILITY, + HELP_END }; -static const u8 gUnknown_845B6C3[] = { - 0x01, 0x02, 0x03, 0x07, 0xff +static const u8 sTerms_PokemonMoves[] = { + HELP_TERM_LEVEL, + HELP_TERM_MOVES, + HELP_TERM_TYPE, + HELP_TERM_MOVE_TYPE, + HELP_TERM_PP, + HELP_TERM_POWER, + HELP_TERM_ACCURACY, + HELP_END }; -static const u8 gUnknown_845B6C8[] = { - 0x02, 0x04, 0x05, 0x09, 0x25, 0xff -}; - -static const u8 gUnknown_845B6CE[] = { - 0x1f, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x2c, 0x09, 0x0d, 0x0e, 0x0f, 0x10, 0x0a, 0x0b, 0x0c, 0x11, 0xff -}; - -static const u8 gUnknown_845B6E2[] = { - 0x09, 0x01, 0x02, 0x03, 0x0a, 0x28, 0xff -}; - -static const u8 gUnknown_845B6E9[] = { - 0x02, 0x05, 0x06, 0x0a, 0x23, 0x24, 0x09, 0x25, 0xff -}; - -static const u8 gUnknown_845B6F2[] = { - 0x1f, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x2c, 0x09, 0x0d, 0x0e, 0x0f, 0x10, 0x0a, 0x0b, 0x0c, 0x11, 0x14, 0xff -}; - -static const u8 gUnknown_845B707[] = { - 0x09, 0x01, 0x02, 0x03, 0x0a, 0x28, 0xff -}; - -static const u8 gUnknown_845B70E[] = { - 0x03, 0x07, 0x04, 0x05, 0x06, 0xff -}; - -static const u8 gUnknown_845B714[] = { - 0x02, 0x05, 0x06, 0x0a, 0x23, 0x24, 0x09, 0x25, 0xff -}; - -static const u8 gUnknown_845B71D[] = { - 0x1f, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x2c, 0x09, 0x0d, 0x0e, 0x0f, 0x10, 0x0a, 0x0b, 0x0c, 0x11, 0xff -}; - -static const u8 gUnknown_845B731[] = { - 0x09, 0x01, 0x02, 0x03, 0x0a, 0x0c, 0x0e, 0x16, 0x17, 0x18, 0x15, 0xff -}; - -static const u8 gUnknown_845B73D[] = { - 0x06, 0x0a, 0x23, 0x24, 0x09, 0x25, 0xff -}; - -static const u8 gUnknown_845B744[] = { - 0x1f, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x2c, 0x09, 0x0d, 0x0e, 0x0f, 0x10, 0x0a, 0x0b, 0x0c, 0x11, 0xff -}; - -static const u8 gUnknown_845B758[] = { - 0x09, 0x01, 0x02, 0x03, 0x0a, 0x15, 0xff -}; - -static const u8 gUnknown_845B75F[] = { - 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0xff -}; - -static const u8 gUnknown_845B783[] = { - 0x02, 0x0a, 0x04, 0x05, 0x06, 0x07, 0x0d, 0x27, 0x08, 0x0b, 0x21, 0x23, 0x24, 0x2c, 0x09, 0x0e, 0x16, 0x17, 0x0f, 0x10, 0x11, 0x1a, 0x15, 0x1f, 0x20, 0x12, 0x13, 0x14, 0x18, 0x19, 0x1b, 0x1e, 0x1c, 0x28, 0x25, 0xff -}; - -static const u8 gUnknown_845B7A7[] = { - 0x1f, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x2c, 0x09, 0x0d, 0x0e, 0x0f, 0x10, 0x0a, 0x0b, 0x0c, 0x11, 0xff -}; - -static const u8 gUnknown_845B7BB[] = { - 0x09, 0x01, 0x02, 0x0a, 0x0b, 0x0c, 0x0d, 0x15, 0xff -}; - -static const u8 gUnknown_845B7C4[] = { - 0x02, 0x0a, 0x04, 0x05, 0x06, 0x07, 0x0d, 0x27, 0x08, 0x0b, 0x21, 0x23, 0x24, 0x2c, 0x09, 0x0e, 0x16, 0x17, 0x0f, 0x10, 0x11, 0x1a, 0x15, 0x1f, 0x20, 0x12, 0x13, 0x14, 0x18, 0x19, 0x1b, 0x1e, 0x1c, 0x28, 0x25, 0xff -}; - -static const u8 gUnknown_845B7E8[] = { - 0x1f, 0x01, 0x02, 0x06, 0x0a, 0x0b, 0x0c, 0x11, 0xff -}; - -static const u8 gUnknown_845B7F1[] = { - 0x09, 0x01, 0x02, 0x0a, 0x0b, 0x0c, 0x0d, 0x15, 0x28, 0xff -}; - -static const u8 gUnknown_845B7FB[] = { - 0x0a, 0x07, 0x0d, 0x27, 0x08, 0x0b, 0x21, 0x23, 0x24, 0x2c, 0x09, 0x0e, 0x16, 0x0f, 0x10, 0x11, 0x1a, 0x15, 0x1f, 0x20, 0x12, 0x13, 0x14, 0x18, 0x19, 0x1b, 0x1e, 0x1c, 0x28, 0x25, 0xff -}; - -static const u8 gUnknown_845B81A[] = { - 0x1f, 0x01, 0x02, 0x06, 0x0a, 0x0b, 0x0c, 0x11, 0xff -}; - -static const u8 gUnknown_845B823[] = { - 0x09, 0x01, 0x02, 0x0a, 0x0b, 0x0c, 0x0d, 0x15, 0xff -}; - -static const u8 gUnknown_845B82C[] = { - 0x07, 0x27, 0x08, 0x2c, 0x15, 0x1f, 0x20, 0x12, 0x13, 0x14, 0x18, 0x19, 0x1b, 0x1e, 0x1c, 0x28, 0x25, 0xff -}; - -static const u8 gUnknown_845B83E[] = { - 0x1f, 0x01, 0x02, 0x06, 0x0a, 0x0b, 0x0c, 0x11, 0xff -}; - -static const u8 gUnknown_845B847[] = { - 0x09, 0x01, 0x02, 0x0a, 0x0b, 0x0c, 0x0d, 0x15, 0xff -}; - -static const u8 gUnknown_845B850[] = { - 0x0f, 0x1b, 0x1d, 0x11, 0x12, 0x15, 0x17, 0x16, 0x1f, 0x20, 0x13, 0x14, 0xff -}; - -static const u8 gUnknown_845B85D[] = { - 0x20, 0x21, 0x22, 0x23, 0x24, 0x07, 0x09, 0x2b, 0xff -}; - -static const u8 gUnknown_845B866[] = { - 0x09, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x0a, 0x0d, 0x0f, 0x12, 0x13, 0x14, 0x27, 0x15, 0xff -}; - -static const u8 gUnknown_845B878[] = { - 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0xff -}; - -static const u8 gUnknown_845B89C[] = { - 0x0f, 0x1b, 0x1d, 0x11, 0x12, 0x16, 0x1f, 0x20, 0x13, 0x14, 0xff -}; - -static const u8 gUnknown_845B8A7[] = { - 0x20, 0x21, 0x22, 0x23, 0x24, 0x07, 0x2b, 0xff -}; - -static const u8 gUnknown_845B8AF[] = { - 0x09, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x0a, 0x0d, 0x0f, 0x12, 0x13, 0x14, 0x27, 0x15, 0xff -}; - -static const u8 gUnknown_845B8C1[] = { - 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0xff -}; - -static const u8 gUnknown_845B8E5[] = { - 0x0f, 0x1b, 0x1d, 0x11, 0x12, 0x16, 0x1f, 0x20, 0x13, 0x14, 0xff -}; - -static const u8 gUnknown_845B8F0[] = { - 0x20, 0x21, 0x22, 0x23, 0x24, 0x07, 0x2b, 0xff -}; - -static const u8 gUnknown_845B8F8[] = { - 0x09, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x0a, 0x0d, 0x0f, 0x12, 0x13, 0x14, 0x27, 0x15, 0xff -}; - -static const u8 gUnknown_845B90A[] = { - 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0xff -}; - -static const u8 gUnknown_845B92E[] = { - 0x29, 0x2a, 0x2b, 0xff -}; - -static const u8 gUnknown_845B932[] = { - 0x2d, 0x2e, 0x2f, 0x2b, 0xff -}; - -static const u8 gUnknown_845B937[] = { - 0x09, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x0a, 0x0d, 0x0f, 0x12, 0x13, 0x14, 0xff -}; - -static const u8 gUnknown_845B947[] = { - 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0xff -}; - -static const u8 gUnknown_845B96B[] = { - 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x30, 0xff -}; - -static const u8 gUnknown_845B978[] = { - 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x30, 0xff -}; - -static const u8 gUnknown_845B985[] = { - 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x30, 0xff -}; - -static const u8 gUnknown_845B992[] = { - 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x30, 0xff -}; - -static const u8 gUnknown_845B99F[] = { - 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x30, 0xff -}; - -static const u8 gUnknown_845B9AC[] = { - 0x26, 0x27, 0x28, 0x29, 0x2a, 0xff -}; - -static const u8 gUnknown_845B9B2[] = { - 0x26, 0x27, 0x28, 0x29, 0x2a, 0xff -}; - -static const u8 gUnknown_845B9B8[] = { - 0x26, 0x27, 0x28, 0x29, 0x2a, 0xff -}; - -static const u8 gUnknown_845B9BE[] = { - 0x09, 0x01, 0x02, 0x03, 0x23, 0x25, 0x24, 0x04, 0x05, 0x06, 0x07, 0x08, 0x0a, 0x0b, 0x0c, 0x0d, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x27, 0x15, 0x26, 0x16, 0x17, 0x18, 0x1a, 0x0e, 0x1b, 0xff -}; - -static const u8 *const sHelpSystemSubmenuIndexPointers[] = { - NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, gUnknown_845B660, NULL, - NULL, NULL, NULL, gUnknown_845B664, NULL, - NULL, gUnknown_845B668, NULL, gUnknown_845B66A, NULL, - NULL, gUnknown_845B66E, NULL, NULL, NULL, - NULL, gUnknown_845B671, gUnknown_845B677, NULL, NULL, - NULL, gUnknown_845B67A, gUnknown_845B67D, NULL, NULL, - NULL, NULL, gUnknown_845B684, NULL, NULL, - NULL, NULL, gUnknown_845B68E, NULL, NULL, - NULL, gUnknown_845B696, gUnknown_845B6A1, NULL, NULL, - NULL, gUnknown_845B6A5, gUnknown_845B6A7, NULL, NULL, - NULL, gUnknown_845B6AD, NULL, NULL, NULL, - NULL, gUnknown_845B6AF, gUnknown_845B6B1, NULL, NULL, - NULL, gUnknown_845B6B5, gUnknown_845B6B7, NULL, NULL, - gUnknown_845B6BF, NULL, NULL, gUnknown_845B6C3, NULL, - gUnknown_845B6C8, gUnknown_845B6CE, gUnknown_845B6E2, NULL, NULL, - gUnknown_845B6E9, gUnknown_845B6F2, gUnknown_845B707, gUnknown_845B70E, NULL, - gUnknown_845B714, gUnknown_845B71D, gUnknown_845B731, NULL, NULL, - gUnknown_845B73D, gUnknown_845B744, gUnknown_845B758, NULL, gUnknown_845B75F, - gUnknown_845B783, gUnknown_845B7A7, gUnknown_845B7BB, NULL, NULL, - gUnknown_845B7C4, gUnknown_845B7E8, gUnknown_845B7F1, NULL, NULL, - gUnknown_845B7FB, gUnknown_845B81A, gUnknown_845B823, NULL, NULL, - gUnknown_845B82C, gUnknown_845B83E, gUnknown_845B847, NULL, NULL, - gUnknown_845B850, gUnknown_845B85D, gUnknown_845B866, NULL, gUnknown_845B878, - gUnknown_845B89C, gUnknown_845B8A7, gUnknown_845B8AF, NULL, gUnknown_845B8C1, - gUnknown_845B8E5, gUnknown_845B8F0, gUnknown_845B8F8, NULL, gUnknown_845B90A, - gUnknown_845B92E, gUnknown_845B932, gUnknown_845B937, NULL, gUnknown_845B947, - NULL, gUnknown_845B96B, NULL, NULL, NULL, - NULL, gUnknown_845B978, NULL, NULL, NULL, - NULL, gUnknown_845B985, NULL, NULL, NULL, - NULL, gUnknown_845B992, NULL, NULL, NULL, - NULL, gUnknown_845B99F, NULL, NULL, NULL, - NULL, gUnknown_845B9AC, NULL, NULL, NULL, - NULL, gUnknown_845B9B2, NULL, NULL, NULL, - NULL, gUnknown_845B9B8, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL +static const u8 sHowTo_Bag[] = { + HELP_USING_BAG, + HELP_USING_AN_ITEM, + HELP_USING_KEYITEM, + HELP_REGISTER_KEY_ITEM, + HELP_USING_POKEBALL, + HELP_USING_POTION, + HELP_USING_TOWN_MAP, + HELP_USING_TM, + HELP_USING_HM, + HELP_RIDING_BICYCLE, + HELP_END +}; + +static const u8 sTerms_Bag[] = { + HELP_TERM_ITEMS, + HELP_TERM_KEYITEMS, + HELP_TERM_POKEBALLS, + HELP_END +}; + +static const u8 sHowTo_TrainerCardFront[] = { + HELP_USING_PLAYER, + HELP_END +}; + +static const u8 sTerms_TrainerCardFront[] = { + HELP_TERM_ID_NO, + HELP_TERM_MONEY, + HELP_TERM_POKEDEX, + HELP_TERM_PLAY_TIME, + HELP_TERM_BADGES, + HELP_END +}; + +static const u8 sHowTo_TrainerCardBack[] = { + HELP_USING_PLAYER, + HELP_END +}; + +static const u8 sHowTo_Save[] = { + HELP_USING_SAVE, + HELP_END +}; + +static const u8 sTerms_Save[] = { + HELP_TERM_BADGES2, + HELP_TERM_POKEDEX, + HELP_TERM_PLAY_TIME, + HELP_END +}; + +static const u8 sHowTo_Options[] = { + HELP_USING_OPTION, + HELP_END +}; + +static const u8 sTerms_Options[] = { + HELP_TERM_TEXT_SPEED, + HELP_TERM_BATTLE_SCENE, + HELP_TERM_BATTLE_STYLE, + HELP_TERM_SOUND, + HELP_TERM_BUTTON_MODE, + HELP_TERM_FRAME, + HELP_TERM_CANCEL, + HELP_END +}; + +static const u8 sWhatToDo_PlayersHouse[] = { + HELP_WHAT_SHOULD_I_BE_DOING, + HELP_CANT_GET_OUT_OF_ROOM, + HELP_CANT_FIND_PERSON_I_WANT, + HELP_END +}; + +static const u8 sAboutGame_PlayersHouse[] = { + HELP_THE_HELP_SYSTEM, + HELP_THE_GAME, + HELP_WIRELESS_ADAPTER, + HELP_WHAT_ARE_POKEMON, + HELP_END +}; + +static const u8 sWhatToDo_OaksLab[] = { + HELP_WHAT_SHOULD_I_BE_DOING, + HELP_CANT_FIND_PERSON_I_WANT, + HELP_TALKED_TO_EVERYONE_NOW_WHAT, + HELP_WHAT_HAPPENED_TO_ITEM_I_GOT, + HELP_WANT_TO_END_GAME, + HELP_END +}; + +static const u8 sHowTo_OaksLab[] = { + HELP_OPENING_MENU, + HELP_USING_POKEDEX, + HELP_USING_POKEMON, + HELP_USING_SUMMARY, + HELP_USING_SWITCH, + HELP_USING_ITEM, + HELP_USING_BAG, + HELP_USING_AN_ITEM, + HELP_USING_KEYITEM, + HELP_REGISTER_KEY_ITEM, + HELP_USING_POKEBALL, + HELP_USING_POTION, + HELP_USING_TOWN_MAP, + HELP_USING_TM, + HELP_USING_HM, + HELP_USING_PLAYER, + HELP_USING_SAVE, + HELP_USING_OPTION, + HELP_USING_MOVE_OUTSIDE_OF_BATTLE, + HELP_END +}; + +static const u8 sTerms_OaksLab[] = { + HELP_TERM_LEVEL, + HELP_TERM_HP, + HELP_TERM_EXP, + HELP_TERM_MOVES, + HELP_TERM_TYPE, + HELP_TERM_POKEMON, + HELP_END +}; + +static const u8 sWhatToDo_PokeCenter[] = { + HELP_WHAT_SHOULD_I_BE_DOING, + HELP_TALKED_TO_EVERYONE_NOW_WHAT, + HELP_SOMEONE_BLOCKING_MY_WAY, + HELP_WHAT_ARE_MY_ADVENTURE_BASICS, + HELP_WHATS_POKEMON_CENTER, + HELP_WHATS_POKEMON_MART, + HELP_WHAT_HAPPENED_TO_ITEM_I_GOT, + HELP_WANT_TO_END_GAME, + HELP_END +}; + +static const u8 sHowTo_PokeCenter[] = { + HELP_OPENING_MENU, + HELP_USING_POKEDEX, + HELP_USING_POKEMON, + HELP_USING_SUMMARY, + HELP_USING_SWITCH, + HELP_USING_ITEM, + HELP_USING_BAG, + HELP_USING_AN_ITEM, + HELP_USING_KEYITEM, + HELP_REGISTER_KEY_ITEM, + HELP_USING_POKEBALL, + HELP_USING_POTION, + HELP_USING_TOWN_MAP, + HELP_USING_TM, + HELP_USING_HM, + HELP_USING_PLAYER, + HELP_USING_SAVE, + HELP_USING_OPTION, + HELP_USING_MOVE_OUTSIDE_OF_BATTLE, + HELP_USING_PC, + HELP_END +}; + +static const u8 sTerms_PokeCenter[] = { + HELP_TERM_LEVEL, + HELP_TERM_HP, + HELP_TERM_EXP, + HELP_TERM_MOVES, + HELP_TERM_TYPE, + HELP_TERM_POKEMON, + HELP_END +}; + +static const u8 sAboutGame_PokeCenter[] = { + HELP_WIRELESS_ADAPTER, + HELP_WHAT_ARE_POKEMON, + HELP_GAME_FUNDAMENTALS_1, + HELP_GAME_FUNDAMENTALS_2, + HELP_GAME_FUNDAMENTALS_3, + HELP_END +}; + +static const u8 sWhatToDo_Mart[] = { + HELP_WHAT_SHOULD_I_BE_DOING, + HELP_TALKED_TO_EVERYONE_NOW_WHAT, + HELP_SOMEONE_BLOCKING_MY_WAY, + HELP_WHAT_ARE_MY_ADVENTURE_BASICS, + HELP_WHATS_POKEMON_CENTER, + HELP_WHATS_POKEMON_MART, + HELP_WHAT_HAPPENED_TO_ITEM_I_GOT, + HELP_WANT_TO_END_GAME, + HELP_END +}; + +static const u8 sHowTo_Mart[] = { + HELP_OPENING_MENU, + HELP_USING_POKEDEX, + HELP_USING_POKEMON, + HELP_USING_SUMMARY, + HELP_USING_SWITCH, + HELP_USING_ITEM, + HELP_USING_BAG, + HELP_USING_AN_ITEM, + HELP_USING_KEYITEM, + HELP_REGISTER_KEY_ITEM, + HELP_USING_POKEBALL, + HELP_USING_POTION, + HELP_USING_TOWN_MAP, + HELP_USING_TM, + HELP_USING_HM, + HELP_USING_PLAYER, + HELP_USING_SAVE, + HELP_USING_OPTION, + HELP_USING_MOVE_OUTSIDE_OF_BATTLE, + HELP_END +}; + +static const u8 sTerms_Mart[] = { + HELP_TERM_LEVEL, + HELP_TERM_HP, + HELP_TERM_EXP, + HELP_TERM_MOVES, + HELP_TERM_TYPE, + HELP_TERM_ITEM, + HELP_TERM_MONEY, + HELP_TERM_ITEMS, + HELP_TERM_KEYITEMS, + HELP_TERM_POKEBALLS, + HELP_TERM_FNT, + HELP_END +}; + +static const u8 sWhatToDo_Gym[] = { + HELP_SOMEONE_BLOCKING_MY_WAY, + HELP_WHAT_ARE_MY_ADVENTURE_BASICS, + HELP_WHATS_POKEMON_CENTER, + HELP_WHATS_POKEMON_MART, + HELP_WHAT_HAPPENED_TO_ITEM_I_GOT, + HELP_WANT_TO_END_GAME, + HELP_END +}; + +static const u8 sHowTo_Gym[] = { + HELP_OPENING_MENU, + HELP_USING_POKEDEX, + HELP_USING_POKEMON, + HELP_USING_SUMMARY, + HELP_USING_SWITCH, + HELP_USING_ITEM, + HELP_USING_BAG, + HELP_USING_AN_ITEM, + HELP_USING_KEYITEM, + HELP_REGISTER_KEY_ITEM, + HELP_USING_POKEBALL, + HELP_USING_POTION, + HELP_USING_TOWN_MAP, + HELP_USING_TM, + HELP_USING_HM, + HELP_USING_PLAYER, + HELP_USING_SAVE, + HELP_USING_OPTION, + HELP_USING_MOVE_OUTSIDE_OF_BATTLE, + HELP_END +}; + +static const u8 sTerms_Gym[] = { + HELP_TERM_LEVEL, + HELP_TERM_HP, + HELP_TERM_EXP, + HELP_TERM_MOVES, + HELP_TERM_TYPE, + HELP_TERM_FNT, + HELP_END +}; + +static const u8 sTypeMatchups_Gym[] = { + HELP_TYPE_MATCHUPS, + HELP_END +}; + +static const u8 sWhatToDo_Indoors[] = { + HELP_WHAT_SHOULD_I_BE_DOING, + HELP_WHAT_ARE_MY_ADVENTURE_BASICS, + HELP_CANT_FIND_PERSON_I_WANT, + HELP_TALKED_TO_EVERYONE_NOW_WHAT, + HELP_SOMEONE_BLOCKING_MY_WAY, + HELP_I_CANT_GO_ON, + HELP_HOW_DO_I_PROGRESS, + HELP_WHAT_IS_THAT_PERSON_LIKE, + HELP_OUT_OF_THINGS_TO_DO, + HELP_HOW_ARE_ROADS_FORESTS_DIFFERENT, + HELP_WHAT_DO_I_DO_IN_CAVE, + HELP_WHATS_POKEMON_CENTER, + HELP_WHATS_POKEMON_MART, + HELP_WHAT_IS_A_GYM, + HELP_WHAT_HAPPENED_TO_ITEM_I_GOT, + HELP_WHEN_CAN_I_USE_ITEM, + HELP_RAN_OUT_OF_POTIONS, + HELP_CAN_I_BUY_POKEBALLS, + HELP_WHATS_A_BATTLE, + HELP_HOW_DO_I_PREPARE_FOR_BATTLE, + HELP_WHAT_IS_A_MONS_VITALITY, + HELP_WHERE_DO_MONS_APPEAR, + HELP_CANT_CATCH_MONS, + HELP_WANT_TO_MAKE_MON_STRONGER, + HELP_FOE_MONS_TOO_STRONG, + HELP_MY_MONS_ARE_HURT, + HELP_WHAT_IS_STATUS_PROBLEM, + HELP_WHAT_HAPPENS_IF_ALL_MY_MONS_FAINT, + HELP_WHATS_A_TRAINER, + HELP_HOW_DO_I_WIN_AGAINST_TRAINER, + HELP_WHAT_ARE_MOVES, + HELP_WANT_TO_ADD_MORE_MOVES, + HELP_WHAT_ARE_HIDDEN_MOVES, + HELP_WHAT_DOES_HIDDEN_MOVE_DO, + HELP_WANT_TO_END_GAME, + HELP_END +}; + +static const u8 sHowTo_Indoors[] = { + HELP_OPENING_MENU, + HELP_USING_POKEDEX, + HELP_USING_POKEMON, + HELP_USING_SUMMARY, + HELP_USING_SWITCH, + HELP_USING_ITEM, + HELP_USING_BAG, + HELP_USING_AN_ITEM, + HELP_USING_KEYITEM, + HELP_REGISTER_KEY_ITEM, + HELP_USING_POKEBALL, + HELP_USING_POTION, + HELP_USING_TOWN_MAP, + HELP_USING_TM, + HELP_USING_HM, + HELP_USING_PLAYER, + HELP_USING_SAVE, + HELP_USING_OPTION, + HELP_USING_MOVE_OUTSIDE_OF_BATTLE, + HELP_END +}; + +static const u8 sTerms_Indoors[] = { + HELP_TERM_LEVEL, + HELP_TERM_HP, + HELP_TERM_EXP, + HELP_TERM_TYPE, + HELP_TERM_OT, + HELP_TERM_ITEM, + HELP_TERM_ABILITY, + HELP_TERM_FNT, + HELP_END +}; + +static const u8 sWhatToDo_Overworld[] = { + HELP_WHAT_SHOULD_I_BE_DOING, + HELP_WHAT_ARE_MY_ADVENTURE_BASICS, + HELP_CANT_FIND_PERSON_I_WANT, + HELP_TALKED_TO_EVERYONE_NOW_WHAT, + HELP_SOMEONE_BLOCKING_MY_WAY, + HELP_I_CANT_GO_ON, + HELP_HOW_DO_I_PROGRESS, + HELP_WHAT_IS_THAT_PERSON_LIKE, + HELP_OUT_OF_THINGS_TO_DO, + HELP_HOW_ARE_ROADS_FORESTS_DIFFERENT, + HELP_WHAT_DO_I_DO_IN_CAVE, + HELP_WHATS_POKEMON_CENTER, + HELP_WHATS_POKEMON_MART, + HELP_WHAT_IS_A_GYM, + HELP_WHAT_HAPPENED_TO_ITEM_I_GOT, + HELP_WHEN_CAN_I_USE_ITEM, + HELP_RAN_OUT_OF_POTIONS, + HELP_CAN_I_BUY_POKEBALLS, + HELP_WHATS_A_BATTLE, + HELP_HOW_DO_I_PREPARE_FOR_BATTLE, + HELP_WHAT_IS_A_MONS_VITALITY, + HELP_WHERE_DO_MONS_APPEAR, + HELP_CANT_CATCH_MONS, + HELP_WANT_TO_MAKE_MON_STRONGER, + HELP_FOE_MONS_TOO_STRONG, + HELP_MY_MONS_ARE_HURT, + HELP_WHAT_IS_STATUS_PROBLEM, + HELP_WHAT_HAPPENS_IF_ALL_MY_MONS_FAINT, + HELP_WHATS_A_TRAINER, + HELP_HOW_DO_I_WIN_AGAINST_TRAINER, + HELP_WHAT_ARE_MOVES, + HELP_WANT_TO_ADD_MORE_MOVES, + HELP_WHAT_ARE_HIDDEN_MOVES, + HELP_WHAT_DOES_HIDDEN_MOVE_DO, + HELP_WANT_TO_END_GAME, + HELP_END +}; + +static const u8 sHowTo_Overworld[] = { + HELP_OPENING_MENU, + HELP_USING_POKEDEX, + HELP_USING_POKEMON, + HELP_USING_BAG, + HELP_USING_PLAYER, + HELP_USING_SAVE, + HELP_USING_OPTION, + HELP_USING_MOVE_OUTSIDE_OF_BATTLE, + HELP_END +}; + +static const u8 sTerms_Overworld[] = { + HELP_TERM_LEVEL, + HELP_TERM_HP, + HELP_TERM_EXP, + HELP_TERM_TYPE, + HELP_TERM_OT, + HELP_TERM_ITEM, + HELP_TERM_ABILITY, + HELP_TERM_FNT, + HELP_TERM_POKEMON, + HELP_END +}; + +static const u8 sWhatToDo_Dungeon[] = { + HELP_WHAT_ARE_MY_ADVENTURE_BASICS, + HELP_I_CANT_GO_ON, + HELP_HOW_DO_I_PROGRESS, + HELP_WHAT_IS_THAT_PERSON_LIKE, + HELP_OUT_OF_THINGS_TO_DO, + HELP_HOW_ARE_ROADS_FORESTS_DIFFERENT, + HELP_WHAT_DO_I_DO_IN_CAVE, + HELP_WHATS_POKEMON_CENTER, + HELP_WHATS_POKEMON_MART, + HELP_WHAT_IS_A_GYM, + HELP_WHAT_HAPPENED_TO_ITEM_I_GOT, + HELP_WHEN_CAN_I_USE_ITEM, + HELP_RAN_OUT_OF_POTIONS, + HELP_WHATS_A_BATTLE, + HELP_HOW_DO_I_PREPARE_FOR_BATTLE, + HELP_WHAT_IS_A_MONS_VITALITY, + HELP_WHERE_DO_MONS_APPEAR, + HELP_CANT_CATCH_MONS, + HELP_WANT_TO_MAKE_MON_STRONGER, + HELP_FOE_MONS_TOO_STRONG, + HELP_MY_MONS_ARE_HURT, + HELP_WHAT_IS_STATUS_PROBLEM, + HELP_WHAT_HAPPENS_IF_ALL_MY_MONS_FAINT, + HELP_WHATS_A_TRAINER, + HELP_HOW_DO_I_WIN_AGAINST_TRAINER, + HELP_WHAT_ARE_MOVES, + HELP_WANT_TO_ADD_MORE_MOVES, + HELP_WHAT_ARE_HIDDEN_MOVES, + HELP_WHAT_DOES_HIDDEN_MOVE_DO, + HELP_WANT_TO_END_GAME, + HELP_END +}; + +static const u8 sHowTo_Dungeon[] = { + HELP_OPENING_MENU, + HELP_USING_POKEDEX, + HELP_USING_POKEMON, + HELP_USING_BAG, + HELP_USING_PLAYER, + HELP_USING_SAVE, + HELP_USING_OPTION, + HELP_USING_MOVE_OUTSIDE_OF_BATTLE, + HELP_END +}; + +static const u8 sTerms_Dungeon[] = { + HELP_TERM_LEVEL, + HELP_TERM_HP, + HELP_TERM_EXP, + HELP_TERM_TYPE, + HELP_TERM_OT, + HELP_TERM_ITEM, + HELP_TERM_ABILITY, + HELP_TERM_FNT, + HELP_END +}; + +static const u8 sWhatToDo_Surfing[] = { + HELP_I_CANT_GO_ON, + HELP_WHAT_IS_THAT_PERSON_LIKE, + HELP_OUT_OF_THINGS_TO_DO, + HELP_WHAT_IS_A_GYM, + HELP_CANT_CATCH_MONS, + HELP_WANT_TO_MAKE_MON_STRONGER, + HELP_FOE_MONS_TOO_STRONG, + HELP_MY_MONS_ARE_HURT, + HELP_WHAT_IS_STATUS_PROBLEM, + HELP_WHAT_HAPPENS_IF_ALL_MY_MONS_FAINT, + HELP_WHATS_A_TRAINER, + HELP_HOW_DO_I_WIN_AGAINST_TRAINER, + HELP_WHAT_ARE_MOVES, + HELP_WANT_TO_ADD_MORE_MOVES, + HELP_WHAT_ARE_HIDDEN_MOVES, + HELP_WHAT_DOES_HIDDEN_MOVE_DO, + HELP_WANT_TO_END_GAME, + HELP_END +}; + +static const u8 sHowTo_Surfing[] = { + HELP_OPENING_MENU, + HELP_USING_POKEDEX, + HELP_USING_POKEMON, + HELP_USING_BAG, + HELP_USING_PLAYER, + HELP_USING_SAVE, + HELP_USING_OPTION, + HELP_USING_MOVE_OUTSIDE_OF_BATTLE, + HELP_END +}; + +static const u8 sTerms_Surfing[] = { + HELP_TERM_LEVEL, + HELP_TERM_HP, + HELP_TERM_EXP, + HELP_TERM_TYPE, + HELP_TERM_OT, + HELP_TERM_ITEM, + HELP_TERM_ABILITY, + HELP_TERM_FNT, + HELP_END +}; + +static const u8 sWhatToDo_WildBattle[] = { + HELP_WHATS_A_BATTLE, + HELP_WHAT_ARE_MOVES, + HELP_WHAT_MOVES_SHOULD_I_USE, + HELP_WHAT_IS_A_MONS_VITALITY, + HELP_MY_MONS_ARE_HURT, + HELP_CANT_CATCH_MONS, + HELP_CAN_I_BUY_POKEBALLS, + HELP_RAN_OUT_OF_POTIONS, + HELP_WANT_TO_MAKE_MON_STRONGER, + HELP_FOE_MONS_TOO_STRONG, + HELP_WHAT_IS_STATUS_PROBLEM, + HELP_WHAT_HAPPENS_IF_ALL_MY_MONS_FAINT, + HELP_END +}; + +static const u8 sHowTo_WildBattle[] = { + HELP_USING_FIGHT, + HELP_USING_POKEMON2, + HELP_USING_SHIFT, + HELP_USING_SUMMARY2, + HELP_USING_BAG2, + HELP_USING_AN_ITEM, + HELP_USING_POKEBALL, + HELP_USING_RUN, + HELP_END +}; + +static const u8 sTerms_WildBattle[] = { + HELP_TERM_LEVEL, + HELP_TERM_HP, + HELP_TERM_EXP, + HELP_TERM_MOVES, + HELP_TERM_ATTACK, + HELP_TERM_DEFENSE, + HELP_TERM_SPATK, + HELP_TERM_SPDEF, + HELP_TERM_SPEED, + HELP_TERM_TYPE, + HELP_TERM_ABILITY, + HELP_TERM_MOVE_TYPE, + HELP_TERM_PP, + HELP_TERM_POWER, + HELP_TERM_ACCURACY, + HELP_TERM_STATUS_PROBLEM, + HELP_TERM_FNT, + HELP_END +}; + +static const u8 sTypeMatchups_WildBattle[] = { + HELP_TYPE_MATCHUPS, + HELP_END +}; + +static const u8 sWhatToDo_TrainerBattleSingle[] = { + HELP_WHATS_A_BATTLE, + HELP_WHAT_ARE_MOVES, + HELP_WHAT_MOVES_SHOULD_I_USE, + HELP_WHAT_IS_A_MONS_VITALITY, + HELP_MY_MONS_ARE_HURT, + HELP_RAN_OUT_OF_POTIONS, + HELP_WANT_TO_MAKE_MON_STRONGER, + HELP_FOE_MONS_TOO_STRONG, + HELP_WHAT_IS_STATUS_PROBLEM, + HELP_WHAT_HAPPENS_IF_ALL_MY_MONS_FAINT, + HELP_END +}; + +static const u8 sHowTo_TrainerBattleSingle[] = { + HELP_USING_FIGHT, + HELP_USING_POKEMON2, + HELP_USING_SHIFT, + HELP_USING_SUMMARY2, + HELP_USING_BAG2, + HELP_USING_AN_ITEM, + HELP_USING_RUN, + HELP_END +}; + +static const u8 sTerms_TrainerBattleSingle[] = { + HELP_TERM_LEVEL, + HELP_TERM_HP, + HELP_TERM_EXP, + HELP_TERM_MOVES, + HELP_TERM_ATTACK, + HELP_TERM_DEFENSE, + HELP_TERM_SPATK, + HELP_TERM_SPDEF, + HELP_TERM_SPEED, + HELP_TERM_TYPE, + HELP_TERM_ABILITY, + HELP_TERM_MOVE_TYPE, + HELP_TERM_PP, + HELP_TERM_POWER, + HELP_TERM_ACCURACY, + HELP_TERM_STATUS_PROBLEM, + HELP_TERM_FNT, + HELP_END +}; + +static const u8 sTypeMatchups_TrainerBattleSingle[] = { + HELP_TYPE_MATCHUPS, + HELP_END +}; + +static const u8 sWhatToDo_TrainerBattleDouble[] = { + HELP_WHATS_A_BATTLE, + HELP_WHAT_ARE_MOVES, + HELP_WHAT_MOVES_SHOULD_I_USE, + HELP_WHAT_IS_A_MONS_VITALITY, + HELP_MY_MONS_ARE_HURT, + HELP_RAN_OUT_OF_POTIONS, + HELP_WANT_TO_MAKE_MON_STRONGER, + HELP_FOE_MONS_TOO_STRONG, + HELP_WHAT_IS_STATUS_PROBLEM, + HELP_WHAT_HAPPENS_IF_ALL_MY_MONS_FAINT, + HELP_END +}; + +static const u8 sHowTo_TrainerBattleDouble[] = { + HELP_USING_FIGHT, + HELP_USING_POKEMON2, + HELP_USING_SHIFT, + HELP_USING_SUMMARY2, + HELP_USING_BAG2, + HELP_USING_AN_ITEM, + HELP_USING_RUN, + HELP_END +}; + +static const u8 sTerms_TrainerBattleDouble[] = { + HELP_TERM_LEVEL, + HELP_TERM_HP, + HELP_TERM_EXP, + HELP_TERM_MOVES, + HELP_TERM_ATTACK, + HELP_TERM_DEFENSE, + HELP_TERM_SPATK, + HELP_TERM_SPDEF, + HELP_TERM_SPEED, + HELP_TERM_TYPE, + HELP_TERM_ABILITY, + HELP_TERM_MOVE_TYPE, + HELP_TERM_PP, + HELP_TERM_POWER, + HELP_TERM_ACCURACY, + HELP_TERM_STATUS_PROBLEM, + HELP_TERM_FNT, + HELP_END +}; + +static const u8 sTypeMatchups_TrainerBattleDouble[] = { + HELP_TYPE_MATCHUPS, + HELP_END +}; + +static const u8 sWhatToDo_SafariBattle[] = { + HELP_WHAT_DO_I_DO_IN_SAFARI, + HELP_WHAT_ARE_SAFARI_RULES, + HELP_WANT_TO_END_SAFARI, + HELP_END +}; + +static const u8 sHowTo_SafariBattle[] = { + HELP_USING_BALL, + HELP_USING_BAIT, + HELP_USING_ROCK, + HELP_USING_RUN, + HELP_END +}; + +static const u8 sTerms_SafariBattle[] = { + HELP_TERM_LEVEL, + HELP_TERM_HP, + HELP_TERM_EXP, + HELP_TERM_MOVES, + HELP_TERM_ATTACK, + HELP_TERM_DEFENSE, + HELP_TERM_SPATK, + HELP_TERM_SPDEF, + HELP_TERM_SPEED, + HELP_TERM_TYPE, + HELP_TERM_ABILITY, + HELP_TERM_MOVE_TYPE, + HELP_TERM_PP, + HELP_TERM_POWER, + HELP_TERM_ACCURACY, + HELP_END +}; + +static const u8 sTypeMatchups_SafariBattle[] = { + HELP_TYPE_MATCHUPS, + HELP_END +}; + +static const u8 sHowTo_PC[] = { + HELP_USING_PC, + HELP_USING_BILLS_PC, + HELP_USING_WITHDRAW, + HELP_USING_DEPOSIT, + HELP_USING_MOVE, + HELP_MOVING_ITEMS, + HELP_USING_PLAYERS_PC, + HELP_USING_WITHDRAW_ITEM, + HELP_USING_DEPOSIT_ITEM, + HELP_USING_MAILBOX, + HELP_USING_PROF_OAKS_PC, + HELP_USING_HALL_OF_FAME, + HELP_END +}; + +static const u8 sHowTo_BillsPC[] = { + HELP_USING_PC, + HELP_USING_BILLS_PC, + HELP_USING_WITHDRAW, + HELP_USING_DEPOSIT, + HELP_USING_MOVE, + HELP_MOVING_ITEMS, + HELP_USING_PLAYERS_PC, + HELP_USING_WITHDRAW_ITEM, + HELP_USING_DEPOSIT_ITEM, + HELP_USING_MAILBOX, + HELP_USING_PROF_OAKS_PC, + HELP_USING_HALL_OF_FAME, + HELP_END +}; + +static const u8 sHowTo_PlayersPCItems[] = { + HELP_USING_PC, + HELP_USING_BILLS_PC, + HELP_USING_WITHDRAW, + HELP_USING_DEPOSIT, + HELP_USING_MOVE, + HELP_MOVING_ITEMS, + HELP_USING_PLAYERS_PC, + HELP_USING_WITHDRAW_ITEM, + HELP_USING_DEPOSIT_ITEM, + HELP_USING_MAILBOX, + HELP_USING_PROF_OAKS_PC, + HELP_USING_HALL_OF_FAME, + HELP_END +}; + +static const u8 sHowTo_PlayersPCMailbox[] = { + HELP_USING_PC, + HELP_USING_BILLS_PC, + HELP_USING_WITHDRAW, + HELP_USING_DEPOSIT, + HELP_USING_MOVE, + HELP_MOVING_ITEMS, + HELP_USING_PLAYERS_PC, + HELP_USING_WITHDRAW_ITEM, + HELP_USING_DEPOSIT_ITEM, + HELP_USING_MAILBOX, + HELP_USING_PROF_OAKS_PC, + HELP_USING_HALL_OF_FAME, + HELP_END +}; + +static const u8 sHowTo_PCMisc[] = { + HELP_USING_PC, + HELP_USING_BILLS_PC, + HELP_USING_WITHDRAW, + HELP_USING_DEPOSIT, + HELP_USING_MOVE, + HELP_MOVING_ITEMS, + HELP_USING_PLAYERS_PC, + HELP_USING_WITHDRAW_ITEM, + HELP_USING_DEPOSIT_ITEM, + HELP_USING_MAILBOX, + HELP_USING_PROF_OAKS_PC, + HELP_USING_HALL_OF_FAME, + HELP_END +}; + +static const u8 sHowTo_BedroomPC[] = { + HELP_USING_HOME_PC, + HELP_USING_ITEM_STORAGE, + HELP_USING_WITHDRAW_ITEM2, + HELP_USING_DEPOSIT_ITEM2, + HELP_USING_MAILBOX2, + HELP_END +}; + +static const u8 sHowTo_BedroomPCItems[] = { + HELP_USING_HOME_PC, + HELP_USING_ITEM_STORAGE, + HELP_USING_WITHDRAW_ITEM2, + HELP_USING_DEPOSIT_ITEM2, + HELP_USING_MAILBOX2, + HELP_END +}; + +static const u8 sHowTo_BedroomPCMailbox[] = { + HELP_USING_HOME_PC, + HELP_USING_ITEM_STORAGE, + HELP_USING_WITHDRAW_ITEM2, + HELP_USING_DEPOSIT_ITEM2, + HELP_USING_MAILBOX2, + HELP_END +}; + +static const u8 sTerms_Basic[] = { + HELP_TERM_LEVEL, + HELP_TERM_HP, + HELP_TERM_EXP, + HELP_TERM_MOVES, + HELP_TERM_TM, + HELP_TERM_HM_MOVE, + HELP_TERM_HM, + HELP_TERM_ATTACK, + HELP_TERM_DEFENSE, + HELP_TERM_SPATK, + HELP_TERM_SPDEF, + HELP_TERM_SPEED, + HELP_TERM_TYPE, + HELP_TERM_OT, + HELP_TERM_ITEM, + HELP_TERM_ABILITY, + HELP_TERM_MOVE_TYPE, + HELP_TERM_NATURE, + HELP_TERM_ID_NO, + HELP_TERM_PP, + HELP_TERM_POWER, + HELP_TERM_ACCURACY, + HELP_TERM_STATUS_PROBLEM, + HELP_TERM_FNT, + HELP_TERM_EVOLUTION, + HELP_TERM_ITEMS, + HELP_TERM_KEYITEMS, + HELP_TERM_POKEBALLS, + HELP_TERM_PLAY_TIME, + HELP_TERM_MONEY, + HELP_TERM_BADGES, + HELP_END +}; + + +// Cant get this to match as a 2D array but it probably should be one, [HELPCONTEXT_COUNT][TOPIC_COUNT - 1] (Excludes TOPIC_EXIT) +static const u8 *const sHelpSystemSubmenuItemLists[HELPCONTEXT_COUNT * (TOPIC_COUNT - 1)] = { + NULL, NULL, NULL, NULL, NULL, // HELPCONTEXT_NONE + NULL, NULL, NULL, sAboutGame_TitleScreen, NULL, // HELPCONTEXT_TITLE_SCREEN + NULL, NULL, NULL, sAboutGame_NewGame, NULL, // HELPCONTEXT_NEW_GAME + NULL, sHowTo_NamingScreen, NULL, sAboutGame_NamingScreen, NULL, // HELPCONTEXT_NAMING_SCREEN + NULL, sHowTo_Pokedex, NULL, NULL, NULL, // HELPCONTEXT_POKEDEX + NULL, sHowTo_PartyMenu, sTerms_PartyMenu, NULL, NULL, // HELPCONTEXT_PARTY_MENU + NULL, sHowTo_PokemonInfo, sTerms_PokemonInfo, NULL, NULL, // HELPCONTEXT_POKEMON_INFO + NULL, NULL, sTerms_PokemonSkills, NULL, NULL, // HELPCONTEXT_POKEMON_SKILLS + NULL, NULL, sTerms_PokemonMoves, NULL, NULL, // HELPCONTEXT_POKEMON_MOVES + NULL, sHowTo_Bag, sTerms_Bag, NULL, NULL, // HELPCONTEXT_BAG + NULL, sHowTo_TrainerCardFront, sTerms_TrainerCardFront, NULL, NULL, // HELPCONTEXT_TRAINER_CARD_FRONT + NULL, sHowTo_TrainerCardBack, NULL, NULL, NULL, // HELPCONTEXT_TRAINER_CARD_BACK + NULL, sHowTo_Save, sTerms_Save, NULL, NULL, // HELPCONTEXT_SAVE + NULL, sHowTo_Options, sTerms_Options, NULL, NULL, // HELPCONTEXT_OPTIONS + sWhatToDo_PlayersHouse, NULL, NULL, sAboutGame_PlayersHouse, NULL, // HELPCONTEXT_PLAYERS_HOUSE + sWhatToDo_OaksLab, sHowTo_OaksLab, sTerms_OaksLab, NULL, NULL, // HELPCONTEXT_OAKS_LAB + sWhatToDo_PokeCenter, sHowTo_PokeCenter, sTerms_PokeCenter, sAboutGame_PokeCenter, NULL, // HELPCONTEXT_POKECENTER + sWhatToDo_Mart, sHowTo_Mart, sTerms_Mart, NULL, NULL, // HELPCONTEXT_MART + sWhatToDo_Gym, sHowTo_Gym, sTerms_Gym, NULL, sTypeMatchups_Gym, // HELPCONTEXT_GYM + sWhatToDo_Indoors, sHowTo_Indoors, sTerms_Indoors, NULL, NULL, // HELPCONTEXT_INDOORS + sWhatToDo_Overworld, sHowTo_Overworld, sTerms_Overworld, NULL, NULL, // HELPCONTEXT_OVERWORLD + sWhatToDo_Dungeon, sHowTo_Dungeon, sTerms_Dungeon, NULL, NULL, // HELPCONTEXT_DUNGEON + sWhatToDo_Surfing, sHowTo_Surfing, sTerms_Surfing, NULL, NULL, // HELPCONTEXT_SURFING + sWhatToDo_WildBattle, sHowTo_WildBattle, sTerms_WildBattle, NULL, sTypeMatchups_WildBattle, // HELPCONTEXT_WILD_BATTLE + sWhatToDo_TrainerBattleSingle, sHowTo_TrainerBattleSingle, sTerms_TrainerBattleSingle, NULL, sTypeMatchups_TrainerBattleSingle, // HELPCONTEXT_TRAINER_BATTLE_SINGLE + sWhatToDo_TrainerBattleDouble, sHowTo_TrainerBattleDouble, sTerms_TrainerBattleDouble, NULL, sTypeMatchups_TrainerBattleDouble, // HELPCONTEXT_TRAINER_BATTLE_DOUBLE + sWhatToDo_SafariBattle, sHowTo_SafariBattle, sTerms_SafariBattle, NULL, sTypeMatchups_SafariBattle, // HELPCONTEXT_SAFARI_BATTLE + NULL, sHowTo_PC, NULL, NULL, NULL, // HELPCONTEXT_PC + NULL, sHowTo_BillsPC, NULL, NULL, NULL, // HELPCONTEXT_BILLS_PC + NULL, sHowTo_PlayersPCItems, NULL, NULL, NULL, // HELPCONTEXT_PLAYERS_PC_ITEMS + NULL, sHowTo_PlayersPCMailbox, NULL, NULL, NULL, // HELPCONTEXT_PLAYERS_PC_MAILBOX + NULL, sHowTo_PCMisc, NULL, NULL, NULL, // HELPCONTEXT_PC_MISC + NULL, sHowTo_BedroomPC, NULL, NULL, NULL, // HELPCONTEXT_BEDROOM_PC + NULL, sHowTo_BedroomPCItems, NULL, NULL, NULL, // HELPCONTEXT_BEDROOM_PC_ITEMS + NULL, sHowTo_BedroomPCMailbox, NULL, NULL, NULL, // HELPCONTEXT_BEDROOM_PC_MAILBOX + NULL, NULL, NULL, NULL, NULL // HELPCONTEXT_UNUSED }; static const u16 unref_845BCB0[] = INCBIN_U16("graphics/help_system/unk_845BCB0.bin"); -static const u8 sHelpSystemContextTopicOrder[] = { - 3, 0, 1, 2, 4, 5 -}; - -static const bool8 sHelpSystemContextTopicFlags[][6] = { - {FALSE, FALSE, FALSE, FALSE, FALSE, TRUE }, - {FALSE, FALSE, FALSE, TRUE, FALSE, TRUE }, - {FALSE, FALSE, FALSE, TRUE, FALSE, TRUE }, - {FALSE, TRUE, FALSE, TRUE, FALSE, TRUE }, - {FALSE, TRUE, FALSE, FALSE, FALSE, TRUE }, - {FALSE, TRUE, TRUE, FALSE, FALSE, TRUE }, - {FALSE, TRUE, TRUE, FALSE, FALSE, TRUE }, - {FALSE, FALSE, TRUE, FALSE, FALSE, TRUE }, - {FALSE, FALSE, TRUE, FALSE, FALSE, TRUE }, - {FALSE, TRUE, TRUE, FALSE, FALSE, TRUE }, - {FALSE, TRUE, TRUE, FALSE, FALSE, TRUE }, - {FALSE, TRUE, FALSE, FALSE, FALSE, TRUE }, - {FALSE, TRUE, TRUE, FALSE, FALSE, TRUE }, - {FALSE, TRUE, TRUE, FALSE, FALSE, TRUE }, - {TRUE, FALSE, FALSE, TRUE, FALSE, TRUE }, - {TRUE, TRUE, TRUE, FALSE, FALSE, TRUE }, - {TRUE, TRUE, TRUE, TRUE, FALSE, TRUE }, - {TRUE, TRUE, TRUE, FALSE, FALSE, TRUE }, - {TRUE, TRUE, TRUE, FALSE, TRUE, TRUE }, - {TRUE, TRUE, TRUE, FALSE, FALSE, TRUE }, - {TRUE, TRUE, TRUE, FALSE, FALSE, TRUE }, - {TRUE, TRUE, TRUE, FALSE, FALSE, TRUE }, - {TRUE, TRUE, TRUE, FALSE, FALSE, TRUE }, - {TRUE, TRUE, TRUE, FALSE, TRUE, TRUE }, - {TRUE, TRUE, TRUE, FALSE, TRUE, TRUE }, - {TRUE, TRUE, TRUE, FALSE, TRUE, TRUE }, - {TRUE, TRUE, TRUE, FALSE, TRUE, TRUE }, - {FALSE, TRUE, FALSE, FALSE, FALSE, TRUE }, - {FALSE, TRUE, FALSE, FALSE, FALSE, TRUE }, - {FALSE, TRUE, FALSE, FALSE, FALSE, TRUE }, - {FALSE, TRUE, FALSE, FALSE, FALSE, TRUE }, - {FALSE, TRUE, FALSE, FALSE, FALSE, TRUE }, - {FALSE, TRUE, FALSE, FALSE, FALSE, TRUE }, - {FALSE, TRUE, FALSE, FALSE, FALSE, TRUE }, - {FALSE, TRUE, FALSE, FALSE, FALSE, TRUE }, - {FALSE, FALSE, FALSE, FALSE, FALSE, FALSE}, - {FALSE, FALSE, FALSE, FALSE, FALSE, FALSE} +static const u8 sHelpSystemContextTopicOrder[TOPIC_COUNT] = { + TOPIC_ABOUT_GAME, + TOPIC_WHAT_TO_DO, + TOPIC_HOW_TO_DO, + TOPIC_TERMS, + TOPIC_TYPE_MATCHUP, + TOPIC_EXIT +}; + +#define CONTEXT_TOPIC_FLAGS(whatToDo, howToDo, terms, aboutGame, typeMatchup, exit) \ + { \ + [TOPIC_WHAT_TO_DO] = whatToDo, \ + [TOPIC_HOW_TO_DO] = howToDo, \ + [TOPIC_TERMS] = terms, \ + [TOPIC_ABOUT_GAME] = aboutGame, \ + [TOPIC_TYPE_MATCHUP] = typeMatchup, \ + [TOPIC_EXIT] = exit \ + } \ + +static const bool8 sHelpSystemContextTopicFlags[HELPCONTEXT_COUNT + 1][TOPIC_COUNT] = { + [HELPCONTEXT_NONE] = CONTEXT_TOPIC_FLAGS(FALSE, FALSE, FALSE, FALSE, FALSE, TRUE), + [HELPCONTEXT_TITLE_SCREEN] = CONTEXT_TOPIC_FLAGS(FALSE, FALSE, FALSE, TRUE, FALSE, TRUE), + [HELPCONTEXT_NEW_GAME] = CONTEXT_TOPIC_FLAGS(FALSE, FALSE, FALSE, TRUE, FALSE, TRUE), + [HELPCONTEXT_NAMING_SCREEN] = CONTEXT_TOPIC_FLAGS(FALSE, TRUE, FALSE, TRUE, FALSE, TRUE), + [HELPCONTEXT_POKEDEX] = CONTEXT_TOPIC_FLAGS(FALSE, TRUE, FALSE, FALSE, FALSE, TRUE), + [HELPCONTEXT_PARTY_MENU] = CONTEXT_TOPIC_FLAGS(FALSE, TRUE, TRUE, FALSE, FALSE, TRUE), + [HELPCONTEXT_POKEMON_INFO] = CONTEXT_TOPIC_FLAGS(FALSE, TRUE, TRUE, FALSE, FALSE, TRUE), + [HELPCONTEXT_POKEMON_SKILLS] = CONTEXT_TOPIC_FLAGS(FALSE, FALSE, TRUE, FALSE, FALSE, TRUE), + [HELPCONTEXT_POKEMON_MOVES] = CONTEXT_TOPIC_FLAGS(FALSE, FALSE, TRUE, FALSE, FALSE, TRUE), + [HELPCONTEXT_BAG] = CONTEXT_TOPIC_FLAGS(FALSE, TRUE, TRUE, FALSE, FALSE, TRUE), + [HELPCONTEXT_TRAINER_CARD_FRONT] = CONTEXT_TOPIC_FLAGS(FALSE, TRUE, TRUE, FALSE, FALSE, TRUE), + [HELPCONTEXT_TRAINER_CARD_BACK] = CONTEXT_TOPIC_FLAGS(FALSE, TRUE, FALSE, FALSE, FALSE, TRUE), + [HELPCONTEXT_SAVE] = CONTEXT_TOPIC_FLAGS(FALSE, TRUE, TRUE, FALSE, FALSE, TRUE), + [HELPCONTEXT_OPTIONS] = CONTEXT_TOPIC_FLAGS(FALSE, TRUE, TRUE, FALSE, FALSE, TRUE), + [HELPCONTEXT_PLAYERS_HOUSE] = CONTEXT_TOPIC_FLAGS( TRUE, FALSE, FALSE, TRUE, FALSE, TRUE), + [HELPCONTEXT_OAKS_LAB] = CONTEXT_TOPIC_FLAGS( TRUE, TRUE, TRUE, FALSE, FALSE, TRUE), + [HELPCONTEXT_POKECENTER] = CONTEXT_TOPIC_FLAGS( TRUE, TRUE, TRUE, TRUE, FALSE, TRUE), + [HELPCONTEXT_MART] = CONTEXT_TOPIC_FLAGS( TRUE, TRUE, TRUE, FALSE, FALSE, TRUE), + [HELPCONTEXT_GYM] = CONTEXT_TOPIC_FLAGS( TRUE, TRUE, TRUE, FALSE, TRUE, TRUE), + [HELPCONTEXT_INDOORS] = CONTEXT_TOPIC_FLAGS( TRUE, TRUE, TRUE, FALSE, FALSE, TRUE), + [HELPCONTEXT_OVERWORLD] = CONTEXT_TOPIC_FLAGS( TRUE, TRUE, TRUE, FALSE, FALSE, TRUE), + [HELPCONTEXT_DUNGEON] = CONTEXT_TOPIC_FLAGS( TRUE, TRUE, TRUE, FALSE, FALSE, TRUE), + [HELPCONTEXT_SURFING] = CONTEXT_TOPIC_FLAGS( TRUE, TRUE, TRUE, FALSE, FALSE, TRUE), + [HELPCONTEXT_WILD_BATTLE] = CONTEXT_TOPIC_FLAGS( TRUE, TRUE, TRUE, FALSE, TRUE, TRUE), + [HELPCONTEXT_TRAINER_BATTLE_SINGLE] = CONTEXT_TOPIC_FLAGS( TRUE, TRUE, TRUE, FALSE, TRUE, TRUE), + [HELPCONTEXT_TRAINER_BATTLE_DOUBLE] = CONTEXT_TOPIC_FLAGS( TRUE, TRUE, TRUE, FALSE, TRUE, TRUE), + [HELPCONTEXT_SAFARI_BATTLE] = CONTEXT_TOPIC_FLAGS( TRUE, TRUE, TRUE, FALSE, TRUE, TRUE), + [HELPCONTEXT_PC] = CONTEXT_TOPIC_FLAGS(FALSE, TRUE, FALSE, FALSE, FALSE, TRUE), + [HELPCONTEXT_BILLS_PC] = CONTEXT_TOPIC_FLAGS(FALSE, TRUE, FALSE, FALSE, FALSE, TRUE), + [HELPCONTEXT_PLAYERS_PC_ITEMS] = CONTEXT_TOPIC_FLAGS(FALSE, TRUE, FALSE, FALSE, FALSE, TRUE), + [HELPCONTEXT_PLAYERS_PC_MAILBOX] = CONTEXT_TOPIC_FLAGS(FALSE, TRUE, FALSE, FALSE, FALSE, TRUE), + [HELPCONTEXT_PC_MISC] = CONTEXT_TOPIC_FLAGS(FALSE, TRUE, FALSE, FALSE, FALSE, TRUE), + [HELPCONTEXT_BEDROOM_PC] = CONTEXT_TOPIC_FLAGS(FALSE, TRUE, FALSE, FALSE, FALSE, TRUE), + [HELPCONTEXT_BEDROOM_PC_ITEMS] = CONTEXT_TOPIC_FLAGS(FALSE, TRUE, FALSE, FALSE, FALSE, TRUE), + [HELPCONTEXT_BEDROOM_PC_MAILBOX] = CONTEXT_TOPIC_FLAGS(FALSE, TRUE, FALSE, FALSE, FALSE, TRUE), + [HELPCONTEXT_UNUSED] = {}, + [HELPCONTEXT_COUNT] = {} }; static const u16 sMartMaps[] = { @@ -877,41 +1744,45 @@ static const u8 sDungeonMaps[][3] = { { MAP_GROUP(SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER), MAP_NUM(SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER), 7 } }; -void HelpSystem_SetSomeVariable(u8 a0) +void SetHelpContextDontCheckBattle(u8 contextId) { - sSomeVariable = a0; + sHelpSystemContextId = contextId; } -void HelpSystem_SetSomeVariable2(u8 a0) +void SetHelpContext(u8 contextId) { - switch (sSomeVariable) + switch (sHelpSystemContextId) { - case 23: - case 24: - case 25: - case 26: - if (a0 == 9 || a0 == 5 || a0 == 6 || a0 == 7 || a0 == 8) + case HELPCONTEXT_WILD_BATTLE: + case HELPCONTEXT_TRAINER_BATTLE_SINGLE: + case HELPCONTEXT_TRAINER_BATTLE_DOUBLE: + case HELPCONTEXT_SAFARI_BATTLE: + if (contextId == HELPCONTEXT_BAG + || contextId == HELPCONTEXT_PARTY_MENU + || contextId == HELPCONTEXT_POKEMON_INFO + || contextId == HELPCONTEXT_POKEMON_SKILLS + || contextId == HELPCONTEXT_POKEMON_MOVES) break; // fallthrough default: - sSomeVariable = a0; + sHelpSystemContextId = contextId; break; } } -void Special_SetSomeVariable(void) +void Script_SetHelpContext(void) { - sSomeVariable = gSpecialVar_0x8004; + sHelpSystemContextId = gSpecialVar_0x8004; } -void HelpSystem_BackupSomeVariable(void) +void BackupHelpContext(void) { - gSomeVariableBackup = sSomeVariable; + gHelpContextIdBackup = sHelpSystemContextId; } -void HelpSystem_RestoreSomeVariable(void) +void RestoreHelpContext(void) { - sSomeVariable = gSomeVariableBackup; + sHelpSystemContextId = gHelpContextIdBackup; } static bool32 IsInMartMap(void) @@ -942,7 +1813,7 @@ static bool8 IsInDungeonMap(void) { u8 i, j; - for (i = 0; i < 16; i++) + for (i = 0; i < NELEMS(sDungeonMaps); i++) { for (j = 0; j < sDungeonMaps[i][2]; j++) { @@ -958,42 +1829,52 @@ static bool8 IsInDungeonMap(void) return FALSE; } -void sub_812B35C(void) +#define IN_PLAYERS_HOUSE \ + ((gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(PALLET_TOWN_PLAYERS_HOUSE_1F) \ + && gSaveBlock1Ptr->location.mapNum == MAP_NUM(PALLET_TOWN_PLAYERS_HOUSE_1F)) \ + || (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(PALLET_TOWN_PLAYERS_HOUSE_2F) \ + && gSaveBlock1Ptr->location.mapNum == MAP_NUM(PALLET_TOWN_PLAYERS_HOUSE_2F))) \ + + #define IN_OAKS_LAB \ + (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(PALLET_TOWN_PROFESSOR_OAKS_LAB) \ + && gSaveBlock1Ptr->location.mapNum == MAP_NUM(PALLET_TOWN_PROFESSOR_OAKS_LAB)) \ + +void SetHelpContextForMap(void) { HelpSystem_EnableToggleWithRButton(); if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING)) - HelpSystem_SetSomeVariable2(0x16); + SetHelpContext(HELPCONTEXT_SURFING); else if (IsInDungeonMap()) - HelpSystem_SetSomeVariable2(0x15); + SetHelpContext(HELPCONTEXT_DUNGEON); else if (IsMapTypeIndoors(gMapHeader.mapType)) { - if ((gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(PALLET_TOWN_PLAYERS_HOUSE_1F) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(PALLET_TOWN_PLAYERS_HOUSE_1F)) || (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(PALLET_TOWN_PLAYERS_HOUSE_2F) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(PALLET_TOWN_PLAYERS_HOUSE_2F))) - HelpSystem_SetSomeVariable2(0x0E); - else if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(PALLET_TOWN_PROFESSOR_OAKS_LAB) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(PALLET_TOWN_PROFESSOR_OAKS_LAB)) - HelpSystem_SetSomeVariable2(0x0F); + if (IN_PLAYERS_HOUSE) + SetHelpContext(HELPCONTEXT_PLAYERS_HOUSE); + else if (IN_OAKS_LAB) + SetHelpContext(HELPCONTEXT_OAKS_LAB); else if (IsCurMapPokeCenter() == TRUE) - HelpSystem_SetSomeVariable2(0x10); + SetHelpContext(HELPCONTEXT_POKECENTER); else if (IsInMartMap() == TRUE) - HelpSystem_SetSomeVariable2(0x11); + SetHelpContext(HELPCONTEXT_MART); else if (IsInGymMap() == TRUE) - HelpSystem_SetSomeVariable2(0x12); + SetHelpContext(HELPCONTEXT_GYM); else - HelpSystem_SetSomeVariable2(0x13); + SetHelpContext(HELPCONTEXT_INDOORS); } else - HelpSystem_SetSomeVariable2(0x14); + SetHelpContext(HELPCONTEXT_OVERWORLD); } -bool8 sub_812B40C(void) +bool8 HelpSystem_UpdateHasntSeenIntro(void) { - if (gUnknown_203B0EE == 1) + if (sSeenHelpSystemIntro == TRUE) return FALSE; if (gSaveFileStatus != SAVE_STATUS_EMPTY && gSaveFileStatus != SAVE_STATUS_INVALID && FlagGet(FLAG_SYS_SAW_HELP_SYSTEM_INTRO)) return FALSE; FlagSet(FLAG_SYS_SAW_HELP_SYSTEM_INTRO); - gUnknown_203B0EE = 1; + sSeenHelpSystemIntro = TRUE; return TRUE; } @@ -1042,7 +1923,7 @@ static void BuildAndPrintMainTopicsListMenu(struct HelpSystemListMenu * helpList ResetHelpSystemListMenu(helpListMenu, listMenuItemsBuffer); BuildMainTopicsListAndMoveToH00(helpListMenu, listMenuItemsBuffer); PrintTextOnPanel2Row52RightAlign(gUnknown_841DFAC); - HelpSystem_InitListMenuController(helpListMenu, 0, sHelpSystemState[2]); + HelpSystem_InitListMenuController(helpListMenu, 0, gHelpSystemState[2]); PrintHelpSystemTopicMouseoverDescription(helpListMenu, listMenuItemsBuffer); sub_813BDA4(1); sub_813BD5C(1); @@ -1052,9 +1933,9 @@ static void BuildMainTopicsListAndMoveToH00(struct HelpSystemListMenu * helpList { u8 i; u8 totalItems = 0; - for (i = 0; i < 6; i++) + for (i = 0; i < TOPIC_COUNT; i++) { - if (sHelpSystemContextTopicFlags[sSomeVariable][sHelpSystemContextTopicOrder[i]] == TRUE) + if (sHelpSystemContextTopicFlags[sHelpSystemContextId][sHelpSystemContextTopicOrder[i]] == TRUE) { listMenuItemsBuffer[totalItems].label = sHelpSystemTopicPtrs[sHelpSystemContextTopicOrder[i]]; listMenuItemsBuffer[totalItems].index = sHelpSystemContextTopicOrder[i]; @@ -1076,7 +1957,7 @@ static void BuildAndPrintSubmenuList(struct HelpSystemListMenu * helpListMenu, s SetHelpSystemSubmenuItems(helpListMenu, listMenuItemsBuffer); PrintTextOnPanel2Row52RightAlign(gUnknown_841DFC9); HelpSystem_InitListMenuController(helpListMenu, helpListMenu->itemsAbove, helpListMenu->cursorPos); - HelpSystem_PrintTextAt(sHelpSystemTopicPtrs[sHelpSystemState[1]], 0, 0); + HelpSystem_PrintTextAt(sHelpSystemTopicPtrs[gHelpSystemState[1]], 0, 0); sub_813BDA4(1); sub_813BD5C(1); } @@ -1084,32 +1965,32 @@ static void BuildAndPrintSubmenuList(struct HelpSystemListMenu * helpListMenu, s static void SetHelpSystemSubmenuItems(struct HelpSystemListMenu * helpListMenu, struct ListMenuItem * listMenuItemsBuffer) { u8 totalItems = 0; - const u8 * indexPtr = sHelpSystemSubmenuIndexPointers[sSomeVariable * 5 + sHelpSystemState[1]]; + const u8 * submenuItems = sHelpSystemSubmenuItemLists[sHelpSystemContextId * 5 + gHelpSystemState[1]]; // accessing as 2D array u8 i; - for (i = 0; indexPtr[i] != 0xFF; i++) + for (i = 0; submenuItems[i] != HELP_END; i++) { - if (HelpSystemSubmenuIndexIsActive(indexPtr[i]) == TRUE) + if (IsHelpSystemSubmenuEnabled(submenuItems[i]) == TRUE) { - if (sHelpSystemState[1] == 0) - listMenuItemsBuffer[totalItems].label = sHelpSystemSpecializedQuestionTextPtrs[indexPtr[i]]; - else if (sHelpSystemState[1] == 1) - listMenuItemsBuffer[totalItems].label = sHelpSystemMenuTopicTextPtrs[indexPtr[i]]; - else if (sHelpSystemState[1] == 2) - listMenuItemsBuffer[totalItems].label = sHelpSystemTermTextPtrs[indexPtr[i]]; - else if (sHelpSystemState[1] == 3) - listMenuItemsBuffer[totalItems].label = sHelpSystemGeneralTopicTextPtrs[indexPtr[i]]; - else - listMenuItemsBuffer[totalItems].label = sHelpSystemTypeMatchupTextPtrs[indexPtr[i]]; - listMenuItemsBuffer[totalItems].index = indexPtr[i]; + if (gHelpSystemState[1] == TOPIC_WHAT_TO_DO) + listMenuItemsBuffer[totalItems].label = sHelpSystemSpecializedQuestionTextPtrs[submenuItems[i]]; + else if (gHelpSystemState[1] == TOPIC_HOW_TO_DO) + listMenuItemsBuffer[totalItems].label = sHelpSystemMenuTopicTextPtrs[submenuItems[i]]; + else if (gHelpSystemState[1] == TOPIC_TERMS) + listMenuItemsBuffer[totalItems].label = sHelpSystemTermTextPtrs[submenuItems[i]]; + else if (gHelpSystemState[1] == TOPIC_ABOUT_GAME) + listMenuItemsBuffer[totalItems].label = sHelpSystemGeneralTopicTextPtrs[submenuItems[i]]; + else // TOPIC_TYPE_MATCHUP + listMenuItemsBuffer[totalItems].label = sHelpSystemTypeMatchupTextPtrs[submenuItems[i]]; + listMenuItemsBuffer[totalItems].index = submenuItems[i]; totalItems++; } } - if (HelpSystem_HasDefeatedBrock() == TRUE) + if (HelpSystem_ShouldShowBasicTerms() == TRUE) { - for (i = 0, indexPtr = gUnknown_845B9BE; indexPtr[i] != 0xFF; i++) + for (i = 0, submenuItems = sTerms_Basic; submenuItems[i] != HELP_END; i++) { - listMenuItemsBuffer[totalItems].label = sHelpSystemTermTextPtrs[indexPtr[i]]; - listMenuItemsBuffer[totalItems].index = indexPtr[i]; + listMenuItemsBuffer[totalItems].label = sHelpSystemTermTextPtrs[submenuItems[i]]; + listMenuItemsBuffer[totalItems].index = submenuItems[i]; totalItems++; } } @@ -1122,215 +2003,218 @@ static void SetHelpSystemSubmenuItems(struct HelpSystemListMenu * helpListMenu, helpListMenu->sub.top = 21; } -static bool8 HelpSystem_HasDefeatedBrock(void) +static bool8 HelpSystem_ShouldShowBasicTerms(void) { - if (FlagGet(FLAG_DEFEATED_BROCK) == TRUE && sHelpSystemState[1] == 2) + if (FlagGet(FLAG_DEFEATED_BROCK) == TRUE && gHelpSystemState[1] == TOPIC_TERMS) return TRUE; return FALSE; } -static bool8 HelpSystemSubmenuIndexIsActive(u8 id) +static bool8 IsHelpSystemSubmenuEnabled(u8 id) { u8 i = 0; - if (sHelpSystemState[1] == 0) + if (gHelpSystemState[1] == TOPIC_WHAT_TO_DO) { switch (id) { - case 1: - case 2: - case 3: - case 5: - case 8: - case 34: - case 38: - case 41: - case 42: - case 43: + case HELP_PLAYING_FOR_FIRST_TIME: + case HELP_WHAT_SHOULD_I_BE_DOING: + case HELP_CANT_GET_OUT_OF_ROOM: + case HELP_TALKED_TO_EVERYONE_NOW_WHAT: + case HELP_OUT_OF_THINGS_TO_DO: + case HELP_NOTHING_I_WANT_TO_KNOW: + case HELP_WHATS_A_MON: + case HELP_WHAT_DO_I_DO_IN_SAFARI: + case HELP_WHAT_ARE_SAFARI_RULES: + case HELP_WANT_TO_END_SAFARI: return TRUE; - case 4: + case HELP_CANT_FIND_PERSON_I_WANT: return FlagGet(FLAG_VISITED_OAKS_LAB); - case 6: - case 10: - case 16: - case 19: - case 22: - case 35: - case 36: + case HELP_SOMEONE_BLOCKING_MY_WAY: + case HELP_WHAT_ARE_MY_ADVENTURE_BASICS: + case HELP_HOW_DO_I_PREPARE_FOR_BATTLE: + case HELP_WHAT_IS_STATUS_PROBLEM: + case HELP_RAN_OUT_OF_POTIONS: + case HELP_WHATS_POKEMON_CENTER: + case HELP_WHATS_POKEMON_MART: return FlagGet(FLAG_WORLD_MAP_VIRIDIAN_CITY); - case 7: + case HELP_I_CANT_GO_ON: return FlagGet(FLAG_WORLD_MAP_VERMILION_CITY); - case 11: - case 24: + case HELP_HOW_ARE_ROADS_FORESTS_DIFFERENT: + case HELP_WHATS_A_TRAINER: return FlagGet(FLAG_WORLD_MAP_VIRIDIAN_FOREST); - case 9: - case 13: - case 14: - case 15: - case 17: - case 18: - case 20: - case 26: - case 29: - case 31: - case 37: + case HELP_WHAT_HAPPENED_TO_ITEM_I_GOT: + case HELP_WHEN_CAN_I_USE_ITEM: + case HELP_HOW_DO_I_PROGRESS: + case HELP_WHATS_A_BATTLE: + case HELP_WHAT_IS_A_MONS_VITALITY: + case HELP_MY_MONS_ARE_HURT: + case HELP_WHAT_HAPPENS_IF_ALL_MY_MONS_FAINT: + case HELP_WHERE_DO_MONS_APPEAR: + case HELP_WHAT_MOVES_SHOULD_I_USE: + case HELP_WANT_TO_MAKE_MON_STRONGER: + case HELP_WANT_TO_END_GAME: return FlagGet(FLAG_SYS_POKEMON_GET); - case 21: - case 23: + case HELP_CANT_CATCH_MONS: + case HELP_CAN_I_BUY_POKEBALLS: return FlagGet(FLAG_SYS_POKEDEX_GET); - case 12: - case 25: - case 27: - case 30: - case 32: - case 33: + case HELP_HOW_ARE_CAVES_DIFFERENT: + case HELP_WHAT_DO_I_DO_IN_CAVE: + case HELP_HOW_DO_I_WIN_AGAINST_TRAINER: + case HELP_FOE_MONS_TOO_STRONG: + case HELP_WHAT_ARE_MOVES: + case HELP_WANT_TO_ADD_MORE_MOVES: return FlagGet(FLAG_BADGE01_GET); - case 28: - case 40: + case HELP_WHAT_ARE_HIDDEN_MOVES: + case HELP_WHAT_DOES_HIDDEN_MOVE_DO: return HasGottenAtLeastOneHM(); - case 39: + case HELP_WHAT_IS_THAT_PERSON_LIKE: return FlagGet(FLAG_GOT_FAME_CHECKER); - case 44: + case HELP_WHAT_IS_A_GYM: return FlagGet(FLAG_WORLD_MAP_PEWTER_CITY); } return FALSE; } - if (sHelpSystemState[1] == 1) + if (gHelpSystemState[1] == TOPIC_HOW_TO_DO) { switch (id) { - case 06: - case 10: - case 11: - case 12: - case 19: - case 20: - case 21: - case 22: - case 23: - case 24: - case 25: - case 26: - case 27: - case 28: - case 29: - case 31: - case 36: - case 38: - case 39: - case 40: - case 41: - case 42: - case 45: - case 46: - case 47: + case HELP_USING_BAG: + case HELP_USING_PLAYER: + case HELP_USING_SAVE: + case HELP_USING_OPTION: + case HELP_ENTERING_NAME: + case HELP_USING_PC: + case HELP_USING_BILLS_PC: + case HELP_USING_WITHDRAW: + case HELP_USING_DEPOSIT: + case HELP_USING_MOVE: + case HELP_MOVING_ITEMS: + case HELP_USING_PLAYERS_PC: + case HELP_USING_WITHDRAW_ITEM: + case HELP_USING_DEPOSIT_ITEM: + case HELP_USING_MAILBOX: + case HELP_OPENING_MENU: + case HELP_USING_BAG2: + case HELP_USING_HOME_PC: + case HELP_USING_ITEM_STORAGE: + case HELP_USING_WITHDRAW_ITEM2: + case HELP_USING_DEPOSIT_ITEM2: + case HELP_USING_MAILBOX2: + case HELP_USING_BALL: + case HELP_USING_BAIT: + case HELP_USING_ROCK: return TRUE; - case 1: - case 30: - case 37: + case HELP_USING_POKEDEX: + case HELP_USING_PROF_OAKS_PC: + case HELP_READING_POKEDEX: return FlagGet(FLAG_SYS_POKEDEX_GET); - case 14: + case HELP_USING_TOWN_MAP: return CheckBagHasItem(ITEM_TOWN_MAP, 1); - case 2: - case 3: - case 5: - case 7: - case 8: - case 9: - case 13: - case 32: - case 33: - case 35: - case 43: - case 44: + case HELP_USING_POKEMON: + case HELP_USING_SUMMARY: + case HELP_USING_ITEM: + case HELP_USING_AN_ITEM: + case HELP_USING_KEYITEM: + case HELP_USING_POKEBALL: + case HELP_USING_POTION: + case HELP_USING_FIGHT: + case HELP_USING_POKEMON2: + case HELP_USING_SUMMARY2: + case HELP_USING_RUN: + case HELP_REGISTER_KEY_ITEM: return FlagGet(FLAG_SYS_POKEMON_GET); - case 4: - case 34: + case HELP_USING_SWITCH: + case HELP_USING_SHIFT: + // Only show if player has caught mon after starter if (GetKantoPokedexCount(1) > 1) return TRUE; return FALSE; - case 15: + case HELP_USING_TM: return FlagGet(FLAG_BADGE01_GET); - case 16: - case 17: + case HELP_USING_HM: + case HELP_USING_MOVE_OUTSIDE_OF_BATTLE: return HasGottenAtLeastOneHM(); - case 18: + case HELP_RIDING_BICYCLE: return FlagGet(FLAG_GOT_BICYCLE); - case 48: + case HELP_USING_HALL_OF_FAME: return FlagGet(FLAG_SYS_GAME_CLEAR); } return FALSE; } - if (sHelpSystemState[1] == 2) + if (gHelpSystemState[1] == TOPIC_TERMS) { - if (HelpSystem_HasDefeatedBrock() == TRUE) + if (HelpSystem_ShouldShowBasicTerms() == TRUE) { - for (i = 0; gUnknown_845B9BE[i] != 0xFF; i++) + // After defeating Brock, all basic terms are added + // This checks to make sure they arent added twice + for (i = 0; sTerms_Basic[i] != HELP_END; i++) { - if (gUnknown_845B9BE[i] == id) + if (sTerms_Basic[i] == id) return FALSE; } } switch (id) { - case 14: - case 17: - case 22: - case 23: - case 24: - case 25: - case 26: - case 27: - case 28: - case 29: - case 30: - case 31: - case 32: - case 33: - case 34: - case 35: - case 38: + case HELP_TERM_MONEY: + case HELP_TERM_ID_NO: + case HELP_TERM_ITEMS: + case HELP_TERM_KEYITEMS: + case HELP_TERM_POKEBALLS: + case HELP_TERM_POKEDEX: + case HELP_TERM_PLAY_TIME: + case HELP_TERM_BADGES: + case HELP_TERM_TEXT_SPEED: + case HELP_TERM_BATTLE_SCENE: + case HELP_TERM_BATTLE_STYLE: + case HELP_TERM_SOUND: + case HELP_TERM_BUTTON_MODE: + case HELP_TERM_FRAME: + case HELP_TERM_CANCEL: + case HELP_TERM_TM: + case HELP_TERM_EVOLUTION: return TRUE; - case 1: - case 2: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - case 16: - case 19: - case 20: - case 21: + case HELP_TERM_HP: + case HELP_TERM_EXP: + case HELP_TERM_ATTACK: + case HELP_TERM_DEFENSE: + case HELP_TERM_SPATK: + case HELP_TERM_SPDEF: + case HELP_TERM_SPEED: + case HELP_TERM_LEVEL: + case HELP_TERM_TYPE: + case HELP_TERM_OT: + case HELP_TERM_ITEM: + case HELP_TERM_ABILITY: + case HELP_TERM_NATURE: + case HELP_TERM_POWER: + case HELP_TERM_ACCURACY: + case HELP_TERM_FNT: return FlagGet(FLAG_SYS_POKEMON_GET); - case 36: - case 37: + case HELP_TERM_HM: + case HELP_TERM_HM_MOVE: return HasGottenAtLeastOneHM(); - case 3: - case 15: - case 18: - case 39: + case HELP_TERM_MOVES: + case HELP_TERM_MOVE_TYPE: + case HELP_TERM_PP: + case HELP_TERM_STATUS_PROBLEM: return FlagGet(FLAG_WORLD_MAP_VIRIDIAN_FOREST); } return TRUE; } - if (sHelpSystemState[1] == 3) + if (gHelpSystemState[1] == TOPIC_ABOUT_GAME) { switch (id) { - case 5: + case HELP_GAME_FUNDAMENTALS_2: return FlagGet(FLAG_BADGE01_GET); - case 6: + case HELP_GAME_FUNDAMENTALS_3: return FlagGet(FLAG_BADGE02_GET); } return TRUE; } - if (sHelpSystemState[1] == 4) + if (gHelpSystemState[1] == TOPIC_TYPE_MATCHUP) { return TRUE; } @@ -1407,7 +2291,7 @@ bool8 HelpSystemSubroutine_WelcomeWaitButton(struct HelpSystemListMenu * helpLis bool8 HelpSystemSubroutine_WelcomeEndGotoMenu(struct HelpSystemListMenu * helpListMenu, struct ListMenuItem * listMenuItemsBuffer) { - sHelpSystemState[2] = 0; + gHelpSystemState[2] = 0; ResetHelpSystemCursor(helpListMenu); BuildAndPrintMainTopicsListMenu(helpListMenu, listMenuItemsBuffer); helpListMenu->state = 0; @@ -1416,8 +2300,8 @@ bool8 HelpSystemSubroutine_WelcomeEndGotoMenu(struct HelpSystemListMenu * helpLi bool8 HelpSystemSubroutine_MenuInputHandlerMain(struct HelpSystemListMenu * helpListMenu, struct ListMenuItem * listMenuItemsBuffer) { - s32 v0 = HelpSystem_GetMenuInput(); - switch (v0) + s32 input = HelpSystem_GetMenuInput(); + switch (input) { case -6: case -2: @@ -1430,7 +2314,7 @@ bool8 HelpSystemSubroutine_MenuInputHandlerMain(struct HelpSystemListMenu * help case -1: break; default: - sHelpSystemState[1] = v0; + gHelpSystemState[1] = input; helpListMenu->state = 1; break; } @@ -1439,8 +2323,8 @@ bool8 HelpSystemSubroutine_MenuInputHandlerMain(struct HelpSystemListMenu * help bool8 HelpMenuSubroutine_InitSubmenu(struct HelpSystemListMenu * helpListMenu, struct ListMenuItem * listMenuItemsBuffer) { - sHelpSystemState[0] = 1; - sHelpSystemState[2] = helpListMenu->cursorPos; + gHelpSystemState[0] = 1; + gHelpSystemState[2] = helpListMenu->cursorPos; ResetHelpSystemCursor(helpListMenu); BuildAndPrintSubmenuList(helpListMenu, listMenuItemsBuffer); sub_813C75C(); @@ -1453,7 +2337,7 @@ bool8 HelpMenuSubroutine_ReturnFromSubmenu(struct HelpSystemListMenu * helpListM { sub_813C004(0, 0); sub_813C004(1, 0); - sHelpSystemState[0] = 0; + gHelpSystemState[0] = 0; BuildAndPrintMainTopicsListMenu(helpListMenu, listMenuItemsBuffer); helpListMenu->state = 0; return TRUE; @@ -1461,8 +2345,8 @@ bool8 HelpMenuSubroutine_ReturnFromSubmenu(struct HelpSystemListMenu * helpListM bool8 HelpMenuSubroutine_SubmenuInputHandler(struct HelpSystemListMenu * helpListMenu, struct ListMenuItem * listMenuItemsBuffer) { - s32 v0 = HelpSystem_GetMenuInput(); - switch (v0) + s32 input = HelpSystem_GetMenuInput(); + switch (input) { case -6: return FALSE; @@ -1475,46 +2359,46 @@ bool8 HelpMenuSubroutine_SubmenuInputHandler(struct HelpSystemListMenu * helpLis case -1: break; default: - sHelpSystemState[3] = v0; + gHelpSystemState[3] = input; helpListMenu->state = 4; break; } return TRUE; } -void sub_812BDEC(void) +void HelpSystem_PrintTopicLabel(void) { - HelpSystem_PrintTextAt(sHelpSystemTopicPtrs[sHelpSystemState[1]], 0, 0); + HelpSystem_PrintTextAt(sHelpSystemTopicPtrs[gHelpSystemState[1]], 0, 0); } bool8 HelpMenuSubroutine_HelpItemPrint(struct HelpSystemListMenu * helpListMenu, struct ListMenuItem * listMenuItemsBuffer) { - sHelpSystemState[0] = 2; + gHelpSystemState[0] = 2; sub_813BDA4(0); HelpSystem_FillPanel1(); PrintTextOnPanel2Row52RightAlign(gUnknown_841DFBE); sub_813BDE8(1); sub_813BEE4(1); - if (sHelpSystemState[1] == 0) + if (gHelpSystemState[1] == TOPIC_WHAT_TO_DO) { - HelpSystem_PrintTwoStrings(sHelpSystemSpecializedQuestionTextPtrs[sHelpSystemState[3]], sHelpSystemSpecializedAnswerTextPtrs[sHelpSystemState[3]]); + HelpSystem_PrintTwoStrings(sHelpSystemSpecializedQuestionTextPtrs[gHelpSystemState[3]], sHelpSystemSpecializedAnswerTextPtrs[gHelpSystemState[3]]); } - else if (sHelpSystemState[1] == 1) + else if (gHelpSystemState[1] == TOPIC_HOW_TO_DO) { - HelpSystem_PrintTwoStrings(sHelpSystemMenuTopicTextPtrs[sHelpSystemState[3]], sHelpSystemHowToUseMenuTextPtrs[sHelpSystemState[3]]); + HelpSystem_PrintTwoStrings(sHelpSystemMenuTopicTextPtrs[gHelpSystemState[3]], sHelpSystemHowToUseMenuTextPtrs[gHelpSystemState[3]]); } - else if (sHelpSystemState[1] == 2) + else if (gHelpSystemState[1] == TOPIC_TERMS) { - HelpSystem_PrintTwoStrings(sHelpSystemTermTextPtrs[sHelpSystemState[3]], sHelpSystemTermDefinitionsTextPtrs[sHelpSystemState[3]]); + HelpSystem_PrintTwoStrings(sHelpSystemTermTextPtrs[gHelpSystemState[3]], sHelpSystemTermDefinitionsTextPtrs[gHelpSystemState[3]]); } - else if (sHelpSystemState[1] == 3) + else if (gHelpSystemState[1] == TOPIC_ABOUT_GAME) { - HelpSystem_PrintTwoStrings(sHelpSystemGeneralTopicTextPtrs[sHelpSystemState[3]], sHelpSystemGeneralTopicDescriptionTextPtrs[sHelpSystemState[3]]); + HelpSystem_PrintTwoStrings(sHelpSystemGeneralTopicTextPtrs[gHelpSystemState[3]], sHelpSystemGeneralTopicDescriptionTextPtrs[gHelpSystemState[3]]); } - else + else // TOPIC_TYPE_MATCHUP { - HelpSystem_PrintTwoStrings(sHelpSystemTypeMatchupTextPtrs[sHelpSystemState[3]], sHelpSystemTypeMatchupDescriptionTextPtrs[sHelpSystemState[3]]); + HelpSystem_PrintTwoStrings(sHelpSystemTypeMatchupTextPtrs[gHelpSystemState[3]], sHelpSystemTypeMatchupDescriptionTextPtrs[gHelpSystemState[3]]); } sub_813BDA4(1); sub_813BD5C(1); @@ -1524,7 +2408,7 @@ bool8 HelpMenuSubroutine_HelpItemPrint(struct HelpSystemListMenu * helpListMenu, bool8 HelpMenuSubroutine_ReturnFromHelpItem(struct HelpSystemListMenu * helpListMenu, struct ListMenuItem * listMenuItemsBuffer) { - sHelpSystemState[0] = 1; + gHelpSystemState[0] = 1; BuildAndPrintSubmenuList(helpListMenu, listMenuItemsBuffer); sub_813C75C(); HelpSystem_SetInputDelay(2); @@ -1559,7 +2443,7 @@ static void PrintTextOnPanel2Row52RightAlign(const u8 * str) u8 sub_812BF88(void) { - return sHelpSystemState[0]; + return gHelpSystemState[0]; } static void ResetHelpSystemCursor(struct HelpSystemListMenu * helpListMenu) diff --git a/src/item_menu.c b/src/item_menu.c index a407c582f..ed2988fd2 100644 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -496,9 +496,9 @@ static bool8 LoadBagMenuGraphics(void) break; case 19: if (gBagMenuState.location == ITEMMENULOCATION_ITEMPC) - HelpSystem_SetSomeVariable2(29); + SetHelpContext(HELPCONTEXT_PLAYERS_PC_ITEMS); else - HelpSystem_SetSomeVariable2(9); + SetHelpContext(HELPCONTEXT_BAG); gPaletteFade.bufferTransferDisabled = FALSE; gMain.state++; break; diff --git a/src/item_pc.c b/src/item_pc.c index 7c7abdce3..54378b840 100644 --- a/src/item_pc.c +++ b/src/item_pc.c @@ -361,7 +361,7 @@ static bool8 ItemPc_DoGfxSetup(void) gMain.state++; break; case 17: - HelpSystem_SetSomeVariable2(29); + SetHelpContext(HELPCONTEXT_PLAYERS_PC_ITEMS); gMain.state++; break; case 18: diff --git a/src/mail.c b/src/mail.c index dbdf48ac7..b5c0343b3 100644 --- a/src/mail.c +++ b/src/mail.c @@ -506,10 +506,10 @@ static bool8 DoInitMailView(void) SetVBlankCallback(NULL); ScanlineEffect_Stop(); SetGpuReg(REG_OFFSET_DISPCNT, 0); - if (gPlayerPcMenuManager.unk_9 == 0) - HelpSystem_SetSomeVariable2(34); + if (gPlayerPcMenuManager.notInRoom == FALSE) + SetHelpContext(HELPCONTEXT_BEDROOM_PC_MAILBOX); else - HelpSystem_SetSomeVariable2(30); + SetHelpContext(HELPCONTEXT_PLAYERS_PC_MAILBOX); break; case 1: CpuFill16(0, (void *)OAM, OAM_SIZE); diff --git a/src/oak_speech.c b/src/oak_speech.c index f7ec9a531..871a73783 100644 --- a/src/oak_speech.c +++ b/src/oak_speech.c @@ -512,7 +512,7 @@ static void Task_OaksSpeech1(u8 taskId) ResetSpriteData(); FreeAllSpritePalettes(); ResetTempTileDataBuffers(); - HelpSystem_SetSomeVariable2(2); + SetHelpContext(HELPCONTEXT_NEW_GAME); break; case 1: sOakSpeechResources = AllocZeroed(sizeof(*sOakSpeechResources)); diff --git a/src/option_menu.c b/src/option_menu.c index 5453dfa9e..56a4ec877 100644 --- a/src/option_menu.c +++ b/src/option_menu.c @@ -224,7 +224,7 @@ void CB2_OptionsMenuFromStartMenu(void) if (sOptionMenuPtr->option[i] > (sOptionMenuItemCounts[i]) - 1) sOptionMenuPtr->option[i] = 0; } - HelpSystem_SetSomeVariable2(0xD); + SetHelpContext(HELPCONTEXT_OPTIONS); SetMainCallback2(CB2_OptionMenu); } diff --git a/src/party_menu.c b/src/party_menu.c index 626ce70f8..edf7e96f6 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -566,7 +566,7 @@ static bool8 ShowPartyMenu(void) ++gMain.state; break; case 19: - HelpSystem_SetSomeVariable2(5); + SetHelpContext(HELPCONTEXT_PARTY_MENU); ++gMain.state; break; case 20: diff --git a/src/player_pc.c b/src/player_pc.c index 8943e0796..62a899e39 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -153,8 +153,8 @@ void BedroomPC(void) { u8 taskId; - gPlayerPcMenuManager.unk_9 = 0; - HelpSystem_BackupSomeVariable(); + gPlayerPcMenuManager.notInRoom = FALSE; + BackupHelpContext(); sItemOrder = gUnknown_8402200; sTopMenuItemCount = 3; taskId = CreateTask(TaskDummy, 0); @@ -165,8 +165,8 @@ void PlayerPC(void) { u8 taskId; - gPlayerPcMenuManager.unk_9 = 1; - HelpSystem_BackupSomeVariable(); + gPlayerPcMenuManager.notInRoom = TRUE; + BackupHelpContext(); sItemOrder = gUnknown_8402203; sTopMenuItemCount = 3; taskId = CreateTask(TaskDummy, 0); @@ -215,7 +215,7 @@ static void Task_TopMenuHandleInput(u8 taskId) static void Task_ReturnToTopMenu(u8 taskId) { - HelpSystem_RestoreSomeVariable(); + RestoreHelpContext(); DisplayItemMessageOnField(taskId, 2, gText_WhatWouldYouLikeToDo, Task_DrawPlayerPcTopMenu); } @@ -238,10 +238,10 @@ static void Task_PlayerPcMailbox(u8 taskId) gPlayerPcMenuManager.itemsAbove = 0; PCMailCompaction(); Task_SetPageItemVars(taskId); - if (gPlayerPcMenuManager.unk_9 == 0) - HelpSystem_SetSomeVariable2(34); + if (gPlayerPcMenuManager.notInRoom == FALSE) + SetHelpContext(HELPCONTEXT_BEDROOM_PC_MAILBOX); else - HelpSystem_SetSomeVariable2(30); + SetHelpContext(HELPCONTEXT_PLAYERS_PC_MAILBOX); if (MailboxPC_InitBuffers(gPlayerPcMenuManager.count) == TRUE) { ClearDialogWindowAndFrame(0, FALSE); @@ -257,7 +257,7 @@ static void Task_PlayerPcMailbox(u8 taskId) static void Task_PlayerPcTurnOff(u8 taskId) { - if (gPlayerPcMenuManager.unk_9 == 0) + if (gPlayerPcMenuManager.notInRoom == FALSE) ScriptContext1_SetupScript(EventScript_PalletTown_PlayersHouse_2F_ShutDownPC); else EnableBothScriptContexts(); @@ -267,10 +267,10 @@ static void Task_PlayerPcTurnOff(u8 taskId) static void Task_CreateItemStorageSubmenu(u8 taskId, u8 cursorPos) { s16 *data = gTasks[taskId].data; - if (gPlayerPcMenuManager.unk_9 == 0) - HelpSystem_SetSomeVariable2(33); + if (gPlayerPcMenuManager.notInRoom == FALSE) + SetHelpContext(HELPCONTEXT_BEDROOM_PC_ITEMS); else - HelpSystem_SetSomeVariable2(29); + SetHelpContext(HELPCONTEXT_PLAYERS_PC_ITEMS); tWindowId = AddWindow(&sWindowTemplate_ItemStorageSubmenu); SetStdWindowBorderStyle(tWindowId, FALSE); PrintTextArray(tWindowId, 2, GetMenuCursorDimensionByFont(2, 0), 2, 16, 3, sMenuActions_ItemPc); @@ -580,10 +580,10 @@ static void Task_WaitFadeAndReturnToMailboxPcInputHandler(u8 taskId) static void CB2_ReturnToMailbox(void) { u8 taskId; - if (gPlayerPcMenuManager.unk_9 == 0) - HelpSystem_SetSomeVariable2(34); + if (gPlayerPcMenuManager.notInRoom == FALSE) + SetHelpContext(HELPCONTEXT_BEDROOM_PC_MAILBOX); else - HelpSystem_SetSomeVariable2(30); + SetHelpContext(HELPCONTEXT_PLAYERS_PC_MAILBOX); LoadStdWindowFrameGfx(); taskId = CreateTask(Task_WaitFadeAndReturnToMailboxPcInputHandler, 0); if (MailboxPC_InitBuffers(gPlayerPcMenuManager.count) == TRUE) @@ -683,10 +683,10 @@ static void CB2_ReturnToMailboxPc_UpdateScrollVariables(void) { u8 taskId; u8 count; - if (gPlayerPcMenuManager.unk_9 == 0) - HelpSystem_SetSomeVariable2(34); + if (gPlayerPcMenuManager.notInRoom == FALSE) + SetHelpContext(HELPCONTEXT_BEDROOM_PC_MAILBOX); else - HelpSystem_SetSomeVariable2(30); + SetHelpContext(HELPCONTEXT_PLAYERS_PC_MAILBOX); taskId = CreateTask(Task_WaitFadeAndReturnToMailboxPcInputHandler, 0); count = gPlayerPcMenuManager.count; gPlayerPcMenuManager.count = CountPCMail(); diff --git a/src/pokedex_screen.c b/src/pokedex_screen.c index cd201a884..0219ca466 100644 --- a/src/pokedex_screen.c +++ b/src/pokedex_screen.c @@ -302,7 +302,7 @@ void CB2_OpenPokedexFromStartMenu(void) SetGpuReg(REG_OFFSET_BLDALPHA, 0); SetGpuReg(REG_OFFSET_BLDY, 0); SetMainCallback2(sub_81024D4); - HelpSystem_SetSomeVariable2(4); + SetHelpContext(HELPCONTEXT_POKEDEX); } #define FREE_IF_NOT_NULL(ptr0) ({ void * ptr = (ptr0); if (ptr) Free(ptr); }) diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c index 8eeb3bb55..25470fc43 100644 --- a/src/reshow_battle_screen.c +++ b/src/reshow_battle_screen.c @@ -36,17 +36,17 @@ void ReshowBattleScreenAfterMenu(void) if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) { if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - HelpSystem_SetSomeVariable2(0x19); + SetHelpContext(HELPCONTEXT_TRAINER_BATTLE_DOUBLE); else - HelpSystem_SetSomeVariable2(0x18); + SetHelpContext(HELPCONTEXT_TRAINER_BATTLE_SINGLE); } else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) { - HelpSystem_SetSomeVariable2(0x1A); + SetHelpContext(HELPCONTEXT_SAFARI_BATTLE); } else { - HelpSystem_SetSomeVariable2(0x17); + SetHelpContext(HELPCONTEXT_WILD_BATTLE); } } SetMainCallback2(CB2_ReshowBattleScreenAfterMenu); diff --git a/src/start_menu.c b/src/start_menu.c index bdcf68b51..cf8be2de9 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -562,8 +562,8 @@ static bool8 StartMenuLinkPlayerCallback(void) static bool8 StartCB_Save1(void) { - HelpSystem_BackupSomeVariable(); - HelpSystem_SetSomeVariable2(12); + BackupHelpContext(); + SetHelpContext(HELPCONTEXT_SAVE); StartMenu_PrepareForSave(); sStartMenuCallback = StartCB_Save2; return FALSE; @@ -579,19 +579,19 @@ static bool8 StartCB_Save2(void) ClearDialogWindowAndFrameToTransparent(0, TRUE); sub_80696C0(); ScriptContext2_Disable(); - HelpSystem_RestoreSomeVariable(); + RestoreHelpContext(); return TRUE; case SAVECB_RETURN_CANCEL: ClearDialogWindowAndFrameToTransparent(0, FALSE); DrawStartMenuInOneGo(); - HelpSystem_RestoreSomeVariable(); + RestoreHelpContext(); sStartMenuCallback = StartCB_HandleInput; break; case SAVECB_RETURN_ERROR: ClearDialogWindowAndFrameToTransparent(0, TRUE); sub_80696C0(); ScriptContext2_Disable(); - HelpSystem_RestoreSomeVariable(); + RestoreHelpContext(); return TRUE; } return FALSE; @@ -614,8 +614,8 @@ static u8 RunSaveDialogCB(void) void Field_AskSaveTheGame(void) { - HelpSystem_BackupSomeVariable(); - HelpSystem_SetSomeVariable2(12); + BackupHelpContext(); + SetHelpContext(HELPCONTEXT_SAVE); StartMenu_PrepareForSave(); CreateTask(task50_save_game, 80); } @@ -645,7 +645,7 @@ static void task50_save_game(u8 taskId) } DestroyTask(taskId); EnableBothScriptContexts(); - HelpSystem_RestoreSomeVariable(); + RestoreHelpContext(); } static void CloseSaveMessageWindow(void) diff --git a/src/teachy_tv.c b/src/teachy_tv.c index 1467131b0..1d49ee3d9 100644 --- a/src/teachy_tv.c +++ b/src/teachy_tv.c @@ -500,7 +500,7 @@ static void TeachyTvMainCallback(void) ScheduleBgCopyTilemapToVram(1); ScheduleBgCopyTilemapToVram(2); ScheduleBgCopyTilemapToVram(3); - HelpSystem_SetSomeVariable(9); // help system something + SetHelpContextDontCheckBattle(HELPCONTEXT_BAG); BlendPalettes(0xFFFFFFFF, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0); SetVBlankCallback(TeachyTvVblankHandler); diff --git a/src/title_screen.c b/src/title_screen.c index af78893b9..0ff0a6b96 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -575,7 +575,7 @@ static void SetTitleScreenScene_Run(s16 * data) switch (data[1]) { case 0: - HelpSystem_SetSomeVariable2(1); + SetHelpContext(HELPCONTEXT_TITLE_SCREEN); CreateTask(Task_TitleScreen_BlinkPressStart, 0); CreateTask(Task_FlameOrLeafSpawner, 5); SetGpuRegsForTitleScreenRun(); diff --git a/src/trainer_card.c b/src/trainer_card.c index 600035613..df116d379 100644 --- a/src/trainer_card.c +++ b/src/trainer_card.c @@ -570,7 +570,7 @@ static void Task_TrainerCard(u8 taskId) if (JOY_NEW(A_BUTTON)) { - HelpSystem_SetSomeVariable2(11); + SetHelpContext(HELPCONTEXT_TRAINER_CARD_BACK); FlipTrainerCard(); PlaySE(SE_CARD1); sTrainerCardDataPtr->mainState = STATE_WAIT_FLIP_TO_BACK; @@ -609,7 +609,7 @@ static void Task_TrainerCard(u8 taskId) } else { - HelpSystem_SetSomeVariable2(10); + SetHelpContext(HELPCONTEXT_TRAINER_CARD_FRONT); FlipTrainerCard(); sTrainerCardDataPtr->mainState = STATE_WAIT_FLIP_TO_FRONT; PlaySE(SE_CARD1); @@ -1042,7 +1042,7 @@ static void InitBgsAndWindows(void) static void SetTrainerCardCB2(void) { SetMainCallback2(CB2_TrainerCard); - HelpSystem_SetSomeVariable2(10); + SetHelpContext(HELPCONTEXT_TRAINER_CARD_FRONT); } static void SetUpTrainerCardTask(void) |