diff options
author | GriffinR <griffin.richards@comcast.net> | 2019-11-25 20:00:04 -0500 |
---|---|---|
committer | GriffinR <griffin.richards@comcast.net> | 2019-11-25 20:00:04 -0500 |
commit | f559fa3fe26910056e84315370cb13ec8501af18 (patch) | |
tree | 498c7ed00243cf03420451fdde3e04ac36add55c | |
parent | 4c52cf9ed15f01f949fbf2139444f674694e446d (diff) | |
parent | 6efa51f8ad7b62a3a12c81f1d0bf299be31718b0 (diff) |
Merge master into ObjEvent rename
144 files changed, 8331 insertions, 8530 deletions
@@ -33,4 +33,4 @@ Other disassembly and/or decompilation projects: ## Contacts -You can find us on [Discord](https://discord.gg/6EuWgX9) and [IRC](https://kiwiirc.com/client/irc.freenode.net/?#pret). +You can find us on [Discord](https://discord.gg/d5dubZ3) and [IRC](https://kiwiirc.com/client/irc.freenode.net/?#pret). diff --git a/asm/macros.inc b/asm/macros.inc index f6a143d7a..6782f4200 100644 --- a/asm/macros.inc +++ b/asm/macros.inc @@ -6,7 +6,17 @@ .include "asm/macros/ec.inc" .include "asm/macros/map.inc" .include "asm/macros/field_effect_script.inc" - .include "asm/macros/battle_frontier.inc" + .include "asm/macros/trainer_hill.inc" + .include "asm/macros/battle_tent.inc" + .include "asm/macros/battle_frontier/apprentice.inc" + .include "asm/macros/battle_frontier/battle_arena.inc" + .include "asm/macros/battle_frontier/battle_dome.inc" + .include "asm/macros/battle_frontier/battle_factory.inc" + .include "asm/macros/battle_frontier/battle_palace.inc" + .include "asm/macros/battle_frontier/battle_pike.inc" + .include "asm/macros/battle_frontier/battle_pyramid.inc" + .include "asm/macros/battle_frontier/battle_tower.inc" + .include "asm/macros/battle_frontier/frontier_util.inc" .macro region_map_entry x, y, width, height, name .byte \x diff --git a/asm/macros/battle_frontier.inc b/asm/macros/battle_frontier.inc deleted file mode 100644 index 8a5f369a3..000000000 --- a/asm/macros/battle_frontier.inc +++ /dev/null @@ -1,35 +0,0 @@ -@ To be populated with macros for the Battle Frontier CallFacilityFunction specials - - -@ Frontier Util - -.macro frontier_setlvlmode lvlmode:req -setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 -setvar VAR_0x8005, 1 -setvar VAR_0x8006, \lvlmode -special CallFrontierUtilFunc -.endm - -@ Battle Tower - -.macro battletower_getstreak -setvar VAR_0x8004, BATTLE_TOWER_FUNC_1 -setvar VAR_0x8005, 1 -special CallBattleTowerFunc -.endm - -@ Battle Dome - -@ Battle Palace - -@ Battle Arena - -@ Battle Factory - -@ Battle Pike - -@ Battle Pyramid - -@ Battle Tent - -@ Apprentice diff --git a/asm/macros/battle_frontier/apprentice.inc b/asm/macros/battle_frontier/apprentice.inc new file mode 100644 index 000000000..e9b098a18 --- /dev/null +++ b/asm/macros/battle_frontier/apprentice.inc @@ -0,0 +1,133 @@ +@ TODO: These need to have description comment + + .macro apprentice_gavelvlmode + setvar VAR_0x8004, APPRENTICE_FUNC_GAVE_LVLMODE + special CallApprenticeFunction + .endm + + .macro apprentice_setlvlmode lvlmode:req + setvar VAR_0x8004, APPRENTICE_FUNC_SET_LVLMODE + setorcopyvar VAR_0x8005, \lvlmode + addvar VAR_0x8005, 1 + special CallApprenticeFunction + .endm + + .macro apprentice_answeredquestion + setvar VAR_0x8004, APPRENTICE_FUNC_ANSWERED_QUESTION + special CallApprenticeFunction + .endm + + .macro apprentice_menu which:req + setvar VAR_0x8004, APPRENTICE_FUNC_MENU + setvar VAR_0x8005, \which + special CallApprenticeFunction + waitstate + .endm + + .macro apprentice_shufflespecies + setvar VAR_0x8004, APPRENTICE_FUNC_SHUFFLE_SPECIES + special CallApprenticeFunction + .endm + + .macro apprentice_randomizequestions + setvar VAR_0x8004, APPRENTICE_FUNC_RANDOMIZE_QUESTIONS + special CallApprenticeFunction + .endm + + .macro apprentice_msg waitbuttonpress:req, which:req + setvar VAR_0x8004, APPRENTICE_FUNC_PRINT_MSG + setvar VAR_0x8005, \waitbuttonpress + setvar VAR_0x8006, \which + special CallApprenticeFunction + waitstate + .endm + + .macro apprentice_reset + setvar VAR_0x8004, APPRENTICE_FUNC_RESET + special CallApprenticeFunction + .endm + + .macro apprentice_shouldcheckgone + setvar VAR_0x8004, APPRENTICE_FUNC_CHECK_GONE + special CallApprenticeFunction + .endm + + .macro apprentice_getquestion + setvar VAR_0x8004, APPRENTICE_FUNC_GET_QUESTION + special CallApprenticeFunction + .endm + + .macro apprentice_getnumpartymons + setvar VAR_0x8004, APPRENTICE_FUNC_GET_NUM_PARTY_MONS + special CallApprenticeFunction + .endm + + .macro apprentice_setpartymon slot:req + copyvar VAR_0x8006, \slot + setvar VAR_0x8004, APPRENTICE_FUNC_SET_PARTY_MON + special CallApprenticeFunction + .endm + + .macro apprentice_initquestion which:req + setvar VAR_0x8004, APPRENTICE_FUNC_INIT_QUESTION_DATA + setvar VAR_0x8005, \which + special CallApprenticeFunction + .endm + + .macro apprentice_freequestion + setvar VAR_0x8004, APPRENTICE_FUNC_FREE_QUESTION_DATA + special CallApprenticeFunction + .endm + + .macro apprentice_buff whichstringvar:req, tobuff:req + setvar VAR_0x8004, APPRENTICE_FUNC_BUFFER_STRING + setvar VAR_0x8005, \whichstringvar + .if \tobuff >= VARS_START + copyvar VAR_0x8006, \tobuff + .else + setvar VAR_0x8006, \tobuff + .endif + special CallApprenticeFunction + .endm + + .macro apprentice_setmove + setvar VAR_0x8004, APPRENTICE_FUNC_SET_MOVE + special CallApprenticeFunction + .endm + + .macro apprentice_setleadmon monId:req + copyvar VAR_0x8005, \monId + setvar VAR_0x8004, APPRENTICE_FUNC_SET_LEAD_MON + special CallApprenticeFunction + .endm + + .macro apprentice_openbag + setvar VAR_0x8004, APPRENTICE_FUNC_OPEN_BAG + special CallApprenticeFunction + waitstate + .endm + + .macro apprentice_trysetitem + setvar VAR_0x8004, APPRENTICE_FUNC_TRY_SET_HELD_ITEM + special CallApprenticeFunction + .endm + + .macro apprentice_save + setvar VAR_0x8004, APPRENTICE_FUNC_SAVE + special CallApprenticeFunction + .endm + + .macro apprentice_setgfx + setvar VAR_0x8004, APPRENTICE_FUNC_SET_GFX + special CallApprenticeFunction + .endm + + .macro apprentice_shouldleave + setvar VAR_0x8004, APPRENTICE_FUNC_SHOULD_LEAVE + special CallApprenticeFunction + .endm + + .macro apprentice_shiftsaved + setvar VAR_0x8004, APPRENTICE_FUNC_SHIFT_SAVED + special CallApprenticeFunction + .endm diff --git a/asm/macros/battle_frontier/battle_arena.inc b/asm/macros/battle_frontier/battle_arena.inc new file mode 100644 index 000000000..c7294145f --- /dev/null +++ b/asm/macros/battle_frontier/battle_arena.inc @@ -0,0 +1 @@ +@ To be populated with macros for CallBattleArenaFunction diff --git a/asm/macros/battle_frontier/battle_dome.inc b/asm/macros/battle_frontier/battle_dome.inc new file mode 100644 index 000000000..12672ea37 --- /dev/null +++ b/asm/macros/battle_frontier/battle_dome.inc @@ -0,0 +1 @@ +@ To be populated with macros for CallBattleDomeFunction diff --git a/asm/macros/battle_frontier/battle_factory.inc b/asm/macros/battle_frontier/battle_factory.inc new file mode 100644 index 000000000..9a8879df8 --- /dev/null +++ b/asm/macros/battle_frontier/battle_factory.inc @@ -0,0 +1 @@ +@ To be populated with macros for CallBattleFactoryFunction diff --git a/asm/macros/battle_frontier/battle_palace.inc b/asm/macros/battle_frontier/battle_palace.inc new file mode 100644 index 000000000..e9a61c952 --- /dev/null +++ b/asm/macros/battle_frontier/battle_palace.inc @@ -0,0 +1 @@ +@ To be populated with macros for CallBattlePalaceFunction diff --git a/asm/macros/battle_frontier/battle_pike.inc b/asm/macros/battle_frontier/battle_pike.inc new file mode 100644 index 000000000..0f2d2627d --- /dev/null +++ b/asm/macros/battle_frontier/battle_pike.inc @@ -0,0 +1,54 @@ +@ To be populated with macros for CallBattlePikeFunction + + .macro battlepike_getstreak + setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_DATA + setvar VAR_0x8005, 1 + special CallBattlePikeFunction + .endm + + .macro battlepike_setstreak streak:req + setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_DATA + setvar VAR_0x8005, 1 + .if \streak >= VARS_START + copyvar VAR_0x8006, \streak + .else + setvar VAR_0x8006, \streak + .endif + special CallBattlePikeFunction + .endm + + .macro battlepike_isfinalroom + setvar VAR_0x8004, BATTLE_PIKE_FUNC_IS_FINAL_ROOM + special CallBattlePikeFunction + .endm + + .macro battlepike_setroomobjects + setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_ROOM_OBJECTS + special CallBattlePikeFunction + .endm + + .macro battlepike_getroomtype + setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_TYPE + special CallBattlePikeFunction + .endm + + .macro battlepike_setnextroom + setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_ROOM_TYPE + special CallBattlePikeFunction + .endm + + .macro battlepike_gethint + setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_TYPE_HINT + special CallBattlePikeFunction + .endm + + .macro battlepike_nohealing set:req + setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_HEALING_ROOMS_DISABLED + setvar VAR_0x8005, \set + special CallBattlePikeFunction + .endm + + .macro battlepike_ispartyfullhealth + setvar VAR_0x8004, BATTLE_PIKE_FUNC_IS_PARTY_FULL_HEALTH + special CallBattlePikeFunction + .endm diff --git a/asm/macros/battle_frontier/battle_pyramid.inc b/asm/macros/battle_frontier/battle_pyramid.inc new file mode 100644 index 000000000..e23a819c0 --- /dev/null +++ b/asm/macros/battle_frontier/battle_pyramid.inc @@ -0,0 +1 @@ +@ To be populated with macros for CallBattlePyramidFunction diff --git a/asm/macros/battle_frontier/battle_tower.inc b/asm/macros/battle_frontier/battle_tower.inc new file mode 100644 index 000000000..e9f8c9293 --- /dev/null +++ b/asm/macros/battle_frontier/battle_tower.inc @@ -0,0 +1,7 @@ +@ To be populated with macros for CallBattleTowerFunc + + .macro battletower_getstreak + setvar VAR_0x8004, BATTLE_TOWER_FUNC_1 + setvar VAR_0x8005, 1 + special CallBattleTowerFunc + .endm diff --git a/asm/macros/battle_frontier/frontier_util.inc b/asm/macros/battle_frontier/frontier_util.inc new file mode 100644 index 000000000..def5b4d1c --- /dev/null +++ b/asm/macros/battle_frontier/frontier_util.inc @@ -0,0 +1,153 @@ + @ Get the status (CHALLENGE_STATUS_*) of the current challenge and store the result in VAR_TEMP_0 + .macro frontier_getstatus + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_STATUS + special CallFrontierUtilFunc + .endm + + @ Get the value of some FRONTIER_DATA_*. See GetFrontierData for the data types that can be retrieved + .macro frontier_get data:req + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA + setvar VAR_0x8005, \data + special CallFrontierUtilFunc + .endm + + @ Set the value of some FRONTIER_DATA_*. Some data types do not need a val argument because the value is set directly from somewhere else. See SetFrontierData for the data types that can be set + .macro frontier_set data:req, val=0xFFFF + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA + setvar VAR_0x8005, \data + .if \val == 0xFFFF + @ no value provided + .elseif \val >= VARS_START + copyvar VAR_0x8006, \val + .else + setvar VAR_0x8006, \val + .endif + special CallFrontierUtilFunc + .endm + + @ Load the selected mons into gSelectedOrderFromParty and reduce the players party to these mons + .macro frontier_setpartyorder partySize:req + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_PARTY_ORDER + setvar VAR_0x8005, \partySize + special CallFrontierUtilFunc + .endm + + @ Performs a soft reset + .macro frontier_reset + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SOFT_RESET + special CallFrontierUtilFunc + .endm + + @ Loads gBattleFrontierTrainers into gFacilityTrainers + .macro frontier_settrainers + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_TRAINERS + special CallFrontierUtilFunc + .endm + + @ Sets the selected party mons in the saveblock + .macro frontier_saveparty + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SAVE_PARTY + special CallFrontierUtilFunc + .endm + + @ Shows the results window for the given facility and mode. Facilities with only 1 mode dont provide the mode argument + .macro frontier_results facility:req, mode=0xFF + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW + setvar VAR_0x8005, \facility + .if \mode != 0xFF + setvar VAR_0x8006, \mode + .endif + special CallFrontierUtilFunc + .endm + + @ Checks if the Battle Frontier TV special should air, and if so attempts to set it up + .macro frontier_checkairshow + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_CHECK_AIR_TV_SHOW + special CallFrontierUtilFunc + .endm + + @ Get the status of the Frontier Brain (Not ready, Silver/Gold streak before symbols, Silver/Gold streak after symbols) + .macro frontier_getbrainstatus + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_BRAIN_STATUS + special CallFrontierUtilFunc + .endm + + @ TRUE if the opponent is a Frontier Brain, FALSE otherwise + .macro frontier_isbrain + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_IS_BRAIN + special CallFrontierUtilFunc + .endm + + @ Awards battle points depending on the current challenge + .macro frontier_givepoints + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_BATTLE_POINTS + special CallFrontierUtilFunc + .endm + + @ Returns 0-2 for the number of facility symbols the player has + .macro frontier_getsymbols + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS + special CallFrontierUtilFunc + .endm + + @ Awards a frontier symbol depending on the current challenge + .macro frontier_givesymbol + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL + special CallFrontierUtilFunc + .endm + + @ TRUE if the given battleType is set in gBattleTypeFlags, FALSE otherwise + .macro frontier_isbattletype battleType:req + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_CHECK_BATTLE_TYPE + setvar VAR_0x8005, \battleType + special CallFrontierUtilFunc + .endm + + @ TRUE if there are insufficient eligible party mons to participate in the challenge, and buffers caught ineligible species to STR_VAR_1. FALSE otherwise. The return value is stored in VAR_0x8004 instead, and the current level mode is expected to be in VAR_RESULT + .macro frontier_checkineligible + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_CHECK_INELIGIBLE + special CallFrontierUtilFunc + .endm + + @ Validates the visiting E-Reader trainer. 0 if valid, 1 if not + .macro frontier_checkvisittrainer + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_CHECK_VISIT_TRAINER + special CallFrontierUtilFunc + .endm + + @ Increments the current win streak by 1 + .macro frontier_incrementstreak + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_INCREMENT_STREAK + special CallFrontierUtilFunc + .endm + + @ Resets the party held items to what they were upon entering the challenge + .macro frontier_restorehelditems + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESTORE_HELD_ITEMS + special CallFrontierUtilFunc + .endm + + @ Move the recorded battle to save data + .macro frontier_savebattle + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SAVE_BATTLE + special CallFrontierUtilFunc + .endm + + @ Buffer the name of gTrainerBattleOpponent_A in STR_VAR_1 (0) or STR_VAR_2 (1) + .macro frontier_gettrainername stringVar:req + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_BUFFER_TRAINER_NAME + setvar VAR_0x8005, \stringVar + special CallFrontierUtilFunc + .endm + + @ If any moves were copied using Sketch during the challenge then restore them to Sketch + .macro frontier_resetsketch + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESET_SKETCH_MOVES + special CallFrontierUtilFunc + .endm + + @ Set the object event gfx of the Frontier Brain for the current facility + .macro frontier_setbrainobj + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_BRAIN_OBJECT + special CallFrontierUtilFunc + .endm diff --git a/asm/macros/battle_tent.inc b/asm/macros/battle_tent.inc new file mode 100644 index 000000000..9a304475b --- /dev/null +++ b/asm/macros/battle_tent.inc @@ -0,0 +1 @@ +@ To be populated with macros for CallVerdanturfTentFunction, CallFallarborTentFunction, and CallSlateportTentFunction diff --git a/asm/macros/trainer_hill.inc b/asm/macros/trainer_hill.inc new file mode 100644 index 000000000..7ea1c77f6 --- /dev/null +++ b/asm/macros/trainer_hill.inc @@ -0,0 +1,92 @@ +@ TODO: These need to have description comment + + .macro trainerhill_start + setvar VAR_0x8004, TRAINER_HILL_FUNC_START + special CallTrainerHillFunction + .endm + + .macro trainerhill_getownerstate + setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_OWNER_STATE + special CallTrainerHillFunction + .endm + + .macro trainerhill_giveprize + setvar VAR_0x8004, TRAINER_HILL_FUNC_GIVE_PRIZE + special CallTrainerHillFunction + .endm + + .macro trainerhill_finaltime + setvar VAR_0x8004, TRAINER_HILL_FUNC_CHECK_FINAL_TIME + special CallTrainerHillFunction + .endm + + .macro trainerhill_resumetimer + setvar VAR_0x8004, TRAINER_HILL_FUNC_RESUME_TIMER + special CallTrainerHillFunction + .endm + + .macro trainerhill_lost + setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_LOST + special CallTrainerHillFunction + .endm + + .macro trainerhill_getstatus + setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS + special CallTrainerHillFunction + .endm + + .macro trainerhill_gettime + setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_CHALLENGE_TIME + special CallTrainerHillFunction + .endm + + .macro trainerhill_allfloorsused + setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_ALL_FLOORS_USED + special CallTrainerHillFunction + .endm + + .macro trainerhill_clearresult + setvar VAR_0x8004, TRAINER_HILL_FUNC_CLEAR_RESULT + special CallTrainerHillFunction + .endm + + .macro trainerhill_inchallenge + setvar VAR_0x8004, TRAINER_HILL_FUNC_IN_CHALLENGE + special CallTrainerHillFunction + .endm + + .macro trainerhill_postbattletext + setvar VAR_0x8004, TRAINER_HILL_FUNC_POST_BATTLE_TEXT + special CallTrainerHillFunction + .endm + + .macro trainerhill_settrainerflags + setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_ALL_TRAINER_FLAGS + special CallTrainerHillFunction + .endm + + .macro trainerhill_getsaved + setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_GAME_SAVED + special CallTrainerHillFunction + .endm + + .macro trainerhill_setsaved + setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_GAME_SAVED + special CallTrainerHillFunction + .endm + + .macro trainerhill_clearsaved + setvar VAR_0x8004, TRAINER_HILL_FUNC_CLEAR_GAME_SAVED + special CallTrainerHillFunction + .endm + + .macro trainerhill_getwon + setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_WON + special CallTrainerHillFunction + .endm + + .macro trainerhill_settag tag:req + setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_TAG + copyvar VAR_0x8005, \tag + special CallTrainerHillFunction + .endm diff --git a/common_syms/apprentice.txt b/common_syms/apprentice.txt index e35133ecc..0d3569dcb 100644 --- a/common_syms/apprentice.txt +++ b/common_syms/apprentice.txt @@ -1,3 +1,3 @@ -gUnknown_030062EC -gUnknown_030062F0 -gUnknown_030062F4 +gApprenticePartyMovesData +gApprenticeQuestionData +gApprenticeFunc diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index b3feb4f43..fd1ded459 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -1657,9 +1657,9 @@ Move_DEFENSE_CURL: loadspritegfx ANIM_TAG_ECLIPSING_ORB loopsewithpan SE_W161, SOUND_PAN_ATTACKER, 18, 3 createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_ATTACKER, 0 - createvisualtask sub_815B338, 5 + createvisualtask AnimTask_DefenseCurlDeformMon, 5 waitforvisualfinish - createsprite gUnknown_085CE338, ANIM_ATTACKER, 2, 0, 6, 0, 1 + createsprite gEclipsingOrbSpriteTemplate, ANIM_ATTACKER, 2, 0, 6, 0, 1 waitforvisualfinish createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_ATTACKER, 1 waitforvisualfinish @@ -2086,7 +2086,7 @@ Move_MEAN_LOOK: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 16, RGB_BLACK loopsewithpan SE_W109, SOUND_PAN_TARGET, 15, 4 waitplaysewithpan SE_W043, SOUND_PAN_TARGET, 0x55 - createsprite gUnknown_085CE104, ANIM_ATTACKER, 2 + createsprite gMeanLookEyeSpriteTemplate, ANIM_ATTACKER, 2 delay 120 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 16, 0, RGB_BLACK delay 30 @@ -2264,23 +2264,23 @@ Move_SMOKESCREEN: loadspritegfx ANIM_TAG_BLACK_SMOKE loadspritegfx ANIM_TAG_BLACK_BALL playsewithpan SE_W104, SOUND_PAN_ATTACKER - createsprite gUnknown_085CE050, ANIM_TARGET, 2, 20, 0, 0, 0, 35, -25 + createsprite gBlackBallSpriteTemplate, ANIM_TARGET, 2, 20, 0, 0, 0, 35, -25 waitforvisualfinish - createvisualtask sub_815A160, 2 + createvisualtask AnimTask_SmokescreenImpact, 2 delay 2 playsewithpan SE_W028, SOUND_PAN_TARGET - createsprite gUnknown_085CE038, ANIM_TARGET, 4, 0, -12, 104, 0, 75 - createsprite gUnknown_085CE038, ANIM_TARGET, 4, 0, -12, 72, 1, 75 - createsprite gUnknown_085CE038, ANIM_TARGET, 4, 0, -6, 56, 1, 75 - createsprite gUnknown_085CE038, ANIM_TARGET, 4, 0, -6, 88, 0, 75 - createsprite gUnknown_085CE038, ANIM_TARGET, 4, 0, 0, 56, 0, 75 - createsprite gUnknown_085CE038, ANIM_TARGET, 4, 0, 0, 88, 1, 75 - createsprite gUnknown_085CE038, ANIM_TARGET, 4, 0, 6, 72, 0, 75 - createsprite gUnknown_085CE038, ANIM_TARGET, 4, 0, 6, 104, 1, 75 - createsprite gUnknown_085CE038, ANIM_TARGET, 4, 0, 12, 72, 0, 75 - createsprite gUnknown_085CE038, ANIM_TARGET, 4, 0, 12, 56, 1, 75 - createsprite gUnknown_085CE038, ANIM_TARGET, 4, 0, 18, 80, 0, 75 - createsprite gUnknown_085CE038, ANIM_TARGET, 4, 0, 18, 72, 1, 75 + createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, -12, 104, 0, 75 + createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, -12, 72, 1, 75 + createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, -6, 56, 1, 75 + createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, -6, 88, 0, 75 + createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, 0, 56, 0, 75 + createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, 0, 88, 1, 75 + createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, 6, 72, 0, 75 + createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, 6, 104, 1, 75 + createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, 12, 72, 0, 75 + createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, 12, 56, 1, 75 + createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, 18, 80, 0, 75 + createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, 18, 72, 1, 75 waitforvisualfinish end @@ -3340,8 +3340,8 @@ Move_RAPID_SPIN: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_RAPID_SPIN monbg ANIM_ATTACKER - createsprite gUnknown_085CE288, ANIM_ATTACKER, 2, 0, 0, 32, -32, 40, -2 - createvisualtask sub_815ADB0, 2, 0, 2, 0 + createsprite gRapidSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 32, -32, 40, -2 + createvisualtask AnimTask_RapinSpinMonElevation, 2, 0, 2, 0 loopsewithpan SE_W013B, SOUND_PAN_ATTACKER, 8, 4 waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 2 @@ -3349,7 +3349,7 @@ Move_RAPID_SPIN: playsewithpan SE_W003, SOUND_PAN_TARGET waitforvisualfinish delay 8 - createvisualtask sub_815ADB0, 2, 0, 2, 1 + createvisualtask AnimTask_RapinSpinMonElevation, 2, 0, 2, 1 loopsewithpan SE_W013B, SOUND_PAN_ATTACKER, 8, 4 waitforvisualfinish clearmonbg ANIM_ATTACKER @@ -3493,7 +3493,7 @@ Move_HAIL: Move_TORMENT: loadspritegfx ANIM_TAG_ANGER loadspritegfx ANIM_TAG_THOUGHT_BUBBLE - createvisualtask sub_815AFF0, 2 + createvisualtask AnimTask_TormentAttacker, 2 waitforvisualfinish createvisualtask AnimTask_BlendMonInAndOut, 2, ANIM_TARGET, RGB_RED, 10, 1, 1 createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, -20, -28 @@ -3906,7 +3906,7 @@ Move_LUSTER_PURGE: loadspritegfx ANIM_TAG_IMPACT fadetobg BG_PSYCHIC waitbgfadeout - createvisualtask sub_815A5C8, 5 + createvisualtask AnimTask_FadeScreenToWhite, 5 waitbgfadein monbg ANIM_ATTACKER setalpha 12, 8 @@ -4623,8 +4623,8 @@ Move_MIND_READER: loadspritegfx ANIM_TAG_ROUND_WHITE_HALO monbg ANIM_DEF_PARTNER playsewithpan SE_W109, SOUND_PAN_TARGET - createsprite gUnknown_085CE07C, ANIM_ATTACKER, 5, 0, 0, 1, 0 - createsprite gUnknown_085CE094, ANIM_ATTACKER, 5 + createsprite gOpeningEyeSpriteTemplate, ANIM_ATTACKER, 5, 0, 0, 1, 0 + createsprite gWhiteHaloSpriteTemplate, ANIM_ATTACKER, 5 delay 40 playsewithpan SE_W043, SOUND_PAN_TARGET createvisualtask sub_8115A04, 2, 1, 1, 2, 0, 10, RGB_BLACK @@ -4634,26 +4634,26 @@ Move_MIND_READER: end MindReaderEffect: - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, 70, 0, 6 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, 40, 40, 6 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, 10, -60, 6 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, -50, -40, 6 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, -40, 40, 6 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, 50, -50, 6 - delay 2 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, 50, -30, 6 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, 60, 10, 6 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, 0, 60, 6 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, 0, -40, 6 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, -60, 20, 6 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, -60, -30, 6 - delay 2 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, -50, 50, 6 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, -60, 20, 6 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, -40, -40, 6 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, 20, -60, 6 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, 50, -50, 6 - createsprite gUnknown_085CE0AC, ANIM_ATTACKER, 4, 35, 40, 6 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, 70, 0, 6 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, 40, 40, 6 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, 10, -60, 6 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, -50, -40, 6 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, -40, 40, 6 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, 50, -50, 6 + delay 2 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, 50, -30, 6 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, 60, 10, 6 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, 0, 60, 6 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, 0, -40, 6 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, -60, 20, 6 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, -60, -30, 6 + delay 2 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, -50, 50, 6 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, -60, 20, 6 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, -40, -40, 6 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, 20, -60, 6 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, 50, -50, 6 + createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, 35, 40, 6 delay 2 return @@ -4912,7 +4912,7 @@ Move_SCRATCH: monbg ANIM_TARGET setalpha 12, 8 playsewithpan SE_W010, SOUND_PAN_TARGET - createsprite gUnknown_085CE020, ANIM_ATTACKER, 2, 0, 0, 1, 0 + createsprite gScratchSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 0 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish clearmonbg ANIM_TARGET @@ -6086,14 +6086,14 @@ Move_SPIKES: monbg ANIM_DEF_PARTNER playsewithpan SE_W026, SOUND_PAN_ATTACKER waitplaysewithpan SE_W030, SOUND_PAN_TARGET, 28 - createsprite gUnknown_085CE11C, ANIM_TARGET, 2, 20, 0, 0, 24, 30 + createsprite gSpikesSpriteTemplate, ANIM_TARGET, 2, 20, 0, 0, 24, 30 delay 10 playsewithpan SE_W026, SOUND_PAN_ATTACKER waitplaysewithpan SE_W030, SOUND_PAN_TARGET, 28 - createsprite gUnknown_085CE11C, ANIM_TARGET, 2, 20, 0, -24, 24, 30 + createsprite gSpikesSpriteTemplate, ANIM_TARGET, 2, 20, 0, -24, 24, 30 delay 10 waitplaysewithpan SE_W030, SOUND_PAN_TARGET, 28 - createsprite gUnknown_085CE11C, ANIM_TARGET, 2, 20, 0, 24, 24, 30 + createsprite gSpikesSpriteTemplate, ANIM_TARGET, 2, 20, 0, 24, 24, 30 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end @@ -6986,7 +6986,7 @@ Move_LEER: monbgprio_28 ANIM_ATTACKER setalpha 8, 8 playsewithpan SE_W043, SOUND_PAN_ATTACKER - createsprite gUnknown_085CE150, ANIM_ATTACKER, 2, 24, -12 + createsprite gLeerSpriteTemplate, ANIM_ATTACKER, 2, 24, -12 createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 10, ANIM_ATTACKER, 1 waitforvisualfinish delay 10 @@ -7915,7 +7915,7 @@ Move_BATON_PASS: loadspritegfx ANIM_TAG_POKEBALL playsewithpan SE_W226, SOUND_PAN_ATTACKER createvisualtask sub_8115A04, 2, 31, 1, 2, 0, 11, RGB(31, 22, 30) - createsprite gUnknown_085CE370, ANIM_ATTACKER, 2 + createsprite gBatonPassPokeballSpriteTemplate, ANIM_ATTACKER, 2 end Move_PERISH_SONG: @@ -7958,26 +7958,26 @@ Move_SLEEP_TALK: loadspritegfx ANIM_TAG_LETTER_Z createvisualtask AnimTask_SwayMon, 5, 0, 4, 4096, 2, ANIM_ATTACKER delay 20 - createsprite gUnknown_085CE190, ANIM_TARGET, 2, 0, 20, 5, -1 + createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -1 playsewithpan SE_W173, SOUND_PAN_ATTACKER delay 6 - createsprite gUnknown_085CE190, ANIM_TARGET, 2, 0, 20, 5, -1 + createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -1 delay 6 - createsprite gUnknown_085CE190, ANIM_TARGET, 2, 0, 20, 5, -1 + createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -1 delay 20 - createsprite gUnknown_085CE190, ANIM_TARGET, 2, 0, 20, 5, -5 + createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -5 playsewithpan SE_W173, SOUND_PAN_ATTACKER delay 6 - createsprite gUnknown_085CE190, ANIM_TARGET, 2, 0, 20, 5, -5 + createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -5 delay 6 - createsprite gUnknown_085CE190, ANIM_TARGET, 2, 0, 20, 5, -5 + createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -5 delay 20 - createsprite gUnknown_085CE190, ANIM_TARGET, 2, 0, 20, 5, -3 + createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -3 playsewithpan SE_W173, SOUND_PAN_ATTACKER delay 6 - createsprite gUnknown_085CE190, ANIM_TARGET, 2, 0, 20, 5, -3 + createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -3 delay 6 - createsprite gUnknown_085CE190, ANIM_TARGET, 2, 0, 20, 5, -3 + createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -3 waitforvisualfinish end @@ -7993,7 +7993,7 @@ Move_HYPER_FANG: goto HyperFangOnPlayer HyperFangContinue: waitbgfadeout - createsprite gUnknown_085CE1DC, ANIM_TARGET, 2 + createsprite gFangSpriteTemplate, ANIM_TARGET, 2 waitbgfadein createvisualtask AnimTask_ShakeMon, 3, ANIM_TARGET, 0, 10, 10, 1 playsewithpan SE_W043, SOUND_PAN_TARGET @@ -8013,8 +8013,8 @@ HyperFangInContest: goto HyperFangContinue Move_TRI_ATTACK: - loadspritegfx ANIM_TAG_TRI_FORCE_TRIANGLE - createsprite gUnknown_085CE2F8, ANIM_TARGET, 2, 16, 0 + loadspritegfx ANIM_TAG_TRI_ATTACK_TRIANGLE + createsprite gTriAttackTriangleSpriteTemplate, ANIM_TARGET, 2, 16, 0 playsewithpan SE_W161, SOUND_PAN_ATTACKER delay 20 playsewithpan SE_W161, SOUND_PAN_ATTACKER @@ -8095,21 +8095,21 @@ Move_WILL_O_WISP: Move_ENCORE: loadspritegfx ANIM_TAG_SPOTLIGHT loadspritegfx ANIM_TAG_TAG_HAND - createvisualtask sub_815ABEC, 2 + createvisualtask AnimTask_CreateSpotlight, 2 createvisualtask sub_8116960, 2, 248, 3, 0, 10, 0 waitforvisualfinish - createsprite gUnknown_085CE22C, ANIM_TARGET, 2, 0, -8 - createsprite gUnknown_085CE244, ANIM_ATTACKER, 2, -2, 0, 0, 0, 9 - createsprite gUnknown_085CE244, ANIM_ATTACKER, 2, 2, 0, 1, 0, 9 - createsprite gUnknown_085CE25C, ANIM_ATTACKER, 3, -2, 0, 0, 0, 9 - createsprite gUnknown_085CE25C, ANIM_ATTACKER, 3, 2, 0, 1, 0, 9 + createsprite gSpotlightSpriteTemplate, ANIM_TARGET, 2, 0, -8 + createsprite gClappingHandSpriteTemplate, ANIM_ATTACKER, 2, -2, 0, 0, 0, 9 + createsprite gClappingHandSpriteTemplate, ANIM_ATTACKER, 2, 2, 0, 1, 0, 9 + createsprite gClappingHand2SpriteTemplate, ANIM_ATTACKER, 3, -2, 0, 0, 0, 9 + createsprite gClappingHand2SpriteTemplate, ANIM_ATTACKER, 3, 2, 0, 1, 0, 9 delay 16 createvisualtask sub_8159244, 5, 223, SOUND_PAN_TARGET createvisualtask AnimTask_SwayMon, 5, 1, 8, 1536, 5, ANIM_TARGET waitforvisualfinish createvisualtask sub_8116960, 2, 248, 3, 10, 0, 1 waitforvisualfinish - createvisualtask sub_815AC8C, 2 + createvisualtask AnimTask_RemoveSpotlight, 2 end Move_TRICK: @@ -8146,7 +8146,7 @@ Move_WISH: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 0, 10, RGB_BLACK waitforvisualfinish panse_27 SE_W115, SOUND_PAN_TARGET, SOUND_PAN_ATTACKER, -3, 0 - createsprite gUnknown_085CE388, ANIM_ATTACKER, 40 + createsprite gWishStarSpriteTemplate, ANIM_ATTACKER, 40 waitforvisualfinish delay 60 loopsewithpan SE_W215, SOUND_PAN_ATTACKER, 16, 3 @@ -8160,7 +8160,7 @@ Move_STOCKPILE: loadspritegfx ANIM_TAG_GRAY_ORB playsewithpan SE_W025, SOUND_PAN_ATTACKER createvisualtask sub_8115A04, 2, 2, 8, 1, 0, 12, RGB_WHITE - createvisualtask sub_815B65C, 5 + createvisualtask AnimTask_StockpileDeformMon, 5 call Stockpile1 call Stockpile1 waitforvisualfinish @@ -8189,7 +8189,7 @@ Move_SPIT_UP: loadspritegfx ANIM_TAG_RED_ORB_2 loadspritegfx ANIM_TAG_IMPACT playsewithpan SE_W036, SOUND_PAN_ATTACKER - createvisualtask sub_815B6B4, 5 + createvisualtask AnimTask_SpitUpDeformMon, 5 createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 8, 2 delay 45 playsewithpan SE_W255, SOUND_PAN_ATTACKER @@ -8236,7 +8236,7 @@ Move_SWALLOW: loadspritegfx ANIM_TAG_BLUE_ORB loadspritegfx ANIM_TAG_BLUE_STAR playsewithpan SE_W036, SOUND_PAN_ATTACKER - createvisualtask sub_815B778, 5 + createvisualtask AnimTask_SwallowDeformMon, 5 createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 8, 2 delay 38 playsewithpan SE_W255, SOUND_PAN_ATTACKER @@ -8249,15 +8249,15 @@ SwallowContinue: call HealingEffect end SwallowEffect: - createsprite gUnknown_085CE418, ANIM_ATTACKER, 2, 0, -8 + createsprite gSwallowBlueOrbSpriteTemplate, ANIM_ATTACKER, 2, 0, -8 delay 1 - createsprite gUnknown_085CE418, ANIM_ATTACKER, 2, -24, -8 + createsprite gSwallowBlueOrbSpriteTemplate, ANIM_ATTACKER, 2, -24, -8 delay 1 - createsprite gUnknown_085CE418, ANIM_ATTACKER, 2, 16, -8 + createsprite gSwallowBlueOrbSpriteTemplate, ANIM_ATTACKER, 2, 16, -8 delay 1 - createsprite gUnknown_085CE418, ANIM_ATTACKER, 2, -16, -8 + createsprite gSwallowBlueOrbSpriteTemplate, ANIM_ATTACKER, 2, -16, -8 delay 1 - createsprite gUnknown_085CE418, ANIM_ATTACKER, 2, 24, -8 + createsprite gSwallowBlueOrbSpriteTemplate, ANIM_ATTACKER, 2, 24, -8 delay 1 return SwallowGood: @@ -8272,7 +8272,7 @@ Move_TRANSFORM: monbg ANIM_ATTACKER playsewithpan SE_W100, SOUND_PAN_ATTACKER waitplaysewithpan SE_W107, SOUND_PAN_ATTACKER, 48 - createvisualtask sub_815B7D0, 2, 0 + createvisualtask AnimTask_TransformMon, 2, 0 waitforvisualfinish clearmonbg ANIM_ATTACKER end @@ -8280,7 +8280,7 @@ Move_TRANSFORM: Move_MORNING_SUN: loadspritegfx ANIM_TAG_GREEN_STAR loadspritegfx ANIM_TAG_BLUE_STAR - createvisualtask sub_815BB84, 5 + createvisualtask AnimTask_MorningSunLightBeam, 5 delay 8 createvisualtask sub_8116620, 10, 0x781, 8, 0, 12, RGB_WHITE delay 14 @@ -8305,7 +8305,7 @@ Move_MORNING_SUN: call HealingEffect end MorningSun1: - createsprite gUnknown_085CE48C, ANIM_ATTACKER, 2, 30, 640 + createsprite gGreenStarSpriteTemplate, ANIM_ATTACKER, 2, 30, 640 delay 5 return @@ -8401,7 +8401,7 @@ Move_FLATTER: loadspritegfx ANIM_TAG_SPOTLIGHT loadspritegfx ANIM_TAG_CONFETTI createvisualtask sub_8159244, 5, 223, SOUND_PAN_TARGET - createvisualtask sub_815ABEC, 2 + createvisualtask AnimTask_CreateSpotlight, 2 createvisualtask sub_8116960, 2, 248, 3, 0, 10, 0 waitforvisualfinish createsprite gFlatterSpotlightSpriteTemplate, ANIM_TARGET, 2, 0, -8, 80 @@ -8435,7 +8435,7 @@ Move_FLATTER: waitforvisualfinish createvisualtask sub_8116960, 2, 248, 3, 10, 0, 1 waitforvisualfinish - createvisualtask sub_815AC8C, 2 + createvisualtask AnimTask_RemoveSpotlight, 2 end CreateFlatterConfetti: createsprite gFlatterConfettiSpriteTemplate, ANIM_ATTACKER, 40, ANIM_ATTACKER @@ -8768,7 +8768,7 @@ Move_POISON_FANG: loadspritegfx ANIM_TAG_FANG_ATTACK loadspritegfx ANIM_TAG_POISON_BUBBLE playsewithpan SE_W044, SOUND_PAN_TARGET - createsprite gUnknown_085CE1DC, ANIM_TARGET, 2 + createsprite gFangSpriteTemplate, ANIM_TARGET, 2 delay 10 createvisualtask AnimTask_ShakeMon, 3, ANIM_TARGET, 3, 0, 10, 1 waitforvisualfinish @@ -9523,7 +9523,7 @@ Move_PSYCHO_BOOST: monbg ANIM_ATK_PARTNER fadetobg BG_PSYCHIC waitbgfadeout - createvisualtask sub_815A5C8, 5 + createvisualtask AnimTask_FadeScreenToWhite, 5 waitbgfadein delay 6 createvisualtask sub_8115A04, 2, 1, 2, 8, 0, 10, RGB_BLACK @@ -10154,7 +10154,7 @@ ConfusionEffect: SetPsychicBackground: fadetobg BG_PSYCHIC waitbgfadeout - createvisualtask sub_815A504, 5 + createvisualtask AnimTask_SetPsychicBackground, 5 waitbgfadein return @@ -10292,19 +10292,19 @@ Status_Nightmare: end General_CastformChange: - createvisualtask sub_815BB18, 2 + createvisualtask AnimTask_IsMonInvisible, 2 jumpreteq 1, AnimScript_82D7ECA goto AnimScript_82D7EB2 AnimScript_82D7EB2: monbg ANIM_ATTACKER playsewithpan SE_W100, SOUND_PAN_ATTACKER waitplaysewithpan SE_W107, SOUND_PAN_ATTACKER, 48 - createvisualtask sub_815B7D0, 2, 1 + createvisualtask AnimTask_TransformMon, 2, 1 waitforvisualfinish clearmonbg ANIM_ATTACKER end AnimScript_82D7ECA: - createvisualtask sub_815BB58, 2, 1 + createvisualtask AnimTask_CastformGfxChange, 2, 1 end General_StatsChange: @@ -10589,7 +10589,7 @@ General_DoomDesireHit: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 0, 16, RGB_WHITE waitforvisualfinish delay 10 - createvisualtask sub_815C0A4, 5 + createvisualtask AnimTask_DoomDesireLightBeam, 5 delay 9 playsewithpan SE_W109, SOUND_PAN_ATTACKER delay 9 diff --git a/data/event_scripts.s b/data/event_scripts.s index a98a53a1a..be94906ce 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -1,4 +1,5 @@ #include "constants/global.h" +#include "constants/apprentice.h" #include "constants/battle.h" #include "constants/battle_frontier.h" #include "constants/battle_pike.h" @@ -503,9 +504,9 @@ gStdScripts_End:: @ 81DC2CC .include "data/maps/BattleFrontier_BattlePikeLobby/scripts.inc" .include "data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc" .include "data/maps/BattleFrontier_BattlePikeThreePathRoom/scripts.inc" - .include "data/maps/BattleFrontier_BattlePikeRandomRoom1/scripts.inc" - .include "data/maps/BattleFrontier_BattlePikeRandomRoom2/scripts.inc" - .include "data/maps/BattleFrontier_BattlePikeRandomRoom3/scripts.inc" + .include "data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc" + .include "data/maps/BattleFrontier_BattlePikeRoomFinal/scripts.inc" + .include "data/maps/BattleFrontier_BattlePikeRoomWildMons/scripts.inc" .include "data/maps/BattleFrontier_RankingHall/scripts.inc" .include "data/maps/BattleFrontier_Lounge1/scripts.inc" .include "data/maps/BattleFrontier_ExchangeServiceCorner/scripts.inc" @@ -1111,6 +1112,7 @@ Common_EventScript_LegendaryFlewAway:: @ 8273776 .include "data/scripts/lilycove_lady.inc" .include "data/text/match_call.inc" .include "data/scripts/apprentice.inc" + .include "data/text/apprentice.inc" .include "data/text/battle_dome.inc" .include "data/scripts/battle_pike.inc" .include "data/text/blend_master.inc" diff --git a/data/layouts/BattleFrontier_BattlePikeRandomRoom1/border.bin b/data/layouts/BattleFrontier_BattlePikeRoomFinal/border.bin Binary files differindex f496f458e..f496f458e 100644 --- a/data/layouts/BattleFrontier_BattlePikeRandomRoom1/border.bin +++ b/data/layouts/BattleFrontier_BattlePikeRoomFinal/border.bin diff --git a/data/layouts/BattleFrontier_BattlePikeRandomRoom2/map.bin b/data/layouts/BattleFrontier_BattlePikeRoomFinal/map.bin index 27a6e52aa..27a6e52aa 100644 --- a/data/layouts/BattleFrontier_BattlePikeRandomRoom2/map.bin +++ b/data/layouts/BattleFrontier_BattlePikeRoomFinal/map.bin diff --git a/data/layouts/BattleFrontier_BattlePikeRandomRoom2/border.bin b/data/layouts/BattleFrontier_BattlePikeRoomNormal/border.bin Binary files differindex f496f458e..f496f458e 100644 --- a/data/layouts/BattleFrontier_BattlePikeRandomRoom2/border.bin +++ b/data/layouts/BattleFrontier_BattlePikeRoomNormal/border.bin diff --git a/data/layouts/BattleFrontier_BattlePikeRandomRoom1/map.bin b/data/layouts/BattleFrontier_BattlePikeRoomNormal/map.bin index 142150cbe..142150cbe 100644 --- a/data/layouts/BattleFrontier_BattlePikeRandomRoom1/map.bin +++ b/data/layouts/BattleFrontier_BattlePikeRoomNormal/map.bin diff --git a/data/layouts/BattleFrontier_BattlePikeRandomRoom3/border.bin b/data/layouts/BattleFrontier_BattlePikeRoomWildMons/border.bin Binary files differindex f496f458e..f496f458e 100644 --- a/data/layouts/BattleFrontier_BattlePikeRandomRoom3/border.bin +++ b/data/layouts/BattleFrontier_BattlePikeRoomWildMons/border.bin diff --git a/data/layouts/BattleFrontier_BattlePikeRandomRoom3/map.bin b/data/layouts/BattleFrontier_BattlePikeRoomWildMons/map.bin index 8ce7f1c37..8ce7f1c37 100644 --- a/data/layouts/BattleFrontier_BattlePikeRandomRoom3/map.bin +++ b/data/layouts/BattleFrontier_BattlePikeRoomWildMons/map.bin diff --git a/data/layouts/layouts.json b/data/layouts/layouts.json index 1384b2e2e..26ffbd3ae 100644 --- a/data/layouts/layouts.json +++ b/data/layouts/layouts.json @@ -3512,24 +3512,24 @@ "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeThreePathRoom/map.bin" }, { - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1", - "name": "BattleFrontier_BattlePikeRandomRoom1_Layout", + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL", + "name": "BattleFrontier_BattlePikeRoomNormal_Layout", "width": 9, "height": 8, "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePike", - "border_filepath": "data/layouts/BattleFrontier_BattlePikeRandomRoom1/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRandomRoom1/map.bin" + "border_filepath": "data/layouts/BattleFrontier_BattlePikeRoomNormal/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRoomNormal/map.bin" }, { - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM2", - "name": "BattleFrontier_BattlePikeRandomRoom2_Layout", + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_FINAL", + "name": "BattleFrontier_BattlePikeRoomFinal_Layout", "width": 5, "height": 8, "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePike", - "border_filepath": "data/layouts/BattleFrontier_BattlePikeRandomRoom2/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRandomRoom2/map.bin" + "border_filepath": "data/layouts/BattleFrontier_BattlePikeRoomFinal/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRoomFinal/map.bin" }, { "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY", @@ -3572,14 +3572,14 @@ "blockdata_filepath": "data/layouts/SootopolisCity_LegendsBattle/map.bin" }, { - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3", - "name": "BattleFrontier_BattlePikeRandomRoom3_Layout", + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS", + "name": "BattleFrontier_BattlePikeRoomWildMons_Layout", "width": 9, "height": 20, "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePike", - "border_filepath": "data/layouts/BattleFrontier_BattlePikeRandomRoom3/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRandomRoom3/map.bin" + "border_filepath": "data/layouts/BattleFrontier_BattlePikeRoomWildMons/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRoomWildMons/map.bin" }, { "id": "LAYOUT_UNKNOWN_084693AC", diff --git a/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc index c598ec3d8..60f4428c9 100644 --- a/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc @@ -10,8 +10,7 @@ BattleFrontier_BattleArenaBattleRoom_MapScript1_25749C: @ 825749C end BattleFrontier_BattleArenaBattleRoom_MapScript1_2574A0: @ 82574A0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_FRONTIER_TRAINERS - special CallFrontierUtilFunc + frontier_settrainers call BattleFrontier_BattleArenaBattleRoom_EventScript_2574AE end @@ -40,18 +39,13 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_2574DC:: @ 82574DC showobjectat 8, MAP_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM applymovement 8, BattleFrontier_BattleArenaBattleRoom_Movement_257BE2 waitmovement 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 0 goto_if_eq BattleFrontier_BattleArenaBattleRoom_EventScript_25752E applymovement 5, BattleFrontier_BattleArenaBattleRoom_Movement_257C08 applymovement 8, BattleFrontier_BattleArenaBattleRoom_Movement_257BEB setvar VAR_TEMP_2, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 6 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_6, 1 goto BattleFrontier_BattleArenaBattleRoom_EventScript_2576B0 BattleFrontier_BattleArenaBattleRoom_EventScript_25752E:: @ 825752E @@ -109,23 +103,15 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_2575DB:: @ 82575DB msgbox BattleFrontier_BattleArenaBattleRoom_Text_257CCE, MSGBOX_DEFAULT BattleFrontier_BattleArenaBattleRoom_EventScript_257615:: @ 8257615 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST warp MAP_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY, 255, 7, 8 waitstate BattleFrontier_BattleArenaBattleRoom_EventScript_257630:: @ 8257630 call BattleFrontier_BattleArenaBattleRoom_EventScript_257BA9 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 2 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT switch VAR_RESULT case 7, BattleFrontier_BattleArenaBattleRoom_EventScript_257852 applymovement 8, BattleFrontier_BattleArenaBattleRoom_Movement_257BE7 @@ -138,22 +124,17 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257630:: @ 8257630 msgbox BattleFrontier_BattleArenaBattleRoom_Text_257CE9, MSGBOX_DEFAULT special LoadPlayerParty special SavePlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc + frontier_setpartyorder FRONTIER_PARTY_SIZE playfanfare MUS_ME_ASA waitfanfare special HealPlayerParty BattleFrontier_BattleArenaBattleRoom_EventScript_2576B0:: @ 82576B0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_9 - special CallFrontierUtilFunc + frontier_getbrainstatus copyvar VAR_TEMP_F, VAR_RESULT - compare VAR_RESULT, 0 + compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY goto_if_ne BattleFrontier_BattleArenaBattleRoom_EventScript_2578BC - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 1 call_if_eq BattleFrontier_BattleArenaBattleRoom_EventScript_257870 compare VAR_RESULT, 2 @@ -195,7 +176,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_25779E:: @ 825779E case MULTI_B_PRESSED, BattleFrontier_BattleArenaBattleRoom_EventScript_2576B0 BattleFrontier_BattleArenaBattleRoom_EventScript_2577D0:: @ 82577D0 - call BattleFrontier_BattleArenaBattleRoom_EventScript_23E8B4 + call BattleFrontier_EventScript_SaveBattle goto BattleFrontier_BattleArenaBattleRoom_EventScript_2576B0 BattleFrontier_BattleArenaBattleRoom_EventScript_2577DA:: @ 82577DA @@ -224,10 +205,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_25783A:: @ 825783A BattleFrontier_BattleArenaBattleRoom_EventScript_257852:: @ 8257852 delay 60 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 3 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON warp MAP_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY, 255, 7, 8 waitstate @@ -270,8 +248,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_25789A:: @ 825789A playse SE_SAVE waitse fadescreen 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SOFT_RESET - special CallFrontierUtilFunc + frontier_reset end BattleFrontier_BattleArenaBattleRoom_EventScript_2578BC:: @ 82578BC @@ -303,7 +280,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_25792B:: @ 825792B case MULTI_B_PRESSED, BattleFrontier_BattleArenaBattleRoom_EventScript_2578D4 BattleFrontier_BattleArenaBattleRoom_EventScript_257961:: @ 8257961 - call BattleFrontier_BattleArenaBattleRoom_EventScript_242170 + call BattleFrontier_EventScript_SetBrainObjectGfx applymovement 8, BattleFrontier_BattleArenaBattleRoom_Movement_257BED applymovement 5, BattleFrontier_BattleArenaBattleRoom_Movement_257BED waitmovement 0 @@ -327,19 +304,15 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257961:: @ 8257961 applymovement 7, BattleFrontier_BattleArenaBattleRoom_Movement_257BF2 waitmovement 0 switch VAR_TEMP_F - case 2, BattleFrontier_BattleArenaBattleRoom_EventScript_257AA5 - case 3, BattleFrontier_BattleArenaBattleRoom_EventScript_257A3F - case 4, BattleFrontier_BattleArenaBattleRoom_EventScript_257AF8 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleArenaBattleRoom_EventScript_257AA5 + case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleArenaBattleRoom_EventScript_257A3F + case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleArenaBattleRoom_EventScript_257AF8 + frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH + compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattleArenaBattleRoom_EventScript_257A3F msgbox BattleFrontier_BattleArenaBattleRoom_Text_25801C, MSGBOX_DEFAULT closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH applymovement 7, BattleFrontier_BattleArenaBattleRoom_Movement_257C30 waitmovement 0 msgbox BattleFrontier_BattleArenaBattleRoom_Text_25804E, MSGBOX_DEFAULT @@ -357,8 +330,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257A3F:: @ 8257A3F BattleFrontier_BattleArenaBattleRoom_EventScript_257A5C:: @ 8257A5C call BattleFrontier_BattleArenaBattleRoom_EventScript_257BA9 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS - special CallFrontierUtilFunc + frontier_getsymbols compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattleArenaBattleRoom_EventScript_257852 applymovement 7, BattleFrontier_BattleArenaBattleRoom_Movement_257BF1 @@ -368,22 +340,17 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257A5C:: @ 8257A5C message BattleFrontier_BattleArenaBattleRoom_Text_25819C waitmessage waitfanfare - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL - special CallFrontierUtilFunc + frontier_givesymbol msgbox BattleFrontier_BattleArenaBattleRoom_Text_2581CF, MSGBOX_DEFAULT goto BattleFrontier_BattleArenaBattleRoom_EventScript_257852 BattleFrontier_BattleArenaBattleRoom_EventScript_257AA5:: @ 8257AA5 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH + compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattleArenaBattleRoom_EventScript_257AF8 msgbox BattleFrontier_BattleArenaBattleRoom_Text_258213, MSGBOX_DEFAULT closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH applymovement 7, BattleFrontier_BattleArenaBattleRoom_Movement_257C30 waitmovement 0 msgbox BattleFrontier_BattleArenaBattleRoom_Text_2582A2, MSGBOX_DEFAULT @@ -401,8 +368,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257AF8:: @ 8257AF8 BattleFrontier_BattleArenaBattleRoom_EventScript_257B15:: @ 8257B15 call BattleFrontier_BattleArenaBattleRoom_EventScript_257BA9 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS - special CallFrontierUtilFunc + frontier_getsymbols compare VAR_RESULT, 2 goto_if_eq BattleFrontier_BattleArenaBattleRoom_EventScript_257852 applymovement 7, BattleFrontier_BattleArenaBattleRoom_Movement_257BF1 @@ -412,8 +378,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257B15:: @ 8257B15 message BattleFrontier_BattleArenaBattleRoom_Text_25835B waitmessage waitfanfare - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL - special CallFrontierUtilFunc + frontier_givesymbol msgbox BattleFrontier_BattleArenaBattleRoom_Text_258383, MSGBOX_DEFAULT goto BattleFrontier_BattleArenaBattleRoom_EventScript_257852 @@ -426,20 +391,15 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257B6C:: @ 8257B6C FallarborTown_BattleTentBattleRoom_EventScript_257B6C:: @ 8257B6C closemessage setvar VAR_TEMP_2, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 6 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_6, 0 special HealPlayerParty setvar VAR_0x8004, SPECIAL_BATTLE_ARENA setvar VAR_0x8005, 0 special DoSpecialTrainerBattle waitstate - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_18 - special CallFrontierUtilFunc + frontier_restorehelditems special HealPlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_21 - special CallFrontierUtilFunc + frontier_resetsketch return BattleFrontier_BattleArenaBattleRoom_EventScript_257BA9:: @ 8257BA9 @@ -453,7 +413,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257BA9:: @ 8257BA9 waitmovement 0 msgbox BattleFrontier_BattleArenaBattleRoom_Text_257CB3, MSGBOX_DEFAULT closemessage - call BattleFrontier_BattleArenaBattleRoom_EventScript_241EBA + call BattleFrontier_EventScript_IncrementWinStreak return BattleFrontier_BattleArenaBattleRoom_Movement_257BE2: @ 8257BE2 diff --git a/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc b/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc index cf21c3c13..cd7ec75be 100644 --- a/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc @@ -14,15 +14,14 @@ BattleFrontier_BattleArenaLobby_EventScript_255C4B:: @ 8255C4B BattleFrontier_BattleArenaLobby_MapScript2_255C55: @ 8255C55 map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleArenaLobby_EventScript_255C7F - map_script_2 VAR_TEMP_0, 1, BattleFrontier_BattleArenaLobby_EventScript_255C88 - map_script_2 VAR_TEMP_0, 2, BattleFrontier_BattleArenaLobby_EventScript_255DC0 - map_script_2 VAR_TEMP_0, 3, BattleFrontier_BattleArenaLobby_EventScript_255CCF - map_script_2 VAR_TEMP_0, 4, BattleFrontier_BattleArenaLobby_EventScript_255D2B + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattleArenaLobby_EventScript_255C88 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattleArenaLobby_EventScript_255DC0 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, BattleFrontier_BattleArenaLobby_EventScript_255CCF + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattleArenaLobby_EventScript_255D2B .2byte 0 BattleFrontier_BattleArenaLobby_EventScript_255C7F:: @ 8255C7F - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_0 - special CallFrontierUtilFunc + frontier_getstatus end BattleFrontier_BattleArenaLobby_EventScript_255C88:: @ 8255C88 @@ -37,18 +36,14 @@ BattleFrontier_BattleArenaLobby_EventScript_255C88:: @ 8255C88 setvar VAR_0x8005, 2 setvar VAR_0x8006, 0 special CallBattleArenaFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_TEMP_0, 255 releaseall end BattleFrontier_BattleArenaLobby_EventScript_255CCF:: @ 8255CCF lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_IS_FRONTIER_BRAIN - special CallFrontierUtilFunc + frontier_isbrain compare VAR_RESULT, TRUE goto_if_eq BattleFrontier_BattleArenaLobby_EventScript_255CF0 msgbox BattleFrontier_BattleArenaLobby_Text_2568E7, MSGBOX_DEFAULT @@ -59,8 +54,7 @@ BattleFrontier_BattleArenaLobby_EventScript_255CF0:: @ 8255CF0 BattleFrontier_BattleArenaLobby_EventScript_255CF8:: @ 8255CF8 msgbox BattleFrontier_BattleArenaLobby_Text_257353, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_11 - special CallFrontierUtilFunc + frontier_givepoints msgbox BattleFrontier_Text_ObtainedXBattlePoints, MSGBOX_GETPOINTS message BattleFrontier_BattleArenaLobby_Text_256931 waitmessage @@ -87,8 +81,7 @@ BattleFrontier_BattleArenaLobby_EventScript_255D2B:: @ 8255D2B end BattleFrontier_BattleArenaLobby_EventScript_255D59:: @ 8255D59 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_8 - special CallFrontierUtilFunc + frontier_checkairshow special LoadPlayerParty special HealPlayerParty setvar VAR_0x8004, 3 @@ -108,8 +101,7 @@ BattleFrontier_BattleArenaLobby_EventScript_255D59:: @ 8255D59 case MULTI_B_PRESSED, BattleFrontier_BattleArenaLobby_EventScript_255DBF BattleFrontier_BattleArenaLobby_EventScript_255DBA:: @ 8255DBA - call BattleFrontier_BattleArenaLobby_EventScript_23E8B4 - + call BattleFrontier_EventScript_SaveBattle BattleFrontier_BattleArenaLobby_EventScript_255DBF:: @ 8255DBF return @@ -122,18 +114,15 @@ BattleFrontier_BattleArenaLobby_EventScript_255DC0:: @ 8255DC0 special CallBattleArenaFunction playse SE_SAVE waitse - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_PAUSED, FALSE setvar VAR_TEMP_0, 255 goto BattleFrontier_BattleArenaLobby_EventScript_255F54 BattleFrontier_BattleArenaLobby_EventScript_255DF4:: @ 8255DF4 lock faceplayer - setvar VAR_FRONTIER_FACILITY, 3 - setvar VAR_FRONTIER_BATTLE_MODE, 0 + setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_ARENA + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES special SavePlayerParty msgbox BattleFrontier_BattleArenaLobby_Text_256166, MSGBOX_DEFAULT @@ -152,19 +141,15 @@ BattleFrontier_BattleArenaLobby_EventScript_255E47:: @ 8255E47 waitmessage multichoice 17, 6, MULTI_LEVEL_MODE, 0 switch VAR_RESULT - case 2, BattleFrontier_BattleArenaLobby_EventScript_255FFB + case FRONTIER_LVL_TENT, BattleFrontier_BattleArenaLobby_EventScript_255FFB case MULTI_B_PRESSED, BattleFrontier_BattleArenaLobby_EventScript_255FFB - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_15 - special CallFrontierUtilFunc - compare VAR_0x8004, 1 + frontier_checkineligible + compare VAR_0x8004, TRUE goto_if_eq BattleFrontier_BattleArenaLobby_EventScript_255FAC - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 1 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattleArenaLobby_Text_256573, MSGBOX_DEFAULT fadescreen 1 - call BattleFrontier_BattleArenaLobby_EventScript_23F2B7 + call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT setvar VAR_0x8005, 3 special sub_80F9490 @@ -179,23 +164,15 @@ BattleFrontier_BattleArenaLobby_EventScript_255E47:: @ 8255E47 BattleFrontier_BattleArenaLobby_EventScript_255EE8:: @ 8255EE8 setvar VAR_TEMP_0, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_SELECTED_MON_ORDER setvar VAR_0x8004, 0 special CallBattleArenaFunction setvar VAR_0x8004, 2 setvar VAR_0x8005, 2 setvar VAR_0x8006, 1 special CallBattleArenaFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING + frontier_set FRONTIER_DATA_PAUSED, FALSE special LoadPlayerParty closemessage delay 2 @@ -206,17 +183,13 @@ BattleFrontier_BattleArenaLobby_EventScript_255EE8:: @ 8255EE8 BattleFrontier_BattleArenaLobby_EventScript_255F54:: @ 8255F54 special SavePlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc + frontier_setpartyorder FRONTIER_PARTY_SIZE msgbox BattleFrontier_BattleArenaLobby_Text_2567E6, MSGBOX_DEFAULT closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 1 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + frontier_get FRONTIER_DATA_LVL_MODE + compare VAR_RESULT, FRONTIER_LVL_50 call_if_eq BattleFrontier_BattleArenaLobby_EventScript_256005 - compare VAR_RESULT, 1 + compare VAR_RESULT, FRONTIER_LVL_OPEN call_if_eq BattleFrontier_BattleArenaLobby_EventScript_256050 warp MAP_BATTLE_FRONTIER_BATTLE_ARENA_CORRIDOR, 255, 9, 13 setvar VAR_TEMP_0, 0 @@ -229,8 +202,8 @@ BattleFrontier_BattleArenaLobby_EventScript_255F9F:: @ 8255F9F BattleFrontier_BattleArenaLobby_EventScript_255FAC:: @ 8255FAC switch VAR_RESULT - case 0, BattleFrontier_BattleArenaLobby_EventScript_255FC7 - case 1, BattleFrontier_BattleArenaLobby_EventScript_255FD4 + case FRONTIER_LVL_50, BattleFrontier_BattleArenaLobby_EventScript_255FC7 + case FRONTIER_LVL_OPEN, BattleFrontier_BattleArenaLobby_EventScript_255FD4 BattleFrontier_BattleArenaLobby_EventScript_255FC7:: @ 8255FC7 msgbox BattleFrontier_BattleArenaLobby_Text_2566A8, MSGBOX_DEFAULT @@ -241,18 +214,13 @@ BattleFrontier_BattleArenaLobby_EventScript_255FD4:: @ 8255FD4 goto BattleFrontier_BattleArenaLobby_EventScript_256003 BattleFrontier_BattleArenaLobby_EventScript_255FE1:: @ 8255FE1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 goto BattleFrontier_BattleArenaLobby_EventScript_255FFB BattleFrontier_BattleArenaLobby_EventScript_255FF8:: @ 8255FF8 special LoadPlayerParty - BattleFrontier_BattleArenaLobby_EventScript_255FFB:: @ 8255FFB msgbox BattleFrontier_BattleArenaLobby_Text_25621F, MSGBOX_DEFAULT - BattleFrontier_BattleArenaLobby_EventScript_256003:: @ 8256003 release end @@ -344,9 +312,7 @@ BattleFrontier_BattleArenaLobby_Movement_256088: @ 8256088 BattleFrontier_BattleArenaLobby_EventScript_256092:: @ 8256092 lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW - setvar VAR_0x8005, 3 - special CallFrontierUtilFunc + frontier_results FRONTIER_FACILITY_ARENA waitbuttonpress special RemoveRecordsWindow releaseall diff --git a/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc index e501efcd8..35b082c76 100644 --- a/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc @@ -8,9 +8,7 @@ BattleFrontier_BattleDomeBattleRoom_MapScripts:: @ 824BC9C BattleFrontier_BattleDomeBattleRoom_MapScript1_24BCB1: @ 824BCB1 setvar VAR_0x8004, 10 special CallBattleDomeFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM copyvar VAR_TEMP_F, VAR_RESULT compare VAR_RESULT, 0 call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C919 @@ -51,7 +49,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BD0A:: @ 824BD0A showobjectat 13, MAP_BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM compare VAR_TEMP_F, 3 goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24BD4E - compare VAR_TEMP_E, 0 + compare VAR_TEMP_E, FRONTIER_BRAIN_NOT_READY goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24BD5A BattleFrontier_BattleDomeBattleRoom_EventScript_24BD4E:: @ 824BD4E @@ -67,7 +65,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BD61:: @ 824BD61 waitmovement 0 compare VAR_TEMP_F, 3 goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24BD82 - compare VAR_TEMP_E, 0 + compare VAR_TEMP_E, FRONTIER_BRAIN_NOT_READY goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24C1CB BattleFrontier_BattleDomeBattleRoom_EventScript_24BD82:: @ 824BD82 @@ -134,25 +132,18 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BE8D:: @ 824BE8D special CallBattleDomeFunction BattleFrontier_BattleDomePreBattleRoom_EventScript_24BE9A:: @ 824BE9A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST goto BattleFrontier_BattleDomeBattleRoom_EventScript_24C8F5 @ goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24C8F5 BattleFrontier_BattleDomeBattleRoom_EventScript_24BEB1:: @ 824BEB1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_BUFFER_TRAINER_NAME - setvar VAR_0x8005, 1 - special CallFrontierUtilFunc + frontier_gettrainername 1 message BattleFrontier_BattleDomeBattleRoom_Text_24C9E1 waitmessage return BattleFrontier_BattleDomeBattleRoom_EventScript_24BEC5:: @ 824BEC5 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_BUFFER_TRAINER_NAME - setvar VAR_0x8005, 0 - special CallFrontierUtilFunc + frontier_gettrainername 0 message BattleFrontier_BattleDomeBattleRoom_Text_24CB34 waitmessage return @@ -177,14 +168,9 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BEE0:: @ 824BEE0 setvar VAR_0x8004, 12 setvar VAR_0x8005, 1 special CallBattleDomeFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 2 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT switch VAR_RESULT case 4, BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62 setvar VAR_0x8006, 1 @@ -194,11 +180,9 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BEE0:: @ 824BEE0 BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62:: @ 824BF62 applymovement 13, BattleFrontier_BattleDomeBattleRoom_Movement_24C77D waitmovement 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 1 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_LVL_MODE switch VAR_RESULT - case 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24BF96 + case FRONTIER_LVL_OPEN, BattleFrontier_BattleDomeBattleRoom_EventScript_24BF96 msgbox BattleFrontier_BattleDomeBattleRoom_Text_24CA04, MSGBOX_DEFAULT goto BattleFrontier_BattleDomeBattleRoom_EventScript_24BF9E @@ -210,10 +194,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BF9E:: @ 824BF9E playse SE_W227B call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E delay 60 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 3 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON goto BattleFrontier_BattleDomeBattleRoom_EventScript_24C8F5 BattleFrontier_BattleDomeBattleRoom_EventScript_24BFC3:: @ 824BFC3 @@ -305,10 +286,10 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C0C9:: @ 824C0C9 compare VAR_TEMP_F, 3 goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24C105 switch VAR_TEMP_E - case 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24C158 - case 2, BattleFrontier_BattleDomeBattleRoom_EventScript_24C161 - case 3, BattleFrontier_BattleDomeBattleRoom_EventScript_24C158 - case 4, BattleFrontier_BattleDomeBattleRoom_EventScript_24C161 + case FRONTIER_BRAIN_SILVER, BattleFrontier_BattleDomeBattleRoom_EventScript_24C158 + case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleDomeBattleRoom_EventScript_24C161 + case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleDomeBattleRoom_EventScript_24C158 + case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleDomeBattleRoom_EventScript_24C161 BattleFrontier_BattleDomeBattleRoom_EventScript_24C105:: @ 824C105 call BattleFrontier_BattleDomeBattleRoom_EventScript_24C1BD @@ -377,17 +358,15 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C1B6:: @ 824C1B6 return BattleFrontier_BattleDomeBattleRoom_EventScript_24C1BD:: @ 824C1BD - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM return BattleFrontier_BattleDomeBattleRoom_EventScript_24C1CB:: @ 824C1CB switch VAR_TEMP_E - case 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24C1FC - case 2, BattleFrontier_BattleDomeBattleRoom_EventScript_24C209 - case 3, BattleFrontier_BattleDomeBattleRoom_EventScript_24C1FC - case 4, BattleFrontier_BattleDomeBattleRoom_EventScript_24C209 + case FRONTIER_BRAIN_SILVER, BattleFrontier_BattleDomeBattleRoom_EventScript_24C1FC + case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleDomeBattleRoom_EventScript_24C209 + case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleDomeBattleRoom_EventScript_24C1FC + case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleDomeBattleRoom_EventScript_24C209 BattleFrontier_BattleDomeBattleRoom_EventScript_24C1FC:: @ 824C1FC msgbox BattleFrontier_BattleDomeBattleRoom_Text_24CEDE, MSGBOX_DEFAULT @@ -423,19 +402,14 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C211:: @ 824C211 call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E waitse switch VAR_TEMP_E - case 2, BattleFrontier_BattleDomeBattleRoom_EventScript_24C346 - case 3, BattleFrontier_BattleDomeBattleRoom_EventScript_24C2B9 - case 4, BattleFrontier_BattleDomeBattleRoom_EventScript_24C373 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleDomeBattleRoom_EventScript_24C346 + case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleDomeBattleRoom_EventScript_24C2B9 + case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleDomeBattleRoom_EventScript_24C373 + frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH + compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24C2B9 msgbox BattleFrontier_BattleDomeBattleRoom_Text_24CFAE, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - + frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH BattleFrontier_BattleDomeBattleRoom_EventScript_24C2B9:: @ 824C2B9 msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D0D9, MSGBOX_DEFAULT call BattleFrontier_BattleDomeBattleRoom_EventScript_24C400 @@ -444,11 +418,10 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C2B9:: @ 824C2B9 case 9, BattleFrontier_BattleDomeBattleRoom_EventScript_24C420 case 3, BattleFrontier_BattleDomeBattleRoom_EventScript_24C436 msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D0F6, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS + setvar VAR_0x8004, 12 setvar VAR_0x8005, 1 special CallBattleDomeFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS - special CallFrontierUtilFunc + frontier_getsymbols compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62 closemessage @@ -459,22 +432,16 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C2B9:: @ 824C2B9 message BattleFrontier_BattleDomeBattleRoom_Text_24D1AA waitmessage waitfanfare - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL - special CallFrontierUtilFunc + frontier_givesymbol msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D1E0, MSGBOX_DEFAULT goto BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62 BattleFrontier_BattleDomeBattleRoom_EventScript_24C346:: @ 824C346 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH + compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24C373 msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D319, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - + frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH BattleFrontier_BattleDomeBattleRoom_EventScript_24C373:: @ 824C373 msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D43E, MSGBOX_DEFAULT call BattleFrontier_BattleDomeBattleRoom_EventScript_24C400 @@ -486,8 +453,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C373:: @ 824C373 setvar VAR_0x8004, 12 setvar VAR_0x8005, 1 special CallBattleDomeFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS - special CallFrontierUtilFunc + frontier_getsymbols compare VAR_RESULT, 2 goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62 closemessage @@ -498,8 +464,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C373:: @ 824C373 message BattleFrontier_BattleDomeBattleRoom_Text_24D522 waitmessage waitfanfare - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL - special CallFrontierUtilFunc + frontier_givesymbol msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D54D, MSGBOX_DEFAULT goto BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62 @@ -524,10 +489,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C436:: @ 824C436 goto BattleFrontier_BattleDomeBattleRoom_EventScript_24BDF7 BattleFrontier_BattleDomeBattleRoom_EventScript_24C440:: @ 824C440 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 6 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_6, 0 special HealPlayerParty setvar VAR_0x8004, SPECIAL_BATTLE_DOME setvar VAR_0x8005, 0 @@ -552,17 +514,14 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C48B:: @ 824C48B call BattleFrontier_BattleDomeBattleRoom_EventScript_24BCDC setvar VAR_TEMP_1, 1 applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleDomeBattleRoom_Movement_24C773 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 3 goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24C4EF - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_9 - special CallFrontierUtilFunc + frontier_getbrainstatus copyvar VAR_TEMP_E, VAR_RESULT - compare VAR_RESULT, 0 + compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C4EF - call BattleFrontier_BattleDomeBattleRoom_EventScript_242170 + call BattleFrontier_EventScript_SetBrainObjectGfx setobjectxyperm 15, 13, 9 removeobject 15 addobject 15 @@ -951,7 +910,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E:: @ 824C82E BattleFrontier_BattleDomeBattleRoom_EventScript_24C8F5:: @ 824C8F5 BattleFrontier_BattleDomePreBattleRoom_EventScript_24C8F5:: @ 824C8F5 copyvar VAR_RESULT, VAR_FRONTIER_BATTLE_MODE - compare VAR_RESULT, 1 + compare VAR_RESULT, FRONTIER_MODE_DOUBLES goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_24C90F warp MAP_BATTLE_FRONTIER_BATTLE_DOME_LOBBY, 255, 5, 11 waitstate diff --git a/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc b/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc index 2a97e2ae7..3208efe4b 100644 --- a/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc @@ -9,10 +9,8 @@ BattleFrontier_BattleDomeCorridor_MapScript2_24B104: @ 824B104 BattleFrontier_BattleDomeCorridor_EventScript_24B10E:: @ 824B10E delay 16 setvar VAR_TEMP_0, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 1 - special CallFrontierUtilFunc - compare VAR_RESULT, 1 + frontier_get FRONTIER_DATA_LVL_MODE + compare VAR_RESULT, FRONTIER_LVL_OPEN goto_if_eq BattleFrontier_BattleDomeCorridor_EventScript_24B161 applymovement 1, BattleFrontier_BattleDomeCorridor_Movement_24B1B2 applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleDomeCorridor_Movement_24B1A1 @@ -37,7 +35,6 @@ BattleFrontier_BattleDomeCorridor_EventScript_24B161:: @ 824B161 waitmovement 0 closedoor 37, 3 waitdooranim - BattleFrontier_BattleDomeCorridor_EventScript_24B18F:: @ 824B18F waitmovement 0 setvar VAR_0x8006, 0 diff --git a/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc b/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc index df167314a..1608f414f 100644 --- a/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc @@ -21,15 +21,14 @@ BattleFrontier_BattleDomeLobby_EventScript_249805:: @ 8249805 BattleFrontier_BattleDomeLobby_MapScript2_24980F: @ 824980F map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomeLobby_EventScript_249839 - map_script_2 VAR_TEMP_0, 1, BattleFrontier_BattleDomeLobby_EventScript_249842 - map_script_2 VAR_TEMP_0, 2, BattleFrontier_BattleDomeLobby_EventScript_2499F9 - map_script_2 VAR_TEMP_0, 3, BattleFrontier_BattleDomeLobby_EventScript_24989B - map_script_2 VAR_TEMP_0, 4, BattleFrontier_BattleDomeLobby_EventScript_249940 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattleDomeLobby_EventScript_249842 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattleDomeLobby_EventScript_2499F9 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, BattleFrontier_BattleDomeLobby_EventScript_24989B + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattleDomeLobby_EventScript_249940 .2byte 0 BattleFrontier_BattleDomeLobby_EventScript_249839:: @ 8249839 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_0 - special CallFrontierUtilFunc + frontier_getstatus end BattleFrontier_BattleDomeLobby_EventScript_249842:: @ 8249842 @@ -48,19 +47,15 @@ BattleFrontier_BattleDomeLobby_EventScript_249842:: @ 8249842 setvar VAR_0x8005, 6 setvar VAR_0x8006, 1 special CallBattleDomeFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_TEMP_0, 255 releaseall end BattleFrontier_BattleDomeLobby_EventScript_24989B:: @ 824989B - call BattleFrontier_BattleDomeLobby_EventScript_241EBA + call BattleFrontier_EventScript_IncrementWinStreak lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_IS_FRONTIER_BRAIN - special CallFrontierUtilFunc + frontier_isbrain compare VAR_RESULT, TRUE goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_2498C1 msgbox BattleFrontier_BattleDomeLobby_Text_24A4E9, MSGBOX_DEFAULT @@ -71,17 +66,13 @@ BattleFrontier_BattleDomeLobby_EventScript_2498C1:: @ 82498C1 BattleFrontier_BattleDomeLobby_EventScript_2498C9:: @ 82498C9 msgbox BattleFrontier_BattleDomeLobby_Text_24ADB1, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_11 - special CallFrontierUtilFunc + frontier_givepoints msgbox BattleFrontier_Text_ObtainedXBattlePoints, MSGBOX_GETPOINTS message BattleFrontier_BattleDomeLobby_Text_24A5D6 waitmessage special LoadPlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_8 - special CallFrontierUtilFunc + frontier_setpartyorder FRONTIER_PARTY_SIZE + frontier_checkairshow setvar VAR_0x8004, 2 setvar VAR_0x8005, 6 setvar VAR_0x8006, 1 @@ -104,11 +95,8 @@ BattleFrontier_BattleDomeLobby_EventScript_249940:: @ 8249940 message BattleFrontier_BattleDomeLobby_Text_24A5D6 waitmessage special LoadPlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_8 - special CallFrontierUtilFunc + frontier_setpartyorder FRONTIER_PARTY_SIZE + frontier_checkairshow setvar VAR_0x8004, 2 setvar VAR_0x8005, 1 setvar VAR_0x8006, 0 @@ -138,8 +126,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249991:: @ 8249991 case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_2499E9 BattleFrontier_BattleDomeLobby_EventScript_2499E4:: @ 82499E4 - call BattleFrontier_BattleDomeLobby_EventScript_23E8B4 - + call BattleFrontier_EventScript_SaveBattle BattleFrontier_BattleDomeLobby_EventScript_2499E9:: @ 82499E9 msgbox BattleFrontier_BattleDomeLobby_Text_249F74, MSGBOX_DEFAULT closemessage @@ -157,40 +144,37 @@ BattleFrontier_BattleDomeLobby_EventScript_2499F9:: @ 82499F9 special CallBattleDomeFunction playse SE_SAVE waitse - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_PAUSED, FALSE setvar VAR_TEMP_0, 255 goto BattleFrontier_BattleDomeLobby_EventScript_249BC2 BattleFrontier_BattleDomeLobby_EventScript_249A35:: @ 8249A35 lock faceplayer - setvar VAR_FRONTIER_FACILITY, 1 - setvar VAR_FRONTIER_BATTLE_MODE, 0 + setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_DOME + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES goto BattleFrontier_BattleDomeLobby_EventScript_249A59 end BattleFrontier_BattleDomeLobby_EventScript_249A47:: @ 8249A47 lock faceplayer - setvar VAR_FRONTIER_FACILITY, 1 - setvar VAR_FRONTIER_BATTLE_MODE, 1 + setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_DOME + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES goto BattleFrontier_BattleDomeLobby_EventScript_249A59 end BattleFrontier_BattleDomeLobby_EventScript_249A59:: @ 8249A59 special SavePlayerParty - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249CFD - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D06 BattleFrontier_BattleDomeLobby_EventScript_249A72:: @ 8249A72 - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D0F - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D15 waitmessage multichoice 17, 6, MULTI_CHALLENGEINFO, 0 @@ -205,19 +189,15 @@ BattleFrontier_BattleDomeLobby_EventScript_249ABF:: @ 8249ABF waitmessage multichoice 17, 6, MULTI_LEVEL_MODE, 0 switch VAR_RESULT - case 2, BattleFrontier_BattleDomeLobby_EventScript_249C64 + case FRONTIER_LVL_TENT, BattleFrontier_BattleDomeLobby_EventScript_249C64 case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_249C64 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_15 - special CallFrontierUtilFunc - compare VAR_0x8004, 1 + frontier_checkineligible + compare VAR_0x8004, TRUE goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_249C15 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 1 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattleDomeLobby_Text_24A26E, MSGBOX_DEFAULT fadescreen 1 - call BattleFrontier_BattleDomeLobby_EventScript_23F2B7 + call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT setvar VAR_0x8005, 3 special sub_80F9490 @@ -232,19 +212,11 @@ BattleFrontier_BattleDomeLobby_EventScript_249ABF:: @ 8249ABF BattleFrontier_BattleDomeLobby_EventScript_249B60:: @ 8249B60 setvar VAR_TEMP_0, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_SELECTED_MON_ORDER setvar VAR_0x8004, 0 special CallBattleDomeFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING + frontier_set FRONTIER_DATA_PAUSED, FALSE special LoadPlayerParty closemessage delay 2 @@ -257,9 +229,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249B60:: @ 8249B60 BattleFrontier_BattleDomeLobby_EventScript_249BC2:: @ 8249BC2 special SavePlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc + frontier_setpartyorder FRONTIER_PARTY_SIZE setvar VAR_0x8004, 15 special CallBattleDomeFunction msgbox BattleFrontier_BattleDomeLobby_Text_24A437, MSGBOX_DEFAULT @@ -272,16 +242,16 @@ BattleFrontier_BattleDomeLobby_EventScript_249BC2:: @ 8249BC2 end BattleFrontier_BattleDomeLobby_EventScript_249BFA:: @ 8249BFA - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D1B - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D24 goto BattleFrontier_BattleDomeLobby_EventScript_249A72 BattleFrontier_BattleDomeLobby_EventScript_249C15:: @ 8249C15 switch VAR_RESULT - case 0, BattleFrontier_BattleDomeLobby_EventScript_249C30 - case 1, BattleFrontier_BattleDomeLobby_EventScript_249C3D + case FRONTIER_LVL_50, BattleFrontier_BattleDomeLobby_EventScript_249C30 + case FRONTIER_LVL_OPEN, BattleFrontier_BattleDomeLobby_EventScript_249C3D BattleFrontier_BattleDomeLobby_EventScript_249C30:: @ 8249C30 msgbox BattleFrontier_BattleDomeLobby_Text_24A353, MSGBOX_DEFAULT @@ -292,10 +262,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249C3D:: @ 8249C3D goto BattleFrontier_BattleDomeLobby_EventScript_249C6C BattleFrontier_BattleDomeLobby_EventScript_249C4A:: @ 8249C4A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 goto BattleFrontier_BattleDomeLobby_EventScript_249C64 BattleFrontier_BattleDomeLobby_EventScript_249C61:: @ 8249C61 @@ -309,26 +276,26 @@ BattleFrontier_BattleDomeLobby_EventScript_249C6C:: @ 8249C6C end BattleFrontier_BattleDomeLobby_EventScript_249C6E:: @ 8249C6E - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249CDD - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249CE5 applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleDomeLobby_Movement_249D45 waitmovement 0 - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D2D - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D33 waitdooranim - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249CED - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249CF5 applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleDomeLobby_Movement_249D4E waitmovement 0 - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D39 - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D3F waitdooranim return @@ -410,10 +377,7 @@ BattleFrontier_BattleDomeLobby_Movement_249D4E: @ 8249D4E BattleFrontier_BattleDomeLobby_EventScript_249D52:: @ 8249D52 lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW - setvar VAR_0x8005, 1 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_results FRONTIER_FACILITY_DOME, FRONTIER_MODE_SINGLES waitbuttonpress special RemoveRecordsWindow releaseall @@ -421,10 +385,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249D52:: @ 8249D52 BattleFrontier_BattleDomeLobby_EventScript_249D6B:: @ 8249D6B lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW - setvar VAR_0x8005, 1 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc + frontier_results FRONTIER_FACILITY_DOME, FRONTIER_MODE_DOUBLES waitbuttonpress special RemoveRecordsWindow releaseall diff --git a/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc index 9b9fb4537..3fb94a075 100644 --- a/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc @@ -19,10 +19,7 @@ BattleFrontier_BattleDomePreBattleRoom_MapScript2_24B218: @ 824B218 BattleFrontier_BattleDomePreBattleRoom_EventScript_24B222:: @ 824B222 compare VAR_0x8006, 1 goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5C7 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 6 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_6, 1 setvar VAR_TEMP_0, 1 applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleDomePreBattleRoom_Movement_24B652 waitmovement 0 @@ -65,7 +62,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B30D:: @ 824B30D case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F BattleFrontier_BattleDomePreBattleRoom_EventScript_24B33F:: @ 824B33F - call BattleFrontier_BattleDomePreBattleRoom_EventScript_23E8B4 + call BattleFrontier_EventScript_SaveBattle goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F BattleFrontier_BattleDomePreBattleRoom_EventScript_24B349:: @ 824B349 @@ -99,8 +96,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3BB:: @ 824B3BB playse SE_SAVE waitse fadescreen 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SOFT_RESET - special CallFrontierUtilFunc + frontier_reset end BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3DD:: @ 824B3DD @@ -120,9 +116,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3F5:: @ 824B3F5 goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F BattleFrontier_BattleDomePreBattleRoom_EventScript_24B40A:: @ 824B40A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM switch VAR_RESULT case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B449 case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B452 @@ -151,13 +145,12 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B46D:: @ 824B46D waitmessage waitbuttonpress fadescreen 1 - call BattleFrontier_BattleDomePreBattleRoom_EventScript_23F2B7 + call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT setvar VAR_0x8005, 2 special sub_80F9490 waitstate - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_21 - special CallFrontierUtilFunc + frontier_resetsketch compare VAR_RESULT, 0 goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F setvar VAR_0x8004, 2 @@ -185,9 +178,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B46D:: @ 824B46D end BattleFrontier_BattleDomePreBattleRoom_EventScript_24B4FB:: @ 824B4FB - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM switch VAR_RESULT case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B53A case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B540 @@ -208,13 +199,12 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B546:: @ 824B546 return BattleFrontier_BattleDomePreBattleRoom_EventScript_24B54C:: @ 824B54C - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_9 - special CallFrontierUtilFunc + frontier_getbrainstatus switch VAR_RESULT - case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B58B - case 2, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5A0 - case 3, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B58B - case 4, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5A0 + case FRONTIER_BRAIN_SILVER, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B58B + case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5A0 + case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B58B + case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5A0 message BattleFrontier_BattleDomePreBattleRoom_Text_24B6E3 return @@ -242,9 +232,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5C7:: @ 824B5C7 setvar VAR_TEMP_0, 1 msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B760, MSGBOX_DEFAULT special LoadPlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc + frontier_setpartyorder FRONTIER_PARTY_SIZE playfanfare MUS_ME_ASA waitfanfare special HealPlayerParty @@ -256,9 +244,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5C7:: @ 824B5C7 goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F BattleFrontier_BattleDomePreBattleRoom_EventScript_24B600:: @ 824B600 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM switch VAR_RESULT case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B634 case 2, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B63D diff --git a/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc index d3cecf3bb..5e41c7ddb 100644 --- a/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc @@ -5,22 +5,20 @@ BattleFrontier_BattleFactoryBattleRoom_MapScripts:: @ 825ADAB .byte 0 BattleFrontier_BattleFactoryBattleRoom_MapScript1_25ADBB: @ 825ADBB - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_FRONTIER_TRAINERS - special CallFrontierUtilFunc + frontier_settrainers checkplayergender compare VAR_RESULT, MALE call_if_eq BattleFrontier_BattleFactoryBattleRoom_EventScript_25AE25 compare VAR_RESULT, FEMALE call_if_eq BattleFrontier_BattleFactoryBattleRoom_EventScript_25AE2B - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_9 - special CallFrontierUtilFunc + frontier_getbrainstatus copyvar VAR_TEMP_F, VAR_RESULT - compare VAR_RESULT, 0 + compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY goto_if_ne BattleFrontier_BattleFactoryBattleRoom_EventScript_25ADF3 end BattleFrontier_BattleFactoryBattleRoom_EventScript_25ADF3:: @ 825ADF3 - call BattleFrontier_BattleFactoryBattleRoom_EventScript_242170 + call BattleFrontier_EventScript_SetBrainObjectGfx setobjectxyperm 2, 7, 9 end @@ -85,10 +83,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25AEA7:: @ 825AEA7 msgbox gStringVar4, MSGBOX_DEFAULT waitmessage closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 6 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_6, 0 special HealPlayerParty setvar VAR_0x8004, SPECIAL_BATTLE_FACTORY setvar VAR_0x8005, 0 @@ -99,10 +94,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25AEA7:: @ 825AEA7 BattleFrontier_BattleFactoryBattleRoom_EventScript_25AEF8:: @ 825AEF8 BattleFrontier_BattleFactoryPreBattleRoom_EventScript_25AEF8:: @ 825AEF8 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST goto BattleFrontier_BattleFactoryBattleRoom_EventScript_25B190 @ goto BattleFrontier_BattleFactoryPreBattleRoom_EventScript_25B190 @@ -110,54 +102,38 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF0F:: @ 825AF0F setvar VAR_0x8004, 1 setvar VAR_0x8005, 3 special CallBattleFactoryFunction - compare VAR_RESULT, 9999 + compare VAR_RESULT, MAX_STREAK goto_if_eq BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF3E addvar VAR_RESULT, 1 setorcopyvar VAR_0x8006, VAR_RESULT setvar VAR_0x8004, 2 setvar VAR_0x8005, 3 special CallBattleFactoryFunction - BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF3E:: @ 825AF3E - call BattleFrontier_BattleFactoryBattleRoom_EventScript_241EBA - + call BattleFrontier_EventScript_IncrementWinStreak BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF43:: @ 825AF43 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 2 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT switch VAR_RESULT case 7, BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF85 setvar VAR_0x8006, 1 warp MAP_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM, 255, 8, 8 waitstate - BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF85:: @ 825AF85 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 3 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON goto BattleFrontier_BattleFactoryBattleRoom_EventScript_25B190 BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF9C:: @ 825AF9C switch VAR_TEMP_F - case 2, BattleFrontier_BattleFactoryBattleRoom_EventScript_25B051 - case 3, BattleFrontier_BattleFactoryBattleRoom_EventScript_25AFEF - case 4, BattleFrontier_BattleFactoryBattleRoom_EventScript_25B07E - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleFactoryBattleRoom_EventScript_25B051 + case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleFactoryBattleRoom_EventScript_25AFEF + case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleFactoryBattleRoom_EventScript_25B07E + frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH + compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattleFactoryBattleRoom_EventScript_25AFEF msgbox BattleFrontier_BattleFactoryBattleRoom_Text_25B1FB, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - + frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH BattleFrontier_BattleFactoryBattleRoom_EventScript_25AFEF:: @ 825AFEF msgbox BattleFrontier_BattleFactoryBattleRoom_Text_25B3F1, MSGBOX_DEFAULT call BattleFrontier_BattleFactoryBattleRoom_EventScript_25B0E0 @@ -166,8 +142,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25AFEF:: @ 825AFEF goto BattleFrontier_BattleFactoryBattleRoom_EventScript_25AEF8 BattleFrontier_BattleFactoryBattleRoom_EventScript_25B00C:: @ 825B00C - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS - special CallFrontierUtilFunc + frontier_getsymbols compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattleFactoryBattleRoom_EventScript_25B105 msgbox BattleFrontier_BattleFactoryBattleRoom_Text_25B42D, MSGBOX_DEFAULT @@ -178,22 +153,16 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25B00C:: @ 825B00C message BattleFrontier_BattleFactoryBattleRoom_Text_25B460 waitmessage waitfanfare - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL - special CallFrontierUtilFunc + frontier_givesymbol msgbox BattleFrontier_BattleFactoryBattleRoom_Text_25B498, MSGBOX_DEFAULT goto BattleFrontier_BattleFactoryBattleRoom_EventScript_25B105 BattleFrontier_BattleFactoryBattleRoom_EventScript_25B051:: @ 825B051 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH + compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattleFactoryBattleRoom_EventScript_25B07E msgbox BattleFrontier_BattleFactoryBattleRoom_Text_25B517, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - + frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH BattleFrontier_BattleFactoryBattleRoom_EventScript_25B07E:: @ 825B07E msgbox BattleFrontier_BattleFactoryBattleRoom_Text_25B5CF, MSGBOX_DEFAULT call BattleFrontier_BattleFactoryBattleRoom_EventScript_25B0E0 @@ -202,8 +171,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25B07E:: @ 825B07E goto BattleFrontier_BattleFactoryBattleRoom_EventScript_25AEF8 BattleFrontier_BattleFactoryBattleRoom_EventScript_25B09B:: @ 825B09B - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS - special CallFrontierUtilFunc + frontier_getsymbols compare VAR_RESULT, 2 goto_if_eq BattleFrontier_BattleFactoryBattleRoom_EventScript_25B105 msgbox BattleFrontier_BattleFactoryBattleRoom_Text_25B5E7, MSGBOX_DEFAULT @@ -214,17 +182,13 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25B09B:: @ 825B09B message BattleFrontier_BattleFactoryBattleRoom_Text_25B640 waitmessage waitfanfare - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL - special CallFrontierUtilFunc + frontier_givesymbol msgbox BattleFrontier_BattleFactoryBattleRoom_Text_25B66D, MSGBOX_DEFAULT goto BattleFrontier_BattleFactoryBattleRoom_EventScript_25B105 BattleFrontier_BattleFactoryBattleRoom_EventScript_25B0E0:: @ 825B0E0 closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 6 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_6, 0 special HealPlayerParty setvar VAR_0x8004, SPECIAL_BATTLE_FACTORY setvar VAR_0x8005, 0 @@ -236,7 +200,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25B105:: @ 825B105 setvar VAR_0x8004, 1 setvar VAR_0x8005, 3 special CallBattleFactoryFunction - compare VAR_RESULT, 9999 + compare VAR_RESULT, MAX_STREAK goto_if_eq BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF3E addvar VAR_RESULT, 1 setorcopyvar VAR_0x8006, VAR_RESULT @@ -246,16 +210,14 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25B105:: @ 825B105 setvar VAR_0x8004, 1 setvar VAR_0x8005, 1 special CallBattleFactoryFunction - compare VAR_RESULT, 9999 + compare VAR_RESULT, MAX_STREAK goto_if_eq BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF43 addvar VAR_RESULT, 1 setvar VAR_0x8004, 2 setvar VAR_0x8005, 1 copyvar VAR_0x8006, VAR_RESULT special CallBattleFactoryFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 goto BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF85 end @@ -292,7 +254,7 @@ BattleFrontier_BattleFactoryBattleRoom_Movement_25B18B: @ 825B18B BattleFrontier_BattleFactoryBattleRoom_EventScript_25B190:: @ 825B190 BattleFrontier_BattleFactoryPreBattleRoom_EventScript_25B190:: @ 825B190 copyvar VAR_RESULT, VAR_FRONTIER_BATTLE_MODE - compare VAR_RESULT, 1 + compare VAR_RESULT, FRONTIER_MODE_DOUBLES goto_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_25B1AA warp MAP_BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY, 255, 4, 8 waitstate diff --git a/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc b/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc index 9bb3a9313..42b0cbef0 100644 --- a/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc @@ -14,15 +14,14 @@ BattleFrontier_BattleFactoryLobby_EventScript_2583FD:: @ 82583FD BattleFrontier_BattleFactoryLobby_MapScript2_258407: @ 8258407 map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleFactoryLobby_EventScript_258431 - map_script_2 VAR_TEMP_0, 1, BattleFrontier_BattleFactoryLobby_EventScript_25843A - map_script_2 VAR_TEMP_0, 2, BattleFrontier_BattleFactoryLobby_EventScript_258592 - map_script_2 VAR_TEMP_0, 3, BattleFrontier_BattleFactoryLobby_EventScript_25849B - map_script_2 VAR_TEMP_0, 4, BattleFrontier_BattleFactoryLobby_EventScript_258506 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattleFactoryLobby_EventScript_25843A + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattleFactoryLobby_EventScript_258592 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, BattleFrontier_BattleFactoryLobby_EventScript_25849B + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattleFactoryLobby_EventScript_258506 .2byte 0 BattleFrontier_BattleFactoryLobby_EventScript_258431:: @ 8258431 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_0 - special CallFrontierUtilFunc + frontier_getstatus end BattleFrontier_BattleFactoryLobby_EventScript_25843A:: @ 825843A @@ -43,18 +42,14 @@ BattleFrontier_BattleFactoryLobby_EventScript_25843A:: @ 825843A setvar VAR_0x8005, 2 setvar VAR_0x8006, 0 special CallBattleFactoryFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_TEMP_0, 255 releaseall end BattleFrontier_BattleFactoryLobby_EventScript_25849B:: @ 825849B lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_IS_FRONTIER_BRAIN - special CallFrontierUtilFunc + frontier_isbrain compare VAR_RESULT, TRUE goto_if_eq BattleFrontier_BattleFactoryLobby_EventScript_2584BD msgbox BattleFrontier_BattleFactoryLobby_Text_258D93, MSGBOX_DEFAULT @@ -67,13 +62,11 @@ BattleFrontier_BattleFactoryLobby_EventScript_2584BD:: @ 82584BD BattleFrontier_BattleFactoryLobby_EventScript_2584C6:: @ 82584C6 msgbox BattleFrontier_BattleFactoryLobby_Text_2592BD, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_11 - special CallFrontierUtilFunc + frontier_givepoints msgbox BattleFrontier_Text_ObtainedXBattlePoints, MSGBOX_GETPOINTS message BattleFrontier_BattleFactoryLobby_Text_259323 waitmessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_8 - special CallFrontierUtilFunc + frontier_checkairshow special LoadPlayerParty setvar VAR_0x8004, 3 setvar VAR_0x8005, 0 @@ -87,8 +80,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_258506:: @ 8258506 lockall message BattleFrontier_BattleFactoryLobby_Text_258CC7 waitmessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_8 - special CallFrontierUtilFunc + frontier_checkairshow special LoadPlayerParty setvar VAR_0x8004, 2 setvar VAR_0x8005, 2 @@ -113,8 +105,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_25853B:: @ 825853B case MULTI_B_PRESSED, BattleFrontier_BattleFactoryLobby_EventScript_258582 BattleFrontier_BattleFactoryLobby_EventScript_25857D:: @ 825857D - call BattleFrontier_BattleFactoryLobby_EventScript_23E8B4 - + call BattleFrontier_EventScript_SaveBattle BattleFrontier_BattleFactoryLobby_EventScript_258582:: @ 8258582 msgbox BattleFrontier_BattleFactoryLobby_Text_258BC5, MSGBOX_DEFAULT closemessage @@ -131,10 +122,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_258592:: @ 8258592 special CallBattleFactoryFunction playse SE_SAVE waitse - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_PAUSED, FALSE setvar VAR_TEMP_0, 255 setvar VAR_0x8006, 2 goto BattleFrontier_BattleFactoryLobby_EventScript_25871A @@ -142,28 +130,28 @@ BattleFrontier_BattleFactoryLobby_EventScript_258592:: @ 8258592 BattleFrontier_BattleFactoryLobby_EventScript_2585CB:: @ 82585CB lock faceplayer - setvar VAR_FRONTIER_FACILITY, 4 - setvar VAR_FRONTIER_BATTLE_MODE, 0 + setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_FACTORY + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES goto BattleFrontier_BattleFactoryLobby_EventScript_2585ED end BattleFrontier_BattleFactoryLobby_EventScript_2585DD:: @ 82585DD - setvar VAR_FRONTIER_FACILITY, 4 - setvar VAR_FRONTIER_BATTLE_MODE, 1 + setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_FACTORY + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES goto BattleFrontier_BattleFactoryLobby_EventScript_2585ED end BattleFrontier_BattleFactoryLobby_EventScript_2585ED:: @ 82585ED special SavePlayerParty - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleFactoryLobby_EventScript_2587B1 - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleFactoryLobby_EventScript_2587BA BattleFrontier_BattleFactoryLobby_EventScript_258606:: @ 8258606 - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleFactoryLobby_EventScript_2587C3 - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleFactoryLobby_EventScript_2587C9 waitmessage multichoice 17, 6, MULTI_CHALLENGEINFO, 0 @@ -178,12 +166,9 @@ BattleFrontier_BattleFactoryLobby_EventScript_258653:: @ 8258653 waitmessage multichoice 17, 6, MULTI_LEVEL_MODE, 0 switch VAR_RESULT - case 2, BattleFrontier_BattleFactoryLobby_EventScript_25879D + case FRONTIER_LVL_TENT, BattleFrontier_BattleFactoryLobby_EventScript_25879D case MULTI_B_PRESSED, BattleFrontier_BattleFactoryLobby_EventScript_25879D - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 1 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattleFactoryLobby_Text_258C27, MSGBOX_YESNO switch VAR_RESULT case NO, BattleFrontier_BattleFactoryLobby_EventScript_25879A @@ -194,18 +179,12 @@ BattleFrontier_BattleFactoryLobby_EventScript_2586B9:: @ 82586B9 setvar VAR_TEMP_0, 0 setvar VAR_0x8004, 0 special CallBattleFactoryFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING setvar VAR_0x8004, 2 setvar VAR_0x8005, 2 setvar VAR_0x8006, 1 special CallBattleFactoryFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_PAUSED, FALSE closemessage delay 2 call Common_EventScript_SaveGame @@ -218,9 +197,9 @@ BattleFrontier_BattleFactoryLobby_EventScript_25871A:: @ 825871A special SavePlayerParty msgbox BattleFrontier_BattleFactoryLobby_Text_258CB1, MSGBOX_DEFAULT closemessage - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleFactoryLobby_EventScript_25875C - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleFactoryLobby_EventScript_258762 applymovement VAR_LAST_TALKED, BattleFrontier_BattleFactoryLobby_Movement_2587A7 applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleFactoryLobby_Movement_2587AC @@ -239,22 +218,18 @@ BattleFrontier_BattleFactoryLobby_EventScript_258762:: @ 8258762 return BattleFrontier_BattleFactoryLobby_EventScript_258768:: @ 8258768 - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleFactoryLobby_EventScript_2587CF - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleFactoryLobby_EventScript_2587D8 goto BattleFrontier_BattleFactoryLobby_EventScript_258606 BattleFrontier_BattleFactoryLobby_EventScript_258783:: @ 8258783 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 goto BattleFrontier_BattleFactoryLobby_EventScript_25879D BattleFrontier_BattleFactoryLobby_EventScript_25879A:: @ 825879A special LoadPlayerParty - BattleFrontier_BattleFactoryLobby_EventScript_25879D:: @ 825879D msgbox BattleFrontier_BattleFactoryLobby_Text_258BC5, MSGBOX_DEFAULT release @@ -300,10 +275,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_2587D8:: @ 82587D8 BattleFrontier_BattleFactoryLobby_EventScript_2587E1:: @ 82587E1 lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW - setvar VAR_0x8005, 4 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_results FRONTIER_FACILITY_FACTORY, FRONTIER_MODE_SINGLES waitbuttonpress special RemoveRecordsWindow releaseall @@ -311,10 +283,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_2587E1:: @ 82587E1 BattleFrontier_BattleFactoryLobby_EventScript_2587FA:: @ 82587FA lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW - setvar VAR_0x8005, 4 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc + frontier_results FRONTIER_FACILITY_FACTORY, FRONTIER_MODE_DOUBLES waitbuttonpress special RemoveRecordsWindow releaseall diff --git a/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc index 92bd2e9bd..ed4346fb6 100644 --- a/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc @@ -54,7 +54,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259AF9:: @ 8259AF9 BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259B74:: @ 8259B74 msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_25AB96, MSGBOX_DEFAULT closemessage - call BattleFrontier_BattleFactoryPreBattleRoom_EventScript_23F2B7 + call BattleFrontier_EventScript_GetLvlMode compare VAR_RESULT, 0 call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_25A17C compare VAR_RESULT, 1 @@ -73,11 +73,10 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259BA5:: @ 8259BA5 playfanfare MUS_ME_ASA waitfanfare special HealPlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_9 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + frontier_getbrainstatus + compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY goto_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259C26 - playse 263 + playse SE_TOREEYE waitse msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_25AC15, MSGBOX_DEFAULT closemessage @@ -94,15 +93,12 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259BA5:: @ 8259BA5 end BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259C13:: @ 8259C13 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_9 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + frontier_getbrainstatus + compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY goto_if_ne BattleFrontier_BattleFactoryPreBattleRoom_EventScript_25A0B9 BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259C26:: @ 8259C26 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 1 call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259E1D compare VAR_RESULT, 2 @@ -144,7 +140,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259CFC:: @ 8259CFC case MULTI_B_PRESSED, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259C13 BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259D2E:: @ 8259D2E - call BattleFrontier_BattleFactoryPreBattleRoom_EventScript_23E8B4 + call BattleFrontier_EventScript_SaveBattle goto BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259C13 BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259D38:: @ 8259D38 @@ -231,8 +227,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259E47:: @ 8259E47 playse SE_SAVE waitse fadescreen 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SOFT_RESET - special CallFrontierUtilFunc + frontier_reset end BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259E69:: @ 8259E69 @@ -240,10 +235,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259E69:: @ 8259E69 setvar VAR_0x8004, 10 setvar VAR_0x8005, 0 special CallBattleFactoryFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 6 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_6, 1 special CalculatePlayerPartyCount goto BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259C13 diff --git a/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc index aff551837..c3061b8cf 100644 --- a/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc @@ -5,8 +5,7 @@ BattleFrontier_BattlePalaceBattleRoom_MapScripts:: @ 824F815 .byte 0 BattleFrontier_BattlePalaceBattleRoom_MapScript1_24F825: @ 824F825 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_FRONTIER_TRAINERS - special CallFrontierUtilFunc + frontier_settrainers call BattleFrontier_BattlePalaceBattleRoom_EventScript_24F833 end @@ -34,19 +33,14 @@ BattleFrontier_BattlePalaceBattleRoom_MapScript2_24F861: @ 824F861 BattleFrontier_BattlePalaceBattleRoom_EventScript_24F86B:: @ 824F86B showobjectat 1, MAP_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 0 goto_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_24F8B5 applymovement 1, BattleFrontier_BattlePalaceBattleRoom_Movement_24FE9B waitmovement 0 applymovement 3, BattleFrontier_BattlePalaceBattleRoom_Movement_24FEAC setvar VAR_TEMP_2, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 6 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_6, 1 goto BattleFrontier_BattlePalaceBattleRoom_EventScript_24F98A BattleFrontier_BattlePalaceBattleRoom_EventScript_24F8B5:: @ 824F8B5 @@ -68,22 +62,14 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24F8BF:: @ 824F8BF case 1, BattleFrontier_BattlePalaceBattleRoom_EventScript_24F911 BattleFrontier_BattlePalaceBattleRoom_EventScript_24F8FA:: @ 824F8FA - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST goto BattleFrontier_BattlePalaceBattleRoom_EventScript_24FEBB BattleFrontier_BattlePalaceBattleRoom_EventScript_24F911:: @ 824F911 - call BattleFrontier_BattlePalaceBattleRoom_EventScript_241EBA - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + call BattleFrontier_EventScript_IncrementWinStreak + frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 2 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT switch VAR_RESULT case 7, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB28 applymovement 2, BattleFrontier_BattlePalaceBattleRoom_Movement_24FEA7 @@ -95,22 +81,17 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24F911:: @ 824F911 msgbox BattleFrontier_BattlePalaceBattleRoom_Text_24FF00, MSGBOX_DEFAULT special LoadPlayerParty special SavePlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc + frontier_setpartyorder FRONTIER_PARTY_SIZE playfanfare MUS_ME_ASA waitfanfare special HealPlayerParty BattleFrontier_BattlePalaceBattleRoom_EventScript_24F98A:: @ 824F98A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_9 - special CallFrontierUtilFunc + frontier_getbrainstatus copyvar VAR_TEMP_F, VAR_RESULT - compare VAR_RESULT, 0 + compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY goto_if_ne BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB61 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 1 call_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_24FE66 compare VAR_RESULT, 2 @@ -152,7 +133,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FA78:: @ 824FA78 case MULTI_B_PRESSED, BattleFrontier_BattlePalaceBattleRoom_EventScript_24F98A BattleFrontier_BattlePalaceBattleRoom_EventScript_24FAAA:: @ 824FAAA - call BattleFrontier_BattlePalaceBattleRoom_EventScript_23E8B4 + call BattleFrontier_EventScript_SaveBattle goto BattleFrontier_BattlePalaceBattleRoom_EventScript_24F98A BattleFrontier_BattlePalaceBattleRoom_EventScript_24FAB4:: @ 824FAB4 @@ -178,10 +159,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB14:: @ 824FB14 goto BattleFrontier_BattlePalaceBattleRoom_EventScript_24F8BF BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB28:: @ 824FB28 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 3 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON goto BattleFrontier_BattlePalaceBattleRoom_EventScript_24FEBB BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB3F:: @ 824FB3F @@ -193,8 +171,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB3F:: @ 824FB3F playse SE_SAVE waitse fadescreen 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SOFT_RESET - special CallFrontierUtilFunc + frontier_reset end BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB61:: @ 824FB61 @@ -226,7 +203,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FBD0:: @ 824FBD0 case MULTI_B_PRESSED, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB79 BattleFrontier_BattlePalaceBattleRoom_EventScript_24FC06:: @ 824FC06 - call BattleFrontier_BattlePalaceBattleRoom_EventScript_242170 + call BattleFrontier_EventScript_SetBrainObjectGfx msgbox BattleFrontier_BattlePalaceBattleRoom_Text_25017C, MSGBOX_DEFAULT closemessage applymovement 1, BattleFrontier_BattlePalaceBattleRoom_Movement_24FE97 @@ -241,19 +218,14 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FC06:: @ 824FC06 applymovement 2, BattleFrontier_BattlePalaceBattleRoom_Movement_24FEF2 waitmovement 0 switch VAR_TEMP_F - case 2, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD3A - case 3, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FCAA - case 4, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD67 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + case FRONTIER_BRAIN_GOLD, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD3A + case FRONTIER_BRAIN_STREAK, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FCAA + case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD67 + frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH + compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattlePalaceBattleRoom_EventScript_24FCAA msgbox BattleFrontier_BattlePalaceBattleRoom_Text_2501C1, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - + frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH BattleFrontier_BattlePalaceBattleRoom_EventScript_24FCAA:: @ 824FCAA msgbox BattleFrontier_BattlePalaceBattleRoom_Text_2502C4, MSGBOX_DEFAULT call BattleFrontier_BattlePalaceBattleRoom_EventScript_24FDF7 @@ -264,8 +236,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FCAA:: @ 824FCAA BattleFrontier_BattlePalaceBattleRoom_EventScript_24FCC7:: @ 824FCC7 setvar VAR_0x8004, 6 special CallBattlePalaceFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS - special CallFrontierUtilFunc + frontier_getsymbols compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB28 msgbox BattleFrontier_BattlePalaceBattleRoom_Text_2502FF, MSGBOX_DEFAULT @@ -276,8 +247,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FCC7:: @ 824FCC7 message BattleFrontier_BattlePalaceBattleRoom_Text_2503DC waitmessage waitfanfare - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL - special CallFrontierUtilFunc + frontier_givesymbol applymovement 2, Common_Movement_WalkInPlaceLeft waitmovement 0 applymovement 1, Common_Movement_WalkInPlaceFastestRight @@ -287,16 +257,11 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FCC7:: @ 824FCC7 goto BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB28 BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD3A:: @ 824FD3A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH + compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD67 msgbox BattleFrontier_BattlePalaceBattleRoom_Text_250485, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - + frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD67:: @ 824FD67 msgbox BattleFrontier_BattlePalaceBattleRoom_Text_250572, MSGBOX_DEFAULT call BattleFrontier_BattlePalaceBattleRoom_EventScript_24FDF7 @@ -307,8 +272,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD67:: @ 824FD67 BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD84:: @ 824FD84 setvar VAR_0x8004, 6 special CallBattlePalaceFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS - special CallFrontierUtilFunc + frontier_getsymbols compare VAR_RESULT, 2 goto_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB28 msgbox BattleFrontier_BattlePalaceBattleRoom_Text_25057E, MSGBOX_DEFAULT @@ -319,8 +283,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD84:: @ 824FD84 message BattleFrontier_BattlePalaceBattleRoom_Text_250699 waitmessage waitfanfare - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL - special CallFrontierUtilFunc + frontier_givesymbol applymovement 2, Common_Movement_WalkInPlaceLeft waitmovement 0 applymovement 1, Common_Movement_WalkInPlaceFastestRight @@ -333,20 +296,15 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FDF7:: @ 824FDF7 VerdanturfTown_BattleTentBattleRoom_EventScript_24FDF7:: @ 824FDF7 closemessage setvar VAR_TEMP_2, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 6 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_6, 0 special HealPlayerParty setvar VAR_0x8004, SPECIAL_BATTLE_PALACE setvar VAR_0x8005, 0 special DoSpecialTrainerBattle waitstate - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_18 - special CallFrontierUtilFunc + frontier_restorehelditems special HealPlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_21 - special CallFrontierUtilFunc + frontier_resetsketch return BattleFrontier_BattlePalaceBattleRoom_MapScript2_24FE34: @ 824FE34 @@ -460,7 +418,7 @@ BattleFrontier_BattlePalaceBattleRoom_Movement_24FEB6: @ 824FEB6 BattleFrontier_BattlePalaceBattleRoom_EventScript_24FEBB:: @ 824FEBB copyvar VAR_RESULT, VAR_FRONTIER_BATTLE_MODE - compare VAR_RESULT, 1 + compare VAR_RESULT, FRONTIER_MODE_DOUBLES goto_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_24FED5 warp MAP_BATTLE_FRONTIER_BATTLE_PALACE_LOBBY, 255, 5, 7 waitstate diff --git a/data/maps/BattleFrontier_BattlePalaceCorridor/scripts.inc b/data/maps/BattleFrontier_BattlePalaceCorridor/scripts.inc index a6116d3dc..d9ef07f14 100644 --- a/data/maps/BattleFrontier_BattlePalaceCorridor/scripts.inc +++ b/data/maps/BattleFrontier_BattlePalaceCorridor/scripts.inc @@ -25,10 +25,8 @@ BattleFrontier_BattlePalaceCorridor_EventScript_24F4B3:: @ 824F4B3 compare VAR_RESULT, 4 call_if_eq BattleFrontier_BattlePalaceCorridor_EventScript_24F5AF closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 1 - special CallFrontierUtilFunc - compare VAR_RESULT, 1 + frontier_get FRONTIER_DATA_LVL_MODE + compare VAR_RESULT, FRONTIER_LVL_OPEN goto_if_eq BattleFrontier_BattlePalaceCorridor_EventScript_24F553 applymovement 1, BattleFrontier_BattlePalaceCorridor_Movement_24F5BD applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePalaceCorridor_Movement_24F5C4 diff --git a/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc b/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc index 7da76531d..2d48199e5 100644 --- a/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc @@ -14,15 +14,14 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D793:: @ 824D793 BattleFrontier_BattlePalaceLobby_MapScript2_24D79D: @ 824D79D map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePalaceLobby_EventScript_24D7C7 - map_script_2 VAR_TEMP_0, 1, BattleFrontier_BattlePalaceLobby_EventScript_24D7D0 - map_script_2 VAR_TEMP_0, 2, BattleFrontier_BattlePalaceLobby_EventScript_24D908 - map_script_2 VAR_TEMP_0, 3, BattleFrontier_BattlePalaceLobby_EventScript_24D817 - map_script_2 VAR_TEMP_0, 4, BattleFrontier_BattlePalaceLobby_EventScript_24D873 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattlePalaceLobby_EventScript_24D7D0 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattlePalaceLobby_EventScript_24D908 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, BattleFrontier_BattlePalaceLobby_EventScript_24D817 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattlePalaceLobby_EventScript_24D873 .2byte 0 BattleFrontier_BattlePalaceLobby_EventScript_24D7C7:: @ 824D7C7 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_0 - special CallFrontierUtilFunc + frontier_getstatus end BattleFrontier_BattlePalaceLobby_EventScript_24D7D0:: @ 824D7D0 @@ -37,18 +36,14 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D7D0:: @ 824D7D0 setvar VAR_0x8005, 2 setvar VAR_0x8006, 0 special CallBattlePalaceFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_TEMP_0, 255 releaseall end BattleFrontier_BattlePalaceLobby_EventScript_24D817:: @ 824D817 lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_IS_FRONTIER_BRAIN - special CallFrontierUtilFunc + frontier_isbrain compare VAR_RESULT, TRUE goto_if_eq BattleFrontier_BattlePalaceLobby_EventScript_24D838 msgbox BattleFrontier_BattlePalaceLobby_Text_24E497, MSGBOX_DEFAULT @@ -59,8 +54,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D838:: @ 824D838 BattleFrontier_BattlePalaceLobby_EventScript_24D840:: @ 824D840 msgbox BattleFrontier_BattlePalaceLobby_Text_24EEB9, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_11 - special CallFrontierUtilFunc + frontier_givepoints msgbox BattleFrontier_Text_ObtainedXBattlePoints, MSGBOX_GETPOINTS message BattleFrontier_BattlePalaceLobby_Text_24E4F7 waitmessage @@ -87,8 +81,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D873:: @ 824D873 end BattleFrontier_BattlePalaceLobby_EventScript_24D8A1:: @ 824D8A1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_8 - special CallFrontierUtilFunc + frontier_checkairshow special LoadPlayerParty special HealPlayerParty setvar VAR_0x8004, 7 @@ -108,8 +101,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D8A1:: @ 824D8A1 case MULTI_B_PRESSED, BattleFrontier_BattlePalaceLobby_EventScript_24D907 BattleFrontier_BattlePalaceLobby_EventScript_24D902:: @ 824D902 - call BattleFrontier_BattlePalaceLobby_EventScript_23E8B4 - + call BattleFrontier_EventScript_SaveBattle BattleFrontier_BattlePalaceLobby_EventScript_24D907:: @ 824D907 return @@ -123,26 +115,23 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D908:: @ 824D908 special CallBattlePalaceFunction playse SE_SAVE waitse - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_PAUSED, FALSE setvar VAR_TEMP_0, 255 goto BattleFrontier_BattlePalaceLobby_EventScript_24DAF3 BattleFrontier_BattlePalaceLobby_EventScript_24D944:: @ 824D944 lock faceplayer - setvar VAR_FRONTIER_FACILITY, 2 - setvar VAR_FRONTIER_BATTLE_MODE, 0 + setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_PALACE + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES goto BattleFrontier_BattlePalaceLobby_EventScript_24D968 end BattleFrontier_BattlePalaceLobby_EventScript_24D956:: @ 824D956 lock faceplayer - setvar VAR_FRONTIER_FACILITY, 2 - setvar VAR_FRONTIER_BATTLE_MODE, 1 + setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_PALACE + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES goto BattleFrontier_BattlePalaceLobby_EventScript_24D968 end @@ -153,15 +142,15 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D968:: @ 824D968 compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattlePalaceLobby_EventScript_24D817 special SavePlayerParty - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_24DB9E - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_24DBA7 BattleFrontier_BattlePalaceLobby_EventScript_24D999:: @ 824D999 - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_24DBB0 - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_24DBB6 waitmessage multichoice 17, 6, MULTI_CHALLENGEINFO, 0 @@ -176,19 +165,15 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D9E6:: @ 824D9E6 waitmessage multichoice 17, 6, MULTI_LEVEL_MODE, 0 switch VAR_RESULT - case 2, BattleFrontier_BattlePalaceLobby_EventScript_24DB94 + case FRONTIER_LVL_TENT, BattleFrontier_BattlePalaceLobby_EventScript_24DB94 case MULTI_B_PRESSED, BattleFrontier_BattlePalaceLobby_EventScript_24DB94 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_15 - special CallFrontierUtilFunc - compare VAR_0x8004, 1 + frontier_checkineligible + compare VAR_0x8004, TRUE goto_if_eq BattleFrontier_BattlePalaceLobby_EventScript_24DB45 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 1 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattlePalaceLobby_Text_24E399, MSGBOX_DEFAULT fadescreen 1 - call BattleFrontier_BattlePalaceLobby_EventScript_23F2B7 + call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT setvar VAR_0x8005, 3 special sub_80F9490 @@ -203,23 +188,15 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D9E6:: @ 824D9E6 BattleFrontier_BattlePalaceLobby_EventScript_24DA87:: @ 824DA87 setvar VAR_TEMP_0, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_SELECTED_MON_ORDER setvar VAR_0x8004, 0 special CallBattlePalaceFunction setvar VAR_0x8004, 2 setvar VAR_0x8005, 2 setvar VAR_0x8006, 1 special CallBattlePalaceFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING + frontier_set FRONTIER_DATA_PAUSED, FALSE special LoadPlayerParty closemessage delay 2 @@ -230,9 +207,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24DA87:: @ 824DA87 BattleFrontier_BattlePalaceLobby_EventScript_24DAF3:: @ 824DAF3 special SavePlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc + frontier_setpartyorder FRONTIER_PARTY_SIZE msgbox BattleFrontier_BattlePalaceLobby_Text_24E408, MSGBOX_DEFAULT closemessage call BattleFrontier_BattlePalaceLobby_EventScript_24DBBC @@ -242,7 +217,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24DAF3:: @ 824DAF3 end BattleFrontier_BattlePalaceLobby_EventScript_24DB20:: @ 824DB20 - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES goto_if_eq BattleFrontier_BattlePalaceLobby_EventScript_24DB38 msgbox BattleFrontier_BattlePalaceLobby_Text_24DE17, MSGBOX_DEFAULT goto BattleFrontier_BattlePalaceLobby_EventScript_24D999 @@ -253,8 +228,8 @@ BattleFrontier_BattlePalaceLobby_EventScript_24DB38:: @ 824DB38 BattleFrontier_BattlePalaceLobby_EventScript_24DB45:: @ 824DB45 switch VAR_RESULT - case 0, BattleFrontier_BattlePalaceLobby_EventScript_24DB60 - case 1, BattleFrontier_BattlePalaceLobby_EventScript_24DB6D + case FRONTIER_LVL_50, BattleFrontier_BattlePalaceLobby_EventScript_24DB60 + case FRONTIER_LVL_OPEN, BattleFrontier_BattlePalaceLobby_EventScript_24DB6D BattleFrontier_BattlePalaceLobby_EventScript_24DB60:: @ 824DB60 msgbox BattleFrontier_BattlePalaceLobby_Text_24E173, MSGBOX_DEFAULT @@ -265,10 +240,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24DB6D:: @ 824DB6D goto BattleFrontier_BattlePalaceLobby_EventScript_24DB9C BattleFrontier_BattlePalaceLobby_EventScript_24DB7A:: @ 824DB7A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 goto BattleFrontier_BattlePalaceLobby_EventScript_24DB94 BattleFrontier_BattlePalaceLobby_EventScript_24DB91:: @ 824DB91 @@ -298,24 +270,24 @@ BattleFrontier_BattlePalaceLobby_EventScript_24DBB6:: @ 824DBB6 return BattleFrontier_BattlePalaceLobby_EventScript_24DBBC:: @ 824DBBC - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_24DC23 - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_24DC29 applymovement VAR_LAST_TALKED, BattleFrontier_BattlePalaceLobby_Movement_24DC47 applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePalaceLobby_Movement_24DC47 waitmovement 0 - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_24DC2F - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_24DC35 waitdooranim applymovement VAR_LAST_TALKED, BattleFrontier_BattlePalaceLobby_Movement_24DC49 applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePalaceLobby_Movement_24DC4C waitmovement 0 - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_24DC3B - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_24DC41 waitdooranim return @@ -361,10 +333,7 @@ BattleFrontier_BattlePalaceLobby_Movement_24DC4C: @ 824DC4C BattleFrontier_BattlePalaceLobby_EventScript_24DC50:: @ 824DC50 lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW - setvar VAR_0x8005, 2 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_results FRONTIER_FACILITY_PALACE, FRONTIER_MODE_SINGLES waitbuttonpress special RemoveRecordsWindow releaseall @@ -372,10 +341,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24DC50:: @ 824DC50 BattleFrontier_BattlePalaceLobby_EventScript_24DC69:: @ 824DC69 lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW - setvar VAR_0x8005, 2 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc + frontier_results FRONTIER_FACILITY_PALACE, FRONTIER_MODE_DOUBLES waitbuttonpress special RemoveRecordsWindow releaseall diff --git a/data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc b/data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc index cef06f1be..7597fa0ef 100644 --- a/data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc @@ -9,29 +9,21 @@ BattleFrontier_BattlePikeCorridor_MapScript2_25C77C: @ 825C77C BattleFrontier_BattlePikeCorridor_EventScript_25C786:: @ 825C786 delay 16 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 2 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_BATTLE_NUM, 1 setvar VAR_0x8004, BATTLE_PIKE_FUNC_CLEAR_TRAINER_IDS special CallBattlePikeFunction - setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_HEALING_ROOMS_DISABLED - setvar VAR_0x8005, 1 - special CallBattlePikeFunction + battlepike_nohealing TRUE applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeCorridor_Movement_25C80B applymovement 1, BattleFrontier_BattlePikeCorridor_Movement_25C812 waitmovement 0 lockall - msgbox BattleFrontier_BattlePikeCorridor_Text_25C817, MSGBOX_DEFAULT + msgbox BattleFrontier_BattlePikeCorridor_Text_YourChallengeHasBegun, MSGBOX_DEFAULT closemessage releaseall applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeCorridor_Movement_25C80E waitmovement 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 99 - special CallFrontierUtilFunc - call BattleFrontier_BattlePikeCorridor_EventScript_25BB49 + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 99 + call BattleFrontier_BattlePike_EventScript_CloseCurtain warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM, 255, 6, 10 waitstate end @@ -63,7 +55,7 @@ BattleFrontier_BattlePikeCorridor_Movement_25C812: @ 825C812 face_down step_end -BattleFrontier_BattlePikeCorridor_Text_25C817: @ 825C817 +BattleFrontier_BattlePikeCorridor_Text_YourChallengeHasBegun: @ 825C817 .string "Your Battle Choice challenge\n" .string "has now begun…$" diff --git a/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc b/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc index b06d90200..af2fa0125 100644 --- a/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc @@ -5,9 +5,9 @@ BattleFrontier_BattlePikeLobby_MapScripts:: @ 825B6C6 BattleFrontier_BattlePikeLobby_MapScript2_25B6D1: @ 825B6D1 map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeLobby_EventScript_25B707 - map_script_2 VAR_TEMP_0, 1, BattleFrontier_BattlePikeLobby_EventScript_25B710 - map_script_2 VAR_TEMP_0, 3, BattleFrontier_BattlePikeLobby_EventScript_25B762 - map_script_2 VAR_TEMP_0, 4, BattleFrontier_BattlePikeLobby_EventScript_25B806 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattlePikeLobby_EventScript_25B710 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, BattleFrontier_BattlePikeLobby_EventScript_25B762 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattlePikeLobby_EventScript_25B806 .2byte 0 BattleFrontier_BattlePikeLobby_MapScript2_25B6F3: @ 825B6F3 @@ -20,8 +20,7 @@ BattleFrontier_BattlePikeLobby_EventScript_25B6FD:: @ 825B6FD end BattleFrontier_BattlePikeLobby_EventScript_25B707:: @ 825B707 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_0 - special CallFrontierUtilFunc + frontier_getstatus end BattleFrontier_BattlePikeLobby_EventScript_25B710:: @ 825B710 @@ -31,26 +30,19 @@ BattleFrontier_BattlePikeLobby_EventScript_25B710:: @ 825B710 lockall msgbox BattleFrontier_BattlePikeLobby_Text_25C2E0, MSGBOX_DEFAULT closemessage - setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_DATA - setvar VAR_0x8005, 1 - setvar VAR_0x8006, 0 - special CallBattlePikeFunction + battlepike_setstreak 0 setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_DATA setvar VAR_0x8005, 4 setvar VAR_0x8006, 0 special CallBattlePikeFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_TEMP_0, 255 releaseall end BattleFrontier_BattlePikeLobby_EventScript_25B762:: @ 825B762 lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_IS_FRONTIER_BRAIN - special CallFrontierUtilFunc + frontier_isbrain compare VAR_RESULT, TRUE goto_if_eq BattleFrontier_BattlePikeLobby_EventScript_25B784 msgbox BattleFrontier_BattlePikeLobby_Text_25C18A, MSGBOX_DEFAULT @@ -63,11 +55,9 @@ BattleFrontier_BattlePikeLobby_EventScript_25B784:: @ 825B784 BattleFrontier_BattlePikeLobby_EventScript_25B78D:: @ 825B78D msgbox BattleFrontier_BattlePikeLobby_Text_25C3D9, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_11 - special CallFrontierUtilFunc + frontier_givepoints msgbox BattleFrontier_Text_ObtainedXBattlePoints, MSGBOX_GETPOINTS - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_8 - special CallFrontierUtilFunc + frontier_checkairshow setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_DATA setvar VAR_0x8005, 3 special CallBattlePikeFunction @@ -97,12 +87,8 @@ BattleFrontier_BattlePikeLobby_EventScript_25B806:: @ 825B806 lockall message BattleFrontier_BattlePikeLobby_Text_25C146 waitmessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_8 - special CallFrontierUtilFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 2 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_checkairshow + frontier_set FRONTIER_DATA_BATTLE_NUM, 0 setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_DATA setvar VAR_0x8005, 4 setvar VAR_0x8006, 0 @@ -125,8 +111,8 @@ BattleFrontier_BattlePikeLobby_EventScript_25B806:: @ 825B806 BattleFrontier_BattlePikeLobby_EventScript_25B868:: @ 825B868 lock faceplayer - setvar VAR_FRONTIER_FACILITY, 5 - setvar VAR_FRONTIER_BATTLE_MODE, 0 + setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_PIKE + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES special SavePlayerParty msgbox BattleFrontier_BattlePikeLobby_Text_25BB52, MSGBOX_DEFAULT @@ -145,19 +131,15 @@ BattleFrontier_BattlePikeLobby_EventScript_25B8BB:: @ 825B8BB waitmessage multichoice 17, 6, MULTI_LEVEL_MODE, 0 switch VAR_RESULT - case 2, BattleFrontier_BattlePikeLobby_EventScript_25BA76 + case FRONTIER_LVL_TENT, BattleFrontier_BattlePikeLobby_EventScript_25BA76 case MULTI_B_PRESSED, BattleFrontier_BattlePikeLobby_EventScript_25BA76 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_15 - special CallFrontierUtilFunc - compare VAR_0x8004, 1 + frontier_checkineligible + compare VAR_0x8004, TRUE goto_if_eq BattleFrontier_BattlePikeLobby_EventScript_25BA27 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 1 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattlePikeLobby_Text_25C094, MSGBOX_DEFAULT fadescreen 1 - call BattleFrontier_BattlePikeLobby_EventScript_23F2B7 + call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT setvar VAR_0x8005, 3 special sub_80F9490 @@ -173,25 +155,17 @@ BattleFrontier_BattlePikeLobby_EventScript_25B8BB:: @ 825B8BB BattleFrontier_BattlePikeLobby_EventScript_25B95C:: @ 825B95C setvar VAR_TEMP_0, 0 setvar VAR_TEMP_1, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_SELECTED_MON_ORDER setvar VAR_0x8004, BATTLE_PIKE_FUNC_INIT_CHALLENGE special CallBattlePikeFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_DATA setvar VAR_0x8005, 4 setvar VAR_0x8006, 1 special CallBattlePikeFunction setvar VAR_0x8004, BATTLE_PIKE_FUNC_SAVE_MON_HELD_ITEMS special CallBattlePikeFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_PAUSED, FALSE special LoadPlayerParty closemessage delay 2 @@ -202,16 +176,13 @@ BattleFrontier_BattlePikeLobby_EventScript_25B95C:: @ 825B95C compare VAR_RESULT, 0 goto_if_eq BattleFrontier_BattlePikeLobby_EventScript_25BA5C special SavePlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc + frontier_setpartyorder FRONTIER_PARTY_SIZE msgbox BattleFrontier_BattlePikeLobby_Text_25C130, MSGBOX_DEFAULT closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_FRONTIER_TRAINERS - special CallFrontierUtilFunc + frontier_settrainers call BattleFrontier_BattlePikeLobby_EventScript_25BA94 special HealPlayerParty - call BattleFrontier_BattlePikeLobby_EventScript_25BB49 + call BattleFrontier_BattlePike_EventScript_CloseCurtain warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR, 255, 6, 7 setvar VAR_TEMP_0, 0 waitstate @@ -223,8 +194,8 @@ BattleFrontier_BattlePikeLobby_EventScript_25BA1A:: @ 825BA1A BattleFrontier_BattlePikeLobby_EventScript_25BA27:: @ 825BA27 switch VAR_RESULT - case 0, BattleFrontier_BattlePikeLobby_EventScript_25BA42 - case 1, BattleFrontier_BattlePikeLobby_EventScript_25BA4F + case FRONTIER_LVL_50, BattleFrontier_BattlePikeLobby_EventScript_25BA42 + case FRONTIER_LVL_OPEN, BattleFrontier_BattlePikeLobby_EventScript_25BA4F BattleFrontier_BattlePikeLobby_EventScript_25BA42:: @ 825BA42 msgbox BattleFrontier_BattlePikeLobby_Text_25BE8C, MSGBOX_DEFAULT @@ -235,27 +206,20 @@ BattleFrontier_BattlePikeLobby_EventScript_25BA4F:: @ 825BA4F goto BattleFrontier_BattlePikeLobby_EventScript_25BA7E BattleFrontier_BattlePikeLobby_EventScript_25BA5C:: @ 825BA5C - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 goto BattleFrontier_BattlePikeLobby_EventScript_25BA76 BattleFrontier_BattlePikeLobby_EventScript_25BA73:: @ 825BA73 special LoadPlayerParty - BattleFrontier_BattlePikeLobby_EventScript_25BA76:: @ 825BA76 msgbox BattleFrontier_BattlePikeLobby_Text_25BE02, MSGBOX_DEFAULT - BattleFrontier_BattlePikeLobby_EventScript_25BA7E:: @ 825BA7E release end BattleFrontier_BattlePikeLobby_EventScript_25BA80:: @ 825BA80 lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW - setvar VAR_0x8005, 5 - special CallFrontierUtilFunc + frontier_results FRONTIER_FACILITY_PIKE waitbuttonpress special RemoveRecordsWindow releaseall @@ -325,10 +289,7 @@ BattleFrontier_BattlePikeLobby_EventScript_25BB47:: @ 825BB47 releaseall end -BattleFrontier_BattlePikeCorridor_EventScript_25BB49:: @ 825BB49 -BattleFrontier_BattlePikeLobby_EventScript_25BB49:: @ 825BB49 -BattleFrontier_BattlePikeRandomRoom1_EventScript_25BB49:: @ 825BB49 -BattleFrontier_BattlePikeThreePathRoom_EventScript_25BB49:: @ 825BB49 +BattleFrontier_BattlePike_EventScript_CloseCurtain:: @ 825BB49 playse SE_CURTAIN special CloseBattlePikeCurtain waitstate diff --git a/data/maps/BattleFrontier_BattlePikeRandomRoom1/scripts.inc b/data/maps/BattleFrontier_BattlePikeRandomRoom1/scripts.inc deleted file mode 100644 index 51dc3fcaf..000000000 --- a/data/maps/BattleFrontier_BattlePikeRandomRoom1/scripts.inc +++ /dev/null @@ -1,895 +0,0 @@ -BattleFrontier_BattlePikeRandomRoom1_MapScripts:: @ 825D152 - map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattlePikeRandomRoom1_MapScript1_2C423E - map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattlePikeRandomRoom1_MapScript1_2C3E25 - map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattlePikeRandomRoom1_MapScript2_25D167 - map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattlePikeRandomRoom1_MapScript2_2C3EDE - .byte 0 - -BattleFrontier_BattlePikeRandomRoom1_MapScript2_25D167: @ 825D167 - map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D171 - .2byte 0 - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D171:: @ 825D171 - setvar VAR_TEMP_0, 1 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_TYPE - special CallBattlePikeFunction - switch VAR_RESULT - case 0, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D1C6 - case 1, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D50E - case 3, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D605 - case 6, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D231 - case 7, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D53E - case 8, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D2BF - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D1C6:: @ 825D1C6 - lockall - delay 16 - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D795 - waitmovement 0 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_BUFFER_RECORD_MIX_MSG - setvar VAR_0x8005, 0 - special CallBattlePikeFunction - msgbox gStringVar4, MSGBOX_DEFAULT - waitmessage - closemessage - releaseall - setvar VAR_0x8004, SPECIAL_BATTLE_PIKE_SINGLE - setvar VAR_0x8005, 0 - special DoSpecialTrainerBattle - waitstate - switch VAR_RESULT - case 1, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D226 - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D20A:: @ 825D20A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 4 - special CallFrontierUtilFunc - warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 255, 5, 6 - waitstate - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D226:: @ 825D226 - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D798 - waitmovement 0 - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D231:: @ 825D231 - lockall - delay 16 - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DDFE, MSGBOX_DEFAULT - waitmessage - closemessage - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D795 - waitmovement 0 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_BUFFER_RECORD_MIX_MSG - setvar VAR_0x8005, 0 - special CallBattlePikeFunction - msgbox gStringVar4, MSGBOX_DEFAULT - waitmessage - closemessage - releaseall - setvar VAR_0x8004, SPECIAL_BATTLE_PIKE_SINGLE - setvar VAR_0x8005, 0 - special DoSpecialTrainerBattle - waitstate - switch VAR_RESULT - case 1, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D285 - goto BattleFrontier_BattlePikeRandomRoom1_EventScript_25D20A - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D285:: @ 825D285 - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D798 - waitmovement 0 - applymovement 2, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7B6 - waitmovement 0 - lock - faceplayer - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DE3F, MSGBOX_DEFAULT - playfanfare MUS_ME_ASA - waitfanfare - special HealPlayerParty - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DE94, MSGBOX_DEFAULT - closemessage - release - applymovement 2, BattleFrontier_BattlePikeRandomRoom1_Movement_25D798 - waitmovement 0 - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D2BF:: @ 825D2BF - delay 22 - lockall - applymovement 2, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7DF - waitmovement 0 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_HEAL_MONS_BEFORE_QUEEN - special CallBattlePikeFunction - switch VAR_RESULT - case 0, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D4DC - case 1, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D4EA - case 2, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D4FC - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D2FB:: @ 825D2FB - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25E311, MSGBOX_DEFAULT - closemessage - special SpawnCameraObject - applymovement OBJ_EVENT_ID_CAMERA, BattleFrontier_BattlePikeRandomRoom1_Movement_25D9B0 - applymovement 2, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7E2 - waitmovement 0 - playse 267 - call BattleFrontier_BattlePikeRandomRoom1_EventScript_25D8E7 - delay 4 - call BattleFrontier_BattlePikeRandomRoom1_EventScript_25D8A4 - delay 4 - call BattleFrontier_BattlePikeRandomRoom1_EventScript_25D96D - delay 4 - waitse - delay 60 - playse 268 - delay 65 - call BattleFrontier_BattlePikeRandomRoom1_EventScript_25D8A4 - showobjectat 1, MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1 - delay 4 - call BattleFrontier_BattlePikeRandomRoom1_EventScript_25D8E7 - delay 4 - call BattleFrontier_BattlePikeRandomRoom1_EventScript_25D92A - waitse - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7E7 - waitmovement 0 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_QUEEN_FIGHT_TYPE - special CallBattlePikeFunction - switch VAR_RESULT - case 2, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D416 - case 3, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D3BD - case 4, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D443 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 - goto_if_ne BattleFrontier_BattlePikeRandomRoom1_EventScript_25D3BD - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DED2, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D3BD:: @ 825D3BD - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DF71, MSGBOX_DEFAULT - call BattleFrontier_BattlePikeRandomRoom1_EventScript_25D77B - compare VAR_RESULT, 1 - goto_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_25D3DA - goto BattleFrontier_BattlePikeRandomRoom1_EventScript_25D20A - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D3DA:: @ 825D3DA - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS - special CallFrontierUtilFunc - compare VAR_RESULT, 0 - goto_if_ne BattleFrontier_BattlePikeRandomRoom1_EventScript_25D49D - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DFA2, MSGBOX_DEFAULT - waitmessage - playfanfare MUS_ME_SYMBOLGET - message BattleFrontier_BattlePikeRandomRoom1_Text_25DFD0 - waitmessage - waitfanfare - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL - special CallFrontierUtilFunc - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25E003, MSGBOX_DEFAULT - closemessage - goto BattleFrontier_BattlePikeRandomRoom1_EventScript_25D49D - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D416:: @ 825D416 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 - goto_if_ne BattleFrontier_BattlePikeRandomRoom1_EventScript_25D443 - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25E02C, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D443:: @ 825D443 - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25E0E8, MSGBOX_DEFAULT - call BattleFrontier_BattlePikeRandomRoom1_EventScript_25D77B - compare VAR_RESULT, 1 - goto_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_25D460 - goto BattleFrontier_BattlePikeRandomRoom1_EventScript_25D20A - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D460:: @ 825D460 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS - special CallFrontierUtilFunc - compare VAR_RESULT, 2 - goto_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_25D49D - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25E0F6, MSGBOX_DEFAULT - waitmessage - playfanfare MUS_ME_SYMBOLGET - message BattleFrontier_BattlePikeRandomRoom1_Text_25E118 - waitmessage - waitfanfare - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL - special CallFrontierUtilFunc - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25E140, MSGBOX_DEFAULT - closemessage - goto BattleFrontier_BattlePikeRandomRoom1_EventScript_25D49D - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D49D:: @ 825D49D - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7EA - waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7DC - waitmovement 0 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_DATA - setvar VAR_0x8005, 1 - special CallBattlePikeFunction - addvar VAR_RESULT, 1 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_DATA - setvar VAR_0x8005, 1 - copyvar VAR_0x8006, VAR_RESULT - special CallBattlePikeFunction - call BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4144 - waitstate - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D4DC:: @ 825D4DC - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25E15D, MSGBOX_DEFAULT - goto BattleFrontier_BattlePikeRandomRoom1_EventScript_25D2FB - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D4EA:: @ 825D4EA - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25E1DD, MSGBOX_DEFAULT - playfanfare MUS_ME_ASA - waitfanfare - goto BattleFrontier_BattlePikeRandomRoom1_EventScript_25D2FB - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D4FC:: @ 825D4FC - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25E238, MSGBOX_DEFAULT - playfanfare MUS_ME_ASA - waitfanfare - goto BattleFrontier_BattlePikeRandomRoom1_EventScript_25D2FB - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D50E:: @ 825D50E - lockall - delay 16 - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D795 - waitmovement 0 - message BattleFrontier_BattlePikeRandomRoom1_Text_25D9B6 - waitmessage - playfanfare MUS_ME_ASA - waitfanfare - special HealPlayerParty - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DA13, MSGBOX_DEFAULT - closemessage - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D798 - waitmovement 0 - releaseall - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D53E:: @ 825D53E - lockall - delay 16 - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7C1 - applymovement 2, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7C3 - waitmovement 0 - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7C5 - applymovement 2, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7C5 - waitmovement 0 - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7C8 - applymovement 2, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7CA - waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7BB - waitmovement 0 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_BUFFER_RECORD_MIX_MSG - setvar VAR_0x8005, 0 - special CallBattlePikeFunction - msgbox gStringVar4, MSGBOX_DEFAULT - closemessage - delay 16 - applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7BD - waitmovement 0 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_BUFFER_RECORD_MIX_MSG - setvar VAR_0x8005, 1 - special CallBattlePikeFunction - msgbox gStringVar4, MSGBOX_DEFAULT - closemessage - setvar VAR_0x8004, SPECIAL_BATTLE_PIKE_DOUBLE - setvar VAR_0x8005, 0 - special DoSpecialTrainerBattle - waitstate - switch VAR_RESULT - case 1, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D5DC - goto BattleFrontier_BattlePikeRandomRoom1_EventScript_25D20A - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D5DC:: @ 825D5DC - applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7BD - waitmovement 0 - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7CC - waitmovement 0 - applymovement 2, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7D4 - waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7BF - waitmovement 0 - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D605:: @ 825D605 - lockall - message BattleFrontier_BattlePikeRandomRoom1_Text_25DBD1 - applymovement 2, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7AA - waitmovement 0 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_STATUS_MON - special CallBattlePikeFunction - copyvar VAR_0x8004, VAR_RESULT - compare VAR_0x8004, 0 - call_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_25D643 - compare VAR_0x8004, 1 - call_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_25D6D5 - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DD3F, MSGBOX_DEFAULT - closemessage - releaseall - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D643:: @ 825D643 - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DBE4, MSGBOX_DEFAULT - closemessage - waitse - playmoncry SPECIES_KIRLIA, 0 - waitmoncry - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_STATUS - special CallBattlePikeFunction - compare VAR_RESULT, 2 - call_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_25D751 - compare VAR_RESULT, 1 - call_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_25D758 - compare VAR_RESULT, 3 - call_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_25D75F - compare VAR_RESULT, 4 - call_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_25D766 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_STATUS_SCREEN_FADE - special CallBattlePikeFunction - waitstate - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7A2 - waitmovement 0 - applymovement 2, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7B1 - waitmovement 0 - waitse - playmoncry SPECIES_KIRLIA, 0 - waitmoncry - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DCAF, MSGBOX_DEFAULT - waitse - playmoncry SPECIES_KIRLIA, 0 - waitmoncry - closemessage - applymovement 2, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7B3 - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7A4 - waitmovement 0 - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DCCF, MSGBOX_DEFAULT - return - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D6D5:: @ 825D6D5 - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DC01, MSGBOX_DEFAULT - closemessage - waitse - playmoncry SPECIES_DUSCLOPS, 0 - waitmoncry - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_STATUS - special CallBattlePikeFunction - compare VAR_RESULT, 0 - call_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_25D76D - compare VAR_RESULT, 1 - call_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_25D774 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_STATUS_SCREEN_FADE - special CallBattlePikeFunction - waitstate - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7A2 - waitmovement 0 - applymovement 2, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7B1 - waitmovement 0 - waitse - playmoncry SPECIES_DUSCLOPS, 0 - waitmoncry - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DCAF, MSGBOX_DEFAULT - waitse - playmoncry SPECIES_DUSCLOPS, 0 - waitmoncry - closemessage - applymovement 2, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7B3 - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7A4 - waitmovement 0 - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DD06, MSGBOX_DEFAULT - return - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D751:: @ 825D751 - message BattleFrontier_BattlePikeRandomRoom1_Text_25DC20 - waitmessage - return - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D758:: @ 825D758 - message BattleFrontier_BattlePikeRandomRoom1_Text_25DC63 - waitmessage - return - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D75F:: @ 825D75F - message BattleFrontier_BattlePikeRandomRoom1_Text_25DC49 - waitmessage - return - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D766:: @ 825D766 - message BattleFrontier_BattlePikeRandomRoom1_Text_25DC33 - waitmessage - return - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D76D:: @ 825D76D - message BattleFrontier_BattlePikeRandomRoom1_Text_25DC97 - waitmessage - return - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D774:: @ 825D774 - message BattleFrontier_BattlePikeRandomRoom1_Text_25DC7C - waitmessage - return - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D77B:: @ 825D77B - closemessage - applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7DC - waitmovement 0 - setvar VAR_0x8004, SPECIAL_BATTLE_PIKE_SINGLE - setvar VAR_0x8005, 0 - special DoSpecialTrainerBattle - waitstate - return - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D795: @ 825D795 - walk_down - walk_down - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D798: @ 825D798 - walk_up - walk_up - walk_up - set_invisible - walk_up - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D79E: @ 825D79E - walk_up - set_invisible - walk_up - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7A2: @ 825D7A2 - walk_down - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7A4: @ 825D7A4 - walk_down - face_left - delay_16 - delay_16 - face_down - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7AA: @ 825D7AA - walk_fast_down - walk_fast_right - walk_fast_right - walk_fast_down - walk_fast_left - face_down - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7B1: @ 825D7B1 - face_up - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7B3: @ 825D7B3 - walk_left - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7B4: @ 825D7B4 - face_right - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7B6: @ 825D7B6 - walk_down - walk_down - walk_right - face_down - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7BB: @ 825D7BB - face_left - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7BD: @ 825D7BD - face_right - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7BF: @ 825D7BF - face_up - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7C1: @ 825D7C1 - walk_right - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7C3: @ 825D7C3 - walk_left - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7C5: @ 825D7C5 - walk_down - walk_down - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7C8: @ 825D7C8 - face_right - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7CA: @ 825D7CA - face_left - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7CC: @ 825D7CC - walk_up - walk_up - walk_up - walk_right - walk_up - set_invisible - walk_up - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7D4: @ 825D7D4 - walk_up - walk_up - walk_up - walk_left - walk_up - set_invisible - walk_up - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7DC: @ 825D7DC - walk_up - walk_up - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7DF: @ 825D7DF - walk_down - walk_down - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7E2: @ 825D7E2 - walk_up - walk_up - walk_up - set_invisible - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7E7: @ 825D7E7 - set_visible - walk_down - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D7EA: @ 825D7EA - walk_left - face_right - step_end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D7ED:: @ 825D7ED - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_TYPE - special CallBattlePikeFunction - switch VAR_RESULT - case 2, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D81B - case 3, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D831 - case 4, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D83E - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D81B:: @ 825D81B - lock - faceplayer - setvar VAR_0x8004, BATTLE_PIKE_FUNC_BUFFER_NPC_MSG - special CallBattlePikeFunction - msgbox gStringVar4, MSGBOX_DEFAULT - waitmessage - closemessage - release - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D831:: @ 825D831 - lock - faceplayer - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DDA3, MSGBOX_DEFAULT - closemessage - release - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D83E:: @ 825D83E - setvar VAR_0x8004, BATTLE_PIKE_FUNC_HEAL_ONE_TWO_MONS - special CallBattlePikeFunction - compare VAR_RESULT, 2 - call_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_25D881 - compare VAR_RESULT, 1 - call_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_25D875 - playfanfare MUS_ME_ASA - waitfanfare - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DABE, MSGBOX_DEFAULT - closemessage - release - applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D79E - waitmovement 0 - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D875:: @ 825D875 - lock - faceplayer - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DA51, MSGBOX_DEFAULT - closemessage - return - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D881:: @ 825D881 - lock - faceplayer - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25E32E, MSGBOX_DEFAULT - closemessage - return - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D88D:: @ 825D88D - lock - faceplayer - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25DDE6, MSGBOX_DEFAULT - closemessage - release - applymovement 2, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7B4 - waitmovement 0 - end - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D8A4:: @ 825D8A4 - setmetatile 4, 1, METATILE_BattlePike_Curtain_Stage1_Tile0, 1 - setmetatile 3, 2, METATILE_BattlePike_Curtain_Stage1_Tile1, 1 - setmetatile 4, 2, METATILE_BattlePike_Curtain_Stage1_Tile2, 1 - setmetatile 5, 2, METATILE_BattlePike_Curtain_Stage1_Tile3, 1 - setmetatile 3, 3, METATILE_BattlePike_Curtain_Stage1_Tile4, 1 - setmetatile 4, 3, METATILE_BattlePike_Curtain_Stage1_Tile5, 0 - setmetatile 5, 3, METATILE_BattlePike_Curtain_Stage1_Tile6, 1 - special DrawWholeMapView - return - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D8E7:: @ 825D8E7 - setmetatile 4, 1, METATILE_BattlePike_Curtain_Stage2_Tile0, 1 - setmetatile 3, 2, METATILE_BattlePike_Curtain_Stage2_Tile1, 1 - setmetatile 4, 2, METATILE_BattlePike_Curtain_Stage2_Tile2, 1 - setmetatile 5, 2, METATILE_BattlePike_Curtain_Stage2_Tile3, 1 - setmetatile 3, 3, METATILE_BattlePike_Curtain_Stage2_Tile4, 1 - setmetatile 4, 3, METATILE_BattlePike_Curtain_Stage2_Tile5, 0 - setmetatile 5, 3, METATILE_BattlePike_Curtain_Stage2_Tile6, 1 - special DrawWholeMapView - return - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D92A:: @ 825D92A - setmetatile 4, 1, METATILE_BattlePike_Curtain_Stage3_Tile0, 1 - setmetatile 3, 2, METATILE_BattlePike_Curtain_Stage3_Tile1, 1 - setmetatile 4, 2, METATILE_BattlePike_Curtain_Stage3_Tile2, 1 - setmetatile 5, 2, METATILE_BattlePike_Curtain_Stage3_Tile3, 1 - setmetatile 3, 3, METATILE_BattlePike_Curtain_Stage3_Tile4, 1 - setmetatile 4, 3, METATILE_BattlePike_Curtain_Stage3_Tile5, 0 - setmetatile 5, 3, METATILE_BattlePike_Curtain_Stage3_Tile6, 1 - special DrawWholeMapView - return - -BattleFrontier_BattlePikeRandomRoom1_EventScript_25D96D:: @ 825D96D - setmetatile 4, 1, METATILE_BattlePike_Curtain_Stage0_Tile0, 1 - setmetatile 3, 2, METATILE_BattlePike_Curtain_Stage0_Tile1, 1 - setmetatile 4, 2, METATILE_BattlePike_Curtain_Stage0_Tile2, 1 - setmetatile 5, 2, METATILE_BattlePike_Curtain_Stage0_Tile3, 1 - setmetatile 3, 3, METATILE_BattlePike_Curtain_Stage0_Tile4, 1 - setmetatile 4, 3, METATILE_BattlePike_Curtain_Stage0_Tile5, 0 - setmetatile 5, 3, METATILE_BattlePike_Curtain_Stage0_Tile6, 1 - special DrawWholeMapView - return - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D9B0: @ 825D9B0 - walk_up - walk_up - step_end - -BattleFrontier_BattlePikeRandomRoom1_Movement_25D9B3: @ 825D9B3 - walk_down - walk_down - step_end - -BattleFrontier_BattlePikeRandomRoom1_Text_25D9B6: @ 825D9B6 - .string "Welcome…\n" - .string "You must be commended for your luck…\p" - .string "Your POKéMON shall be restored\n" - .string "to full health…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DA13: @ 825DA13 - .string "I urge you to enjoy the rest of your\n" - .string "Battle Choice challenge…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DA51: @ 825DA51 - .string "Ah, you're a lucky one.\n" - .string "I'm in somewhat-good spirits now.\p" - .string "I will restore one of your POKéMON\n" - .string "to full health.$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DABE: @ 825DABE - .string "The best of luck to you.\n" - .string "Farewell.$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DAE1: @ 825DAE1 - .string "Excuse me…\p" - .string "Would you care for a battle?\n" - .string "I'll restore your POKéMON if you win.$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DB2F: @ 825DB2F - .string "Very well…\n" - .string "Now, shall we?$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DB49: @ 825DB49 - .string "I see…\n" - .string "How unsporting of you…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DB67: @ 825DB67 - .string "Magnificent…\p" - .string "As promised, I shall restore your\n" - .string "POKéMON to full health.$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DBAE: @ 825DBAE - .string "The best of luck to you.\n" - .string "Farewell.$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DBD1: @ 825DBD1 - .string "Oh, my!\p" - .string "Watch out!$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DBE4: @ 825DBE4 - .string "Now, now!\n" - .string "KIRLIA, stop that!$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DC01: @ 825DC01 - .string "Now, now!\n" - .string "DUSCLOPS, stop that!$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DC20: @ 825DC20 - .string "KIRLIA used TOXIC!$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DC33: @ 825DC33 - .string "KIRLIA used HYPNOSIS!$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DC49: @ 825DC49 - .string "KIRLIA used THUNDER WAVE!$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DC63: @ 825DC63 - .string "KIRLIA used WILL-O-WISP!$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DC7C: @ 825DC7C - .string "DUSCLOPS used WILL-O-WISP!$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DC97: @ 825DC97 - .string "DUSCLOPS used ICE BEAM!$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DCAF: @ 825DCAF - .string "Look here!\n" - .string "That's quite enough!$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DCCF: @ 825DCCF - .string "I must apologize to you…\p" - .string "My KIRLIA has a TIMID nature…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DD06: @ 825DD06 - .string "I must apologize to you…\p" - .string "My DUSCLOPS has a TIMID nature…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DD3F: @ 825DD3F - .string "It attacks without warning if it is\n" - .string "startled by another person…\p" - .string "Are you and your POKéMON all right?$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DDA3: @ 825DDA3 - .string "I do apologize for what happened…\n" - .string "I do hope your POKéMON are fine.$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DDE6: @ 825DDE6 - .string "… … … … … …\n" - .string "… … … … … …$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DDFE: @ 825DDFE - .string "Welcome…\p" - .string "Here, we will have you battle\n" - .string "a somewhat-tough TRAINER…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DE3F: @ 825DE3F - .string "How wonderful…\p" - .string "To honor your victory, your POKéMON\n" - .string "shall be restored to full health…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DE94: @ 825DE94 - .string "I urge you to enjoy the rest of your\n" - .string "Battle Choice challenge…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DED2: @ 825DED2 - .string "I am LUCY…\n" - .string "I am the law here…\l" - .string "For I am the PIKE QUEEN…\p" - .string "You already know it, but to advance,\n" - .string "you must defeat me…\p" - .string "…I'm not one for idle chatter.\n" - .string "Hurry. Come on…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DF71: @ 825DF71 - .string "Your luck…\n" - .string "I hope you didn't use it all up here…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DFA2: @ 825DFA2 - .string "LUCY: … … … … … …\n" - .string "Show me your FRONTIER PASS…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25DFD0: @ 825DFD0 - .string "The Luck Symbol was embossed on\n" - .string "the FRONTIER PASS!$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25E003: @ 825E003 - .string "…That's all there is…\n" - .string "Disappear already…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25E02C: @ 825E02C - .string "LUCY: …You again…\p" - .string "… … … … … …\p" - .string "…I've trampled flowers and braved\n" - .string "storms to get to where I am…\p" - .string "I don't feel any compulsion to keep\n" - .string "losing to the same opponent…\p" - .string "… … … … … …\n" - .string "Fine… I'll do it…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25E0E8: @ 825E0E8 - .string "Now!\n" - .string "Come on!$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25E0F6: @ 825E0F6 - .string "LUCY: … … … … … …\p" - .string "…FRONTIER PASS…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25E118: @ 825E118 - .string "The Luck Symbol took on\n" - .string "a golden shine!$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25E140: @ 825E140 - .string "…You, I won't forget…\n" - .string "…Ever…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25E15D: @ 825E15D - .string "I welcome you…\p" - .string "Giggle…\n" - .string "You seem to be bereft of luck…\p" - .string "If only you hadn't chosen this room,\n" - .string "your POKéMON could have been healed…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25E1DD: @ 825E1DD - .string "I welcome you…\p" - .string "Since you have chosen this room, I will\n" - .string "restore one POKéMON to full health…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25E238: @ 825E238 - .string "I welcome you…\p" - .string "Since you have chosen this room, I will\n" - .string "restore two POKéMON to full health…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25E293: @ 825E293 - .string "I welcome you…\p" - .string "Giggle…\n" - .string "You should thank your lucky stars…\p" - .string "Since you have chosen this room,\n" - .string "all your POKéMON will be restored…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25E311: @ 825E311 - .string "I shall go fetch our master…$" - -BattleFrontier_BattlePikeRandomRoom1_Text_25E32E: @ 825E32E - .string "Ah, you're a lucky one!\n" - .string "I'm in good spirits now.\p" - .string "I will restore two of your POKéMON\n" - .string "to full health!$" - diff --git a/data/maps/BattleFrontier_BattlePikeRandomRoom2/scripts.inc b/data/maps/BattleFrontier_BattlePikeRandomRoom2/scripts.inc deleted file mode 100644 index 1480ec530..000000000 --- a/data/maps/BattleFrontier_BattlePikeRandomRoom2/scripts.inc +++ /dev/null @@ -1,43 +0,0 @@ -BattleFrontier_BattlePikeRandomRoom2_MapScripts:: @ 825E392 - map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattlePikeRandomRoom2_MapScript2_25E39D - map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattlePikeRandomRoom2_MapScript2_25E3DE - .byte 0 - -BattleFrontier_BattlePikeRandomRoom2_MapScript2_25E39D: @ 825E39D - map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeRandomRoom2_EventScript_25E3A7 - .2byte 0 - -BattleFrontier_BattlePikeRandomRoom2_EventScript_25E3A7:: @ 825E3A7 - delay 16 - applymovement 1, BattleFrontier_BattlePikeRandomRoom2_Movement_25E3DB - waitmovement 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 3 - special CallFrontierUtilFunc - lockall - msgbox BattleFrontier_BattlePikeRandomRoom2_Text_25E3F2, MSGBOX_DEFAULT - closemessage - releaseall - warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 255, 5, 6 - waitstate - end - -BattleFrontier_BattlePikeRandomRoom2_Movement_25E3DB: @ 825E3DB - walk_down - walk_down - step_end - -BattleFrontier_BattlePikeRandomRoom2_MapScript2_25E3DE: @ 825E3DE - map_script_2 VAR_TEMP_4, 0, BattleFrontier_BattlePikeRandomRoom2_EventScript_25E3E8 - .2byte 0 - -BattleFrontier_BattlePikeRandomRoom2_EventScript_25E3E8:: @ 825E3E8 - setvar VAR_TEMP_4, 1 - turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH - end - -BattleFrontier_BattlePikeRandomRoom2_Text_25E3F2: @ 825E3F2 - .string "Congratulations…\n" - .string "Now, this way, please…$" - diff --git a/data/maps/BattleFrontier_BattlePikeRandomRoom3/scripts.inc b/data/maps/BattleFrontier_BattlePikeRandomRoom3/scripts.inc deleted file mode 100644 index 59731f74d..000000000 --- a/data/maps/BattleFrontier_BattlePikeRandomRoom3/scripts.inc +++ /dev/null @@ -1,50 +0,0 @@ -BattleFrontier_BattlePikeRandomRoom3_MapScripts:: @ 825E41A - map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattlePikeRandomRoom3_MapScript1_25E47A - map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattlePikeRandomRoom3_MapScript2_25E42A - map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattlePikeRandomRoom3_MapScript2_25E466 - .byte 0 - -BattleFrontier_BattlePikeRandomRoom3_MapScript2_25E42A: @ 825E42A - map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeRandomRoom3_EventScript_25E43C - map_script_2 VAR_TEMP_1, 1, BattleFrontier_BattlePikeRandomRoom3_EventScript_25E44A - .2byte 0 - -BattleFrontier_BattlePikeRandomRoom3_EventScript_25E43C:: @ 825E43C - setvar VAR_TEMP_0, 1 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_6 - special CallBattlePikeFunction - end - -BattleFrontier_BattlePikeRandomRoom3_EventScript_25E44A:: @ 825E44A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 4 - special CallFrontierUtilFunc - warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 255, 5, 6 - waitstate - end - -BattleFrontier_BattlePikeRandomRoom3_MapScript2_25E466: @ 825E466 - map_script_2 VAR_TEMP_4, 0, BattleFrontier_BattlePikeRandomRoom3_EventScript_25E470 - .2byte 0 - -BattleFrontier_BattlePikeRandomRoom3_EventScript_25E470:: @ 825E470 - setvar VAR_TEMP_4, 1 - turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH - end - -BattleFrontier_BattlePikeRandomRoom3_MapScript1_25E47A: @ 825E47A - call BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4271 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 5 - special CallFrontierUtilFunc - compare VAR_RESULT, 2 - goto_if_eq BattleFrontier_BattlePikeRandomRoom3_EventScript_25E4A3 - compare VAR_RESULT, 3 - goto_if_eq BattleFrontier_BattlePikeRandomRoom3_EventScript_25E4A3 - end - -BattleFrontier_BattlePikeRandomRoom3_EventScript_25E4A3:: @ 825E4A3 - setvar VAR_TEMP_1, 1 - end - diff --git a/data/maps/BattleFrontier_BattlePikeRandomRoom2/map.json b/data/maps/BattleFrontier_BattlePikeRoomFinal/map.json index 1ae60e075..3b44e85fe 100644 --- a/data/maps/BattleFrontier_BattlePikeRandomRoom2/map.json +++ b/data/maps/BattleFrontier_BattlePikeRoomFinal/map.json @@ -1,7 +1,7 @@ { - "id": "MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM2", - "name": "BattleFrontier_BattlePikeRandomRoom2", - "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM2", + "id": "MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_FINAL", + "name": "BattleFrontier_BattlePikeRoomFinal", + "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_FINAL", "music": "MUS_B_TUBE", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, diff --git a/data/maps/BattleFrontier_BattlePikeRoomFinal/scripts.inc b/data/maps/BattleFrontier_BattlePikeRoomFinal/scripts.inc new file mode 100644 index 000000000..2863ea072 --- /dev/null +++ b/data/maps/BattleFrontier_BattlePikeRoomFinal/scripts.inc @@ -0,0 +1,40 @@ +BattleFrontier_BattlePikeRoomFinal_MapScripts:: @ 825E392 + map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattlePikeRoomFinal_OnFrame + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattlePikeRoomFinal_OnWarp + .byte 0 + +BattleFrontier_BattlePikeRoomFinal_OnFrame: @ 825E39D + map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeRoomFinal_EventScript_25E3A7 + .2byte 0 + +BattleFrontier_BattlePikeRoomFinal_EventScript_25E3A7:: @ 825E3A7 + delay 16 + applymovement 1, BattleFrontier_BattlePikeRoomFinal_Movement_25E3DB + waitmovement 0 + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON + lockall + msgbox BattleFrontier_BattlePikeRoomFinal_Text_CongratsThisWayPlease, MSGBOX_DEFAULT + closemessage + releaseall + warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 255, 5, 6 + waitstate + end + +BattleFrontier_BattlePikeRoomFinal_Movement_25E3DB: @ 825E3DB + walk_down + walk_down + step_end + +BattleFrontier_BattlePikeRoomFinal_OnWarp: @ 825E3DE + map_script_2 VAR_TEMP_4, 0, BattleFrontier_BattlePikeRoomFinal_EventScript_TurnPlayerNorth + .2byte 0 + +BattleFrontier_BattlePikeRoomFinal_EventScript_TurnPlayerNorth:: @ 825E3E8 + setvar VAR_TEMP_4, 1 + turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH + end + +BattleFrontier_BattlePikeRoomFinal_Text_CongratsThisWayPlease: @ 825E3F2 + .string "Congratulations…\n" + .string "Now, this way, please…$" + diff --git a/data/maps/BattleFrontier_BattlePikeRandomRoom1/map.json b/data/maps/BattleFrontier_BattlePikeRoomNormal/map.json index 339a2ab09..11cbd866e 100644 --- a/data/maps/BattleFrontier_BattlePikeRandomRoom1/map.json +++ b/data/maps/BattleFrontier_BattlePikeRoomNormal/map.json @@ -1,7 +1,7 @@ { - "id": "MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1", - "name": "BattleFrontier_BattlePikeRandomRoom1", - "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1", + "id": "MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL", + "name": "BattleFrontier_BattlePikeRoomNormal", + "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL", "music": "MUS_B_TUBE", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, @@ -24,7 +24,7 @@ "movement_range_y": 1, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "BattleFrontier_BattlePikeRandomRoom1_EventScript_25D7ED", + "script": "BattleFrontier_BattlePikeRoomNormal_EventScript_25D7ED", "flag": "0" }, { @@ -37,7 +37,7 @@ "movement_range_y": 1, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "BattleFrontier_BattlePikeRandomRoom1_EventScript_25D88D", + "script": "BattleFrontier_BattlePikeRoomNormal_EventScript_25D88D", "flag": "0" } ], @@ -50,7 +50,7 @@ "elevation": 3, "var": "VAR_TEMP_1", "var_value": "0", - "script": "BattleFrontier_BattlePikeRandomRoom1_EventScript_2C40A2" + "script": "BattleFrontier_BattlePikeRoomNormal_EventScript_Exit" }, { "type": "trigger", @@ -59,7 +59,7 @@ "elevation": 3, "var": "VAR_TEMP_2", "var_value": "0", - "script": "BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4082" + "script": "BattleFrontier_BattlePikeRoomNormal_EventScript_2C4082" }, { "type": "trigger", @@ -68,7 +68,7 @@ "elevation": 3, "var": "VAR_TEMP_3", "var_value": "1", - "script": "BattleFrontier_BattlePikeRandomRoom1_EventScript_2C408D" + "script": "BattleFrontier_BattlePikeRoomNormal_EventScript_2C408D" }, { "type": "trigger", @@ -77,7 +77,7 @@ "elevation": 3, "var": "VAR_TEMP_2", "var_value": "0", - "script": "BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4082" + "script": "BattleFrontier_BattlePikeRoomNormal_EventScript_2C4082" }, { "type": "trigger", @@ -86,7 +86,7 @@ "elevation": 3, "var": "VAR_TEMP_2", "var_value": "0", - "script": "BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4082" + "script": "BattleFrontier_BattlePikeRoomNormal_EventScript_2C4082" }, { "type": "trigger", @@ -95,7 +95,7 @@ "elevation": 3, "var": "VAR_TEMP_3", "var_value": "1", - "script": "BattleFrontier_BattlePikeRandomRoom1_EventScript_2C408D" + "script": "BattleFrontier_BattlePikeRoomNormal_EventScript_2C408D" }, { "type": "trigger", @@ -104,7 +104,7 @@ "elevation": 3, "var": "VAR_TEMP_3", "var_value": "1", - "script": "BattleFrontier_BattlePikeRandomRoom1_EventScript_2C408D" + "script": "BattleFrontier_BattlePikeRoomNormal_EventScript_2C408D" } ], "bg_events": [] diff --git a/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc b/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc new file mode 100644 index 000000000..05331d07d --- /dev/null +++ b/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc @@ -0,0 +1,870 @@ +BattleFrontier_BattlePikeRoomNormal_MapScripts:: @ 825D152 + map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattlePikeRoom_OnResume + map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattlePikeRoom_OnTransition + map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattlePikeRoomNormal_OnFrame + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattlePikeRoom_OnWarp + .byte 0 + +BattleFrontier_BattlePikeRoomNormal_OnFrame: @ 825D167 + map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeRoomNormal_EventScript_25D171 + .2byte 0 + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D171:: @ 825D171 + setvar VAR_TEMP_0, 1 + battlepike_getroomtype + switch VAR_RESULT + case PIKE_ROOM_SINGLE_BATTLE, BattleFrontier_BattlePikeRoomNormal_EventScript_25D1C6 + case PIKE_ROOM_HEAL_FULL, BattleFrontier_BattlePikeRoomNormal_EventScript_25D50E + case PIKE_ROOM_STATUS, BattleFrontier_BattlePikeRoomNormal_EventScript_25D605 + case PIKE_ROOM_HARD_BATTLE, BattleFrontier_BattlePikeRoomNormal_EventScript_25D231 + case PIKE_ROOM_DOUBLE_BATTLE, BattleFrontier_BattlePikeRoomNormal_EventScript_25D53E + case PIKE_ROOM_BRAIN, BattleFrontier_BattlePikeRoomNormal_EventScript_25D2BF + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D1C6:: @ 825D1C6 + lockall + delay 16 + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D795 + waitmovement 0 + setvar VAR_0x8004, BATTLE_PIKE_FUNC_BUFFER_RECORD_MIX_MSG + setvar VAR_0x8005, 0 + special CallBattlePikeFunction + msgbox gStringVar4, MSGBOX_DEFAULT + waitmessage + closemessage + releaseall + setvar VAR_0x8004, SPECIAL_BATTLE_PIKE_SINGLE + setvar VAR_0x8005, 0 + special DoSpecialTrainerBattle + waitstate + switch VAR_RESULT + case 1, BattleFrontier_BattlePikeRoomNormal_EventScript_25D226 + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D20A:: @ 825D20A + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST + warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 255, 5, 6 + waitstate + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D226:: @ 825D226 + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D798 + waitmovement 0 + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D231:: @ 825D231 + lockall + delay 16 + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DDFE, MSGBOX_DEFAULT + waitmessage + closemessage + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D795 + waitmovement 0 + setvar VAR_0x8004, BATTLE_PIKE_FUNC_BUFFER_RECORD_MIX_MSG + setvar VAR_0x8005, 0 + special CallBattlePikeFunction + msgbox gStringVar4, MSGBOX_DEFAULT + waitmessage + closemessage + releaseall + setvar VAR_0x8004, SPECIAL_BATTLE_PIKE_SINGLE + setvar VAR_0x8005, 0 + special DoSpecialTrainerBattle + waitstate + switch VAR_RESULT + case 1, BattleFrontier_BattlePikeRoomNormal_EventScript_25D285 + goto BattleFrontier_BattlePikeRoomNormal_EventScript_25D20A + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D285:: @ 825D285 + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D798 + waitmovement 0 + applymovement 2, BattleFrontier_BattlePikeRoomNormal_Movement_25D7B6 + waitmovement 0 + lock + faceplayer + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DE3F, MSGBOX_DEFAULT + playfanfare MUS_ME_ASA + waitfanfare + special HealPlayerParty + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DE94, MSGBOX_DEFAULT + closemessage + release + applymovement 2, BattleFrontier_BattlePikeRoomNormal_Movement_25D798 + waitmovement 0 + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D2BF:: @ 825D2BF + delay 22 + lockall + applymovement 2, BattleFrontier_BattlePikeRoomNormal_Movement_25D7DF + waitmovement 0 + setvar VAR_0x8004, BATTLE_PIKE_FUNC_HEAL_MONS_BEFORE_QUEEN + special CallBattlePikeFunction + switch VAR_RESULT + case 0, BattleFrontier_BattlePikeRoomNormal_EventScript_25D4DC + case 1, BattleFrontier_BattlePikeRoomNormal_EventScript_25D4EA + case 2, BattleFrontier_BattlePikeRoomNormal_EventScript_25D4FC + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D2FB:: @ 825D2FB + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25E311, MSGBOX_DEFAULT + closemessage + special SpawnCameraObject + applymovement OBJ_EVENT_ID_CAMERA, BattleFrontier_BattlePikeRoomNormal_Movement_25D9B0 + applymovement 2, BattleFrontier_BattlePikeRoomNormal_Movement_25D7E2 + waitmovement 0 + playse 267 + call BattleFrontier_BattlePikeRoomNormal_EventScript_25D8E7 + delay 4 + call BattleFrontier_BattlePikeRoomNormal_EventScript_25D8A4 + delay 4 + call BattleFrontier_BattlePikeRoomNormal_EventScript_25D96D + delay 4 + waitse + delay 60 + playse 268 + delay 65 + call BattleFrontier_BattlePikeRoomNormal_EventScript_25D8A4 + showobjectat 1, MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL + delay 4 + call BattleFrontier_BattlePikeRoomNormal_EventScript_25D8E7 + delay 4 + call BattleFrontier_BattlePikeRoomNormal_EventScript_25D92A + waitse + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D7E7 + waitmovement 0 + setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_QUEEN_FIGHT_TYPE + special CallBattlePikeFunction + switch VAR_RESULT + case 2, BattleFrontier_BattlePikeRoomNormal_EventScript_25D416 + case 3, BattleFrontier_BattlePikeRoomNormal_EventScript_25D3BD + case 4, BattleFrontier_BattlePikeRoomNormal_EventScript_25D443 + frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH + compare VAR_RESULT, FALSE + goto_if_ne BattleFrontier_BattlePikeRoomNormal_EventScript_25D3BD + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DED2, MSGBOX_DEFAULT + frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH +BattleFrontier_BattlePikeRoomNormal_EventScript_25D3BD:: @ 825D3BD + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DF71, MSGBOX_DEFAULT + call BattleFrontier_BattlePikeRoomNormal_EventScript_25D77B + compare VAR_RESULT, 1 + goto_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_25D3DA + goto BattleFrontier_BattlePikeRoomNormal_EventScript_25D20A + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D3DA:: @ 825D3DA + frontier_getsymbols + compare VAR_RESULT, 0 + goto_if_ne BattleFrontier_BattlePikeRoomNormal_EventScript_25D49D + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DFA2, MSGBOX_DEFAULT + waitmessage + playfanfare MUS_ME_SYMBOLGET + message BattleFrontier_BattlePikeRoomNormal_Text_25DFD0 + waitmessage + waitfanfare + frontier_givesymbol + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25E003, MSGBOX_DEFAULT + closemessage + goto BattleFrontier_BattlePikeRoomNormal_EventScript_25D49D + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D416:: @ 825D416 + frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH + compare VAR_RESULT, FALSE + goto_if_ne BattleFrontier_BattlePikeRoomNormal_EventScript_25D443 + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25E02C, MSGBOX_DEFAULT + frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH +BattleFrontier_BattlePikeRoomNormal_EventScript_25D443:: @ 825D443 + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25E0E8, MSGBOX_DEFAULT + call BattleFrontier_BattlePikeRoomNormal_EventScript_25D77B + compare VAR_RESULT, 1 + goto_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_25D460 + goto BattleFrontier_BattlePikeRoomNormal_EventScript_25D20A + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D460:: @ 825D460 + frontier_getsymbols + compare VAR_RESULT, 2 + goto_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_25D49D + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25E0F6, MSGBOX_DEFAULT + waitmessage + playfanfare MUS_ME_SYMBOLGET + message BattleFrontier_BattlePikeRoomNormal_Text_25E118 + waitmessage + waitfanfare + frontier_givesymbol + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25E140, MSGBOX_DEFAULT + closemessage + goto BattleFrontier_BattlePikeRoomNormal_EventScript_25D49D + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D49D:: @ 825D49D + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D7EA + waitmovement 0 + applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeRoomNormal_Movement_25D7DC + waitmovement 0 + battlepike_getstreak + addvar VAR_RESULT, 1 + battlepike_setstreak VAR_RESULT + call BattleFrontier_BattlePikeRoom_EventScript_WarpToFinalRoom + waitstate + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D4DC:: @ 825D4DC + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25E15D, MSGBOX_DEFAULT + goto BattleFrontier_BattlePikeRoomNormal_EventScript_25D2FB + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D4EA:: @ 825D4EA + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25E1DD, MSGBOX_DEFAULT + playfanfare MUS_ME_ASA + waitfanfare + goto BattleFrontier_BattlePikeRoomNormal_EventScript_25D2FB + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D4FC:: @ 825D4FC + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25E238, MSGBOX_DEFAULT + playfanfare MUS_ME_ASA + waitfanfare + goto BattleFrontier_BattlePikeRoomNormal_EventScript_25D2FB + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D50E:: @ 825D50E + lockall + delay 16 + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D795 + waitmovement 0 + message BattleFrontier_BattlePikeRoomNormal_Text_25D9B6 + waitmessage + playfanfare MUS_ME_ASA + waitfanfare + special HealPlayerParty + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DA13, MSGBOX_DEFAULT + closemessage + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D798 + waitmovement 0 + releaseall + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D53E:: @ 825D53E + lockall + delay 16 + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D7C1 + applymovement 2, BattleFrontier_BattlePikeRoomNormal_Movement_25D7C3 + waitmovement 0 + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D7C5 + applymovement 2, BattleFrontier_BattlePikeRoomNormal_Movement_25D7C5 + waitmovement 0 + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D7C8 + applymovement 2, BattleFrontier_BattlePikeRoomNormal_Movement_25D7CA + waitmovement 0 + applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeRoomNormal_Movement_25D7BB + waitmovement 0 + setvar VAR_0x8004, BATTLE_PIKE_FUNC_BUFFER_RECORD_MIX_MSG + setvar VAR_0x8005, 0 + special CallBattlePikeFunction + msgbox gStringVar4, MSGBOX_DEFAULT + closemessage + delay 16 + applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeRoomNormal_Movement_25D7BD + waitmovement 0 + setvar VAR_0x8004, BATTLE_PIKE_FUNC_BUFFER_RECORD_MIX_MSG + setvar VAR_0x8005, 1 + special CallBattlePikeFunction + msgbox gStringVar4, MSGBOX_DEFAULT + closemessage + setvar VAR_0x8004, SPECIAL_BATTLE_PIKE_DOUBLE + setvar VAR_0x8005, 0 + special DoSpecialTrainerBattle + waitstate + switch VAR_RESULT + case 1, BattleFrontier_BattlePikeRoomNormal_EventScript_25D5DC + goto BattleFrontier_BattlePikeRoomNormal_EventScript_25D20A + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D5DC:: @ 825D5DC + applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeRoomNormal_Movement_25D7BD + waitmovement 0 + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D7CC + waitmovement 0 + applymovement 2, BattleFrontier_BattlePikeRoomNormal_Movement_25D7D4 + waitmovement 0 + applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeRoomNormal_Movement_25D7BF + waitmovement 0 + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D605:: @ 825D605 + lockall + message BattleFrontier_BattlePikeRoomNormal_Text_25DBD1 + applymovement 2, BattleFrontier_BattlePikeRoomNormal_Movement_25D7AA + waitmovement 0 + setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_STATUS_MON + special CallBattlePikeFunction + copyvar VAR_0x8004, VAR_RESULT + compare VAR_0x8004, 0 + call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_25D643 + compare VAR_0x8004, 1 + call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_25D6D5 + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DD3F, MSGBOX_DEFAULT + closemessage + releaseall + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D643:: @ 825D643 + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DBE4, MSGBOX_DEFAULT + closemessage + waitse + playmoncry SPECIES_KIRLIA, 0 + waitmoncry + setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_STATUS + special CallBattlePikeFunction + compare VAR_RESULT, 2 + call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_25D751 + compare VAR_RESULT, 1 + call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_25D758 + compare VAR_RESULT, 3 + call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_25D75F + compare VAR_RESULT, 4 + call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_25D766 + setvar VAR_0x8004, BATTLE_PIKE_FUNC_STATUS_SCREEN_FADE + special CallBattlePikeFunction + waitstate + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D7A2 + waitmovement 0 + applymovement 2, BattleFrontier_BattlePikeRoomNormal_Movement_25D7B1 + waitmovement 0 + waitse + playmoncry SPECIES_KIRLIA, 0 + waitmoncry + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DCAF, MSGBOX_DEFAULT + waitse + playmoncry SPECIES_KIRLIA, 0 + waitmoncry + closemessage + applymovement 2, BattleFrontier_BattlePikeRoomNormal_Movement_25D7B3 + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D7A4 + waitmovement 0 + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DCCF, MSGBOX_DEFAULT + return + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D6D5:: @ 825D6D5 + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DC01, MSGBOX_DEFAULT + closemessage + waitse + playmoncry SPECIES_DUSCLOPS, 0 + waitmoncry + setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_STATUS + special CallBattlePikeFunction + compare VAR_RESULT, 0 + call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_25D76D + compare VAR_RESULT, 1 + call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_25D774 + setvar VAR_0x8004, BATTLE_PIKE_FUNC_STATUS_SCREEN_FADE + special CallBattlePikeFunction + waitstate + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D7A2 + waitmovement 0 + applymovement 2, BattleFrontier_BattlePikeRoomNormal_Movement_25D7B1 + waitmovement 0 + waitse + playmoncry SPECIES_DUSCLOPS, 0 + waitmoncry + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DCAF, MSGBOX_DEFAULT + waitse + playmoncry SPECIES_DUSCLOPS, 0 + waitmoncry + closemessage + applymovement 2, BattleFrontier_BattlePikeRoomNormal_Movement_25D7B3 + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D7A4 + waitmovement 0 + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DD06, MSGBOX_DEFAULT + return + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D751:: @ 825D751 + message BattleFrontier_BattlePikeRoomNormal_Text_25DC20 + waitmessage + return + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D758:: @ 825D758 + message BattleFrontier_BattlePikeRoomNormal_Text_25DC63 + waitmessage + return + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D75F:: @ 825D75F + message BattleFrontier_BattlePikeRoomNormal_Text_25DC49 + waitmessage + return + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D766:: @ 825D766 + message BattleFrontier_BattlePikeRoomNormal_Text_25DC33 + waitmessage + return + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D76D:: @ 825D76D + message BattleFrontier_BattlePikeRoomNormal_Text_25DC97 + waitmessage + return + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D774:: @ 825D774 + message BattleFrontier_BattlePikeRoomNormal_Text_25DC7C + waitmessage + return + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D77B:: @ 825D77B + closemessage + applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeRoomNormal_Movement_25D7DC + waitmovement 0 + setvar VAR_0x8004, SPECIAL_BATTLE_PIKE_SINGLE + setvar VAR_0x8005, 0 + special DoSpecialTrainerBattle + waitstate + return + +BattleFrontier_BattlePikeRoomNormal_Movement_25D795: @ 825D795 + walk_down + walk_down + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D798: @ 825D798 + walk_up + walk_up + walk_up + set_invisible + walk_up + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D79E: @ 825D79E + walk_up + set_invisible + walk_up + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7A2: @ 825D7A2 + walk_down + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7A4: @ 825D7A4 + walk_down + face_left + delay_16 + delay_16 + face_down + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7AA: @ 825D7AA + walk_fast_down + walk_fast_right + walk_fast_right + walk_fast_down + walk_fast_left + face_down + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7B1: @ 825D7B1 + face_up + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7B3: @ 825D7B3 + walk_left + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7B4: @ 825D7B4 + face_right + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7B6: @ 825D7B6 + walk_down + walk_down + walk_right + face_down + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7BB: @ 825D7BB + face_left + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7BD: @ 825D7BD + face_right + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7BF: @ 825D7BF + face_up + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7C1: @ 825D7C1 + walk_right + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7C3: @ 825D7C3 + walk_left + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7C5: @ 825D7C5 + walk_down + walk_down + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7C8: @ 825D7C8 + face_right + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7CA: @ 825D7CA + face_left + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7CC: @ 825D7CC + walk_up + walk_up + walk_up + walk_right + walk_up + set_invisible + walk_up + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7D4: @ 825D7D4 + walk_up + walk_up + walk_up + walk_left + walk_up + set_invisible + walk_up + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7DC: @ 825D7DC + walk_up + walk_up + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7DF: @ 825D7DF + walk_down + walk_down + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7E2: @ 825D7E2 + walk_up + walk_up + walk_up + set_invisible + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7E7: @ 825D7E7 + set_visible + walk_down + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D7EA: @ 825D7EA + walk_left + face_right + step_end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D7ED:: @ 825D7ED + battlepike_getroomtype + switch VAR_RESULT + case PIKE_ROOM_NPC, BattleFrontier_BattlePikeRoomNormal_EventScript_25D81B + case PIKE_ROOM_STATUS, BattleFrontier_BattlePikeRoomNormal_EventScript_25D831 + case PIKE_ROOM_HEAL_PART, BattleFrontier_BattlePikeRoomNormal_EventScript_25D83E +BattleFrontier_BattlePikeRoomNormal_EventScript_25D81B:: @ 825D81B + lock + faceplayer + setvar VAR_0x8004, BATTLE_PIKE_FUNC_BUFFER_NPC_MSG + special CallBattlePikeFunction + msgbox gStringVar4, MSGBOX_DEFAULT + waitmessage + closemessage + release + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D831:: @ 825D831 + lock + faceplayer + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DDA3, MSGBOX_DEFAULT + closemessage + release + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D83E:: @ 825D83E + setvar VAR_0x8004, BATTLE_PIKE_FUNC_HEAL_ONE_TWO_MONS + special CallBattlePikeFunction + compare VAR_RESULT, 2 + call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_25D881 + compare VAR_RESULT, 1 + call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_25D875 + playfanfare MUS_ME_ASA + waitfanfare + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DABE, MSGBOX_DEFAULT + closemessage + release + applymovement 1, BattleFrontier_BattlePikeRoomNormal_Movement_25D79E + waitmovement 0 + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D875:: @ 825D875 + lock + faceplayer + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DA51, MSGBOX_DEFAULT + closemessage + return + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D881:: @ 825D881 + lock + faceplayer + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25E32E, MSGBOX_DEFAULT + closemessage + return + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D88D:: @ 825D88D + lock + faceplayer + msgbox BattleFrontier_BattlePikeRoomNormal_Text_25DDE6, MSGBOX_DEFAULT + closemessage + release + applymovement 2, BattleFrontier_BattlePikeRoomNormal_Movement_25D7B4 + waitmovement 0 + end + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D8A4:: @ 825D8A4 + setmetatile 4, 1, METATILE_BattlePike_Curtain_Stage1_Tile0, 1 + setmetatile 3, 2, METATILE_BattlePike_Curtain_Stage1_Tile1, 1 + setmetatile 4, 2, METATILE_BattlePike_Curtain_Stage1_Tile2, 1 + setmetatile 5, 2, METATILE_BattlePike_Curtain_Stage1_Tile3, 1 + setmetatile 3, 3, METATILE_BattlePike_Curtain_Stage1_Tile4, 1 + setmetatile 4, 3, METATILE_BattlePike_Curtain_Stage1_Tile5, 0 + setmetatile 5, 3, METATILE_BattlePike_Curtain_Stage1_Tile6, 1 + special DrawWholeMapView + return + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D8E7:: @ 825D8E7 + setmetatile 4, 1, METATILE_BattlePike_Curtain_Stage2_Tile0, 1 + setmetatile 3, 2, METATILE_BattlePike_Curtain_Stage2_Tile1, 1 + setmetatile 4, 2, METATILE_BattlePike_Curtain_Stage2_Tile2, 1 + setmetatile 5, 2, METATILE_BattlePike_Curtain_Stage2_Tile3, 1 + setmetatile 3, 3, METATILE_BattlePike_Curtain_Stage2_Tile4, 1 + setmetatile 4, 3, METATILE_BattlePike_Curtain_Stage2_Tile5, 0 + setmetatile 5, 3, METATILE_BattlePike_Curtain_Stage2_Tile6, 1 + special DrawWholeMapView + return + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D92A:: @ 825D92A + setmetatile 4, 1, METATILE_BattlePike_Curtain_Stage3_Tile0, 1 + setmetatile 3, 2, METATILE_BattlePike_Curtain_Stage3_Tile1, 1 + setmetatile 4, 2, METATILE_BattlePike_Curtain_Stage3_Tile2, 1 + setmetatile 5, 2, METATILE_BattlePike_Curtain_Stage3_Tile3, 1 + setmetatile 3, 3, METATILE_BattlePike_Curtain_Stage3_Tile4, 1 + setmetatile 4, 3, METATILE_BattlePike_Curtain_Stage3_Tile5, 0 + setmetatile 5, 3, METATILE_BattlePike_Curtain_Stage3_Tile6, 1 + special DrawWholeMapView + return + +BattleFrontier_BattlePikeRoomNormal_EventScript_25D96D:: @ 825D96D + setmetatile 4, 1, METATILE_BattlePike_Curtain_Stage0_Tile0, 1 + setmetatile 3, 2, METATILE_BattlePike_Curtain_Stage0_Tile1, 1 + setmetatile 4, 2, METATILE_BattlePike_Curtain_Stage0_Tile2, 1 + setmetatile 5, 2, METATILE_BattlePike_Curtain_Stage0_Tile3, 1 + setmetatile 3, 3, METATILE_BattlePike_Curtain_Stage0_Tile4, 1 + setmetatile 4, 3, METATILE_BattlePike_Curtain_Stage0_Tile5, 0 + setmetatile 5, 3, METATILE_BattlePike_Curtain_Stage0_Tile6, 1 + special DrawWholeMapView + return + +BattleFrontier_BattlePikeRoomNormal_Movement_25D9B0: @ 825D9B0 + walk_up + walk_up + step_end + +BattleFrontier_BattlePikeRoomNormal_Movement_25D9B3: @ 825D9B3 + walk_down + walk_down + step_end + +BattleFrontier_BattlePikeRoomNormal_Text_25D9B6: @ 825D9B6 + .string "Welcome…\n" + .string "You must be commended for your luck…\p" + .string "Your POKéMON shall be restored\n" + .string "to full health…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DA13: @ 825DA13 + .string "I urge you to enjoy the rest of your\n" + .string "Battle Choice challenge…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DA51: @ 825DA51 + .string "Ah, you're a lucky one.\n" + .string "I'm in somewhat-good spirits now.\p" + .string "I will restore one of your POKéMON\n" + .string "to full health.$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DABE: @ 825DABE + .string "The best of luck to you.\n" + .string "Farewell.$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DAE1: @ 825DAE1 + .string "Excuse me…\p" + .string "Would you care for a battle?\n" + .string "I'll restore your POKéMON if you win.$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DB2F: @ 825DB2F + .string "Very well…\n" + .string "Now, shall we?$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DB49: @ 825DB49 + .string "I see…\n" + .string "How unsporting of you…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DB67: @ 825DB67 + .string "Magnificent…\p" + .string "As promised, I shall restore your\n" + .string "POKéMON to full health.$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DBAE: @ 825DBAE + .string "The best of luck to you.\n" + .string "Farewell.$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DBD1: @ 825DBD1 + .string "Oh, my!\p" + .string "Watch out!$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DBE4: @ 825DBE4 + .string "Now, now!\n" + .string "KIRLIA, stop that!$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DC01: @ 825DC01 + .string "Now, now!\n" + .string "DUSCLOPS, stop that!$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DC20: @ 825DC20 + .string "KIRLIA used TOXIC!$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DC33: @ 825DC33 + .string "KIRLIA used HYPNOSIS!$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DC49: @ 825DC49 + .string "KIRLIA used THUNDER WAVE!$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DC63: @ 825DC63 + .string "KIRLIA used WILL-O-WISP!$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DC7C: @ 825DC7C + .string "DUSCLOPS used WILL-O-WISP!$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DC97: @ 825DC97 + .string "DUSCLOPS used ICE BEAM!$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DCAF: @ 825DCAF + .string "Look here!\n" + .string "That's quite enough!$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DCCF: @ 825DCCF + .string "I must apologize to you…\p" + .string "My KIRLIA has a TIMID nature…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DD06: @ 825DD06 + .string "I must apologize to you…\p" + .string "My DUSCLOPS has a TIMID nature…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DD3F: @ 825DD3F + .string "It attacks without warning if it is\n" + .string "startled by another person…\p" + .string "Are you and your POKéMON all right?$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DDA3: @ 825DDA3 + .string "I do apologize for what happened…\n" + .string "I do hope your POKéMON are fine.$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DDE6: @ 825DDE6 + .string "… … … … … …\n" + .string "… … … … … …$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DDFE: @ 825DDFE + .string "Welcome…\p" + .string "Here, we will have you battle\n" + .string "a somewhat-tough TRAINER…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DE3F: @ 825DE3F + .string "How wonderful…\p" + .string "To honor your victory, your POKéMON\n" + .string "shall be restored to full health…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DE94: @ 825DE94 + .string "I urge you to enjoy the rest of your\n" + .string "Battle Choice challenge…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DED2: @ 825DED2 + .string "I am LUCY…\n" + .string "I am the law here…\l" + .string "For I am the PIKE QUEEN…\p" + .string "You already know it, but to advance,\n" + .string "you must defeat me…\p" + .string "…I'm not one for idle chatter.\n" + .string "Hurry. Come on…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DF71: @ 825DF71 + .string "Your luck…\n" + .string "I hope you didn't use it all up here…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DFA2: @ 825DFA2 + .string "LUCY: … … … … … …\n" + .string "Show me your FRONTIER PASS…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25DFD0: @ 825DFD0 + .string "The Luck Symbol was embossed on\n" + .string "the FRONTIER PASS!$" + +BattleFrontier_BattlePikeRoomNormal_Text_25E003: @ 825E003 + .string "…That's all there is…\n" + .string "Disappear already…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25E02C: @ 825E02C + .string "LUCY: …You again…\p" + .string "… … … … … …\p" + .string "…I've trampled flowers and braved\n" + .string "storms to get to where I am…\p" + .string "I don't feel any compulsion to keep\n" + .string "losing to the same opponent…\p" + .string "… … … … … …\n" + .string "Fine… I'll do it…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25E0E8: @ 825E0E8 + .string "Now!\n" + .string "Come on!$" + +BattleFrontier_BattlePikeRoomNormal_Text_25E0F6: @ 825E0F6 + .string "LUCY: … … … … … …\p" + .string "…FRONTIER PASS…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25E118: @ 825E118 + .string "The Luck Symbol took on\n" + .string "a golden shine!$" + +BattleFrontier_BattlePikeRoomNormal_Text_25E140: @ 825E140 + .string "…You, I won't forget…\n" + .string "…Ever…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25E15D: @ 825E15D + .string "I welcome you…\p" + .string "Giggle…\n" + .string "You seem to be bereft of luck…\p" + .string "If only you hadn't chosen this room,\n" + .string "your POKéMON could have been healed…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25E1DD: @ 825E1DD + .string "I welcome you…\p" + .string "Since you have chosen this room, I will\n" + .string "restore one POKéMON to full health…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25E238: @ 825E238 + .string "I welcome you…\p" + .string "Since you have chosen this room, I will\n" + .string "restore two POKéMON to full health…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25E293: @ 825E293 + .string "I welcome you…\p" + .string "Giggle…\n" + .string "You should thank your lucky stars…\p" + .string "Since you have chosen this room,\n" + .string "all your POKéMON will be restored…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25E311: @ 825E311 + .string "I shall go fetch our master…$" + +BattleFrontier_BattlePikeRoomNormal_Text_25E32E: @ 825E32E + .string "Ah, you're a lucky one!\n" + .string "I'm in good spirits now.\p" + .string "I will restore two of your POKéMON\n" + .string "to full health!$" + diff --git a/data/maps/BattleFrontier_BattlePikeRandomRoom3/map.json b/data/maps/BattleFrontier_BattlePikeRoomWildMons/map.json index a2a00a3a9..078ccd1df 100644 --- a/data/maps/BattleFrontier_BattlePikeRandomRoom3/map.json +++ b/data/maps/BattleFrontier_BattlePikeRoomWildMons/map.json @@ -1,7 +1,7 @@ { - "id": "MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3", - "name": "BattleFrontier_BattlePikeRandomRoom3", - "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3", + "id": "MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS", + "name": "BattleFrontier_BattlePikeRoomWildMons", + "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS", "music": "MUS_B_TUBE", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, @@ -23,7 +23,7 @@ "elevation": 3, "var": "VAR_TEMP_1", "var_value": "0", - "script": "BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4174" + "script": "BattleFrontier_BattlePikeRoomWildMons_EventScript_2C4174" }, { "type": "trigger", @@ -32,7 +32,7 @@ "elevation": 3, "var": "VAR_TEMP_2", "var_value": "0", - "script": "BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4202" + "script": "BattleFrontier_BattlePikeRoomWildMons_EventScript_2C4202" }, { "type": "trigger", @@ -41,7 +41,7 @@ "elevation": 3, "var": "VAR_TEMP_2", "var_value": "0", - "script": "BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4202" + "script": "BattleFrontier_BattlePikeRoomWildMons_EventScript_2C4202" }, { "type": "trigger", @@ -50,7 +50,7 @@ "elevation": 3, "var": "VAR_TEMP_2", "var_value": "0", - "script": "BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4202" + "script": "BattleFrontier_BattlePikeRoomWildMons_EventScript_2C4202" }, { "type": "trigger", @@ -59,7 +59,7 @@ "elevation": 3, "var": "VAR_TEMP_3", "var_value": "1", - "script": "BattleFrontier_BattlePikeRandomRoom3_EventScript_2C420D" + "script": "BattleFrontier_BattlePikeRoomWildMons_EventScript_2C420D" }, { "type": "trigger", @@ -68,7 +68,7 @@ "elevation": 3, "var": "VAR_TEMP_3", "var_value": "1", - "script": "BattleFrontier_BattlePikeRandomRoom3_EventScript_2C420D" + "script": "BattleFrontier_BattlePikeRoomWildMons_EventScript_2C420D" }, { "type": "trigger", @@ -77,7 +77,7 @@ "elevation": 3, "var": "VAR_TEMP_3", "var_value": "1", - "script": "BattleFrontier_BattlePikeRandomRoom3_EventScript_2C420D" + "script": "BattleFrontier_BattlePikeRoomWildMons_EventScript_2C420D" } ], "bg_events": [] diff --git a/data/maps/BattleFrontier_BattlePikeRoomWildMons/scripts.inc b/data/maps/BattleFrontier_BattlePikeRoomWildMons/scripts.inc new file mode 100644 index 000000000..e12e51188 --- /dev/null +++ b/data/maps/BattleFrontier_BattlePikeRoomWildMons/scripts.inc @@ -0,0 +1,45 @@ +BattleFrontier_BattlePikeRoomWildMons_MapScripts:: @ 825E41A + map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattlePikeRoomWildMons_MapScript1_25E47A + map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattlePikeRoomWildMons_MapScript2_25E42A + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattlePikeRoomWildMons_MapScript2_25E466 + .byte 0 + +BattleFrontier_BattlePikeRoomWildMons_MapScript2_25E42A: @ 825E42A + map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeRoomWildMons_EventScript_25E43C + map_script_2 VAR_TEMP_1, 1, BattleFrontier_BattlePikeRoomWildMons_EventScript_25E44A + .2byte 0 + +BattleFrontier_BattlePikeRoomWildMons_EventScript_25E43C:: @ 825E43C + setvar VAR_TEMP_0, 1 + setvar VAR_0x8004, BATTLE_PIKE_FUNC_6 + special CallBattlePikeFunction + end + +BattleFrontier_BattlePikeRoomWildMons_EventScript_25E44A:: @ 825E44A + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST + warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 255, 5, 6 + waitstate + end + +BattleFrontier_BattlePikeRoomWildMons_MapScript2_25E466: @ 825E466 + map_script_2 VAR_TEMP_4, 0, BattleFrontier_BattlePikeRoomWildMons_EventScript_25E470 + .2byte 0 + +BattleFrontier_BattlePikeRoomWildMons_EventScript_25E470:: @ 825E470 + setvar VAR_TEMP_4, 1 + turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH + end + +BattleFrontier_BattlePikeRoomWildMons_MapScript1_25E47A: @ 825E47A + call BattleFrontier_BattlePikeRoom_EventScript_ResetSketchedMoves + frontier_get FRONTIER_DATA_BATTLE_OUTCOME + compare VAR_RESULT, B_OUTCOME_LOST + goto_if_eq BattleFrontier_BattlePikeRoomWildMons_EventScript_25E4A3 + compare VAR_RESULT, B_OUTCOME_DREW + goto_if_eq BattleFrontier_BattlePikeRoomWildMons_EventScript_25E4A3 + end + +BattleFrontier_BattlePikeRoomWildMons_EventScript_25E4A3:: @ 825E4A3 + setvar VAR_TEMP_1, 1 + end + diff --git a/data/maps/BattleFrontier_BattlePikeThreePathRoom/map.json b/data/maps/BattleFrontier_BattlePikeThreePathRoom/map.json index eb8a3ce27..ca84f402b 100644 --- a/data/maps/BattleFrontier_BattlePikeThreePathRoom/map.json +++ b/data/maps/BattleFrontier_BattlePikeThreePathRoom/map.json @@ -37,7 +37,7 @@ "movement_range_y": 0, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "BattleFrontier_BattlePikeThreePathRoom_EventScript_25CABB", + "script": "BattleFrontier_BattlePikeThreePathRoom_EventScript_HintGiver", "flag": "0" } ], @@ -50,7 +50,7 @@ "elevation": 3, "var": "VAR_TEMP_1", "var_value": "0", - "script": "BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F4E" + "script": "BattleFrontier_BattlePikeThreePathRoom_EventScript_LeftRoomWarp" }, { "type": "trigger", @@ -59,7 +59,7 @@ "elevation": 3, "var": "VAR_TEMP_1", "var_value": "0", - "script": "BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F59" + "script": "BattleFrontier_BattlePikeThreePathRoom_EventScript_CenterRoomWarp" }, { "type": "trigger", @@ -68,7 +68,7 @@ "elevation": 3, "var": "VAR_TEMP_1", "var_value": "0", - "script": "BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F64" + "script": "BattleFrontier_BattlePikeThreePathRoom_EventScript_RightRoomWarp" }, { "type": "trigger", diff --git a/data/maps/BattleFrontier_BattlePikeThreePathRoom/scripts.inc b/data/maps/BattleFrontier_BattlePikeThreePathRoom/scripts.inc index 49a5e58fb..e1d9da3de 100644 --- a/data/maps/BattleFrontier_BattlePikeThreePathRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeThreePathRoom/scripts.inc @@ -1,18 +1,18 @@ BattleFrontier_BattlePikeThreePathRoom_MapScripts:: @ 825C843 - map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattlePikeThreePathRoom_MapScript1_2C423E - map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattlePikeThreePathRoom_MapScript2_25C853 - map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattlePikeThreePathRoom_MapScript2_25C87D + map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattlePikeRoom_OnResume + map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattlePikeThreePathRoom_OnFrame + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattlePikeThreePathRoom_OnWarp .byte 0 -BattleFrontier_BattlePikeThreePathRoom_MapScript2_25C853: @ 825C853 - map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_25C891 - map_script_2 VAR_TEMP_0, 1, BattleFrontier_BattlePikeThreePathRoom_EventScript_25C89A - map_script_2 VAR_TEMP_0, 2, BattleFrontier_BattlePikeThreePathRoom_EventScript_25C8A4 +BattleFrontier_BattlePikeThreePathRoom_OnFrame: @ 825C853 + map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_CheckChallengeStatus + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpToLobby + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattlePikeThreePathRoom_EventScript_25C8A4 map_script_2 VAR_TEMP_5, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CA78 map_script_2 VAR_TEMP_5, 1, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CA97 .2byte 0 -BattleFrontier_BattlePikeThreePathRoom_MapScript2_25C87D: @ 825C87D +BattleFrontier_BattlePikeThreePathRoom_OnWarp: @ 825C87D map_script_2 VAR_TEMP_4, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_25C887 .2byte 0 @@ -21,49 +21,37 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_25C887:: @ 825C887 turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end -BattleFrontier_BattlePikeThreePathRoom_EventScript_25C891:: @ 825C891 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_0 - special CallFrontierUtilFunc +BattleFrontier_BattlePikeThreePathRoom_EventScript_CheckChallengeStatus:: @ 825C891 + frontier_getstatus end -BattleFrontier_BattlePikeThreePathRoom_EventScript_25C89A:: @ 825C89A +BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpToLobby:: @ 825C89A warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 255, 5, 6 waitstate end BattleFrontier_BattlePikeThreePathRoom_EventScript_25C8A4:: @ 825C8A4 lockall - message BattleFrontier_BattlePikeThreePathRoom_Text_25CD75 + message BattleFrontier_BattlePikeThreePathRoom_Text_AwaitingReturnSaveBeforeResume waitmessage setvar VAR_0x8004, BATTLE_PIKE_FUNC_8 setvar VAR_0x8005, 1 special CallBattlePikeFunction playse SE_SAVE waitse - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_PAUSED, FALSE setvar VAR_TEMP_0, 255 special SavePlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CDDA, MSGBOX_DEFAULT + frontier_setpartyorder FRONTIER_PARTY_SIZE + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_PleaseEnjoyChallenge, MSGBOX_DEFAULT closemessage releaseall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_FRONTIER_TRAINERS - special CallFrontierUtilFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 99 - special CallFrontierUtilFunc + frontier_settrainers + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 99 end BattleFrontier_BattlePikeThreePathRoom_EventScript_25C908:: @ 825C908 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM @ Room number switch VAR_RESULT case 1, BattleFrontier_BattlePikeThreePathRoom_EventScript_25C968 case 3, BattleFrontier_BattlePikeThreePathRoom_EventScript_25C978 @@ -77,54 +65,54 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_25C908:: @ 825C908 BattleFrontier_BattlePikeThreePathRoom_EventScript_25C968:: @ 825C968 lock faceplayer - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CBDD, MSGBOX_DEFAULT + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom1, MSGBOX_DEFAULT goto BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9D8 end BattleFrontier_BattlePikeThreePathRoom_EventScript_25C978:: @ 825C978 lock faceplayer - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CC00, MSGBOX_DEFAULT + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom3, MSGBOX_DEFAULT goto BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9D8 end BattleFrontier_BattlePikeThreePathRoom_EventScript_25C988:: @ 825C988 lock faceplayer - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CC23, MSGBOX_DEFAULT + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom5, MSGBOX_DEFAULT goto BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9D8 end BattleFrontier_BattlePikeThreePathRoom_EventScript_25C998:: @ 825C998 lock faceplayer - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CC46, MSGBOX_DEFAULT + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom7, MSGBOX_DEFAULT goto BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9D8 end BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9A8:: @ 825C9A8 lock faceplayer - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CC69, MSGBOX_DEFAULT + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom9, MSGBOX_DEFAULT goto BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9D8 end BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9B8:: @ 825C9B8 lock faceplayer - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CC8C, MSGBOX_DEFAULT + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom11, MSGBOX_DEFAULT goto BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9D8 end BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9C8:: @ 825C9C8 lock faceplayer - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CCB0, MSGBOX_DEFAULT + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom13, MSGBOX_DEFAULT goto BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9D8 end BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9D8:: @ 825C9D8 - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CCD4, MSGBOX_YESNO + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_ContinueWithChallenge, MSGBOX_YESNO switch VAR_RESULT case NO, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CA2A case MULTI_B_PRESSED, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CA2A @@ -132,9 +120,8 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9D8:: @ 825C9D8 end BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9FD:: @ 825C9FD - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_6 - special CallFrontierUtilFunc - message BattleFrontier_BattlePikeThreePathRoom_Text_25CE08 + frontier_saveparty + message BattleFrontier_BattlePikeThreePathRoom_Text_SavingYourData waitmessage special LoadPlayerParty setvar VAR_0x8004, BATTLE_PIKE_FUNC_8 @@ -143,12 +130,11 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9FD:: @ 825C9FD playse SE_SAVE waitse fadescreen 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SOFT_RESET - special CallFrontierUtilFunc + frontier_reset end BattleFrontier_BattlePikeThreePathRoom_EventScript_25CA2A:: @ 825CA2A - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CCFB, MSGBOX_YESNO + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_SaveChallengeAndQuit, MSGBOX_YESNO switch VAR_RESULT case YES, BattleFrontier_BattlePikeThreePathRoom_EventScript_25C9FD case NO, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CA5A @@ -157,7 +143,7 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_25CA2A:: @ 825CA2A end BattleFrontier_BattlePikeThreePathRoom_EventScript_25CA5A:: @ 825CA5A - message BattleFrontier_BattlePikeThreePathRoom_Text_25CD3C + message BattleFrontier_BattlePikeThreePathRoom_Text_RetireFromChallenge waitmessage multichoicedefault 20, 8, MULTI_YESNO, 1, 0 switch VAR_RESULT @@ -181,88 +167,86 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_25CA97:: @ 825CA97 applymovement 2, BattleFrontier_BattlePikeThreePathRoom_Movement_25CBCE waitmovement 0 lockall - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25D094, MSGBOX_DEFAULT + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_TerrifyingEvent, MSGBOX_DEFAULT releaseall applymovement 2, BattleFrontier_BattlePikeThreePathRoom_Movement_25CBD5 waitmovement 0 setvar VAR_TEMP_5, 255 end -BattleFrontier_BattlePikeThreePathRoom_EventScript_25CABB:: @ 825CABB - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_TYPE_HINT - special CallBattlePikeFunction - compare VAR_RESULT, 4 - goto_if_eq BattleFrontier_BattlePikeThreePathRoom_EventScript_25CBC2 +BattleFrontier_BattlePikeThreePathRoom_EventScript_HintGiver:: @ 825CABB + battlepike_gethint + compare VAR_RESULT, PIKE_HINT_BRAIN + goto_if_eq BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveBrainHint lock faceplayer - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CE69, MSGBOX_YESNO + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_FindingItDifficultToChoose, MSGBOX_YESNO switch VAR_RESULT - case YES, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB0A - case NO, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB00 - case MULTI_B_PRESSED, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB00 + case YES, BattleFrontier_BattlePikeThreePathRoom_EventScript_AcceptHint + case NO, BattleFrontier_BattlePikeThreePathRoom_EventScript_DeclineHint + case MULTI_B_PRESSED, BattleFrontier_BattlePikeThreePathRoom_EventScript_DeclineHint release end -BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB00:: @ 825CB00 - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CEBB, MSGBOX_DEFAULT +BattleFrontier_BattlePikeThreePathRoom_EventScript_DeclineHint:: @ 825CB00 + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_ApologizeForImpertinence, MSGBOX_DEFAULT release end -BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB0A:: @ 825CB0A - setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_HINT_ROOM_ID +BattleFrontier_BattlePikeThreePathRoom_EventScript_AcceptHint:: @ 825CB0A + setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_HINT_ROOM_ID special CallBattlePikeFunction switch VAR_RESULT - case 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB39 - case 1, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB46 - case 2, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB53 + case PIKE_ROOM_LEFT, BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveLeftRoomHint + case PIKE_ROOM_CENTER, BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveCenterRoomHint + case PIKE_ROOM_RIGHT, BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveRightRoomHint end -BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB39:: @ 825CB39 - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CF64, MSGBOX_DEFAULT - goto BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB60 +BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveLeftRoomHint:: @ 825CB39 + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_SomethingAboutLeftPath, MSGBOX_DEFAULT + goto BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveHint -BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB46:: @ 825CB46 - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CF23, MSGBOX_DEFAULT - goto BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB60 +BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveCenterRoomHint:: @ 825CB46 + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_SomethingAboutCenterPath, MSGBOX_DEFAULT + goto BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveHint -BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB53:: @ 825CB53 - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CEE3, MSGBOX_DEFAULT - goto BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB60 +BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveRightRoomHint:: @ 825CB53 + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_SomethingAboutRightPath, MSGBOX_DEFAULT + goto BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveHint -BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB60:: @ 825CB60 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_TYPE_HINT - special CallBattlePikeFunction +BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveHint:: @ 825CB60 + battlepike_gethint switch VAR_RESULT - case 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB9A - case 1, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CBA4 - case 2, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CBAE - case 3, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CBB8 + case PIKE_HINT_NOSTALGIA, BattleFrontier_BattlePikeThreePathRoom_EventScript_HintNostalgia + case PIKE_HINT_WHISPERING, BattleFrontier_BattlePikeThreePathRoom_EventScript_HintWhispering + case PIKE_HINT_POKEMON, BattleFrontier_BattlePikeThreePathRoom_EventScript_HintPokemon + case PIKE_HINT_PEOPLE, BattleFrontier_BattlePikeThreePathRoom_EventScript_HintPeople end -BattleFrontier_BattlePikeThreePathRoom_EventScript_25CB9A:: @ 825CB9A - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25D054, MSGBOX_DEFAULT +BattleFrontier_BattlePikeThreePathRoom_EventScript_HintNostalgia:: @ 825CB9A + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_WaveOfNostaliga, MSGBOX_DEFAULT release end -BattleFrontier_BattlePikeThreePathRoom_EventScript_25CBA4:: @ 825CBA4 - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25D017, MSGBOX_DEFAULT +BattleFrontier_BattlePikeThreePathRoom_EventScript_HintWhispering:: @ 825CBA4 + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_HeardWhispering, MSGBOX_DEFAULT release end -BattleFrontier_BattlePikeThreePathRoom_EventScript_25CBAE:: @ 825CBAE - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CFA3, MSGBOX_DEFAULT +BattleFrontier_BattlePikeThreePathRoom_EventScript_HintPokemon:: @ 825CBAE + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_AromaOfPokemon, MSGBOX_DEFAULT release end -BattleFrontier_BattlePikeThreePathRoom_EventScript_25CBB8:: @ 825CBB8 - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CFE5, MSGBOX_DEFAULT +BattleFrontier_BattlePikeThreePathRoom_EventScript_HintPeople:: @ 825CBB8 + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_PresenceOfPeople, MSGBOX_DEFAULT release end -BattleFrontier_BattlePikeThreePathRoom_EventScript_25CBC2:: @ 825CBC2 +BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveBrainHint:: @ 825CBC2 lock faceplayer - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25D125, MSGBOX_DEFAULT + msgbox BattleFrontier_BattlePikeThreePathRoom_Text_DreadfulPresence, MSGBOX_DEFAULT release end @@ -285,109 +269,107 @@ BattleFrontier_BattlePikeThreePathRoom_Movement_25CBD5: @ 825CBD5 face_down step_end -BattleFrontier_BattlePikeThreePathRoom_Text_25CBDD: @ 825CBDD +BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom1: @ 825CBDD .string "You are currently in\n" .string "the 1st room…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CC00: @ 825CC00 +BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom3: @ 825CC00 .string "You are currently in\n" .string "the 3rd room…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CC23: @ 825CC23 +BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom5: @ 825CC23 .string "You are currently in\n" .string "the 5th room…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CC46: @ 825CC46 +BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom7: @ 825CC46 .string "You are currently in\n" .string "the 7th room…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CC69: @ 825CC69 +BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom9: @ 825CC69 .string "You are currently in\n" .string "the 9th room…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CC8C: @ 825CC8C +BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom11: @ 825CC8C .string "You are currently in\n" .string "the 11th room…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CCB0: @ 825CCB0 +BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom13: @ 825CCB0 .string "You are currently in\n" .string "the 13th room…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CCD4: @ 825CCD4 +BattleFrontier_BattlePikeThreePathRoom_Text_ContinueWithChallenge: @ 825CCD4 .string "Will you continue with\n" .string "your challenge?$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CCFB: @ 825CCFB +BattleFrontier_BattlePikeThreePathRoom_Text_SaveChallengeAndQuit: @ 825CCFB .string "Would you like to save your challenge\n" .string "and quit the game for now?$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CD3C: @ 825CD3C +BattleFrontier_BattlePikeThreePathRoom_Text_RetireFromChallenge: @ 825CD3C .string "Do you wish to retire from your\n" .string "Battle Choice challenge?$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CD75: @ 825CD75 +BattleFrontier_BattlePikeThreePathRoom_Text_AwaitingReturnSaveBeforeResume: @ 825CD75 .string "We've been awaiting your return…\p" .string "Before resuming your Battle Choice\n" .string "challenge, let me save the game…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CDDA: @ 825CDDA +BattleFrontier_BattlePikeThreePathRoom_Text_PleaseEnjoyChallenge: @ 825CDDA .string "Please do enjoy your Battle Choice\n" .string "challenge…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CE08: @ 825CE08 +BattleFrontier_BattlePikeThreePathRoom_Text_SavingYourData: @ 825CE08 .string "I am saving your data…\n" .string "A little time, please…$" -BattleFrontier_BattlePikeRandomRoom1_Text_25CE36: @ 825CE36 -BattleFrontier_BattlePikeRandomRoom3_Text_25CE36: @ 825CE36 -BattleFrontier_BattlePikeThreePathRoom_Text_25CE36: @ 825CE36 +BattleFrontier_BattlePike_Text_PathBlockedNoTurningBack: @ 825CE36 .string "The path is blocked!\n" .string "And there is no turning back…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CE69: @ 825CE69 +BattleFrontier_BattlePikeThreePathRoom_Text_FindingItDifficultToChoose: @ 825CE69 .string "I beg your pardon, but…\p" .string "Are you perhaps finding it difficult\n" .string "to choose your path?$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CEBB: @ 825CEBB +BattleFrontier_BattlePikeThreePathRoom_Text_ApologizeForImpertinence: @ 825CEBB .string "I see…\n" .string "I apologize for my impertinence…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CEE3: @ 825CEE3 +BattleFrontier_BattlePikeThreePathRoom_Text_SomethingAboutRightPath: @ 825CEE3 .string "Ah, let me see… There is something\n" .string "about the path on the right…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CF23: @ 825CF23 +BattleFrontier_BattlePikeThreePathRoom_Text_SomethingAboutCenterPath: @ 825CF23 .string "Ah, let me see… There is something\n" .string "about the path in the center…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CF64: @ 825CF64 +BattleFrontier_BattlePikeThreePathRoom_Text_SomethingAboutLeftPath: @ 825CF64 .string "Ah, let me see… There is something\n" .string "about the path on the left…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CFA3: @ 825CFA3 +BattleFrontier_BattlePikeThreePathRoom_Text_AromaOfPokemon: @ 825CFA3 .string "It seems to have the distinct aroma\n" .string "of POKéMON wafting around it…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25CFE5: @ 825CFE5 +BattleFrontier_BattlePikeThreePathRoom_Text_PresenceOfPeople: @ 825CFE5 .string "Is it… A TRAINER?\n" .string "I sense the presence of people…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25D017: @ 825D017 +BattleFrontier_BattlePikeThreePathRoom_Text_HeardWhispering: @ 825D017 .string "I seem to have heard something…\n" .string "It may have been whispering…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25D054: @ 825D054 +BattleFrontier_BattlePikeThreePathRoom_Text_WaveOfNostaliga: @ 825D054 .string "For some odd reason, I felt a wave\n" .string "of nostalgia coming from it…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25D094: @ 825D094 +BattleFrontier_BattlePikeThreePathRoom_Text_TerrifyingEvent: @ 825D094 .string "I am sorry to say…\p" .string "A terrifying event, yes, a horrible one,\n" .string "is about to befall you…\p" .string "I urge you to pay the utmost care\n" .string "and prepare for the worst…$" -BattleFrontier_BattlePikeThreePathRoom_Text_25D125: @ 825D125 +BattleFrontier_BattlePikeThreePathRoom_Text_DreadfulPresence: @ 825D125 .string "From every path I sense a dreadful\n" .string "presence…$" diff --git a/data/maps/BattleFrontier_BattlePyramidEmptySquare/scripts.inc b/data/maps/BattleFrontier_BattlePyramidEmptySquare/scripts.inc index 1bcf1814a..02384c332 100644 --- a/data/maps/BattleFrontier_BattlePyramidEmptySquare/scripts.inc +++ b/data/maps/BattleFrontier_BattlePyramidEmptySquare/scripts.inc @@ -17,7 +17,6 @@ BattleFrontier_BattlePyramidEmptySquare_EventScript_252A5D:: @ 8252A5D setvar VAR_0x8006, 1 setvar VAR_0x8007, 55 setvar VAR_RESULT, 0 - BattleFrontier_BattlePyramidEmptySquare_EventScript_252A77:: @ 8252A77 special CallBattlePyramidFunction delay 2 @@ -40,32 +39,26 @@ BattleFrontier_BattlePyramidEmptySquare_EventScript_252A98:: @ 8252A98 BattleFrontier_BattlePyramidEmptySquare_MapScript1_252AA2: @ 8252AA2 setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SET_FLOOR_PALETTE special CallBattlePyramidFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_0 - special CallFrontierUtilFunc + frontier_getstatus switch VAR_TEMP_0 case 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252B8D - case 1, BattleFrontier_BattlePyramidEmptySquare_EventScript_252B66 - case 2, BattleFrontier_BattlePyramidEmptySquare_EventScript_252B8D - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 5 - special CallFrontierUtilFunc - compare VAR_RESULT, 4 + case CHALLENGE_STATUS_SAVING, BattleFrontier_BattlePyramidEmptySquare_EventScript_252B66 + case CHALLENGE_STATUS_PAUSED, BattleFrontier_BattlePyramidEmptySquare_EventScript_252B8D + frontier_get FRONTIER_DATA_BATTLE_OUTCOME + compare VAR_RESULT, B_OUTCOME_RAN goto_if_eq BattleFrontier_BattlePyramidEmptySquare_EventScript_252B39 - compare VAR_RESULT, 5 + compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED goto_if_eq BattleFrontier_BattlePyramidEmptySquare_EventScript_252B39 compare VAR_RESULT, 0 goto_if_eq BattleFrontier_BattlePyramidEmptySquare_EventScript_252B39 - compare VAR_RESULT, 2 + compare VAR_RESULT, B_OUTCOME_LOST goto_if_eq BattleFrontier_BattlePyramidEmptySquare_EventScript_252B42 - compare VAR_RESULT, 3 + compare VAR_RESULT, B_OUTCOME_DREW goto_if_eq BattleFrontier_BattlePyramidEmptySquare_EventScript_252B42 - compare VAR_RESULT, 9 + compare VAR_RESULT, B_OUTCOME_FORFEITED goto_if_eq BattleFrontier_BattlePyramidEmptySquare_EventScript_252B42 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_CHECK_BATTLE_TYPE - setvar VAR_0x8005, BATTLE_TYPE_TRAINER - special CallFrontierUtilFunc + frontier_isbattletype BATTLE_TYPE_TRAINER @ VAR_RESULT seems to be ignored here setvar VAR_TEMP_D, 1 - BattleFrontier_BattlePyramidEmptySquare_EventScript_252B39:: @ 8252B39 setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_RESTORE_PARTY special CallBattlePyramidFunction @@ -73,10 +66,7 @@ BattleFrontier_BattlePyramidEmptySquare_EventScript_252B39:: @ 8252B39 BattleFrontier_BattlePyramidEmptySquare_EventScript_252B42:: @ 8252B42 BattleFrontier_BattlePyramidTop_EventScript_252B42:: @ 8252B42 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SET_DATA setvar VAR_0x8005, 7 setvar VAR_0x8006, 255 @@ -100,15 +90,10 @@ BattleFrontier_BattlePyramidEmptySquare_EventScript_252B8D:: @ 8252B8D setvar VAR_0x8005, 1 special CallBattlePyramidFunction special SavePlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_INIT_TRAINERS special CallBattlePyramidFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc + frontier_setpartyorder FRONTIER_PARTY_SIZE setvar VAR_TEMP_F, 1 end @@ -125,23 +110,15 @@ BattleFrontier_BattlePyramidEmptySquare_EventScript_252BD5:: @ 8252BD5 return BattleFrontier_BattlePyramidEmptySquare_EventScript_252BE8:: @ 8252BE8 - call BattleFrontier_BattlePalaceBattleRoom_EventScript_241EBA - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + call BattleFrontier_EventScript_IncrementWinStreak + frontier_get FRONTIER_DATA_BATTLE_NUM @ Floor number addvar VAR_RESULT, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 2 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT compare VAR_RESULT, 7 goto_if_eq BattleFrontier_BattlePyramidEmptySquare_EventScript_252C45 setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SEED_FLOOR special CallBattlePyramidFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_RESULT, 0 warp MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE, 255, 1, 1 waitstate diff --git a/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc b/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc index 9f5560bfe..f3ae7137c 100644 --- a/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc @@ -14,15 +14,14 @@ BattleFrontier_BattlePyramidLobby_EventScript_25072B: @ 825072B BattleFrontier_BattlePyramidLobby_MapScript2_250735: @ 8250735 map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePyramidLobby_EventScript_25075F - map_script_2 VAR_TEMP_0, 1, BattleFrontier_BattlePyramidLobby_EventScript_250768 - map_script_2 VAR_TEMP_0, 2, BattleFrontier_BattlePyramidLobby_EventScript_2508AC - map_script_2 VAR_TEMP_0, 3, BattleFrontier_BattlePyramidLobby_EventScript_2507B1 - map_script_2 VAR_TEMP_0, 4, BattleFrontier_BattlePyramidLobby_EventScript_250852 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattlePyramidLobby_EventScript_250768 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattlePyramidLobby_EventScript_2508AC + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, BattleFrontier_BattlePyramidLobby_EventScript_2507B1 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattlePyramidLobby_EventScript_250852 .2byte 0 BattleFrontier_BattlePyramidLobby_EventScript_25075F:: @ 825075F - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_0 - special CallFrontierUtilFunc + frontier_getstatus end BattleFrontier_BattlePyramidLobby_EventScript_250768:: @ 8250768 @@ -40,18 +39,14 @@ BattleFrontier_BattlePyramidLobby_EventScript_250768:: @ 8250768 setvar VAR_0x8005, 2 setvar VAR_0x8006, 0 special CallBattlePyramidFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_TEMP_0, 255 releaseall end BattleFrontier_BattlePyramidLobby_EventScript_2507B1:: @ 82507B1 lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_IS_FRONTIER_BRAIN - special CallFrontierUtilFunc + frontier_isbrain compare VAR_RESULT, TRUE goto_if_eq BattleFrontier_BattlePyramidLobby_EventScript_2507D2 msgbox BattleFrontier_BattlePyramidLobby_Text_2517B5, MSGBOX_DEFAULT @@ -59,14 +54,12 @@ BattleFrontier_BattlePyramidLobby_EventScript_2507B1:: @ 82507B1 BattleFrontier_BattlePyramidLobby_EventScript_2507D2:: @ 82507D2 msgbox BattleFrontier_BattlePyramidLobby_Text_2525F4, MSGBOX_DEFAULT - BattleFrontier_BattlePyramidLobby_EventScript_2507DA:: @ 82507DA special DoBattlePyramidMonsHaveHeldItem compare VAR_RESULT, TRUE call_if_eq BattleFrontier_BattlePyramidLobby_EventScript_250DDB clearflag FLAG_STORING_ITEMS_IN_PYRAMID_BAG - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_8 - special CallFrontierUtilFunc + frontier_checkairshow special LoadPlayerParty setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_CLEAR_HELD_ITEMS special CallBattlePyramidFunction @@ -76,8 +69,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_2507DA:: @ 82507DA playse SE_EXPMAX waitse msgbox BattleFrontier_BattlePyramidLobby_Text_252662, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_11 - special CallFrontierUtilFunc + frontier_givepoints msgbox BattleFrontier_Text_ObtainedXBattlePoints, MSGBOX_GETPOINTS message BattleFrontier_BattlePyramidLobby_Text_251A77 waitmessage @@ -95,8 +87,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_2507DA:: @ 82507DA end BattleFrontier_BattlePyramidLobby_EventScript_250852:: @ 8250852 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_8 - special CallFrontierUtilFunc + frontier_checkairshow special LoadPlayerParty setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_CLEAR_HELD_ITEMS special CallBattlePyramidFunction @@ -129,8 +120,8 @@ BattleFrontier_BattlePyramidLobby_EventScript_2508AC:: @ 82508AC BattleFrontier_BattlePyramidLobby_EventScript_2508B1:: @ 82508B1 lock faceplayer - setvar VAR_FRONTIER_FACILITY, 6 - setvar VAR_FRONTIER_BATTLE_MODE, 0 + setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_PYRAMID + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES special SavePlayerParty msgbox BattleFrontier_BattlePyramidLobby_Text_250F31, MSGBOX_DEFAULT @@ -151,17 +142,13 @@ BattleFrontier_BattlePyramidLobby_EventScript_250904:: @ 8250904 switch VAR_RESULT case 2, BattleFrontier_BattlePyramidLobby_EventScript_250AC4 case MULTI_B_PRESSED, BattleFrontier_BattlePyramidLobby_EventScript_250AC4 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_15 - special CallFrontierUtilFunc - compare VAR_0x8004, 1 + frontier_checkineligible + compare VAR_0x8004, TRUE goto_if_eq BattleFrontier_BattlePyramidLobby_EventScript_250A75 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 1 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattlePyramidLobby_Text_251297, MSGBOX_DEFAULT fadescreen 1 - call BattleFrontier_BattlePyramidLobby_EventScript_23F2B7 + call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT setvar VAR_0x8005, 3 special sub_80F9490 @@ -176,23 +163,15 @@ BattleFrontier_BattlePyramidLobby_EventScript_250904:: @ 8250904 BattleFrontier_BattlePyramidLobby_EventScript_2509A5:: @ 82509A5 setvar VAR_TEMP_0, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_SELECTED_MON_ORDER setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_INIT_CHALLENGE special CallBattlePyramidFunction setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SET_DATA setvar VAR_0x8005, 2 setvar VAR_0x8006, 1 special CallBattlePyramidFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING + frontier_set FRONTIER_DATA_PAUSED, FALSE setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SEED_FLOOR special CallBattlePyramidFunction setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_INIT_TRAINERS @@ -207,16 +186,11 @@ BattleFrontier_BattlePyramidLobby_EventScript_2509A5:: @ 82509A5 BattleFrontier_BattlePyramidLobby_EventScript_250A21:: @ 8250A21 special SavePlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc + frontier_setpartyorder FRONTIER_PARTY_SIZE msgbox BattleFrontier_BattlePyramidLobby_Text_251531, MSGBOX_DEFAULT closemessage call BattleFrontier_BattlePyramidLobby_EventScript_250D56 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_RESULT, 0 special HealPlayerParty warp MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE, 255, 1, 1 @@ -230,8 +204,8 @@ BattleFrontier_BattlePyramidLobby_EventScript_250A68:: @ 8250A68 BattleFrontier_BattlePyramidLobby_EventScript_250A75:: @ 8250A75 switch VAR_RESULT - case 0, BattleFrontier_BattlePyramidLobby_EventScript_250A90 - case 1, BattleFrontier_BattlePyramidLobby_EventScript_250A9D + case FRONTIER_LVL_50, BattleFrontier_BattlePyramidLobby_EventScript_250A90 + case FRONTIER_LVL_OPEN, BattleFrontier_BattlePyramidLobby_EventScript_250A9D BattleFrontier_BattlePyramidLobby_EventScript_250A90:: @ 8250A90 msgbox BattleFrontier_BattlePyramidLobby_Text_2513C1, MSGBOX_DEFAULT @@ -242,18 +216,13 @@ BattleFrontier_BattlePyramidLobby_EventScript_250A9D:: @ 8250A9D goto BattleFrontier_BattlePyramidLobby_EventScript_250ACC BattleFrontier_BattlePyramidLobby_EventScript_250AAA:: @ 8250AAA - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 goto BattleFrontier_BattlePyramidLobby_EventScript_250AC4 BattleFrontier_BattlePyramidLobby_EventScript_250AC1:: @ 8250AC1 special LoadPlayerParty - BattleFrontier_BattlePyramidLobby_EventScript_250AC4:: @ 8250AC4 msgbox BattleFrontier_BattlePyramidLobby_Text_250FE5, MSGBOX_DEFAULT - BattleFrontier_BattlePyramidLobby_EventScript_250ACC:: @ 8250ACC release end @@ -424,9 +393,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_250D39:: @ 8250D39 BattleFrontier_BattlePyramidLobby_EventScript_250D42:: @ 8250D42 lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW - setvar VAR_0x8005, 6 - special CallFrontierUtilFunc + frontier_results FRONTIER_FACILITY_PYRAMID waitbuttonpress special RemoveRecordsWindow releaseall @@ -447,7 +414,6 @@ BattleFrontier_BattlePyramidLobby_EventScript_250D56:: @ 8250D56 BattleFrontier_BattlePyramidLobby_EventScript_250D94:: @ 8250D94 msgbox BattleFrontier_BattlePyramidLobby_Text_2515F4, MSGBOX_DEFAULT - BattleFrontier_BattlePyramidLobby_EventScript_250D9C:: @ 8250D9C message BattleFrontier_BattlePyramidLobby_Text_25161E waitmessage diff --git a/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc b/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc index 1d0bcf395..00a30b0e7 100644 --- a/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc +++ b/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc @@ -28,28 +28,23 @@ BattleFrontier_BattlePyramidTop_EventScript_2550F3:: @ 82550F3 end BattleFrontier_BattlePyramidTop_MapScript1_2550F4: @ 82550F4 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_9 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + frontier_getbrainstatus + compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_25510C - call BattleFrontier_BattlePyramidTop_EventScript_242170 - + call BattleFrontier_EventScript_SetBrainObjectGfx BattleFrontier_BattlePyramidTop_EventScript_25510C:: @ 825510C copyvar VAR_TEMP_C, VAR_RESULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_0 - special CallFrontierUtilFunc + frontier_getstatus switch VAR_TEMP_0 case 0, BattleFrontier_BattlePyramidTop_EventScript_255193 - case 1, BattleFrontier_BattlePyramidTop_EventScript_252B66 - case 2, BattleFrontier_BattlePyramidTop_EventScript_255193 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 5 - special CallFrontierUtilFunc - compare VAR_RESULT, 2 + case CHALLENGE_STATUS_SAVING, BattleFrontier_BattlePyramidTop_EventScript_252B66 + case CHALLENGE_STATUS_PAUSED, BattleFrontier_BattlePyramidTop_EventScript_255193 + frontier_get FRONTIER_DATA_BATTLE_OUTCOME + compare VAR_RESULT, B_OUTCOME_LOST goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_252B42 - compare VAR_RESULT, 3 + compare VAR_RESULT, B_OUTCOME_DREW goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_252B42 - compare VAR_RESULT, 9 + compare VAR_RESULT, B_OUTCOME_FORFEITED goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_252B42 end @@ -73,15 +68,10 @@ BattleFrontier_BattlePyramidTop_EventScript_255193:: @ 8255193 setvar VAR_0x8005, 1 special CallBattlePyramidFunction special SavePlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_INIT_TRAINERS special CallBattlePyramidFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc + frontier_setpartyorder FRONTIER_PARTY_SIZE setvar VAR_TEMP_F, 1 end @@ -90,7 +80,7 @@ BattleFrontier_BattlePyramidTop_EventScript_2551D0:: @ 82551D0 faceplayer compare VAR_TEMP_D, 0 goto_if_ne BattleFrontier_BattlePyramidTop_EventScript_255236 - compare VAR_TEMP_C, 0 + compare VAR_TEMP_C, FRONTIER_BRAIN_NOT_READY goto_if_ne BattleFrontier_BattlePyramidTop_EventScript_255240 msgbox BattleFrontier_BattlePyramidTop_Text_255410, MSGBOX_DEFAULT closemessage @@ -107,10 +97,7 @@ BattleFrontier_BattlePyramidTop_EventScript_2551D0:: @ 82551D0 closemessage BattleFrontier_BattlePyramidTop_EventScript_25521A:: @ 825521A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 3 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON warp MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY, 255, 7, 13 waitstate end @@ -130,22 +117,18 @@ BattleFrontier_BattlePyramidTop_EventScript_255240:: @ 8255240 BattleFrontier_BattlePyramidTop_EventScript_255256:: @ 8255256 lockall switch VAR_TEMP_C - case 2, BattleFrontier_BattlePyramidTop_EventScript_255335 - case 3, BattleFrontier_BattlePyramidTop_EventScript_2552D0 - case 4, BattleFrontier_BattlePyramidTop_EventScript_255388 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + case FRONTIER_BRAIN_GOLD, BattleFrontier_BattlePyramidTop_EventScript_255335 + case FRONTIER_BRAIN_STREAK, BattleFrontier_BattlePyramidTop_EventScript_2552D0 + case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattlePyramidTop_EventScript_255388 + frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH + compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattlePyramidTop_EventScript_2552D0 special SpawnCameraObject applymovement OBJ_EVENT_ID_CAMERA, BattleFrontier_BattlePyramidTop_Movement_25540C waitmovement 0 msgbox BattleFrontier_BattlePyramidTop_Text_255669, MSGBOX_DEFAULT closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH applymovement 2, BattleFrontier_BattlePyramidTop_Movement_25540A waitmovement 0 msgbox BattleFrontier_BattlePyramidTop_Text_25573E, MSGBOX_DEFAULT @@ -165,8 +148,7 @@ BattleFrontier_BattlePyramidTop_EventScript_2552DA:: @ 82552DA goto BattleFrontier_BattlePyramidTop_EventScript_252B42 BattleFrontier_BattlePyramidTop_EventScript_2552FB:: @ 82552FB - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS - special CallFrontierUtilFunc + frontier_getsymbols compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattlePyramidTop_EventScript_25521A msgbox BattleFrontier_BattlePyramidTop_Text_255873, MSGBOX_DEFAULT @@ -174,25 +156,20 @@ BattleFrontier_BattlePyramidTop_EventScript_2552FB:: @ 82552FB message BattleFrontier_BattlePyramidTop_Text_2558E9 waitmessage waitfanfare - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL - special CallFrontierUtilFunc + frontier_givesymbol msgbox BattleFrontier_BattlePyramidTop_Text_25591D, MSGBOX_DEFAULT goto BattleFrontier_BattlePyramidTop_EventScript_25521A BattleFrontier_BattlePyramidTop_EventScript_255335:: @ 8255335 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH + compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattlePyramidTop_EventScript_255388 special SpawnCameraObject applymovement OBJ_EVENT_ID_CAMERA, BattleFrontier_BattlePyramidTop_Movement_25540C waitmovement 0 msgbox BattleFrontier_BattlePyramidTop_Text_255951, MSGBOX_DEFAULT closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH applymovement 2, BattleFrontier_BattlePyramidTop_Movement_25540A waitmovement 0 msgbox BattleFrontier_BattlePyramidTop_Text_255A6D, MSGBOX_DEFAULT @@ -212,8 +189,7 @@ BattleFrontier_BattlePyramidTop_EventScript_255392:: @ 8255392 goto BattleFrontier_BattlePyramidTop_EventScript_252B42 BattleFrontier_BattlePyramidTop_EventScript_2553B3:: @ 82553B3 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS - special CallFrontierUtilFunc + frontier_getsymbols compare VAR_RESULT, 2 goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_25521A msgbox BattleFrontier_BattlePyramidTop_Text_255ACD, MSGBOX_DEFAULT @@ -221,8 +197,7 @@ BattleFrontier_BattlePyramidTop_EventScript_2553B3:: @ 82553B3 message BattleFrontier_BattlePyramidTop_Text_255B59 waitmessage waitfanfare - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL - special CallFrontierUtilFunc + frontier_givesymbol msgbox BattleFrontier_BattlePyramidTop_Text_255B82, MSGBOX_DEFAULT goto BattleFrontier_BattlePyramidTop_EventScript_25521A diff --git a/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc index 446ec7702..4334eb223 100644 --- a/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc @@ -20,9 +20,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241B6C:: @ 8241B6C setvar VAR_TEMP_0, 1 applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleTowerBattleRoom_Movement_242179 waitmovement 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 0 goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_241BC3 applymovement 2, BattleFrontier_BattleTowerBattleRoom_Movement_24218D @@ -30,10 +28,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241B6C:: @ 8241B6C applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleTowerBattleRoom_Movement_24217E waitmovement 0 setvar VAR_TEMP_2, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 6 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_6, 1 goto BattleFrontier_BattleTowerBattleRoom_EventScript_241C8F BattleFrontier_BattleTowerBattleRoom_EventScript_241BC3:: @ 8241BC3 @@ -49,14 +44,10 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241BC3:: @ 8241BC3 waitmessage call BattleFrontier_BattleTowerBattleRoom_EventScript_24210E switch VAR_RESULT - case 1, BattleFrontier_BattleTowerBattleRoom_EventScript_241C2F - + case B_OUTCOME_WON, BattleFrontier_BattleTowerBattleRoom_EventScript_241C2F BattleFrontier_BattleTowerBattleRoom_EventScript_241C03:: @ 8241C03 BattleFrontier_BattleTowerMultiBattleRoom_EventScript_241C03:: @ 8241C03 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST setvar VAR_0x8004, BATTLE_TOWER_FUNC_2 setvar VAR_0x8005, 3 special CallBattleTowerFunc @@ -65,7 +56,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_241C03:: @ 8241C03 goto BattleFrontier_BattleTowerBattleRoom_EventScript_2421B8 BattleFrontier_BattleTowerBattleRoom_EventScript_241C2F:: @ 8241C2F - call BattleFrontier_BattleTowerBattleRoom_EventScript_241EBA + call BattleFrontier_EventScript_IncrementWinStreak setvar VAR_0x8004, BATTLE_TOWER_FUNC_4 special CallBattleTowerFunc switch VAR_RESULT @@ -73,9 +64,8 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241C2F:: @ 8241C2F applymovement 1, BattleFrontier_BattleTowerBattleRoom_Movement_242188 waitmovement 0 removeobject 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_9 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + frontier_getbrainstatus + compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY call_if_ne BattleFrontier_BattleTowerBattleRoom_EventScript_241EC3 applymovement 2, BattleFrontier_BattleTowerBattleRoom_Movement_24218D waitmovement 0 @@ -87,14 +77,11 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241C2F:: @ 8241C2F special HealPlayerParty BattleFrontier_BattleTowerBattleRoom_EventScript_241C8F:: @ 8241C8F - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_9 - special CallFrontierUtilFunc + frontier_getbrainstatus copyvar VAR_TEMP_F, VAR_RESULT - compare VAR_RESULT, 0 + compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY goto_if_ne BattleFrontier_BattleTowerBattleRoom_EventScript_241F0A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM call BattleFrontier_BattleTowerBattleRoom_EventScript_241E44 call BattleFrontier_BattleTowerBattleRoom_EventScript_23E8E0 compare VAR_RESULT, 1 @@ -125,7 +112,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241D40:: @ 8241D40 case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom_EventScript_241C8F BattleFrontier_BattleTowerBattleRoom_EventScript_241D72:: @ 8241D72 - call BattleFrontier_BattleTowerBattleRoom_EventScript_23E8B4 + call BattleFrontier_EventScript_SaveBattle goto BattleFrontier_BattleTowerBattleRoom_EventScript_241C8F BattleFrontier_BattleTowerBattleRoom_EventScript_241D7C:: @ 8241D7C @@ -153,10 +140,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241DDC:: @ 8241DDC goto BattleFrontier_BattleTowerBattleRoom_EventScript_241BC3 BattleFrontier_BattleTowerBattleRoom_EventScript_241DF6:: @ 8241DF6 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 3 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON setvar VAR_0x8004, BATTLE_TOWER_FUNC_2 setvar VAR_0x8005, 3 special CallBattleTowerFunc @@ -168,13 +152,12 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241E22:: @ 8241E22 message BattleFrontier_BattleTowerBattleRoom_Text_242426 waitmessage setvar VAR_0x8004, BATTLE_TOWER_FUNC_SAVE - setvar VAR_0x8005, 2 + setvar VAR_0x8005, CHALLENGE_STATUS_PAUSED special CallBattleTowerFunc playse SE_SAVE waitse fadescreen 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SOFT_RESET - special CallFrontierUtilFunc + frontier_reset end BattleFrontier_BattleTowerBattleRoom_EventScript_241E44:: @ 8241E44 @@ -217,14 +200,8 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241EB3:: @ 8241EB3 waitmessage return -BattleFrontier_BattleArenaBattleRoom_EventScript_241EBA:: @ 8241EBA -BattleFrontier_BattleDomeLobby_EventScript_241EBA:: @ 8241EBA -BattleFrontier_BattleFactoryBattleRoom_EventScript_241EBA:: @ 8241EBA -BattleFrontier_BattlePalaceBattleRoom_EventScript_241EBA:: @ 8241EBA -BattleFrontier_BattleTowerBattleRoom2_EventScript_241EBA:: @ 8241EBA -BattleFrontier_BattleTowerBattleRoom_EventScript_241EBA:: @ 8241EBA - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_17 - special CallFrontierUtilFunc +BattleFrontier_EventScript_IncrementWinStreak:: @ 8241EBA + frontier_incrementstreak return BattleFrontier_BattleTowerBattleRoom_EventScript_241EC3:: @ 8241EC3 @@ -273,7 +250,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241F79:: @ 8241F79 case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom_EventScript_241F22 BattleFrontier_BattleTowerBattleRoom_EventScript_241FAF:: @ 8241FAF - call BattleFrontier_BattleTowerBattleRoom_EventScript_242170 + call BattleFrontier_EventScript_SetBrainObjectGfx closemessage applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleTowerBattleRoom_Movement_242180 waitmovement 0 @@ -283,19 +260,14 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241FAF:: @ 8241FAF applymovement 1, BattleFrontier_BattleTowerBattleRoom_Movement_2421B2 waitmovement 0 switch VAR_TEMP_F - case 2, BattleFrontier_BattleTowerBattleRoom_EventScript_242085 - case 3, BattleFrontier_BattleTowerBattleRoom_EventScript_242029 - case 4, BattleFrontier_BattleTowerBattleRoom_EventScript_2420B2 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleTowerBattleRoom_EventScript_242085 + case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleTowerBattleRoom_EventScript_242029 + case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleTowerBattleRoom_EventScript_2420B2 + frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH + compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattleTowerBattleRoom_EventScript_242029 msgbox BattleFrontier_BattleTowerBattleRoom_Text_242579, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - + frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH BattleFrontier_BattleTowerBattleRoom_EventScript_242029:: @ 8242029 msgbox BattleFrontier_BattleTowerBattleRoom_Text_24268C, MSGBOX_DEFAULT call BattleFrontier_BattleTowerBattleRoom_EventScript_24210E @@ -304,9 +276,8 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_242029:: @ 8242029 goto BattleFrontier_BattleTowerBattleRoom_EventScript_241C03 BattleFrontier_BattleTowerBattleRoom_EventScript_242046:: @ 8242046 - call BattleFrontier_BattleTowerBattleRoom_EventScript_241EBA - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS - special CallFrontierUtilFunc + call BattleFrontier_EventScript_IncrementWinStreak + frontier_getsymbols compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattleTowerBattleRoom_EventScript_241DF6 msgbox BattleFrontier_BattleTowerBattleRoom_Text_2426B4, MSGBOX_DEFAULT @@ -314,22 +285,16 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_242046:: @ 8242046 message BattleFrontier_BattleTowerBattleRoom_Text_24270E waitmessage waitfanfare - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL - special CallFrontierUtilFunc + frontier_givesymbol msgbox BattleFrontier_BattleTowerBattleRoom_Text_242744, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerBattleRoom_EventScript_241DF6 BattleFrontier_BattleTowerBattleRoom_EventScript_242085:: @ 8242085 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 + frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH + compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattleTowerBattleRoom_EventScript_2420B2 msgbox BattleFrontier_BattleTowerBattleRoom_Text_2427F9, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc - + frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH BattleFrontier_BattleTowerBattleRoom_EventScript_2420B2:: @ 82420B2 msgbox BattleFrontier_BattleTowerBattleRoom_Text_2428E0, MSGBOX_DEFAULT call BattleFrontier_BattleTowerBattleRoom_EventScript_24210E @@ -338,9 +303,8 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_2420B2:: @ 82420B2 goto BattleFrontier_BattleTowerBattleRoom_EventScript_241C03 BattleFrontier_BattleTowerBattleRoom_EventScript_2420CF:: @ 82420CF - call BattleFrontier_BattleTowerBattleRoom_EventScript_241EBA - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS - special CallFrontierUtilFunc + call BattleFrontier_EventScript_IncrementWinStreak + frontier_getsymbols compare VAR_RESULT, 2 goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_241DF6 msgbox BattleFrontier_BattleTowerBattleRoom_Text_2428F7, MSGBOX_DEFAULT @@ -348,8 +312,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_2420CF:: @ 82420CF message BattleFrontier_BattleTowerBattleRoom_Text_242932 waitmessage waitfanfare - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL - special CallFrontierUtilFunc + frontier_givesymbol msgbox BattleFrontier_BattleTowerBattleRoom_Text_24295D, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerBattleRoom_EventScript_241DF6 @@ -357,40 +320,26 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_24210E:: @ 824210E BattleFrontier_BattleTowerBattleRoom_EventScript_24210E:: @ 824210E closemessage setvar VAR_TEMP_2, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 6 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_6, 0 special HealPlayerParty setvar VAR_0x8004, SPECIAL_BATTLE_TOWER setvar VAR_0x8005, 0 special DoSpecialTrainerBattle waitstate copyvar VAR_0x8004, VAR_FRONTIER_BATTLE_MODE - compare VAR_0x8004, 3 + compare VAR_0x8004, FRONTIER_MODE_LINK_MULTIS goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_24215A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_18 - special CallFrontierUtilFunc + frontier_restorehelditems special HealPlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_21 - special CallFrontierUtilFunc - + frontier_resetsketch BattleFrontier_BattleTowerBattleRoom_EventScript_24215A:: @ 824215A setvar VAR_0x8004, BATTLE_TOWER_FUNC_15 special CallBattleTowerFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 5 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_OUTCOME return -BattleFrontier_BattleArenaBattleRoom_EventScript_242170:: @ 8242170 -BattleFrontier_BattleDomeBattleRoom_EventScript_242170:: @ 8242170 -BattleFrontier_BattleFactoryBattleRoom_EventScript_242170:: @ 8242170 -BattleFrontier_BattlePalaceBattleRoom_EventScript_242170:: @ 8242170 -BattleFrontier_BattlePyramidTop_EventScript_242170:: @ 8242170 -BattleFrontier_BattleTowerBattleRoom_EventScript_242170:: @ 8242170 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_BRAIN_OBJECT - special CallFrontierUtilFunc +BattleFrontier_EventScript_SetBrainObjectGfx:: @ 8242170 + frontier_setbrainobj return BattleFrontier_BattleTowerBattleRoom_Movement_242179: @ 8242179 @@ -485,11 +434,11 @@ BattleFrontier_BattleTowerBattleRoom_Movement_2421B2: @ 82421B2 BattleFrontier_BattleTowerBattleRoom2_EventScript_2421B8:: @ 82421B8 BattleFrontier_BattleTowerBattleRoom_EventScript_2421B8:: @ 82421B8 copyvar VAR_RESULT, VAR_FRONTIER_BATTLE_MODE - compare VAR_RESULT, 1 + compare VAR_RESULT, FRONTIER_MODE_DOUBLES goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_2421E8 - compare VAR_RESULT, 2 + compare VAR_RESULT, FRONTIER_MODE_MULTIS goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_2421F2 - compare VAR_RESULT, 3 + compare VAR_RESULT, FRONTIER_MODE_LINK_MULTIS goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_2421FC warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY, 255, 6, 6 waitstate diff --git a/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc b/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc index 4a0c26e20..380a53dad 100644 --- a/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc @@ -5,9 +5,9 @@ BattleFrontier_BattleTowerBattleRoom2_MapScripts:: @ 8248EE8 .byte 0 BattleFrontier_BattleTowerBattleRoom2_MapScript1_248EF8: @ 8248EF8 - compare VAR_FRONTIER_BATTLE_MODE, 2 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS call_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_248F0F - compare VAR_FRONTIER_BATTLE_MODE, 3 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS call_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_248F2F end @@ -45,9 +45,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_248F4D:: @ 8248F4D applymovement 5, BattleFrontier_BattleTowerBattleRoom2_Movement_249518 applymovement 6, BattleFrontier_BattleTowerBattleRoom2_Movement_24951E waitmovement 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 0 goto_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_248FB4 applymovement 2, BattleFrontier_BattleTowerBattleRoom2_Movement_24953E @@ -56,10 +54,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_248F4D:: @ 8248F4D applymovement 5, BattleFrontier_BattleTowerBattleRoom2_Movement_249524 applymovement 6, BattleFrontier_BattleTowerBattleRoom2_Movement_249524 waitmovement 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 6 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_6, 1 goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249143 BattleFrontier_BattleTowerBattleRoom2_EventScript_248FB4:: @ 8248FB4 @@ -70,7 +65,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_248FB4:: @ 8248FB4 applymovement 1, BattleFrontier_BattleTowerBattleRoom2_Movement_249528 applymovement 4, BattleFrontier_BattleTowerBattleRoom2_Movement_24952E waitmovement 0 - compare VAR_FRONTIER_BATTLE_MODE, 3 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS goto_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_249026 setvar VAR_0x8004, BATTLE_TOWER_FUNC_7 setvar VAR_0x8005, 0 @@ -114,10 +109,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_249069:: @ 8249069 case 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_2490AA BattleFrontier_BattleTowerBattleRoom2_EventScript_24907E:: @ 824907E - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST setvar VAR_0x8004, BATTLE_TOWER_FUNC_2 setvar VAR_0x8005, 3 special CallBattleTowerFunc @@ -126,7 +118,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_24907E:: @ 824907E goto BattleFrontier_BattleTowerBattleRoom2_EventScript_2421B8 BattleFrontier_BattleTowerBattleRoom2_EventScript_2490AA:: @ 82490AA - call BattleFrontier_BattleTowerBattleRoom2_EventScript_241EBA + call BattleFrontier_EventScript_IncrementWinStreak setvar VAR_0x8004, BATTLE_TOWER_FUNC_4 special CallBattleTowerFunc switch VAR_RESULT @@ -142,7 +134,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_2490AA:: @ 82490AA applymovement 5, BattleFrontier_BattleTowerBattleRoom2_Movement_249524 applymovement 6, BattleFrontier_BattleTowerBattleRoom2_Movement_249524 waitmovement 0 - compare VAR_FRONTIER_BATTLE_MODE, 3 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS goto_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_249118 msgbox BattleFrontier_BattleTowerBattleRoom2_Text_242217, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249121 @@ -154,21 +146,17 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_249118:: @ 8249118 BattleFrontier_BattleTowerBattleRoom2_EventScript_249121:: @ 8249121 special LoadPlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc - compare VAR_FRONTIER_BATTLE_MODE, 3 + frontier_setpartyorder FRONTIER_MULTI_PARTY_SIZE + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS call_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_249514 playfanfare MUS_ME_ASA waitfanfare special HealPlayerParty BattleFrontier_BattleTowerBattleRoom2_EventScript_249143:: @ 8249143 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM call BattleFrontier_BattleTowerBattleRoom2_EventScript_2492FD - compare VAR_FRONTIER_BATTLE_MODE, 3 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS goto_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_249283 call BattleFrontier_BattleTowerBattleRoom2_EventScript_23E8E0 compare VAR_RESULT, 1 @@ -199,7 +187,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_2491E7:: @ 82491E7 case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom2_EventScript_249143 BattleFrontier_BattleTowerBattleRoom2_EventScript_249219:: @ 8249219 - call BattleFrontier_BattleTowerBattleRoom2_EventScript_23E8B4 + call BattleFrontier_EventScript_SaveBattle goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249143 BattleFrontier_BattleTowerBattleRoom2_EventScript_249223:: @ 8249223 @@ -231,10 +219,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_249283:: @ 8249283 end BattleFrontier_BattleTowerBattleRoom2_EventScript_2492AF:: @ 82492AF - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 3 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON setvar VAR_0x8004, BATTLE_TOWER_FUNC_2 setvar VAR_0x8005, 3 special CallBattleTowerFunc @@ -246,17 +231,16 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_2492DB:: @ 82492DB message BattleFrontier_BattleTowerBattleRoom2_Text_242426 waitmessage setvar VAR_0x8004, BATTLE_TOWER_FUNC_SAVE - setvar VAR_0x8005, 2 + setvar VAR_0x8005, CHALLENGE_STATUS_PAUSED special CallBattleTowerFunc playse SE_SAVE waitse fadescreen 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SOFT_RESET - special CallFrontierUtilFunc + frontier_reset end BattleFrontier_BattleTowerBattleRoom2_EventScript_2492FD:: @ 82492FD - compare VAR_FRONTIER_BATTLE_MODE, 3 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS goto_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_24937E copyvar VAR_TEMP_F, VAR_RESULT switch VAR_TEMP_F @@ -385,7 +369,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_2494A8:: @ 82494A8 switch VAR_RESULT case 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_249143 case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom2_EventScript_249143 - call BattleFrontier_BattleTowerBattleRoom2_EventScript_23E8B4 + call BattleFrontier_EventScript_SaveBattle setflag FLAG_TEMP_2 goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249143 end diff --git a/data/maps/BattleFrontier_BattleTowerCorridor2/scripts.inc b/data/maps/BattleFrontier_BattleTowerCorridor2/scripts.inc index 7c4933816..4ae755b37 100644 --- a/data/maps/BattleFrontier_BattleTowerCorridor2/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerCorridor2/scripts.inc @@ -5,9 +5,9 @@ BattleFrontier_BattleTowerCorridor2_MapScripts:: @ 8248D4A .byte 0 BattleFrontier_BattleTowerCorridor2_MapScript1_248D5A: @ 8248D5A - compare VAR_FRONTIER_BATTLE_MODE, 2 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS call_if_eq BattleFrontier_BattleTowerCorridor2_EventScript_248D71 - compare VAR_FRONTIER_BATTLE_MODE, 3 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS call_if_eq BattleFrontier_BattleTowerCorridor2_EventScript_248D91 end @@ -87,13 +87,13 @@ BattleFrontier_BattleTowerCorridor2_EventScript_248DBC:: @ 8248DBC end BattleFrontier_BattleTowerCorridor2_EventScript_248E71:: @ 8248E71 - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleTowerCorridor2_EventScript_248E9E - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleTowerCorridor2_EventScript_248E9E - compare VAR_FRONTIER_BATTLE_MODE, 2 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS call_if_eq BattleFrontier_BattleTowerCorridor2_EventScript_248EA8 - compare VAR_FRONTIER_BATTLE_MODE, 3 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS call_if_eq BattleFrontier_BattleTowerCorridor2_EventScript_248EB2 return diff --git a/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc b/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc index 29081f82a..e66004ba9 100644 --- a/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc @@ -24,13 +24,13 @@ BattleFrontier_BattleTowerElevator_EventScript_2419F0:: @ 82419F0 end BattleFrontier_BattleTowerElevator_EventScript_241A28:: @ 8241A28 - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleTowerElevator_EventScript_241A55 - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleTowerElevator_EventScript_241A55 - compare VAR_FRONTIER_BATTLE_MODE, 2 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS call_if_eq BattleFrontier_BattleTowerElevator_EventScript_241A5F - compare VAR_FRONTIER_BATTLE_MODE, 3 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS call_if_eq BattleFrontier_BattleTowerElevator_EventScript_241A72 return diff --git a/data/maps/BattleFrontier_BattleTowerLobby/map.json b/data/maps/BattleFrontier_BattleTowerLobby/map.json index 41a07eeb8..9160d37e7 100644 --- a/data/maps/BattleFrontier_BattleTowerLobby/map.json +++ b/data/maps/BattleFrontier_BattleTowerLobby/map.json @@ -89,7 +89,7 @@ "movement_range_y": 1, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "EventScript_Apprentice", + "script": "BattleFrontier_BattleTowerLobby_EventScript_Apprentice", "flag": "FLAG_HIDE_APPRENTICE" }, { diff --git a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc index ee6ff15a8..32229f724 100644 --- a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc @@ -1,54 +1,49 @@ BattleFrontier_BattleTowerLobby_MapScripts:: @ 823E67B - map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattleTowerLobby_MapScript1_23E690 - map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattleTowerLobby_MapScript1_23E694 - map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleTowerLobby_MapScript2_23E6DD - map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleTowerLobby_MapScript2_23E6C9 + map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattleTowerLobby_OnResume + map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattleTowerLobby_OnTransition + map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleTowerLobby_OnFrame + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleTowerLobby_OnWarp .byte 0 -BattleFrontier_BattleTowerLobby_MapScript1_23E690: @ 823E690 +BattleFrontier_BattleTowerLobby_OnResume: @ 823E690 special sub_81653CC end -BattleFrontier_BattleTowerLobby_MapScript1_23E694: @ 823E694 +BattleFrontier_BattleTowerLobby_OnTransition: @ 823E694 call BattleFrontier_BattleTowerLobby_EventScript_ShowOrHideReporter - setvar VAR_0x8004, 10 - special CallApprenticeFunction - compare VAR_0x8004, 0 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_23E6B5 - goto_if_set FLAG_DAILY_APPRENTICE_LEAVES, BattleFrontier_BattleTowerLobby_EventScript_23E6C1 - -BattleFrontier_BattleTowerLobby_EventScript_23E6B5:: @ 823E6B5 + apprentice_shouldcheckgone + compare VAR_0x8004, FALSE @ Always TRUE here + goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_ShowApprentice + goto_if_set FLAG_DAILY_APPRENTICE_LEAVES, BattleFrontier_BattleTowerLobby_EventScript_HideApprentice +BattleFrontier_BattleTowerLobby_EventScript_ShowApprentice:: @ 823E6B5 clearflag FLAG_HIDE_APPRENTICE - setvar VAR_0x8004, 23 - special CallApprenticeFunction - -BattleFrontier_BattleTowerLobby_EventScript_23E6C0:: @ 823E6C0 + apprentice_setgfx +BattleFrontier_BattleTowerLobby_EventScript_EndShowOrHideApprentice:: @ 823E6C0 end -BattleFrontier_BattleTowerLobby_EventScript_23E6C1:: @ 823E6C1 +BattleFrontier_BattleTowerLobby_EventScript_HideApprentice:: @ 823E6C1 setflag FLAG_HIDE_APPRENTICE - goto BattleFrontier_BattleTowerLobby_EventScript_23E6C0 + goto BattleFrontier_BattleTowerLobby_EventScript_EndShowOrHideApprentice -BattleFrontier_BattleTowerLobby_MapScript2_23E6C9: @ 823E6C9 - map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleTowerLobby_EventScript_23E6D3 +BattleFrontier_BattleTowerLobby_OnWarp: @ 823E6C9 + map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleTowerLobby_EventScript_PlayerFaceNorth .2byte 0 -BattleFrontier_BattleTowerLobby_EventScript_23E6D3:: @ 823E6D3 +BattleFrontier_BattleTowerLobby_EventScript_PlayerFaceNorth:: @ 823E6D3 setvar VAR_TEMP_1, 1 turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end -BattleFrontier_BattleTowerLobby_MapScript2_23E6DD: @ 823E6DD +BattleFrontier_BattleTowerLobby_OnFrame: @ 823E6DD map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleTowerLobby_EventScript_23E707 - map_script_2 VAR_TEMP_0, 1, BattleFrontier_BattleTowerLobby_EventScript_23E710 - map_script_2 VAR_TEMP_0, 2, BattleFrontier_BattleTowerLobby_EventScript_23E8EE - map_script_2 VAR_TEMP_0, 3, BattleFrontier_BattleTowerLobby_EventScript_23E758 - map_script_2 VAR_TEMP_0, 4, BattleFrontier_BattleTowerLobby_EventScript_23E7F2 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattleTowerLobby_EventScript_23E710 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattleTowerLobby_EventScript_23E8EE + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, BattleFrontier_BattleTowerLobby_EventScript_23E758 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattleTowerLobby_EventScript_23E7F2 .2byte 0 BattleFrontier_BattleTowerLobby_EventScript_23E707:: @ 823E707 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_0 - special CallFrontierUtilFunc + frontier_getstatus end BattleFrontier_BattleTowerLobby_EventScript_23E710:: @ 823E710 @@ -64,10 +59,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E710:: @ 823E710 setvar VAR_0x8005, 2 setvar VAR_0x8006, 0 special CallBattleTowerFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_TEMP_0, 255 release end @@ -75,8 +67,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E710:: @ 823E710 BattleFrontier_BattleTowerLobby_EventScript_23E758:: @ 823E758 lock faceplayer - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_IS_FRONTIER_BRAIN - special CallFrontierUtilFunc + frontier_isbrain compare VAR_RESULT, TRUE goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_23E778 message BattleFrontier_BattleTowerLobby_Text_23F60D @@ -99,8 +90,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E780:: @ 823E780 BattleFrontier_BattleTowerLobby_EventScript_23E7A5:: @ 823E7A5 msgbox BattleFrontier_BattleTowerLobby_Text_2414D4, MSGBOX_DEFAULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_11 - special CallFrontierUtilFunc + frontier_givepoints msgbox BattleFrontier_Text_ObtainedXBattlePoints, MSGBOX_GETPOINTS call BattleFrontier_BattleTowerLobby_EventScript_23E84D setvar VAR_0x8004, BATTLE_TOWER_FUNC_1 @@ -118,7 +108,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E7E2:: @ 823E7E2 end BattleFrontier_BattleTowerLobby_EventScript_23E7F2:: @ 823E7F2 - compare VAR_FRONTIER_BATTLE_MODE, 2 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS goto_if_ne BattleFrontier_BattleTowerLobby_EventScript_23E81E goto_if_set FLAG_CHOSEN_MULTI_BATTLE_NPC_PARTNER, BattleFrontier_BattleTowerLobby_EventScript_23E81E setvar VAR_0x8004, BATTLE_TOWER_FUNC_1 @@ -148,8 +138,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E830:: @ 823E830 BattleFrontier_BattleTowerLobby_EventScript_23E84D:: @ 823E84D message BattleFrontier_BattleTowerLobby_Text_23F70F waitmessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_8 - special CallFrontierUtilFunc + frontier_checkairshow special LoadPlayerParty special HealPlayerParty setvar VAR_0x8004, BATTLE_TOWER_FUNC_SAVE @@ -165,31 +154,19 @@ BattleFrontier_BattleTowerLobby_EventScript_23E84D:: @ 823E84D multichoicedefault 20, 8, MULTI_YESNO, 1, 0 switch VAR_RESULT case 1, BattleFrontier_BattleTowerLobby_EventScript_23E8DF - case 0, BattleFrontier_BattleTowerLobby_EventScript_23E8B4 + case 0, BattleFrontier_EventScript_SaveBattle case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_23E8DF -BattleFrontier_BattleArenaBattleRoom_EventScript_23E8B4:: @ 823E8B4 -BattleFrontier_BattleArenaLobby_EventScript_23E8B4:: @ 823E8B4 -BattleFrontier_BattleDomeLobby_EventScript_23E8B4:: @ 823E8B4 -BattleFrontier_BattleDomePreBattleRoom_EventScript_23E8B4:: @ 823E8B4 -BattleFrontier_BattleFactoryLobby_EventScript_23E8B4:: @ 823E8B4 -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_23E8B4:: @ 823E8B4 -BattleFrontier_BattlePalaceBattleRoom_EventScript_23E8B4:: @ 823E8B4 -BattleFrontier_BattlePalaceLobby_EventScript_23E8B4:: @ 823E8B4 -BattleFrontier_BattleTowerBattleRoom2_EventScript_23E8B4:: @ 823E8B4 -BattleFrontier_BattleTowerBattleRoom_EventScript_23E8B4:: @ 823E8B4 -BattleFrontier_BattleTowerLobby_EventScript_23E8B4:: @ 823E8B4 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_19 - special CallFrontierUtilFunc - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_23E8D7 +BattleFrontier_EventScript_SaveBattle:: @ 823E8B4 + frontier_savebattle + compare VAR_RESULT, FALSE + goto_if_eq BattleFrontier_EventScript_BattleSaveFailed playse SE_SAVE msgbox BattleFrontier_BattleTowerLobby_Text_2423CD, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerLobby_EventScript_23E8DF -BattleFrontier_BattleTowerLobby_EventScript_23E8D7:: @ 823E8D7 +BattleFrontier_EventScript_BattleSaveFailed:: @ 823E8D7 msgbox gText_BattleRecordCouldntBeSaved, MSGBOX_DEFAULT - BattleFrontier_BattleTowerLobby_EventScript_23E8DF:: @ 823E8DF return @@ -204,15 +181,13 @@ BattleFrontier_BattlePalaceLobby_EventScript_23E8E0:: @ 823E8E0 BattleFrontier_BattleTowerBattleRoom2_EventScript_23E8E0:: @ 823E8E0 BattleFrontier_BattleTowerBattleRoom_EventScript_23E8E0:: @ 823E8E0 BattleFrontier_BattleTowerLobby_EventScript_23E8E0:: @ 823E8E0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 6 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_6 return BattleFrontier_BattleTowerLobby_EventScript_23E8EE:: @ 823E8EE lock faceplayer - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23E930 message BattleFrontier_BattleTowerLobby_Text_23F737 waitmessage @@ -223,10 +198,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E8EE:: @ 823E8EE special CallBattleTowerFunc playse SE_SAVE waitse - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_PAUSED, FALSE goto BattleFrontier_BattleTowerLobby_EventScript_23F0F3 end @@ -237,7 +209,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E930:: @ 823E930 BattleFrontier_BattleTowerLobby_EventScript_23E936:: @ 823E936 lock faceplayer - setvar VAR_FRONTIER_FACILITY, 0 + setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_TOWER special SavePlayerParty msgbox BattleFrontier_BattleTowerLobby_Text_240537, MSGBOX_DEFAULT @@ -252,24 +224,20 @@ BattleFrontier_BattleTowerLobby_EventScript_23E948:: @ 823E948 case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_23F0E6 BattleFrontier_BattleTowerLobby_EventScript_23E984:: @ 823E984 - setvar VAR_FRONTIER_BATTLE_MODE, 0 + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES message BattleFrontier_BattleTowerLobby_Text_23FD3B waitmessage multichoice 17, 6, MULTI_LEVEL_MODE, 0 switch VAR_RESULT case 2, BattleFrontier_BattleTowerLobby_EventScript_23F0E6 case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_23F0E6 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_15 - special CallFrontierUtilFunc - compare VAR_0x8004, 1 + frontier_checkineligible + compare VAR_0x8004, TRUE goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F02B - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 1 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattleTowerLobby_Text_2407A6, MSGBOX_DEFAULT fadescreen 1 - call BattleFrontier_BattleTowerLobby_EventScript_23F2B7 + call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT setvar VAR_0x8005, 3 special sub_80F9490 @@ -283,9 +251,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E984:: @ 823E984 case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_23F0E3 BattleFrontier_BattleTowerLobby_EventScript_23EA2A:: @ 823EA2A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_SELECTED_MON_ORDER setvar VAR_TEMP_0, 0 setvar VAR_0x8004, BATTLE_TOWER_FUNC_0 special CallBattleTowerFunc @@ -293,10 +259,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EA2A:: @ 823EA2A setvar VAR_0x8005, 2 setvar VAR_0x8006, 1 special CallBattleTowerFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_PAUSED, FALSE special LoadPlayerParty closemessage delay 2 @@ -317,7 +280,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EA91:: @ 823EA91 BattleFrontier_BattleTowerLobby_EventScript_23EA9F:: @ 823EA9F lock faceplayer - setvar VAR_FRONTIER_FACILITY, 0 + setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_TOWER special SavePlayerParty msgbox BattleFrontier_BattleTowerLobby_Text_2407E2, MSGBOX_DEFAULT @@ -332,24 +295,20 @@ BattleFrontier_BattleTowerLobby_EventScript_23EAB1:: @ 823EAB1 case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_23F0E6 BattleFrontier_BattleTowerLobby_EventScript_23EAED:: @ 823EAED - setvar VAR_FRONTIER_BATTLE_MODE, 1 + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES message BattleFrontier_BattleTowerLobby_Text_23FD3B waitmessage multichoice 17, 6, MULTI_LEVEL_MODE, 0 switch VAR_RESULT case 2, BattleFrontier_BattleTowerLobby_EventScript_23F0E6 case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_23F0E6 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_15 - special CallFrontierUtilFunc - compare VAR_0x8004, 1 + frontier_checkineligible + compare VAR_0x8004, TRUE goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F02B - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 1 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattleTowerLobby_Text_240A50, MSGBOX_DEFAULT fadescreen 1 - call BattleFrontier_BattleTowerLobby_EventScript_23F2B7 + call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT setvar VAR_0x8005, 4 special sub_80F9490 @@ -363,9 +322,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EAED:: @ 823EAED case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_23F0E3 BattleFrontier_BattleTowerLobby_EventScript_23EB93:: @ 823EB93 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_SELECTED_MON_ORDER setvar VAR_TEMP_0, 0 setvar VAR_0x8004, BATTLE_TOWER_FUNC_0 special CallBattleTowerFunc @@ -373,10 +330,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EB93:: @ 823EB93 setvar VAR_0x8005, 2 setvar VAR_0x8006, 1 special CallBattleTowerFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_PAUSED, FALSE special LoadPlayerParty closemessage delay 2 @@ -397,7 +351,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EBFA:: @ 823EBFA BattleFrontier_BattleTowerLobby_EventScript_23EC08:: @ 823EC08 lock faceplayer - setvar VAR_FRONTIER_FACILITY, 0 + setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_TOWER clearflag FLAG_CHOSEN_MULTI_BATTLE_NPC_PARTNER special SavePlayerParty msgbox BattleFrontier_BattleTowerLobby_Text_240A8B, MSGBOX_DEFAULT @@ -413,24 +367,20 @@ BattleFrontier_BattleTowerLobby_EventScript_23EC1D:: @ 823EC1D case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_23F0E6 BattleFrontier_BattleTowerLobby_EventScript_23EC59:: @ 823EC59 - setvar VAR_FRONTIER_BATTLE_MODE, 2 + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS message BattleFrontier_BattleTowerLobby_Text_23FD3B waitmessage multichoice 17, 6, MULTI_LEVEL_MODE, 0 switch VAR_RESULT case 2, BattleFrontier_BattleTowerLobby_EventScript_23F0E6 case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_23F0E6 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_15 - special CallFrontierUtilFunc - compare VAR_0x8004, 1 + frontier_checkineligible + compare VAR_0x8004, TRUE goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F02B - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 1 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattleTowerLobby_Text_240DDB, MSGBOX_DEFAULT fadescreen 1 - call BattleFrontier_BattleTowerLobby_EventScript_23F2B7 + call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT setvar VAR_0x8005, 2 special sub_80F9490 @@ -444,9 +394,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EC59:: @ 823EC59 case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_23F0E3 BattleFrontier_BattleTowerLobby_EventScript_23ECFF:: @ 823ECFF - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_SELECTED_MON_ORDER setvar VAR_TEMP_0, 0 setvar VAR_0x8004, BATTLE_TOWER_FUNC_0 special CallBattleTowerFunc @@ -454,10 +402,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23ECFF:: @ 823ECFF setvar VAR_0x8005, 2 setvar VAR_0x8006, 1 special CallBattleTowerFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_PAUSED, FALSE special LoadPlayerParty closemessage delay 2 @@ -478,7 +423,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23ED66:: @ 823ED66 BattleFrontier_BattleTowerLobby_EventScript_23ED74:: @ 823ED74 lock faceplayer - setvar VAR_FRONTIER_FACILITY, 0 + setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_TOWER special SavePlayerParty msgbox BattleFrontier_BattleTowerLobby_Text_240E15, MSGBOX_DEFAULT @@ -493,24 +438,20 @@ BattleFrontier_BattleTowerLobby_EventScript_23ED86:: @ 823ED86 case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_23F0E6 BattleFrontier_BattleTowerLobby_EventScript_23EDC2:: @ 823EDC2 - setvar VAR_FRONTIER_BATTLE_MODE, 3 + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS message BattleFrontier_BattleTowerLobby_Text_23FD3B waitmessage multichoice 17, 6, MULTI_LEVEL_MODE, 0 switch VAR_RESULT case 2, BattleFrontier_BattleTowerLobby_EventScript_23F0E6 case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_23F0E6 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_15 - special CallFrontierUtilFunc - compare VAR_0x8004, 1 + frontier_checkineligible + compare VAR_0x8004, TRUE goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F02B - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 1 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattleTowerLobby_Text_24115E, MSGBOX_DEFAULT fadescreen 1 - call BattleFrontier_BattleTowerLobby_EventScript_23F2B7 + call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT setvar VAR_0x8005, 2 special sub_80F9490 @@ -524,9 +465,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EDC2:: @ 823EDC2 case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_23F0E3 BattleFrontier_BattleTowerLobby_EventScript_23EE68:: @ 823EE68 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_SELECTED_MON_ORDER setvar VAR_TEMP_0, 0 setvar VAR_0x8004, BATTLE_TOWER_FUNC_0 special CallBattleTowerFunc @@ -534,10 +473,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EE68:: @ 823EE68 setvar VAR_0x8005, 2 setvar VAR_0x8006, 1 special CallBattleTowerFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_PAUSED, FALSE special LoadPlayerParty closemessage delay 2 @@ -629,10 +565,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EFBE:: @ 823EFBE BattleFrontier_BattleTowerLobby_EventScript_23EFC7:: @ 823EFC7 lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_results FRONTIER_FACILITY_TOWER, FRONTIER_MODE_SINGLES waitbuttonpress special RemoveRecordsWindow releaseall @@ -640,10 +573,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EFC7:: @ 823EFC7 BattleFrontier_BattleTowerLobby_EventScript_23EFE0:: @ 823EFE0 lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc + frontier_results FRONTIER_FACILITY_TOWER, FRONTIER_MODE_DOUBLES waitbuttonpress special RemoveRecordsWindow releaseall @@ -651,10 +581,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EFE0:: @ 823EFE0 BattleFrontier_BattleTowerLobby_EventScript_23EFF9:: @ 823EFF9 lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 2 - special CallFrontierUtilFunc + frontier_results FRONTIER_FACILITY_TOWER, FRONTIER_MODE_MULTIS waitbuttonpress special RemoveRecordsWindow releaseall @@ -662,10 +589,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EFF9:: @ 823EFF9 BattleFrontier_BattleTowerLobby_EventScript_23F012:: @ 823F012 lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 3 - special CallFrontierUtilFunc + frontier_results FRONTIER_FACILITY_TOWER, FRONTIER_MODE_LINK_MULTIS waitbuttonpress special RemoveRecordsWindow releaseall @@ -673,13 +597,13 @@ BattleFrontier_BattleTowerLobby_EventScript_23F012:: @ 823F012 BattleFrontier_BattleTowerLobby_EventScript_23F02B:: @ 823F02B switch VAR_RESULT - case 0, BattleFrontier_BattleTowerLobby_EventScript_23F046 - case 1, BattleFrontier_BattleTowerLobby_EventScript_23F08B + case FRONTIER_LVL_50, BattleFrontier_BattleTowerLobby_EventScript_23F046 + case FRONTIER_LVL_OPEN, BattleFrontier_BattleTowerLobby_EventScript_23F08B BattleFrontier_BattleTowerLobby_EventScript_23F046:: @ 823F046 switch VAR_FRONTIER_BATTLE_MODE - case 0, BattleFrontier_BattleTowerLobby_EventScript_23F06F - case 1, BattleFrontier_BattleTowerLobby_EventScript_23F07D + case FRONTIER_MODE_SINGLES, BattleFrontier_BattleTowerLobby_EventScript_23F06F + case FRONTIER_MODE_DOUBLES, BattleFrontier_BattleTowerLobby_EventScript_23F07D msgbox BattleFrontier_BattleTowerLobby_Text_24038B, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerLobby_EventScript_23F0F1 end @@ -696,8 +620,8 @@ BattleFrontier_BattleTowerLobby_EventScript_23F07D:: @ 823F07D BattleFrontier_BattleTowerLobby_EventScript_23F08B:: @ 823F08B switch VAR_FRONTIER_BATTLE_MODE - case 0, BattleFrontier_BattleTowerLobby_EventScript_23F0B4 - case 1, BattleFrontier_BattleTowerLobby_EventScript_23F0C2 + case FRONTIER_MODE_SINGLES, BattleFrontier_BattleTowerLobby_EventScript_23F0B4 + case FRONTIER_MODE_DOUBLES, BattleFrontier_BattleTowerLobby_EventScript_23F0C2 msgbox BattleFrontier_BattleTowerLobby_Text_24046B, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerLobby_EventScript_23F0F1 end @@ -713,27 +637,23 @@ BattleFrontier_BattleTowerLobby_EventScript_23F0C2:: @ 823F0C2 end BattleFrontier_BattleTowerLobby_EventScript_23F0D0:: @ 823F0D0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS @ No status provided, so it relies on VAR_0x8006 being 0 already goto BattleFrontier_BattleTowerLobby_EventScript_23F0E6 end BattleFrontier_BattleTowerLobby_EventScript_23F0E3:: @ 823F0E3 special LoadPlayerParty - BattleFrontier_BattleTowerLobby_EventScript_23F0E6:: @ 823F0E6 special CloseLink msgbox BattleFrontier_BattleTowerLobby_Text_23FD07, MSGBOX_DEFAULT - BattleFrontier_BattleTowerLobby_EventScript_23F0F1:: @ 823F0F1 release end BattleFrontier_BattleTowerLobby_EventScript_23F0F3:: @ 823F0F3 special SavePlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - call BattleFrontier_BattleTowerLobby_EventScript_23F272 + setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_PARTY_ORDER + call BattleFrontier_BattleTowerLobby_EventScript_GetPartySize special CallFrontierUtilFunc setvar VAR_RESULT, 0 @@ -752,7 +672,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23F108:: @ 823F108 BattleFrontier_BattleTowerLobby_EventScript_23F135:: @ 823F135 call BattleFrontier_BattleTowerLobby_EventScript_23F1A7 - compare VAR_FRONTIER_BATTLE_MODE, 3 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F152 msgbox BattleFrontier_BattleTowerLobby_Text_23FE11, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerLobby_EventScript_23F15B @@ -805,13 +725,13 @@ BattleFrontier_BattleTowerLobby_Movement_23F1A0: @ 823F1A0 step_end BattleFrontier_BattleTowerLobby_EventScript_23F1A7:: @ 823F1A7 - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F1D4 - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F1D9 - compare VAR_FRONTIER_BATTLE_MODE, 2 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F1DE - compare VAR_FRONTIER_BATTLE_MODE, 3 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F1E3 return @@ -832,13 +752,13 @@ BattleFrontier_BattleTowerLobby_EventScript_23F1E3:: @ 823F1E3 return BattleFrontier_BattleTowerLobby_EventScript_23F1E8:: @ 823F1E8 - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F215 - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F21B - compare VAR_FRONTIER_BATTLE_MODE, 2 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F221 - compare VAR_FRONTIER_BATTLE_MODE, 3 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F227 return @@ -859,13 +779,13 @@ BattleFrontier_BattleTowerLobby_EventScript_23F227:: @ 823F227 return BattleFrontier_BattleTowerLobby_EventScript_23F22D:: @ 823F22D - compare VAR_FRONTIER_BATTLE_MODE, 0 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F25A - compare VAR_FRONTIER_BATTLE_MODE, 1 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F260 - compare VAR_FRONTIER_BATTLE_MODE, 2 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F266 - compare VAR_FRONTIER_BATTLE_MODE, 3 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F26C return @@ -885,44 +805,35 @@ BattleFrontier_BattleTowerLobby_EventScript_23F26C:: @ 823F26C setvar VAR_0x8004, 18 return -BattleFrontier_BattleTowerLobby_EventScript_23F272:: @ 823F272 - compare VAR_FRONTIER_BATTLE_MODE, 0 - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F29F - compare VAR_FRONTIER_BATTLE_MODE, 1 - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F2A5 - compare VAR_FRONTIER_BATTLE_MODE, 2 - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F2AB - compare VAR_FRONTIER_BATTLE_MODE, 3 - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_23F2B1 +BattleFrontier_BattleTowerLobby_EventScript_GetPartySize:: @ 823F272 + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES + call_if_eq BattleFrontier_BattleTowerLobby_EventScript_GetSinglesPartySize + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES + call_if_eq BattleFrontier_BattleTowerLobby_EventScript_GetDoublesPartySize + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS + call_if_eq BattleFrontier_BattleTowerLobby_EventScript_GetMultisPartySize + compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS + call_if_eq BattleFrontier_BattleTowerLobby_EventScript_GetLinkMultisPartySize return -BattleFrontier_BattleTowerLobby_EventScript_23F29F:: @ 823F29F +BattleFrontier_BattleTowerLobby_EventScript_GetSinglesPartySize:: @ 823F29F setvar VAR_0x8005, FRONTIER_PARTY_SIZE return -BattleFrontier_BattleTowerLobby_EventScript_23F2A5:: @ 823F2A5 - setvar VAR_0x8005, 4 +BattleFrontier_BattleTowerLobby_EventScript_GetDoublesPartySize:: @ 823F2A5 + setvar VAR_0x8005, FRONTIER_DOUBLES_PARTY_SIZE return -BattleFrontier_BattleTowerLobby_EventScript_23F2AB:: @ 823F2AB - setvar VAR_0x8005, 2 +BattleFrontier_BattleTowerLobby_EventScript_GetMultisPartySize:: @ 823F2AB + setvar VAR_0x8005, FRONTIER_MULTI_PARTY_SIZE return -BattleFrontier_BattleTowerLobby_EventScript_23F2B1:: @ 823F2B1 - setvar VAR_0x8005, 2 +BattleFrontier_BattleTowerLobby_EventScript_GetLinkMultisPartySize:: @ 823F2B1 + setvar VAR_0x8005, FRONTIER_MULTI_PARTY_SIZE return -BattleFrontier_BattleArenaLobby_EventScript_23F2B7:: @ 823F2B7 -BattleFrontier_BattleDomeLobby_EventScript_23F2B7:: @ 823F2B7 -BattleFrontier_BattleDomePreBattleRoom_EventScript_23F2B7:: @ 823F2B7 -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_23F2B7:: @ 823F2B7 -BattleFrontier_BattlePalaceLobby_EventScript_23F2B7:: @ 823F2B7 -BattleFrontier_BattlePikeLobby_EventScript_23F2B7:: @ 823F2B7 -BattleFrontier_BattlePyramidLobby_EventScript_23F2B7:: @ 823F2B7 -BattleFrontier_BattleTowerLobby_EventScript_23F2B7:: @ 823F2B7 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 1 - special CallFrontierUtilFunc +BattleFrontier_EventScript_GetLvlMode:: @ 823F2B7 + frontier_get FRONTIER_DATA_LVL_MODE return BattleFrontier_BattleTowerLobby_EventScript_23F2C5:: @ 823F2C5 diff --git a/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc index 4692264e7..160e67ef6 100644 --- a/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc @@ -94,10 +94,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243E7A:: @ 8243E7A end BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243E9D:: @ 8243E9D - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 6 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_6, 1 goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_241C03 end diff --git a/data/maps/BattleFrontier_ScottsHouse/scripts.inc b/data/maps/BattleFrontier_ScottsHouse/scripts.inc index c2f7b3fbc..f30e194aa 100644 --- a/data/maps/BattleFrontier_ScottsHouse/scripts.inc +++ b/data/maps/BattleFrontier_ScottsHouse/scripts.inc @@ -88,12 +88,12 @@ BattleFrontier_ScottsHouse_EventScript_ArtisanCaveComment:: @ 8263811 end BattleFrontier_ScottsHouse_EventScript_CheckGiveSilverShield:: @ 826381B - setvar VAR_FRONTIER_BATTLE_MODE, 0 - frontier_setlvlmode FRONTIER_LVL_50 + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES + frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 battletower_getstreak compare VAR_RESULT, 50 goto_if_ge BattleFrontier_ScottsHouse_EventScript_GiveSilverShield - frontier_setlvlmode FRONTIER_LVL_OPEN + frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_OPEN battletower_getstreak compare VAR_RESULT, 50 goto_if_ge BattleFrontier_ScottsHouse_EventScript_GiveSilverShield @@ -121,12 +121,12 @@ BattleFrontier_ScottsHouse_EventScript_GivenShield:: @ 82638AA end BattleFrontier_ScottsHouse_EventScript_CheckGiveGoldShield:: @ 82638B4 - setvar VAR_FRONTIER_BATTLE_MODE, 0 - frontier_setlvlmode FRONTIER_LVL_50 + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES + frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 battletower_getstreak compare VAR_RESULT, 100 goto_if_ge BattleFrontier_ScottsHouse_EventScript_GiveGoldShield - frontier_setlvlmode FRONTIER_LVL_OPEN + frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_OPEN battletower_getstreak compare VAR_RESULT, 100 goto_if_ge BattleFrontier_ScottsHouse_EventScript_GiveGoldShield diff --git a/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc b/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc index 5526ad92f..a1b30c3a4 100644 --- a/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc +++ b/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc @@ -35,9 +35,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_2008E7:: @ 82008E7 showobjectat 1, MAP_FALLARBOR_TOWN_BATTLE_TENT_BATTLE_ROOM applymovement 1, FallarborTown_BattleTentBattleRoom_Movement_200B8D waitmovement 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 0 goto_if_ne FallarborTown_BattleTentBattleRoom_EventScript_200B73 @@ -53,7 +51,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_20090F:: @ 820090F waitmovement 0 msgbox FallarborTown_BattleTentBattleRoom_Text_257C93, MSGBOX_DEFAULT setvar VAR_0x8004, 4 - special sub_81B99B4 + special CallVerdanturfTentFunction msgbox gStringVar4, MSGBOX_DEFAULT waitmessage call FallarborTown_BattleTentBattleRoom_EventScript_257B6C @@ -64,14 +62,11 @@ FallarborTown_BattleTentBattleRoom_EventScript_20090F:: @ 820090F waitse waitmovement 0 setvar VAR_0x8004, 6 - special sub_81B9B80 + special CallFallarborTentFunction msgbox FallarborTown_BattleTentBattleRoom_Text_257CCE, MSGBOX_DEFAULT FallarborTown_BattleTentBattleRoom_EventScript_20097E:: @ 820097E - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST special LoadPlayerParty warp MAP_FALLARBOR_TOWN_BATTLE_TENT_LOBBY, 255, 6, 6 waitstate @@ -85,14 +80,9 @@ FallarborTown_BattleTentBattleRoom_EventScript_20099C:: @ 820099C closemessage FallarborTown_BattleTentBattleRoom_EventScript_2009B3:: @ 82009B3 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 2 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT switch VAR_RESULT case 3, FallarborTown_BattleTentBattleRoom_EventScript_200AF3 applymovement 3, FallarborTown_BattleTentBattleRoom_Movement_200B9E @@ -105,17 +95,13 @@ FallarborTown_BattleTentBattleRoom_EventScript_2009B3:: @ 82009B3 msgbox FallarborTown_BattleTentBattleRoom_Text_257CE9, MSGBOX_DEFAULT special LoadPlayerParty special SavePlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc + frontier_setpartyorder FRONTIER_PARTY_SIZE playfanfare MUS_ME_ASA waitfanfare special HealPlayerParty FallarborTown_BattleTentBattleRoom_EventScript_200A2A:: @ 8200A2A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 1 call_if_eq FallarborTown_BattleTentBattleRoom_EventScript_200B43 compare VAR_RESULT, 2 @@ -153,17 +139,14 @@ FallarborTown_BattleTentBattleRoom_EventScript_200AD8:: @ 8200AD8 FallarborTown_BattleTentBattleRoom_EventScript_200AF3:: @ 8200AF3 delay 60 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 3 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON special LoadPlayerParty warp MAP_FALLARBOR_TOWN_BATTLE_TENT_LOBBY, 255, 6, 6 waitstate setvar VAR_0x8004, 1 setvar VAR_0x8005, 1 special CallBattleArenaFunction - compare VAR_RESULT, 9999 + compare VAR_RESULT, MAX_STREAK goto_if_eq FallarborTown_BattleTentBattleRoom_EventScript_2009B3 addvar VAR_RESULT, 1 setvar VAR_0x8004, 2 @@ -186,12 +169,11 @@ FallarborTown_BattleTentBattleRoom_EventScript_200B51:: @ 8200B51 waitmessage setvar VAR_0x8004, 3 setvar VAR_0x8005, 2 - special sub_81B9B80 + special CallFallarborTentFunction playse SE_SAVE waitse fadescreen 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SOFT_RESET - special CallFrontierUtilFunc + frontier_reset end FallarborTown_BattleTentBattleRoom_EventScript_200B73:: @ 8200B73 diff --git a/data/maps/FallarborTown_BattleTentLobby/scripts.inc b/data/maps/FallarborTown_BattleTentLobby/scripts.inc index b4842109a..dbc692410 100644 --- a/data/maps/FallarborTown_BattleTentLobby/scripts.inc +++ b/data/maps/FallarborTown_BattleTentLobby/scripts.inc @@ -14,30 +14,23 @@ FallarborTown_BattleTentLobby_EventScript_1FFE7B:: @ 81FFE7B FallarborTown_BattleTentLobby_MapScript2_1FFE85: @ 81FFE85 map_script_2 VAR_TEMP_0, 0, FallarborTown_BattleTentLobby_EventScript_1FFEAF - map_script_2 VAR_TEMP_0, 1, FallarborTown_BattleTentLobby_EventScript_1FFEB8 - map_script_2 VAR_TEMP_0, 2, FallarborTown_BattleTentLobby_EventScript_1FFFCD - map_script_2 VAR_TEMP_0, 3, FallarborTown_BattleTentLobby_EventScript_1FFEED - map_script_2 VAR_TEMP_0, 4, FallarborTown_BattleTentLobby_EventScript_1FFF93 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, FallarborTown_BattleTentLobby_EventScript_1FFEB8 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, FallarborTown_BattleTentLobby_EventScript_1FFFCD + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, FallarborTown_BattleTentLobby_EventScript_1FFEED + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, FallarborTown_BattleTentLobby_EventScript_1FFF93 .2byte 0 FallarborTown_BattleTentLobby_EventScript_1FFEAF:: @ 81FFEAF - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_0 - special CallFrontierUtilFunc + frontier_getstatus end FallarborTown_BattleTentLobby_EventScript_1FFEB8:: @ 81FFEB8 lockall msgbox FallarborTown_BattleTentLobby_Text_2C4DED, MSGBOX_DEFAULT closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_TEMP_0, 255 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 1 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 releaseall end @@ -47,27 +40,21 @@ FallarborTown_BattleTentLobby_EventScript_1FFEED:: @ 81FFEED message FallarborTown_BattleTentLobby_Text_2C4EFF waitmessage setvar VAR_0x8004, 4 - special sub_81B9B80 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 1 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + special CallFallarborTentFunction + frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 setvar VAR_0x8004, 3 setvar VAR_0x8005, 0 - special sub_81B9B80 + special CallFallarborTentFunction playse SE_SAVE waitse FallarborTown_BattleTentLobby_EventScript_1FFF27:: @ 81FFF27 msgbox FallarborTown_BattleTentLobby_Text_2C4F22, MSGBOX_DEFAULT setvar VAR_0x8004, 5 - special sub_81B9B80 + special CallFallarborTentFunction switch VAR_RESULT case 0, FallarborTown_BattleTentLobby_EventScript_1FFF73 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 message FallarborTown_BattleTentLobby_Text_2C4F69 waitmessage playfanfare MUS_FANFA4 @@ -96,13 +83,10 @@ FallarborTown_BattleTentLobby_EventScript_1FFF93:: @ 81FFF93 lockall message FallarborTown_BattleTentLobby_Text_2C4FD7 waitmessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 1 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 setvar VAR_0x8004, 3 setvar VAR_0x8005, 0 - special sub_81B9B80 + special CallFallarborTentFunction playse SE_SAVE waitse msgbox FallarborTown_BattleTentLobby_Text_2C501F, MSGBOX_DEFAULT @@ -117,13 +101,10 @@ FallarborTown_BattleTentLobby_EventScript_1FFFCD:: @ 81FFFCD waitmessage setvar VAR_0x8004, 3 setvar VAR_0x8005, 1 - special sub_81B9B80 + special CallFallarborTentFunction playse SE_SAVE waitse - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_PAUSED, FALSE setvar VAR_TEMP_0, 255 goto FallarborTown_BattleTentLobby_EventScript_20013C @@ -131,7 +112,7 @@ FallarborTown_BattleTentLobby_EventScript_200001:: @ 8200001 lock faceplayer setvar VAR_0x8004, 1 - special sub_81B9B80 + special CallFallarborTentFunction compare VAR_RESULT, 0 goto_if_ne FallarborTown_BattleTentLobby_EventScript_1FFF84 special SavePlayerParty @@ -148,17 +129,13 @@ FallarborTown_BattleTentLobby_EventScript_200021:: @ 8200021 case MULTI_B_PRESSED, FallarborTown_BattleTentLobby_EventScript_2001C5 FallarborTown_BattleTentLobby_EventScript_20005D:: @ 820005D - setvar VAR_FRONTIER_FACILITY, 3 - setvar VAR_FRONTIER_BATTLE_MODE, 0 + setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_ARENA + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES setvar VAR_RESULT, 2 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_15 - special CallFrontierUtilFunc - compare VAR_0x8004, 1 + frontier_checkineligible + compare VAR_0x8004, TRUE goto_if_eq FallarborTown_BattleTentLobby_EventScript_200176 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 1 - setvar VAR_0x8006, 2 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_TENT msgbox FallarborTown_BattleTentLobby_Text_2C4BC8, MSGBOX_DEFAULT fadescreen 1 setvar VAR_0x8004, 2 @@ -175,19 +152,11 @@ FallarborTown_BattleTentLobby_EventScript_20005D:: @ 820005D FallarborTown_BattleTentLobby_EventScript_2000E2:: @ 82000E2 setvar VAR_TEMP_0, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_SELECTED_MON_ORDER setvar VAR_0x8004, 0 - special sub_81B9B80 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + special CallFallarborTentFunction + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING + frontier_set FRONTIER_DATA_PAUSED, FALSE special LoadPlayerParty closemessage delay 2 @@ -198,9 +167,7 @@ FallarborTown_BattleTentLobby_EventScript_2000E2:: @ 82000E2 FallarborTown_BattleTentLobby_EventScript_20013C:: @ 820013C special SavePlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc + frontier_setpartyorder FRONTIER_PARTY_SIZE msgbox FallarborTown_BattleTentLobby_Text_2C4DC3, MSGBOX_DEFAULT closemessage call FallarborTown_BattleTentLobby_EventScript_2001CF @@ -215,8 +182,8 @@ FallarborTown_BattleTentLobby_EventScript_200169:: @ 8200169 FallarborTown_BattleTentLobby_EventScript_200176:: @ 8200176 switch VAR_RESULT - case 0, FallarborTown_BattleTentLobby_EventScript_200191 - case 1, FallarborTown_BattleTentLobby_EventScript_20019E + case FRONTIER_LVL_50, FallarborTown_BattleTentLobby_EventScript_200191 + case FRONTIER_LVL_OPEN, FallarborTown_BattleTentLobby_EventScript_20019E FallarborTown_BattleTentLobby_EventScript_200191:: @ 8200191 msgbox FallarborTown_BattleTentLobby_Text_2C4BFA, MSGBOX_DEFAULT @@ -227,10 +194,7 @@ FallarborTown_BattleTentLobby_EventScript_20019E:: @ 820019E goto FallarborTown_BattleTentLobby_EventScript_2001CD FallarborTown_BattleTentLobby_EventScript_2001AB:: @ 82001AB - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 goto FallarborTown_BattleTentLobby_EventScript_2001C5 FallarborTown_BattleTentLobby_EventScript_2001C2:: @ 82001C2 diff --git a/data/maps/LilycoveCity_ContestLobby/scripts.inc b/data/maps/LilycoveCity_ContestLobby/scripts.inc index ff79dd53a..9aa9e6790 100644 --- a/data/maps/LilycoveCity_ContestLobby/scripts.inc +++ b/data/maps/LilycoveCity_ContestLobby/scripts.inc @@ -562,9 +562,7 @@ LilycoveCity_ContestLobby_EventScript_BerryBlenderSpeedRecords:: @ 821A77A LilycoveCity_ContestLobby_EventScript_LinkContestResults:: @ 821A784 lockall - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW - setvar VAR_0x8005, 7 - special CallFrontierUtilFunc + frontier_results FACILITY_LINK_CONTEST waitbuttonpress special RemoveRecordsWindow releaseall diff --git a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc index 97ae9c044..c2793df16 100644 --- a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc +++ b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc @@ -258,15 +258,12 @@ MossdeepCity_SpaceCenter_2F_EventScript_ChoosePartyForMultiBattle:: @ 822400C MossdeepCity_SpaceCenter_2F_EventScript_DoStevenMultiBattle:: @ 8224032 special ReducePlayerPartyToSelectedMons - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_SELECTED_MON_ORDER setvar VAR_0x8004, SPECIAL_BATTLE_STEVEN setvar VAR_0x8005, 0 special DoSpecialTrainerBattle waitstate - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_6 - special CallFrontierUtilFunc + frontier_saveparty special LoadPlayerParty switch VAR_RESULT case 1, MossdeepCity_SpaceCenter_2F_EventScript_DefeatedMaxieTabitha diff --git a/data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc b/data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc index c95f53fd9..54e917003 100644 --- a/data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc +++ b/data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc @@ -49,7 +49,7 @@ SlateportCity_BattleTentBattleRoom_EventScript_2099BE:: @ 82099BE applymovement 2, SlateportCity_BattleTentBattleRoom_Movement_209A9E waitmovement 0 setvar VAR_0x8004, 4 - special sub_81B99B4 + special CallVerdanturfTentFunction lockall msgbox gStringVar4, MSGBOX_DEFAULT waitmessage @@ -63,23 +63,15 @@ SlateportCity_BattleTentBattleRoom_EventScript_2099BE:: @ 82099BE case 1, SlateportCity_BattleTentBattleRoom_EventScript_209A39 SlateportCity_BattleTentCorridor_EventScript_209A1B:: @ 8209A1B - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST special LoadPlayerParty warp MAP_SLATEPORT_CITY_BATTLE_TENT_LOBBY, 255, 6, 6 waitstate SlateportCity_BattleTentBattleRoom_EventScript_209A39:: @ 8209A39 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 2 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT switch VAR_RESULT case 3, SlateportCity_BattleTentBattleRoom_EventScript_209A7B @ case 3, SlateportCity_BattleTentCorridor_EventScript_209A7B @@ -89,10 +81,7 @@ SlateportCity_BattleTentBattleRoom_EventScript_209A39:: @ 8209A39 SlateportCity_BattleTentBattleRoom_EventScript_209A7B:: @ 8209A7B SlateportCity_BattleTentCorridor_EventScript_209A7B:: @ 8209A7B - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 3 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON special LoadPlayerParty warp MAP_SLATEPORT_CITY_BATTLE_TENT_LOBBY, 255, 6, 6 waitstate diff --git a/data/maps/SlateportCity_BattleTentCorridor/scripts.inc b/data/maps/SlateportCity_BattleTentCorridor/scripts.inc index 542e97d4f..1ee11598c 100644 --- a/data/maps/SlateportCity_BattleTentCorridor/scripts.inc +++ b/data/maps/SlateportCity_BattleTentCorridor/scripts.inc @@ -32,15 +32,14 @@ SlateportCity_BattleTentCorridor_EventScript_208E65:: @ 8208E65 compare VAR_0x8006, 2 goto_if_eq SlateportCity_BattleTentCorridor_EventScript_209044 setvar VAR_0x8004, 9 - special sub_81B9D08 + special CallSlateportTentFunction setvar VAR_0x8004, 8 - special sub_81B9D08 + special CallSlateportTentFunction msgbox SlateportCity_BattleTentCorridor_Text_25A1C8, MSGBOX_DEFAULT fadescreen 1 setvar VAR_0x8004, 6 - special sub_81B9D08 + special CallSlateportTentFunction waitstate - SlateportCity_BattleTentCorridor_EventScript_208EB4:: @ 8208EB4 msgbox SlateportCity_BattleTentCorridor_Text_25AB96, MSGBOX_DEFAULT closemessage @@ -66,11 +65,8 @@ SlateportCity_BattleTentCorridor_EventScript_208EEE:: @ 8208EEE playfanfare MUS_ME_ASA waitfanfare special HealPlayerParty - SlateportCity_BattleTentCorridor_EventScript_208F0D:: @ 8208F0D - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 1 call_if_eq SlateportCity_BattleTentCorridor_EventScript_209014 compare VAR_RESULT, 2 @@ -99,7 +95,7 @@ SlateportCity_BattleTentCorridor_EventScript_208F89:: @ 8208F89 SlateportCity_BattleTentCorridor_EventScript_208FBB:: @ 8208FBB setvar VAR_0x8004, 8 - special sub_81B9D08 + special CallSlateportTentFunction msgbox SlateportCity_BattleTentCorridor_Text_25AB2E, MSGBOX_YESNO switch VAR_RESULT case NO, SlateportCity_BattleTentCorridor_EventScript_208EB4 @@ -109,7 +105,7 @@ SlateportCity_BattleTentCorridor_EventScript_208FBB:: @ 8208FBB SlateportCity_BattleTentCorridor_EventScript_208FF1:: @ 8208FF1 fadescreen 1 setvar VAR_0x8004, 7 - special sub_81B9D08 + special CallSlateportTentFunction waitstate compare VAR_RESULT, 1 goto_if_eq SlateportCity_BattleTentCorridor_EventScript_208EB4 @@ -131,12 +127,11 @@ SlateportCity_BattleTentCorridor_EventScript_209022:: @ 8209022 waitmessage setvar VAR_0x8004, 3 setvar VAR_0x8005, 2 - special sub_81B9D08 + special CallSlateportTentFunction playse SE_SAVE waitse fadescreen 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SOFT_RESET - special CallFrontierUtilFunc + frontier_reset end SlateportCity_BattleTentCorridor_EventScript_209044:: @ 8209044 diff --git a/data/maps/SlateportCity_BattleTentLobby/scripts.inc b/data/maps/SlateportCity_BattleTentLobby/scripts.inc index 182a45d5e..9ea3423f8 100644 --- a/data/maps/SlateportCity_BattleTentLobby/scripts.inc +++ b/data/maps/SlateportCity_BattleTentLobby/scripts.inc @@ -14,30 +14,23 @@ SlateportCity_BattleTentLobby_EventScript_208745:: @ 8208745 SlateportCity_BattleTentLobby_MapScript2_20874F: @ 820874F map_script_2 VAR_TEMP_0, 0, SlateportCity_BattleTentLobby_EventScript_208779 - map_script_2 VAR_TEMP_0, 1, SlateportCity_BattleTentLobby_EventScript_208782 - map_script_2 VAR_TEMP_0, 2, SlateportCity_BattleTentLobby_EventScript_208871 - map_script_2 VAR_TEMP_0, 3, SlateportCity_BattleTentLobby_EventScript_2087B7 - map_script_2 VAR_TEMP_0, 4, SlateportCity_BattleTentLobby_EventScript_208837 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, SlateportCity_BattleTentLobby_EventScript_208782 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, SlateportCity_BattleTentLobby_EventScript_208871 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, SlateportCity_BattleTentLobby_EventScript_2087B7 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, SlateportCity_BattleTentLobby_EventScript_208837 .2byte 0 SlateportCity_BattleTentLobby_EventScript_208779:: @ 8208779 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_0 - special CallFrontierUtilFunc + frontier_getstatus end SlateportCity_BattleTentLobby_EventScript_208782:: @ 8208782 lockall msgbox SlateportCity_BattleTentLobby_Text_2C5DFA, MSGBOX_DEFAULT closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_TEMP_0, 255 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 1 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 releaseall end @@ -46,27 +39,20 @@ SlateportCity_BattleTentLobby_EventScript_2087B7:: @ 82087B7 message SlateportCity_BattleTentLobby_Text_2C5C6F waitmessage setvar VAR_0x8004, 4 - special sub_81B9D08 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 1 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + special CallSlateportTentFunction + frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 setvar VAR_0x8004, 3 setvar VAR_0x8005, 0 - special sub_81B9D08 + special CallSlateportTentFunction playse SE_SAVE waitse - SlateportCity_BattleTentLobby_EventScript_2087E9:: @ 82087E9 msgbox SlateportCity_BattleTentLobby_Text_2C5D14, MSGBOX_DEFAULT setvar VAR_0x8004, 5 - special sub_81B9D08 + special CallSlateportTentFunction switch VAR_RESULT case 0, SlateportCity_BattleTentLobby_EventScript_20882A - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 message SlateportCity_BattleTentLobby_Text_23F68C waitmessage playfanfare MUS_FANFA4 @@ -81,13 +67,10 @@ SlateportCity_BattleTentLobby_EventScript_208837:: @ 8208837 lockall message SlateportCity_BattleTentLobby_Text_2C5BA2 waitmessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 1 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 setvar VAR_0x8004, 3 setvar VAR_0x8005, 0 - special sub_81B9D08 + special CallSlateportTentFunction playse SE_SAVE waitse @@ -104,13 +87,10 @@ SlateportCity_BattleTentLobby_EventScript_208871:: @ 8208871 waitmessage setvar VAR_0x8004, 3 setvar VAR_0x8005, 1 - special sub_81B9D08 + special CallSlateportTentFunction playse SE_SAVE waitse - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_PAUSED, FALSE setvar VAR_TEMP_0, 255 setvar VAR_0x8006, 2 goto SlateportCity_BattleTentLobby_EventScript_2089AC @@ -119,7 +99,7 @@ SlateportCity_BattleTentLobby_EventScript_2088AA:: @ 82088AA lock faceplayer setvar VAR_0x8004, 1 - special sub_81B9D08 + special CallSlateportTentFunction compare VAR_RESULT, 0 goto_if_ne SlateportCity_BattleTentLobby_EventScript_2087E9 special SavePlayerParty @@ -136,12 +116,9 @@ SlateportCity_BattleTentLobby_EventScript_2088CA:: @ 82088CA case MULTI_B_PRESSED, SlateportCity_BattleTentLobby_EventScript_208A2E SlateportCity_BattleTentLobby_EventScript_208906:: @ 8208906 - setvar VAR_FRONTIER_FACILITY, 4 - setvar VAR_FRONTIER_BATTLE_MODE, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 1 - setvar VAR_0x8006, 2 - special CallFrontierUtilFunc + setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_FACTORY + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES + frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_TENT msgbox SlateportCity_BattleTentLobby_Text_2C5B06, MSGBOX_YESNO switch VAR_RESULT case NO, SlateportCity_BattleTentLobby_EventScript_208A2B @@ -150,19 +127,11 @@ SlateportCity_BattleTentLobby_EventScript_208906:: @ 8208906 SlateportCity_BattleTentLobby_EventScript_208950:: @ 8208950 setvar VAR_TEMP_0, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_SELECTED_MON_ORDER setvar VAR_0x8004, 0 - special sub_81B9D08 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + special CallSlateportTentFunction + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING + frontier_set FRONTIER_DATA_PAUSED, FALSE closemessage delay 2 call Common_EventScript_SaveGame @@ -170,7 +139,6 @@ SlateportCity_BattleTentLobby_EventScript_208950:: @ 8208950 compare VAR_RESULT, 0 goto_if_eq SlateportCity_BattleTentLobby_EventScript_208A14 setvar VAR_0x8006, 0 - SlateportCity_BattleTentLobby_EventScript_2089AC:: @ 82089AC msgbox SlateportCity_BattleTentLobby_Text_2C5B8C, MSGBOX_DEFAULT closemessage @@ -221,10 +189,7 @@ SlateportCity_BattleTentLobby_EventScript_208A07:: @ 8208A07 goto SlateportCity_BattleTentLobby_EventScript_2088CA SlateportCity_BattleTentLobby_EventScript_208A14:: @ 8208A14 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 goto SlateportCity_BattleTentLobby_EventScript_208A2E SlateportCity_BattleTentLobby_EventScript_208A2B:: @ 8208A2B diff --git a/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc b/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc index fee1c07a4..6b0e42148 100644 --- a/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc +++ b/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc @@ -4,8 +4,7 @@ SootopolisCity_MysteryEventsHouse_1F_MapScripts:: @ 8227953 .byte 0 SootopolisCity_MysteryEventsHouse_1F_OnTransition: @ 822795E - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_CHECK_VISIT_TRAINER - special CallFrontierUtilFunc + frontier_checkvisittrainer compare VAR_RESULT, 0 call_if_eq SootopolisCity_MysteryEventsHouse_1F_EventScript_SetTrainerVisitingLayout compare VAR_SOOTOPOLIS_MYSTERY_EVENTS_STATE, 0 @@ -74,8 +73,7 @@ SootopolisCity_MysteryEventsHouse_1F_Movement_OldManWalkBehindPlayer: @ 8227A21 SootopolisCity_MysteryEventsHouse_1F_EventScript_OldMan:: @ 8227A24 lock faceplayer - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_CHECK_VISIT_TRAINER - special CallFrontierUtilFunc + frontier_checkvisittrainer compare VAR_RESULT, 1 goto_if_eq SootopolisCity_MysteryEventsHouse_1F_EventScript_InvalidVisitingTrainer compare VAR_TEMP_1, 1 diff --git a/data/maps/TrainerHill_Entrance/scripts.inc b/data/maps/TrainerHill_Entrance/scripts.inc index 714c72674..15aecc9d9 100644 --- a/data/maps/TrainerHill_Entrance/scripts.inc +++ b/data/maps/TrainerHill_Entrance/scripts.inc @@ -16,11 +16,9 @@ TrainerHill_Entrance_OnWarp: @ 82680CF end TrainerHill_Entrance_OnResume: @ 82680D0 - setvar VAR_0x8004, TRAINER_HILL_FUNC_RESUME_TIMER - special CallTrainerHillFunction + trainerhill_resumetimer setvar VAR_TEMP_0, 0 - setvar VAR_0x8004, TRAINER_HILL_FUNC_CLEAR_RESULT - special CallTrainerHillFunction + trainerhill_clearresult compare VAR_RESULT, 0 @ VAR_RESULT always 0 here goto_if_eq TrainerHill_Entrance_EventScript_TryFaceAttendant setobjectxy OBJ_EVENT_ID_PLAYER, 9, 6 @@ -28,8 +26,7 @@ TrainerHill_Entrance_OnResume: @ 82680D0 end TrainerHill_Entrance_EventScript_TryFaceAttendant:: @ 82680FF - setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_WON - special CallTrainerHillFunction + trainerhill_getwon compare VAR_RESULT, TRUE goto_if_eq TrainerHill_Entrance_EventScript_PlayerDontFaceAttendant applymovement OBJ_EVENT_ID_PLAYER, TrainerHill_Entrance_Movement_PlayerFaceAttendant @@ -75,8 +72,7 @@ TrainerHill_Entrance_EventScript_ExitElevator:: @ 8268160 TrainerHill_Entrance_EventScript_ExitChallenge:: @ 8268182 setvar VAR_TEMP_0, 1 - setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS - special CallTrainerHillFunction + trainerhill_getstatus switch VAR_RESULT case TRAINER_HILL_PLAYER_STATUS_LOST, TrainerHill_Entrance_EventScript_ExitChallengeLost case TRAINER_HILL_PLAYER_STATUS_ECARD_SCANNED, TrainerHill_Entrance_EventScript_ExitChallengeECard @@ -113,8 +109,7 @@ TrainerHill_Entrance_EventScript_Nurse:: @ 82681EF TrainerHill_Entrance_EventScript_Attendant:: @ 82681FD lock faceplayer - setvar VAR_0x8004, TRAINER_HILL_FUNC_IN_CHALLENGE - special CallTrainerHillFunction + trainerhill_inchallenge compare VAR_RESULT, FALSE goto_if_eq TrainerHill_Entrance_EventScript_ThanksForPlaying msgbox TrainerHill_Entrance_Text_HopeYouGiveItYourBest, MSGBOX_DEFAULT @@ -131,12 +126,10 @@ TrainerHill_Entrance_EventScript_EntryTrigger:: @ 8268229 applymovement OBJ_EVENT_ID_PLAYER, TrainerHill_Entrance_Movement_PlayerFaceAttendant goto_if_unset FLAG_SYS_GAME_CLEAR, TrainerHill_Entrance_EventScript_Closed msgbox TrainerHill_Entrance_Text_WelcomeToTrainerHill, MSGBOX_DEFAULT - setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_GAME_SAVED - special CallTrainerHillFunction + trainerhill_getsaved compare VAR_RESULT, FALSE call_if_eq TrainerHill_Entrance_EventScript_SaveGame - setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_ALL_FLOORS_USED - special CallTrainerHillFunction + trainerhill_allfloorsused compare VAR_RESULT, TRUE goto_if_eq TrainerHill_Entrance_EventScript_AllFloorsUsed msgbox TrainerHill_Entrance_Text_TrainersUpToFloorX, MSGBOX_DEFAULT @@ -165,15 +158,12 @@ TrainerHill_Entrance_EventScript_ChooseChallenge:: @ 82682C8 switch VAR_RESULT case 4, TrainerHill_Entrance_EventScript_CancelEntry case MULTI_B_PRESSED, TrainerHill_Entrance_EventScript_CancelEntry - setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_TAG - copyvar VAR_0x8005, VAR_RESULT - special CallTrainerHillFunction + trainerhill_settag VAR_RESULT setvar VAR_TRAINER_HILL_IS_ACTIVE, 1 setvar VAR_TEMP_5, 0 special HealPlayerParty msgbox TrainerHill_Entrance_Text_TimeProgessGetSetGo, MSGBOX_DEFAULT - setvar VAR_0x8004, TRAINER_HILL_FUNC_START - special CallTrainerHillFunction + trainerhill_start releaseall end @@ -188,19 +178,16 @@ TrainerHill_Entrance_EventScript_CancelEntry:: @ 8268314 TrainerHill_Entrance_EventScript_SaveGame:: @ 826832E msgbox TrainerHill_Entrance_Text_SaveGameBeforeEnter, MSGBOX_DEFAULT - setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_GAME_SAVED - special CallTrainerHillFunction + trainerhill_setsaved setvar VAR_TEMP_5, 1 call Common_EventScript_SaveGame compare VAR_RESULT, FALSE goto_if_eq TrainerHill_Entrance_EventScript_SaveFailed - setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_GAME_SAVED - special CallTrainerHillFunction + trainerhill_setsaved return TrainerHill_Entrance_EventScript_SaveFailed:: @ 826835C - setvar VAR_0x8004, TRAINER_HILL_FUNC_CLEAR_GAME_SAVED - special CallTrainerHillFunction + trainerhill_clearsaved goto TrainerHill_Entrance_EventScript_CancelEntry end diff --git a/data/maps/TrainerHill_Roof/scripts.inc b/data/maps/TrainerHill_Roof/scripts.inc index af4c9ea5a..e4e2cbb49 100644 --- a/data/maps/TrainerHill_Roof/scripts.inc +++ b/data/maps/TrainerHill_Roof/scripts.inc @@ -4,12 +4,10 @@ TrainerHill_Roof_MapScripts:: @ 8268FA7 .byte 0 TrainerHill_Roof_EventScript_Owner:: @ 8268FB2 - setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_ALL_TRAINER_FLAGS - special CallTrainerHillFunction + trainerhill_settrainerflags lock faceplayer - setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_OWNER_STATE - special CallTrainerHillFunction + trainerhill_getownerstate switch VAR_RESULT case 0, TrainerHill_Roof_EventScript_Arrived case 1, TrainerHill_Roof_EventScript_GivePrize @@ -17,8 +15,7 @@ TrainerHill_Roof_EventScript_Owner:: @ 8268FB2 TrainerHill_Roof_EventScript_Arrived:: @ 8268FEA msgbox TrainerHill_Roof_Text_YouFinallyCameBravo, MSGBOX_DEFAULT TrainerHill_Roof_EventScript_GivePrize:: @ 8268FF2 - setvar VAR_0x8004, TRAINER_HILL_FUNC_GIVE_PRIZE - special CallTrainerHillFunction + trainerhill_giveprize switch VAR_RESULT case 0, TrainerHill_Roof_EventScript_ReceivePrize case 1, TrainerHill_Roof_EventScript_NoRoomForPrize @@ -38,8 +35,7 @@ TrainerHill_Roof_EventScript_NoRoomForPrize:: @ 8269037 goto TrainerHill_Roof_EventScript_CheckFinalTime TrainerHill_Roof_EventScript_CheckFinalTime:: @ 8269054 - setvar VAR_0x8004, TRAINER_HILL_FUNC_CHECK_FINAL_TIME - special CallTrainerHillFunction + trainerhill_finaltime switch VAR_RESULT case 0, TrainerHill_Roof_EventScript_NewRecord case 1, TrainerHill_Roof_EventScript_NoNewRecord diff --git a/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc b/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc index ee3269ca8..ae3d78707 100644 --- a/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc +++ b/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc @@ -34,9 +34,7 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_202348:: @ 8202348 showobjectat 1, MAP_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM applymovement 1, VerdanturfTown_BattleTentBattleRoom_Movement_202575 waitmovement 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 0 goto_if_ne VerdanturfTown_BattleTentBattleRoom_EventScript_20243C @@ -47,7 +45,7 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_20236F:: @ 820236F applymovement 2, VerdanturfTown_BattleTentBattleRoom_Movement_20257B waitmovement 0 setvar VAR_0x8004, 4 - special sub_81B99B4 + special CallVerdanturfTentFunction msgbox gStringVar4, MSGBOX_DEFAULT waitmessage call VerdanturfTown_BattleTentBattleRoom_EventScript_24FDF7 @@ -55,23 +53,15 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_20236F:: @ 820236F case 1, VerdanturfTown_BattleTentBattleRoom_EventScript_2023C8 VerdanturfTown_BattleTentBattleRoom_EventScript_2023AA:: @ 82023AA - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST special LoadPlayerParty warp MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY, 255, 6, 6 waitstate VerdanturfTown_BattleTentBattleRoom_EventScript_2023C8:: @ 82023C8 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 2 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT switch VAR_RESULT case 3, VerdanturfTown_BattleTentBattleRoom_EventScript_202501 applymovement 2, VerdanturfTown_BattleTentBattleRoom_Movement_202581 @@ -83,17 +73,13 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_2023C8:: @ 82023C8 msgbox VerdanturfTown_BattleTentBattleRoom_Text_24FF00, MSGBOX_DEFAULT special LoadPlayerParty special SavePlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc + frontier_setpartyorder FRONTIER_PARTY_SIZE playfanfare MUS_ME_ASA waitfanfare special HealPlayerParty VerdanturfTown_BattleTentBattleRoom_EventScript_20243C:: @ 820243C - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 1 call_if_eq VerdanturfTown_BattleTentBattleRoom_EventScript_202565 compare VAR_RESULT, 2 @@ -128,10 +114,7 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_2024EA:: @ 82024EA goto VerdanturfTown_BattleTentBattleRoom_EventScript_20236F VerdanturfTown_BattleTentBattleRoom_EventScript_202501:: @ 8202501 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 3 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON special LoadPlayerParty warp MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY, 255, 6, 6 waitstate @@ -141,12 +124,11 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_20251F:: @ 820251F waitmessage setvar VAR_0x8004, 5 setvar VAR_0x8005, 2 - special sub_81B99B4 + special CallVerdanturfTentFunction playse SE_SAVE waitse fadescreen 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SOFT_RESET - special CallFrontierUtilFunc + frontier_reset end VerdanturfTown_BattleTentBattleRoom_MapScript2_202541: @ 8202541 diff --git a/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc b/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc index 933029bff..0df04f247 100644 --- a/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc +++ b/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc @@ -14,30 +14,23 @@ VerdanturfTown_BattleTentLobby_EventScript_2016E5:: @ 82016E5 VerdanturfTown_BattleTentLobby_MapScript2_2016EF: @ 82016EF map_script_2 VAR_TEMP_0, 0, VerdanturfTown_BattleTentLobby_EventScript_201719 - map_script_2 VAR_TEMP_0, 1, VerdanturfTown_BattleTentLobby_EventScript_201722 - map_script_2 VAR_TEMP_0, 2, VerdanturfTown_BattleTentLobby_EventScript_201837 - map_script_2 VAR_TEMP_0, 3, VerdanturfTown_BattleTentLobby_EventScript_201757 - map_script_2 VAR_TEMP_0, 4, VerdanturfTown_BattleTentLobby_EventScript_2017FD + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, VerdanturfTown_BattleTentLobby_EventScript_201722 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, VerdanturfTown_BattleTentLobby_EventScript_201837 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, VerdanturfTown_BattleTentLobby_EventScript_201757 + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, VerdanturfTown_BattleTentLobby_EventScript_2017FD .2byte 0 VerdanturfTown_BattleTentLobby_EventScript_201719:: @ 8201719 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_0 - special CallFrontierUtilFunc + frontier_getstatus end VerdanturfTown_BattleTentLobby_EventScript_201722:: @ 8201722 lockall msgbox VerdanturfTown_BattleTentLobby_Text_24E636, MSGBOX_DEFAULT closemessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_TEMP_0, 255 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 1 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 releaseall end @@ -47,27 +40,21 @@ VerdanturfTown_BattleTentLobby_EventScript_201757:: @ 8201757 message VerdanturfTown_BattleTentLobby_Text_2C5791 waitmessage setvar VAR_0x8004, 6 - special sub_81B99B4 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 1 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + special CallVerdanturfTentFunction + frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 setvar VAR_0x8004, 5 setvar VAR_0x8005, 0 - special sub_81B99B4 + special CallVerdanturfTentFunction playse SE_SAVE waitse VerdanturfTown_BattleTentLobby_EventScript_201791:: @ 8201791 msgbox VerdanturfTown_BattleTentLobby_Text_2C57CD, MSGBOX_DEFAULT setvar VAR_0x8004, 7 - special sub_81B99B4 + special CallVerdanturfTentFunction switch VAR_RESULT case 0, VerdanturfTown_BattleTentLobby_EventScript_2017DD - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 message VerdanturfTown_BattleTentLobby_Text_24A554 waitmessage playfanfare MUS_FANFA4 @@ -96,13 +83,10 @@ VerdanturfTown_BattleTentLobby_EventScript_2017FD:: @ 82017FD lockall message VerdanturfTown_BattleTentLobby_Text_2C56B8 waitmessage - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 1 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 setvar VAR_0x8004, 5 setvar VAR_0x8005, 0 - special sub_81B99B4 + special CallVerdanturfTentFunction playse SE_SAVE waitse msgbox VerdanturfTown_BattleTentLobby_Text_2C539A, MSGBOX_DEFAULT @@ -118,13 +102,10 @@ VerdanturfTown_BattleTentLobby_EventScript_201837:: @ 8201837 waitmessage setvar VAR_0x8004, 5 setvar VAR_0x8005, 1 - special sub_81B99B4 + special CallVerdanturfTentFunction playse SE_SAVE waitse - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_PAUSED, FALSE setvar VAR_TEMP_0, 255 goto VerdanturfTown_BattleTentLobby_EventScript_2019AE @@ -132,7 +113,7 @@ VerdanturfTown_BattleTentLobby_EventScript_201873:: @ 8201873 lock faceplayer setvar VAR_0x8004, 1 - special sub_81B99B4 + special CallVerdanturfTentFunction compare VAR_RESULT, 0 goto_if_ne VerdanturfTown_BattleTentLobby_EventScript_2017EE special SavePlayerParty @@ -149,17 +130,13 @@ VerdanturfTown_BattleTentLobby_EventScript_201893:: @ 8201893 case MULTI_B_PRESSED, VerdanturfTown_BattleTentLobby_EventScript_201A37 VerdanturfTown_BattleTentLobby_EventScript_2018CF:: @ 82018CF - setvar VAR_FRONTIER_FACILITY, 2 - setvar VAR_FRONTIER_BATTLE_MODE, 0 + setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_PALACE + setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES setvar VAR_RESULT, 2 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_15 - special CallFrontierUtilFunc - compare VAR_0x8004, 1 + frontier_checkineligible + compare VAR_0x8004, TRUE goto_if_eq VerdanturfTown_BattleTentLobby_EventScript_2019E8 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 1 - setvar VAR_0x8006, 2 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_TENT msgbox VerdanturfTown_BattleTentLobby_Text_2C5633, MSGBOX_DEFAULT fadescreen 1 setvar VAR_0x8004, 1 @@ -176,19 +153,11 @@ VerdanturfTown_BattleTentLobby_EventScript_2018CF:: @ 82018CF VerdanturfTown_BattleTentLobby_EventScript_201954:: @ 8201954 setvar VAR_TEMP_0, 0 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_SELECTED_MON_ORDER setvar VAR_0x8004, 0 - special sub_81B99B4 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 1 - special CallFrontierUtilFunc - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 3 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + special CallVerdanturfTentFunction + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING + frontier_set FRONTIER_DATA_PAUSED, FALSE special LoadPlayerParty closemessage delay 2 @@ -199,9 +168,7 @@ VerdanturfTown_BattleTentLobby_EventScript_201954:: @ 8201954 VerdanturfTown_BattleTentLobby_EventScript_2019AE:: @ 82019AE special SavePlayerParty - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY - setvar VAR_0x8005, FRONTIER_PARTY_SIZE - special CallFrontierUtilFunc + frontier_setpartyorder FRONTIER_PARTY_SIZE msgbox VerdanturfTown_BattleTentLobby_Text_2C56A2, MSGBOX_DEFAULT closemessage call VerdanturfTown_BattleTentLobby_EventScript_201A41 @@ -216,8 +183,8 @@ VerdanturfTown_BattleTentLobby_EventScript_2019DB:: @ 82019DB VerdanturfTown_BattleTentLobby_EventScript_2019E8:: @ 82019E8 switch VAR_RESULT - case 0, VerdanturfTown_BattleTentLobby_EventScript_201A03 - case 1, VerdanturfTown_BattleTentLobby_EventScript_201A10 + case FRONTIER_LVL_50, VerdanturfTown_BattleTentLobby_EventScript_201A03 + case FRONTIER_LVL_OPEN, VerdanturfTown_BattleTentLobby_EventScript_201A10 VerdanturfTown_BattleTentLobby_EventScript_201A03:: @ 8201A03 msgbox VerdanturfTown_BattleTentLobby_Text_2C543D, MSGBOX_DEFAULT @@ -228,18 +195,13 @@ VerdanturfTown_BattleTentLobby_EventScript_201A10:: @ 8201A10 goto VerdanturfTown_BattleTentLobby_EventScript_201A3F VerdanturfTown_BattleTentLobby_EventScript_201A1D:: @ 8201A1D - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 0 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 goto VerdanturfTown_BattleTentLobby_EventScript_201A37 VerdanturfTown_BattleTentLobby_EventScript_201A34:: @ 8201A34 special LoadPlayerParty - VerdanturfTown_BattleTentLobby_EventScript_201A37:: @ 8201A37 msgbox VerdanturfTown_BattleTentLobby_Text_2C539A, MSGBOX_DEFAULT - VerdanturfTown_BattleTentLobby_EventScript_201A3F:: @ 8201A3F release end diff --git a/data/maps/map_groups.json b/data/maps/map_groups.json index f9c614a9b..585166dda 100644 --- a/data/maps/map_groups.json +++ b/data/maps/map_groups.json @@ -532,9 +532,9 @@ "BattleFrontier_BattlePikeLobby", "BattleFrontier_BattlePikeCorridor", "BattleFrontier_BattlePikeThreePathRoom", - "BattleFrontier_BattlePikeRandomRoom1", - "BattleFrontier_BattlePikeRandomRoom2", - "BattleFrontier_BattlePikeRandomRoom3", + "BattleFrontier_BattlePikeRoomNormal", + "BattleFrontier_BattlePikeRoomFinal", + "BattleFrontier_BattlePikeRoomWildMons", "BattleFrontier_RankingHall", "BattleFrontier_Lounge1", "BattleFrontier_ExchangeServiceCorner", diff --git a/data/scripts/apprentice.inc b/data/scripts/apprentice.inc index 7eae99dcf..53b43a1f9 100644 --- a/data/scripts/apprentice.inc +++ b/data/scripts/apprentice.inc @@ -1,327 +1,253 @@ -#include "constants/apprentice.h" - -.macro apprentice_msg waitbuttonpress which -setvar VAR_0x8004, 8 -setvar VAR_0x8005, \waitbuttonpress -setvar VAR_0x8006, \which -special CallApprenticeFunction -waitstate -.endm - -.macro apprentice_buff whichstringvar tobuff -setvar VAR_0x8004, 16 -setvar VAR_0x8005, \whichstringvar -setvar VAR_0x8006, \tobuff -special CallApprenticeFunction -.endm - -.macro apprentice_menu which -setvar VAR_0x8004, 7 -setvar VAR_0x8005, \which -special CallApprenticeFunction -waitstate -.endm - -EventScript_Apprentice:: @ 82B688D +BattleFrontier_BattleTowerLobby_EventScript_Apprentice:: @ 82B688D lock faceplayer - setvar VAR_0x8004, 0 - special CallApprenticeFunction - compare VAR_RESULT, 0 - goto_if_eq Script_Apprentice_FirstMeeting - setvar VAR_0x8004, 10 - special CallApprenticeFunction - compare VAR_0x8004, 0 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B68BE - goto_if_set FLAG_DAILY_APPRENTICE_LEAVES, Script_Apprentice_ReleaseAndEnd - -BattleFrontier_BattleTowerLobby_EventScript_2B68BE: - setvar VAR_0x8004, 11 - special CallApprenticeFunction - compare VAR_RESULT, 2 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B69D3 - compare VAR_RESULT, 4 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6ACF - compare VAR_RESULT, 3 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6C77 - compare VAR_RESULT, 1 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6D5C - compare VAR_RESULT, 5 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6DD4 + apprentice_gavelvlmode + compare VAR_RESULT, FALSE + goto_if_eq Apprentice_EventScript_FirstMeeting + apprentice_shouldcheckgone + compare VAR_0x8004, FALSE @ Always TRUE here + goto_if_eq Apprentice_EventScript_AskQuestion + goto_if_set FLAG_DAILY_APPRENTICE_LEAVES, Apprentice_EventScript_Gone +Apprentice_EventScript_AskQuestion: @ 82B68BE + apprentice_getquestion + compare VAR_RESULT, APPRENTICE_QUESTION_WHICH_MON + goto_if_eq Apprentice_EventScript_UseWhichMon + compare VAR_RESULT, APPRENTICE_QUESTION_WHAT_ITEM + goto_if_eq Apprentice_EventScript_UseWhatHeldItem + compare VAR_RESULT, APPRENTICE_QUESTION_WHICH_MOVE + goto_if_eq Apprentice_EventScript_UseWhichMove + compare VAR_RESULT, APPRENTICE_QUESTION_WHICH_FIRST + goto_if_eq Apprentice_EventScript_PutWhichMonFirst + compare VAR_RESULT, APPRENTICE_QUESTION_WIN_SPEECH + goto_if_eq Apprentice_EventScript_PickWinSpeech release releaseall end -Script_Apprentice_FirstMeeting: +Apprentice_EventScript_FirstMeeting: @ 82B6900 apprentice_buff 0, APPRENTICE_BUFF_NAME - apprentice_msg FALSE, 0 - -Script_Apprentice_FirstMeetingNag: + apprentice_msg FALSE, APPRENTICE_MSG_PLEASE_TEACH +Apprentice_EventScript_WhichLvlMode: @ 82B6925 apprentice_menu APPRENTICE_ASK_YES_NO compare VAR_RESULT, 1 - goto_if_eq Script_Apprentice_FirstMeetingAskAgain - apprentice_msg FALSE, 2 + goto_if_eq Apprentice_EventScript_RejectTeach + apprentice_msg FALSE, APPRENTICE_MSG_WHICH_LVL_MODE apprentice_menu APPRENTICE_ASK_WHICH_LEVEL - setvar VAR_0x8004, 1 - setorcopyvar VAR_0x8005, VAR_RESULT - addvar VAR_0x8005, 1 - special CallApprenticeFunction - setvar VAR_0x8004, 3 - special CallApprenticeFunction + apprentice_setlvlmode VAR_RESULT + apprentice_shufflespecies apprentice_buff 0, APPRENTICE_BUFF_LEVEL - apprentice_msg TRUE, 3 - call Script_Apprentice_SetLeavingFlags + apprentice_msg TRUE, APPRENTICE_MSG_THANKS_LVL_MODE + call Apprentice_EventScript_SetHideFlags release releaseall switch VAR_FACING - case DIR_NORTH, Script_Apprentice_LeaveGoRight - goto Script_Apprentice_Leave + case DIR_NORTH, Apprentice_EventScript_LeaveNorth + goto Apprentice_EventScript_Leave end -Script_Apprentice_FirstMeetingAskAgain: - apprentice_msg FALSE, 1 - goto Script_Apprentice_FirstMeetingNag +@ Its impossible to fully reject an Apprentice, they just keep asking for you to teach them +Apprentice_EventScript_RejectTeach: @ 82B69BB + apprentice_msg FALSE, APPRENTICE_MSG_REJECT + goto Apprentice_EventScript_WhichLvlMode -BattleFrontier_BattleTowerLobby_EventScript_2B69D3: - setvar VAR_0x8004, 14 - setvar VAR_0x8005, 2 - special CallApprenticeFunction +Apprentice_EventScript_UseWhichMon: @ 82B69D3 + apprentice_initquestion APPRENTICE_QUESTION_WHICH_MON apprentice_buff 0, APPRENTICE_BUFF_SPECIES1 apprentice_buff 1, APPRENTICE_BUFF_SPECIES2 - apprentice_msg FALSE, 6 + apprentice_msg FALSE, APPRENTICE_MSG_WHICH_MON apprentice_menu APPRENTICE_ASK_2SPECIES copyvar VAR_0x8005, VAR_RESULT compare VAR_0x8005, 0 - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6ABA + call_if_eq Apprentice_EventScript_ChoseFirstMon compare VAR_0x8005, 1 - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6AC0 - setvar VAR_0x8004, 12 - special CallApprenticeFunction - copyvar VAR_0x8006, VAR_RESULT - setvar VAR_0x8004, 13 - special CallApprenticeFunction - setvar VAR_0x8004, 5 - special CallApprenticeFunction - setvar VAR_0x8004, 12 - special CallApprenticeFunction - compare VAR_RESULT, 3 - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6AC6 - setvar VAR_0x8004, 16 - setvar VAR_0x8005, 0 - copyvar VAR_0x8006, VAR_0x8007 - special CallApprenticeFunction - setvar VAR_0x8004, 15 - special CallApprenticeFunction - apprentice_msg TRUE, 7 - call Script_Apprentice_SetLeavingFlags + call_if_eq Apprentice_EventScript_ChoseSecondMon + apprentice_getnumpartymons + apprentice_setpartymon VAR_RESULT + apprentice_answeredquestion + apprentice_getnumpartymons + compare VAR_RESULT, MULTI_PARTY_SIZE + call_if_eq Apprentice_EventScript_LastMonSelected + apprentice_buff 0, VAR_0x8007 + apprentice_freequestion + apprentice_msg TRUE, APPRENTICE_MSG_THANKS_MON + call Apprentice_EventScript_SetHideFlags release releaseall switch VAR_FACING - case DIR_NORTH, Script_Apprentice_LeaveGoRight - goto Script_Apprentice_Leave + case DIR_NORTH, Apprentice_EventScript_LeaveNorth + goto Apprentice_EventScript_Leave end -BattleFrontier_BattleTowerLobby_EventScript_2B6ABA: - setvar VAR_0x8007, 0 +Apprentice_EventScript_ChoseFirstMon: @ 82B6ABA + setvar VAR_0x8007, APPRENTICE_BUFF_SPECIES1 return -BattleFrontier_BattleTowerLobby_EventScript_2B6AC0: - setvar VAR_0x8007, 1 +Apprentice_EventScript_ChoseSecondMon: @ 82B6AC0 + setvar VAR_0x8007, APPRENTICE_BUFF_SPECIES2 return -BattleFrontier_BattleTowerLobby_EventScript_2B6AC6: - setvar VAR_0x8004, 4 - special CallApprenticeFunction +Apprentice_EventScript_LastMonSelected: @ 82B6AC6 + apprentice_randomizequestions return -BattleFrontier_BattleTowerLobby_EventScript_2B6ACF: - setvar VAR_0x8004, 14 - setvar VAR_0x8005, 4 - special CallApprenticeFunction +Apprentice_EventScript_UseWhatHeldItem: @ 82B6ACF + apprentice_initquestion APPRENTICE_QUESTION_WHAT_ITEM apprentice_buff 0, APPRENTICE_BUFF_SPECIES3 - apprentice_msg TRUE, 10 - setvar VAR_0x8004, 15 - special CallApprenticeFunction - -BattleFrontier_BattleTowerLobby_EventScript_2B6B09: + apprentice_msg TRUE, APPRENTICE_MSG_WHAT_HELD_ITEM + apprentice_freequestion +Apprentice_EventScript_ChooseHoldItem: @ 82B6B09 fadescreen 1 setvar VAR_RESULT, 0 - setvar VAR_0x8004, 19 - special CallApprenticeFunction - waitstate - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6B81 - setvar VAR_0x8004, 20 - special CallApprenticeFunction - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6C0C + apprentice_openbag + compare VAR_RESULT, FALSE + goto_if_eq Apprentice_EventScript_ConfirmHoldNothing + apprentice_trysetitem + compare VAR_RESULT, FALSE + goto_if_eq Apprentice_EventScript_AlreadySuggestedItem apprentice_buff 0, APPRENTICE_BUFF_ITEM - apprentice_msg TRUE, 12 - setvar VAR_0x8004, 5 - special CallApprenticeFunction - call Script_Apprentice_SetLeavingFlags + apprentice_msg TRUE, APPRENTICE_MSG_THANKS_HELD_ITEM + apprentice_answeredquestion + call Apprentice_EventScript_SetHideFlags release releaseall switch VAR_FACING - case DIR_NORTH, Script_Apprentice_LeaveGoRight - goto Script_Apprentice_Leave + case DIR_NORTH, Apprentice_EventScript_LeaveNorth + goto Apprentice_EventScript_Leave end -BattleFrontier_BattleTowerLobby_EventScript_2B6B81: - setvar VAR_0x8004, 14 - setvar VAR_0x8005, 4 - special CallApprenticeFunction +Apprentice_EventScript_ConfirmHoldNothing: @ 82B6B81 + apprentice_initquestion APPRENTICE_QUESTION_WHAT_ITEM apprentice_buff 0, APPRENTICE_BUFF_SPECIES3 - apprentice_msg FALSE, 13 + apprentice_msg FALSE, APPRENTICE_MSG_HOLD_NOTHING apprentice_menu APPRENTICE_ASK_GIVE - setvar VAR_0x8004, 15 - special CallApprenticeFunction + apprentice_freequestion compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6B09 - -BattleFrontier_BattleTowerLobby_EventScript_2B6BD4: - apprentice_msg TRUE, 14 - setvar VAR_0x8004, 5 - special CallApprenticeFunction - call Script_Apprentice_SetLeavingFlags + goto_if_eq Apprentice_EventScript_ChooseHoldItem +Apprentice_EventScript_HoldNothing: @ 82B6BD4 + apprentice_msg TRUE, APPRENTICE_MSG_THANKS_NO_HELD_ITEM + apprentice_answeredquestion + call Apprentice_EventScript_SetHideFlags release releaseall switch VAR_FACING - case DIR_NORTH, Script_Apprentice_LeaveGoRight - goto Script_Apprentice_Leave + case DIR_NORTH, Apprentice_EventScript_LeaveNorth + goto Apprentice_EventScript_Leave end -BattleFrontier_BattleTowerLobby_EventScript_2B6C0C: - setvar VAR_0x8004, 14 - setvar VAR_0x8005, 4 - special CallApprenticeFunction +@ Because Battle Tower mons may not hold the same item, the player must suggest a +@ different item if theyve already told the Apprentice to use it for another mon +Apprentice_EventScript_AlreadySuggestedItem: @ 82B6C0C + apprentice_initquestion APPRENTICE_QUESTION_WHAT_ITEM apprentice_buff 0, APPRENTICE_BUFF_ITEM apprentice_buff 1, APPRENTICE_BUFF_SPECIES3 - apprentice_msg FALSE, 16 + apprentice_msg FALSE, APPRENTICE_MSG_ITEM_ALREADY_SUGGESTED apprentice_menu APPRENTICE_ASK_GIVE - setvar VAR_0x8004, 15 - special CallApprenticeFunction + apprentice_freequestion compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6B09 - goto BattleFrontier_BattleTowerLobby_EventScript_2B6BD4 + goto_if_eq Apprentice_EventScript_ChooseHoldItem + goto Apprentice_EventScript_HoldNothing end -BattleFrontier_BattleTowerLobby_EventScript_2B6C77: - setvar VAR_0x8004, 14 - setvar VAR_0x8005, 3 - special CallApprenticeFunction +Apprentice_EventScript_UseWhichMove: @ 82B6C77 + apprentice_initquestion APPRENTICE_QUESTION_WHICH_MOVE apprentice_buff 0, APPRENTICE_BUFF_SPECIES3 apprentice_buff 1, APPRENTICE_BUFF_MOVE1 apprentice_buff 2, APPRENTICE_BUFF_MOVE2 - apprentice_msg FALSE, 8 + apprentice_msg FALSE, APPRENTICE_MSG_WHICH_MOVE apprentice_menu APPRENTICE_ASK_MOVES copyvar VAR_0x8005, VAR_RESULT compare VAR_0x8005, 0 - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6D50 + call_if_eq Apprentice_EventScript_ChoseMove1 compare VAR_0x8005, 1 - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_2B6D56 - setvar VAR_0x8004, 17 - special CallApprenticeFunction - setvar VAR_0x8004, 5 - special CallApprenticeFunction - setvar VAR_0x8004, 16 - setvar VAR_0x8005, 0 - copyvar VAR_0x8006, VAR_0x8007 - special CallApprenticeFunction - setvar VAR_0x8004, 15 - special CallApprenticeFunction - apprentice_msg TRUE, 9 - call Script_Apprentice_SetLeavingFlags + call_if_eq Apprentice_EventScript_ChoseMove2 + apprentice_setmove + apprentice_answeredquestion + apprentice_buff 0, VAR_0x8007 + apprentice_freequestion + apprentice_msg TRUE, APPRENTICE_MSG_THANKS_MOVE + call Apprentice_EventScript_SetHideFlags release releaseall switch VAR_FACING - case DIR_NORTH, Script_Apprentice_LeaveGoRight - goto Script_Apprentice_Leave + case DIR_NORTH, Apprentice_EventScript_LeaveNorth + goto Apprentice_EventScript_Leave end -BattleFrontier_BattleTowerLobby_EventScript_2B6D50: - setvar VAR_0x8007, 3 +Apprentice_EventScript_ChoseMove1: @ 82B6D50 + setvar VAR_0x8007, APPRENTICE_BUFF_MOVE1 return -BattleFrontier_BattleTowerLobby_EventScript_2B6D56: - setvar VAR_0x8007, 4 +Apprentice_EventScript_ChoseMove2: @ 82B6D56 + setvar VAR_0x8007, APPRENTICE_BUFF_MOVE2 return -BattleFrontier_BattleTowerLobby_EventScript_2B6D5C: - apprentice_msg FALSE, 4 +Apprentice_EventScript_PutWhichMonFirst: @ 82B6D5C + apprentice_msg FALSE, APPRENTICE_MSG_WHICH_MON_FIRST apprentice_menu APPRENTICE_ASK_3SPECIES - copyvar VAR_0x8005, VAR_RESULT - setvar VAR_0x8004, 18 - special CallApprenticeFunction - setvar VAR_0x8004, 5 - special CallApprenticeFunction - apprentice_buff 0, APPRENTICE_BUFF_SPECIES4 - apprentice_msg TRUE, 5 - call Script_Apprentice_SetLeavingFlags + apprentice_setleadmon VAR_RESULT + apprentice_answeredquestion + apprentice_buff 0, APPRENTICE_BUFF_LEAD_MON_SPECIES + apprentice_msg TRUE, APPRENTICE_MSG_THANKS_MON_FIRST + call Apprentice_EventScript_SetHideFlags release releaseall switch VAR_FACING - case DIR_NORTH, Script_Apprentice_LeaveGoRight - goto Script_Apprentice_Leave + case DIR_NORTH, Apprentice_EventScript_LeaveNorth + goto Apprentice_EventScript_Leave end -BattleFrontier_BattleTowerLobby_EventScript_2B6DD4: - apprentice_msg TRUE, 11 - setvar VAR_0x8004, 25 - special CallApprenticeFunction +@ Last question, after which the Apprentice leaves (and is saved) to be replaced by another +Apprentice_EventScript_PickWinSpeech: @ 82B6DD4 + apprentice_msg TRUE, APPRENTICE_MSG_PICK_WIN_SPEECH + apprentice_shiftsaved setvar VAR_0x8004, EASY_CHAT_TYPE_APPRENTICE call Common_ShowEasyChatScreen lock faceplayer - setvar VAR_0x8004, 21 - special CallApprenticeFunction - apprentice_buff 0, APPRENTICE_BUFF_EASY_CHAT - apprentice_msg TRUE, 15 - setvar VAR_0x8004, 9 - special CallApprenticeFunction - call Script_Apprentice_SetLeavingFlags + apprentice_save + apprentice_buff 0, APPRENTICE_BUFF_WIN_SPEECH + apprentice_msg TRUE, APPRENTICE_MSG_THANKS_WIN_SPEECH + apprentice_reset + call Apprentice_EventScript_SetHideFlags release releaseall switch VAR_FACING - case DIR_NORTH, Script_Apprentice_LeaveGoRight - goto Script_Apprentice_Leave + case DIR_NORTH, Apprentice_EventScript_LeaveNorth + goto Apprentice_EventScript_Leave end -Script_Apprentice_SetLeavingFlags: +Apprentice_EventScript_SetHideFlags: @ 82B6E4D setflag FLAG_HIDE_APPRENTICE setflag FLAG_DAILY_APPRENTICE_LEAVES return -Script_Apprentice_LeaveGoRight: - setvar VAR_0x8004, 24 - special CallApprenticeFunction - compare VAR_0x8004, 0 - goto_if_eq Script_Apprentice_End - applymovement 6, BattleFrontier_BattleTowerLobby_Movement_2B6E94 +Apprentice_EventScript_LeaveNorth: @ 82B6E54 + apprentice_shouldleave + compare VAR_0x8004, FALSE @ Always TRUE here + goto_if_eq Apprentice_EventScript_DontMove + applymovement 6, Apprentice_Movement_LeaveNorth waitmovement 0 end -Script_Apprentice_Leave: - setvar VAR_0x8004, 24 - special CallApprenticeFunction - compare VAR_0x8004, 0 - goto_if_eq Script_Apprentice_End - applymovement 6, BattleFrontier_BattleTowerLobby_Movement_2B6E95 +Apprentice_EventScript_Leave: @ 82B6E72 + apprentice_shouldleave + compare VAR_0x8004, FALSE @ Always TRUE here + goto_if_eq Apprentice_EventScript_DontMove + applymovement 6, Apprentice_Movement_Leave waitmovement 0 end -Script_Apprentice_ReleaseAndEnd: +Apprentice_EventScript_Gone: @ 82B6E90 release releaseall end -Script_Apprentice_End: +Apprentice_EventScript_DontMove: @ 82B6E93 end -BattleFrontier_BattleTowerLobby_Movement_2B6E94: @ 82B6E94 +Apprentice_Movement_LeaveNorth: @ 82B6E94 walk_fast_right - -BattleFrontier_BattleTowerLobby_Movement_2B6E95: @ 82B6E95 +Apprentice_Movement_Leave: @ 82B6E95 walk_fast_down walk_fast_down walk_fast_right @@ -338,2531 +264,3 @@ BattleFrontier_BattleTowerLobby_Movement_2B6E95: @ 82B6E95 slide_down slide_down step_end - -gText_082B6EA5:: @ 82B6EA5 - .string "Um, I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice.\n" - .string "Snivel… This tension is getting to me…$" - -gText_082B6EEC:: @ 82B6EEC - .string "I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice!\n" - .string "Here we come!$" - -gText_082B6F16:: @ 82B6F16 - .string "I'm the no. {STR_VAR_2} apprentice of {STR_VAR_1}!\n" - .string "Accept my challenge!$" - -gText_082B6F4C:: @ 82B6F4C - .string "Um… I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice…\n" - .string "Do you think someone like me can win?$" - -gText_082B6F92:: @ 82B6F92 - .string "I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice!\n" - .string "I'll let you challenge me!$" - -gText_082B6FC9:: @ 82B6FC9 - .string "I'm horribly busy, but I also happen\n" - .string "to be {STR_VAR_1}'s no. {STR_VAR_2} apprentice.$" - -gText_082B700C:: @ 82B700C - .string "I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice.\n" - .string "Glad to meet you!$" - -gText_082B703A:: @ 82B703A - .string "I serve as {STR_VAR_1}'s no. {STR_VAR_2} apprentice.\n" - .string "May I begin?$" - -gText_082B706A:: @ 82B706A - .string "Eek! I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice!\n" - .string "I'll do my best!$" - -gText_082B709C:: @ 82B709C - .string "Yeehaw! I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice!\n" - .string "Put 'em up!$" - -gText_082B70CC:: @ 82B70CC - .string "I'm {STR_VAR_1}'s 1,000th apprentice!\n" - .string "Actually, I'm no. {STR_VAR_2}! Here goes!$" - -gText_082B710A:: @ 82B710A - .string "Yeah, I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice!\n" - .string "Let's get rockin' and a-rollin'!$" - -gText_082B714D:: @ 82B714D - .string "Yippee-yahoo! I'm what you call\n" - .string "{STR_VAR_1}'s no. {STR_VAR_2} apprentice!$" - -gText_082B7185:: @ 82B7185 - .string "Cough! I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice.\n" - .string "Good to meet you! Cough!$" - -gText_082B71C1:: @ 82B71C1 - .string "This is nerve-racking…\n" - .string "I'm the no. {STR_VAR_2} apprentice of {STR_VAR_1}.$" - -gText_082B71F9:: @ 82B71F9 - .string "I am {STR_VAR_1}'s no. {STR_VAR_2} apprentice,\n" - .string "and that's no lie.$" - -gText_082B7229:: @ 82B7229 - .string "Are you… {PLAYER}?\n" - .string "Oh! Sniff…sob…\p" - .string "Oh! S-sorry…\n" - .string "I'm so nervous, I can't help crying…\p" - .string "I'm {STR_VAR_1}, and I really look up\n" - .string "to you, {PLAYER}.\p" - .string "I… I had this dream of one day meeting\n" - .string "you and asking you about POKéMON.\p" - .string "Please, please, {PLAYER}!\n" - .string "Please teach me about POKéMON!$" - -gText_082B731C:: @ 82B731C - .string "Oh… B-but…\n" - .string "Snivel… Waaaaaaah!\p" - .string "Please!\n" - .string "I'm begging you, please!$" - -gText_082B735B:: @ 82B735B - .string "Oh, really? You will?\n" - .string "Awesome! Wicked! Awoooh!\p" - .string "Oh… I'm sorry…\n" - .string "I'm so happy, I'm crying…\p" - .string "Um… Then please tell me!\n" - .string "It's about the BATTLE TOWER.\p" - .string "Which would be better for me: Level 50\n" - .string "or the Open Level?$" - -gText_082B7423:: @ 82B7423 - .string "{STR_VAR_1}?\n" - .string "Waaaaah!\p" - .string "Oh! I'm so sorry!\n" - .string "You've made me happy by choosing\l" - .string "the level for me, and it's made me cry…\p" - .string "Snivel…\n" - .string "Thank you so much!\l" - .string "Please talk with me again!$" - -gText_082B74C1:: @ 82B74C1 - .string "Wowee! You're {PLAYER}, aren't you?\n" - .string "You're awesomely strong, aren't you?\p" - .string "I'm {STR_VAR_1}!\n" - .string "I just became a TRAINER!\p" - .string "Please, {PLAYER}!\n" - .string "Can you be my teacher and tell me\l" - .string "lots about being a TRAINER?$" - -gText_082B756F:: @ 82B756F - .string "Aww, why?\n" - .string "Oh, please? Pretty please?\l" - .string "Please be my teacher, please!$" - -gText_082B75B2:: @ 82B75B2 - .string "Yay! Great!\p" - .string "The first thing I wanted to ask you is\n" - .string "about the BATTLE TOWER!\p" - .string "The Level 50 and Open Level Rooms…\n" - .string "Which would be perfect for me?$" - -gText_082B763F:: @ 82B763F - .string "{STR_VAR_1}, huh? That's true!\n" - .string "I'll do my best there!\p" - .string "If we meet here again, please teach\n" - .string "me something else, teacher!$" - -gText_082B76AC:: @ 82B76AC - .string "Um… Are you {PLAYER}?\n" - .string "My name is {STR_VAR_1}.\p" - .string "I want to become a POKéMON TRAINER,\n" - .string "but I don't know what to do…\p" - .string "So I thought maybe I could ask you for\n" - .string "advice because you're so famous.\p" - .string "{PLAYER}, could you give me advice?$" - -gText_082B7772:: @ 82B7772 - .string "Oh, but…\p" - .string "I sincerely want to become a POKéMON\n" - .string "TRAINER!\p" - .string "Please, can you answer my questions?$" - -gText_082B77CE:: @ 82B77CE - .string "Thank you!\n" - .string "Here's my first question right away!\p" - .string "The BATTLE TOWER has two levels,\n" - .string "Level 50 and Open Level, right?\p" - .string "Which level do you think is more\n" - .string "suitable for me?$" - -gText_082B7871:: @ 82B7871 - .string "Oh, the {STR_VAR_1} challenge?\n" - .string "Understood!\p" - .string "If I have another question, I'll come\n" - .string "back here for your advice!$" - -gText_082B78D4:: @ 82B78D4 - .string "Oh? Huh? You're…\n" - .string "No, that can't be true.\p" - .string "There isn't any way that someone\n" - .string "like me could meet {PLAYER}.\p" - .string "…You really are {PLAYER}?\n" - .string "I can't believe I'm talking to you!\p" - .string "When something this good happens,\n" - .string "only terrible things will happen to me\l" - .string "now, I just know it…\p" - .string "…I'm sorry…\n" - .string "I'm… {STR_VAR_1}…\p" - .string "There isn't anything special about\n" - .string "me that I can be proud of…\p" - .string "I shouldn't even say anything about\n" - .string "myself because you'll forget…\p" - .string "I had this dream that if I ever met\n" - .string "you, {PLAYER}, that maybe I could ask\l" - .string "you for advice as a TRAINER.\p" - .string "But I don't think you would agree\n" - .string "to that.\p" - .string "…Or will you be so kind as to give\n" - .string "me advice?$" - -gText_082B7B1A:: @ 82B7B1A - .string "I knew it…\p" - .string "It had to happen because I'm such\n" - .string "a really boring nobody…\p" - .string "But I thought just maybe…\n" - .string "You won't reconsider, will you?\p" - .string "But I can't give up just like that.\n" - .string "I'll ask you while I'm still lucky!\p" - .string "Please, will you be so kind as to give\n" - .string "me advice?$" - -gText_082B7C13:: @ 82B7C13 - .string "Really? I can't believe it!\n" - .string "I can't believe you'll advise me!\l" - .string "I… I'm so happy…\p" - .string "What I want to ask you is really\n" - .string "trivial, but I can't decide…\p" - .string "At the BATTLE TOWER, they let you\n" - .string "choose Level 50 or Open Level.\p" - .string "Which course do you think even I may\n" - .string "have a chance at?$" - -gText_082B7D18:: @ 82B7D18 - .string "{STR_VAR_1}? Okay!\n" - .string "But do you really think someone like\l" - .string "me would have a chance?\p" - .string "I'll do my best, even though I don't\n" - .string "think it will work.\p" - .string "Thank you very much for spending\n" - .string "time with someone like me.$" - -gText_082B7DD4:: @ 82B7DD4 - .string "Oh! You're {PLAYER}{KUN}, aren't you?\p" - .string "I've heard that you're tough at\n" - .string "POKéMON!\p" - .string "I'm {STR_VAR_1}!\n" - .string "I'll be your friend!\p" - .string "Did you know?\p" - .string "You can't win at the BATTLE FRONTIER\n" - .string "if all you know is what they teach at\l" - .string "the TRAINER'S SCHOOL.\p" - .string "I'm willing to listen to your advice.\n" - .string "You'll agree, of course?$" - -gText_082B7EE5:: @ 82B7EE5 - .string "Huh? Why are you refusing me?\n" - .string "It's me who's asking you!\l" - .string "You have to reconsider!$" - -gText_082B7F35:: @ 82B7F35 - .string "Okay, so there is this something.\n" - .string "I want you to decide it for me.\p" - .string "You know that the BATTLE TOWER has\n" - .string "Level 50 and Open Level Rooms?\p" - .string "Which do you think would be good\n" - .string "for me, {PLAYER}{KUN}?$" - -gText_082B7FE8:: @ 82B7FE8 - .string "Okay, {STR_VAR_1} is suitable for me?\n" - .string "Thank you!\p" - .string "Knowing that you made the decision,\n" - .string "{PLAYER}{KUN}, I won't be so upset if\l" - .string "I lose.\p" - .string "Okay, I'll look to you for advice again.\n" - .string "Bye!$" - -gText_082B8087:: @ 82B8087 - .string "Oh, hi, there! {PLAYER}{KUN}!\n" - .string "I know you because you're famous!\l" - .string "Call me {STR_VAR_1}! Glad to meet you!\p" - .string "I'm a TRIATHLETE, so I keep myself\n" - .string "fit even while I raise POKéMON.\p" - .string "I'm also involved with other things\n" - .string "like work, napping, ballroom dancing…\p" - .string "Being this busy, it's not so easy for\n" - .string "me to become a decent TRAINER.\p" - .string "So, I have a proposition!\p" - .string "There must be a reason why we met.\n" - .string "So, {PLAYER}{KUN}, how about sharing your\l" - .string "wisdom with me every so often?$" - -gText_082B822B:: @ 82B822B - .string "Oh, but, please?\n" - .string "A guy like me needs someone like\l" - .string "you, {PLAYER}{KUN}!\p" - .string "Honestly, I need your advice!$" - -gText_082B8286:: @ 82B8286 - .string "Thank you! That's more like it!\n" - .string "So, let's start with an easy one!\p" - .string "You know about the BATTLE TOWER's\n" - .string "two courses, right?\l" - .string "You know, Level 50 and Open Level.\p" - .string "Me being a busy guy, which one should\n" - .string "I gear up for?$" - -gText_082B8356:: @ 82B8356 - .string "{STR_VAR_1}, huh? Okay, gotcha.\n" - .string "I'll find time somehow and give it a go!\p" - .string "…Whoops, I'd better go to work!\n" - .string "Thanks! See you around!$" - -gText_082B83CE:: @ 82B83CE - .string "No way! Uh-uh!\n" - .string "Are you maybe the real {PLAYER}?\p" - .string "A-hah! Awesome! I'm {STR_VAR_1},\n" - .string "so pleased to meet you!\p" - .string "{PLAYER}, you're very strong,\n" - .string "aren't you?\p" - .string "Everyone's talking about you!\p" - .string "Oh! I just had this great idea!\n" - .string "I'll get advice off you, {PLAYER}!\l" - .string "I'm sure it will make me tougher!\p" - .string "Isn't it a great idea?\n" - .string "Please, I want your advice!$" - -gText_082B84FC:: @ 82B84FC - .string "Ahahaha, you can pretend to be mean,\n" - .string "but you can't fool me!\l" - .string "You really mean okay, don't you?$" - -gText_082B8559:: @ 82B8559 - .string "Yay! I knew you'd have a big heart,\n" - .string "{PLAYER}!\p" - .string "What should I ask you first?\n" - .string "…Oh, I thought of something!\p" - .string "Drum roll, please!\n" - .string "The question I have is…\p" - .string "If I were to take a BATTLE TOWER\n" - .string "challenge, which way should I go?\p" - .string "Level 50 or Open Level?\n" - .string "Which suits me more?$" - -gText_082B8656:: @ 82B8656 - .string "Oh-oh-oh!\n" - .string "{STR_VAR_1}, you say!\l" - .string "Thank you for a totally cool reply!\p" - .string "I guess that's about all I wanted\n" - .string "to ask you today.\p" - .string "Let's meet here again, okay?\n" - .string "Thanks!$" - -gText_082B86EA:: @ 82B86EA - .string "I beg your pardon, but…\n" - .string "Are you {PLAYER}?\p" - .string "I'm {STR_VAR_1}, and I am delighted to\n" - .string "make your acquaintance.\p" - .string "I have long been an admirer\n" - .string "of yours…\p" - .string "… … … … … …\p" - .string "Um… I hope you don't find this\n" - .string "request too much of a burden, but…\p" - .string "May I become your apprentice,\n" - .string "{PLAYER}?$" - -gText_082B87DA:: @ 82B87DA - .string "Oh…!\p" - .string "… … … … … …\n" - .string "… … … … … …\p" - .string "…I must have fainted from shock.\n" - .string "I'm sorry, I must have misheard you.\p" - .string "Please! Please say that you will\n" - .string "accept me as your apprentice!$" - -gText_082B887C:: @ 82B887C - .string "Oh… I'm delighted!\p" - .string "I don't wish to waste your time,\n" - .string "so please advise me on this.\p" - .string "I plan to take a BATTLE TOWER\n" - .string "challenge soon.\p" - .string "However, there are two levels…\p" - .string "Which would be most suitable for me?\n" - .string "Level 50 or Open Level?$" - -gText_082B8957:: @ 82B8957 - .string "{STR_VAR_1} is your choice!\n" - .string "I see. I will do my best!\p" - .string "Thank you, {PLAYER}.\n" - .string "I hope I can count on you again.\l" - .string "Please take care!$" - -gText_082B89C6:: @ 82B89C6 - .string "Eek! Eek! {PLAYER}!\n" - .string "You spoke to me!\l" - .string "I… I'm overjoyed!\p" - .string "Me! My name is {STR_VAR_1}!\n" - .string "I just became a TRAINER!\p" - .string "I'm delighted I met you, {PLAYER},\n" - .string "the big name in POKéMON circles!\p" - .string "Oh-oh-oh, I know!\n" - .string "May I ask a huge favor, {PLAYER}?\p" - .string "Please take me in as your apprentice!\n" - .string "I want to learn from you!$" - -gText_082B8ACF:: @ 82B8ACF - .string "Waaaah!\n" - .string "{PLAYER} turned me down…\l" - .string "It… It's an invaluable experience!\p" - .string "{PLAYER}, please! I want to hear\n" - .string "an affirmative answer this time!\p" - .string "I beg you for your guidance!$" - -gText_082B8B66:: @ 82B8B66 - .string "Hieeeeh! {PLAYER} said yes!\n" - .string "{PLAYER} said yes!\p" - .string "I won't be able to sleep tonight…\n" - .string "Thank you ever so much!\p" - .string "Then, here's my question!\p" - .string "At the BATTLE TOWER, what is right\n" - .string "for me, Level 50 or Open Level?$" - -gText_082B8C20:: @ 82B8C20 - .string "{STR_VAR_1}! Perfectly understood!\n" - .string "I understand perfectly!\l" - .string "I'm deliriously delighted!\p" - .string "I hope you'll be willing to teach me\n" - .string "some more another time.$" - -gText_082B8CAA:: @ 82B8CAA - .string "Whoa! Could you be…\n" - .string "Might you be… {PLAYER}{KUN}?!\l" - .string "That strong and famous TRAINER?\l" - .string "Well, hello, aren't I just the luckiest!\p" - .string "Hello, the name's {STR_VAR_1}!\p" - .string "I've been on the lookout for\n" - .string "a POKéMON teacher.\p" - .string "And with impeccably good timing,\n" - .string "along came you, {PLAYER}{KUN}!\p" - .string "So, there you have it, {PLAYER}{KUN}!\n" - .string "Let me apprentice under you!$" - -gText_082B8DD3:: @ 82B8DD3 - .string "Gwaaaah!\n" - .string "You're quite cool and tough…\p" - .string "Don't be that way, please.\n" - .string "I'm asking you!$" - -gText_082B8E24:: @ 82B8E24 - .string "Oh, yeah! That's a solid reply!\n" - .string "Excellent, I might add!\p" - .string "So how about a first piece of advice\n" - .string "on the BATTLE TOWER?\p" - .string "If I were to go, what would be better?\n" - .string "Level 50 or Open Level?$" - -gText_082B8ED5:: @ 82B8ED5 - .string "Uh-huh, {STR_VAR_1} it is!\n" - .string "OK, A-OK!\l" - .string "I'll go show my mettle, like, jam!\p" - .string "All right, I'll look to you as my mentor!\n" - .string "Adios!$" - -gText_082B8F45:: @ 82B8F45 - .string "Oh, hey, {PLAYER}{KUN}, right?\n" - .string "The police were looking for you!\p" - .string "… … …\n" - .string "Of course I'm lying!\p" - .string "Me, I'm {STR_VAR_1}. Despite the way\n" - .string "I look, I'm the POKéMON CHAMPION!\l" - .string "…That's a lie, too!\p" - .string "This is no lie, though.\n" - .string "I'm not very good at battling.\p" - .string "So, how about you becoming my master\n" - .string "about all things POKéMON?$" - -gText_082B905F:: @ 82B905F - .string "If you're going to act cold like that,\n" - .string "I'll show you what I'll do!\p" - .string "Waaah! Waaah! Waaah!\n" - .string "Hiccup!\p" - .string "Hahaha, that was my FAKE TEARS!\p" - .string "Come on, will you please be\n" - .string "my POKéMON master?$" - -gText_082B910E:: @ 82B910E - .string "Yippee!\n" - .string "I'll buy you a boat for that!\p" - .string "Of course I'm lying again!\n" - .string "But… Thank you, master!\p" - .string "You know how there's Level 50 and\n" - .string "Open Level at the BATTLE TOWER?\p" - .string "I'm having trouble deciding which\n" - .string "level I should challenge…\p" - .string "Can you decide for me, master?$" - -gText_082B9204:: @ 82B9204 - .string "Okay, so {STR_VAR_1} is better!\n" - .string "I'll go to the other level, then!\p" - .string "Just kidding!\n" - .string "I'll obey your teaching, master!\p" - .string "Thanks, master!\n" - .string "I hope you'll keep teaching me!$" - -gText_082B929C:: @ 82B929C - .string "A-H-O-Y!\n" - .string "And that spells ahoy, and it means hi!\p" - .string "I'm {STR_VAR_1}, the rappin' SAILOR\n" - .string "am I!\p" - .string "Your turn now, tell me a little about\n" - .string "yourself, give it a try!\p" - .string "Uh-huh, uh-huh!\n" - .string "{PLAYER}{KUN}'s your name,\l" - .string "and POKéMON's your game!\p" - .string "And you're at a delicate age\n" - .string "when all the world's your stage!\p" - .string "Anyway, I just want to say,\n" - .string "that you're the tenth TRAINER\l" - .string "I've spoken to today.\p" - .string "Let's make that a celebration!\n" - .string "Become my mentor for commemoration!$" - -gText_082B9438:: @ 82B9438 - .string "But!\n" - .string "You have to work with me!\p" - .string "Don't be such a tease!\n" - .string "Become my mentor, please!$" - -gText_082B9488:: @ 82B9488 - .string "That's it!\n" - .string "{PLAYER}, you've got the spirit!\p" - .string "So here's my first question\n" - .string "that begs your suggestion!\p" - .string "It's about the BATTLE TOWER,\n" - .string "and it hinges on my power!\p" - .string "Level 50 and Open Level there be,\n" - .string "which is the one that's good for me?$" - -gText_082B9564:: @ 82B9564 - .string "Okay, {STR_VAR_1} it is, you say!\n" - .string "I'll go and take it on my way!\p" - .string "If it's advice I ever need,\n" - .string "{PLAYER}, your word I'll always heed!$" - -gText_082B95D8:: @ 82B95D8 - .string "Say, hey, aren't you {PLAYER}?\n" - .string "What should I do? Talk to you?\l" - .string "Why not? I'm already talking to you!\p" - .string "{PLAYER}, are you surprised at me?\n" - .string "I'd better tell you who I happen to be!\p" - .string "{STR_VAR_1} is what you can call me.\n" - .string "The brightest star in guitardom,\l" - .string "that's me!\p" - .string "Are you receiving me?\n" - .string "You are receiving me!\p" - .string "My luck's at its best,\n" - .string "I'll hit you with a request!\p" - .string "{PLAYER}, let me be your underling!\n" - .string "I want you to teach me everything!$" - -gText_082B9763:: @ 82B9763 - .string "You're turning me down, then?\n" - .string "I'll just have to ask you again!\p" - .string "{PLAYER}, I beg to be your underling!\n" - .string "I need you to teach me everything!$" - -gText_082B97E5:: @ 82B97E5 - .string "Lucky, yeah, woohoo!\n" - .string "Should I pop a question to you?\p" - .string "Since we're near the BATTLE TOWER,\n" - .string "how about a question about its power?\p" - .string "Of the choices you see,\n" - .string "which is the right one for me?$" - -gText_082B989A:: @ 82B989A - .string "If {STR_VAR_1} is what you suggest,\n" - .string "it must be the very best!\p" - .string "Well, {PLAYER}, I have to roam free,\n" - .string "but don't you forget about me.\p" - .string "See you again, my smart friend!$" - -gText_082B992D:: @ 82B992D - .string "Oh, hi! You there!\n" - .string "Can I get you to massage my shoulder?\p" - .string "…Yes, there! That's it!\n" - .string "Ouch, ouch! Oooh, that feels great!\p" - .string "My name's {STR_VAR_1}.\n" - .string "I take karate training, but my body's\l" - .string "not built to take the abuse…\p" - .string "I decided I'll battle POKéMON and\n" - .string "toughen myself up.\p" - .string "You're {PLAYER}{KUN}, aren't you?\n" - .string "The POKéMON LEAGUE CHAMP?\p" - .string "Listen, can I get you to give me\n" - .string "advice?$" - -gText_082B9A84:: @ 82B9A84 - .string "Oh, why?\p" - .string "I won't be a big bother, I promise!\n" - .string "Please?$" - -gText_082B9AB9:: @ 82B9AB9 - .string "Thank you. Mighty good of you!\n" - .string "…Cough! Cough!\p" - .string "Oogh, I have to toughen up quick…\p" - .string "I'll be heading off to the BATTLE TOWER\n" - .string "right away, but what would be better\l" - .string "for me? Level 50 or Open Level?$" - -gText_082B9B76:: @ 82B9B76 - .string "Hm, all right. That's {STR_VAR_1}.\n" - .string "I'll go there right away.\p" - .string "I hope I can keep hitting you up for\n" - .string "help--after all, you're my mentor!$" - -gText_082B9BF2:: @ 82B9BF2 - .string "Er… Um…\n" - .string "{PLAYER}{KUN}…?\p" - .string "Please, don't look at me that way.\n" - .string "You're making me all self-conscious.\p" - .string "I… I'm {STR_VAR_1}.\p" - .string "I'm really embarrassed to say this,\n" - .string "but I explore ancient ruins and such.\p" - .string "I'm even more embarrassed to admit\n" - .string "I'm interested in the BATTLE FRONTIER.\p" - .string "{PLAYER}{KUN}, you have a reputation as\n" - .string "a tough TRAINER…\p" - .string "It's hard for me to say this,\n" - .string "but I want to ask something.\p" - .string "Could you become my teacher and\n" - .string "give me advice?$" - -gText_082B9D83:: @ 82B9D83 - .string "Please don't brush me off like this!\n" - .string "I can't live with the humiliation.\p" - .string "Please become my teacher!\n" - .string "I need your advice!$" - -gText_082B9DF9:: @ 82B9DF9 - .string "Th-thank you…\p" - .string "But please don't look at me like that.\n" - .string "It makes me all flustered.\p" - .string "Please, answer me without looking\n" - .string "at my eyes.\p" - .string "At the BATTLE TOWER…\n" - .string "Which level should I attempt?$" - -gText_082B9EAA:: @ 82B9EAA - .string "Oh… Okay!\n" - .string "I'll try my hand at that.\p" - .string "I hope I can make a valiant challenge\n" - .string "without getting all flustered…\p" - .string "Thank you, {PLAYER}{KUN}.\n" - .string "If we meet again, I hope you will be\l" - .string "as helpful.$" - -gText_082B9F55:: @ 82B9F55 - .string "Hm? You appear to be {PLAYER}{KUN}…\n" - .string "But are you really real?\p" - .string "You may call me {STR_VAR_1}.\p" - .string "I have been toying with the idea of\n" - .string "apprenticing under a strong TRAINER.\p" - .string "So, I must say I'm lucky you came along!\n" - .string "…You really are {PLAYER}{KUN}, yes?\p" - .string "No, no, if you are real, it's fine.\n" - .string "I merely want you to recognize me\l" - .string "as your apprentice.$" - -gText_082BA084:: @ 82BA084 - .string "Oh?\n" - .string "But what would compel you to refuse?\p" - .string "I apologize for being skeptical about\n" - .string "your identity.\p" - .string "Please accept my apology and\n" - .string "accept me as your apprentice.$" - -gText_082BA11D:: @ 82BA11D - .string "You really are accepting me?\n" - .string "I don't wish to celebrate prematurely.\p" - .string "If it is true, I apologize.\n" - .string "But now, I need your advice.\p" - .string "If I were to enter the BATTLE TOWER,\n" - .string "what would be worthy of me?\l" - .string "Level 50 or Open Level?$" - -gText_082BA1F3:: @ 82BA1F3 - .string "{STR_VAR_1}?\n" - .string "Are you certain?\p" - .string "I see. If that's the case, that's fine.\n" - .string "I thank you for your time.\p" - .string "I realize I can annoy, but it delights\n" - .string "me that you have accepted me.\p" - .string "Let us meet again!$" - -gText_082BA2A3:: @ 82BA2A3 - .string "Sigh… Sob…\n" - .string "Oh, {PLAYER}!\p" - .string "I'm all tangled up in a dilemma\n" - .string "that I can't decide.\p" - .string "I can't decide what I should make\n" - .string "my {STR_VAR_1} hold.\p" - .string "Please tell me, {PLAYER}.\n" - .string "What item should I make it hold?$" - -gText_082BA34E:: @ 82BA34E - .string "Oh, really? I shouldn't make\n" - .string "my {STR_VAR_1} hold anything?$" - -gText_082BA380:: @ 82BA380 - .string "Oh, okay! I'm delighted it's settled!\n" - .string "Awesome! Wicked! Awoooh!\p" - .string "Thank you so much!$" - -gText_082BA3D2:: @ 82BA3D2 - .string "Oh, I'm so glad…\n" - .string "I think I have that {STR_VAR_1}, too.\p" - .string "I'm delighted it's settled!\n" - .string "Awesome! Wicked! Awoooh!\p" - .string "Thank you so much!$" - -gText_082BA448:: @ 82BA448 - .string "Waaaah! Please don't be mean!\p" - .string "That item {STR_VAR_1} was already\n" - .string "recommended to me before, sob…\p" - .string "Or do you mean I shouldn't make\n" - .string "my {STR_VAR_2} hold anything?$" - -gText_082BA4D3:: @ 82BA4D3 - .string "Yay! It's {PLAYER}!\n" - .string "Great! I wanted to ask you something!\p" - .string "Do you make your POKéMON hold items?\n" - .string "I want to make mine hold items, but…\p" - .string "What item would be good for\n" - .string "{STR_VAR_1} to hold?\p" - .string "What do you think?$" - -gText_082BA58C:: @ 82BA58C - .string "Huh? You mean my {STR_VAR_1} doesn't\n" - .string "have to hold anything?$" - -gText_082BA5BF:: @ 82BA5BF - .string "Oh, I get it! I'll do that!\n" - .string "Thanks for teaching me!$" - -gText_082BA5F3:: @ 82BA5F3 - .string "Oh, wow! One {STR_VAR_1}, huh?\n" - .string "Okay, I'll do that!\p" - .string "Thanks for teaching me!$" - -gText_082BA635:: @ 82BA635 - .string "Oh, uh, no, that's not what I meant.\n" - .string "I want to know about a different item\l" - .string "than the ones I already know.\p" - .string "Or do you mean that my POKéMON doesn't\n" - .string "have to hold anything this time?$" - -gText_082BA6E6:: @ 82BA6E6 - .string "{PLAYER}, hello!\n" - .string "It's about my {STR_VAR_1}…\p" - .string "I want to make it hold a good item.\n" - .string "What would be good for it?$" - -gText_082BA742:: @ 82BA742 - .string "Oh, then my {STR_VAR_1} doesn't have\n" - .string "to hold anything?$" - -gText_082BA770:: @ 82BA770 - .string "Okay, I got it!\n" - .string "See you again!$" - -gText_082BA78F:: @ 82BA78F - .string "Oh, the item {STR_VAR_1}?\n" - .string "Understood!\p" - .string "I'll do my best to find one!\n" - .string "See you again!$" - -gText_082BA7D8:: @ 82BA7D8 - .string "Somebody taught me about\n" - .string "the {STR_VAR_1} already.\p" - .string "I want my POKéMON to hold a different\n" - .string "kind of item.\p" - .string "Or do you think {STR_VAR_2} doesn't\n" - .string "have to hold anything?$" - -gText_082BA867:: @ 82BA867 - .string "Hello, {PLAYER}…\n" - .string "I'm sorry to disturb you, but I have\l" - .string "something else I wanted to ask you.\p" - .string "I don't think I'm good enough to win\n" - .string "matches on my own, so I'm thinking of\l" - .string "making my {STR_VAR_1} hold an item.\p" - .string "But I don't know what would be good.\p" - .string "{PLAYER}, please, could you decide\n" - .string "for me?$" - -gText_082BA96B:: @ 82BA96B - .string "A POKéMON belonging to someone like me\n" - .string "would be better off without an item?$" - -gText_082BA9B7:: @ 82BA9B7 - .string "I understand…\n" - .string "You're saying I shouldn't rely on items.\l" - .string "I'll do my best not to!\p" - .string "Thank you very much!$" - -gText_082BAA1B:: @ 82BAA1B - .string "The item {STR_VAR_1}, okay.\n" - .string "I'm not sure if I can get one…\l" - .string "No! I'll do my best to get it.\p" - .string "Thank you very much!$" - -gText_082BAA81:: @ 82BAA81 - .string "Oh, but…\n" - .string "I think I've heard about that before…\p" - .string "Is it maybe because I haven't handled\n" - .string "the item {STR_VAR_1} very well?\p" - .string "Or do you mean I shouldn't make\n" - .string "my {STR_VAR_2} hold anything?$" - -gText_082BAB22:: @ 82BAB22 - .string "Oh, {PLAYER}{KUN}.\n" - .string "There's something I wanted to ask you.\p" - .string "You know how you decided which\n" - .string "POKéMON I should have for me?\p" - .string "But I never asked you what item\n" - .string "it should be holding.\p" - .string "Since you already gave me advice,\n" - .string "how about seeing this to the end?\p" - .string "What would be good? I want to make\n" - .string "my {STR_VAR_1} hold something.$" - -gText_082BAC43:: @ 82BAC43 - .string "Oh! So my {STR_VAR_1} should do\n" - .string "the best it can empty-handed?$" - -gText_082BAC78:: @ 82BAC78 - .string "If you think that's best, I'll do that.\p" - .string "Knowing that you made the decision,\n" - .string "{PLAYER}{KUN}, I won't be so upset if\l" - .string "I lose.\p" - .string "Okay, I'll look to you for advice again.\n" - .string "Bye!$" - -gText_082BAD17:: @ 82BAD17 - .string "The item {STR_VAR_1}, huh?\n" - .string "Not bad. I'll use it!\p" - .string "Knowing that you made the decision,\n" - .string "{PLAYER}{KUN}, I won't be so upset if\l" - .string "I lose.\p" - .string "Okay, I'll look to you for advice again.\n" - .string "Bye!$" - -gText_082BADB6:: @ 82BADB6 - .string "Huh? What are you saying?\n" - .string "You told me about the {STR_VAR_1}\l" - .string "already before.\p" - .string "Or do you mean my {STR_VAR_2} should\n" - .string "do the best it can empty-handed?$" - -gText_082BAE36:: @ 82BAE36 - .string "Yo, {PLAYER}{KUN}!\p" - .string "We're both busy, but we seem to run\n" - .string "into each other often anyway!\p" - .string "Today I have to do some walking,\n" - .string "cleaning, and brushing.\p" - .string "I haven't even had the time to buy\n" - .string "my precious {STR_VAR_1} anything.\p" - .string "I don't have any time, so how about\n" - .string "giving me advice on what I should make\l" - .string "my {STR_VAR_1} hold?$" - -gText_082BAF4E:: @ 82BAF4E - .string "Oh, so me being a busy guy, you say\n" - .string "my {STR_VAR_1} doesn't need anything?$" - -gText_082BAF8F:: @ 82BAF8F - .string "Okay, gotcha.\n" - .string "I won't need any time for that.\p" - .string "Thanks today!\n" - .string "See you around!$" - -gText_082BAFDB:: @ 82BAFDB - .string "Okay, gotcha.\n" - .string "I'll find time somehow and find\l" - .string "that {STR_VAR_1} you recommended.\p" - .string "I'm glad I met a good mentor in you.\n" - .string "Thanks! See you around!$" - -gText_082BB05F:: @ 82BB05F - .string "Huh? I already know about\n" - .string "that {STR_VAR_1}.\p" - .string "Oh, right, I get it.\n" - .string "So me being a busy guy, you say\l" - .string "my {STR_VAR_2} doesn't need anything?$" - -gText_082BB0D4:: @ 82BB0D4 - .string "Hiya, {PLAYER}! It's me!\n" - .string "I need to tap your mind again today.\l" - .string "Please, I need your advice!\p" - .string "Drum roll, please!\n" - .string "The question I have is…\p" - .string "If I want to make my {STR_VAR_1} hold\n" - .string "an item, what should it be?$" - -gText_082BB18C:: @ 82BB18C - .string "Is that right? My {STR_VAR_1} doesn't\n" - .string "need to hold an item, you're saying.$" - -gText_082BB1CE:: @ 82BB1CE - .string "Okay, that's what I'll do!\p" - .string "I guess that's about all I wanted\n" - .string "to ask you today.\p" - .string "Let's meet here again, okay?\n" - .string "Thanks!$" - -gText_082BB242:: @ 82BB242 - .string "Uh-huh! One {STR_VAR_1}.\n" - .string "What a cool choice!\l" - .string "I'll definitely try that!\p" - .string "I guess that's about all I wanted\n" - .string "to ask you today.\p" - .string "Let's meet here again, okay?\n" - .string "Thanks!$" - -gText_082BB2D9:: @ 82BB2D9 - .string "Ahahah! That's silly!\n" - .string "You already told me about that\l" - .string "{STR_VAR_1} before!\p" - .string "Are you feeling okay, {PLAYER}?\p" - .string "Oh, wait! My {STR_VAR_2} doesn't\n" - .string "need to hold an item, you're saying.$" - -gText_082BB370:: @ 82BB370 - .string "Hello, {PLAYER}. I hope you've been\n" - .string "keeping well.\p" - .string "May I approach you for advice?\p" - .string "In a recent battle, my opponent\n" - .string "seemed to have given his POKéMON\l" - .string "an item to hold.\p" - .string "As a result, I was defeated…\p" - .string "I don't wish to be left behind.\n" - .string "I would like to make my {STR_VAR_1}\l" - .string "hold an item, too.\p" - .string "It would please me if you could decide\n" - .string "what would be right for my POKéMON…$" - -gText_082BB4C3:: @ 82BB4C3 - .string "In other words… My POKéMON has\n" - .string "no need to hold an item?$" - -gText_082BB4FB:: @ 82BB4FB - .string "I understand clearly now!\n" - .string "I will keep trying like this.\p" - .string "Thank you, {PLAYER}.\n" - .string "I hope I can count on you again.\l" - .string "Please take care!$" - -gText_082BB575:: @ 82BB575 - .string "One {STR_VAR_1} it is!\n" - .string "I will order it right away.\p" - .string "Thank you, {PLAYER}.\n" - .string "I hope I can count on you again.\l" - .string "Please take care!$" - -gText_082BB5E1:: @ 82BB5E1 - .string "You've already told me about that,\n" - .string "and I already have it.\p" - .string "Or are you saying… My POKéMON has\n" - .string "no need to hold an item?$" - -gText_082BB656:: @ 82BB656 - .string "Eek! {PLAYER}!\n" - .string "I… I'm overjoyed to see you again!\p" - .string "Oh-oh-oh! There's something I just\n" - .string "had to ask you, {PLAYER}!\p" - .string "Please decide what my {STR_VAR_1}\n" - .string "should be holding!$" - -gText_082BB6E5:: @ 82BB6E5 - .string "Oh, wow! I didn't expect that answer!\n" - .string "So, a hold item isn't necessary?$" - -gText_082BB72C:: @ 82BB72C - .string "Perfectly understood!\n" - .string "I'll keep at this without an item!\p" - .string "I hope you'll be willing to teach me\n" - .string "some more another time.$" - -gText_082BB7A2:: @ 82BB7A2 - .string "{STR_VAR_1}! I'll use that!\p" - .string "Um… Could it be, {PLAYER}, you also\n" - .string "make your POKéMON hold that item?\p" - .string "I'll be sure to get it!\n" - .string "I hope you'll be willing to teach me\l" - .string "some more another time.$" - -gText_082BB84A:: @ 82BB84A - .string "Oh? You recommended that\n" - .string "{STR_VAR_1} before, too.\p" - .string "Or is it the best thing to hold?\n" - .string "Or do you mean that my {STR_VAR_2}\l" - .string "doesn't need anything to hold?$" - -gText_082BB8CD:: @ 82BB8CD - .string "Hola!\n" - .string "My maestro, {PLAYER}{KUN}!\p" - .string "I want to hit you up for advice on\n" - .string "POKéMON tools.\p" - .string "What do you think would be good for\n" - .string "my {STR_VAR_1} to hold?\p" - .string "Don't be shy now.\n" - .string "Let's blurt it out!$" - -gText_082BB970:: @ 82BB970 - .string "Oh? So, you're saying my {STR_VAR_1}\n" - .string "can win without holding any item?$" - -gText_082BB9AE:: @ 82BB9AE - .string "Si, bueno!\n" - .string "I'll give it my best shot, like, slam!\p" - .string "All right, thanks, as always!\n" - .string "Adios!$" - -gText_082BBA05:: @ 82BBA05 - .string "Uh-huh, that's one {STR_VAR_1}?\n" - .string "Si, bueno!\l" - .string "I'll go find me one, like, bam!\p" - .string "All right, thanks, as always!\n" - .string "Adios!$" - -gText_082BBA6C:: @ 82BBA6C - .string "No, no! You already told me about\n" - .string "that {STR_VAR_1} thing before.\p" - .string "Oh, now wait just one minute here…\n" - .string "So, you're saying my {STR_VAR_2}\l" - .string "can win without holding any item?$" - -gText_082BBB01:: @ 82BBB01 - .string "{PLAYER}{KUN}, something unbelievable\n" - .string "has happened!\p" - .string "I woke up this morning, and my POKéMON\n" - .string "had 10 NUGGETS!\p" - .string "Of course I'm lying!\n" - .string "Wahahaha!\p" - .string "This is no lie, though.\n" - .string "I'm not very good at thinking about\l" - .string "what items POKéMON should hold.\p" - .string "So, how about deciding for me what\n" - .string "my {STR_VAR_1} should hold, master?$" - -gText_082BBC1C:: @ 82BBC1C - .string "What's that mean?\n" - .string "Don't make it hold anything?$" - -gText_082BBC4B:: @ 82BBC4B - .string "Okay, so it shouldn't hold anything.\n" - .string "Then, I'd better get something for it!\p" - .string "Just kidding!\n" - .string "I'll obey your teaching, master!\p" - .string "Thanks, master!\n" - .string "I hope you'll keep teaching me!$" - -gText_082BBCF6:: @ 82BBCF6 - .string "Okay, so it's one {STR_VAR_1}!\n" - .string "I'll make it hold anything but that!\p" - .string "Just kidding!\n" - .string "I'll obey your teaching, master!\p" - .string "Thanks, master!\n" - .string "I hope you'll keep teaching me!$" - -gText_082BBD90:: @ 82BBD90 - .string "Um, you told me about that before,\n" - .string "didn't you?\p" - .string "Isn't there something else?\p" - .string "Or do you mean, don't make\n" - .string "my {STR_VAR_2} hold anything?$" - -gText_082BBE0B:: @ 82BBE0B - .string "A-H-O-Y!\n" - .string "And that spells ahoy!\p" - .string "The rappin' SAILOR am I!\n" - .string "I present to you a question\l" - .string "that's pretty fly!\p" - .string "It's an item question\n" - .string "that begs your suggestion!\p" - .string "My {STR_VAR_1} needs an item to hold,\n" - .string "What should it be, if I may be bold?$" - -gText_082BBEE5:: @ 82BBEE5 - .string "Is that right?\n" - .string "My {STR_VAR_1} doesn't need to be\l" - .string "holding anything tight?$" - -gText_082BBF25:: @ 82BBF25 - .string "Okay, I hear you, sure I do!\n" - .string "My POKéMON will go empty-handed, too!\p" - .string "If it's advice I ever need,\n" - .string "{PLAYER}, your word I'll always heed!$" - -gText_082BBFA4:: @ 82BBFA4 - .string "Okay, one {STR_VAR_1},\n" - .string "that's what I'll use.\l" - .string "I was right to make you choose!\p" - .string "If it's advice I ever need,\n" - .string "{PLAYER}, your word I'll always heed!$" - -gText_082BC024:: @ 82BC024 - .string "Okay, one {STR_VAR_1}, you say?\n" - .string "You told me that the other day.\l" - .string "I need a new idea, a brand new way.\p" - .string "Or, what, is that right?\n" - .string "My POKéMON doesn't need to hold\l" - .string "anything tight?$" - -gText_082BC0C8:: @ 82BC0C8 - .string "Say, hey, {PLAYER}!\n" - .string "I found you again today!\p" - .string "What should I do? Get your advice?\n" - .string "Why not? I'm already talking to you!\p" - .string "{PLAYER}, are you getting sick of me?\n" - .string "Nah, no way, that can't be.\p" - .string "Will you hear me out?\n" - .string "I'm looking for advice--that's what\l" - .string "I'm talking about.\p" - .string "It's about a hold item for\n" - .string "my {STR_VAR_1} that'd be good.\l" - .string "My indecision is making me brood.$" - -gText_082BC213:: @ 82BC213 - .string "My {STR_VAR_1} needs nothing?\n" - .string "Doesn't need to hold anything?$" - -gText_082BC247:: @ 82BC247 - .string "If holding nothing is the best,\n" - .string "I'll do as you suggest!\p" - .string "Well, {PLAYER}, I have to roam free,\n" - .string "but don't you forget about me.\p" - .string "See you again, my smart friend!$" - -gText_082BC2DD:: @ 82BC2DD - .string "If holding that {STR_VAR_1} is\n" - .string "the best, I'll do as you suggest!\p" - .string "Well, {PLAYER}, I have to roam free,\n" - .string "but don't you forget about me.\p" - .string "See you again, my smart friend!$" - -gText_082BC373:: @ 82BC373 - .string "Haven't I heard about that\n" - .string "{STR_VAR_1} before?\l" - .string "I'm certain I have, that's for sure!\p" - .string "I need a new something!\n" - .string "Or, my {STR_VAR_2} needs nothing?\l" - .string "Doesn't need to hold anything?$" - -gText_082BC40E:: @ 82BC40E - .string "Gwah! Ouch! {PLAYER}{KUN}, my arm's broken!\n" - .string "Don't touch it, please!\p" - .string "I must've broken it while I was trying\n" - .string "out different hold items with my posse\l" - .string "of POKéMON.\p" - .string "So, things being this way,\n" - .string "I need you to decide for me.\p" - .string "{PLAYER}{KUN}, what do you think would be\n" - .string "good for my {STR_VAR_1} to hold?$" - -gText_082BC514:: @ 82BC514 - .string "Ouch…\p" - .string "So your suggestion is my {STR_VAR_1}\n" - .string "doesn't have to hold anything?$" - -gText_082BC555:: @ 82BC555 - .string "Hm, all right. That would be easier\n" - .string "for me, the way things are now.\p" - .string "I hope I can keep hitting you up\n" - .string "for help like this.$" - -gText_082BC5CE:: @ 82BC5CE - .string "Hm, all right. That's one {STR_VAR_1}.\n" - .string "My POKéMON's arm is fine, so I'll make\l" - .string "it hold that item right away.\p" - .string "I hope I can keep hitting you up\n" - .string "for help like this.$" - -gText_082BC666:: @ 82BC666 - .string "No, no, you told me about that\n" - .string "{STR_VAR_1} before, remember?\p" - .string "How about telling me something\n" - .string "even better?\p" - .string "Oh, wait a second.\n" - .string "So your suggestion is my {STR_VAR_2}\l" - .string "doesn't have to hold anything?$" - -gText_082BC714:: @ 82BC714 - .string "Er… Um…\n" - .string "{PLAYER}{KUN}…\p" - .string "Please, don't look at me that way.\n" - .string "My POKéMON don't have anything.\p" - .string "I… I'm really embarrassed about this,\n" - .string "but I really need your advice.\p" - .string "I can't decide what hold item would\n" - .string "make my {STR_VAR_1} strong.\p" - .string "{PLAYER}{KUN}, what do you think would\n" - .string "be good?$" - -gText_082BC808:: @ 82BC808 - .string "Oh… Then, you think it would be better\n" - .string "if my {STR_VAR_1} didn't have an item?$" - -gText_082BC84D:: @ 82BC84D - .string "Oh… Okay!\n" - .string "I'll go without an item.\p" - .string "This is nerve-racking, though.\n" - .string "Wouldn't it be too cool?\p" - .string "Thank you, {PLAYER}{KUN}.\n" - .string "If we meet again, I hope you will be\l" - .string "as helpful.$" - -gText_082BC8EA:: @ 82BC8EA - .string "Oh… Okay!\n" - .string "I'll go with that {STR_VAR_1}.\p" - .string "This is nerve-racking, though.\n" - .string "Wouldn't it be too cool?\p" - .string "Thank you, {PLAYER}{KUN}.\n" - .string "If we meet again, I hope you will be\l" - .string "as helpful.$" - -gText_082BC984:: @ 82BC984 - .string "B-but I already heard about that.\p" - .string "Please don't brush me off like this!\n" - .string "I can't live with the humiliation.\p" - .string "Oh… Am I jumping to conclusions?\n" - .string "Do you think it would be better if\l" - .string "my {STR_VAR_2} didn't have an item?$" - -gText_082BCA4D:: @ 82BCA4D - .string "Hm? You appear to be {PLAYER}{KUN}…\n" - .string "But are you really?\l" - .string "Perhaps you're a twin?\p" - .string "Oh, no, no, no, don't worry!\n" - .string "If you really are {PLAYER}, please\l" - .string "forget about my rudeness.\p" - .string "What I would like is some more of\n" - .string "your fine advice.\p" - .string "I have here my {STR_VAR_1} that I wish\n" - .string "to make hold a convenient item.\p" - .string "What would be worthy of it?$" - -gText_082BCB75:: @ 82BCB75 - .string "It's better if it held nothing?\n" - .string "Are you certain?$" - -gText_082BCBA6:: @ 82BCBA6 - .string "I see. If that's the case, that's fine.\n" - .string "I thank you for your time.\p" - .string "Let us meet again!$" - -gText_082BCBFC:: @ 82BCBFC - .string "One {STR_VAR_1}?\n" - .string "Are you certain?\p" - .string "I see. If that's the case, that's fine.\n" - .string "I thank you for your time.\p" - .string "I do hope my POKéMON will be able to\n" - .string "put it to good use.\p" - .string "Let us meet again!$" - -gText_082BCCA4:: @ 82BCCA4 - .string "No, no, wait a minute.\n" - .string "I believe you taught me that before.\p" - .string "I would like you to recommend\n" - .string "something different this time.\p" - .string "Perhaps you're suggesting that\n" - .string "my {STR_VAR_2} should hold nothing?\l" - .string "Are you certain?$" - -gText_082BCD68:: @ 82BCD68 - .string "Waah, {PLAYER}!\n" - .string "I have a dilemma, sob…\p" - .string "I want to begin battling other people,\n" - .string "but I don't know what to do.\p" - .string "How should I line up my POKéMON\n" - .string "so they'll be at their strongest?\p" - .string "Please tell me, {PLAYER}.\n" - .string "If you were me, which of these POKéMON\l" - .string "would you send out first?$" - -gText_082BCE64:: @ 82BCE64 - .string "My {STR_VAR_1} should go first?\n" - .string "Waaaaah!\p" - .string "Oh! I'm so sorry!\n" - .string "You've made me happy by choosing\l" - .string "my first POKéMON, and it's made me cry…\p" - .string "Thank you so much!$" - -gText_082BCEF2:: @ 82BCEF2 - .string "Yay! It's {PLAYER}!\n" - .string "Great! I wanted to ask you something!\p" - .string "Um, of my POKéMON, which do you\n" - .string "think should go out first?$" - -gText_082BCF61:: @ 82BCF61 - .string "My {STR_VAR_1}? That's true.\n" - .string "Okay, I'll do that!\p" - .string "Thanks for teaching me!$" - -gText_082BCFA1:: @ 82BCFA1 - .string "{PLAYER}, hello!\p" - .string "I think, in a battle, it's very important\n" - .string "which POKéMON comes out first.\p" - .string "Out of the POKéMON that I have,\n" - .string "which would be good to send out first?$" - -gText_082BD03C:: @ 82BD03C - .string "My {STR_VAR_1} goes first?\n" - .string "Okay, I got it!\p" - .string "See you again!$" - -gText_082BD06D:: @ 82BD06D - .string "Hello, {PLAYER}…\n" - .string "I'm sorry to disturb you again with\l" - .string "another question.\p" - .string "I have so little confidence, I don't\n" - .string "know what I'd do without you, {PLAYER}.\p" - .string "It may be a waste of time for me to\n" - .string "even worry about it, but I just can't\l" - .string "decide something…\p" - .string "Which of my POKéMON should I send\n" - .string "out first in a battle?$" - -gText_082BD18A:: @ 82BD18A - .string "My {STR_VAR_1}?\n" - .string "Understood!\p" - .string "I can't believe that you would bother\n" - .string "to answer my questions so often!\p" - .string "I'm so grateful that you would even\n" - .string "speak with me… Thank you!$" - -gText_082BD222:: @ 82BD222 - .string "Oh, {PLAYER}{KUN}! It's me!\n" - .string "I'm so glad to see you because I have\l" - .string "this little problem.\p" - .string "I can't decide how my POKéMON should\n" - .string "be lined up. Could you decide for me?\p" - .string "Oh, you don't need to decide the whole\n" - .string "party right now.\p" - .string "How about deciding just the first\n" - .string "POKéMON for me?$" - -gText_082BD325:: @ 82BD325 - .string "My {STR_VAR_1}? That's great!\p" - .string "Knowing that you made the decision,\n" - .string "{PLAYER}{KUN}, I won't be so upset if\l" - .string "I lose.\p" - .string "Okay, I'll look to you for advice again.\n" - .string "Bye!$" - -gText_082BD3B1:: @ 82BD3B1 - .string "Hi, my teacher {PLAYER}{KUN}!\n" - .string "I'm busy again today!\p" - .string "I have to do some cycling, shopping,\n" - .string "and humming.\p" - .string "I haven't even had the time to decide\n" - .string "how to line up my POKéMON team.\p" - .string "So, how about checking out my team?\n" - .string "Which one should go first?$" - -gText_082BD493:: @ 82BD493 - .string "Okay, gotcha.\n" - .string "I have enough time at least to put\l" - .string "my {STR_VAR_1} at the head of the line!\p" - .string "Whoops, my girlfriend's waiting!\n" - .string "Thanks! See you around!$" - -gText_082BD51C:: @ 82BD51C - .string "Yoohoo! Hiya, {PLAYER}!\n" - .string "You always walk around looking tough!\p" - .string "Listen, I need something from you\n" - .string "again! It's the usual thing!\p" - .string "Drum roll, please!\n" - .string "The question I have is about my team.\p" - .string "Which POKéMON of mine should be first\n" - .string "to go out in a battle?$" - -gText_082BD609:: @ 82BD609 - .string "Hmhm!\n" - .string "My {STR_VAR_1}, you say!\l" - .string "Thanks for a most cool answer!\p" - .string "I guess that's about all I wanted\n" - .string "to ask you today.\p" - .string "Let's meet here again, okay?\n" - .string "Thanks!$" - -gText_082BD697:: @ 82BD697 - .string "Thank you so much for stopping to\n" - .string "chat with me, {PLAYER}.\p" - .string "I know I'm taking advantage of your\n" - .string "kindness, but may I ask for advice?\p" - .string "I would like you to decide on the order\n" - .string "of my POKéMON team.\p" - .string "It would please me if you could decide\n" - .string "which POKéMON should come first.$" - -gText_082BD797:: @ 82BD797 - .string "My {STR_VAR_1} it is!\n" - .string "I will put it first right away!\p" - .string "Thank you, {PLAYER}.\n" - .string "I hope I can count on you again.\l" - .string "Please take care!$" - -gText_082BD806:: @ 82BD806 - .string "Eek! {PLAYER}!\n" - .string "I… I'm overjoyed to see you again!\p" - .string "My POKéMON have become much\n" - .string "stronger!\p" - .string "But I don't always win. It seems to\n" - .string "depend on which POKéMON goes first.\p" - .string "{PLAYER}, please, I need your help!\p" - .string "Please decide which of my POKéMON\n" - .string "should go out first!$" - -gText_082BD8F5:: @ 82BD8F5 - .string "Sigh… I'm overwhelmed with happiness…\p" - .string "It's like a dream having you decide\n" - .string "for me, {PLAYER}.\p" - .string "But perfectly understood!\n" - .string "I will go with my {STR_VAR_1} first!\p" - .string "I hope you'll be willing to teach me\n" - .string "some more another time.$" - -gText_082BD9BE:: @ 82BD9BE - .string "Hello, hello!\n" - .string "My mentor, {PLAYER}{KUN}!\l" - .string "Hit me with your sage advice today!\p" - .string "You see, I pulled together a team of\n" - .string "three POKéMON. So far so good.\p" - .string "But the team's battling order's not\n" - .string "settled yet.\p" - .string "This is where you come in, {PLAYER}{KUN}!\n" - .string "You decide which POKéMON leads off!\p" - .string "Don't be shy now.\n" - .string "Let's blurt it out!$" - -gText_082BDAE1:: @ 82BDAE1 - .string "Uh-huh, my {STR_VAR_1} leads off!\n" - .string "OK, A-OK!\l" - .string "I'll reorder the lineup, like, wham!\p" - .string "All right, thanks, as always!\n" - .string "Adios!$" - -gText_082BDB4E:: @ 82BDB4E - .string "{PLAYER}{KUN}, listen!\n" - .string "It's a crisis!\p" - .string "My POKéMON, all three of them, go into\n" - .string "battle at once!\p" - .string "Of course that's impossible!\n" - .string "Wahahaha!\p" - .string "This is no lie, though.\n" - .string "I'm not very good at thinking about\l" - .string "how I should line up my POKéMON.\p" - .string "So, how about deciding for me which\n" - .string "POKéMON should go first, master?$" - -gText_082BDC6B:: @ 82BDC6B - .string "Okay, so it's my {STR_VAR_1} you chose?\n" - .string "I'll let any but that one go first!\p" - .string "Just kidding!\n" - .string "I'll obey your teaching, master!\p" - .string "Thanks, master!\n" - .string "I hope you'll keep teaching me!$" - -gText_082BDD0D:: @ 82BDD0D - .string "A-H-O-Y!\n" - .string "And that spells ahoy!\p" - .string "The rappin' SAILOR am I!\n" - .string "I present to you a question\l" - .string "that's pretty fly!\p" - .string "It's a team lineup question\n" - .string "that begs your suggestion!\p" - .string "Out of this lot, which should go first\n" - .string "as the first on the spot?$" - -gText_082BDDEC:: @ 82BDDEC - .string "Okay, I hear you, sure I do!\n" - .string "I'll switch them up, that I'll do!\p" - .string "If it's advice I ever need,\n" - .string "{PLAYER}, your word I'll always heed!$" - -gText_082BDE68:: @ 82BDE68 - .string "Yahoo, {PLAYER}!\n" - .string "How do you do?\p" - .string "What should I do? Go ahead and ask?\n" - .string "Uh-huh, I have something to ask!\l" - .string "Are you receiving me?\l" - .string "You are receiving me!\p" - .string "You have to decide, which of my\n" - .string "POKéMON is the first to ride!\l" - .string "Into battle, I mean to say.$" - -gText_082BDF4D:: @ 82BDF4D - .string "My {STR_VAR_1}? Yes!\n" - .string "That'll do, there's no distress!\p" - .string "Well, {PLAYER}, I have to roam free,\n" - .string "but don't you forget about me.\p" - .string "See you again, my smart friend!$" - -gText_082BDFD8:: @ 82BDFD8 - .string "…Oof…ooch… {PLAYER}{KUN}…\n" - .string "My stomach's hurting all of a sudden…\p" - .string "…It's getting better now…\p" - .string "I must've worried myself sick racking\n" - .string "my brains on how I should line up\l" - .string "my posse of POKéMON.\p" - .string "So, things being this way,\n" - .string "I need you to decide for me.\p" - .string "{PLAYER}{KUN}, which of my POKéMON should\n" - .string "go first? So I'd win, I mean.$" - -gText_082BE0FD:: @ 82BE0FD - .string "Hm, all right.\n" - .string "My {STR_VAR_1} goes first.\p" - .string "I'll fix the lineup like that after\n" - .string "I have my supper.\p" - .string "I hope I can keep hitting you up\n" - .string "for help like this.$" - -gText_082BE189:: @ 82BE189 - .string "Er… Um…\n" - .string "{PLAYER}{KUN}?\p" - .string "Please, don't look at me that way.\n" - .string "You're making me feel all flustered.\p" - .string "Um…\n" - .string "I really need your advice.\p" - .string "It makes me bashful to say this,\n" - .string "but I chose my 3-POKéMON team.\l" - .string "I can't decide on the order, though.\p" - .string "Which POKéMON should I send out first\n" - .string "so I at least look capable?$" - -gText_082BE2A5:: @ 82BE2A5 - .string "Oh… Okay!\n" - .string "I'll lead with my {STR_VAR_1}.\p" - .string "I hope I can do my best without\n" - .string "getting all flustered.\p" - .string "Thank you, {PLAYER}{KUN}.\n" - .string "If we meet again, I hope you will be\l" - .string "as helpful.$" - -gText_082BE33E:: @ 82BE33E - .string "Hm? You appear to be {PLAYER}{KUN}…\n" - .string "But are you really?\l" - .string "Perhaps you're a clever look-alike?\p" - .string "Oh, no, no, no, don't worry!\n" - .string "If you really are {PLAYER}, please\l" - .string "forget about my rudeness.\p" - .string "What I would like is your fine advice.\p" - .string "I have here my POKéMON team.\n" - .string "I would like you to tell me which one\l" - .string "should go first in a battle.$" - -gText_082BE46C:: @ 82BE46C - .string "My {STR_VAR_1}…\n" - .string "You aren't pulling my leg?\p" - .string "I see. If that's the case, that's fine.\n" - .string "I thank you for your time.\p" - .string "I am as you see, but I shall do\n" - .string "my best.\p" - .string "Let us meet again!$" - -gText_082BE50D:: @ 82BE50D - .string "Snivel…\n" - .string "Oh, {PLAYER}!\p" - .string "What perfect timing!\n" - .string "There's something I just can't decide…\p" - .string "I can't decide which POKéMON I should\n" - .string "be using.\p" - .string "I can't decide between the POKéMON\n" - .string "{STR_VAR_1} and {STR_VAR_2}…\p" - .string "{PLAYER}, which do you think will give\n" - .string "even me a chance at winning?$" - -gText_082BE5F5:: @ 82BE5F5 - .string "Snivel… I… I understand!\n" - .string "Oh! I'm so sorry!\l" - .string "You've made me so happy, I'm crying…\p" - .string "I'll do my best to catch one\n" - .string "{STR_VAR_1}!\p" - .string "Thank you so much!$" - -gText_082BE679:: @ 82BE679 - .string "Yay! It's {PLAYER}!\n" - .string "Yay, you came at the right time, too!\l" - .string "I need your advice again!\p" - .string "Um, I'm all mixed up--should I use\n" - .string "my {STR_VAR_1} or {STR_VAR_2}…\p" - .string "Which do you think I should raise,\n" - .string "{PLAYER}?$" - -gText_082BE71E:: @ 82BE71E - .string "Oh, so my {STR_VAR_1} is better!\n" - .string "Okay, I'll do that!\p" - .string "Thanks for teaching me!$" - -gText_082BE762:: @ 82BE762 - .string "{PLAYER}, hello!\n" - .string "I have a question I wanted to ask.\p" - .string "I'm in a dilemma over whether I should\n" - .string "raise one {STR_VAR_1} or {STR_VAR_2}.\p" - .string "Which POKéMON do you think will\n" - .string "be stronger?$" - -gText_082BE7F8:: @ 82BE7F8 - .string "{STR_VAR_1} is your choice?\n" - .string "Okay, I got it!\p" - .string "I'll go catch a strong {STR_VAR_1}\n" - .string "right away!\p" - .string "See you again!$" - -gText_082BE850:: @ 82BE850 - .string "Hello, {PLAYER}…\p" - .string "Um, you've probably already forgotten\n" - .string "about someone like me…\p" - .string "…But that doesn't matter if you\n" - .string "could give me advice…\p" - .string "I can't decide on the one kind of\n" - .string "POKéMON I should raise…\p" - .string "I've narrowed the field to the POKéMON\n" - .string "{STR_VAR_1} and {STR_VAR_2}, but that's\l" - .string "where I became stuck…\p" - .string "{PLAYER}, you probably don't want to\n" - .string "bother, but please decide for me.$" - -gText_082BE99C:: @ 82BE99C - .string "But will a wild {STR_VAR_1} even pay\n" - .string "attention to me?\p" - .string "I will try!\p" - .string "But will I even be able to catch one…\n" - .string "No! I'll do my best!\p" - .string "Thank you!$" - -gText_082BEA1B:: @ 82BEA1B - .string "Oh, {PLAYER}{KUN}! I'm so glad to see you!\n" - .string "I was about to go looking for you!\p" - .string "Can you decide what kind of POKéMON\n" - .string "I should use?\p" - .string "For instance…\n" - .string "How about the POKéMON {STR_VAR_1}\l" - .string "and {STR_VAR_2}?\p" - .string "Which one do you think would be\n" - .string "better?$" - -gText_082BEAE9:: @ 82BEAE9 - .string "{STR_VAR_1}? That's great!\p" - .string "Knowing that you made the decision,\n" - .string "{PLAYER}{KUN}, I won't be so upset if\l" - .string "I lose.\p" - .string "Okay, I'll look to you for advice again.\n" - .string "Bye!$" - -gText_082BEB72:: @ 82BEB72 - .string "If it isn't {PLAYER}{KUN}! How's it going?\n" - .string "I'm busy again as always!\p" - .string "I want to do good with POKéMON, too,\n" - .string "but I haven't been able to decide\l" - .string "which POKéMON I should use.\p" - .string "You know how {STR_VAR_1} look strong?\n" - .string "But {STR_VAR_2} are tough to ignore.\p" - .string "{PLAYER}{KUN}, give me some of your good\n" - .string "advice! Which one'd be good for me?$" - -gText_082BEC8E:: @ 82BEC8E - .string "Okay, gotcha.\n" - .string "I'll find time somehow and catch me\l" - .string "that {STR_VAR_1} you recommended.\p" - .string "I'm glad I met a good mentor in you.\n" - .string "Thanks! See you around!$" - -gText_082BED16:: @ 82BED16 - .string "Oh!\n" - .string "Yay, it's {PLAYER}!\p" - .string "I didn't waste any time boasting to\n" - .string "my friends about meeting you!\p" - .string "I need to tap your mind again today.\n" - .string "It's an easy one for you!\p" - .string "Drum roll, please!\n" - .string "The question I have is…\p" - .string "If I were to raise a POKéMON,\n" - .string "and the choices were one {STR_VAR_1}\l" - .string "or {STR_VAR_2}, which should it be?$" - -gText_082BEE29:: @ 82BEE29 - .string "Ahhh!\n" - .string "{STR_VAR_1}, you say!\l" - .string "Thanks for a most cool answer!\p" - .string "I guess that's about all I wanted\n" - .string "to ask you today.\p" - .string "Let's meet here again, okay?\n" - .string "Thanks!$" - -gText_082BEEB4:: @ 82BEEB4 - .string "Oh, is it you, {PLAYER}?\n" - .string "I'm delighted to see you again!\p" - .string "Ever since I became your apprentice,\n" - .string "my confidence has been blooming.\p" - .string "I think I'm ready to raise a POKéMON\n" - .string "of my own!\p" - .string "{PLAYER}, may I impose on you to choose\n" - .string "which POKéMON I should raise?\p" - .string "The choices are the POKéMON\n" - .string "{STR_VAR_1} or {STR_VAR_2}…\l" - .string "Which POKéMON is right for me?$" - -gText_082BEFE2:: @ 82BEFE2 - .string "One {STR_VAR_1} it is!\n" - .string "I will find one right away!\p" - .string "Thank you, {PLAYER}.\n" - .string "I hope I can count on you again.\l" - .string "Please take care!$" - -gText_082BF04E:: @ 82BF04E - .string "Eek! {PLAYER}! I met you again!\n" - .string "I… I'm overjoyed!\p" - .string "Oh-oh-oh, I know!\n" - .string "I shouldn't pass up this opportunity!\p" - .string "May I ask a huge favor, {PLAYER}?\n" - .string "Please choose a POKéMON for me!\p" - .string "Please decide which would be better,\n" - .string "{STR_VAR_1} or {STR_VAR_2}!$" - -gText_082BF11D:: @ 82BF11D - .string "Wow! You decided for me!\n" - .string "One {STR_VAR_1} is what I'll raise to\l" - .string "the best of my ability.\p" - .string "I hope you'll be willing to teach me\n" - .string "some more another time.$" - -gText_082BF1A8:: @ 82BF1A8 - .string "Hey, hey!\n" - .string "My mentor, {PLAYER}{KUN}!\p" - .string "Hello, I've been looking for you\n" - .string "for some more of your sage advice!\p" - .string "Which kind of POKéMON would be right\n" - .string "for me, one {STR_VAR_1} or {STR_VAR_2}?\p" - .string "Don't be shy now.\n" - .string "Let's blurt it out!$" - -gText_082BF268:: @ 82BF268 - .string "Uh-huh, one {STR_VAR_1} it is!\n" - .string "OK, A-OK!\l" - .string "I'll get one in a BALL, like, cram!\p" - .string "All right, thanks, as always!\n" - .string "Adios!$" - -gText_082BF2D1:: @ 82BF2D1 - .string "{PLAYER}{KUN}, listen! Big news!\n" - .string "I caught a mirage POKéMON!\p" - .string "Of course I'm lying!\n" - .string "Wahahaha!\p" - .string "This is no lie, though.\n" - .string "I'm not very good at catching\l" - .string "POKéMON.\p" - .string "So, how about deciding for me which\n" - .string "kind of POKéMON I should catch,\l" - .string "master?\p" - .string "Which would be better?\n" - .string "{STR_VAR_1} or {STR_VAR_2}?$" - -gText_082BF3CF:: @ 82BF3CF - .string "Okay, so it's {STR_VAR_1} you chose?\n" - .string "I'll grab the other kind, then!\p" - .string "Just kidding!\n" - .string "I'll obey your teaching, master!\p" - .string "Thanks, master!\n" - .string "I hope you'll keep teaching me!$" - -gText_082BF46A:: @ 82BF46A - .string "A-H-O-Y!\n" - .string "And that spells ahoy!\p" - .string "The rappin' SAILOR am I!\n" - .string "Surely you remember who am I?\p" - .string "Today, I have a POKéMON question\n" - .string "that begs your suggestion!\p" - .string "I have the choice between this\n" - .string "{STR_VAR_1} and {STR_VAR_2}, you see.\l" - .string "Which is the one to catch for me?$" - -gText_082BF551:: @ 82BF551 - .string "{STR_VAR_1}, you say, hey, hey!\n" - .string "I'll go get me one right away!\p" - .string "If it's advice I ever need,\n" - .string "{PLAYER}, your word I'll always heed!$" - -gText_082BF5C3:: @ 82BF5C3 - .string "Oh, wow, if it isn't {PLAYER}!\p" - .string "What should I do? Get your advice?\n" - .string "Why not? I'm already talking to you!\p" - .string "It's been a long time. Let me break\n" - .string "the ice. I'm also looking for advice!\l" - .string "Are you receiving me?\l" - .string "You are receiving me!\p" - .string "My POKéMON--which should I use?\n" - .string "It's either {STR_VAR_1} or {STR_VAR_2}.\l" - .string "Which do you choose?$" - -gText_082BF6E5:: @ 82BF6E5 - .string "If that {STR_VAR_1} is the best,\n" - .string "I'll do as you suggest!\p" - .string "Well, {PLAYER}, I have to roam free,\n" - .string "but don't you forget about me.\p" - .string "See you again, my smart friend!$" - -gText_082BF773:: @ 82BF773 - .string "Oh, hi, {PLAYER}{KUN}…\n" - .string "I have this horrible headache…\p" - .string "I must've worried too much about\n" - .string "the kind of POKéMON I should raise.\p" - .string "So, things being this way,\n" - .string "I need you to decide for me.\p" - .string "{PLAYER}{KUN}, if I had to choose between\n" - .string "the POKéMON {STR_VAR_1} and\l" - .string "{STR_VAR_2}, which should it be?$" - -gText_082BF869:: @ 82BF869 - .string "Hm, one {STR_VAR_1}, all right.\n" - .string "I'll go look for one when I get better.\p" - .string "I hope I can keep hitting you up\n" - .string "for help like this.$" - -gText_082BF8DD:: @ 82BF8DD - .string "Er… Um…\n" - .string "{PLAYER}{KUN}…?\p" - .string "Please, don't look at me that way.\n" - .string "I'm getting all flustered…\l" - .string "I… I need your advice.\p" - .string "I… I'm really embarrassed, but I can't\n" - .string "decide which POKéMON to use.\p" - .string "If the choices were {STR_VAR_1} or\n" - .string "{STR_VAR_2}, which would be better?$" - -gText_082BF9BA:: @ 82BF9BA - .string "Oh… Okay!\n" - .string "I'll do my best with one {STR_VAR_1}.\p" - .string "I hope I can do my best without\n" - .string "getting all flustered.\p" - .string "Thank you, {PLAYER}{KUN}.\n" - .string "If we meet again, I hope you will be\l" - .string "as helpful.$" - -gText_082BFA5A:: @ 82BFA5A - .string "Hm? You appear to be {PLAYER}{KUN}…\n" - .string "But are you really real?\p" - .string "No, no, if you are real, it's fine.\n" - .string "Incidentally, I would like to obtain\l" - .string "your advice.\p" - .string "It's about the POKéMON I am to use.\p" - .string "If the choices are the POKéMON\n" - .string "{STR_VAR_1} and {STR_VAR_2}, which is\l" - .string "more worthy of me?$" - -gText_082BFB4E:: @ 82BFB4E - .string "{STR_VAR_1}?\n" - .string "Are you certain?\p" - .string "I see. If that's the case, that's fine.\n" - .string "I thank you for your time.\p" - .string "I do hope it is something even I can\n" - .string "handle with aplomb.\p" - .string "Let us meet again!$" - -gText_082BFBF2:: @ 82BFBF2 - .string "Waaah! Oh, {PLAYER}!\n" - .string "Snivel… Hiccup…\p" - .string "I have a dilemma!\n" - .string "I can't decide on a move for\l" - .string "my {STR_VAR_1}…\p" - .string "Please, please, {PLAYER}.\n" - .string "Can you decide for me?\p" - .string "For my {STR_VAR_1}, which move would\n" - .string "be the better choice: {STR_VAR_2}\l" - .string "or {STR_VAR_3}?$" - -gText_082BFCAE:: @ 82BFCAE - .string "{STR_VAR_1}?\n" - .string "Waaaaah!\p" - .string "Oh! I'm so sorry, {PLAYER}!\n" - .string "You've made me so happy by deciding\l" - .string "the move, I'm crying…\p" - .string "Snivel…\n" - .string "Thank you so much!$" - -gText_082BFD26:: @ 82BFD26 - .string "Yay! Hi, {PLAYER}!\n" - .string "I need your advice again!\p" - .string "I want to teach my {STR_VAR_1}\n" - .string "a cool move.\p" - .string "I like either of the moves\n" - .string "{STR_VAR_2} or {STR_VAR_3}.\l" - .string "What's your recommendation?$" - -gText_082BFDB1:: @ 82BFDB1 - .string "{STR_VAR_1} is better? I guess so!\n" - .string "Okay, I'll go with that!\p" - .string "If we meet here again, please teach\n" - .string "me something else, teacher!$" - -gText_082BFE24:: @ 82BFE24 - .string "{PLAYER}, hello!\n" - .string "It's about my {STR_VAR_1}, but I'm\l" - .string "worried about its moves.\p" - .string "You see, it's the moves {STR_VAR_2}\n" - .string "and {STR_VAR_3}.\p" - .string "Which is stronger and better for\n" - .string "my {STR_VAR_1}?$" - -gText_082BFEAD:: @ 82BFEAD - .string "{STR_VAR_1} is your choice?\n" - .string "Okay, I got it!\p" - .string "I'll go teach {STR_VAR_1} to\n" - .string "my POKéMON right away!\p" - .string "See you again!$" - -gText_082BFF0A:: @ 82BFF0A - .string "Ohhh, {PLAYER}…\n" - .string "I'm hopeless, no, really!\p" - .string "I've decided to raise a POKéMON,\n" - .string "but now I can't even decide what\l" - .string "move I should let it learn…\p" - .string "I know that it doesn't mean anything\n" - .string "to you, {PLAYER}.\p" - .string "But it means a lot to me…\p" - .string "Please, {PLAYER}, could you choose\n" - .string "a move for my {STR_VAR_1}?\p" - .string "If you could even choose between\n" - .string "{STR_VAR_2} and {STR_VAR_3}…$" - -gText_082C0032:: @ 82C0032 - .string "I understand!\p" - .string "But will it even be willing to learn\n" - .string "{STR_VAR_1} for me…\l" - .string "No! I'll do my best!\p" - .string "Thank you!$" - -gText_082C0090:: @ 82C0090 - .string "Oh, {PLAYER}{KUN}!\n" - .string "I was just hoping to see you, too!\p" - .string "I was wondering what move would\n" - .string "be suitable for my {STR_VAR_1}.\p" - .string "I can't decide, so can you decide\n" - .string "for me instead?\p" - .string "For instance… How about the moves\n" - .string "{STR_VAR_2} and {STR_VAR_3}?\l" - .string "Which one would be better?$" - -gText_082C016E:: @ 82C016E - .string "{STR_VAR_1}? That's great!\p" - .string "Knowing that you made the decision,\n" - .string "{PLAYER}{KUN}, I won't be so upset if\l" - .string "I lose.\p" - .string "Okay, I'll look to you for advice again.\n" - .string "Bye!$" - -gText_082C01F7:: @ 82C01F7 - .string "How could things be this busy?\n" - .string "Hey, if it isn't {PLAYER}{KUN}!\l" - .string "How's it going?\p" - .string "Since I got up this morning, I've done\n" - .string "my jogging, swimming, and cooking!\p" - .string "You wouldn't believe how busy I am!\p" - .string "I can't even decide what move\n" - .string "my {STR_VAR_1} should learn!\p" - .string "{STR_VAR_2} looks good, huh?\n" - .string "But {STR_VAR_3}'s also decent.\p" - .string "{PLAYER}{KUN}, give me some of your good\n" - .string "advice! Which move'd be good for me?$" - -gText_082C034C:: @ 82C034C - .string "Okay, gotcha.\n" - .string "I'll make room in my schedule and\l" - .string "teach that move.\p" - .string "I'm glad I met a good mentor in you.\n" - .string "Thanks! See you around!$" - -gText_082C03CA:: @ 82C03CA - .string "Oh! Lucky!\n" - .string "I met you again, {PLAYER}!\l" - .string "I need to tap your mind again today.\p" - .string "Drum roll, please!\n" - .string "The question I have is…\p" - .string "For my {STR_VAR_1}, which is the move\n" - .string "best suited, {STR_VAR_2} or\l" - .string "{STR_VAR_3}?$" - -gText_082C046E:: @ 82C046E - .string "Ahhh!\n" - .string "{STR_VAR_1}, you say!\l" - .string "Thanks for a most cool answer!\p" - .string "I guess that's about all I wanted\n" - .string "to ask you today.\p" - .string "Let's meet here again, okay?\n" - .string "Thanks!$" - -gText_082C04F9:: @ 82C04F9 - .string "Oh, hello, {PLAYER}.\n" - .string "I trust you've been well?\p" - .string "I have to seek your advice again.\n" - .string "It's about my dearest {STR_VAR_1}.\p" - .string "What would be the ideal move for\n" - .string "my lovable {STR_VAR_1}?\l" - .string "{STR_VAR_2} or {STR_VAR_3}?$" - -gText_082C0598:: @ 82C0598 - .string "{STR_VAR_1} it is!\n" - .string "I will teach that right away!\p" - .string "Thank you, {PLAYER}.\n" - .string "I hope I can count on you again.\l" - .string "Please take care!$" - -gText_082C0602:: @ 82C0602 - .string "Eek! {PLAYER}! I met you again!\n" - .string "I… I'm overjoyed!\p" - .string "Whenever I'm in need, you're always\n" - .string "there for me, {PLAYER}!\p" - .string "Today, I want you to recommend\n" - .string "a move for me!\p" - .string "Please choose a move for\n" - .string "my {STR_VAR_1}!\p" - .string "Which move would be better,\n" - .string "{STR_VAR_2} or {STR_VAR_3}?$" - -gText_082C06D8:: @ 82C06D8 - .string "Oh-oh-oh! Thank you!\n" - .string "{STR_VAR_1} is it!\l" - .string "Perfectly understood!\p" - .string "I hope you'll be willing to teach me\n" - .string "some more another time.$" - -gText_082C074A:: @ 82C074A - .string "Hola, {PLAYER}{KUN}, bueno!\n" - .string "I'm hoping for some more of\l" - .string "your sage advice today!\p" - .string "What would be the best move for\n" - .string "my {STR_VAR_1}?\p" - .string "It should be something that'll\n" - .string "let me win just like that!\p" - .string "Would it be {STR_VAR_2}?\n" - .string "Or {STR_VAR_3}?$" - -gText_082C0809:: @ 82C0809 - .string "Uh-huh, {STR_VAR_1} it is!\n" - .string "Si, bueno!\l" - .string "I'll get it taught, like, ka-blam!\p" - .string "All right, thanks, as always!\n" - .string "Adios!$" - -gText_082C086E:: @ 82C086E - .string "{PLAYER}{KUN}, it's completely wild!\p" - .string "My POKéMON!\n" - .string "It learned six moves!\p" - .string "Of course I'm lying!\n" - .string "Wahahaha!\p" - .string "This is no lie, though.\n" - .string "I'm not very good at choosing moves\l" - .string "for my POKéMON.\p" - .string "So, how about deciding for me which\n" - .string "kind of move I should teach?\p" - .string "{STR_VAR_2} or {STR_VAR_3}--which\n" - .string "would go with my {STR_VAR_1} best?$" - -gText_082C0982:: @ 82C0982 - .string "Okay, so it's {STR_VAR_1} you chose?\n" - .string "I'll choose another move, then!\p" - .string "Just kidding!\n" - .string "I'll obey your teaching, master!\p" - .string "Thanks, master!\n" - .string "I hope you'll keep teaching me!$" - -gText_082C0A1D:: @ 82C0A1D - .string "A-H-O-Y!\n" - .string "And that spells ahoy!\p" - .string "The rappin' SAILOR am I!\n" - .string "I'm always with it, don't ask me why.\p" - .string "Today, I have a move question\n" - .string "that begs your suggestion!\p" - .string "{STR_VAR_2} and {STR_VAR_3} are\n" - .string "the moves. What would be the best\l" - .string "for my {STR_VAR_1} so it grooves?$" - -gText_082C0AFD:: @ 82C0AFD - .string "{STR_VAR_1}, you say, hey, hey!\n" - .string "I'll go teach that right away!\p" - .string "If it's advice I ever need,\n" - .string "{PLAYER}, your word I'll always heed!$" - -gText_082C0B6F:: @ 82C0B6F - .string "Oh, yeahah, if it isn't {PLAYER}!\p" - .string "What should I do? Get your advice?\n" - .string "Why not? I'm already talking to you!\p" - .string "{PLAYER}, are you surprised by me?\n" - .string "I want your advice, can't you see?\p" - .string "Are you receiving me?\n" - .string "You are receiving me!\p" - .string "My {STR_VAR_1}--what should it use?\n" - .string "It's {STR_VAR_2} or {STR_VAR_3},\l" - .string "what do you choose?$" - -gText_082C0C7D:: @ 82C0C7D - .string "If that {STR_VAR_1} is the best,\n" - .string "I'll do as you suggest!\p" - .string "Well, {PLAYER}, I have to roam free,\n" - .string "but don't you forget about me.\p" - .string "See you again, my smart friend!$" - -gText_082C0D0B:: @ 82C0D0B - .string "Gahack! Gaah! Oh, {PLAYER}{KUN}…\n" - .string "I have this lousy cold, I do…\p" - .string "I want to pick a move for my POKéMON,\n" - .string "but I'm not up to it…\p" - .string "So, things being this way,\n" - .string "I need you to decide for me.\p" - .string "{PLAYER}{KUN}, if I had to choose between\n" - .string "{STR_VAR_2} and {STR_VAR_3} for\l" - .string "my {STR_VAR_1}, which would it be?$" - -gText_082C0DFE:: @ 82C0DFE - .string "Hm, {STR_VAR_1}, all right. Cough!\n" - .string "I'll go teach it when I get better.\p" - .string "I hope I can keep hitting you up\n" - .string "for help like this.$" - -gText_082C0E71:: @ 82C0E71 - .string "Er… Um…\n" - .string "{PLAYER}{KUN}…?\p" - .string "Please, don't look at me that way.\n" - .string "I'm getting all flustered…\l" - .string "I… I need your advice.\p" - .string "I… I'm really embarrassed, but I can't\n" - .string "decide what move I should teach\l" - .string "my POKéMON.\p" - .string "It's for my {STR_VAR_1}.\n" - .string "If the choices were {STR_VAR_2} or\l" - .string "{STR_VAR_3}, which would be better?$" - -gText_082C0F6D:: @ 82C0F6D - .string "Oh… Okay!\n" - .string "I'll try that {STR_VAR_1}.\p" - .string "I hope I can teach that move…\n" - .string "This is so nerve-racking…\p" - .string "Thank you, {PLAYER}{KUN}.\n" - .string "If we meet again, I hope you will be\l" - .string "as helpful.$" - -gText_082C1003:: @ 82C1003 - .string "Hm? You appear to be {PLAYER}{KUN}…\n" - .string "But are you really real?\p" - .string "Perhaps you're one of those popular\n" - .string "mimics?\p" - .string "No, no, if you are real, it's fine.\n" - .string "No need to be upset, I assure you!\p" - .string "Incidentally, I would like to obtain\n" - .string "your advice.\p" - .string "It's about my {STR_VAR_1}.\p" - .string "Which move would be better for it to\n" - .string "use, {STR_VAR_2} or {STR_VAR_3}?$" - -gText_082C1122:: @ 82C1122 - .string "{STR_VAR_1}?\n" - .string "There's no question about that?\p" - .string "I see. If that's the case, that's fine.\n" - .string "I thank you for your time.\p" - .string "I do hope it is something even\n" - .string "my POKéMON can learn.\p" - .string "Let us meet again!$" - -gText_082C11D1:: @ 82C11D1 - .string "Oh… {PLAYER}?\n" - .string "It is {PLAYER}!\l" - .string "Oh! Sniff…sob… Please, listen!\p" - .string "I… When I battle, I get so nervous,\n" - .string "I can't help crying even if I win…\p" - .string "I wish I could say something cool\n" - .string "when I win…\p" - .string "Please, please, {PLAYER}!\n" - .string "Could you maybe teach me something\l" - .string "cool to say when I win so I don't cry?$" - -gText_082C12D5:: @ 82C12D5 - .string "{STR_VAR_1}\p" - .string "Awesome! Wicked! Awoooh!\n" - .string "It's really cool!\p" - .string "Oh… I'm sorry…\n" - .string "I'm so happy, I'm crying…\p" - .string "Snivel… {PLAYER}!\n" - .string "Thank you so much for everything!\p" - .string "I will battle the best I can for\n" - .string "your sake, {PLAYER}!\p" - .string "{PLAYER}…\n" - .string "Next time… We should battle!$" - -gText_082C13AB:: @ 82C13AB - .string "Yay! It's {PLAYER}! Hello!\n" - .string "I wanted to ask you something!\p" - .string "I want to say something cool when\n" - .string "I win a match.\p" - .string "Do you have a cool saying that\n" - .string "you could recommend?$" - -gText_082C1444:: @ 82C1444 - .string "{STR_VAR_1}\p" - .string "Oh, wow! That is so cool!\n" - .string "Okay, I'll say that!\p" - .string "Thanks for teaching me all this time!\n" - .string "I'm going to do the best I can\l" - .string "wherever I go from now on!\p" - .string "When we meet again, it'll be for\n" - .string "a battle!$" - -gText_082C1501:: @ 82C1501 - .string "{PLAYER}, hello!\p" - .string "My POKéMON and I are ready for\n" - .string "anything, except for one thing.\p" - .string "I think it would be good if I had\n" - .string "something to shout when I win.\p" - .string "Could you think up something good\n" - .string "to say?$" - -gText_082C15B6:: @ 82C15B6 - .string "{STR_VAR_1}\p" - .string "…Cool!\n" - .string "I will use that!\p" - .string "I'm going out to battle all over\n" - .string "the place.\p" - .string "Who knows, I may even get to battle\n" - .string "you one day, {PLAYER}.\p" - .string "Next time, let's meet at a place\n" - .string "of battle!$" - -gText_082C165E:: @ 82C165E - .string "Hello, {PLAYER}…\n" - .string "I'm sorry to bug you, but I'm hopeless…\p" - .string "Even when…\n" - .string "Even when I win, I don't have anything\l" - .string "special to say…\p" - .string "I know that it doesn't mean anything\n" - .string "to you, {PLAYER}.\p" - .string "But it means a lot to me…\p" - .string "Please, {PLAYER}, what should I say\n" - .string "if I win a battle?$" - -gText_082C174F:: @ 82C174F - .string "{STR_VAR_1}\p" - .string "That's inspired…\p" - .string "Uh… Is it okay for someone like me\n" - .string "to even say that?\p" - .string "No! I'll do my best!\p" - .string "{PLAYER}, thank you so much for\n" - .string "putting up with me for so long…\p" - .string "I promise to do my best from now on.\p" - .string "I'm sure you'll quickly forget about\n" - .string "someone like me, but let's meet\l" - .string "somewhere again!$" - -gText_082C1862:: @ 82C1862 - .string "Oh, {PLAYER}{KUN}.\n" - .string "There's something I want you to hear.\p" - .string "I know that I don't always sound\n" - .string "nice or polite…\p" - .string "When I win a battle, I think I come\n" - .string "across as being arrogant.\p" - .string "I don't want people to dislike me,\n" - .string "so I want to say something nice to\l" - .string "someone I beat.\p" - .string "But I can't think of anything good!\n" - .string "Could you think something up for me?$" - -gText_082C19A0:: @ 82C19A0 - .string "{STR_VAR_1}\p" - .string "Not bad!\n" - .string "Yup, that's what I'll go with!\p" - .string "I'm going to hit the road and do what\n" - .string "I can with what you taught me in\l" - .string "my head and heart.\p" - .string "I'm sorry that I've been so pushy\n" - .string "with you!\p" - .string "Next time, we battle, okay?\n" - .string "See you!$" - -gText_082C1A76:: @ 82C1A76 - .string "Oh, I can't get over how busy I am!\n" - .string "Oh, hey, I was looking for you, {PLAYER}{KUN}.\p" - .string "Are you well as usual?\n" - .string "Things haven't changed for me at all.\p" - .string "I've got running, fighting, and mapping\n" - .string "to do. Why am I so busy?\p" - .string "But even though I'm busy, it'd be rude\n" - .string "to just turn on my heels and walk away\l" - .string "from a win without saying a word.\p" - .string "So, what would be a cool saying to\n" - .string "underline my coolness when I'm done\l" - .string "and walking away? {PLAYER}{KUN}, help me!$" - -gText_082C1C16:: @ 82C1C16 - .string "{STR_VAR_1}\p" - .string "Okay, gotcha.\n" - .string "I can find time to say that!\p" - .string "Honestly, I'm glad I met a good mentor\n" - .string "like you.\p" - .string "I'm going to make time somehow so\n" - .string "I can get into battling.\p" - .string "Thanks for everything, {PLAYER}{KUN}!\n" - .string "We have to battle, you and me, one day!$" - -gText_082C1CF5:: @ 82C1CF5 - .string "I lucked out again!\n" - .string "{PLAYER}! Am I glad to see you!\l" - .string "Like usual, I need your advice!\p" - .string "Drum roll, please!\n" - .string "The last question I have is…\p" - .string "If I win a battle and want to end\n" - .string "it with a cool flourish, what\l" - .string "should I say?$" - -gText_082C1DC1:: @ 82C1DC1 - .string "{STR_VAR_1}\p" - .string "That… That's fabulous!\n" - .string "It's dignified and cool! I claim it!\p" - .string "…Listen, I think I'm getting decent\n" - .string "at this, huh?\p" - .string "So, I'm thinking of challenging other\n" - .string "TRAINERS from now on.\p" - .string "{PLAYER}, your advice really helped me.\p" - .string "Maybe one day, there'll be a time when\n" - .string "we battle!\p" - .string "Thank you for everything!$" - -gText_082C1EDC:: @ 82C1EDC - .string "Oh, {PLAYER}.\n" - .string "I'm so glad I met you!\p" - .string "I no longer have any concerns with\n" - .string "regard to my POKéMON.\p" - .string "It's myself that worries me…\p" - .string "Do you know how a TRAINER says\n" - .string "a few things upon winning a battle?\p" - .string "Definitely, I wish I could do that,\n" - .string "too!\p" - .string "Please, what should I say when\n" - .string "I win a battle?$" - -gText_082C1FEC:: @ 82C1FEC - .string "{STR_VAR_1}\p" - .string "Ah! That saying! It refreshes me\n" - .string "and makes me feel reborn!\p" - .string "I must use that right away!\p" - .string "And now, I must take my leave,\n" - .string "{PLAYER}…\p" - .string "I will go out to battle many others,\n" - .string "but never will I forget your teachings.\p" - .string "Perhaps one day…\n" - .string "Farewell!$" - -gText_082C20D1:: @ 82C20D1 - .string "Eek! I spotted {PLAYER}!\n" - .string "I… I'm overjoyed to see you!\p" - .string "Oh-oh-oh! There's something I just\n" - .string "had to ask you!\p" - .string "A little while ago, I won a battle.\n" - .string "That part was giddying!\p" - .string "But it made me so overjoyed that\n" - .string "I choked up and couldn't say a thing!\p" - .string "So now, {PLAYER}, please, I want you to\n" - .string "think up an exit line for when I win!$" - -gText_082C21FF:: @ 82C21FF - .string "{STR_VAR_1}\p" - .string "Waaaaah!\n" - .string "I'm going to say that?!\l" - .string "I… I'm delirious with joy!\p" - .string "Th-th-thank you!\n" - .string "I have nothing left to regret now!\p" - .string "I'm going to travel now and battle\n" - .string "all sorts of people.\p" - .string "Everything, I owe it to you, {PLAYER}.\n" - .string "Really, really, thank you!\p" - .string "I've got to go now, but let's meet\n" - .string "in battle one day!$" - -gText_082C231C:: @ 82C231C - .string "Hola, bueno!\n" - .string "{PLAYER}{KUN}!\p" - .string "You know, I'm getting the itch to roam\n" - .string "and battle where I may.\p" - .string "But before I do, I want your advice\n" - .string "once again, please!\p" - .string "If I were to win a battle, what would\n" - .string "be a good boast I could say to my\l" - .string "fallen TRAINER opponent?$" - -gText_082C2407:: @ 82C2407 - .string "{STR_VAR_1}\p" - .string "Uh-huh, that's sweet!\n" - .string "Si, bueno!\l" - .string "I'll try saying that, like, ham!\p" - .string "And now, it's time to say good-bye!\n" - .string "Thanks for all sorts of things!\p" - .string "Give me a battle one day, OK?\n" - .string "Adios!$" - -gText_082C24B5:: @ 82C24B5 - .string "{PLAYER}{KUN}, there's big trouble!\p" - .string "When I win a battle, I brag about it\n" - .string "for an hour at least!\p" - .string "Of course I'm lying!\n" - .string "Wahahaha!\p" - .string "This is no lie, though.\n" - .string "I'm not very good at chatting.\p" - .string "So, how about deciding for me what\n" - .string "I should say after winning a battle,\l" - .string "master?$" - -gText_082C25B1:: @ 82C25B1 - .string "{STR_VAR_1}\p" - .string "That's what I should say, huh?\n" - .string "Then, I'll stay away from that!\p" - .string "Just kidding!\n" - .string "I'll obey your teaching, master!\p" - .string "Thanks for teaching me all this time,\n" - .string "master!\p" - .string "I'm finally understanding what being\n" - .string "a TRAINER is about.\p" - .string "I'm going to go out and win battles\n" - .string "against any TRAINER.\p" - .string "Maybe it'll be you one day, master!\p" - .string "That's all!\n" - .string "Farewell, my master!$" - -gText_082C2707:: @ 82C2707 - .string "A-H-O-Y!\n" - .string "And that spells ahoy!\p" - .string "The rappin' SAILOR am I!\n" - .string "This will be my last question,\l" - .string "don't you cry!\p" - .string "It's a saying question\n" - .string "that begs your suggestion!\p" - .string "If I win a match, what can I say\n" - .string "in a real cool way?$" - -gText_082C27D4:: @ 82C27D4 - .string "{STR_VAR_1}\p" - .string "Perfect! That's what I'll use.\n" - .string "I was right to make you choose!\p" - .string "And now, I think it'd be best,\n" - .string "if I were to fly the nest!\p" - .string "Thanks for all you taught me.\n" - .string "I'll be off on a battle spree!\p" - .string "B-O-N-V-O-Y-A-G-E!\n" - .string "And that spells bon voyage,\l" - .string "to you this is my homage!$" - -gText_082C28D6:: @ 82C28D6 - .string "Oh, yeah, {PLAYER}!\n" - .string "I found you again today!\p" - .string "What should I do? Ask you again?\n" - .string "Why not? I'm already asking you!\p" - .string "Anyways, {PLAYER}…\n" - .string "Are you receiving me?\l" - .string "You are receiving me!\l" - .string "I need some more advice for me!\p" - .string "It's about what I should yell.\n" - .string "Something cool to holler when\l" - .string "a battle ends well.\p" - .string "Come on, I wanna hear you say it!$" - -gText_082C2A0B:: @ 82C2A0B - .string "{STR_VAR_1}\p" - .string "All right, all right!\n" - .string "I'll use that because it's so tight!\p" - .string "I'm out of things to ask you.\n" - .string "Waving bye is all that's left to do.\p" - .string "But maybe one day we'll meet, with one\n" - .string "destined to go down in defeat.\p" - .string "But, it really is time to say farewell.\p" - .string "Well, {PLAYER}, I have to roam free,\n" - .string "but don't you forget about me!\p" - .string "Take care, {PLAYER}!\n" - .string "Love ya!$" - -gText_082C2B50:: @ 82C2B50 - .string "{PLAYER}{KUN}, I'm finished…\n" - .string "My nose won't stop dripping…\p" - .string "I was trying to think up something\n" - .string "cool to say when I win a battle.\p" - .string "It inspired me so much, it made me cry,\n" - .string "and now my nose won't stop running…\p" - .string "So, things being this way,\n" - .string "I need you to decide for me, {PLAYER}{KUN}.\p" - .string "When I win a battle,\n" - .string "what should I say?$" - -gText_082C2C77:: @ 82C2C77 - .string "{STR_VAR_1}\p" - .string "… … …That's good.\n" - .string "No, it's awe inspiring!\l" - .string "It's bringing fresh tears to my eyes!\p" - .string "But in spite of my tears and runny\n" - .string "nose, I will use that saying!\p" - .string "I'm plumb out of things to ask you,\n" - .string "{PLAYER}{KUN}.\p" - .string "From now on, we're rivals!\n" - .string "Thanks for everything!$" - -gText_082C2D67:: @ 82C2D67 - .string "Er… Um…\n" - .string "{PLAYER}{KUN}…\p" - .string "Please, don't look at me that way.\n" - .string "You're making me all nervous.\p" - .string "I… I need your advice again.\n" - .string "I'll make it my last, though…\p" - .string "It's really embarrassing to ask,\n" - .string "but what if I win a battle?\l" - .string "What should I say?$" - -gText_082C2E41:: @ 82C2E41 - .string "{STR_VAR_1}\p" - .string "Oh… Okay!\n" - .string "I'll try to say that!\l" - .string "I might be too nervous to say it…\p" - .string "Thank you, {PLAYER}{KUN}.\n" - .string "I have to say good-bye now.\p" - .string "I'll obey all that you've taught me,\n" - .string "{PLAYER}{KUN}, and do the best I can.$" - -gText_082C2EF5:: @ 82C2EF5 - .string "Hm? You appear to be {PLAYER}{KUN}…\n" - .string "But are you really?\l" - .string "Perhaps a clever {PLAYER} DOLL?\p" - .string "Oh, no, no, no, don't worry!\n" - .string "If you really are real, please\l" - .string "forget about my rudeness.\p" - .string "No need to be so angry. All I wish for\n" - .string "is more of your fine advice.\p" - .string "It concerns a saying.\p" - .string "More precisely, what should I say\n" - .string "if I win a battle?$" - -gText_082C3023:: @ 82C3023 - .string "{STR_VAR_1}\p" - .string "… … … … … …\n" - .string "When I win a match…\p" - .string "{STR_VAR_1}\p" - .string "…Are you serious?\p" - .string "I see. If you are serious, that's fine.\n" - .string "I thank you for your time.\p" - .string "I do hope even I will be able to\n" - .string "put that saying to good use.\p" - .string "I seem to have run dry on what advice\n" - .string "I need.\p" - .string "I do believe it's high time I bid you\n" - .string "farewell and strike out on my own.\p" - .string "Thank you, my mentor!\n" - .string "I apologize for my skepticism!$" diff --git a/data/scripts/battle_pike.inc b/data/scripts/battle_pike.inc index a20faa14e..10c37d91e 100644 --- a/data/scripts/battle_pike.inc +++ b/data/scripts/battle_pike.inc @@ -1,142 +1,127 @@ -BattleFrontier_BattlePikeRandomRoom1_MapScripts_2C3E1B: @ 82C3E1B - map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattlePikeRandomRoom1_MapScript1_2C3E25 - map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattlePikeRandomRoom1_MapScript2_2C3EDE +BattleFrontier_BattlePikeRoomNormal_MapScripts_2C3E1B: @ 82C3E1B + map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattlePikeRoom_OnTransition + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattlePikeRoom_OnWarp -BattleFrontier_BattlePikeRandomRoom1_MapScript1_2C3E25: @ 82C3E25 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_UP_ROOM_OBJECTS - special CallBattlePikeFunction - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_TYPE - special CallBattlePikeFunction +BattleFrontier_BattlePikeRoom_OnTransition: @ 82C3E25 + battlepike_setroomobjects + battlepike_getroomtype switch VAR_RESULT - case 0, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EB1 - case 1, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EB1 - case 2, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EC0 - case 3, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EA2 - case 4, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EB1 - case 7, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3E93 - case 6, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EA2 - case 8, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3ECF + case PIKE_ROOM_SINGLE_BATTLE, BattleFrontier_BattlePikeRoomNormal_EventScript_2C3EB1 + case PIKE_ROOM_HEAL_FULL, BattleFrontier_BattlePikeRoomNormal_EventScript_2C3EB1 + case PIKE_ROOM_NPC, BattleFrontier_BattlePikeRoomNormal_EventScript_2C3EC0 + case PIKE_ROOM_STATUS, BattleFrontier_BattlePikeRoomNormal_EventScript_2C3EA2 + case PIKE_ROOM_HEAL_PART, BattleFrontier_BattlePikeRoomNormal_EventScript_2C3EB1 + case PIKE_ROOM_DOUBLE_BATTLE, BattleFrontier_BattlePikeRoomNormal_EventScript_2C3E93 + case PIKE_ROOM_HARD_BATTLE, BattleFrontier_BattlePikeRoomNormal_EventScript_2C3EA2 + case PIKE_ROOM_BRAIN, BattleFrontier_BattlePikeRoomNormal_EventScript_2C3ECF end -BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3E93:: @ 82C3E93 +BattleFrontier_BattlePikeRoomNormal_EventScript_2C3E93:: @ 82C3E93 setobjectxyperm 1, 2, 5 setobjectxyperm 2, 6, 5 end -BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EA2:: @ 82C3EA2 +BattleFrontier_BattlePikeRoomNormal_EventScript_2C3EA2:: @ 82C3EA2 setobjectxyperm 1, 4, 4 setobjectxyperm 2, 3, 4 end -BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EB1:: @ 82C3EB1 +BattleFrontier_BattlePikeRoomNormal_EventScript_2C3EB1:: @ 82C3EB1 setobjectxyperm 1, 4, 4 setobjectxyperm 2, 0, 0 end -BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EC0:: @ 82C3EC0 +BattleFrontier_BattlePikeRoomNormal_EventScript_2C3EC0:: @ 82C3EC0 setobjectxyperm 1, 5, 5 setobjectxyperm 2, 0, 0 end -BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3ECF:: @ 82C3ECF +BattleFrontier_BattlePikeRoomNormal_EventScript_2C3ECF:: @ 82C3ECF setobjectxyperm 1, 4, 3 setobjectxyperm 2, 4, 4 end -BattleFrontier_BattlePikeRandomRoom1_MapScript2_2C3EDE: @ 82C3EDE - map_script_2 VAR_TEMP_4, 0, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EE8 +BattleFrontier_BattlePikeRoom_OnWarp: @ 82C3EDE + map_script_2 VAR_TEMP_4, 0, BattleFrontier_BattlePikeRoomNormal_EventScript_EnterRoom .2byte 0 -BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EE8:: @ 82C3EE8 +BattleFrontier_BattlePikeRoomNormal_EventScript_EnterRoom:: @ 82C3EE8 setvar VAR_OBJ_GFX_ID_1, OBJ_EVENT_GFX_LINK_RECEPTIONIST setvar VAR_OBJ_GFX_ID_0, OBJ_EVENT_GFX_LINK_RECEPTIONIST - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_TYPE - special CallBattlePikeFunction - compare VAR_RESULT, 3 - goto_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3F35 - compare VAR_RESULT, 6 - goto_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3F35 - compare VAR_RESULT, 7 - goto_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3F35 - compare VAR_RESULT, 8 - goto_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3F3F - hideobjectat 2, MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1 + battlepike_getroomtype + compare VAR_RESULT, PIKE_ROOM_STATUS + goto_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_2C3F35 + compare VAR_RESULT, PIKE_ROOM_HARD_BATTLE + goto_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_2C3F35 + compare VAR_RESULT, PIKE_ROOM_DOUBLE_BATTLE + goto_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_2C3F35 + compare VAR_RESULT, PIKE_ROOM_BRAIN + goto_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_2C3F3F + hideobjectat 2, MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL setvar VAR_TEMP_4, 1 turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end -BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3F35:: @ 82C3F35 +BattleFrontier_BattlePikeRoomNormal_EventScript_2C3F35:: @ 82C3F35 setvar VAR_TEMP_4, 1 turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end -BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3F3F:: @ 82C3F3F +BattleFrontier_BattlePikeRoomNormal_EventScript_2C3F3F:: @ 82C3F3F setvar VAR_TEMP_4, 1 turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH - hideobjectat 1, MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1 + hideobjectat 1, MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL end -BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F4E:: @ 82C3F4E - setvar VAR_0x8007, 0 - goto BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F6F +BattleFrontier_BattlePikeThreePathRoom_EventScript_LeftRoomWarp:: @ 82C3F4E + setvar VAR_0x8007, PIKE_ROOM_LEFT + goto BattleFrontier_BattlePikeThreePathRoom_EventScript_RoomWarp end -BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F59:: @ 82C3F59 - setvar VAR_0x8007, 1 - goto BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F6F +BattleFrontier_BattlePikeThreePathRoom_EventScript_CenterRoomWarp:: @ 82C3F59 + setvar VAR_0x8007, PIKE_ROOM_CENTER + goto BattleFrontier_BattlePikeThreePathRoom_EventScript_RoomWarp end -BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F64:: @ 82C3F64 - setvar VAR_0x8007, 2 - goto BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F6F +BattleFrontier_BattlePikeThreePathRoom_EventScript_RightRoomWarp:: @ 82C3F64 + setvar VAR_0x8007, PIKE_ROOM_RIGHT + goto BattleFrontier_BattlePikeThreePathRoom_EventScript_RoomWarp end -BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F6F:: @ 82C3F6F - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_DATA - setvar VAR_0x8005, 1 - special CallBattlePikeFunction +BattleFrontier_BattlePikeThreePathRoom_EventScript_RoomWarp:: @ 82C3F6F + battlepike_getstreak addvar VAR_RESULT, 1 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_DATA - setvar VAR_0x8005, 1 - copyvar VAR_0x8006, VAR_RESULT - special CallBattlePikeFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + battlepike_setstreak VAR_RESULT + frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 2 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc - setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_ROOM_TYPE - special CallBattlePikeFunction - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_TYPE - special CallBattlePikeFunction + frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT + battlepike_setnextroom + battlepike_getroomtype switch VAR_RESULT - case 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4030 - case 1, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4030 - case 2, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4030 - case 3, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4030 - case 4, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4030 - case 5, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4049 - case 6, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4030 - case 7, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4030 - case 8, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4030 - end - -BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4030:: @ 82C4030 - applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeThreePathRoom_Movement_2C427A + case PIKE_ROOM_SINGLE_BATTLE, BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpNPCRoom + case PIKE_ROOM_HEAL_FULL, BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpNPCRoom + case PIKE_ROOM_NPC, BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpNPCRoom + case PIKE_ROOM_STATUS, BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpNPCRoom + case PIKE_ROOM_HEAL_PART, BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpNPCRoom + case PIKE_ROOM_WILD_MONS, BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpWildMonRoom + case PIKE_ROOM_HARD_BATTLE, BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpNPCRoom + case PIKE_ROOM_DOUBLE_BATTLE, BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpNPCRoom + case PIKE_ROOM_BRAIN, BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpNPCRoom + end + +BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpNPCRoom:: @ 82C4030 + applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeRoom_Movement_HidePlayer waitmovement 0 - call BattleFrontier_BattlePikeThreePathRoom_EventScript_25BB49 - warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1, 255, 4, 7 + call BattleFrontier_BattlePike_EventScript_CloseCurtain + warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL, 255, 4, 7 waitstate end -BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4049:: @ 82C4049 - applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeThreePathRoom_Movement_2C427A +BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpWildMonRoom:: @ 82C4049 + applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeRoom_Movement_HidePlayer waitmovement 0 - call BattleFrontier_BattlePikeThreePathRoom_EventScript_25BB49 - warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3, 255, 4, 19 + call BattleFrontier_BattlePike_EventScript_CloseCurtain + warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS, 255, 4, 19 waitstate end @@ -149,164 +134,122 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_2C406D:: @ 82C406D setvar VAR_TEMP_3, 0 setvar VAR_TEMP_2, 0 lockall - msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CE36, MSGBOX_DEFAULT + msgbox BattleFrontier_BattlePike_Text_PathBlockedNoTurningBack, MSGBOX_DEFAULT closemessage end -BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4082:: @ 82C4082 +BattleFrontier_BattlePikeRoomNormal_EventScript_2C4082:: @ 82C4082 setvar VAR_TEMP_3, 1 setvar VAR_TEMP_2, 1 end -BattleFrontier_BattlePikeRandomRoom1_EventScript_2C408D:: @ 82C408D +BattleFrontier_BattlePikeRoomNormal_EventScript_2C408D:: @ 82C408D setvar VAR_TEMP_3, 0 setvar VAR_TEMP_2, 0 lockall - msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25CE36, MSGBOX_DEFAULT + msgbox BattleFrontier_BattlePike_Text_PathBlockedNoTurningBack, MSGBOX_DEFAULT closemessage end -BattleFrontier_BattlePikeRandomRoom1_EventScript_2C40A2:: @ 82C40A2 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_CAN_PARTY_BE_HEALED - special CallBattlePikeFunction - compare VAR_RESULT, 1 - call_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4128 - compare VAR_RESULT, 1 - call_if_ne BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4136 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_DATA - setvar VAR_0x8005, 1 - special CallBattlePikeFunction +BattleFrontier_BattlePikeRoomNormal_EventScript_Exit:: @ 82C40A2 + battlepike_ispartyfullhealth + compare VAR_RESULT, TRUE + call_if_eq BattleFrontier_BattlePikeRoom_EventScript_DisableHealing + compare VAR_RESULT, TRUE + call_if_ne BattleFrontier_BattlePikeRoom_EventScript_EnableHealing + battlepike_getstreak addvar VAR_RESULT, 1 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_DATA - setvar VAR_0x8005, 1 - copyvar VAR_0x8006, VAR_RESULT - special CallBattlePikeFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + battlepike_setstreak VAR_RESULT + frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 2 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc - setvar VAR_0x8004, BATTLE_PIKE_FUNC_IN_FINAL_ROOM - special CallBattlePikeFunction - compare VAR_RESULT, 1 - call_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4144 - compare VAR_RESULT, 0 - call_if_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_2C415C + frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT + battlepike_isfinalroom + compare VAR_RESULT, TRUE + call_if_eq BattleFrontier_BattlePikeRoom_EventScript_WarpToFinalRoom + compare VAR_RESULT, FALSE + call_if_eq BattleFrontier_BattlePikeRoom_EventScript_WarpToThreePathRoom waitstate end -BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4128:: @ 82C4128 -BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4128:: @ 82C4128 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_HEALING_ROOMS_DISABLED - setvar VAR_0x8005, 1 - special CallBattlePikeFunction +BattleFrontier_BattlePikeRoom_EventScript_DisableHealing:: @ 82C4128 + battlepike_nohealing TRUE return -BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4136:: @ 82C4136 -BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4136:: @ 82C4136 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_HEALING_ROOMS_DISABLED - setvar VAR_0x8005, 0 - special CallBattlePikeFunction +BattleFrontier_BattlePikeRoom_EventScript_EnableHealing:: @ 82C4136 + battlepike_nohealing FALSE return -BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4144:: @ 82C4144 -BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4144:: @ 82C4144 - applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeRandomRoom1_Movement_2C427A +BattleFrontier_BattlePikeRoom_EventScript_WarpToFinalRoom:: @ 82C4144 + applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeRoom_Movement_HidePlayer waitmovement 0 - call BattleFrontier_BattlePikeRandomRoom1_EventScript_25BB49 - warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM2, 255, 2, 7 + call BattleFrontier_BattlePike_EventScript_CloseCurtain + warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_FINAL, 255, 2, 7 return -BattleFrontier_BattlePikeRandomRoom1_EventScript_2C415C:: @ 82C415C -BattleFrontier_BattlePikeRandomRoom3_EventScript_2C415C:: @ 82C415C - applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeRandomRoom1_Movement_2C427A +BattleFrontier_BattlePikeRoom_EventScript_WarpToThreePathRoom:: @ 82C415C + applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeRoom_Movement_HidePlayer waitmovement 0 - call BattleFrontier_BattlePikeRandomRoom1_EventScript_25BB49 + call BattleFrontier_BattlePike_EventScript_CloseCurtain warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM, 255, 6, 10 return -BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4174:: @ 82C4174 - setvar VAR_0x8004,BATTLE_PIKE_FUNC_7 - special CallBattlePikeFunction - setvar VAR_0x8004, BATTLE_PIKE_FUNC_CAN_PARTY_BE_HEALED - special CallBattlePikeFunction - compare VAR_RESULT, 1 - call_if_eq BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4128 - compare VAR_RESULT, 1 - call_if_ne BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4136 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_DATA - setvar VAR_0x8005, 1 +BattleFrontier_BattlePikeRoomWildMons_EventScript_2C4174:: @ 82C4174 + setvar VAR_0x8004, BATTLE_PIKE_FUNC_7 special CallBattlePikeFunction + battlepike_ispartyfullhealth + compare VAR_RESULT, TRUE + call_if_eq BattleFrontier_BattlePikeRoom_EventScript_DisableHealing + compare VAR_RESULT, TRUE + call_if_ne BattleFrontier_BattlePikeRoom_EventScript_EnableHealing + battlepike_getstreak addvar VAR_RESULT, 1 - setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_DATA - setvar VAR_0x8005, 1 - copyvar VAR_0x8006, VAR_RESULT - special CallBattlePikeFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 2 - special CallFrontierUtilFunc + battlepike_setstreak VAR_RESULT + frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 2 - copyvar VAR_0x8006, VAR_RESULT - special CallFrontierUtilFunc - setvar VAR_0x8004, BATTLE_PIKE_FUNC_IN_FINAL_ROOM - special CallBattlePikeFunction - compare VAR_RESULT, 1 - call_if_eq BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4144 - compare VAR_RESULT, 0 - call_if_eq BattleFrontier_BattlePikeRandomRoom3_EventScript_2C415C + frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT + battlepike_isfinalroom + compare VAR_RESULT, TRUE + call_if_eq BattleFrontier_BattlePikeRoom_EventScript_WarpToFinalRoom + compare VAR_RESULT, FALSE + call_if_eq BattleFrontier_BattlePikeRoom_EventScript_WarpToThreePathRoom waitstate end -BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4202:: @ 82C4202 +BattleFrontier_BattlePikeRoomWildMons_EventScript_2C4202:: @ 82C4202 setvar VAR_TEMP_3, 1 setvar VAR_TEMP_2, 1 end -BattleFrontier_BattlePikeRandomRoom3_EventScript_2C420D:: @ 82C420D +BattleFrontier_BattlePikeRoomWildMons_EventScript_2C420D:: @ 82C420D setvar VAR_TEMP_3, 0 setvar VAR_TEMP_2, 0 lockall - msgbox BattleFrontier_BattlePikeRandomRoom3_Text_25CE36, MSGBOX_DEFAULT + msgbox BattleFrontier_BattlePike_Text_PathBlockedNoTurningBack, MSGBOX_DEFAULT closemessage end BattleFrontier_BattlePike_EventScript_Retire:: @ 82C4222 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_2 - setvar VAR_0x8005, 0 - setvar VAR_0x8006, 4 - special CallFrontierUtilFunc + frontier_set FRONTIER_DATA_CHALLENGE_STATUS CHALLENGE_STATUS_LOST warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 255, 5, 6 waitstate end -BattleFrontier_BattlePikeRandomRoom1_MapScript1_2C423E: @ 82C423E -BattleFrontier_BattlePikeThreePathRoom_MapScript1_2C423E: @ 82C423E +BattleFrontier_BattlePikeRoom_OnResume: @ 82C423E setorcopyvar VAR_0x8006, VAR_RESULT - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 0 - special CallFrontierUtilFunc - compare VAR_RESULT, 2 + frontier_get FRONTIER_DATA_CHALLENGE_STATUS + compare VAR_RESULT, CHALLENGE_STATUS_PAUSED goto_if_eq BattleFrontier_BattlePikeThreePathRoom_EventScript_2C426B - compare VAR_RESULT, 1 + compare VAR_RESULT, CHALLENGE_STATUS_SAVING goto_if_eq BattleFrontier_BattlePikeThreePathRoom_EventScript_2C426B - call BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4271 - + call BattleFrontier_BattlePikeRoom_EventScript_ResetSketchedMoves BattleFrontier_BattlePikeThreePathRoom_EventScript_2C426B:: @ 82C426B setorcopyvar VAR_RESULT, VAR_0x8006 end -BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4271:: @ 82C4271 -BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4271:: @ 82C4271 - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_21 - special CallFrontierUtilFunc +BattleFrontier_BattlePikeRoom_EventScript_ResetSketchedMoves:: @ 82C4271 + frontier_resetsketch return -BattleFrontier_BattlePikeRandomRoom1_Movement_2C427A: @ 82C427A -BattleFrontier_BattlePikeThreePathRoom_Movement_2C427A: @ 82C427A +BattleFrontier_BattlePikeRoom_Movement_HidePlayer: @ 82C427A set_invisible step_end diff --git a/data/scripts/field_poison.inc b/data/scripts/field_poison.inc index d45b480d1..f33292fe6 100644 --- a/data/scripts/field_poison.inc +++ b/data/scripts/field_poison.inc @@ -39,9 +39,8 @@ EventScript_FrontierFieldWhiteOut:: @ 82736F8 goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_252B42 compare VAR_RESULT, 2 goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_252B42 - setvar VAR_0x8004, TRAINER_HILL_FUNC_IN_CHALLENGE - special CallTrainerHillFunction - compare VAR_RESULT, 1 + trainerhill_inchallenge + compare VAR_RESULT, TRUE goto_if_eq TrainerHill_1F_EventScript_Lost special Script_FadeOutMapMusic waitstate diff --git a/data/scripts/trainer_hill.inc b/data/scripts/trainer_hill.inc index 805c63264..ca692e1ef 100644 --- a/data/scripts/trainer_hill.inc +++ b/data/scripts/trainer_hill.inc @@ -1,10 +1,7 @@ TrainerHill_OnResume: @ 82C8336 setvar VAR_TEMP_2, 0 - setvar VAR_0x8004, TRAINER_HILL_FUNC_RESUME_TIMER - special CallTrainerHillFunction - setvar VAR_0x8004, FRONTIER_UTIL_FUNC_1 - setvar VAR_0x8005, 5 - special CallFrontierUtilFunc + trainerhill_resumetimer + frontier_get FRONTIER_DATA_BATTLE_OUTCOME compare VAR_RESULT, B_OUTCOME_LOST goto_if_eq TrainerHill_1F_EventScript_Lost compare VAR_RESULT, B_OUTCOME_DREW @@ -28,16 +25,14 @@ TrainerHill_OnFrame: @ 82C8381 EventScript_TrainerHillTimer:: @ 82C8393 lockall - setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_CHALLENGE_TIME - special CallTrainerHillFunction + trainerhill_gettime msgbox TrainerHill_Entrance_Text_ChallengeTime, MSGBOX_DEFAULT releaseall end TrainerHill_1F_EventScript_DummyWarpToEntranceCounter:: @ 82C83A6 setvar VAR_TEMP_2, 1 - setvar VAR_0x8004, TRAINER_HILL_FUNC_CLEAR_RESULT - special CallTrainerHillFunction + trainerhill_clearresult compare VAR_RESULT, 1 @ VAR_RESULT always 0 here goto_if_eq TrainerHill_1F_EventScript_WarpSilentToEntranceCounter end @@ -49,10 +44,8 @@ TrainerHill_1F_EventScript_WarpSilentToEntranceCounter:: @ 82C83BF end TrainerHill_1F_EventScript_Lost:: @ 82C83C9 - setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_ALL_TRAINER_FLAGS - special CallTrainerHillFunction - setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_LOST - special CallTrainerHillFunction + trainerhill_settrainerflags + trainerhill_lost setvar VAR_TEMP_1, 1 end @@ -70,8 +63,7 @@ TrainerHill_1F_Movement_SetInvisible:: @ 82C83EE @ TRAINER_PHILLIP is an actual Trainer on the SS Tidal, but is used as a placeholder here TrainerHill_EventScript_TrainerBattle:: @ 82C83F0 trainerbattle TRAINER_BATTLE_HILL, TRAINER_PHILLIP, 0, BattleFacility_TrainerBattle_PlaceholderText, BattleFacility_TrainerBattle_PlaceholderText - setvar VAR_0x8004, TRAINER_HILL_FUNC_POST_BATTLE_TEXT - special CallTrainerHillFunction + trainerhill_postbattletext waitmessage waitbuttonpress closemessage diff --git a/data/smokescreen.s b/data/smokescreen.s index aeb8e685b..3cd16ee13 100644 --- a/data/smokescreen.s +++ b/data/smokescreen.s @@ -13,11 +13,11 @@ gUnknown_0831C604:: @ 831C604 .byte 0x00, 0x00, 0x00, 0x00 .align 2 -gUnknown_0831C620:: @ 831C620 +gSmokescreenImpactSpriteSheet:: @ 831C620 obj_tiles gSmokescreenImpactTiles, 0x0180, 0xd6eb .align 2 -gUnknown_0831C628:: @ 831C628 +gSmokescreenlImpactSpritePalette:: @ 831C628 obj_pal gSmokescreenImpactPalette, 0xd6eb .align 2 @@ -48,8 +48,8 @@ gUnknown_0831C678:: @ 831C678 .4byte gUnknown_0831C668 .align 2 -gUnknown_0831C688:: @ 831C688 - spr_template 0xd6eb, 0xd6eb, gUnknown_0831C630, gUnknown_0831C678, NULL, gDummySpriteAffineAnimTable, sub_80753B4 +gSmokescreenImpactSpriteTemplate:: @ 831C688 + spr_template 0xd6eb, 0xd6eb, gUnknown_0831C630, gUnknown_0831C678, NULL, gDummySpriteAffineAnimTable, SpriteCB_DestroySprite .align 2 gSpriteSheet_EnemyShadow:: @ 831C6A0 diff --git a/data/specials.inc b/data/specials.inc index 3f8368566..54b1fe46e 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -253,9 +253,9 @@ gSpecials:: @ 81DBA64 def_special CallBattlePikeFunction def_special CallBattlePyramidFunction def_special StopMapMusic - def_special sub_81B99B4 - def_special sub_81B9B80 - def_special sub_81B9D08 + def_special CallVerdanturfTentFunction + def_special CallFallarborTentFunction + def_special CallSlateportTentFunction def_special sub_80F9490 def_special ValidateEReaderTrainer def_special GetBestBattleTowerStreak diff --git a/data/text/apprentice.inc b/data/text/apprentice.inc new file mode 100644 index 000000000..7d5bab198 --- /dev/null +++ b/data/text/apprentice.inc @@ -0,0 +1,2527 @@ +gText_ApprenticeChallenge0:: @ 82B6EA5 + .string "Um, I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice.\n" + .string "Snivel… This tension is getting to me…$" + +gText_ApprenticeChallenge1:: @ 82B6EEC + .string "I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice!\n" + .string "Here we come!$" + +gText_ApprenticeChallenge2:: @ 82B6F16 + .string "I'm the no. {STR_VAR_2} apprentice of {STR_VAR_1}!\n" + .string "Accept my challenge!$" + +gText_ApprenticeChallenge3:: @ 82B6F4C + .string "Um… I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice…\n" + .string "Do you think someone like me can win?$" + +gText_ApprenticeChallenge4:: @ 82B6F92 + .string "I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice!\n" + .string "I'll let you challenge me!$" + +gText_ApprenticeChallenge5:: @ 82B6FC9 + .string "I'm horribly busy, but I also happen\n" + .string "to be {STR_VAR_1}'s no. {STR_VAR_2} apprentice.$" + +gText_ApprenticeChallenge6:: @ 82B700C + .string "I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice.\n" + .string "Glad to meet you!$" + +gText_ApprenticeChallenge7:: @ 82B703A + .string "I serve as {STR_VAR_1}'s no. {STR_VAR_2} apprentice.\n" + .string "May I begin?$" + +gText_ApprenticeChallenge8:: @ 82B706A + .string "Eek! I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice!\n" + .string "I'll do my best!$" + +gText_ApprenticeChallenge9:: @ 82B709C + .string "Yeehaw! I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice!\n" + .string "Put 'em up!$" + +gText_ApprenticeChallenge10:: @ 82B70CC + .string "I'm {STR_VAR_1}'s 1,000th apprentice!\n" + .string "Actually, I'm no. {STR_VAR_2}! Here goes!$" + +gText_ApprenticeChallenge11:: @ 82B710A + .string "Yeah, I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice!\n" + .string "Let's get rockin' and a-rollin'!$" + +gText_ApprenticeChallenge12:: @ 82B714D + .string "Yippee-yahoo! I'm what you call\n" + .string "{STR_VAR_1}'s no. {STR_VAR_2} apprentice!$" + +gText_ApprenticeChallenge13:: @ 82B7185 + .string "Cough! I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice.\n" + .string "Good to meet you! Cough!$" + +gText_ApprenticeChallenge14:: @ 82B71C1 + .string "This is nerve-racking…\n" + .string "I'm the no. {STR_VAR_2} apprentice of {STR_VAR_1}.$" + +gText_ApprenticeChallenge15:: @ 82B71F9 + .string "I am {STR_VAR_1}'s no. {STR_VAR_2} apprentice,\n" + .string "and that's no lie.$" + +gText_ApprenticePleaseTeach0:: @ 82B7229 + .string "Are you… {PLAYER}?\n" + .string "Oh! Sniff…sob…\p" + .string "Oh! S-sorry…\n" + .string "I'm so nervous, I can't help crying…\p" + .string "I'm {STR_VAR_1}, and I really look up\n" + .string "to you, {PLAYER}.\p" + .string "I… I had this dream of one day meeting\n" + .string "you and asking you about POKéMON.\p" + .string "Please, please, {PLAYER}!\n" + .string "Please teach me about POKéMON!$" + +gText_ApprenticeRejectTeaching0:: @ 82B731C + .string "Oh… B-but…\n" + .string "Snivel… Waaaaaaah!\p" + .string "Please!\n" + .string "I'm begging you, please!$" + +gText_ApprenticeWhichLevelMode0:: @ 82B735B + .string "Oh, really? You will?\n" + .string "Awesome! Wicked! Awoooh!\p" + .string "Oh… I'm sorry…\n" + .string "I'm so happy, I'm crying…\p" + .string "Um… Then please tell me!\n" + .string "It's about the BATTLE TOWER.\p" + .string "Which would be better for me: Level 50\n" + .string "or the Open Level?$" + +gText_ApprenticeLevelModeThanks0:: @ 82B7423 + .string "{STR_VAR_1}?\n" + .string "Waaaaah!\p" + .string "Oh! I'm so sorry!\n" + .string "You've made me happy by choosing\l" + .string "the level for me, and it's made me cry…\p" + .string "Snivel…\n" + .string "Thank you so much!\l" + .string "Please talk with me again!$" + +gText_ApprenticePleaseTeach1:: @ 82B74C1 + .string "Wowee! You're {PLAYER}, aren't you?\n" + .string "You're awesomely strong, aren't you?\p" + .string "I'm {STR_VAR_1}!\n" + .string "I just became a TRAINER!\p" + .string "Please, {PLAYER}!\n" + .string "Can you be my teacher and tell me\l" + .string "lots about being a TRAINER?$" + +gText_ApprenticeRejectTeaching1:: @ 82B756F + .string "Aww, why?\n" + .string "Oh, please? Pretty please?\l" + .string "Please be my teacher, please!$" + +gText_ApprenticeWhichLevelMode1:: @ 82B75B2 + .string "Yay! Great!\p" + .string "The first thing I wanted to ask you is\n" + .string "about the BATTLE TOWER!\p" + .string "The Level 50 and Open Level Rooms…\n" + .string "Which would be perfect for me?$" + +gText_ApprenticeLevelModeThanks1:: @ 82B763F + .string "{STR_VAR_1}, huh? That's true!\n" + .string "I'll do my best there!\p" + .string "If we meet here again, please teach\n" + .string "me something else, teacher!$" + +gText_ApprenticePleaseTeach2:: @ 82B76AC + .string "Um… Are you {PLAYER}?\n" + .string "My name is {STR_VAR_1}.\p" + .string "I want to become a POKéMON TRAINER,\n" + .string "but I don't know what to do…\p" + .string "So I thought maybe I could ask you for\n" + .string "advice because you're so famous.\p" + .string "{PLAYER}, could you give me advice?$" + +gText_ApprenticeRejectTeaching2:: @ 82B7772 + .string "Oh, but…\p" + .string "I sincerely want to become a POKéMON\n" + .string "TRAINER!\p" + .string "Please, can you answer my questions?$" + +gText_ApprenticeWhichLevelMode2:: @ 82B77CE + .string "Thank you!\n" + .string "Here's my first question right away!\p" + .string "The BATTLE TOWER has two levels,\n" + .string "Level 50 and Open Level, right?\p" + .string "Which level do you think is more\n" + .string "suitable for me?$" + +gText_ApprenticeLevelModeThanks2:: @ 82B7871 + .string "Oh, the {STR_VAR_1} challenge?\n" + .string "Understood!\p" + .string "If I have another question, I'll come\n" + .string "back here for your advice!$" + +gText_ApprenticePleaseTeach3:: @ 82B78D4 + .string "Oh? Huh? You're…\n" + .string "No, that can't be true.\p" + .string "There isn't any way that someone\n" + .string "like me could meet {PLAYER}.\p" + .string "…You really are {PLAYER}?\n" + .string "I can't believe I'm talking to you!\p" + .string "When something this good happens,\n" + .string "only terrible things will happen to me\l" + .string "now, I just know it…\p" + .string "…I'm sorry…\n" + .string "I'm… {STR_VAR_1}…\p" + .string "There isn't anything special about\n" + .string "me that I can be proud of…\p" + .string "I shouldn't even say anything about\n" + .string "myself because you'll forget…\p" + .string "I had this dream that if I ever met\n" + .string "you, {PLAYER}, that maybe I could ask\l" + .string "you for advice as a TRAINER.\p" + .string "But I don't think you would agree\n" + .string "to that.\p" + .string "…Or will you be so kind as to give\n" + .string "me advice?$" + +gText_ApprenticeRejectTeaching3:: @ 82B7B1A + .string "I knew it…\p" + .string "It had to happen because I'm such\n" + .string "a really boring nobody…\p" + .string "But I thought just maybe…\n" + .string "You won't reconsider, will you?\p" + .string "But I can't give up just like that.\n" + .string "I'll ask you while I'm still lucky!\p" + .string "Please, will you be so kind as to give\n" + .string "me advice?$" + +gText_ApprenticeWhichLevelMode3:: @ 82B7C13 + .string "Really? I can't believe it!\n" + .string "I can't believe you'll advise me!\l" + .string "I… I'm so happy…\p" + .string "What I want to ask you is really\n" + .string "trivial, but I can't decide…\p" + .string "At the BATTLE TOWER, they let you\n" + .string "choose Level 50 or Open Level.\p" + .string "Which course do you think even I may\n" + .string "have a chance at?$" + +gText_ApprenticeLevelModeThanks3:: @ 82B7D18 + .string "{STR_VAR_1}? Okay!\n" + .string "But do you really think someone like\l" + .string "me would have a chance?\p" + .string "I'll do my best, even though I don't\n" + .string "think it will work.\p" + .string "Thank you very much for spending\n" + .string "time with someone like me.$" + +gText_ApprenticePleaseTeach4:: @ 82B7DD4 + .string "Oh! You're {PLAYER}{KUN}, aren't you?\p" + .string "I've heard that you're tough at\n" + .string "POKéMON!\p" + .string "I'm {STR_VAR_1}!\n" + .string "I'll be your friend!\p" + .string "Did you know?\p" + .string "You can't win at the BATTLE FRONTIER\n" + .string "if all you know is what they teach at\l" + .string "the TRAINER'S SCHOOL.\p" + .string "I'm willing to listen to your advice.\n" + .string "You'll agree, of course?$" + +gText_ApprenticeRejectTeaching4:: @ 82B7EE5 + .string "Huh? Why are you refusing me?\n" + .string "It's me who's asking you!\l" + .string "You have to reconsider!$" + +gText_ApprenticeWhichLevelMode4:: @ 82B7F35 + .string "Okay, so there is this something.\n" + .string "I want you to decide it for me.\p" + .string "You know that the BATTLE TOWER has\n" + .string "Level 50 and Open Level Rooms?\p" + .string "Which do you think would be good\n" + .string "for me, {PLAYER}{KUN}?$" + +gText_ApprenticeLevelModeThanks4:: @ 82B7FE8 + .string "Okay, {STR_VAR_1} is suitable for me?\n" + .string "Thank you!\p" + .string "Knowing that you made the decision,\n" + .string "{PLAYER}{KUN}, I won't be so upset if\l" + .string "I lose.\p" + .string "Okay, I'll look to you for advice again.\n" + .string "Bye!$" + +gText_ApprenticePleaseTeach5:: @ 82B8087 + .string "Oh, hi, there! {PLAYER}{KUN}!\n" + .string "I know you because you're famous!\l" + .string "Call me {STR_VAR_1}! Glad to meet you!\p" + .string "I'm a TRIATHLETE, so I keep myself\n" + .string "fit even while I raise POKéMON.\p" + .string "I'm also involved with other things\n" + .string "like work, napping, ballroom dancing…\p" + .string "Being this busy, it's not so easy for\n" + .string "me to become a decent TRAINER.\p" + .string "So, I have a proposition!\p" + .string "There must be a reason why we met.\n" + .string "So, {PLAYER}{KUN}, how about sharing your\l" + .string "wisdom with me every so often?$" + +gText_ApprenticeRejectTeaching5:: @ 82B822B + .string "Oh, but, please?\n" + .string "A guy like me needs someone like\l" + .string "you, {PLAYER}{KUN}!\p" + .string "Honestly, I need your advice!$" + +gText_ApprenticeWhichLevelMode5:: @ 82B8286 + .string "Thank you! That's more like it!\n" + .string "So, let's start with an easy one!\p" + .string "You know about the BATTLE TOWER's\n" + .string "two courses, right?\l" + .string "You know, Level 50 and Open Level.\p" + .string "Me being a busy guy, which one should\n" + .string "I gear up for?$" + +gText_ApprenticeLevelModeThanks5:: @ 82B8356 + .string "{STR_VAR_1}, huh? Okay, gotcha.\n" + .string "I'll find time somehow and give it a go!\p" + .string "…Whoops, I'd better go to work!\n" + .string "Thanks! See you around!$" + +gText_ApprenticePleaseTeach6:: @ 82B83CE + .string "No way! Uh-uh!\n" + .string "Are you maybe the real {PLAYER}?\p" + .string "A-hah! Awesome! I'm {STR_VAR_1},\n" + .string "so pleased to meet you!\p" + .string "{PLAYER}, you're very strong,\n" + .string "aren't you?\p" + .string "Everyone's talking about you!\p" + .string "Oh! I just had this great idea!\n" + .string "I'll get advice off you, {PLAYER}!\l" + .string "I'm sure it will make me tougher!\p" + .string "Isn't it a great idea?\n" + .string "Please, I want your advice!$" + +gText_ApprenticeRejectTeaching6:: @ 82B84FC + .string "Ahahaha, you can pretend to be mean,\n" + .string "but you can't fool me!\l" + .string "You really mean okay, don't you?$" + +gText_ApprenticeWhichLevelMode6:: @ 82B8559 + .string "Yay! I knew you'd have a big heart,\n" + .string "{PLAYER}!\p" + .string "What should I ask you first?\n" + .string "…Oh, I thought of something!\p" + .string "Drum roll, please!\n" + .string "The question I have is…\p" + .string "If I were to take a BATTLE TOWER\n" + .string "challenge, which way should I go?\p" + .string "Level 50 or Open Level?\n" + .string "Which suits me more?$" + +gText_ApprenticeLevelModeThanks6:: @ 82B8656 + .string "Oh-oh-oh!\n" + .string "{STR_VAR_1}, you say!\l" + .string "Thank you for a totally cool reply!\p" + .string "I guess that's about all I wanted\n" + .string "to ask you today.\p" + .string "Let's meet here again, okay?\n" + .string "Thanks!$" + +gText_ApprenticePleaseTeach7:: @ 82B86EA + .string "I beg your pardon, but…\n" + .string "Are you {PLAYER}?\p" + .string "I'm {STR_VAR_1}, and I am delighted to\n" + .string "make your acquaintance.\p" + .string "I have long been an admirer\n" + .string "of yours…\p" + .string "… … … … … …\p" + .string "Um… I hope you don't find this\n" + .string "request too much of a burden, but…\p" + .string "May I become your apprentice,\n" + .string "{PLAYER}?$" + +gText_ApprenticeRejectTeaching7:: @ 82B87DA + .string "Oh…!\p" + .string "… … … … … …\n" + .string "… … … … … …\p" + .string "…I must have fainted from shock.\n" + .string "I'm sorry, I must have misheard you.\p" + .string "Please! Please say that you will\n" + .string "accept me as your apprentice!$" + +gText_ApprenticeWhichLevelMode7:: @ 82B887C + .string "Oh… I'm delighted!\p" + .string "I don't wish to waste your time,\n" + .string "so please advise me on this.\p" + .string "I plan to take a BATTLE TOWER\n" + .string "challenge soon.\p" + .string "However, there are two levels…\p" + .string "Which would be most suitable for me?\n" + .string "Level 50 or Open Level?$" + +gText_ApprenticeLevelModeThanks7:: @ 82B8957 + .string "{STR_VAR_1} is your choice!\n" + .string "I see. I will do my best!\p" + .string "Thank you, {PLAYER}.\n" + .string "I hope I can count on you again.\l" + .string "Please take care!$" + +gText_ApprenticePleaseTeach8:: @ 82B89C6 + .string "Eek! Eek! {PLAYER}!\n" + .string "You spoke to me!\l" + .string "I… I'm overjoyed!\p" + .string "Me! My name is {STR_VAR_1}!\n" + .string "I just became a TRAINER!\p" + .string "I'm delighted I met you, {PLAYER},\n" + .string "the big name in POKéMON circles!\p" + .string "Oh-oh-oh, I know!\n" + .string "May I ask a huge favor, {PLAYER}?\p" + .string "Please take me in as your apprentice!\n" + .string "I want to learn from you!$" + +gText_ApprenticeRejectTeaching8:: @ 82B8ACF + .string "Waaaah!\n" + .string "{PLAYER} turned me down…\l" + .string "It… It's an invaluable experience!\p" + .string "{PLAYER}, please! I want to hear\n" + .string "an affirmative answer this time!\p" + .string "I beg you for your guidance!$" + +gText_ApprenticeWhichLevelMode8:: @ 82B8B66 + .string "Hieeeeh! {PLAYER} said yes!\n" + .string "{PLAYER} said yes!\p" + .string "I won't be able to sleep tonight…\n" + .string "Thank you ever so much!\p" + .string "Then, here's my question!\p" + .string "At the BATTLE TOWER, what is right\n" + .string "for me, Level 50 or Open Level?$" + +gText_ApprenticeLevelModeThanks8:: @ 82B8C20 + .string "{STR_VAR_1}! Perfectly understood!\n" + .string "I understand perfectly!\l" + .string "I'm deliriously delighted!\p" + .string "I hope you'll be willing to teach me\n" + .string "some more another time.$" + +gText_ApprenticePleaseTeach9:: @ 82B8CAA + .string "Whoa! Could you be…\n" + .string "Might you be… {PLAYER}{KUN}?!\l" + .string "That strong and famous TRAINER?\l" + .string "Well, hello, aren't I just the luckiest!\p" + .string "Hello, the name's {STR_VAR_1}!\p" + .string "I've been on the lookout for\n" + .string "a POKéMON teacher.\p" + .string "And with impeccably good timing,\n" + .string "along came you, {PLAYER}{KUN}!\p" + .string "So, there you have it, {PLAYER}{KUN}!\n" + .string "Let me apprentice under you!$" + +gText_ApprenticeRejectTeaching9:: @ 82B8DD3 + .string "Gwaaaah!\n" + .string "You're quite cool and tough…\p" + .string "Don't be that way, please.\n" + .string "I'm asking you!$" + +gText_ApprenticeWhichLevelMode9:: @ 82B8E24 + .string "Oh, yeah! That's a solid reply!\n" + .string "Excellent, I might add!\p" + .string "So how about a first piece of advice\n" + .string "on the BATTLE TOWER?\p" + .string "If I were to go, what would be better?\n" + .string "Level 50 or Open Level?$" + +gText_ApprenticeLevelModeThanks9:: @ 82B8ED5 + .string "Uh-huh, {STR_VAR_1} it is!\n" + .string "OK, A-OK!\l" + .string "I'll go show my mettle, like, jam!\p" + .string "All right, I'll look to you as my mentor!\n" + .string "Adios!$" + +gText_ApprenticePleaseTeach10:: @ 82B8F45 + .string "Oh, hey, {PLAYER}{KUN}, right?\n" + .string "The police were looking for you!\p" + .string "… … …\n" + .string "Of course I'm lying!\p" + .string "Me, I'm {STR_VAR_1}. Despite the way\n" + .string "I look, I'm the POKéMON CHAMPION!\l" + .string "…That's a lie, too!\p" + .string "This is no lie, though.\n" + .string "I'm not very good at battling.\p" + .string "So, how about you becoming my master\n" + .string "about all things POKéMON?$" + +gText_ApprenticeRejectTeaching10:: @ 82B905F + .string "If you're going to act cold like that,\n" + .string "I'll show you what I'll do!\p" + .string "Waaah! Waaah! Waaah!\n" + .string "Hiccup!\p" + .string "Hahaha, that was my FAKE TEARS!\p" + .string "Come on, will you please be\n" + .string "my POKéMON master?$" + +gText_ApprenticeWhichLevelMode10:: @ 82B910E + .string "Yippee!\n" + .string "I'll buy you a boat for that!\p" + .string "Of course I'm lying again!\n" + .string "But… Thank you, master!\p" + .string "You know how there's Level 50 and\n" + .string "Open Level at the BATTLE TOWER?\p" + .string "I'm having trouble deciding which\n" + .string "level I should challenge…\p" + .string "Can you decide for me, master?$" + +gText_ApprenticeLevelModeThanks10:: @ 82B9204 + .string "Okay, so {STR_VAR_1} is better!\n" + .string "I'll go to the other level, then!\p" + .string "Just kidding!\n" + .string "I'll obey your teaching, master!\p" + .string "Thanks, master!\n" + .string "I hope you'll keep teaching me!$" + +gText_ApprenticePleaseTeach11:: @ 82B929C + .string "A-H-O-Y!\n" + .string "And that spells ahoy, and it means hi!\p" + .string "I'm {STR_VAR_1}, the rappin' SAILOR\n" + .string "am I!\p" + .string "Your turn now, tell me a little about\n" + .string "yourself, give it a try!\p" + .string "Uh-huh, uh-huh!\n" + .string "{PLAYER}{KUN}'s your name,\l" + .string "and POKéMON's your game!\p" + .string "And you're at a delicate age\n" + .string "when all the world's your stage!\p" + .string "Anyway, I just want to say,\n" + .string "that you're the tenth TRAINER\l" + .string "I've spoken to today.\p" + .string "Let's make that a celebration!\n" + .string "Become my mentor for commemoration!$" + +gText_ApprenticeRejectTeaching11:: @ 82B9438 + .string "But!\n" + .string "You have to work with me!\p" + .string "Don't be such a tease!\n" + .string "Become my mentor, please!$" + +gText_ApprenticeWhichLevelMode11:: @ 82B9488 + .string "That's it!\n" + .string "{PLAYER}, you've got the spirit!\p" + .string "So here's my first question\n" + .string "that begs your suggestion!\p" + .string "It's about the BATTLE TOWER,\n" + .string "and it hinges on my power!\p" + .string "Level 50 and Open Level there be,\n" + .string "which is the one that's good for me?$" + +gText_ApprenticeLevelModeThanks11:: @ 82B9564 + .string "Okay, {STR_VAR_1} it is, you say!\n" + .string "I'll go and take it on my way!\p" + .string "If it's advice I ever need,\n" + .string "{PLAYER}, your word I'll always heed!$" + +gText_ApprenticePleaseTeach12:: @ 82B95D8 + .string "Say, hey, aren't you {PLAYER}?\n" + .string "What should I do? Talk to you?\l" + .string "Why not? I'm already talking to you!\p" + .string "{PLAYER}, are you surprised at me?\n" + .string "I'd better tell you who I happen to be!\p" + .string "{STR_VAR_1} is what you can call me.\n" + .string "The brightest star in guitardom,\l" + .string "that's me!\p" + .string "Are you receiving me?\n" + .string "You are receiving me!\p" + .string "My luck's at its best,\n" + .string "I'll hit you with a request!\p" + .string "{PLAYER}, let me be your underling!\n" + .string "I want you to teach me everything!$" + +gText_ApprenticeRejectTeaching12:: @ 82B9763 + .string "You're turning me down, then?\n" + .string "I'll just have to ask you again!\p" + .string "{PLAYER}, I beg to be your underling!\n" + .string "I need you to teach me everything!$" + +gText_ApprenticeWhichLevelMode12:: @ 82B97E5 + .string "Lucky, yeah, woohoo!\n" + .string "Should I pop a question to you?\p" + .string "Since we're near the BATTLE TOWER,\n" + .string "how about a question about its power?\p" + .string "Of the choices you see,\n" + .string "which is the right one for me?$" + +gText_ApprenticeLevelModeThanks12:: @ 82B989A + .string "If {STR_VAR_1} is what you suggest,\n" + .string "it must be the very best!\p" + .string "Well, {PLAYER}, I have to roam free,\n" + .string "but don't you forget about me.\p" + .string "See you again, my smart friend!$" + +gText_ApprenticePleaseTeach13:: @ 82B992D + .string "Oh, hi! You there!\n" + .string "Can I get you to massage my shoulder?\p" + .string "…Yes, there! That's it!\n" + .string "Ouch, ouch! Oooh, that feels great!\p" + .string "My name's {STR_VAR_1}.\n" + .string "I take karate training, but my body's\l" + .string "not built to take the abuse…\p" + .string "I decided I'll battle POKéMON and\n" + .string "toughen myself up.\p" + .string "You're {PLAYER}{KUN}, aren't you?\n" + .string "The POKéMON LEAGUE CHAMP?\p" + .string "Listen, can I get you to give me\n" + .string "advice?$" + +gText_ApprenticeRejectTeaching13:: @ 82B9A84 + .string "Oh, why?\p" + .string "I won't be a big bother, I promise!\n" + .string "Please?$" + +gText_ApprenticeWhichLevelMode13:: @ 82B9AB9 + .string "Thank you. Mighty good of you!\n" + .string "…Cough! Cough!\p" + .string "Oogh, I have to toughen up quick…\p" + .string "I'll be heading off to the BATTLE TOWER\n" + .string "right away, but what would be better\l" + .string "for me? Level 50 or Open Level?$" + +gText_ApprenticeLevelModeThanks13:: @ 82B9B76 + .string "Hm, all right. That's {STR_VAR_1}.\n" + .string "I'll go there right away.\p" + .string "I hope I can keep hitting you up for\n" + .string "help--after all, you're my mentor!$" + +gText_ApprenticePleaseTeach14:: @ 82B9BF2 + .string "Er… Um…\n" + .string "{PLAYER}{KUN}…?\p" + .string "Please, don't look at me that way.\n" + .string "You're making me all self-conscious.\p" + .string "I… I'm {STR_VAR_1}.\p" + .string "I'm really embarrassed to say this,\n" + .string "but I explore ancient ruins and such.\p" + .string "I'm even more embarrassed to admit\n" + .string "I'm interested in the BATTLE FRONTIER.\p" + .string "{PLAYER}{KUN}, you have a reputation as\n" + .string "a tough TRAINER…\p" + .string "It's hard for me to say this,\n" + .string "but I want to ask something.\p" + .string "Could you become my teacher and\n" + .string "give me advice?$" + +gText_ApprenticeRejectTeaching14:: @ 82B9D83 + .string "Please don't brush me off like this!\n" + .string "I can't live with the humiliation.\p" + .string "Please become my teacher!\n" + .string "I need your advice!$" + +gText_ApprenticeWhichLevelMode14:: @ 82B9DF9 + .string "Th-thank you…\p" + .string "But please don't look at me like that.\n" + .string "It makes me all flustered.\p" + .string "Please, answer me without looking\n" + .string "at my eyes.\p" + .string "At the BATTLE TOWER…\n" + .string "Which level should I attempt?$" + +gText_ApprenticeLevelModeThanks14:: @ 82B9EAA + .string "Oh… Okay!\n" + .string "I'll try my hand at that.\p" + .string "I hope I can make a valiant challenge\n" + .string "without getting all flustered…\p" + .string "Thank you, {PLAYER}{KUN}.\n" + .string "If we meet again, I hope you will be\l" + .string "as helpful.$" + +gText_ApprenticePleaseTeach15:: @ 82B9F55 + .string "Hm? You appear to be {PLAYER}{KUN}…\n" + .string "But are you really real?\p" + .string "You may call me {STR_VAR_1}.\p" + .string "I have been toying with the idea of\n" + .string "apprenticing under a strong TRAINER.\p" + .string "So, I must say I'm lucky you came along!\n" + .string "…You really are {PLAYER}{KUN}, yes?\p" + .string "No, no, if you are real, it's fine.\n" + .string "I merely want you to recognize me\l" + .string "as your apprentice.$" + +gText_ApprenticeRejectTeaching15:: @ 82BA084 + .string "Oh?\n" + .string "But what would compel you to refuse?\p" + .string "I apologize for being skeptical about\n" + .string "your identity.\p" + .string "Please accept my apology and\n" + .string "accept me as your apprentice.$" + +gText_ApprenticeWhichLevelMode15:: @ 82BA11D + .string "You really are accepting me?\n" + .string "I don't wish to celebrate prematurely.\p" + .string "If it is true, I apologize.\n" + .string "But now, I need your advice.\p" + .string "If I were to enter the BATTLE TOWER,\n" + .string "what would be worthy of me?\l" + .string "Level 50 or Open Level?$" + +gText_ApprenticeLevelModeThanks15:: @ 82BA1F3 + .string "{STR_VAR_1}?\n" + .string "Are you certain?\p" + .string "I see. If that's the case, that's fine.\n" + .string "I thank you for your time.\p" + .string "I realize I can annoy, but it delights\n" + .string "me that you have accepted me.\p" + .string "Let us meet again!$" + +gText_ApprenticeWhatHeldItem0:: @ 82BA2A3 + .string "Sigh… Sob…\n" + .string "Oh, {PLAYER}!\p" + .string "I'm all tangled up in a dilemma\n" + .string "that I can't decide.\p" + .string "I can't decide what I should make\n" + .string "my {STR_VAR_1} hold.\p" + .string "Please tell me, {PLAYER}.\n" + .string "What item should I make it hold?$" + +gText_ApprenticeHoldNothing0:: @ 82BA34E + .string "Oh, really? I shouldn't make\n" + .string "my {STR_VAR_1} hold anything?$" + +gText_ApprenticeThanksNoHeldItem0:: @ 82BA380 + .string "Oh, okay! I'm delighted it's settled!\n" + .string "Awesome! Wicked! Awoooh!\p" + .string "Thank you so much!$" + +gText_ApprenticeThanksHeldItem0:: @ 82BA3D2 + .string "Oh, I'm so glad…\n" + .string "I think I have that {STR_VAR_1}, too.\p" + .string "I'm delighted it's settled!\n" + .string "Awesome! Wicked! Awoooh!\p" + .string "Thank you so much!$" + +gText_ApprenticeItemAlreadyRecommended0:: @ 82BA448 + .string "Waaaah! Please don't be mean!\p" + .string "That item {STR_VAR_1} was already\n" + .string "recommended to me before, sob…\p" + .string "Or do you mean I shouldn't make\n" + .string "my {STR_VAR_2} hold anything?$" + +gText_ApprenticeWhatHeldItem1:: @ 82BA4D3 + .string "Yay! It's {PLAYER}!\n" + .string "Great! I wanted to ask you something!\p" + .string "Do you make your POKéMON hold items?\n" + .string "I want to make mine hold items, but…\p" + .string "What item would be good for\n" + .string "{STR_VAR_1} to hold?\p" + .string "What do you think?$" + +gText_ApprenticeHoldNothing1:: @ 82BA58C + .string "Huh? You mean my {STR_VAR_1} doesn't\n" + .string "have to hold anything?$" + +gText_ApprenticeThanksNoHeldItem1:: @ 82BA5BF + .string "Oh, I get it! I'll do that!\n" + .string "Thanks for teaching me!$" + +gText_ApprenticeThanksHeldItem1:: @ 82BA5F3 + .string "Oh, wow! One {STR_VAR_1}, huh?\n" + .string "Okay, I'll do that!\p" + .string "Thanks for teaching me!$" + +gText_ApprenticeItemAlreadyRecommended1:: @ 82BA635 + .string "Oh, uh, no, that's not what I meant.\n" + .string "I want to know about a different item\l" + .string "than the ones I already know.\p" + .string "Or do you mean that my POKéMON doesn't\n" + .string "have to hold anything this time?$" + +gText_ApprenticeWhatHeldItem2:: @ 82BA6E6 + .string "{PLAYER}, hello!\n" + .string "It's about my {STR_VAR_1}…\p" + .string "I want to make it hold a good item.\n" + .string "What would be good for it?$" + +gText_ApprenticeHoldNothing2:: @ 82BA742 + .string "Oh, then my {STR_VAR_1} doesn't have\n" + .string "to hold anything?$" + +gText_ApprenticeThanksNoHeldItem2:: @ 82BA770 + .string "Okay, I got it!\n" + .string "See you again!$" + +gText_ApprenticeThanksHeldItem2:: @ 82BA78F + .string "Oh, the item {STR_VAR_1}?\n" + .string "Understood!\p" + .string "I'll do my best to find one!\n" + .string "See you again!$" + +gText_ApprenticeItemAlreadyRecommended2:: @ 82BA7D8 + .string "Somebody taught me about\n" + .string "the {STR_VAR_1} already.\p" + .string "I want my POKéMON to hold a different\n" + .string "kind of item.\p" + .string "Or do you think {STR_VAR_2} doesn't\n" + .string "have to hold anything?$" + +gText_ApprenticeWhatHeldItem3:: @ 82BA867 + .string "Hello, {PLAYER}…\n" + .string "I'm sorry to disturb you, but I have\l" + .string "something else I wanted to ask you.\p" + .string "I don't think I'm good enough to win\n" + .string "matches on my own, so I'm thinking of\l" + .string "making my {STR_VAR_1} hold an item.\p" + .string "But I don't know what would be good.\p" + .string "{PLAYER}, please, could you decide\n" + .string "for me?$" + +gText_ApprenticeHoldNothing3:: @ 82BA96B + .string "A POKéMON belonging to someone like me\n" + .string "would be better off without an item?$" + +gText_ApprenticeThanksNoHeldItem3:: @ 82BA9B7 + .string "I understand…\n" + .string "You're saying I shouldn't rely on items.\l" + .string "I'll do my best not to!\p" + .string "Thank you very much!$" + +gText_ApprenticeThanksHeldItem3:: @ 82BAA1B + .string "The item {STR_VAR_1}, okay.\n" + .string "I'm not sure if I can get one…\l" + .string "No! I'll do my best to get it.\p" + .string "Thank you very much!$" + +gText_ApprenticeItemAlreadyRecommended3:: @ 82BAA81 + .string "Oh, but…\n" + .string "I think I've heard about that before…\p" + .string "Is it maybe because I haven't handled\n" + .string "the item {STR_VAR_1} very well?\p" + .string "Or do you mean I shouldn't make\n" + .string "my {STR_VAR_2} hold anything?$" + +gText_ApprenticeWhatHeldItem4:: @ 82BAB22 + .string "Oh, {PLAYER}{KUN}.\n" + .string "There's something I wanted to ask you.\p" + .string "You know how you decided which\n" + .string "POKéMON I should have for me?\p" + .string "But I never asked you what item\n" + .string "it should be holding.\p" + .string "Since you already gave me advice,\n" + .string "how about seeing this to the end?\p" + .string "What would be good? I want to make\n" + .string "my {STR_VAR_1} hold something.$" + +gText_ApprenticeHoldNothing4:: @ 82BAC43 + .string "Oh! So my {STR_VAR_1} should do\n" + .string "the best it can empty-handed?$" + +gText_ApprenticeThanksNoHeldItem4:: @ 82BAC78 + .string "If you think that's best, I'll do that.\p" + .string "Knowing that you made the decision,\n" + .string "{PLAYER}{KUN}, I won't be so upset if\l" + .string "I lose.\p" + .string "Okay, I'll look to you for advice again.\n" + .string "Bye!$" + +gText_ApprenticeThanksHeldItem4:: @ 82BAD17 + .string "The item {STR_VAR_1}, huh?\n" + .string "Not bad. I'll use it!\p" + .string "Knowing that you made the decision,\n" + .string "{PLAYER}{KUN}, I won't be so upset if\l" + .string "I lose.\p" + .string "Okay, I'll look to you for advice again.\n" + .string "Bye!$" + +gText_ApprenticeItemAlreadyRecommended4:: @ 82BADB6 + .string "Huh? What are you saying?\n" + .string "You told me about the {STR_VAR_1}\l" + .string "already before.\p" + .string "Or do you mean my {STR_VAR_2} should\n" + .string "do the best it can empty-handed?$" + +gText_ApprenticeWhatHeldItem5:: @ 82BAE36 + .string "Yo, {PLAYER}{KUN}!\p" + .string "We're both busy, but we seem to run\n" + .string "into each other often anyway!\p" + .string "Today I have to do some walking,\n" + .string "cleaning, and brushing.\p" + .string "I haven't even had the time to buy\n" + .string "my precious {STR_VAR_1} anything.\p" + .string "I don't have any time, so how about\n" + .string "giving me advice on what I should make\l" + .string "my {STR_VAR_1} hold?$" + +gText_ApprenticeHoldNothing5:: @ 82BAF4E + .string "Oh, so me being a busy guy, you say\n" + .string "my {STR_VAR_1} doesn't need anything?$" + +gText_ApprenticeThanksNoHeldItem5:: @ 82BAF8F + .string "Okay, gotcha.\n" + .string "I won't need any time for that.\p" + .string "Thanks today!\n" + .string "See you around!$" + +gText_ApprenticeThanksHeldItem5:: @ 82BAFDB + .string "Okay, gotcha.\n" + .string "I'll find time somehow and find\l" + .string "that {STR_VAR_1} you recommended.\p" + .string "I'm glad I met a good mentor in you.\n" + .string "Thanks! See you around!$" + +gText_ApprenticeItemAlreadyRecommended5:: @ 82BB05F + .string "Huh? I already know about\n" + .string "that {STR_VAR_1}.\p" + .string "Oh, right, I get it.\n" + .string "So me being a busy guy, you say\l" + .string "my {STR_VAR_2} doesn't need anything?$" + +gText_ApprenticeWhatHeldItem6:: @ 82BB0D4 + .string "Hiya, {PLAYER}! It's me!\n" + .string "I need to tap your mind again today.\l" + .string "Please, I need your advice!\p" + .string "Drum roll, please!\n" + .string "The question I have is…\p" + .string "If I want to make my {STR_VAR_1} hold\n" + .string "an item, what should it be?$" + +gText_ApprenticeHoldNothing6:: @ 82BB18C + .string "Is that right? My {STR_VAR_1} doesn't\n" + .string "need to hold an item, you're saying.$" + +gText_ApprenticeThanksNoHeldItem6:: @ 82BB1CE + .string "Okay, that's what I'll do!\p" + .string "I guess that's about all I wanted\n" + .string "to ask you today.\p" + .string "Let's meet here again, okay?\n" + .string "Thanks!$" + +gText_ApprenticeThanksHeldItem6:: @ 82BB242 + .string "Uh-huh! One {STR_VAR_1}.\n" + .string "What a cool choice!\l" + .string "I'll definitely try that!\p" + .string "I guess that's about all I wanted\n" + .string "to ask you today.\p" + .string "Let's meet here again, okay?\n" + .string "Thanks!$" + +gText_ApprenticeItemAlreadyRecommended6:: @ 82BB2D9 + .string "Ahahah! That's silly!\n" + .string "You already told me about that\l" + .string "{STR_VAR_1} before!\p" + .string "Are you feeling okay, {PLAYER}?\p" + .string "Oh, wait! My {STR_VAR_2} doesn't\n" + .string "need to hold an item, you're saying.$" + +gText_ApprenticeWhatHeldItem7:: @ 82BB370 + .string "Hello, {PLAYER}. I hope you've been\n" + .string "keeping well.\p" + .string "May I approach you for advice?\p" + .string "In a recent battle, my opponent\n" + .string "seemed to have given his POKéMON\l" + .string "an item to hold.\p" + .string "As a result, I was defeated…\p" + .string "I don't wish to be left behind.\n" + .string "I would like to make my {STR_VAR_1}\l" + .string "hold an item, too.\p" + .string "It would please me if you could decide\n" + .string "what would be right for my POKéMON…$" + +gText_ApprenticeHoldNothing7:: @ 82BB4C3 + .string "In other words… My POKéMON has\n" + .string "no need to hold an item?$" + +gText_ApprenticeThanksNoHeldItem7:: @ 82BB4FB + .string "I understand clearly now!\n" + .string "I will keep trying like this.\p" + .string "Thank you, {PLAYER}.\n" + .string "I hope I can count on you again.\l" + .string "Please take care!$" + +gText_ApprenticeThanksHeldItem7:: @ 82BB575 + .string "One {STR_VAR_1} it is!\n" + .string "I will order it right away.\p" + .string "Thank you, {PLAYER}.\n" + .string "I hope I can count on you again.\l" + .string "Please take care!$" + +gText_ApprenticeItemAlreadyRecommended7:: @ 82BB5E1 + .string "You've already told me about that,\n" + .string "and I already have it.\p" + .string "Or are you saying… My POKéMON has\n" + .string "no need to hold an item?$" + +gText_ApprenticeWhatHeldItem8:: @ 82BB656 + .string "Eek! {PLAYER}!\n" + .string "I… I'm overjoyed to see you again!\p" + .string "Oh-oh-oh! There's something I just\n" + .string "had to ask you, {PLAYER}!\p" + .string "Please decide what my {STR_VAR_1}\n" + .string "should be holding!$" + +gText_ApprenticeHoldNothing8:: @ 82BB6E5 + .string "Oh, wow! I didn't expect that answer!\n" + .string "So, a hold item isn't necessary?$" + +gText_ApprenticeThanksNoHeldItem8:: @ 82BB72C + .string "Perfectly understood!\n" + .string "I'll keep at this without an item!\p" + .string "I hope you'll be willing to teach me\n" + .string "some more another time.$" + +gText_ApprenticeThanksHeldItem8:: @ 82BB7A2 + .string "{STR_VAR_1}! I'll use that!\p" + .string "Um… Could it be, {PLAYER}, you also\n" + .string "make your POKéMON hold that item?\p" + .string "I'll be sure to get it!\n" + .string "I hope you'll be willing to teach me\l" + .string "some more another time.$" + +gText_ApprenticeItemAlreadyRecommended8:: @ 82BB84A + .string "Oh? You recommended that\n" + .string "{STR_VAR_1} before, too.\p" + .string "Or is it the best thing to hold?\n" + .string "Or do you mean that my {STR_VAR_2}\l" + .string "doesn't need anything to hold?$" + +gText_ApprenticeWhatHeldItem9:: @ 82BB8CD + .string "Hola!\n" + .string "My maestro, {PLAYER}{KUN}!\p" + .string "I want to hit you up for advice on\n" + .string "POKéMON tools.\p" + .string "What do you think would be good for\n" + .string "my {STR_VAR_1} to hold?\p" + .string "Don't be shy now.\n" + .string "Let's blurt it out!$" + +gText_ApprenticeHoldNothing9:: @ 82BB970 + .string "Oh? So, you're saying my {STR_VAR_1}\n" + .string "can win without holding any item?$" + +gText_ApprenticeThanksNoHeldItem9:: @ 82BB9AE + .string "Si, bueno!\n" + .string "I'll give it my best shot, like, slam!\p" + .string "All right, thanks, as always!\n" + .string "Adios!$" + +gText_ApprenticeThanksHeldItem9:: @ 82BBA05 + .string "Uh-huh, that's one {STR_VAR_1}?\n" + .string "Si, bueno!\l" + .string "I'll go find me one, like, bam!\p" + .string "All right, thanks, as always!\n" + .string "Adios!$" + +gText_ApprenticeItemAlreadyRecommended9:: @ 82BBA6C + .string "No, no! You already told me about\n" + .string "that {STR_VAR_1} thing before.\p" + .string "Oh, now wait just one minute here…\n" + .string "So, you're saying my {STR_VAR_2}\l" + .string "can win without holding any item?$" + +gText_ApprenticeWhatHeldItem10:: @ 82BBB01 + .string "{PLAYER}{KUN}, something unbelievable\n" + .string "has happened!\p" + .string "I woke up this morning, and my POKéMON\n" + .string "had 10 NUGGETS!\p" + .string "Of course I'm lying!\n" + .string "Wahahaha!\p" + .string "This is no lie, though.\n" + .string "I'm not very good at thinking about\l" + .string "what items POKéMON should hold.\p" + .string "So, how about deciding for me what\n" + .string "my {STR_VAR_1} should hold, master?$" + +gText_ApprenticeHoldNothing10:: @ 82BBC1C + .string "What's that mean?\n" + .string "Don't make it hold anything?$" + +gText_ApprenticeThanksNoHeldItem10:: @ 82BBC4B + .string "Okay, so it shouldn't hold anything.\n" + .string "Then, I'd better get something for it!\p" + .string "Just kidding!\n" + .string "I'll obey your teaching, master!\p" + .string "Thanks, master!\n" + .string "I hope you'll keep teaching me!$" + +gText_ApprenticeThanksHeldItem10:: @ 82BBCF6 + .string "Okay, so it's one {STR_VAR_1}!\n" + .string "I'll make it hold anything but that!\p" + .string "Just kidding!\n" + .string "I'll obey your teaching, master!\p" + .string "Thanks, master!\n" + .string "I hope you'll keep teaching me!$" + +gText_ApprenticeItemAlreadyRecommended10:: @ 82BBD90 + .string "Um, you told me about that before,\n" + .string "didn't you?\p" + .string "Isn't there something else?\p" + .string "Or do you mean, don't make\n" + .string "my {STR_VAR_2} hold anything?$" + +gText_ApprenticeWhatHeldItem11:: @ 82BBE0B + .string "A-H-O-Y!\n" + .string "And that spells ahoy!\p" + .string "The rappin' SAILOR am I!\n" + .string "I present to you a question\l" + .string "that's pretty fly!\p" + .string "It's an item question\n" + .string "that begs your suggestion!\p" + .string "My {STR_VAR_1} needs an item to hold,\n" + .string "What should it be, if I may be bold?$" + +gText_ApprenticeHoldNothing11:: @ 82BBEE5 + .string "Is that right?\n" + .string "My {STR_VAR_1} doesn't need to be\l" + .string "holding anything tight?$" + +gText_ApprenticeThanksNoHeldItem11:: @ 82BBF25 + .string "Okay, I hear you, sure I do!\n" + .string "My POKéMON will go empty-handed, too!\p" + .string "If it's advice I ever need,\n" + .string "{PLAYER}, your word I'll always heed!$" + +gText_ApprenticeThanksHeldItem11:: @ 82BBFA4 + .string "Okay, one {STR_VAR_1},\n" + .string "that's what I'll use.\l" + .string "I was right to make you choose!\p" + .string "If it's advice I ever need,\n" + .string "{PLAYER}, your word I'll always heed!$" + +gText_ApprenticeItemAlreadyRecommended11:: @ 82BC024 + .string "Okay, one {STR_VAR_1}, you say?\n" + .string "You told me that the other day.\l" + .string "I need a new idea, a brand new way.\p" + .string "Or, what, is that right?\n" + .string "My POKéMON doesn't need to hold\l" + .string "anything tight?$" + +gText_ApprenticeWhatHeldItem12:: @ 82BC0C8 + .string "Say, hey, {PLAYER}!\n" + .string "I found you again today!\p" + .string "What should I do? Get your advice?\n" + .string "Why not? I'm already talking to you!\p" + .string "{PLAYER}, are you getting sick of me?\n" + .string "Nah, no way, that can't be.\p" + .string "Will you hear me out?\n" + .string "I'm looking for advice--that's what\l" + .string "I'm talking about.\p" + .string "It's about a hold item for\n" + .string "my {STR_VAR_1} that'd be good.\l" + .string "My indecision is making me brood.$" + +gText_ApprenticeHoldNothing12:: @ 82BC213 + .string "My {STR_VAR_1} needs nothing?\n" + .string "Doesn't need to hold anything?$" + +gText_ApprenticeThanksNoHeldItem12:: @ 82BC247 + .string "If holding nothing is the best,\n" + .string "I'll do as you suggest!\p" + .string "Well, {PLAYER}, I have to roam free,\n" + .string "but don't you forget about me.\p" + .string "See you again, my smart friend!$" + +gText_ApprenticeThanksHeldItem12:: @ 82BC2DD + .string "If holding that {STR_VAR_1} is\n" + .string "the best, I'll do as you suggest!\p" + .string "Well, {PLAYER}, I have to roam free,\n" + .string "but don't you forget about me.\p" + .string "See you again, my smart friend!$" + +gText_ApprenticeItemAlreadyRecommended12:: @ 82BC373 + .string "Haven't I heard about that\n" + .string "{STR_VAR_1} before?\l" + .string "I'm certain I have, that's for sure!\p" + .string "I need a new something!\n" + .string "Or, my {STR_VAR_2} needs nothing?\l" + .string "Doesn't need to hold anything?$" + +gText_ApprenticeWhatHeldItem13:: @ 82BC40E + .string "Gwah! Ouch! {PLAYER}{KUN}, my arm's broken!\n" + .string "Don't touch it, please!\p" + .string "I must've broken it while I was trying\n" + .string "out different hold items with my posse\l" + .string "of POKéMON.\p" + .string "So, things being this way,\n" + .string "I need you to decide for me.\p" + .string "{PLAYER}{KUN}, what do you think would be\n" + .string "good for my {STR_VAR_1} to hold?$" + +gText_ApprenticeHoldNothing13:: @ 82BC514 + .string "Ouch…\p" + .string "So your suggestion is my {STR_VAR_1}\n" + .string "doesn't have to hold anything?$" + +gText_ApprenticeThanksNoHeldItem13:: @ 82BC555 + .string "Hm, all right. That would be easier\n" + .string "for me, the way things are now.\p" + .string "I hope I can keep hitting you up\n" + .string "for help like this.$" + +gText_ApprenticeThanksHeldItem13:: @ 82BC5CE + .string "Hm, all right. That's one {STR_VAR_1}.\n" + .string "My POKéMON's arm is fine, so I'll make\l" + .string "it hold that item right away.\p" + .string "I hope I can keep hitting you up\n" + .string "for help like this.$" + +gText_ApprenticeItemAlreadyRecommended13:: @ 82BC666 + .string "No, no, you told me about that\n" + .string "{STR_VAR_1} before, remember?\p" + .string "How about telling me something\n" + .string "even better?\p" + .string "Oh, wait a second.\n" + .string "So your suggestion is my {STR_VAR_2}\l" + .string "doesn't have to hold anything?$" + +gText_ApprenticeWhatHeldItem14:: @ 82BC714 + .string "Er… Um…\n" + .string "{PLAYER}{KUN}…\p" + .string "Please, don't look at me that way.\n" + .string "My POKéMON don't have anything.\p" + .string "I… I'm really embarrassed about this,\n" + .string "but I really need your advice.\p" + .string "I can't decide what hold item would\n" + .string "make my {STR_VAR_1} strong.\p" + .string "{PLAYER}{KUN}, what do you think would\n" + .string "be good?$" + +gText_ApprenticeHoldNothing14:: @ 82BC808 + .string "Oh… Then, you think it would be better\n" + .string "if my {STR_VAR_1} didn't have an item?$" + +gText_ApprenticeThanksNoHeldItem14:: @ 82BC84D + .string "Oh… Okay!\n" + .string "I'll go without an item.\p" + .string "This is nerve-racking, though.\n" + .string "Wouldn't it be too cool?\p" + .string "Thank you, {PLAYER}{KUN}.\n" + .string "If we meet again, I hope you will be\l" + .string "as helpful.$" + +gText_ApprenticeThanksHeldItem14:: @ 82BC8EA + .string "Oh… Okay!\n" + .string "I'll go with that {STR_VAR_1}.\p" + .string "This is nerve-racking, though.\n" + .string "Wouldn't it be too cool?\p" + .string "Thank you, {PLAYER}{KUN}.\n" + .string "If we meet again, I hope you will be\l" + .string "as helpful.$" + +gText_ApprenticeItemAlreadyRecommended14:: @ 82BC984 + .string "B-but I already heard about that.\p" + .string "Please don't brush me off like this!\n" + .string "I can't live with the humiliation.\p" + .string "Oh… Am I jumping to conclusions?\n" + .string "Do you think it would be better if\l" + .string "my {STR_VAR_2} didn't have an item?$" + +gText_ApprenticeWhatHeldItem15:: @ 82BCA4D + .string "Hm? You appear to be {PLAYER}{KUN}…\n" + .string "But are you really?\l" + .string "Perhaps you're a twin?\p" + .string "Oh, no, no, no, don't worry!\n" + .string "If you really are {PLAYER}, please\l" + .string "forget about my rudeness.\p" + .string "What I would like is some more of\n" + .string "your fine advice.\p" + .string "I have here my {STR_VAR_1} that I wish\n" + .string "to make hold a convenient item.\p" + .string "What would be worthy of it?$" + +gText_ApprenticeHoldNothing15:: @ 82BCB75 + .string "It's better if it held nothing?\n" + .string "Are you certain?$" + +gText_ApprenticeThanksNoHeldItem15:: @ 82BCBA6 + .string "I see. If that's the case, that's fine.\n" + .string "I thank you for your time.\p" + .string "Let us meet again!$" + +gText_ApprenticeThanksHeldItem15:: @ 82BCBFC + .string "One {STR_VAR_1}?\n" + .string "Are you certain?\p" + .string "I see. If that's the case, that's fine.\n" + .string "I thank you for your time.\p" + .string "I do hope my POKéMON will be able to\n" + .string "put it to good use.\p" + .string "Let us meet again!$" + +gText_ApprenticeItemAlreadyRecommended15:: @ 82BCCA4 + .string "No, no, wait a minute.\n" + .string "I believe you taught me that before.\p" + .string "I would like you to recommend\n" + .string "something different this time.\p" + .string "Perhaps you're suggesting that\n" + .string "my {STR_VAR_2} should hold nothing?\l" + .string "Are you certain?$" + +gText_ApprenticeWhichMonFirst0:: @ 82BCD68 + .string "Waah, {PLAYER}!\n" + .string "I have a dilemma, sob…\p" + .string "I want to begin battling other people,\n" + .string "but I don't know what to do.\p" + .string "How should I line up my POKéMON\n" + .string "so they'll be at their strongest?\p" + .string "Please tell me, {PLAYER}.\n" + .string "If you were me, which of these POKéMON\l" + .string "would you send out first?$" + +gText_ApprenticeMonFirstThanks0:: @ 82BCE64 + .string "My {STR_VAR_1} should go first?\n" + .string "Waaaaah!\p" + .string "Oh! I'm so sorry!\n" + .string "You've made me happy by choosing\l" + .string "my first POKéMON, and it's made me cry…\p" + .string "Thank you so much!$" + +gText_ApprenticeWhichMonFirst1:: @ 82BCEF2 + .string "Yay! It's {PLAYER}!\n" + .string "Great! I wanted to ask you something!\p" + .string "Um, of my POKéMON, which do you\n" + .string "think should go out first?$" + +gText_ApprenticeMonFirstThanks1:: @ 82BCF61 + .string "My {STR_VAR_1}? That's true.\n" + .string "Okay, I'll do that!\p" + .string "Thanks for teaching me!$" + +gText_ApprenticeWhichMonFirst2:: @ 82BCFA1 + .string "{PLAYER}, hello!\p" + .string "I think, in a battle, it's very important\n" + .string "which POKéMON comes out first.\p" + .string "Out of the POKéMON that I have,\n" + .string "which would be good to send out first?$" + +gText_ApprenticeMonFirstThanks2:: @ 82BD03C + .string "My {STR_VAR_1} goes first?\n" + .string "Okay, I got it!\p" + .string "See you again!$" + +gText_ApprenticeWhichMonFirst3:: @ 82BD06D + .string "Hello, {PLAYER}…\n" + .string "I'm sorry to disturb you again with\l" + .string "another question.\p" + .string "I have so little confidence, I don't\n" + .string "know what I'd do without you, {PLAYER}.\p" + .string "It may be a waste of time for me to\n" + .string "even worry about it, but I just can't\l" + .string "decide something…\p" + .string "Which of my POKéMON should I send\n" + .string "out first in a battle?$" + +gText_ApprenticeMonFirstThanks3:: @ 82BD18A + .string "My {STR_VAR_1}?\n" + .string "Understood!\p" + .string "I can't believe that you would bother\n" + .string "to answer my questions so often!\p" + .string "I'm so grateful that you would even\n" + .string "speak with me… Thank you!$" + +gText_ApprenticeWhichMonFirst4:: @ 82BD222 + .string "Oh, {PLAYER}{KUN}! It's me!\n" + .string "I'm so glad to see you because I have\l" + .string "this little problem.\p" + .string "I can't decide how my POKéMON should\n" + .string "be lined up. Could you decide for me?\p" + .string "Oh, you don't need to decide the whole\n" + .string "party right now.\p" + .string "How about deciding just the first\n" + .string "POKéMON for me?$" + +gText_ApprenticeMonFirstThanks4:: @ 82BD325 + .string "My {STR_VAR_1}? That's great!\p" + .string "Knowing that you made the decision,\n" + .string "{PLAYER}{KUN}, I won't be so upset if\l" + .string "I lose.\p" + .string "Okay, I'll look to you for advice again.\n" + .string "Bye!$" + +gText_ApprenticeWhichMonFirst5:: @ 82BD3B1 + .string "Hi, my teacher {PLAYER}{KUN}!\n" + .string "I'm busy again today!\p" + .string "I have to do some cycling, shopping,\n" + .string "and humming.\p" + .string "I haven't even had the time to decide\n" + .string "how to line up my POKéMON team.\p" + .string "So, how about checking out my team?\n" + .string "Which one should go first?$" + +gText_ApprenticeMonFirstThanks5:: @ 82BD493 + .string "Okay, gotcha.\n" + .string "I have enough time at least to put\l" + .string "my {STR_VAR_1} at the head of the line!\p" + .string "Whoops, my girlfriend's waiting!\n" + .string "Thanks! See you around!$" + +gText_ApprenticeWhichMonFirst6:: @ 82BD51C + .string "Yoohoo! Hiya, {PLAYER}!\n" + .string "You always walk around looking tough!\p" + .string "Listen, I need something from you\n" + .string "again! It's the usual thing!\p" + .string "Drum roll, please!\n" + .string "The question I have is about my team.\p" + .string "Which POKéMON of mine should be first\n" + .string "to go out in a battle?$" + +gText_ApprenticeMonFirstThanks6:: @ 82BD609 + .string "Hmhm!\n" + .string "My {STR_VAR_1}, you say!\l" + .string "Thanks for a most cool answer!\p" + .string "I guess that's about all I wanted\n" + .string "to ask you today.\p" + .string "Let's meet here again, okay?\n" + .string "Thanks!$" + +gText_ApprenticeWhichMonFirst7:: @ 82BD697 + .string "Thank you so much for stopping to\n" + .string "chat with me, {PLAYER}.\p" + .string "I know I'm taking advantage of your\n" + .string "kindness, but may I ask for advice?\p" + .string "I would like you to decide on the order\n" + .string "of my POKéMON team.\p" + .string "It would please me if you could decide\n" + .string "which POKéMON should come first.$" + +gText_ApprenticeMonFirstThanks7:: @ 82BD797 + .string "My {STR_VAR_1} it is!\n" + .string "I will put it first right away!\p" + .string "Thank you, {PLAYER}.\n" + .string "I hope I can count on you again.\l" + .string "Please take care!$" + +gText_ApprenticeWhichMonFirst8:: @ 82BD806 + .string "Eek! {PLAYER}!\n" + .string "I… I'm overjoyed to see you again!\p" + .string "My POKéMON have become much\n" + .string "stronger!\p" + .string "But I don't always win. It seems to\n" + .string "depend on which POKéMON goes first.\p" + .string "{PLAYER}, please, I need your help!\p" + .string "Please decide which of my POKéMON\n" + .string "should go out first!$" + +gText_ApprenticeMonFirstThanks8:: @ 82BD8F5 + .string "Sigh… I'm overwhelmed with happiness…\p" + .string "It's like a dream having you decide\n" + .string "for me, {PLAYER}.\p" + .string "But perfectly understood!\n" + .string "I will go with my {STR_VAR_1} first!\p" + .string "I hope you'll be willing to teach me\n" + .string "some more another time.$" + +gText_ApprenticeWhichMonFirst9:: @ 82BD9BE + .string "Hello, hello!\n" + .string "My mentor, {PLAYER}{KUN}!\l" + .string "Hit me with your sage advice today!\p" + .string "You see, I pulled together a team of\n" + .string "three POKéMON. So far so good.\p" + .string "But the team's battling order's not\n" + .string "settled yet.\p" + .string "This is where you come in, {PLAYER}{KUN}!\n" + .string "You decide which POKéMON leads off!\p" + .string "Don't be shy now.\n" + .string "Let's blurt it out!$" + +gText_ApprenticeMonFirstThanks9:: @ 82BDAE1 + .string "Uh-huh, my {STR_VAR_1} leads off!\n" + .string "OK, A-OK!\l" + .string "I'll reorder the lineup, like, wham!\p" + .string "All right, thanks, as always!\n" + .string "Adios!$" + +gText_ApprenticeWhichMonFirst10:: @ 82BDB4E + .string "{PLAYER}{KUN}, listen!\n" + .string "It's a crisis!\p" + .string "My POKéMON, all three of them, go into\n" + .string "battle at once!\p" + .string "Of course that's impossible!\n" + .string "Wahahaha!\p" + .string "This is no lie, though.\n" + .string "I'm not very good at thinking about\l" + .string "how I should line up my POKéMON.\p" + .string "So, how about deciding for me which\n" + .string "POKéMON should go first, master?$" + +gText_ApprenticeMonFirstThanks10:: @ 82BDC6B + .string "Okay, so it's my {STR_VAR_1} you chose?\n" + .string "I'll let any but that one go first!\p" + .string "Just kidding!\n" + .string "I'll obey your teaching, master!\p" + .string "Thanks, master!\n" + .string "I hope you'll keep teaching me!$" + +gText_ApprenticeWhichMonFirst11:: @ 82BDD0D + .string "A-H-O-Y!\n" + .string "And that spells ahoy!\p" + .string "The rappin' SAILOR am I!\n" + .string "I present to you a question\l" + .string "that's pretty fly!\p" + .string "It's a team lineup question\n" + .string "that begs your suggestion!\p" + .string "Out of this lot, which should go first\n" + .string "as the first on the spot?$" + +gText_ApprenticeMonFirstThanks11:: @ 82BDDEC + .string "Okay, I hear you, sure I do!\n" + .string "I'll switch them up, that I'll do!\p" + .string "If it's advice I ever need,\n" + .string "{PLAYER}, your word I'll always heed!$" + +gText_ApprenticeWhichMonFirst12:: @ 82BDE68 + .string "Yahoo, {PLAYER}!\n" + .string "How do you do?\p" + .string "What should I do? Go ahead and ask?\n" + .string "Uh-huh, I have something to ask!\l" + .string "Are you receiving me?\l" + .string "You are receiving me!\p" + .string "You have to decide, which of my\n" + .string "POKéMON is the first to ride!\l" + .string "Into battle, I mean to say.$" + +gText_ApprenticeMonFirstThanks12:: @ 82BDF4D + .string "My {STR_VAR_1}? Yes!\n" + .string "That'll do, there's no distress!\p" + .string "Well, {PLAYER}, I have to roam free,\n" + .string "but don't you forget about me.\p" + .string "See you again, my smart friend!$" + +gText_ApprenticeWhichMonFirst13:: @ 82BDFD8 + .string "…Oof…ooch… {PLAYER}{KUN}…\n" + .string "My stomach's hurting all of a sudden…\p" + .string "…It's getting better now…\p" + .string "I must've worried myself sick racking\n" + .string "my brains on how I should line up\l" + .string "my posse of POKéMON.\p" + .string "So, things being this way,\n" + .string "I need you to decide for me.\p" + .string "{PLAYER}{KUN}, which of my POKéMON should\n" + .string "go first? So I'd win, I mean.$" + +gText_ApprenticeMonFirstThanks13:: @ 82BE0FD + .string "Hm, all right.\n" + .string "My {STR_VAR_1} goes first.\p" + .string "I'll fix the lineup like that after\n" + .string "I have my supper.\p" + .string "I hope I can keep hitting you up\n" + .string "for help like this.$" + +gText_ApprenticeWhichMonFirst14:: @ 82BE189 + .string "Er… Um…\n" + .string "{PLAYER}{KUN}?\p" + .string "Please, don't look at me that way.\n" + .string "You're making me feel all flustered.\p" + .string "Um…\n" + .string "I really need your advice.\p" + .string "It makes me bashful to say this,\n" + .string "but I chose my 3-POKéMON team.\l" + .string "I can't decide on the order, though.\p" + .string "Which POKéMON should I send out first\n" + .string "so I at least look capable?$" + +gText_ApprenticeMonFirstThanks14:: @ 82BE2A5 + .string "Oh… Okay!\n" + .string "I'll lead with my {STR_VAR_1}.\p" + .string "I hope I can do my best without\n" + .string "getting all flustered.\p" + .string "Thank you, {PLAYER}{KUN}.\n" + .string "If we meet again, I hope you will be\l" + .string "as helpful.$" + +gText_ApprenticeWhichMonFirst15:: @ 82BE33E + .string "Hm? You appear to be {PLAYER}{KUN}…\n" + .string "But are you really?\l" + .string "Perhaps you're a clever look-alike?\p" + .string "Oh, no, no, no, don't worry!\n" + .string "If you really are {PLAYER}, please\l" + .string "forget about my rudeness.\p" + .string "What I would like is your fine advice.\p" + .string "I have here my POKéMON team.\n" + .string "I would like you to tell me which one\l" + .string "should go first in a battle.$" + +gText_ApprenticeMonFirstThanks15:: @ 82BE46C + .string "My {STR_VAR_1}…\n" + .string "You aren't pulling my leg?\p" + .string "I see. If that's the case, that's fine.\n" + .string "I thank you for your time.\p" + .string "I am as you see, but I shall do\n" + .string "my best.\p" + .string "Let us meet again!$" + +gText_ApprenticeWhichMon0:: @ 82BE50D + .string "Snivel…\n" + .string "Oh, {PLAYER}!\p" + .string "What perfect timing!\n" + .string "There's something I just can't decide…\p" + .string "I can't decide which POKéMON I should\n" + .string "be using.\p" + .string "I can't decide between the POKéMON\n" + .string "{STR_VAR_1} and {STR_VAR_2}…\p" + .string "{PLAYER}, which do you think will give\n" + .string "even me a chance at winning?$" + +gText_ApprenticeMonThanks0:: @ 82BE5F5 + .string "Snivel… I… I understand!\n" + .string "Oh! I'm so sorry!\l" + .string "You've made me so happy, I'm crying…\p" + .string "I'll do my best to catch one\n" + .string "{STR_VAR_1}!\p" + .string "Thank you so much!$" + +gText_ApprenticeWhichMon1:: @ 82BE679 + .string "Yay! It's {PLAYER}!\n" + .string "Yay, you came at the right time, too!\l" + .string "I need your advice again!\p" + .string "Um, I'm all mixed up--should I use\n" + .string "my {STR_VAR_1} or {STR_VAR_2}…\p" + .string "Which do you think I should raise,\n" + .string "{PLAYER}?$" + +gText_ApprenticeMonThanks1:: @ 82BE71E + .string "Oh, so my {STR_VAR_1} is better!\n" + .string "Okay, I'll do that!\p" + .string "Thanks for teaching me!$" + +gText_ApprenticeWhichMon2:: @ 82BE762 + .string "{PLAYER}, hello!\n" + .string "I have a question I wanted to ask.\p" + .string "I'm in a dilemma over whether I should\n" + .string "raise one {STR_VAR_1} or {STR_VAR_2}.\p" + .string "Which POKéMON do you think will\n" + .string "be stronger?$" + +gText_ApprenticeMonThanks2:: @ 82BE7F8 + .string "{STR_VAR_1} is your choice?\n" + .string "Okay, I got it!\p" + .string "I'll go catch a strong {STR_VAR_1}\n" + .string "right away!\p" + .string "See you again!$" + +gText_ApprenticeWhichMon3:: @ 82BE850 + .string "Hello, {PLAYER}…\p" + .string "Um, you've probably already forgotten\n" + .string "about someone like me…\p" + .string "…But that doesn't matter if you\n" + .string "could give me advice…\p" + .string "I can't decide on the one kind of\n" + .string "POKéMON I should raise…\p" + .string "I've narrowed the field to the POKéMON\n" + .string "{STR_VAR_1} and {STR_VAR_2}, but that's\l" + .string "where I became stuck…\p" + .string "{PLAYER}, you probably don't want to\n" + .string "bother, but please decide for me.$" + +gText_ApprenticeMonThanks3:: @ 82BE99C + .string "But will a wild {STR_VAR_1} even pay\n" + .string "attention to me?\p" + .string "I will try!\p" + .string "But will I even be able to catch one…\n" + .string "No! I'll do my best!\p" + .string "Thank you!$" + +gText_ApprenticeWhichMon4:: @ 82BEA1B + .string "Oh, {PLAYER}{KUN}! I'm so glad to see you!\n" + .string "I was about to go looking for you!\p" + .string "Can you decide what kind of POKéMON\n" + .string "I should use?\p" + .string "For instance…\n" + .string "How about the POKéMON {STR_VAR_1}\l" + .string "and {STR_VAR_2}?\p" + .string "Which one do you think would be\n" + .string "better?$" + +gText_ApprenticeMonThanks4:: @ 82BEAE9 + .string "{STR_VAR_1}? That's great!\p" + .string "Knowing that you made the decision,\n" + .string "{PLAYER}{KUN}, I won't be so upset if\l" + .string "I lose.\p" + .string "Okay, I'll look to you for advice again.\n" + .string "Bye!$" + +gText_ApprenticeWhichMon5:: @ 82BEB72 + .string "If it isn't {PLAYER}{KUN}! How's it going?\n" + .string "I'm busy again as always!\p" + .string "I want to do good with POKéMON, too,\n" + .string "but I haven't been able to decide\l" + .string "which POKéMON I should use.\p" + .string "You know how {STR_VAR_1} look strong?\n" + .string "But {STR_VAR_2} are tough to ignore.\p" + .string "{PLAYER}{KUN}, give me some of your good\n" + .string "advice! Which one'd be good for me?$" + +gText_ApprenticeMonThanks5:: @ 82BEC8E + .string "Okay, gotcha.\n" + .string "I'll find time somehow and catch me\l" + .string "that {STR_VAR_1} you recommended.\p" + .string "I'm glad I met a good mentor in you.\n" + .string "Thanks! See you around!$" + +gText_ApprenticeWhichMon6:: @ 82BED16 + .string "Oh!\n" + .string "Yay, it's {PLAYER}!\p" + .string "I didn't waste any time boasting to\n" + .string "my friends about meeting you!\p" + .string "I need to tap your mind again today.\n" + .string "It's an easy one for you!\p" + .string "Drum roll, please!\n" + .string "The question I have is…\p" + .string "If I were to raise a POKéMON,\n" + .string "and the choices were one {STR_VAR_1}\l" + .string "or {STR_VAR_2}, which should it be?$" + +gText_ApprenticeMonThanks6:: @ 82BEE29 + .string "Ahhh!\n" + .string "{STR_VAR_1}, you say!\l" + .string "Thanks for a most cool answer!\p" + .string "I guess that's about all I wanted\n" + .string "to ask you today.\p" + .string "Let's meet here again, okay?\n" + .string "Thanks!$" + +gText_ApprenticeWhichMon7:: @ 82BEEB4 + .string "Oh, is it you, {PLAYER}?\n" + .string "I'm delighted to see you again!\p" + .string "Ever since I became your apprentice,\n" + .string "my confidence has been blooming.\p" + .string "I think I'm ready to raise a POKéMON\n" + .string "of my own!\p" + .string "{PLAYER}, may I impose on you to choose\n" + .string "which POKéMON I should raise?\p" + .string "The choices are the POKéMON\n" + .string "{STR_VAR_1} or {STR_VAR_2}…\l" + .string "Which POKéMON is right for me?$" + +gText_ApprenticeMonThanks7:: @ 82BEFE2 + .string "One {STR_VAR_1} it is!\n" + .string "I will find one right away!\p" + .string "Thank you, {PLAYER}.\n" + .string "I hope I can count on you again.\l" + .string "Please take care!$" + +gText_ApprenticeWhichMon8:: @ 82BF04E + .string "Eek! {PLAYER}! I met you again!\n" + .string "I… I'm overjoyed!\p" + .string "Oh-oh-oh, I know!\n" + .string "I shouldn't pass up this opportunity!\p" + .string "May I ask a huge favor, {PLAYER}?\n" + .string "Please choose a POKéMON for me!\p" + .string "Please decide which would be better,\n" + .string "{STR_VAR_1} or {STR_VAR_2}!$" + +gText_ApprenticeMonThanks8:: @ 82BF11D + .string "Wow! You decided for me!\n" + .string "One {STR_VAR_1} is what I'll raise to\l" + .string "the best of my ability.\p" + .string "I hope you'll be willing to teach me\n" + .string "some more another time.$" + +gText_ApprenticeWhichMon9:: @ 82BF1A8 + .string "Hey, hey!\n" + .string "My mentor, {PLAYER}{KUN}!\p" + .string "Hello, I've been looking for you\n" + .string "for some more of your sage advice!\p" + .string "Which kind of POKéMON would be right\n" + .string "for me, one {STR_VAR_1} or {STR_VAR_2}?\p" + .string "Don't be shy now.\n" + .string "Let's blurt it out!$" + +gText_ApprenticeMonThanks9:: @ 82BF268 + .string "Uh-huh, one {STR_VAR_1} it is!\n" + .string "OK, A-OK!\l" + .string "I'll get one in a BALL, like, cram!\p" + .string "All right, thanks, as always!\n" + .string "Adios!$" + +gText_ApprenticeWhichMon10:: @ 82BF2D1 + .string "{PLAYER}{KUN}, listen! Big news!\n" + .string "I caught a mirage POKéMON!\p" + .string "Of course I'm lying!\n" + .string "Wahahaha!\p" + .string "This is no lie, though.\n" + .string "I'm not very good at catching\l" + .string "POKéMON.\p" + .string "So, how about deciding for me which\n" + .string "kind of POKéMON I should catch,\l" + .string "master?\p" + .string "Which would be better?\n" + .string "{STR_VAR_1} or {STR_VAR_2}?$" + +gText_ApprenticeMonThanks10:: @ 82BF3CF + .string "Okay, so it's {STR_VAR_1} you chose?\n" + .string "I'll grab the other kind, then!\p" + .string "Just kidding!\n" + .string "I'll obey your teaching, master!\p" + .string "Thanks, master!\n" + .string "I hope you'll keep teaching me!$" + +gText_ApprenticeWhichMon11:: @ 82BF46A + .string "A-H-O-Y!\n" + .string "And that spells ahoy!\p" + .string "The rappin' SAILOR am I!\n" + .string "Surely you remember who am I?\p" + .string "Today, I have a POKéMON question\n" + .string "that begs your suggestion!\p" + .string "I have the choice between this\n" + .string "{STR_VAR_1} and {STR_VAR_2}, you see.\l" + .string "Which is the one to catch for me?$" + +gText_ApprenticeMonThanks11:: @ 82BF551 + .string "{STR_VAR_1}, you say, hey, hey!\n" + .string "I'll go get me one right away!\p" + .string "If it's advice I ever need,\n" + .string "{PLAYER}, your word I'll always heed!$" + +gText_ApprenticeWhichMon12:: @ 82BF5C3 + .string "Oh, wow, if it isn't {PLAYER}!\p" + .string "What should I do? Get your advice?\n" + .string "Why not? I'm already talking to you!\p" + .string "It's been a long time. Let me break\n" + .string "the ice. I'm also looking for advice!\l" + .string "Are you receiving me?\l" + .string "You are receiving me!\p" + .string "My POKéMON--which should I use?\n" + .string "It's either {STR_VAR_1} or {STR_VAR_2}.\l" + .string "Which do you choose?$" + +gText_ApprenticeMonThanks12:: @ 82BF6E5 + .string "If that {STR_VAR_1} is the best,\n" + .string "I'll do as you suggest!\p" + .string "Well, {PLAYER}, I have to roam free,\n" + .string "but don't you forget about me.\p" + .string "See you again, my smart friend!$" + +gText_ApprenticeWhichMon13:: @ 82BF773 + .string "Oh, hi, {PLAYER}{KUN}…\n" + .string "I have this horrible headache…\p" + .string "I must've worried too much about\n" + .string "the kind of POKéMON I should raise.\p" + .string "So, things being this way,\n" + .string "I need you to decide for me.\p" + .string "{PLAYER}{KUN}, if I had to choose between\n" + .string "the POKéMON {STR_VAR_1} and\l" + .string "{STR_VAR_2}, which should it be?$" + +gText_ApprenticeMonThanks13:: @ 82BF869 + .string "Hm, one {STR_VAR_1}, all right.\n" + .string "I'll go look for one when I get better.\p" + .string "I hope I can keep hitting you up\n" + .string "for help like this.$" + +gText_ApprenticeWhichMon14:: @ 82BF8DD + .string "Er… Um…\n" + .string "{PLAYER}{KUN}…?\p" + .string "Please, don't look at me that way.\n" + .string "I'm getting all flustered…\l" + .string "I… I need your advice.\p" + .string "I… I'm really embarrassed, but I can't\n" + .string "decide which POKéMON to use.\p" + .string "If the choices were {STR_VAR_1} or\n" + .string "{STR_VAR_2}, which would be better?$" + +gText_ApprenticeMonThanks14:: @ 82BF9BA + .string "Oh… Okay!\n" + .string "I'll do my best with one {STR_VAR_1}.\p" + .string "I hope I can do my best without\n" + .string "getting all flustered.\p" + .string "Thank you, {PLAYER}{KUN}.\n" + .string "If we meet again, I hope you will be\l" + .string "as helpful.$" + +gText_ApprenticeWhichMon15:: @ 82BFA5A + .string "Hm? You appear to be {PLAYER}{KUN}…\n" + .string "But are you really real?\p" + .string "No, no, if you are real, it's fine.\n" + .string "Incidentally, I would like to obtain\l" + .string "your advice.\p" + .string "It's about the POKéMON I am to use.\p" + .string "If the choices are the POKéMON\n" + .string "{STR_VAR_1} and {STR_VAR_2}, which is\l" + .string "more worthy of me?$" + +gText_ApprenticeMonThanks15:: @ 82BFB4E + .string "{STR_VAR_1}?\n" + .string "Are you certain?\p" + .string "I see. If that's the case, that's fine.\n" + .string "I thank you for your time.\p" + .string "I do hope it is something even I can\n" + .string "handle with aplomb.\p" + .string "Let us meet again!$" + +gText_ApprenticeWhichMove0:: @ 82BFBF2 + .string "Waaah! Oh, {PLAYER}!\n" + .string "Snivel… Hiccup…\p" + .string "I have a dilemma!\n" + .string "I can't decide on a move for\l" + .string "my {STR_VAR_1}…\p" + .string "Please, please, {PLAYER}.\n" + .string "Can you decide for me?\p" + .string "For my {STR_VAR_1}, which move would\n" + .string "be the better choice: {STR_VAR_2}\l" + .string "or {STR_VAR_3}?$" + +gText_ApprenticeMoveThanks0:: @ 82BFCAE + .string "{STR_VAR_1}?\n" + .string "Waaaaah!\p" + .string "Oh! I'm so sorry, {PLAYER}!\n" + .string "You've made me so happy by deciding\l" + .string "the move, I'm crying…\p" + .string "Snivel…\n" + .string "Thank you so much!$" + +gText_ApprenticeWhichMove1:: @ 82BFD26 + .string "Yay! Hi, {PLAYER}!\n" + .string "I need your advice again!\p" + .string "I want to teach my {STR_VAR_1}\n" + .string "a cool move.\p" + .string "I like either of the moves\n" + .string "{STR_VAR_2} or {STR_VAR_3}.\l" + .string "What's your recommendation?$" + +gText_ApprenticeMoveThanks1:: @ 82BFDB1 + .string "{STR_VAR_1} is better? I guess so!\n" + .string "Okay, I'll go with that!\p" + .string "If we meet here again, please teach\n" + .string "me something else, teacher!$" + +gText_ApprenticeWhichMove2:: @ 82BFE24 + .string "{PLAYER}, hello!\n" + .string "It's about my {STR_VAR_1}, but I'm\l" + .string "worried about its moves.\p" + .string "You see, it's the moves {STR_VAR_2}\n" + .string "and {STR_VAR_3}.\p" + .string "Which is stronger and better for\n" + .string "my {STR_VAR_1}?$" + +gText_ApprenticeMoveThanks2:: @ 82BFEAD + .string "{STR_VAR_1} is your choice?\n" + .string "Okay, I got it!\p" + .string "I'll go teach {STR_VAR_1} to\n" + .string "my POKéMON right away!\p" + .string "See you again!$" + +gText_ApprenticeWhichMove3:: @ 82BFF0A + .string "Ohhh, {PLAYER}…\n" + .string "I'm hopeless, no, really!\p" + .string "I've decided to raise a POKéMON,\n" + .string "but now I can't even decide what\l" + .string "move I should let it learn…\p" + .string "I know that it doesn't mean anything\n" + .string "to you, {PLAYER}.\p" + .string "But it means a lot to me…\p" + .string "Please, {PLAYER}, could you choose\n" + .string "a move for my {STR_VAR_1}?\p" + .string "If you could even choose between\n" + .string "{STR_VAR_2} and {STR_VAR_3}…$" + +gText_ApprenticeMoveThanks3:: @ 82C0032 + .string "I understand!\p" + .string "But will it even be willing to learn\n" + .string "{STR_VAR_1} for me…\l" + .string "No! I'll do my best!\p" + .string "Thank you!$" + +gText_ApprenticeWhichMove4:: @ 82C0090 + .string "Oh, {PLAYER}{KUN}!\n" + .string "I was just hoping to see you, too!\p" + .string "I was wondering what move would\n" + .string "be suitable for my {STR_VAR_1}.\p" + .string "I can't decide, so can you decide\n" + .string "for me instead?\p" + .string "For instance… How about the moves\n" + .string "{STR_VAR_2} and {STR_VAR_3}?\l" + .string "Which one would be better?$" + +gText_ApprenticeMoveThanks4:: @ 82C016E + .string "{STR_VAR_1}? That's great!\p" + .string "Knowing that you made the decision,\n" + .string "{PLAYER}{KUN}, I won't be so upset if\l" + .string "I lose.\p" + .string "Okay, I'll look to you for advice again.\n" + .string "Bye!$" + +gText_ApprenticeWhichMove5:: @ 82C01F7 + .string "How could things be this busy?\n" + .string "Hey, if it isn't {PLAYER}{KUN}!\l" + .string "How's it going?\p" + .string "Since I got up this morning, I've done\n" + .string "my jogging, swimming, and cooking!\p" + .string "You wouldn't believe how busy I am!\p" + .string "I can't even decide what move\n" + .string "my {STR_VAR_1} should learn!\p" + .string "{STR_VAR_2} looks good, huh?\n" + .string "But {STR_VAR_3}'s also decent.\p" + .string "{PLAYER}{KUN}, give me some of your good\n" + .string "advice! Which move'd be good for me?$" + +gText_ApprenticeMoveThanks5:: @ 82C034C + .string "Okay, gotcha.\n" + .string "I'll make room in my schedule and\l" + .string "teach that move.\p" + .string "I'm glad I met a good mentor in you.\n" + .string "Thanks! See you around!$" + +gText_ApprenticeWhichMove6:: @ 82C03CA + .string "Oh! Lucky!\n" + .string "I met you again, {PLAYER}!\l" + .string "I need to tap your mind again today.\p" + .string "Drum roll, please!\n" + .string "The question I have is…\p" + .string "For my {STR_VAR_1}, which is the move\n" + .string "best suited, {STR_VAR_2} or\l" + .string "{STR_VAR_3}?$" + +gText_ApprenticeMoveThanks6:: @ 82C046E + .string "Ahhh!\n" + .string "{STR_VAR_1}, you say!\l" + .string "Thanks for a most cool answer!\p" + .string "I guess that's about all I wanted\n" + .string "to ask you today.\p" + .string "Let's meet here again, okay?\n" + .string "Thanks!$" + +gText_ApprenticeWhichMove7:: @ 82C04F9 + .string "Oh, hello, {PLAYER}.\n" + .string "I trust you've been well?\p" + .string "I have to seek your advice again.\n" + .string "It's about my dearest {STR_VAR_1}.\p" + .string "What would be the ideal move for\n" + .string "my lovable {STR_VAR_1}?\l" + .string "{STR_VAR_2} or {STR_VAR_3}?$" + +gText_ApprenticeMoveThanks7:: @ 82C0598 + .string "{STR_VAR_1} it is!\n" + .string "I will teach that right away!\p" + .string "Thank you, {PLAYER}.\n" + .string "I hope I can count on you again.\l" + .string "Please take care!$" + +gText_ApprenticeWhichMove8:: @ 82C0602 + .string "Eek! {PLAYER}! I met you again!\n" + .string "I… I'm overjoyed!\p" + .string "Whenever I'm in need, you're always\n" + .string "there for me, {PLAYER}!\p" + .string "Today, I want you to recommend\n" + .string "a move for me!\p" + .string "Please choose a move for\n" + .string "my {STR_VAR_1}!\p" + .string "Which move would be better,\n" + .string "{STR_VAR_2} or {STR_VAR_3}?$" + +gText_ApprenticeMoveThanks8:: @ 82C06D8 + .string "Oh-oh-oh! Thank you!\n" + .string "{STR_VAR_1} is it!\l" + .string "Perfectly understood!\p" + .string "I hope you'll be willing to teach me\n" + .string "some more another time.$" + +gText_ApprenticeWhichMove9:: @ 82C074A + .string "Hola, {PLAYER}{KUN}, bueno!\n" + .string "I'm hoping for some more of\l" + .string "your sage advice today!\p" + .string "What would be the best move for\n" + .string "my {STR_VAR_1}?\p" + .string "It should be something that'll\n" + .string "let me win just like that!\p" + .string "Would it be {STR_VAR_2}?\n" + .string "Or {STR_VAR_3}?$" + +gText_ApprenticeMoveThanks9:: @ 82C0809 + .string "Uh-huh, {STR_VAR_1} it is!\n" + .string "Si, bueno!\l" + .string "I'll get it taught, like, ka-blam!\p" + .string "All right, thanks, as always!\n" + .string "Adios!$" + +gText_ApprenticeWhichMove10:: @ 82C086E + .string "{PLAYER}{KUN}, it's completely wild!\p" + .string "My POKéMON!\n" + .string "It learned six moves!\p" + .string "Of course I'm lying!\n" + .string "Wahahaha!\p" + .string "This is no lie, though.\n" + .string "I'm not very good at choosing moves\l" + .string "for my POKéMON.\p" + .string "So, how about deciding for me which\n" + .string "kind of move I should teach?\p" + .string "{STR_VAR_2} or {STR_VAR_3}--which\n" + .string "would go with my {STR_VAR_1} best?$" + +gText_ApprenticeMoveThanks10:: @ 82C0982 + .string "Okay, so it's {STR_VAR_1} you chose?\n" + .string "I'll choose another move, then!\p" + .string "Just kidding!\n" + .string "I'll obey your teaching, master!\p" + .string "Thanks, master!\n" + .string "I hope you'll keep teaching me!$" + +gText_ApprenticeWhichMove11:: @ 82C0A1D + .string "A-H-O-Y!\n" + .string "And that spells ahoy!\p" + .string "The rappin' SAILOR am I!\n" + .string "I'm always with it, don't ask me why.\p" + .string "Today, I have a move question\n" + .string "that begs your suggestion!\p" + .string "{STR_VAR_2} and {STR_VAR_3} are\n" + .string "the moves. What would be the best\l" + .string "for my {STR_VAR_1} so it grooves?$" + +gText_ApprenticeMoveThanks11:: @ 82C0AFD + .string "{STR_VAR_1}, you say, hey, hey!\n" + .string "I'll go teach that right away!\p" + .string "If it's advice I ever need,\n" + .string "{PLAYER}, your word I'll always heed!$" + +gText_ApprenticeWhichMove12:: @ 82C0B6F + .string "Oh, yeahah, if it isn't {PLAYER}!\p" + .string "What should I do? Get your advice?\n" + .string "Why not? I'm already talking to you!\p" + .string "{PLAYER}, are you surprised by me?\n" + .string "I want your advice, can't you see?\p" + .string "Are you receiving me?\n" + .string "You are receiving me!\p" + .string "My {STR_VAR_1}--what should it use?\n" + .string "It's {STR_VAR_2} or {STR_VAR_3},\l" + .string "what do you choose?$" + +gText_ApprenticeMoveThanks12:: @ 82C0C7D + .string "If that {STR_VAR_1} is the best,\n" + .string "I'll do as you suggest!\p" + .string "Well, {PLAYER}, I have to roam free,\n" + .string "but don't you forget about me.\p" + .string "See you again, my smart friend!$" + +gText_ApprenticeWhichMove13:: @ 82C0D0B + .string "Gahack! Gaah! Oh, {PLAYER}{KUN}…\n" + .string "I have this lousy cold, I do…\p" + .string "I want to pick a move for my POKéMON,\n" + .string "but I'm not up to it…\p" + .string "So, things being this way,\n" + .string "I need you to decide for me.\p" + .string "{PLAYER}{KUN}, if I had to choose between\n" + .string "{STR_VAR_2} and {STR_VAR_3} for\l" + .string "my {STR_VAR_1}, which would it be?$" + +gText_ApprenticeMoveThanks13:: @ 82C0DFE + .string "Hm, {STR_VAR_1}, all right. Cough!\n" + .string "I'll go teach it when I get better.\p" + .string "I hope I can keep hitting you up\n" + .string "for help like this.$" + +gText_ApprenticeWhichMove14:: @ 82C0E71 + .string "Er… Um…\n" + .string "{PLAYER}{KUN}…?\p" + .string "Please, don't look at me that way.\n" + .string "I'm getting all flustered…\l" + .string "I… I need your advice.\p" + .string "I… I'm really embarrassed, but I can't\n" + .string "decide what move I should teach\l" + .string "my POKéMON.\p" + .string "It's for my {STR_VAR_1}.\n" + .string "If the choices were {STR_VAR_2} or\l" + .string "{STR_VAR_3}, which would be better?$" + +gText_ApprenticeMoveThanks14:: @ 82C0F6D + .string "Oh… Okay!\n" + .string "I'll try that {STR_VAR_1}.\p" + .string "I hope I can teach that move…\n" + .string "This is so nerve-racking…\p" + .string "Thank you, {PLAYER}{KUN}.\n" + .string "If we meet again, I hope you will be\l" + .string "as helpful.$" + +gText_ApprenticeWhichMove15:: @ 82C1003 + .string "Hm? You appear to be {PLAYER}{KUN}…\n" + .string "But are you really real?\p" + .string "Perhaps you're one of those popular\n" + .string "mimics?\p" + .string "No, no, if you are real, it's fine.\n" + .string "No need to be upset, I assure you!\p" + .string "Incidentally, I would like to obtain\n" + .string "your advice.\p" + .string "It's about my {STR_VAR_1}.\p" + .string "Which move would be better for it to\n" + .string "use, {STR_VAR_2} or {STR_VAR_3}?$" + +gText_ApprenticeMoveThanks15:: @ 82C1122 + .string "{STR_VAR_1}?\n" + .string "There's no question about that?\p" + .string "I see. If that's the case, that's fine.\n" + .string "I thank you for your time.\p" + .string "I do hope it is something even\n" + .string "my POKéMON can learn.\p" + .string "Let us meet again!$" + +gText_ApprenticePickWinSpeech0:: @ 82C11D1 + .string "Oh… {PLAYER}?\n" + .string "It is {PLAYER}!\l" + .string "Oh! Sniff…sob… Please, listen!\p" + .string "I… When I battle, I get so nervous,\n" + .string "I can't help crying even if I win…\p" + .string "I wish I could say something cool\n" + .string "when I win…\p" + .string "Please, please, {PLAYER}!\n" + .string "Could you maybe teach me something\l" + .string "cool to say when I win so I don't cry?$" + +gText_ApprenticeWinSpeechThanks0:: @ 82C12D5 + .string "{STR_VAR_1}\p" + .string "Awesome! Wicked! Awoooh!\n" + .string "It's really cool!\p" + .string "Oh… I'm sorry…\n" + .string "I'm so happy, I'm crying…\p" + .string "Snivel… {PLAYER}!\n" + .string "Thank you so much for everything!\p" + .string "I will battle the best I can for\n" + .string "your sake, {PLAYER}!\p" + .string "{PLAYER}…\n" + .string "Next time… We should battle!$" + +gText_ApprenticePickWinSpeech1:: @ 82C13AB + .string "Yay! It's {PLAYER}! Hello!\n" + .string "I wanted to ask you something!\p" + .string "I want to say something cool when\n" + .string "I win a match.\p" + .string "Do you have a cool saying that\n" + .string "you could recommend?$" + +gText_ApprenticeWinSpeechThanks1:: @ 82C1444 + .string "{STR_VAR_1}\p" + .string "Oh, wow! That is so cool!\n" + .string "Okay, I'll say that!\p" + .string "Thanks for teaching me all this time!\n" + .string "I'm going to do the best I can\l" + .string "wherever I go from now on!\p" + .string "When we meet again, it'll be for\n" + .string "a battle!$" + +gText_ApprenticePickWinSpeech2:: @ 82C1501 + .string "{PLAYER}, hello!\p" + .string "My POKéMON and I are ready for\n" + .string "anything, except for one thing.\p" + .string "I think it would be good if I had\n" + .string "something to shout when I win.\p" + .string "Could you think up something good\n" + .string "to say?$" + +gText_ApprenticeWinSpeechThanks2:: @ 82C15B6 + .string "{STR_VAR_1}\p" + .string "…Cool!\n" + .string "I will use that!\p" + .string "I'm going out to battle all over\n" + .string "the place.\p" + .string "Who knows, I may even get to battle\n" + .string "you one day, {PLAYER}.\p" + .string "Next time, let's meet at a place\n" + .string "of battle!$" + +gText_ApprenticePickWinSpeech3:: @ 82C165E + .string "Hello, {PLAYER}…\n" + .string "I'm sorry to bug you, but I'm hopeless…\p" + .string "Even when…\n" + .string "Even when I win, I don't have anything\l" + .string "special to say…\p" + .string "I know that it doesn't mean anything\n" + .string "to you, {PLAYER}.\p" + .string "But it means a lot to me…\p" + .string "Please, {PLAYER}, what should I say\n" + .string "if I win a battle?$" + +gText_ApprenticeWinSpeechThanks3:: @ 82C174F + .string "{STR_VAR_1}\p" + .string "That's inspired…\p" + .string "Uh… Is it okay for someone like me\n" + .string "to even say that?\p" + .string "No! I'll do my best!\p" + .string "{PLAYER}, thank you so much for\n" + .string "putting up with me for so long…\p" + .string "I promise to do my best from now on.\p" + .string "I'm sure you'll quickly forget about\n" + .string "someone like me, but let's meet\l" + .string "somewhere again!$" + +gText_ApprenticePickWinSpeech4:: @ 82C1862 + .string "Oh, {PLAYER}{KUN}.\n" + .string "There's something I want you to hear.\p" + .string "I know that I don't always sound\n" + .string "nice or polite…\p" + .string "When I win a battle, I think I come\n" + .string "across as being arrogant.\p" + .string "I don't want people to dislike me,\n" + .string "so I want to say something nice to\l" + .string "someone I beat.\p" + .string "But I can't think of anything good!\n" + .string "Could you think something up for me?$" + +gText_ApprenticeWinSpeechThanks4:: @ 82C19A0 + .string "{STR_VAR_1}\p" + .string "Not bad!\n" + .string "Yup, that's what I'll go with!\p" + .string "I'm going to hit the road and do what\n" + .string "I can with what you taught me in\l" + .string "my head and heart.\p" + .string "I'm sorry that I've been so pushy\n" + .string "with you!\p" + .string "Next time, we battle, okay?\n" + .string "See you!$" + +gText_ApprenticePickWinSpeech5:: @ 82C1A76 + .string "Oh, I can't get over how busy I am!\n" + .string "Oh, hey, I was looking for you, {PLAYER}{KUN}.\p" + .string "Are you well as usual?\n" + .string "Things haven't changed for me at all.\p" + .string "I've got running, fighting, and mapping\n" + .string "to do. Why am I so busy?\p" + .string "But even though I'm busy, it'd be rude\n" + .string "to just turn on my heels and walk away\l" + .string "from a win without saying a word.\p" + .string "So, what would be a cool saying to\n" + .string "underline my coolness when I'm done\l" + .string "and walking away? {PLAYER}{KUN}, help me!$" + +gText_ApprenticeWinSpeechThanks5:: @ 82C1C16 + .string "{STR_VAR_1}\p" + .string "Okay, gotcha.\n" + .string "I can find time to say that!\p" + .string "Honestly, I'm glad I met a good mentor\n" + .string "like you.\p" + .string "I'm going to make time somehow so\n" + .string "I can get into battling.\p" + .string "Thanks for everything, {PLAYER}{KUN}!\n" + .string "We have to battle, you and me, one day!$" + +gText_ApprenticePickWinSpeech6:: @ 82C1CF5 + .string "I lucked out again!\n" + .string "{PLAYER}! Am I glad to see you!\l" + .string "Like usual, I need your advice!\p" + .string "Drum roll, please!\n" + .string "The last question I have is…\p" + .string "If I win a battle and want to end\n" + .string "it with a cool flourish, what\l" + .string "should I say?$" + +gText_ApprenticeWinSpeechThanks6:: @ 82C1DC1 + .string "{STR_VAR_1}\p" + .string "That… That's fabulous!\n" + .string "It's dignified and cool! I claim it!\p" + .string "…Listen, I think I'm getting decent\n" + .string "at this, huh?\p" + .string "So, I'm thinking of challenging other\n" + .string "TRAINERS from now on.\p" + .string "{PLAYER}, your advice really helped me.\p" + .string "Maybe one day, there'll be a time when\n" + .string "we battle!\p" + .string "Thank you for everything!$" + +gText_ApprenticePickWinSpeech7:: @ 82C1EDC + .string "Oh, {PLAYER}.\n" + .string "I'm so glad I met you!\p" + .string "I no longer have any concerns with\n" + .string "regard to my POKéMON.\p" + .string "It's myself that worries me…\p" + .string "Do you know how a TRAINER says\n" + .string "a few things upon winning a battle?\p" + .string "Definitely, I wish I could do that,\n" + .string "too!\p" + .string "Please, what should I say when\n" + .string "I win a battle?$" + +gText_ApprenticeWinSpeechThanks7:: @ 82C1FEC + .string "{STR_VAR_1}\p" + .string "Ah! That saying! It refreshes me\n" + .string "and makes me feel reborn!\p" + .string "I must use that right away!\p" + .string "And now, I must take my leave,\n" + .string "{PLAYER}…\p" + .string "I will go out to battle many others,\n" + .string "but never will I forget your teachings.\p" + .string "Perhaps one day…\n" + .string "Farewell!$" + +gText_ApprenticePickWinSpeech8:: @ 82C20D1 + .string "Eek! I spotted {PLAYER}!\n" + .string "I… I'm overjoyed to see you!\p" + .string "Oh-oh-oh! There's something I just\n" + .string "had to ask you!\p" + .string "A little while ago, I won a battle.\n" + .string "That part was giddying!\p" + .string "But it made me so overjoyed that\n" + .string "I choked up and couldn't say a thing!\p" + .string "So now, {PLAYER}, please, I want you to\n" + .string "think up an exit line for when I win!$" + +gText_ApprenticeWinSpeechThanks8:: @ 82C21FF + .string "{STR_VAR_1}\p" + .string "Waaaaah!\n" + .string "I'm going to say that?!\l" + .string "I… I'm delirious with joy!\p" + .string "Th-th-thank you!\n" + .string "I have nothing left to regret now!\p" + .string "I'm going to travel now and battle\n" + .string "all sorts of people.\p" + .string "Everything, I owe it to you, {PLAYER}.\n" + .string "Really, really, thank you!\p" + .string "I've got to go now, but let's meet\n" + .string "in battle one day!$" + +gText_ApprenticePickWinSpeech9:: @ 82C231C + .string "Hola, bueno!\n" + .string "{PLAYER}{KUN}!\p" + .string "You know, I'm getting the itch to roam\n" + .string "and battle where I may.\p" + .string "But before I do, I want your advice\n" + .string "once again, please!\p" + .string "If I were to win a battle, what would\n" + .string "be a good boast I could say to my\l" + .string "fallen TRAINER opponent?$" + +gText_ApprenticeWinSpeechThanks9:: @ 82C2407 + .string "{STR_VAR_1}\p" + .string "Uh-huh, that's sweet!\n" + .string "Si, bueno!\l" + .string "I'll try saying that, like, ham!\p" + .string "And now, it's time to say good-bye!\n" + .string "Thanks for all sorts of things!\p" + .string "Give me a battle one day, OK?\n" + .string "Adios!$" + +gText_ApprenticePickWinSpeech10:: @ 82C24B5 + .string "{PLAYER}{KUN}, there's big trouble!\p" + .string "When I win a battle, I brag about it\n" + .string "for an hour at least!\p" + .string "Of course I'm lying!\n" + .string "Wahahaha!\p" + .string "This is no lie, though.\n" + .string "I'm not very good at chatting.\p" + .string "So, how about deciding for me what\n" + .string "I should say after winning a battle,\l" + .string "master?$" + +gText_ApprenticeWinSpeechThanks10:: @ 82C25B1 + .string "{STR_VAR_1}\p" + .string "That's what I should say, huh?\n" + .string "Then, I'll stay away from that!\p" + .string "Just kidding!\n" + .string "I'll obey your teaching, master!\p" + .string "Thanks for teaching me all this time,\n" + .string "master!\p" + .string "I'm finally understanding what being\n" + .string "a TRAINER is about.\p" + .string "I'm going to go out and win battles\n" + .string "against any TRAINER.\p" + .string "Maybe it'll be you one day, master!\p" + .string "That's all!\n" + .string "Farewell, my master!$" + +gText_ApprenticePickWinSpeech11:: @ 82C2707 + .string "A-H-O-Y!\n" + .string "And that spells ahoy!\p" + .string "The rappin' SAILOR am I!\n" + .string "This will be my last question,\l" + .string "don't you cry!\p" + .string "It's a saying question\n" + .string "that begs your suggestion!\p" + .string "If I win a match, what can I say\n" + .string "in a real cool way?$" + +gText_ApprenticeWinSpeechThanks11:: @ 82C27D4 + .string "{STR_VAR_1}\p" + .string "Perfect! That's what I'll use.\n" + .string "I was right to make you choose!\p" + .string "And now, I think it'd be best,\n" + .string "if I were to fly the nest!\p" + .string "Thanks for all you taught me.\n" + .string "I'll be off on a battle spree!\p" + .string "B-O-N-V-O-Y-A-G-E!\n" + .string "And that spells bon voyage,\l" + .string "to you this is my homage!$" + +gText_ApprenticePickWinSpeech12:: @ 82C28D6 + .string "Oh, yeah, {PLAYER}!\n" + .string "I found you again today!\p" + .string "What should I do? Ask you again?\n" + .string "Why not? I'm already asking you!\p" + .string "Anyways, {PLAYER}…\n" + .string "Are you receiving me?\l" + .string "You are receiving me!\l" + .string "I need some more advice for me!\p" + .string "It's about what I should yell.\n" + .string "Something cool to holler when\l" + .string "a battle ends well.\p" + .string "Come on, I wanna hear you say it!$" + +gText_ApprenticeWinSpeechThanks12:: @ 82C2A0B + .string "{STR_VAR_1}\p" + .string "All right, all right!\n" + .string "I'll use that because it's so tight!\p" + .string "I'm out of things to ask you.\n" + .string "Waving bye is all that's left to do.\p" + .string "But maybe one day we'll meet, with one\n" + .string "destined to go down in defeat.\p" + .string "But, it really is time to say farewell.\p" + .string "Well, {PLAYER}, I have to roam free,\n" + .string "but don't you forget about me!\p" + .string "Take care, {PLAYER}!\n" + .string "Love ya!$" + +gText_ApprenticePickWinSpeech13:: @ 82C2B50 + .string "{PLAYER}{KUN}, I'm finished…\n" + .string "My nose won't stop dripping…\p" + .string "I was trying to think up something\n" + .string "cool to say when I win a battle.\p" + .string "It inspired me so much, it made me cry,\n" + .string "and now my nose won't stop running…\p" + .string "So, things being this way,\n" + .string "I need you to decide for me, {PLAYER}{KUN}.\p" + .string "When I win a battle,\n" + .string "what should I say?$" + +gText_ApprenticeWinSpeechThanks13:: @ 82C2C77 + .string "{STR_VAR_1}\p" + .string "… … …That's good.\n" + .string "No, it's awe inspiring!\l" + .string "It's bringing fresh tears to my eyes!\p" + .string "But in spite of my tears and runny\n" + .string "nose, I will use that saying!\p" + .string "I'm plumb out of things to ask you,\n" + .string "{PLAYER}{KUN}.\p" + .string "From now on, we're rivals!\n" + .string "Thanks for everything!$" + +gText_ApprenticePickWinSpeech14:: @ 82C2D67 + .string "Er… Um…\n" + .string "{PLAYER}{KUN}…\p" + .string "Please, don't look at me that way.\n" + .string "You're making me all nervous.\p" + .string "I… I need your advice again.\n" + .string "I'll make it my last, though…\p" + .string "It's really embarrassing to ask,\n" + .string "but what if I win a battle?\l" + .string "What should I say?$" + +gText_ApprenticeWinSpeechThanks14:: @ 82C2E41 + .string "{STR_VAR_1}\p" + .string "Oh… Okay!\n" + .string "I'll try to say that!\l" + .string "I might be too nervous to say it…\p" + .string "Thank you, {PLAYER}{KUN}.\n" + .string "I have to say good-bye now.\p" + .string "I'll obey all that you've taught me,\n" + .string "{PLAYER}{KUN}, and do the best I can.$" + +gText_ApprenticePickWinSpeech15:: @ 82C2EF5 + .string "Hm? You appear to be {PLAYER}{KUN}…\n" + .string "But are you really?\l" + .string "Perhaps a clever {PLAYER} DOLL?\p" + .string "Oh, no, no, no, don't worry!\n" + .string "If you really are real, please\l" + .string "forget about my rudeness.\p" + .string "No need to be so angry. All I wish for\n" + .string "is more of your fine advice.\p" + .string "It concerns a saying.\p" + .string "More precisely, what should I say\n" + .string "if I win a battle?$" + +gText_ApprenticeWinSpeechThanks15:: @ 82C3023 + .string "{STR_VAR_1}\p" + .string "… … … … … …\n" + .string "When I win a match…\p" + .string "{STR_VAR_1}\p" + .string "…Are you serious?\p" + .string "I see. If you are serious, that's fine.\n" + .string "I thank you for your time.\p" + .string "I do hope even I will be able to\n" + .string "put that saying to good use.\p" + .string "I seem to have run dry on what advice\n" + .string "I need.\p" + .string "I do believe it's high time I bid you\n" + .string "farewell and strike out on my own.\p" + .string "Thank you, my mentor!\n" + .string "I apologize for my skepticism!$" diff --git a/data/text/frontier_brain.inc b/data/text/frontier_brain.inc index 3a9c897f0..3bce8076e 100644 --- a/data/text/frontier_brain.inc +++ b/data/text/frontier_brain.inc @@ -1,101 +1,108 @@ -gText_082C843F:: @ 82C843F +@ Battle Tower +gText_AnabelWonSilver:: @ 82C843F .string "It's very disappointing…$" -gText_082C8458:: @ 82C8458 +gText_AnabelDefeatSilver:: @ 82C8458 .string "Okay, I understand…$" -gText_082C846C:: @ 82C846C +gText_AnabelWonGold:: @ 82C846C .string "I'm terribly sorry…$" -gText_082C8480:: @ 82C8480 +gText_AnabelDefeatGold:: @ 82C8480 .string "Thank you…$" -gText_082C848B:: @ 82C848B +@ Battle Dome +gText_TuckerWonSilver:: @ 82C848B .string "Ahahaha! Aren't you embarrassed?\n" .string "Everyone's watching!$" -gText_082C84C1:: @ 82C84C1 +gText_TuckerDefeatSilver:: @ 82C84C1 .string "Grr…\n" .string "What the…$" -gText_082C84D0:: @ 82C84D0 +gText_TuckerWonGold:: @ 82C84D0 .string "My DOME ACE title isn't just for show!$" -gText_082C84F7:: @ 82C84F7 +gText_TuckerDefeatGold:: @ 82C84F7 .string "Ahahaha!\n" .string "You're inspiring!$" -gText_082C8512:: @ 82C8512 +@ Battle Factory +gText_NolandWonSilver:: @ 82C8512 .string "Way to work!\n" .string "That was a good lesson, eh?$" -gText_082C853B:: @ 82C853B +gText_NolandDefeatSilver:: @ 82C853B .string "Good job!\n" .string "You know what you're doing!$" -gText_082C8561:: @ 82C8561 +gText_NolandWonGold:: @ 82C8561 .string "Hey, hey, hey!\n" .string "You're finished already?$" -gText_082C8589:: @ 82C8589 +gText_NolandDefeatGold:: @ 82C8589 .string "What happened here?$" -gText_082C859D:: @ 82C859D +@ Battle Pike +gText_LucyWonSilver:: @ 82C859D .string "Humph…$" -gText_082C85A4:: @ 82C85A4 +gText_LucyDefeatSilver:: @ 82C85A4 .string "Urk…$" -gText_082C85A9:: @ 82C85A9 +gText_LucyWonGold:: @ 82C85A9 .string "Hah!$" -gText_082C85AE:: @ 82C85AE +gText_LucyDefeatGold:: @ 82C85AE .string "Darn!$" -gText_082C85B4:: @ 82C85B4 +@ Battle Arena +gText_GretaWonSilver:: @ 82C85B4 .string "Oh, come on!\n" .string "You have to try harder than that!$" -gText_082C85E3:: @ 82C85E3 +gText_GretaDefeatSilver:: @ 82C85E3 .string "No way!\n" .string "Good job!$" -gText_082C85F5:: @ 82C85F5 +gText_GretaWonGold:: @ 82C85F5 .string "Heheh!\n" .string "What did you expect?$" -gText_082C8611:: @ 82C8611 +gText_GretaDefeatGold:: @ 82C8611 .string "Huh?\n" .string "Are you serious?!$" -gText_082C8628:: @ 82C8628 +@ Battle Palace +gText_SpenserWonSilver:: @ 82C8628 .string "Your POKéMON are wimpy because\n" .string "you're wimpy as a TRAINER!$" -gText_082C8662:: @ 82C8662 +gText_SpenserDefeatSilver:: @ 82C8662 .string "Ah…\n" .string "Now this is something else…$" -gText_082C8682:: @ 82C8682 +gText_SpenserWonGold:: @ 82C8682 .string "Gwahahaha!\n" .string "My brethren, we have nothing to fear!$" -gText_082C86B3:: @ 82C86B3 +gText_SpenserDefeatGold:: @ 82C86B3 .string "Gwah!\n" .string "Hahahaha!$" -gText_082C86C3:: @ 82C86C3 +@ Battle Pyramid +gText_BrandonWonSilver:: @ 82C86C3 .string "Hey! What's wrong with you!\n" .string "Let's see some effort! Get up!$" -gText_082C86FE:: @ 82C86FE +gText_BrandonDefeatSilver:: @ 82C86FE .string "That's it! You've done great!\n" .string "You've worked hard for this!$" -gText_082C8739:: @ 82C8739 +gText_BrandonWonGold:: @ 82C8739 .string "Hey! Don't you give up now!\n" .string "Get up! Don't lose faith in yourself!$" -gText_082C877B:: @ 82C877B +gText_BrandonDefeatGold:: @ 82C877B .string "That's it! You've done it!\n" .string "You kept working for this!$" diff --git a/graphics/battle_anims/sprites/tri_force_triangle.png b/graphics/battle_anims/sprites/tri_attack_triangle.png Binary files differindex 9157118fd..9157118fd 100644 --- a/graphics/battle_anims/sprites/tri_force_triangle.png +++ b/graphics/battle_anims/sprites/tri_attack_triangle.png diff --git a/include/apprentice.h b/include/apprentice.h index 195106c53..27ce0371e 100644 --- a/include/apprentice.h +++ b/include/apprentice.h @@ -1,21 +1,21 @@ #ifndef GUARD_APPRENTICE_H #define GUARD_APPRENTICE_H -#define APPRENTICE_SPECIES_COUNT 10 +#include "constants/apprentice.h" struct ApprenticeTrainer { - u8 name[6][PLAYER_NAME_LENGTH + 1]; // For all six languages. + u8 name[NUM_LANGUAGES - 1][PLAYER_NAME_LENGTH + 1]; // For all languages except the unused one. u16 otId; u8 facilityClass; u16 species[APPRENTICE_SPECIES_COUNT]; u8 id; - u16 easyChatWords[6]; + u16 speechLost[EASY_CHAT_BATTLE_WORDS_COUNT]; }; extern const struct ApprenticeTrainer gApprentices[]; -void CopyFriendsApprenticeChallengeText(u8 saveblockApprenticeId); +void BufferApprenticeChallengeText(u8 saveApprenticeId); void Apprentice_EnableBothScriptContexts(void); void ResetApprenticeStruct(struct Apprentice *apprentice); void ResetAllApprenticeData(void); diff --git a/include/battle_anim.h b/include/battle_anim.h index 503e23df2..c3019a5cf 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -185,7 +185,7 @@ bool8 IsBattlerSpritePresent(u8 battlerId); void sub_80A6C68(u32 arg0); u8 GetAnimBattlerSpriteId(u8 wantedBattler); bool8 IsDoubleBattle(void); -u8 sub_80A6D94(void); +u8 GetBattleBgPaletteNum(void); u8 GetBattlerSpriteBGPriorityRank(u8 battlerId); void StoreSpriteCallbackInData6(struct Sprite *sprite, void (*spriteCallback)(struct Sprite*)); void SetSpritePrimaryCoordsFromSecondaryCoords(struct Sprite *sprite); @@ -231,7 +231,7 @@ void AnimWaterPulseRing(struct Sprite *sprite); void sub_810E2C8(struct Sprite *sprite); // smokescreen.c -u8 sub_807521C(s16 x, s16 y, u8 a3); +u8 SmokescreenImpact(s16 x, s16 y, u8 a3); u32 UnpackSelectedBattleAnimPalettes(s16); diff --git a/include/battle_message.h b/include/battle_message.h index 1157fbfae..a3f2636e5 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -259,7 +259,7 @@ extern const u8 gText_Love[]; extern const u8 gText_SpaceAndSpace[]; extern const u8 gText_CommaSpace[]; extern const u8 gText_Space2[]; -extern const u8 gText_ScrollTextUp[]; +extern const u8 gText_LineBreak[]; extern const u8 gText_NewLine[]; extern const u8 gText_Are[]; extern const u8 gText_Are2[]; diff --git a/include/constants/apprentice.h b/include/constants/apprentice.h index 9db58bb8e..63434a4fc 100644 --- a/include/constants/apprentice.h +++ b/include/constants/apprentice.h @@ -1,22 +1,88 @@ #ifndef GUARD_CONSTANTS_APPRENTICE_H #define GUARD_CONSTANTS_APPRENTICE_H -#define APPRENTICE_ASK_WHICH_LEVEL 0 -#define APPRENTICE_ASK_3SPECIES 1 -#define APPRENTICE_ASK_2SPECIES 2 -#define APPRENTICE_ASK_MOVES 3 -#define APPRENTICE_ASK_GIVE 4 -#define APPRENTICE_ASK_YES_NO 6 - -#define APPRENTICE_BUFF_SPECIES1 0 -#define APPRENTICE_BUFF_SPECIES2 1 -#define APPRENTICE_BUFF_SPECIES3 2 -#define APPRENTICE_BUFF_MOVE1 3 -#define APPRENTICE_BUFF_MOVE2 4 -#define APPRENTICE_BUFF_ITEM 5 -#define APPRENTICE_BUFF_NAME 6 -#define APPRENTICE_BUFF_EASY_CHAT 7 -#define APPRENTICE_BUFF_LEVEL 8 -#define APPRENTICE_BUFF_SPECIES4 9 +#define NUM_APPRENTICES 16 +#define APPRENTICE_SPECIES_COUNT 10 + +#define NUM_WHICH_MON_QUESTIONS MULTI_PARTY_SIZE +#define NUM_WHICH_MOVE_QUESTIONS 5 + +#define APPRENTICE_LVL_MODE_50 (FRONTIER_LVL_50 + 1) +#define APPRENTICE_LVL_MODE_OPEN (FRONTIER_LVL_OPEN + 1) + +#define APPRENTICE_FUNC_GAVE_LVLMODE 0 +#define APPRENTICE_FUNC_SET_LVLMODE 1 +#define APPRENTICE_FUNC_SET_ID 2 +#define APPRENTICE_FUNC_SHUFFLE_SPECIES 3 +#define APPRENTICE_FUNC_RANDOMIZE_QUESTIONS 4 +#define APPRENTICE_FUNC_ANSWERED_QUESTION 5 +#define APPRENTICE_FUNC_IS_FINAL_QUESTION 6 +#define APPRENTICE_FUNC_MENU 7 +#define APPRENTICE_FUNC_PRINT_MSG 8 +#define APPRENTICE_FUNC_RESET 9 +#define APPRENTICE_FUNC_CHECK_GONE 10 +#define APPRENTICE_FUNC_GET_QUESTION 11 +#define APPRENTICE_FUNC_GET_NUM_PARTY_MONS 12 +#define APPRENTICE_FUNC_SET_PARTY_MON 13 +#define APPRENTICE_FUNC_INIT_QUESTION_DATA 14 +#define APPRENTICE_FUNC_FREE_QUESTION_DATA 15 +#define APPRENTICE_FUNC_BUFFER_STRING 16 +#define APPRENTICE_FUNC_SET_MOVE 17 +#define APPRENTICE_FUNC_SET_LEAD_MON 18 +#define APPRENTICE_FUNC_OPEN_BAG 19 +#define APPRENTICE_FUNC_TRY_SET_HELD_ITEM 20 +#define APPRENTICE_FUNC_SAVE 21 +#define APPRENTICE_FUNC_SET_GFX_SAVED 22 +#define APPRENTICE_FUNC_SET_GFX 23 +#define APPRENTICE_FUNC_SHOULD_LEAVE 24 +#define APPRENTICE_FUNC_SHIFT_SAVED 25 + +#define APPRENTICE_MSG_PLEASE_TEACH 0 +#define APPRENTICE_MSG_REJECT 1 +#define APPRENTICE_MSG_WHICH_LVL_MODE 2 +#define APPRENTICE_MSG_THANKS_LVL_MODE 3 +#define APPRENTICE_MSG_WHICH_MON_FIRST 4 +#define APPRENTICE_MSG_THANKS_MON_FIRST 5 +#define APPRENTICE_MSG_WHICH_MON 6 +#define APPRENTICE_MSG_THANKS_MON 7 +#define APPRENTICE_MSG_WHICH_MOVE 8 +#define APPRENTICE_MSG_THANKS_MOVE 9 +#define APPRENTICE_MSG_WHAT_HELD_ITEM 10 +#define APPRENTICE_MSG_PICK_WIN_SPEECH 11 +#define APPRENTICE_MSG_THANKS_HELD_ITEM 12 +#define APPRENTICE_MSG_HOLD_NOTHING 13 +#define APPRENTICE_MSG_THANKS_NO_HELD_ITEM 14 +#define APPRENTICE_MSG_THANKS_WIN_SPEECH 15 +#define APPRENTICE_MSG_ITEM_ALREADY_SUGGESTED 16 + +#define APPRENTICE_QUESTION_WHICH_FIRST 1 +#define APPRENTICE_QUESTION_WHICH_MON 2 +#define APPRENTICE_QUESTION_WHICH_MOVE 3 +#define APPRENTICE_QUESTION_WHAT_ITEM 4 +#define APPRENTICE_QUESTION_WIN_SPEECH 5 + +// Would be redundant with the above set if they used the same values +#define QUESTION_ID_WIN_SPEECH 0 +#define QUESTION_ID_WHAT_ITEM 1 +#define QUESTION_ID_WHICH_MOVE 2 +#define QUESTION_ID_WHICH_FIRST 3 + +#define APPRENTICE_ASK_WHICH_LEVEL 0 +#define APPRENTICE_ASK_3SPECIES 1 +#define APPRENTICE_ASK_2SPECIES 2 +#define APPRENTICE_ASK_MOVES 3 +#define APPRENTICE_ASK_GIVE 4 +#define APPRENTICE_ASK_YES_NO 6 + +#define APPRENTICE_BUFF_SPECIES1 0 +#define APPRENTICE_BUFF_SPECIES2 1 +#define APPRENTICE_BUFF_SPECIES3 2 +#define APPRENTICE_BUFF_MOVE1 3 +#define APPRENTICE_BUFF_MOVE2 4 +#define APPRENTICE_BUFF_ITEM 5 +#define APPRENTICE_BUFF_NAME 6 +#define APPRENTICE_BUFF_WIN_SPEECH 7 +#define APPRENTICE_BUFF_LEVEL 8 +#define APPRENTICE_BUFF_LEAD_MON_SPECIES 9 #endif // GUARD_CONSTANTS_APPRENTICE_H diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h index 0a023f0c2..0fe231cdc 100644 --- a/include/constants/battle_anim.h +++ b/include/constants/battle_anim.h @@ -237,7 +237,7 @@ #define ANIM_TAG_SPOTLIGHT (ANIM_SPRITES_START + 227) #define ANIM_TAG_LETTER_Z (ANIM_SPRITES_START + 228) #define ANIM_TAG_RAPID_SPIN (ANIM_SPRITES_START + 229) -#define ANIM_TAG_TRI_FORCE_TRIANGLE (ANIM_SPRITES_START + 230) +#define ANIM_TAG_TRI_ATTACK_TRIANGLE (ANIM_SPRITES_START + 230) #define ANIM_TAG_WISP_ORB (ANIM_SPRITES_START + 231) #define ANIM_TAG_WISP_FIRE (ANIM_SPRITES_START + 232) #define ANIM_TAG_GOLD_STARS (ANIM_SPRITES_START + 233) diff --git a/include/constants/battle_frontier.h b/include/constants/battle_frontier.h index 54d50c18a..0bf1ba02b 100644 --- a/include/constants/battle_frontier.h +++ b/include/constants/battle_frontier.h @@ -12,7 +12,8 @@ #define FRONTIER_FACILITY_PIKE 5 #define FRONTIER_FACILITY_PYRAMID 6 #define NUM_FRONTIER_FACILITIES 7 -// The multiplayer battle colosseum rooms re-use VAR_FRONTIER_FACILITY. +// VAR_FRONTIER_FACILITY is re-used for the below facilities as well +#define FACILITY_LINK_CONTEST 7 #define FACILITY_UNION_ROOM 8 #define FACILITY_MULTI_OR_EREADER 9 // Direct Corner multi battles, multi battle with Steven, and e-Reader battles @@ -21,15 +22,22 @@ #define TENT_SLATEPORT 4 // Battle Frontier lvl modes. -#define FRONTIER_LVL_50 0 +#define FRONTIER_LVL_50 0 #define FRONTIER_LVL_OPEN 1 #define FRONTIER_LVL_TENT 2 // Battle Frontier battle modes. -#define FRONTIER_MODE_SINGLES 0 -#define FRONTIER_MODE_DOUBLES 1 -#define FRONTIER_MODE_MULTIS 2 -#define FRONTIER_MODE_LINK_MULTIS 3 +#define FRONTIER_MODE_SINGLES 0 +#define FRONTIER_MODE_DOUBLES 1 +#define FRONTIER_MODE_MULTIS 2 +#define FRONTIER_MODE_LINK_MULTIS 3 +#define FRONTIER_MODE_COUNT 4 + +// Challenge Statuses +#define CHALLENGE_STATUS_SAVING 1 +#define CHALLENGE_STATUS_PAUSED 2 +#define CHALLENGE_STATUS_WON 3 +#define CHALLENGE_STATUS_LOST 4 // Special trainer battles. #define SPECIAL_BATTLE_TOWER 0 @@ -45,6 +53,7 @@ #define SPECIAL_BATTLE_PYRAMID 10 #define MAX_BATTLE_FRONTIER_POINTS 9999 +#define MAX_STREAK 9999 // These sets of facility ids would be redunant if the order was consistent // The order is important for this set so that all the non-link records can be continuous @@ -86,9 +95,6 @@ #define FRONTIER_GAMBLER_CHALLENGE_COUNT 12 -// For 'ShowFacilityResultsWindow' function which is a part of the 'CallFrontierUtilFunc' special. -#define RESULTS_LINK_CONTEST 7 - #define EXCHANGE_CORNER_DECOR1_CLERK 0 #define EXCHANGE_CORNER_DECOR2_CLERK 1 #define EXCHANGE_CORNER_VITAMIN_CLERK 2 diff --git a/include/constants/battle_pike.h b/include/constants/battle_pike.h index e92c4a006..4fb20550e 100644 --- a/include/constants/battle_pike.h +++ b/include/constants/battle_pike.h @@ -10,6 +10,17 @@ #define PIKE_ROOM_HARD_BATTLE 6 #define PIKE_ROOM_DOUBLE_BATTLE 7 #define PIKE_ROOM_BRAIN 8 +#define NUM_PIKE_ROOM_TYPES 9 + +#define PIKE_ROOM_LEFT 0 +#define PIKE_ROOM_CENTER 1 +#define PIKE_ROOM_RIGHT 2 + +#define PIKE_HINT_NOSTALGIA 0 +#define PIKE_HINT_WHISPERING 1 +#define PIKE_HINT_POKEMON 2 +#define PIKE_HINT_PEOPLE 3 +#define PIKE_HINT_BRAIN 4 // For the room with a status effect. #define PIKE_STATUS_KIRLIA 0 @@ -19,8 +30,8 @@ #define BATTLE_PIKE_FUNC_SET_ROOM_TYPE 0 #define BATTLE_PIKE_FUNC_GET_DATA 1 #define BATTLE_PIKE_FUNC_SET_DATA 2 -#define BATTLE_PIKE_FUNC_IN_FINAL_ROOM 3 -#define BATTLE_PIKE_FUNC_SET_UP_ROOM_OBJECTS 4 +#define BATTLE_PIKE_FUNC_IS_FINAL_ROOM 3 +#define BATTLE_PIKE_FUNC_SET_ROOM_OBJECTS 4 #define BATTLE_PIKE_FUNC_GET_ROOM_TYPE 5 #define BATTLE_PIKE_FUNC_6 6 #define BATTLE_PIKE_FUNC_7 7 @@ -34,14 +45,14 @@ #define BATTLE_PIKE_FUNC_STATUS_SCREEN_FADE 15 #define BATTLE_PIKE_FUNC_IS_IN 16 #define BATTLE_PIKE_FUNC_SET_HINT_ROOM 17 -#define BATTLE_PIKE_FUNC_SET_HINT_ROOM_ID 18 +#define BATTLE_PIKE_FUNC_GET_HINT_ROOM_ID 18 #define BATTLE_PIKE_FUNC_GET_ROOM_TYPE_HINT 19 #define BATTLE_PIKE_FUNC_CLEAR_TRAINER_IDS 20 #define BATTLE_PIKE_FUNC_BUFFER_RECORD_MIX_MSG 21 #define BATTLE_PIKE_FUNC_GET_QUEEN_FIGHT_TYPE 22 #define BATTLE_PIKE_FUNC_HEAL_MONS_BEFORE_QUEEN 23 #define BATTLE_PIKE_FUNC_SET_HEALING_ROOMS_DISABLED 24 -#define BATTLE_PIKE_FUNC_CAN_PARTY_BE_HEALED 25 +#define BATTLE_PIKE_FUNC_IS_PARTY_FULL_HEALTH 25 #define BATTLE_PIKE_FUNC_SAVE_MON_HELD_ITEMS 26 #define BATTLE_PIKE_FUNC_LOAD_MON_HELD_ITEMS 27 #define BATTLE_PIKE_FUNC_INIT_CHALLENGE 28 diff --git a/include/constants/frontier_util.h b/include/constants/frontier_util.h index 52bde509f..d71809169 100644 --- a/include/constants/frontier_util.h +++ b/include/constants/frontier_util.h @@ -5,28 +5,71 @@ #define FRONTIER_PLAYER_LOST_TEXT 1 #define FRONTIER_PLAYER_WON_TEXT 2 -#define FRONTIER_UTIL_FUNC_0 0 -#define FRONTIER_UTIL_FUNC_1 1 -#define FRONTIER_UTIL_FUNC_2 2 -#define FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY 3 +// return values for GetFrontierBrainStatus +#define FRONTIER_BRAIN_NOT_READY 0 +#define FRONTIER_BRAIN_SILVER 1 +#define FRONTIER_BRAIN_GOLD 2 +#define FRONTIER_BRAIN_STREAK 3 // for encountering the brain after getting both symbols +#define FRONTIER_BRAIN_STREAK_LONG 4 // + +#define FRONTIER_UTIL_FUNC_GET_STATUS 0 +#define FRONTIER_UTIL_FUNC_GET_DATA 1 +#define FRONTIER_UTIL_FUNC_SET_DATA 2 +#define FRONTIER_UTIL_FUNC_SET_PARTY_ORDER 3 #define FRONTIER_UTIL_FUNC_SOFT_RESET 4 -#define FRONTIER_UTIL_FUNC_SET_FRONTIER_TRAINERS 5 -#define FRONTIER_UTIL_FUNC_6 6 +#define FRONTIER_UTIL_FUNC_SET_TRAINERS 5 +#define FRONTIER_UTIL_FUNC_SAVE_PARTY 6 #define FRONTIER_UTIL_FUNC_RESULTS_WINDOW 7 -#define FRONTIER_UTIL_FUNC_8 8 -#define FRONTIER_UTIL_FUNC_9 9 -#define FRONTIER_UTIL_FUNC_IS_FRONTIER_BRAIN 10 -#define FRONTIER_UTIL_FUNC_11 11 +#define FRONTIER_UTIL_FUNC_CHECK_AIR_TV_SHOW 8 +#define FRONTIER_UTIL_FUNC_GET_BRAIN_STATUS 9 +#define FRONTIER_UTIL_FUNC_IS_BRAIN 10 +#define FRONTIER_UTIL_FUNC_GIVE_BATTLE_POINTS 11 #define FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS 12 #define FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL 13 #define FRONTIER_UTIL_FUNC_CHECK_BATTLE_TYPE 14 -#define FRONTIER_UTIL_FUNC_15 15 +#define FRONTIER_UTIL_FUNC_CHECK_INELIGIBLE 15 #define FRONTIER_UTIL_FUNC_CHECK_VISIT_TRAINER 16 -#define FRONTIER_UTIL_FUNC_17 17 -#define FRONTIER_UTIL_FUNC_18 18 -#define FRONTIER_UTIL_FUNC_19 19 +#define FRONTIER_UTIL_FUNC_INCREMENT_STREAK 17 +#define FRONTIER_UTIL_FUNC_RESTORE_HELD_ITEMS 18 +#define FRONTIER_UTIL_FUNC_SAVE_BATTLE 19 #define FRONTIER_UTIL_FUNC_BUFFER_TRAINER_NAME 20 -#define FRONTIER_UTIL_FUNC_21 21 +#define FRONTIER_UTIL_FUNC_RESET_SKETCH_MOVES 21 #define FRONTIER_UTIL_FUNC_SET_BRAIN_OBJECT 22 +#define FRONTIER_DATA_CHALLENGE_STATUS 0 +#define FRONTIER_DATA_LVL_MODE 1 +#define FRONTIER_DATA_BATTLE_NUM 2 +#define FRONTIER_DATA_PAUSED 3 +#define FRONTIER_DATA_SELECTED_MON_ORDER 4 +#define FRONTIER_DATA_BATTLE_OUTCOME 5 +#define FRONTIER_DATA_6 6 +#define FRONTIER_DATA_HEARD_BRAIN_SPEECH 7 + +#define STREAK_TOWER_SINGLES_50 (1 << 0) +#define STREAK_TOWER_SINGLES_OPEN (1 << 1) +#define STREAK_DOME_SINGLES_50 (1 << 2) +#define STREAK_DOME_SINGLES_OPEN (1 << 3) +#define STREAK_PALACE_SINGLES_50 (1 << 4) +#define STREAK_PALACE_SINGLES_OPEN (1 << 5) +#define STREAK_ARENA_50 (1 << 6) +#define STREAK_ARENA_OPEN (1 << 7) +#define STREAK_FACTORY_SINGLES_50 (1 << 8) +#define STREAK_FACTORY_SINGLES_OPEN (1 << 9) +#define STREAK_PIKE_50 (1 << 10) +#define STREAK_PIKE_OPEN (1 << 11) +#define STREAK_PYRAMID_50 (1 << 12) +#define STREAK_PYRAMID_OPEN (1 << 13) +#define STREAK_TOWER_DOUBLES_50 (1 << 14) +#define STREAK_TOWER_DOUBLES_OPEN (1 << 15) +#define STREAK_TOWER_MULTIS_50 (1 << 16) +#define STREAK_TOWER_MULTIS_OPEN (1 << 17) +#define STREAK_TOWER_LINK_MULTIS_50 (1 << 18) +#define STREAK_TOWER_LINK_MULTIS_OPEN (1 << 19) +#define STREAK_DOME_DOUBLES_50 (1 << 20) +#define STREAK_DOME_DOUBLES_OPEN (1 << 21) +#define STREAK_PALACE_DOUBLES_50 (1 << 22) +#define STREAK_PALACE_DOUBLES_OPEN (1 << 23) +#define STREAK_FACTORY_DOUBLES_50 (1 << 24) +#define STREAK_FACTORY_DOUBLES_OPEN (1 << 25) + #endif // GUARD_CONSTANTS_FRONTIER_UTIL_H diff --git a/include/constants/global.h b/include/constants/global.h index 46fd810cb..96acec853 100644 --- a/include/constants/global.h +++ b/include/constants/global.h @@ -18,12 +18,13 @@ #define VERSION_GAMECUBE 15 #define LANGUAGE_JAPANESE 1 -#define LANGUAGE_ENGLISH 2 -#define LANGUAGE_FRENCH 3 -#define LANGUAGE_ITALIAN 4 -#define LANGUAGE_GERMAN 5 -#define LANGUAGE_KOREAN 6 // 6 goes unused but the theory is it was meant to be Korean -#define LANGUAGE_SPANISH 7 +#define LANGUAGE_ENGLISH 2 +#define LANGUAGE_FRENCH 3 +#define LANGUAGE_ITALIAN 4 +#define LANGUAGE_GERMAN 5 +#define LANGUAGE_KOREAN 6 // 6 goes unused but the theory is it was meant to be Korean +#define LANGUAGE_SPANISH 7 +#define NUM_LANGUAGES 7 #define GAME_VERSION (VERSION_EMERALD) #define GAME_LANGUAGE (LANGUAGE_ENGLISH) @@ -48,21 +49,29 @@ #define OBJECT_EVENT_TEMPLATES_COUNT 64 #define DECOR_MAX_SECRET_BASE 16 #define DECOR_MAX_PLAYERS_HOUSE 12 +#define APPRENTICE_COUNT 4 +#define APPRENTICE_MAX_QUESTIONS 9 #define PYRAMID_BAG_ITEMS_COUNT 10 #define HALL_FACILITIES_COUNT 9 // 7 facilities for single mode + tower double mode + tower multi mode. #define TRAINER_ID_LENGTH 4 +#define MAX_MON_MOVES 4 + +// party sizes #define PARTY_SIZE 6 -#define FRONTIER_PARTY_SIZE 3 #define MULTI_PARTY_SIZE PARTY_SIZE / 2 -#define MAX_MON_MOVES 4 +#define FRONTIER_PARTY_SIZE 3 +#define FRONTIER_DOUBLES_PARTY_SIZE 4 +#define FRONTIER_MULTI_PARTY_SIZE 2 +#define MAX_FRONTIER_PARTY_SIZE FRONTIER_DOUBLES_PARTY_SIZE // string lengths #define ITEM_NAME_LENGTH 14 #define POKEMON_NAME_LENGTH 10 #define PLAYER_NAME_LENGTH 7 #define MAIL_WORDS_COUNT 9 +#define EASY_CHAT_BATTLE_WORDS_COUNT 6 #define MOVE_NAME_LENGTH 12 #define MALE 0 diff --git a/include/constants/layouts.h b/include/constants/layouts.h index fe905a2c6..ba20cb3a5 100755 --- a/include/constants/layouts.h +++ b/include/constants/layouts.h @@ -352,13 +352,13 @@ #define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY 349 #define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR 350 #define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM 351 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1 352 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM2 353 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL 352 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_FINAL 353 #define LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY 354 #define LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_CORRIDOR 355 #define LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM 356 #define LAYOUT_SOOTOPOLIS_CITY_LEGENDS_BATTLE 357 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3 358 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS 358 #define LAYOUT_UNKNOWN_084693AC 359 #define LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY 360 #define LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE 361 diff --git a/include/constants/map_groups.h b/include/constants/map_groups.h index bedaaca2a..14b3f1d56 100755 --- a/include/constants/map_groups.h +++ b/include/constants/map_groups.h @@ -498,9 +498,9 @@ #define MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY (34 | (26 << 8)) #define MAP_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR (35 | (26 << 8)) #define MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM (36 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1 (37 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM2 (38 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3 (39 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL (37 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_FINAL (38 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS (39 | (26 << 8)) #define MAP_BATTLE_FRONTIER_RANKING_HALL (40 | (26 << 8)) #define MAP_BATTLE_FRONTIER_LOUNGE1 (41 | (26 << 8)) #define MAP_BATTLE_FRONTIER_EXCHANGE_SERVICE_CORNER (42 | (26 << 8)) diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index b2084f154..5610a470c 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -195,6 +195,10 @@ #define MON_ALREADY_KNOWS_MOVE 0xFFFE #define MON_HAS_MAX_MOVES 0xFFFF +#define LEVEL_UP_MOVE_ID 0x01FF +#define LEVEL_UP_MOVE_LV 0xFE00 +#define LEVEL_UP_END 0xFFFF + #define MON_MALE 0x00 #define MON_FEMALE 0xFE #define MON_GENDERLESS 0xFF diff --git a/include/constants/trainer_hill.h b/include/constants/trainer_hill.h index f7a270428..afbcd4ace 100644 --- a/include/constants/trainer_hill.h +++ b/include/constants/trainer_hill.h @@ -13,24 +13,24 @@ #define NUM_TRAINER_HILL_PRIZE_LISTS 10 -#define TRAINER_HILL_FUNC_START 0 -#define TRAINER_HILL_FUNC_GET_OWNER_STATE 1 -#define TRAINER_HILL_FUNC_GIVE_PRIZE 2 -#define TRAINER_HILL_FUNC_CHECK_FINAL_TIME 3 -#define TRAINER_HILL_FUNC_RESUME_TIMER 4 -#define TRAINER_HILL_FUNC_SET_LOST 5 -#define TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS 6 -#define TRAINER_HILL_FUNC_GET_CHALLENGE_TIME 7 -#define TRAINER_HILL_FUNC_GET_ALL_FLOORS_USED 8 -#define TRAINER_HILL_FUNC_CLEAR_RESULT 9 -#define TRAINER_HILL_FUNC_IN_CHALLENGE 10 -#define TRAINER_HILL_FUNC_POST_BATTLE_TEXT 11 +#define TRAINER_HILL_FUNC_START 0 +#define TRAINER_HILL_FUNC_GET_OWNER_STATE 1 +#define TRAINER_HILL_FUNC_GIVE_PRIZE 2 +#define TRAINER_HILL_FUNC_CHECK_FINAL_TIME 3 +#define TRAINER_HILL_FUNC_RESUME_TIMER 4 +#define TRAINER_HILL_FUNC_SET_LOST 5 +#define TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS 6 +#define TRAINER_HILL_FUNC_GET_CHALLENGE_TIME 7 +#define TRAINER_HILL_FUNC_GET_ALL_FLOORS_USED 8 +#define TRAINER_HILL_FUNC_CLEAR_RESULT 9 +#define TRAINER_HILL_FUNC_IN_CHALLENGE 10 +#define TRAINER_HILL_FUNC_POST_BATTLE_TEXT 11 #define TRAINER_HILL_FUNC_SET_ALL_TRAINER_FLAGS 12 -#define TRAINER_HILL_FUNC_GET_GAME_SAVED 13 -#define TRAINER_HILL_FUNC_SET_GAME_SAVED 14 -#define TRAINER_HILL_FUNC_CLEAR_GAME_SAVED 15 -#define TRAINER_HILL_FUNC_GET_WON 16 -#define TRAINER_HILL_FUNC_SET_TAG 17 +#define TRAINER_HILL_FUNC_GET_GAME_SAVED 13 +#define TRAINER_HILL_FUNC_SET_GAME_SAVED 14 +#define TRAINER_HILL_FUNC_CLEAR_GAME_SAVED 15 +#define TRAINER_HILL_FUNC_GET_WON 16 +#define TRAINER_HILL_FUNC_SET_TAG 17 #define TRAINER_HILL_TEXT_INTRO 2 #define TRAINER_HILL_TEXT_PLAYER_LOST 3 diff --git a/include/constants/trainers.h b/include/constants/trainers.h index c0abfe6b6..e5a193770 100644 --- a/include/constants/trainers.h +++ b/include/constants/trainers.h @@ -119,7 +119,7 @@ #define FACILITY_CLASS_HIKER 0x0 #define FACILITY_CLASS_AQUA_GRUNT_M 0x1 -#define FACILITY_CLASS_POKEMON_BREEDER_F 0x2 +#define FACILITY_CLASS_PKMN_BREEDER_F 0x2 #define FACILITY_CLASS_COOLTRAINER_M 0x3 #define FACILITY_CLASS_BIRD_KEEPER 0x4 #define FACILITY_CLASS_COLLECTOR 0x5 @@ -202,6 +202,86 @@ #define FACILITY_CLASSES_COUNT 0x52 +#define RS_FACILITY_CLASS_AQUA_LEADER_ARCHIE 0x0 +#define RS_FACILITY_CLASS_AQUA_GRUNT_M 0x1 +#define RS_FACILITY_CLASS_AQUA_GRUNT_F 0x2 +#define RS_FACILITY_CLASS_AROMA_LADY 0x3 +#define RS_FACILITY_CLASS_RUIN_MANIAC 0x4 +#define RS_FACILITY_CLASS_INTERVIEWER 0x5 +#define RS_FACILITY_CLASS_TUBER_F 0x6 +#define RS_FACILITY_CLASS_TUBER_M 0x7 +#define RS_FACILITY_CLASS_COOLTRAINER_M 0x8 +#define RS_FACILITY_CLASS_COOLTRAINER_F 0x9 +#define RS_FACILITY_CLASS_HEX_MANIAC 0xA +#define RS_FACILITY_CLASS_LADY 0xB +#define RS_FACILITY_CLASS_BEAUTY 0xC +#define RS_FACILITY_CLASS_RICH_BOY 0xD +#define RS_FACILITY_CLASS_POKEMANIAC 0xE +#define RS_FACILITY_CLASS_SWIMMER_M 0xF +#define RS_FACILITY_CLASS_BLACK_BELT 0x10 +#define RS_FACILITY_CLASS_GUITARIST 0x11 +#define RS_FACILITY_CLASS_KINDLER 0x12 +#define RS_FACILITY_CLASS_CAMPER 0x13 +#define RS_FACILITY_CLASS_BUG_MANIAC 0x14 +#define RS_FACILITY_CLASS_PSYCHIC_M 0x15 +#define RS_FACILITY_CLASS_PSYCHIC_F 0x16 +#define RS_FACILITY_CLASS_GENTLEMAN 0x17 +#define RS_FACILITY_CLASS_ELITE_FOUR_M 0x18 +#define RS_FACILITY_CLASS_ELITE_FOUR_F 0x19 +#define RS_FACILITY_CLASS_LEADER_F 0x1A +#define RS_FACILITY_CLASS_LEADER_M 0x1B +#define RS_FACILITY_CLASS_LEADER_MF 0x1C +#define RS_FACILITY_CLASS_SCHOOL_KID_M 0x1D +#define RS_FACILITY_CLASS_SCHOOL_KID_F 0x1E +#define RS_FACILITY_CLASS_SR_AND_JR 0x1F +#define RS_FACILITY_CLASS_POKEFAN_M 0x20 +#define RS_FACILITY_CLASS_POKEFAN_F 0x21 +#define RS_FACILITY_CLASS_EXPERT_M 0x22 +#define RS_FACILITY_CLASS_EXPERT_F 0x23 +#define RS_FACILITY_CLASS_YOUNGSTER 0x24 +#define RS_FACILITY_CLASS_CHAMPION 0x25 +#define RS_FACILITY_CLASS_FISHERMAN 0x26 +#define RS_FACILITY_CLASS_CYCLING_TRIATHLETE_M 0x27 +#define RS_FACILITY_CLASS_CYCLING_TRIATHLETE_F 0x28 +#define RS_FACILITY_CLASS_RUNNING_TRIATHLETE_M 0x29 +#define RS_FACILITY_CLASS_RUNNING_TRIATHLETE_F 0x2A +#define RS_FACILITY_CLASS_SWIMMING_TRIATHLETE_M 0x2B +#define RS_FACILITY_CLASS_SWIMMING_TRIATHLETE_F 0x2C +#define RS_FACILITY_CLASS_DRAGON_TAMER 0x2D +#define RS_FACILITY_CLASS_BIRD_KEEPER 0x2E +#define RS_FACILITY_CLASS_NINJA_BOY 0x2F +#define RS_FACILITY_CLASS_BATTLE_GIRL 0x30 +#define RS_FACILITY_CLASS_PARASOL_LADY 0x31 +#define RS_FACILITY_CLASS_SWIMMER_F 0x32 +#define RS_FACILITY_CLASS_PICNICKER 0x33 +#define RS_FACILITY_CLASS_TWINS 0x34 +#define RS_FACILITY_CLASS_SAILOR 0x35 +#define RS_FACILITY_CLASS_BOARDER_1 0x36 +#define RS_FACILITY_CLASS_BOARDER_2 0x37 +#define RS_FACILITY_CLASS_COLLECTOR 0x38 +#define RS_FACILITY_CLASS_WALLY 0x39 +#define RS_FACILITY_CLASS_BRENDAN_1 0x3A +#define RS_FACILITY_CLASS_BRENDAN_2 0x3B +#define RS_FACILITY_CLASS_BRENDAN_3 0x3C +#define RS_FACILITY_CLASS_MAY_1 0x3D +#define RS_FACILITY_CLASS_MAY_2 0x3E +#define RS_FACILITY_CLASS_MAY_3 0x3F +#define RS_FACILITY_CLASS_PKMN_BREEDER_M 0x40 +#define RS_FACILITY_CLASS_PKMN_BREEDER_F 0x41 +#define RS_FACILITY_CLASS_PKMN_RANGER_M 0x42 +#define RS_FACILITY_CLASS_PKMN_RANGER_F 0x43 +#define RS_FACILITY_CLASS_MAGMA_LEADER 0x44 +#define RS_FACILITY_CLASS_MAGMA_GRUNT_M 0x45 +#define RS_FACILITY_CLASS_MAGMA_GRUNT_F 0x46 +#define RS_FACILITY_CLASS_LASS 0x47 +#define RS_FACILITY_CLASS_BUG_CATCHER 0x48 +#define RS_FACILITY_CLASS_HIKER 0x49 +#define RS_FACILITY_CLASS_YOUNG_COUPLE 0x4A +#define RS_FACILITY_CLASS_OLD_COUPLE 0x4B +#define RS_FACILITY_CLASS_SIS_AND_BRO 0x4C + +#define RS_FACILITY_CLASSES_COUNT 0x4D + #define TRAINER_CLASS_PKMN_TRAINER_1 0x0 // Unused #define TRAINER_CLASS_PKMN_TRAINER_2 0x1 // Unused #define TRAINER_CLASS_HIKER 0x2 diff --git a/include/frontier_util.h b/include/frontier_util.h index 273c4cc20..f445949ef 100644 --- a/include/frontier_util.h +++ b/include/frontier_util.h @@ -2,16 +2,16 @@ #define GUARD_FRONTIER_UTIL_H void CallFrontierUtilFunc(void); -u8 sub_81A3610(void); +u8 GetFrontierBrainStatus(void); void CopyFrontierTrainerText(u8 whichText, u16 trainerId); -void sub_81A3908(void); +void ResetWinStreaks(void); u32 GetCurrentFacilityWinStreak(void); -void sub_81A3ACC(void); +void ResetFrontierTrainerIds(void); u8 GetPlayerSymbolCountForFacility(u8 facility); void ShowRankingHallRecordsWindow(void); void ScrollRankingHallRecordsWindow(void); void ClearRankingHallRecords(void); -void sub_81A4C30(void); +void SaveGameFrontier(void); u8 GetFrontierBrainTrainerPicIndex(void); u8 GetFrontierBrainTrainerClass(void); void CopyFrontierBrainTrainerName(u8 *dst); diff --git a/include/global.h b/include/global.h index 8334fe62f..357c9d60f 100644 --- a/include/global.h +++ b/include/global.h @@ -214,14 +214,16 @@ struct ApprenticeMon u16 item; }; +// This is for past players Apprentices or Apprentices received via Record Mix. +// For the current Apprentice, see struct PlayersApprentice struct Apprentice { u8 id:5; u8 lvlMode:2; // + 1 - u8 field_1; + u8 numQuestions; u8 number; struct ApprenticeMon party[MULTI_PARTY_SIZE]; - u16 easyChatWords[6]; + u16 speechWon[EASY_CHAT_BATTLE_WORDS_COUNT]; u8 playerId[TRAINER_ID_LENGTH]; u8 playerName[PLAYER_NAME_LENGTH]; u8 language; @@ -264,14 +266,23 @@ struct EmeraldBattleTowerRecord /*0x02*/ u16 winStreak; /*0x04*/ u8 name[PLAYER_NAME_LENGTH + 1]; /*0x0C*/ u8 trainerId[TRAINER_ID_LENGTH]; - /*0x10*/ u16 greeting[6]; - /*0x1C*/ u16 speechWon[6]; - /*0x28*/ u16 speechLost[6]; - /*0x34*/ struct BattleTowerPokemon party[4]; + /*0x10*/ u16 greeting[EASY_CHAT_BATTLE_WORDS_COUNT]; + /*0x1C*/ u16 speechWon[EASY_CHAT_BATTLE_WORDS_COUNT]; + /*0x28*/ u16 speechLost[EASY_CHAT_BATTLE_WORDS_COUNT]; + /*0x34*/ struct BattleTowerPokemon party[MAX_FRONTIER_PARTY_SIZE]; /*0xE4*/ u8 language; /*0xE8*/ u32 checksum; }; +struct BattleTowerInterview +{ + u16 playerSpecies; + u16 opponentSpecies; + u8 opponentName[PLAYER_NAME_LENGTH + 1]; + u8 opponentMonNickname[POKEMON_NAME_LENGTH + 1]; + u8 opponentLanguage; +}; + struct BattleTowerEReaderTrainer { /*0x00*/ u8 unk0; @@ -279,9 +290,9 @@ struct BattleTowerEReaderTrainer /*0x02*/ u16 winStreak; /*0x04*/ u8 name[PLAYER_NAME_LENGTH + 1]; /*0x0C*/ u8 trainerId[TRAINER_ID_LENGTH]; - /*0x10*/ u16 greeting[6]; - /*0x1C*/ u16 farewellPlayerLost[6]; - /*0x28*/ u16 farewellPlayerWon[6]; + /*0x10*/ u16 greeting[EASY_CHAT_BATTLE_WORDS_COUNT]; + /*0x1C*/ u16 farewellPlayerLost[EASY_CHAT_BATTLE_WORDS_COUNT]; + /*0x28*/ u16 farewellPlayerWon[EASY_CHAT_BATTLE_WORDS_COUNT]; /*0x34*/ struct BattleTowerPokemon party[FRONTIER_PARTY_SIZE]; /*0xB8*/ u32 checksum; }; @@ -315,32 +326,27 @@ struct BattleFrontier { /*0x64C*/ struct EmeraldBattleTowerRecord towerPlayer; /*0x738*/ struct EmeraldBattleTowerRecord towerRecords[5]; // From record mixing. - /*0xBD4*/ u16 field_BD4; - /*0xBD6*/ u16 field_BD6; - /*0xBD8*/ u8 field_BD8[PLAYER_NAME_LENGTH + 1]; - /*0xBE3*/ u8 field_BE0[POKEMON_NAME_LENGTH + 1]; - /*0xBEB*/ u8 field_BEB; + /*0xBEB*/ struct BattleTowerInterview towerInterview; /*0xBEC*/ struct BattleTowerEReaderTrainer ereaderTrainer; - /*0xCA8*/ u8 field_CA8; - /*0xCA9*/ u8 lvlMode:2; // 0x1, 0x2 -> 0x3 - /*0xCA9*/ u8 field_CA9_a:1; // 0x4 - /*0xCA9*/ u8 field_CA9_b:1; // 0x8 - /*0xCA9*/ u8 field_CA9_c:1; // 0x10 - /*0xCA9*/ u8 field_CA9_d:1; // 0x20 - /*0xCA9*/ u8 field_CA9_e:1; // 0x40 - /*0xCA9*/ u8 field_CA9_f:1; // 0x80 - /*0xCAA*/ u16 selectedPartyMons[FRONTIER_PARTY_SIZE]; - /*0xCB0*/ u16 field_CB0; - /*0xCB2*/ u16 curChallengeBattleNum; // In case of battle pyramid, the floor. + /*0xCA8*/ u8 challengeStatus; + /*0xCA9*/ u8 lvlMode:2; + /*0xCA9*/ u8 challengePaused:1; + /*0xCA9*/ u8 field_CA9_b:1; + /*0xCA9*/ u8 unused_CA9_c:1; + /*0xCA9*/ u8 unused_CA9_d:1; + /*0xCA9*/ u8 unused_CA9_e:1; + /*0xCA9*/ u8 unused_CA9_f:1; + /*0xCAA*/ u16 selectedPartyMons[MAX_FRONTIER_PARTY_SIZE]; + /*0xCB2*/ u16 curChallengeBattleNum; // Battle number / room number (Pike) / floor number (Pyramid) /*0xCB4*/ u16 trainerIds[20]; - /*0xCDC*/ u32 field_CDC; + /*0xCDC*/ u32 winStreakActiveFlags; /*0xCE0*/ u16 towerWinStreaks[4][2]; /*0xCF0*/ u16 towerRecordWinStreaks[4][2]; - /*0xD00*/ u16 field_D00; - /*0xD02*/ u16 field_D02; - /*0xD04*/ u16 field_D04; - /*0xD06*/ u8 field_D06; - /*0xD07*/ u8 field_D07; + /*0xD00*/ u16 battledBrainFlags; + /*0xD02*/ u16 towerSinglesStreak; // Never read + /*0xD04*/ u16 towerNumWins; // Increments to MAX_STREAK but never read otherwise + /*0xD06*/ u8 towerBattleOutcome; + /*0xD07*/ u8 towerLvlMode; /*0xD08*/ u8 field_D08_0:1; /*0xD08*/ u8 field_D08_1:1; /*0xD08*/ u8 field_D08_2:1; @@ -386,41 +392,41 @@ struct BattleFrontier /*0xE6A*/ u16 field_E6A; /*0xE6C*/ u16 field_E6C; /*0xE6E*/ u16 field_E6E; - /*0xE70*/ struct RentalMon rentalMons[6]; + /*0xE70*/ struct RentalMon rentalMons[PARTY_SIZE]; /*0xEB8*/ u16 battlePoints; - /*0xEBA*/ u16 field_EBA; + /*0xEBA*/ u16 cardBattlePoints; /*0xEBC*/ u32 battlesCount; /*0xEC0*/ u16 field_EC0[16]; /*0xEE0*/ u8 trainerFlags; - /*0xEE1*/ u8 opponentName[2][PLAYER_NAME_LENGTH + 1]; - /*0xEF1*/ u8 field_EF1[2][4]; - /*0xEF9*/ u8 unk_EF9:7; + /*0xEE1*/ u8 opponentNames[2][PLAYER_NAME_LENGTH + 1]; + /*0xEF1*/ u8 opponentTrainerIds[2][TRAINER_ID_LENGTH]; + /*0xEF9*/ u8 unk_EF9:7; // Never read /*0xEF9*/ u8 savedGame:1; - /*0xEFA*/ u8 field_EFA; - /*0xEFB*/ u8 field_EFB; - /*0xEFC*/ struct FrontierMonData field_EFC[3]; + /*0xEFA*/ u8 unused_EFA; + /*0xEFB*/ u8 unused_EFB; + /*0xEFC*/ struct FrontierMonData field_EFC[FRONTIER_PARTY_SIZE]; }; -struct Sav2_B8 +struct ApprenticeQuestion { - u8 unk0_0:2; - u8 unk0_1:2; - u8 unk0_2:2; - u8 unk0_3:2; - u16 unk2; + u8 questionId:2; + u8 monId:2; + u8 moveSlot:2; + u8 suggestedChange:2; // TRUE if told to use held item or second move, FALSE if told to use no item or first move + u16 data; // used both as an itemId and a moveId }; struct PlayersApprentice { /*0xB0*/ u8 id; - /*0xB1*/ u8 activeLvlMode:2; // +1, 0 means not active - /*0xB1*/ u8 field_B1_1:4; - /*0xB1*/ u8 field_B1_2:2; - /*0xB2*/ u8 field_B2_0:3; - /*0xB2*/ u8 field_B2_1:2; - /*0xB3*/ u8 field_B3; - /*0xB4*/ u8 monIds[MULTI_PARTY_SIZE]; - /*0xB8*/ struct Sav2_B8 field_B8[9]; + /*0xB1*/ u8 lvlMode:2; //0: Unassigned, 1: Lv 50, 2: Open Lv + /*0xB1*/ u8 questionsAnswered:4; + /*0xB1*/ u8 leadMonId:2; + /*0xB2*/ u8 party:3; + /*0xB2*/ u8 saveId:2; + /*0xB3*/ u8 unused; + /*0xB4*/ u8 speciesIds[MULTI_PARTY_SIZE]; + /*0xB8*/ struct ApprenticeQuestion questions[APPRENTICE_MAX_QUESTIONS]; }; struct RankingHall1P @@ -465,7 +471,7 @@ struct SaveBlock2 /*0xA8*/ u32 field_A8; // Written to, but never read. /*0xAC*/ u32 encryptionKey; /*0xB0*/ struct PlayersApprentice playerApprentice; - /*0xDC*/ struct Apprentice apprentices[4]; // From record mixing. + /*0xDC*/ struct Apprentice apprentices[APPRENTICE_COUNT]; /*0x1EC*/ struct BerryCrush berryCrush; /*0x1FC*/ struct PokemonJumpResults pokeJump; /*0x20C*/ struct BerryPickingResults berryPick; @@ -949,10 +955,10 @@ struct SaveBlock1 /*0x2BA1*/ u8 outbreakPokemonProbability; /*0x2BA2*/ u16 outbreakDaysLeft; /*0x2BA4*/ struct GabbyAndTyData gabbyAndTyData; - /*0x2BB0*/ u16 easyChatProfile[6]; - /*0x2BBC*/ u16 easyChatBattleStart[6]; - /*0x2BC8*/ u16 easyChatBattleWon[6]; - /*0x2BD4*/ u16 easyChatBattleLost[6]; + /*0x2BB0*/ u16 easyChatProfile[EASY_CHAT_BATTLE_WORDS_COUNT]; + /*0x2BBC*/ u16 easyChatBattleStart[EASY_CHAT_BATTLE_WORDS_COUNT]; + /*0x2BC8*/ u16 easyChatBattleWon[EASY_CHAT_BATTLE_WORDS_COUNT]; + /*0x2BD4*/ u16 easyChatBattleLost[EASY_CHAT_BATTLE_WORDS_COUNT]; /*0x2BE0*/ struct MailStruct mail[MAIL_COUNT]; /*0x2E20*/ u8 additionalPhrases[8]; // bitfield for 33 additional phrases in easy chat system /*0x2E28*/ OldMan oldMan; diff --git a/include/graphics.h b/include/graphics.h index 831b202f8..146803cfa 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4363,7 +4363,7 @@ extern const u32 gBattleAnimSpriteGfx_Pokeball[]; extern const u32 gBattleAnimSpriteGfx_Spotlight[]; extern const u32 gBattleAnimSpriteGfx_LetterZ[]; extern const u32 gBattleAnimSpriteGfx_RapidSpin[]; -extern const u32 gBattleAnimSpriteGfx_TriForceTriangle[]; +extern const u32 gBattleAnimSpriteGfx_TriAttackTriangle[]; extern const u32 gBattleAnimSpriteGfx_WispOrb[]; extern const u32 gBattleAnimSpriteGfx_WispFire[]; extern const u32 gBattleAnimSpriteGfx_GoldStars[]; @@ -4646,7 +4646,7 @@ extern const u32 gBattleAnimSpritePal_JaggedMusicNote[]; extern const u32 gBattleAnimSpritePal_Pokeball[]; extern const u32 gBattleAnimSpritePal_LetterZ[]; extern const u32 gBattleAnimSpritePal_RapidSpin[]; -extern const u32 gBattleAnimSpritePal_TriForceTriangle[]; +extern const u32 gBattleAnimSpritePal_TriAttackTriangle[]; extern const u32 gBattleAnimSpritePal_WispOrb[]; extern const u32 gBattleAnimSpritePal_GoldStars[]; extern const u32 gBattleAnimSpritePal_EclipsingOrb[]; diff --git a/include/item_menu.h b/include/item_menu.h index a21a6da4f..508f94815 100644 --- a/include/item_menu.h +++ b/include/item_menu.h @@ -71,7 +71,7 @@ extern u16 gSpecialVar_ItemId; void sub_81AAC14(void); void FavorLadyOpenBagMenu(void); void QuizLadyOpenBagMenu(void); -void sub_81AAC28(void); +void ApprenticeOpenBagMenu(void); void sub_81AABB0(void); void SetInitialScrollAndCursorPositions(u8 pocketId); void bag_menu_mail_related(void); diff --git a/include/strings.h b/include/strings.h index 7a477e166..f814ad29f 100644 --- a/include/strings.h +++ b/include/strings.h @@ -1304,7 +1304,7 @@ extern const u8 gText_1st[]; extern const u8 gText_SpaceAndSpace[]; extern const u8 gText_CommaSpace[]; extern const u8 gText_NewLine[]; -extern const u8 gText_ScrollTextUp[]; +extern const u8 gText_LineBreak[]; extern const u8 gText_Space[]; extern const u8 gText_Space2[]; extern const u8 gText_Are[]; @@ -1326,34 +1326,35 @@ extern const u8 gText_FrontierFacilityRoomsCleared[]; extern const u8 gText_FrontierFacilityKOsStreak[]; extern const u8 gText_FrontierFacilityFloorsCleared[]; -extern const u8 gText_082C843F[]; -extern const u8 gText_082C848B[]; -extern const u8 gText_082C8628[]; -extern const u8 gText_082C85B4[]; -extern const u8 gText_082C8512[]; -extern const u8 gText_082C859D[]; -extern const u8 gText_082C86C3[]; -extern const u8 gText_082C8458[]; -extern const u8 gText_082C84C1[]; -extern const u8 gText_082C8662[]; -extern const u8 gText_082C85E3[]; -extern const u8 gText_082C853B[]; -extern const u8 gText_082C85A4[]; -extern const u8 gText_082C86FE[]; -extern const u8 gText_082C846C[]; -extern const u8 gText_082C84D0[]; -extern const u8 gText_082C8682[]; -extern const u8 gText_082C85F5[]; -extern const u8 gText_082C8561[]; -extern const u8 gText_082C85A9[]; -extern const u8 gText_082C8739[]; -extern const u8 gText_082C8480[]; -extern const u8 gText_082C84F7[]; -extern const u8 gText_082C86B3[]; -extern const u8 gText_082C8611[]; -extern const u8 gText_082C8589[]; -extern const u8 gText_082C85AE[]; -extern const u8 gText_082C877B[]; +// Frontier Brain +extern const u8 gText_AnabelWonSilver[]; +extern const u8 gText_TuckerWonSilver[]; +extern const u8 gText_SpenserWonSilver[]; +extern const u8 gText_GretaWonSilver[]; +extern const u8 gText_NolandWonSilver[]; +extern const u8 gText_LucyWonSilver[]; +extern const u8 gText_BrandonWonSilver[]; +extern const u8 gText_AnabelDefeatSilver[]; +extern const u8 gText_TuckerDefeatSilver[]; +extern const u8 gText_SpenserDefeatSilver[]; +extern const u8 gText_GretaDefeatSilver[]; +extern const u8 gText_NolandDefeatSilver[]; +extern const u8 gText_LucyDefeatSilver[]; +extern const u8 gText_BrandonDefeatSilver[]; +extern const u8 gText_AnabelWonGold[]; +extern const u8 gText_TuckerWonGold[]; +extern const u8 gText_SpenserWonGold[]; +extern const u8 gText_GretaWonGold[]; +extern const u8 gText_NolandWonGold[]; +extern const u8 gText_LucyWonGold[]; +extern const u8 gText_BrandonWonGold[]; +extern const u8 gText_AnabelDefeatGold[]; +extern const u8 gText_TuckerDefeatGold[]; +extern const u8 gText_SpenserDefeatGold[]; +extern const u8 gText_GretaDefeatGold[]; +extern const u8 gText_NolandDefeatGold[]; +extern const u8 gText_LucyDefeatGold[]; +extern const u8 gText_BrandonDefeatGold[]; // Battle Tower. extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_2479CE[]; @@ -2400,6 +2401,10 @@ extern const u8 gUnknown_085EDC45[]; extern const u8 gUnknown_085EDB00[]; extern const u8 gUnknown_085EDC84[]; +// Apprentice +extern const u8 gText_Give[]; +extern const u8 gText_NoNeed[]; + // Easy Chat Entry extern const u8 gText_StopGivingPkmnMail[]; extern const u8 gText_LikeToQuitQuiz[]; diff --git a/include/tv.h b/include/tv.h index 4027c3c0f..dc4b22a99 100644 --- a/include/tv.h +++ b/include/tv.h @@ -9,7 +9,7 @@ extern u8 *const gTVStringVarPtrs[3]; void ClearTVShowData(void); void sub_80EE184(void); void sub_80EE35C(u16 foeSpecies, u16 species, u8 moveIdx, const u16 *movePtr, u16 betterMove); -void sub_80EE8C8(u16 winStreak, u8 facility); +void TryPutFrontierTVShowOnAir(u16 winStreak, u8 facility); void DoTVShow(void); void DoTVShowInSearchOfTrainers(void); void TryPutTreasureInvestigatorsOnAir(void); @@ -56,7 +56,7 @@ void InterviewAfter(void); void UpdateTVScreensOnMap(int, int); void TV_PrintIntToStringVar(u8 varIdx, int value); void SaveRecordedItemPurchasesForTVShow(void); -bool8 sub_80EE818(void); +bool8 ShouldAirFrontierTVShow(void); void sub_80EE8C8(u16 winStreak, u8 facilityAndMode); void BravoTrainerPokemonProfile_BeforeInterview2(u8 contestStandingPlace); void ContestLiveUpdates_BeforeInterview_1(u8 a0); diff --git a/src/apprentice.c b/src/apprentice.c index 5a9df5dae..7f493a136 100644 --- a/src/apprentice.c +++ b/src/apprentice.c @@ -22,1052 +22,117 @@ #include "strings.h" #include "task.h" #include "text.h" -#include "constants/apprentice.h" +#include "constants/battle_frontier.h" +#include "constants/easy_chat.h" #include "constants/items.h" +#include "constants/pokemon.h" #include "constants/songs.h" #include "constants/species.h" +#include "constants/trainers.h" #include "constants/moves.h" +/* Summary of Apprentice, because (as of writing at least) its not very well documented online + * + * ## Basic info + * In the Battle Tower lobby there is an NPC which asks to be taught by the player + * They can be any 1 of 16 NPC trainers, each with their own name, class, and set of possible party species + * They ask the player a series of questions once per day, and eventually depart the lobby to be replaced by a new Apprentice + * + * ## Initial Questions + * The first question they always ask is a request to be taught, which cannot be rejected + * The second question (which follows immediately after) is whether they should participate in Battle Tower Lv 50 or Open Lv + * After these opening questions they always ask the player to choose between 2 mons, which they repeat 3 times + * + * ## Random Questions + * After choosing 3 mons for them, the Apprentice will randomly ask between 1 and 8 questions of 4 different types, as follows + * - Asking which mon to lead with, which they will only ask at most once + * - Asking which move a mon should use, which they will ask at most 5 times + * - Asking what held item to give to a mon, which they will ask at most 3 times (once for each mon) + * - Asking what they should say when they win a battle, which will always be their final question before departing + * + * ## After departing + * After telling them what they should say when they win a battle they will leave the lobby for a final time + * They will then be replaced by a new random Apprentice (they can repeat) + * Up to 4 old Apprentices are saved and can be encountered (or partnered with) during challenges of the mode they were told to battle in + * They can also be record mixed to and from other Emerald games + * Old/record mixed Apprentices are stored in struct Apprentice apprentices of SaveBlock2 + * and the current Apprentice is stored in struct PlayersApprentice playerApprentice of SaveBlock2 + */ + #define PLAYER_APPRENTICE gSaveBlock2Ptr->playerApprentice +#define CURRENT_QUESTION_NUM PLAYER_APPRENTICE.questionsAnswered - NUM_WHICH_MON_QUESTIONS -struct Unk030062ECStruct +struct ApprenticePartyMovesData { - u8 unk0; - u16 unk2[3][5]; - u8 unk20[3][5]; + u8 moveCounter; + u16 moves[MULTI_PARTY_SIZE][NUM_WHICH_MOVE_QUESTIONS]; + u8 moveSlots[MULTI_PARTY_SIZE][NUM_WHICH_MOVE_QUESTIONS]; }; -struct Unk030062F0Struct +struct ApprenticeQuestionData { - u16 unk0; - u16 unk2; - u16 unk4; - u16 unk6; + u16 speciesId; + u16 altSpeciesId; + u16 moveId1; + u16 moveId2; }; -// data/scripts/apprentice.inc -extern const u8 gText_082B7229[]; -extern const u8 gText_082B731C[]; -extern const u8 gText_082B735B[]; -extern const u8 gText_082B7423[]; -extern const u8 gText_082B74C1[]; -extern const u8 gText_082B756F[]; -extern const u8 gText_082B75B2[]; -extern const u8 gText_082B763F[]; -extern const u8 gText_082B76AC[]; -extern const u8 gText_082B7772[]; -extern const u8 gText_082B77CE[]; -extern const u8 gText_082B7871[]; -extern const u8 gText_082B78D4[]; -extern const u8 gText_082B7B1A[]; -extern const u8 gText_082B7C13[]; -extern const u8 gText_082B7D18[]; -extern const u8 gText_082B7DD4[]; -extern const u8 gText_082B7EE5[]; -extern const u8 gText_082B7F35[]; -extern const u8 gText_082B7FE8[]; -extern const u8 gText_082B8087[]; -extern const u8 gText_082B822B[]; -extern const u8 gText_082B8286[]; -extern const u8 gText_082B8356[]; -extern const u8 gText_082B83CE[]; -extern const u8 gText_082B84FC[]; -extern const u8 gText_082B8559[]; -extern const u8 gText_082B8656[]; -extern const u8 gText_082B86EA[]; -extern const u8 gText_082B87DA[]; -extern const u8 gText_082B887C[]; -extern const u8 gText_082B8957[]; -extern const u8 gText_082B89C6[]; -extern const u8 gText_082B8ACF[]; -extern const u8 gText_082B8B66[]; -extern const u8 gText_082B8C20[]; -extern const u8 gText_082B8CAA[]; -extern const u8 gText_082B8DD3[]; -extern const u8 gText_082B8E24[]; -extern const u8 gText_082B8ED5[]; -extern const u8 gText_082B8F45[]; -extern const u8 gText_082B905F[]; -extern const u8 gText_082B910E[]; -extern const u8 gText_082B9204[]; -extern const u8 gText_082B929C[]; -extern const u8 gText_082B9438[]; -extern const u8 gText_082B9488[]; -extern const u8 gText_082B9564[]; -extern const u8 gText_082B95D8[]; -extern const u8 gText_082B9763[]; -extern const u8 gText_082B97E5[]; -extern const u8 gText_082B989A[]; -extern const u8 gText_082B992D[]; -extern const u8 gText_082B9A84[]; -extern const u8 gText_082B9AB9[]; -extern const u8 gText_082B9B76[]; -extern const u8 gText_082B9BF2[]; -extern const u8 gText_082B9D83[]; -extern const u8 gText_082B9DF9[]; -extern const u8 gText_082B9EAA[]; -extern const u8 gText_082B9F55[]; -extern const u8 gText_082BA084[]; -extern const u8 gText_082BA11D[]; -extern const u8 gText_082BA1F3[]; - -extern const u8 gText_082BE50D[]; -extern const u8 gText_082BE5F5[]; -extern const u8 gText_082BE679[]; -extern const u8 gText_082BE71E[]; -extern const u8 gText_082BE762[]; -extern const u8 gText_082BE7F8[]; -extern const u8 gText_082BE850[]; -extern const u8 gText_082BE99C[]; -extern const u8 gText_082BEA1B[]; -extern const u8 gText_082BEAE9[]; -extern const u8 gText_082BEB72[]; -extern const u8 gText_082BEC8E[]; -extern const u8 gText_082BED16[]; -extern const u8 gText_082BEE29[]; -extern const u8 gText_082BEEB4[]; -extern const u8 gText_082BEFE2[]; -extern const u8 gText_082BF04E[]; -extern const u8 gText_082BF11D[]; -extern const u8 gText_082BF1A8[]; -extern const u8 gText_082BF268[]; -extern const u8 gText_082BF2D1[]; -extern const u8 gText_082BF3CF[]; -extern const u8 gText_082BF46A[]; -extern const u8 gText_082BF551[]; -extern const u8 gText_082BF5C3[]; -extern const u8 gText_082BF6E5[]; -extern const u8 gText_082BF773[]; -extern const u8 gText_082BF869[]; -extern const u8 gText_082BF8DD[]; -extern const u8 gText_082BF9BA[]; -extern const u8 gText_082BFA5A[]; -extern const u8 gText_082BFB4E[]; - -extern const u8 gText_082BA2A3[]; -extern const u8 gText_082BA34E[]; -extern const u8 gText_082BA380[]; -extern const u8 gText_082BA3D2[]; -extern const u8 gText_082BA448[]; -extern const u8 gText_082BA4D3[]; -extern const u8 gText_082BA58C[]; -extern const u8 gText_082BA5BF[]; -extern const u8 gText_082BA5F3[]; -extern const u8 gText_082BA635[]; -extern const u8 gText_082BA6E6[]; -extern const u8 gText_082BA742[]; -extern const u8 gText_082BA770[]; -extern const u8 gText_082BA78F[]; -extern const u8 gText_082BA7D8[]; -extern const u8 gText_082BA867[]; -extern const u8 gText_082BA96B[]; -extern const u8 gText_082BA9B7[]; -extern const u8 gText_082BAA1B[]; -extern const u8 gText_082BAA81[]; -extern const u8 gText_082BAB22[]; -extern const u8 gText_082BAC43[]; -extern const u8 gText_082BAC78[]; -extern const u8 gText_082BAD17[]; -extern const u8 gText_082BADB6[]; -extern const u8 gText_082BAE36[]; -extern const u8 gText_082BAF4E[]; -extern const u8 gText_082BAF8F[]; -extern const u8 gText_082BAFDB[]; -extern const u8 gText_082BB05F[]; -extern const u8 gText_082BB0D4[]; -extern const u8 gText_082BB18C[]; -extern const u8 gText_082BB1CE[]; -extern const u8 gText_082BB242[]; -extern const u8 gText_082BB2D9[]; -extern const u8 gText_082BB370[]; -extern const u8 gText_082BB4C3[]; -extern const u8 gText_082BB4FB[]; -extern const u8 gText_082BB575[]; -extern const u8 gText_082BB5E1[]; -extern const u8 gText_082BB656[]; -extern const u8 gText_082BB6E5[]; -extern const u8 gText_082BB72C[]; -extern const u8 gText_082BB7A2[]; -extern const u8 gText_082BB84A[]; -extern const u8 gText_082BB8CD[]; -extern const u8 gText_082BB970[]; -extern const u8 gText_082BB9AE[]; -extern const u8 gText_082BBA05[]; -extern const u8 gText_082BBA6C[]; -extern const u8 gText_082BBB01[]; -extern const u8 gText_082BBC1C[]; -extern const u8 gText_082BBC4B[]; -extern const u8 gText_082BBCF6[]; -extern const u8 gText_082BBD90[]; -extern const u8 gText_082BBE0B[]; -extern const u8 gText_082BBEE5[]; -extern const u8 gText_082BBF25[]; -extern const u8 gText_082BBFA4[]; -extern const u8 gText_082BC024[]; -extern const u8 gText_082BC0C8[]; -extern const u8 gText_082BC213[]; -extern const u8 gText_082BC247[]; -extern const u8 gText_082BC2DD[]; -extern const u8 gText_082BC373[]; -extern const u8 gText_082BC40E[]; -extern const u8 gText_082BC514[]; -extern const u8 gText_082BC555[]; -extern const u8 gText_082BC5CE[]; -extern const u8 gText_082BC666[]; -extern const u8 gText_082BC714[]; -extern const u8 gText_082BC808[]; -extern const u8 gText_082BC84D[]; -extern const u8 gText_082BC8EA[]; -extern const u8 gText_082BC984[]; -extern const u8 gText_082BCA4D[]; -extern const u8 gText_082BCB75[]; -extern const u8 gText_082BCBA6[]; -extern const u8 gText_082BCBFC[]; -extern const u8 gText_082BCCA4[]; - -extern const u8 gText_082BFBF2[]; -extern const u8 gText_082BFCAE[]; -extern const u8 gText_082BFD26[]; -extern const u8 gText_082BFDB1[]; -extern const u8 gText_082BFE24[]; -extern const u8 gText_082BFEAD[]; -extern const u8 gText_082BFF0A[]; -extern const u8 gText_082C0032[]; -extern const u8 gText_082C0090[]; -extern const u8 gText_082C016E[]; -extern const u8 gText_082C01F7[]; -extern const u8 gText_082C034C[]; -extern const u8 gText_082C03CA[]; -extern const u8 gText_082C046E[]; -extern const u8 gText_082C04F9[]; -extern const u8 gText_082C0598[]; -extern const u8 gText_082C0602[]; -extern const u8 gText_082C06D8[]; -extern const u8 gText_082C074A[]; -extern const u8 gText_082C0809[]; -extern const u8 gText_082C086E[]; -extern const u8 gText_082C0982[]; -extern const u8 gText_082C0A1D[]; -extern const u8 gText_082C0AFD[]; -extern const u8 gText_082C0B6F[]; -extern const u8 gText_082C0C7D[]; -extern const u8 gText_082C0D0B[]; -extern const u8 gText_082C0DFE[]; -extern const u8 gText_082C0E71[]; -extern const u8 gText_082C0F6D[]; -extern const u8 gText_082C1003[]; -extern const u8 gText_082C1122[]; - -extern const u8 gText_082BCD68[]; -extern const u8 gText_082BCE64[]; -extern const u8 gText_082BCEF2[]; -extern const u8 gText_082BCF61[]; -extern const u8 gText_082BCFA1[]; -extern const u8 gText_082BD03C[]; -extern const u8 gText_082BD06D[]; -extern const u8 gText_082BD18A[]; -extern const u8 gText_082BD222[]; -extern const u8 gText_082BD325[]; -extern const u8 gText_082BD3B1[]; -extern const u8 gText_082BD493[]; -extern const u8 gText_082BD51C[]; -extern const u8 gText_082BD609[]; -extern const u8 gText_082BD697[]; -extern const u8 gText_082BD797[]; -extern const u8 gText_082BD806[]; -extern const u8 gText_082BD8F5[]; -extern const u8 gText_082BD9BE[]; -extern const u8 gText_082BDAE1[]; -extern const u8 gText_082BDB4E[]; -extern const u8 gText_082BDC6B[]; -extern const u8 gText_082BDD0D[]; -extern const u8 gText_082BDDEC[]; -extern const u8 gText_082BDE68[]; -extern const u8 gText_082BDF4D[]; -extern const u8 gText_082BDFD8[]; -extern const u8 gText_082BE0FD[]; -extern const u8 gText_082BE189[]; -extern const u8 gText_082BE2A5[]; -extern const u8 gText_082BE33E[]; -extern const u8 gText_082BE46C[]; - -extern const u8 gText_082C11D1[]; -extern const u8 gText_082C12D5[]; -extern const u8 gText_082C13AB[]; -extern const u8 gText_082C1444[]; -extern const u8 gText_082C1501[]; -extern const u8 gText_082C15B6[]; -extern const u8 gText_082C165E[]; -extern const u8 gText_082C174F[]; -extern const u8 gText_082C1862[]; -extern const u8 gText_082C19A0[]; -extern const u8 gText_082C1A76[]; -extern const u8 gText_082C1C16[]; -extern const u8 gText_082C1CF5[]; -extern const u8 gText_082C1DC1[]; -extern const u8 gText_082C1EDC[]; -extern const u8 gText_082C1FEC[]; -extern const u8 gText_082C20D1[]; -extern const u8 gText_082C21FF[]; -extern const u8 gText_082C231C[]; -extern const u8 gText_082C2407[]; -extern const u8 gText_082C24B5[]; -extern const u8 gText_082C25B1[]; -extern const u8 gText_082C2707[]; -extern const u8 gText_082C27D4[]; -extern const u8 gText_082C28D6[]; -extern const u8 gText_082C2A0B[]; -extern const u8 gText_082C2B50[]; -extern const u8 gText_082C2C77[]; -extern const u8 gText_082C2D67[]; -extern const u8 gText_082C2E41[]; -extern const u8 gText_082C2EF5[]; -extern const u8 gText_082C3023[]; - -extern const u8 gText_082B6EA5[]; -extern const u8 gText_082B6EEC[]; -extern const u8 gText_082B6F16[]; -extern const u8 gText_082B6F4C[]; -extern const u8 gText_082B6F92[]; -extern const u8 gText_082B6FC9[]; -extern const u8 gText_082B700C[]; -extern const u8 gText_082B703A[]; -extern const u8 gText_082B706A[]; -extern const u8 gText_082B709C[]; -extern const u8 gText_082B70CC[]; -extern const u8 gText_082B710A[]; -extern const u8 gText_082B714D[]; -extern const u8 gText_082B7185[]; -extern const u8 gText_082B71C1[]; -extern const u8 gText_082B71F9[]; - // IWRAM common -struct Unk030062ECStruct *gUnknown_030062EC; -struct Unk030062F0Struct *gUnknown_030062F0; -void (*gUnknown_030062F4)(void); +struct ApprenticePartyMovesData *gApprenticePartyMovesData; +struct ApprenticeQuestionData *gApprenticeQuestionData; +void (*gApprenticeFunc)(void); // This file's functions. -static u16 sub_819FF98(u8 arg0); -static bool8 sub_81A0194(u8 arg0, u16 moveId); +static u16 GetRandomAlternateMove(u8 monId); +static bool8 TrySetMove(u8 monId, u16 moveId); static void CreateChooseAnswerTask(bool8 noBButton, u8 itemsCount, u8 windowId); static u8 CreateAndShowWindow(u8 left, u8 top, u8 width, u8 height); static void RemoveAndHideWindow(u8 windowId); static void ExecuteFuncAfterButtonPress(void (*func)(void)); -static void Script_IsPlayersApprenticeActive(void); -static void Script_SetPlayersApprenticeLvlMode(void); -static void sub_81A0978(void); -static void sub_819FC60(void); -static void sub_81A0984(void); -static void sub_81A0990(void); -static void sub_81A09D0(void); +static void Script_GivenApprenticeLvlMode(void); +static void Script_SetApprenticeLvlMode(void); +static void Script_SetApprenticeId(void); +static void ShuffleApprenticeSpecies(void); +static void Script_SetRandomQuestionData(void); +static void IncrementQuestionsAnswered(void); +static void IsFinalQuestion(void); static void Script_CreateApprenticeMenu(void); -static void Script_PrintMessage(void); +static void Script_PrintApprenticeMessage(void); static void Script_ResetPlayerApprentice(void); -static void sub_81A1638(void); -static void sub_81A0CC0(void); -static void sub_81A09B4(void); -static void sub_81A0D40(void); -static void sub_81A0DD4(void); -static void sub_81A0FE4(void); -static void sub_81A0FFC(void); -static void sub_81A0D80(void); -static void sub_81A11F8(void); -static void sub_81A1218(void); -static void sub_81A1224(void); -static void sub_81A1438(void); -static void sub_81A150C(void); -static void Script_SetPlayerApprenticeTrainerGfxId(void); -static void sub_81A1644(void); -static void sub_81A1370(void); - -// rodata - -const struct ApprenticeTrainer gApprentices[] = -{ - { - .name = {_("サダヒロ"), _("ALANN"), _("ALAIN"), _("ADELFO"), _("CLAUS"), _("TEO")}, - .otId = 0xBDC9, - .facilityClass = 0x43, - .species = {SPECIES_BEAUTIFLY, SPECIES_DUSTOX, SPECIES_ILLUMISE, SPECIES_SHIFTRY, SPECIES_BRELOOM, SPECIES_NINJASK, SPECIES_SHEDINJA, SPECIES_PINSIR, SPECIES_HERACROSS, SPECIES_VOLBEAT}, - .id = 0, - .easyChatWords = {0x81D, 0x143E, 0xC00, 0xA01, 0x630, 0x1444}, - }, - { - .name = {_("ヒロオ"), _("LIONEL"), _("LIONEL"), _("CAIO"), _("LUDWIG"), _("LEO")}, - .otId = 0xCF09, - .facilityClass = 0x2B, - .species = {SPECIES_SWELLOW, SPECIES_SWALOT, SPECIES_SHUCKLE, SPECIES_MANECTRIC, SPECIES_TORKOAL, SPECIES_HARIYAMA, SPECIES_MIGHTYENA, SPECIES_LUDICOLO, SPECIES_CRAWDAUNT, SPECIES_WHISCASH}, - .id = 1, - .easyChatWords = {0xC38, 0xA01, 0x630, 0xA06, 0x1020, 0x2213}, - }, - { - .name = {_("ケイジ"), _("SONNY"), _("HERVE"), _("FEDRO"), _("WENZEL"), _("SANTI")}, - .otId = 0x2E34, - .facilityClass = 0x26, - .species = {SPECIES_LINOONE, SPECIES_MIGHTYENA, SPECIES_WHISCASH, SPECIES_ZANGOOSE, SPECIES_SEVIPER, SPECIES_NINETALES, SPECIES_KECLEON, SPECIES_SHUCKLE, SPECIES_MANECTRIC, SPECIES_MACHAMP}, - .id = 2, - .easyChatWords = {0xA01, 0x160A, 0xE15, 0x630, 0xC3B, 0xC04}, - }, - { - .name = {_("ユラ"), _("LAYLA"), _("LAYLA"), _("ASTRID"), _("SONJA"), _("LOLA")}, - .otId = 0x84EF, - .facilityClass = 0x47, - .species = {SPECIES_SWALOT, SPECIES_XATU, SPECIES_ALTARIA, SPECIES_GOLDUCK, SPECIES_FLYGON, SPECIES_ALAKAZAM, SPECIES_GARDEVOIR, SPECIES_WAILORD, SPECIES_GRUMPIG, SPECIES_MIGHTYENA}, - .id = 3, - .easyChatWords = {0x100B, 0x1E0F, 0x1039, 0x1421, 0xC03, 0xFFFF}, - }, - { - .name = {_("ヨウカ"), _("MACY"), _("AMELIE"), _("CLEO"), _("MARIA"), _("ELISA")}, - .otId = 0x1E43, - .facilityClass = 0x27, - .species = {SPECIES_WIGGLYTUFF, SPECIES_LINOONE, SPECIES_KINGDRA, SPECIES_DELCATTY, SPECIES_RAICHU, SPECIES_FEAROW, SPECIES_STARMIE, SPECIES_MEDICHAM, SPECIES_SHIFTRY, SPECIES_BEAUTIFLY}, - .id = 4, - .easyChatWords = {0x1E0F, 0x1014, 0x1006, 0x280F, 0x1C1C, 0x1C13}, - }, - { - .name = {_("ヤスシ"), _("DONTE"), _("BRAHIM"), _("GLAUCO"), _("JOSEF"), _("ROQUE")}, - .otId = 0x379F, - .facilityClass = 0x30, - .species = {SPECIES_STARMIE, SPECIES_DODRIO, SPECIES_AGGRON, SPECIES_MAGNETON, SPECIES_MACHAMP, SPECIES_ARMALDO, SPECIES_HERACROSS, SPECIES_NOSEPASS, SPECIES_EXPLOUD, SPECIES_MIGHTYENA}, - .id = 5, - .easyChatWords = {0xA29, 0x1408, 0x102F, 0x1638, 0x820, 0xC00}, - }, - { - .name = {_("ミサオ"), _("AMIRA"), _("LAURE"), _("DAFNE"), _("AMELIE"), _("LARA")}, - .otId = 0xF555, - .facilityClass = 0x31, - .species = {SPECIES_STARMIE, SPECIES_DODRIO, SPECIES_MAGNETON, SPECIES_MEDICHAM, SPECIES_MIGHTYENA, SPECIES_GLALIE, SPECIES_GOLEM, SPECIES_ELECTRODE, SPECIES_PELIPPER, SPECIES_SHARPEDO}, - .id = 6, - .easyChatWords = {0xC0B, 0x123E, 0xC00, 0xA31, 0x1430, 0xC00}, - }, - { - .name = {_("カズサ"), _("KALI"), _("JODIE"), _("ILENIA"), _("KARO"), _("ELSA")}, - .otId = 0x8D26, - .facilityClass = 0x14, - .species = {SPECIES_NINETALES, SPECIES_ALAKAZAM, SPECIES_SCEPTILE, SPECIES_SALAMENCE, SPECIES_GOLDUCK, SPECIES_MAWILE, SPECIES_WEEZING, SPECIES_LANTURN, SPECIES_GARDEVOIR, SPECIES_MILOTIC}, - .id = 7, - .easyChatWords = {0xA06, 0x620, 0xA1F, 0xA02, 0xC03, 0xFFFF}, - }, - { - .name = {_("スミレ"), _("ANNIE"), _("ANNIE"), _("IMELDA"), _("INES"), _("ROSA")}, - .otId = 0x800C, - .facilityClass = 0xD, - .species = {SPECIES_SCEPTILE, SPECIES_VILEPLUME, SPECIES_BELLOSSOM, SPECIES_ROSELIA, SPECIES_CORSOLA, SPECIES_FLYGON, SPECIES_BRELOOM, SPECIES_MILOTIC, SPECIES_ALTARIA, SPECIES_CRADILY}, - .id = 8, - .easyChatWords = {0x1E22, 0x433, 0x20E, 0xA02, 0x101E, 0xC00}, - }, - { - .name = {_("アキノリ"), _("DILLEN"), _("RENE"), _("INDRO"), _("DETLEF"), _("PEDRO")}, - .otId = 0x469f, - .facilityClass = 0, - .species = {SPECIES_SKARMORY, SPECIES_GOLEM, SPECIES_BLAZIKEN, SPECIES_CAMERUPT, SPECIES_DONPHAN, SPECIES_MUK, SPECIES_SALAMENCE, SPECIES_TROPIUS, SPECIES_SOLROCK, SPECIES_RHYDON}, - .id = 9, - .easyChatWords = {0xA3D, 0x1011, 0xE1E, 0x201C, 0xC04, 0xFFFF}, - }, - { - .name = {_("トウゾウ"), _("DALLAS"), _("BRUNO"), _("LEARCO"), _("ANSGAR"), _("MANOLO")}, - .otId = 0x71FC, - .facilityClass = 0x2D, - .species = {SPECIES_SEAKING, SPECIES_STARMIE, SPECIES_GOLDUCK, SPECIES_TENTACRUEL, SPECIES_OCTILLERY, SPECIES_GOREBYSS, SPECIES_GLALIE, SPECIES_WAILORD, SPECIES_SHARPEDO, SPECIES_KINGDRA}, - .id = 10, - .easyChatWords = {0xA05, 0x606, 0x160E, 0xA14, 0xC00, 0xFFFF}, - }, - { - .name = {_("セイヤ"), _("FRANK"), _("FRANK"), _("OLINDO"), _("FRANK"), _("MAURO")}, - .otId = 0xA39E, - .facilityClass = 0x3A, - .species = {SPECIES_QUAGSIRE, SPECIES_STARMIE, SPECIES_PELIPPER, SPECIES_CRAWDAUNT, SPECIES_WAILORD, SPECIES_GYARADOS, SPECIES_SWAMPERT, SPECIES_LANTURN, SPECIES_WHISCASH, SPECIES_SHUCKLE}, - .id = 11, - .easyChatWords = {0x280E, 0x103D, 0x240F, 0xA14, 0x1E23, 0x1024}, - }, - { - .name = {_("リュウジ"), _("LAMONT"), _("XAV"), _("ORFEO"), _("JÜRGEN"), _("JORGE")}, - .otId = 0xE590, - .facilityClass = 0x19, - .species = {SPECIES_ABSOL, SPECIES_CROBAT, SPECIES_EXPLOUD, SPECIES_MAGNETON, SPECIES_SHARPEDO, SPECIES_MANECTRIC, SPECIES_METAGROSS, SPECIES_ELECTRODE, SPECIES_NOSEPASS, SPECIES_WEEZING}, - .id = 12, - .easyChatWords = {0x1020, 0x62E, 0x100B, 0x1E22, 0x1E0F, 0x100B}, - }, - { - .name = {_("カツアキ"), _("TYRESE"), _("ANDY"), _("PARIDE"), _("DAVID"), _("CHICHO")}, - .otId = 0xD018, - .facilityClass = 10, - .species = {SPECIES_BLAZIKEN, SPECIES_GOLEM, SPECIES_MACHAMP, SPECIES_RHYDON, SPECIES_HARIYAMA, SPECIES_AGGRON, SPECIES_MEDICHAM, SPECIES_ZANGOOSE, SPECIES_VIGOROTH, SPECIES_SLAKING}, - .id = 13, - .easyChatWords = {0xA29, 0x63A, 0xE15, 0x1435, 0x1034, 0x61E}, - }, - { - .name = {_("トシミツ"), _("DANTE"), _("DANTE"), _("RAOUL"), _("LOTHAR"), _("PABLO")}, - .otId = 0xBC75, - .facilityClass = 14, - .species = {SPECIES_SCEPTILE, SPECIES_SANDSLASH, SPECIES_FLYGON, SPECIES_CLAYDOL, SPECIES_ARMALDO, SPECIES_CROBAT, SPECIES_CRADILY, SPECIES_SOLROCK, SPECIES_LUNATONE, SPECIES_GOLEM}, - .id = 14, - .easyChatWords = {0xA01, 0x1017, 0x1243, 0x1E22, 0x100B, 0x280F}, - }, - { - .name = {_("ローウェン"), _("ARTURO"), _("ARTURO"), _("ROMOLO"), _("BRIAN"), _("ARTURO")}, - .otId = 0xFA02, - .facilityClass = 0x20, - .species = {SPECIES_ABSOL, SPECIES_MIGHTYENA, SPECIES_ALAKAZAM, SPECIES_BANETTE, SPECIES_NINETALES, SPECIES_CLAYDOL, SPECIES_MUK, SPECIES_SALAMENCE, SPECIES_WALREIN, SPECIES_DUSCLOPS}, - .id = 15, - .easyChatWords = {0x1E0F, 0x1404, 0x102F, 0x1006, 0x1020, 0xE03}, - }, -}; - -static const u8 *const gUnknown_08610EF0[][4] = -{ - {gText_082B7229, gText_082B731C, gText_082B735B, gText_082B7423}, - {gText_082B74C1, gText_082B756F, gText_082B75B2, gText_082B763F}, - {gText_082B76AC, gText_082B7772, gText_082B77CE, gText_082B7871}, - {gText_082B78D4, gText_082B7B1A, gText_082B7C13, gText_082B7D18}, - {gText_082B7DD4, gText_082B7EE5, gText_082B7F35, gText_082B7FE8}, - {gText_082B8087, gText_082B822B, gText_082B8286, gText_082B8356}, - {gText_082B83CE, gText_082B84FC, gText_082B8559, gText_082B8656}, - {gText_082B86EA, gText_082B87DA, gText_082B887C, gText_082B8957}, - {gText_082B89C6, gText_082B8ACF, gText_082B8B66, gText_082B8C20}, - {gText_082B8CAA, gText_082B8DD3, gText_082B8E24, gText_082B8ED5}, - {gText_082B8F45, gText_082B905F, gText_082B910E, gText_082B9204}, - {gText_082B929C, gText_082B9438, gText_082B9488, gText_082B9564}, - {gText_082B95D8, gText_082B9763, gText_082B97E5, gText_082B989A}, - {gText_082B992D, gText_082B9A84, gText_082B9AB9, gText_082B9B76}, - {gText_082B9BF2, gText_082B9D83, gText_082B9DF9, gText_082B9EAA}, - {gText_082B9F55, gText_082BA084, gText_082BA11D, gText_082BA1F3}, -}; - -static const u8 *const gUnknown_08610FF0[][2] = -{ - {gText_082BE50D, gText_082BE5F5}, - {gText_082BE679, gText_082BE71E}, - {gText_082BE762, gText_082BE7F8}, - {gText_082BE850, gText_082BE99C}, - {gText_082BEA1B, gText_082BEAE9}, - {gText_082BEB72, gText_082BEC8E}, - {gText_082BED16, gText_082BEE29}, - {gText_082BEEB4, gText_082BEFE2}, - {gText_082BF04E, gText_082BF11D}, - {gText_082BF1A8, gText_082BF268}, - {gText_082BF2D1, gText_082BF3CF}, - {gText_082BF46A, gText_082BF551}, - {gText_082BF5C3, gText_082BF6E5}, - {gText_082BF773, gText_082BF869}, - {gText_082BF8DD, gText_082BF9BA}, - {gText_082BFA5A, gText_082BFB4E}, -}; - -static const u8 *const gUnknown_08611070[][5] = -{ - {gText_082BA2A3, gText_082BA34E, gText_082BA380, gText_082BA3D2, gText_082BA448}, - {gText_082BA4D3, gText_082BA58C, gText_082BA5BF, gText_082BA5F3, gText_082BA635}, - {gText_082BA6E6, gText_082BA742, gText_082BA770, gText_082BA78F, gText_082BA7D8}, - {gText_082BA867, gText_082BA96B, gText_082BA9B7, gText_082BAA1B, gText_082BAA81}, - {gText_082BAB22, gText_082BAC43, gText_082BAC78, gText_082BAD17, gText_082BADB6}, - {gText_082BAE36, gText_082BAF4E, gText_082BAF8F, gText_082BAFDB, gText_082BB05F}, - {gText_082BB0D4, gText_082BB18C, gText_082BB1CE, gText_082BB242, gText_082BB2D9}, - {gText_082BB370, gText_082BB4C3, gText_082BB4FB, gText_082BB575, gText_082BB5E1}, - {gText_082BB656, gText_082BB6E5, gText_082BB72C, gText_082BB7A2, gText_082BB84A}, - {gText_082BB8CD, gText_082BB970, gText_082BB9AE, gText_082BBA05, gText_082BBA6C}, - {gText_082BBB01, gText_082BBC1C, gText_082BBC4B, gText_082BBCF6, gText_082BBD90}, - {gText_082BBE0B, gText_082BBEE5, gText_082BBF25, gText_082BBFA4, gText_082BC024}, - {gText_082BC0C8, gText_082BC213, gText_082BC247, gText_082BC2DD, gText_082BC373}, - {gText_082BC40E, gText_082BC514, gText_082BC555, gText_082BC5CE, gText_082BC666}, - {gText_082BC714, gText_082BC808, gText_082BC84D, gText_082BC8EA, gText_082BC984}, - {gText_082BCA4D, gText_082BCB75, gText_082BCBA6, gText_082BCBFC, gText_082BCCA4}, -}; - -static const u8 *const gUnknown_086111B0[][2] = -{ - {gText_082BFBF2, gText_082BFCAE}, - {gText_082BFD26, gText_082BFDB1}, - {gText_082BFE24, gText_082BFEAD}, - {gText_082BFF0A, gText_082C0032}, - {gText_082C0090, gText_082C016E}, - {gText_082C01F7, gText_082C034C}, - {gText_082C03CA, gText_082C046E}, - {gText_082C04F9, gText_082C0598}, - {gText_082C0602, gText_082C06D8}, - {gText_082C074A, gText_082C0809}, - {gText_082C086E, gText_082C0982}, - {gText_082C0A1D, gText_082C0AFD}, - {gText_082C0B6F, gText_082C0C7D}, - {gText_082C0D0B, gText_082C0DFE}, - {gText_082C0E71, gText_082C0F6D}, - {gText_082C1003, gText_082C1122}, -}; - -static const u8 *const gUnknown_08611230[][2] = -{ - {gText_082BCD68, gText_082BCE64}, - {gText_082BCEF2, gText_082BCF61}, - {gText_082BCFA1, gText_082BD03C}, - {gText_082BD06D, gText_082BD18A}, - {gText_082BD222, gText_082BD325}, - {gText_082BD3B1, gText_082BD493}, - {gText_082BD51C, gText_082BD609}, - {gText_082BD697, gText_082BD797}, - {gText_082BD806, gText_082BD8F5}, - {gText_082BD9BE, gText_082BDAE1}, - {gText_082BDB4E, gText_082BDC6B}, - {gText_082BDD0D, gText_082BDDEC}, - {gText_082BDE68, gText_082BDF4D}, - {gText_082BDFD8, gText_082BE0FD}, - {gText_082BE189, gText_082BE2A5}, - {gText_082BE33E, gText_082BE46C}, -}; - -static const u8 *const gUnknown_086112B0[][2] = -{ - {gText_082C11D1, gText_082C12D5}, - {gText_082C13AB, gText_082C1444}, - {gText_082C1501, gText_082C15B6}, - {gText_082C165E, gText_082C174F}, - {gText_082C1862, gText_082C19A0}, - {gText_082C1A76, gText_082C1C16}, - {gText_082C1CF5, gText_082C1DC1}, - {gText_082C1EDC, gText_082C1FEC}, - {gText_082C20D1, gText_082C21FF}, - {gText_082C231C, gText_082C2407}, - {gText_082C24B5, gText_082C25B1}, - {gText_082C2707, gText_082C27D4}, - {gText_082C28D6, gText_082C2A0B}, - {gText_082C2B50, gText_082C2C77}, - {gText_082C2D67, gText_082C2E41}, - {gText_082C2EF5, gText_082C3023}, -}; - -static const u8 *const gUnknown_08611330[] = -{ - gText_082B6EA5, - gText_082B6EEC, - gText_082B6F16, - gText_082B6F4C, - gText_082B6F92, - gText_082B6FC9, - gText_082B700C, - gText_082B703A, - gText_082B706A, - gText_082B709C, - gText_082B70CC, - gText_082B710A, - gText_082B714D, - gText_082B7185, - gText_082B71C1, - gText_082B71F9, -}; - -static const bool8 gUnknown_08611370[MOVES_COUNT] = -{ - [MOVE_NONE] = FALSE, - [MOVE_POUND] = FALSE, - [MOVE_KARATE_CHOP] = TRUE, - [MOVE_DOUBLE_SLAP] = TRUE, - [MOVE_COMET_PUNCH] = FALSE, - [MOVE_MEGA_PUNCH] = TRUE, - [MOVE_PAY_DAY] = FALSE, - [MOVE_FIRE_PUNCH] = TRUE, - [MOVE_ICE_PUNCH] = TRUE, - [MOVE_THUNDER_PUNCH] = TRUE, - [MOVE_SCRATCH] = FALSE, - [MOVE_VICE_GRIP] = FALSE, - [MOVE_GUILLOTINE] = TRUE, - [MOVE_RAZOR_WIND] = FALSE, - [MOVE_SWORDS_DANCE] = TRUE, - [MOVE_CUT] = FALSE, - [MOVE_GUST] = FALSE, - [MOVE_WING_ATTACK] = FALSE, - [MOVE_WHIRLWIND] = TRUE, - [MOVE_FLY] = TRUE, - [MOVE_BIND] = TRUE, - [MOVE_SLAM] = TRUE, - [MOVE_VINE_WHIP] = FALSE, - [MOVE_STOMP] = TRUE, - [MOVE_DOUBLE_KICK] = TRUE, - [MOVE_MEGA_KICK] = TRUE, - [MOVE_JUMP_KICK] = TRUE, - [MOVE_ROLLING_KICK] = TRUE, - [MOVE_SAND_ATTACK] = TRUE, - [MOVE_HEADBUTT] = TRUE, - [MOVE_HORN_ATTACK] = FALSE, - [MOVE_FURY_ATTACK] = FALSE, - [MOVE_HORN_DRILL] = TRUE, - [MOVE_TACKLE] = FALSE, - [MOVE_BODY_SLAM] = TRUE, - [MOVE_WRAP] = TRUE, - [MOVE_TAKE_DOWN] = TRUE, - [MOVE_THRASH] = TRUE, - [MOVE_DOUBLE_EDGE] = TRUE, - [MOVE_TAIL_WHIP] = FALSE, - [MOVE_POISON_STING] = FALSE, - [MOVE_TWINEEDLE] = TRUE, - [MOVE_PIN_MISSILE] = FALSE, - [MOVE_LEER] = FALSE, - [MOVE_BITE] = TRUE, - [MOVE_GROWL] = FALSE, - [MOVE_ROAR] = TRUE, - [MOVE_SING] = TRUE, - [MOVE_SUPERSONIC] = TRUE, - [MOVE_SONIC_BOOM] = TRUE, - [MOVE_DISABLE] = TRUE, - [MOVE_ACID] = FALSE, - [MOVE_EMBER] = FALSE, - [MOVE_FLAMETHROWER] = TRUE, - [MOVE_MIST] = TRUE, - [MOVE_WATER_GUN] = FALSE, - [MOVE_HYDRO_PUMP] = TRUE, - [MOVE_SURF] = TRUE, - [MOVE_ICE_BEAM] = TRUE, - [MOVE_BLIZZARD] = TRUE, - [MOVE_PSYBEAM] = TRUE, - [MOVE_BUBBLE_BEAM] = FALSE, - [MOVE_AURORA_BEAM] = FALSE, - [MOVE_HYPER_BEAM] = TRUE, - [MOVE_PECK] = FALSE, - [MOVE_DRILL_PECK] = TRUE, - [MOVE_SUBMISSION] = TRUE, - [MOVE_LOW_KICK] = TRUE, - [MOVE_COUNTER] = TRUE, - [MOVE_SEISMIC_TOSS] = TRUE, - [MOVE_STRENGTH] = TRUE, - [MOVE_ABSORB] = FALSE, - [MOVE_MEGA_DRAIN] = FALSE, - [MOVE_LEECH_SEED] = TRUE, - [MOVE_GROWTH] = TRUE, - [MOVE_RAZOR_LEAF] = TRUE, - [MOVE_SOLAR_BEAM] = TRUE, - [MOVE_POISON_POWDER] = TRUE, - [MOVE_STUN_SPORE] = TRUE, - [MOVE_SLEEP_POWDER] = TRUE, - [MOVE_PETAL_DANCE] = TRUE, - [MOVE_STRING_SHOT] = FALSE, - [MOVE_DRAGON_RAGE] = TRUE, - [MOVE_FIRE_SPIN] = TRUE, - [MOVE_THUNDER_SHOCK] = FALSE, - [MOVE_THUNDERBOLT] = TRUE, - [MOVE_THUNDER_WAVE] = TRUE, - [MOVE_THUNDER] = TRUE, - [MOVE_ROCK_THROW] = FALSE, - [MOVE_EARTHQUAKE] = TRUE, - [MOVE_FISSURE] = TRUE, - [MOVE_DIG] = TRUE, - [MOVE_TOXIC] = TRUE, - [MOVE_CONFUSION] = FALSE, - [MOVE_PSYCHIC] = TRUE, - [MOVE_HYPNOSIS] = TRUE, - [MOVE_MEDITATE] = TRUE, - [MOVE_AGILITY] = TRUE, - [MOVE_QUICK_ATTACK] = TRUE, - [MOVE_RAGE] = FALSE, - [MOVE_TELEPORT] = FALSE, - [MOVE_NIGHT_SHADE] = TRUE, - [MOVE_MIMIC] = TRUE, - [MOVE_SCREECH] = TRUE, - [MOVE_DOUBLE_TEAM] = TRUE, - [MOVE_RECOVER] = TRUE, - [MOVE_HARDEN] = TRUE, - [MOVE_MINIMIZE] = TRUE, - [MOVE_SMOKESCREEN] = TRUE, - [MOVE_CONFUSE_RAY] = TRUE, - [MOVE_WITHDRAW] = TRUE, - [MOVE_DEFENSE_CURL] = TRUE, - [MOVE_BARRIER] = TRUE, - [MOVE_LIGHT_SCREEN] = TRUE, - [MOVE_HAZE] = TRUE, - [MOVE_REFLECT] = TRUE, - [MOVE_FOCUS_ENERGY] = TRUE, - [MOVE_BIDE] = FALSE, - [MOVE_METRONOME] = TRUE, - [MOVE_MIRROR_MOVE] = TRUE, - [MOVE_SELF_DESTRUCT] = TRUE, - [MOVE_EGG_BOMB] = TRUE, - [MOVE_LICK] = TRUE, - [MOVE_SMOG] = FALSE, - [MOVE_SLUDGE] = FALSE, - [MOVE_BONE_CLUB] = FALSE, - [MOVE_FIRE_BLAST] = TRUE, - [MOVE_WATERFALL] = TRUE, - [MOVE_CLAMP] = TRUE, - [MOVE_SWIFT] = TRUE, - [MOVE_SKULL_BASH] = TRUE, - [MOVE_SPIKE_CANNON] = FALSE, - [MOVE_CONSTRICT] = FALSE, - [MOVE_AMNESIA] = TRUE, - [MOVE_KINESIS] = TRUE, - [MOVE_SOFT_BOILED] = TRUE, - [MOVE_HI_JUMP_KICK] = TRUE, - [MOVE_GLARE] = TRUE, - [MOVE_DREAM_EATER] = TRUE, - [MOVE_POISON_GAS] = FALSE, - [MOVE_BARRAGE] = FALSE, - [MOVE_LEECH_LIFE] = FALSE, - [MOVE_LOVELY_KISS] = TRUE, - [MOVE_SKY_ATTACK] = TRUE, - [MOVE_TRANSFORM] = TRUE, - [MOVE_BUBBLE] = FALSE, - [MOVE_DIZZY_PUNCH] = TRUE, - [MOVE_SPORE] = TRUE, - [MOVE_FLASH] = TRUE, - [MOVE_PSYWAVE] = TRUE, - [MOVE_SPLASH] = FALSE, - [MOVE_ACID_ARMOR] = TRUE, - [MOVE_CRABHAMMER] = TRUE, - [MOVE_EXPLOSION] = TRUE, - [MOVE_FURY_SWIPES] = FALSE, - [MOVE_BONEMERANG] = TRUE, - [MOVE_REST] = TRUE, - [MOVE_ROCK_SLIDE] = TRUE, - [MOVE_HYPER_FANG] = TRUE, - [MOVE_SHARPEN] = TRUE, - [MOVE_CONVERSION] = TRUE, - [MOVE_TRI_ATTACK] = TRUE, - [MOVE_SUPER_FANG] = TRUE, - [MOVE_SLASH] = TRUE, - [MOVE_SUBSTITUTE] = TRUE, - [MOVE_STRUGGLE] = TRUE, - [MOVE_SKETCH] = TRUE, - [MOVE_TRIPLE_KICK] = TRUE, - [MOVE_THIEF] = TRUE, - [MOVE_SPIDER_WEB] = TRUE, - [MOVE_MIND_READER] = TRUE, - [MOVE_NIGHTMARE] = TRUE, - [MOVE_FLAME_WHEEL] = FALSE, - [MOVE_SNORE] = TRUE, - [MOVE_CURSE] = TRUE, - [MOVE_FLAIL] = TRUE, - [MOVE_CONVERSION_2] = TRUE, - [MOVE_AEROBLAST] = TRUE, - [MOVE_COTTON_SPORE] = TRUE, - [MOVE_REVERSAL] = TRUE, - [MOVE_SPITE] = TRUE, - [MOVE_POWDER_SNOW] = FALSE, - [MOVE_PROTECT] = TRUE, - [MOVE_MACH_PUNCH] = TRUE, - [MOVE_SCARY_FACE] = TRUE, - [MOVE_FAINT_ATTACK] = TRUE, - [MOVE_SWEET_KISS] = TRUE, - [MOVE_BELLY_DRUM] = TRUE, - [MOVE_SLUDGE_BOMB] = TRUE, - [MOVE_MUD_SLAP] = TRUE, - [MOVE_OCTAZOOKA] = TRUE, - [MOVE_SPIKES] = TRUE, - [MOVE_ZAP_CANNON] = TRUE, - [MOVE_FORESIGHT] = TRUE, - [MOVE_DESTINY_BOND] = TRUE, - [MOVE_PERISH_SONG] = TRUE, - [MOVE_ICY_WIND] = TRUE, - [MOVE_DETECT] = TRUE, - [MOVE_BONE_RUSH] = FALSE, - [MOVE_LOCK_ON] = TRUE, - [MOVE_OUTRAGE] = TRUE, - [MOVE_SANDSTORM] = TRUE, - [MOVE_GIGA_DRAIN] = TRUE, - [MOVE_ENDURE] = TRUE, - [MOVE_CHARM] = TRUE, - [MOVE_ROLLOUT] = TRUE, - [MOVE_FALSE_SWIPE] = TRUE, - [MOVE_SWAGGER] = TRUE, - [MOVE_MILK_DRINK] = TRUE, - [MOVE_SPARK] = FALSE, - [MOVE_FURY_CUTTER] = TRUE, - [MOVE_STEEL_WING] = TRUE, - [MOVE_MEAN_LOOK] = TRUE, - [MOVE_ATTRACT] = TRUE, - [MOVE_SLEEP_TALK] = TRUE, - [MOVE_HEAL_BELL] = TRUE, - [MOVE_RETURN] = TRUE, - [MOVE_PRESENT] = TRUE, - [MOVE_FRUSTRATION] = TRUE, - [MOVE_SAFEGUARD] = TRUE, - [MOVE_PAIN_SPLIT] = TRUE, - [MOVE_SACRED_FIRE] = TRUE, - [MOVE_MAGNITUDE] = FALSE, - [MOVE_DYNAMIC_PUNCH] = TRUE, - [MOVE_MEGAHORN] = TRUE, - [MOVE_DRAGON_BREATH] = TRUE, - [MOVE_BATON_PASS] = TRUE, - [MOVE_ENCORE] = TRUE, - [MOVE_PURSUIT] = TRUE, - [MOVE_RAPID_SPIN] = TRUE, - [MOVE_SWEET_SCENT] = TRUE, - [MOVE_IRON_TAIL] = TRUE, - [MOVE_METAL_CLAW] = TRUE, - [MOVE_VITAL_THROW] = TRUE, - [MOVE_MORNING_SUN] = TRUE, - [MOVE_SYNTHESIS] = TRUE, - [MOVE_MOONLIGHT] = TRUE, - [MOVE_HIDDEN_POWER] = TRUE, - [MOVE_CROSS_CHOP] = TRUE, - [MOVE_TWISTER] = FALSE, - [MOVE_RAIN_DANCE] = TRUE, - [MOVE_SUNNY_DAY] = TRUE, - [MOVE_CRUNCH] = TRUE, - [MOVE_MIRROR_COAT] = TRUE, - [MOVE_PSYCH_UP] = TRUE, - [MOVE_EXTREME_SPEED] = TRUE, - [MOVE_ANCIENT_POWER] = TRUE, - [MOVE_SHADOW_BALL] = TRUE, - [MOVE_FUTURE_SIGHT] = TRUE, - [MOVE_ROCK_SMASH] = TRUE, - [MOVE_WHIRLPOOL] = TRUE, - [MOVE_BEAT_UP] = TRUE, - [MOVE_FAKE_OUT] = TRUE, - [MOVE_UPROAR] = TRUE, - [MOVE_STOCKPILE] = TRUE, - [MOVE_SPIT_UP] = TRUE, - [MOVE_SWALLOW] = TRUE, - [MOVE_HEAT_WAVE] = TRUE, - [MOVE_HAIL] = TRUE, - [MOVE_TORMENT] = TRUE, - [MOVE_FLATTER] = TRUE, - [MOVE_WILL_O_WISP] = TRUE, - [MOVE_MEMENTO] = TRUE, - [MOVE_FACADE] = TRUE, - [MOVE_FOCUS_PUNCH] = TRUE, - [MOVE_SMELLING_SALT] = TRUE, - [MOVE_FOLLOW_ME] = TRUE, - [MOVE_NATURE_POWER] = TRUE, - [MOVE_CHARGE] = TRUE, - [MOVE_TAUNT] = TRUE, - [MOVE_HELPING_HAND] = TRUE, - [MOVE_TRICK] = TRUE, - [MOVE_ROLE_PLAY] = TRUE, - [MOVE_WISH] = TRUE, - [MOVE_ASSIST] = TRUE, - [MOVE_INGRAIN] = TRUE, - [MOVE_SUPERPOWER] = TRUE, - [MOVE_MAGIC_COAT] = TRUE, - [MOVE_RECYCLE] = TRUE, - [MOVE_REVENGE] = TRUE, - [MOVE_BRICK_BREAK] = TRUE, - [MOVE_YAWN] = TRUE, - [MOVE_KNOCK_OFF] = TRUE, - [MOVE_ENDEAVOR] = TRUE, - [MOVE_ERUPTION] = TRUE, - [MOVE_SKILL_SWAP] = TRUE, - [MOVE_IMPRISON] = TRUE, - [MOVE_REFRESH] = TRUE, - [MOVE_GRUDGE] = TRUE, - [MOVE_SNATCH] = TRUE, - [MOVE_SECRET_POWER] = TRUE, - [MOVE_DIVE] = TRUE, - [MOVE_ARM_THRUST] = FALSE, - [MOVE_CAMOUFLAGE] = TRUE, - [MOVE_TAIL_GLOW] = TRUE, - [MOVE_LUSTER_PURGE] = TRUE, - [MOVE_MIST_BALL] = TRUE, - [MOVE_FEATHER_DANCE] = TRUE, - [MOVE_TEETER_DANCE] = TRUE, - [MOVE_BLAZE_KICK] = TRUE, - [MOVE_MUD_SPORT] = TRUE, - [MOVE_ICE_BALL] = FALSE, - [MOVE_NEEDLE_ARM] = TRUE, - [MOVE_SLACK_OFF] = TRUE, - [MOVE_HYPER_VOICE] = TRUE, - [MOVE_POISON_FANG] = FALSE, - [MOVE_CRUSH_CLAW] = TRUE, - [MOVE_BLAST_BURN] = TRUE, - [MOVE_HYDRO_CANNON] = TRUE, - [MOVE_METEOR_MASH] = TRUE, - [MOVE_ASTONISH] = TRUE, - [MOVE_WEATHER_BALL] = TRUE, - [MOVE_AROMATHERAPY] = TRUE, - [MOVE_FAKE_TEARS] = TRUE, - [MOVE_AIR_CUTTER] = TRUE, - [MOVE_OVERHEAT] = TRUE, - [MOVE_ODOR_SLEUTH] = TRUE, - [MOVE_ROCK_TOMB] = TRUE, - [MOVE_SILVER_WIND] = TRUE, - [MOVE_METAL_SOUND] = TRUE, - [MOVE_GRASS_WHISTLE] = TRUE, - [MOVE_TICKLE] = TRUE, - [MOVE_COSMIC_POWER] = TRUE, - [MOVE_WATER_SPOUT] = TRUE, - [MOVE_SIGNAL_BEAM] = TRUE, - [MOVE_SHADOW_PUNCH] = TRUE, - [MOVE_EXTRASENSORY] = TRUE, - [MOVE_SKY_UPPERCUT] = TRUE, - [MOVE_SAND_TOMB] = TRUE, - [MOVE_SHEER_COLD] = TRUE, - [MOVE_MUDDY_WATER] = TRUE, - [MOVE_BULLET_SEED] = FALSE, - [MOVE_AERIAL_ACE] = TRUE, - [MOVE_ICICLE_SPEAR] = FALSE, - [MOVE_IRON_DEFENSE] = TRUE, - [MOVE_BLOCK] = TRUE, - [MOVE_HOWL] = TRUE, - [MOVE_DRAGON_CLAW] = TRUE, - [MOVE_FRENZY_PLANT] = TRUE, - [MOVE_BULK_UP] = TRUE, - [MOVE_BOUNCE] = TRUE, - [MOVE_MUD_SHOT] = FALSE, - [MOVE_POISON_TAIL] = TRUE, - [MOVE_COVET] = TRUE, - [MOVE_VOLT_TACKLE] = TRUE, - [MOVE_MAGICAL_LEAF] = TRUE, - [MOVE_WATER_SPORT] = TRUE, - [MOVE_CALM_MIND] = TRUE, - [MOVE_LEAF_BLADE] = TRUE, - [MOVE_DRAGON_DANCE] = TRUE, - [MOVE_ROCK_BLAST] = FALSE, - [MOVE_SHOCK_WAVE] = TRUE, - [MOVE_WATER_PULSE] = TRUE, - [MOVE_DOOM_DESIRE] = TRUE, - [MOVE_PSYCHO_BOOST] = TRUE, -}; - -static const u8 gUnknown_086114D3[] = {0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00}; - -static void (* const sApprenticeFunctions[])(void) = -{ - Script_IsPlayersApprenticeActive, - Script_SetPlayersApprenticeLvlMode, - sub_81A0978, - sub_819FC60, - sub_81A0984, - sub_81A0990, - sub_81A09D0, - Script_CreateApprenticeMenu, - Script_PrintMessage, - Script_ResetPlayerApprentice, - sub_81A1638, - sub_81A0CC0, - sub_81A09B4, - sub_81A0D40, - sub_81A0DD4, - sub_81A0FE4, - sub_81A0FFC, - sub_81A0D80, - sub_81A11F8, - sub_81A1218, - sub_81A1224, - sub_81A1438, - sub_81A150C, - Script_SetPlayerApprenticeTrainerGfxId, - sub_81A1644, - sub_81A1370, -}; - -static const u8 gUnknown_08611548[8] = {0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x08, 0x09}; - -// text -extern const u8 gText_Give[]; -extern const u8 gText_NoNeed[]; -extern const u8 gText_Yes[]; -extern const u8 gText_No[]; - -void CopyFriendsApprenticeChallengeText(u8 saveblockApprenticeId) -{ - u8 i, var; - const u8 *str; - - var = gSaveBlock2Ptr->apprentices[saveblockApprenticeId].number; - for (i = 0; var != 0 && i < 4; var /= 10, i++) +static void GetShouldCheckApprenticeGone(void); +static void ApprenticeGetQuestion(void); +static void GetNumApprenticePartyMonsAssigned(void); +static void SetApprenticePartyMon(void); +static void InitQuestionData(void); +static void FreeQuestionData(void); +static void ApprenticeBufferString(void); +static void SetApprenticeMonMove(void); +static void SetLeadApprenticeMon(void); +static void Script_ApprenticeOpenBagMenu(void); +static void TrySetApprenticeHeldItem(void); +static void SaveApprentice(void); +static void SetSavedApprenticeTrainerGfxId(void); +static void SetPlayerApprenticeTrainerGfxId(void); +static void GetShouldApprenticeLeave(void); +static void ShiftSavedApprentices(void); + +#include "data/battle_frontier/apprentice.h" + +void BufferApprenticeChallengeText(u8 saveApprenticeId) +{ + u8 i, num; + const u8 *challengeText; + + num = gSaveBlock2Ptr->apprentices[saveApprenticeId].number; + for (i = 0; num != 0 && i < APPRENTICE_COUNT; num /= 10, i++) ; - StringCopy7(gStringVar1, gSaveBlock2Ptr->apprentices[saveblockApprenticeId].playerName); - ConvertInternationalString(gStringVar1, gSaveBlock2Ptr->apprentices[saveblockApprenticeId].language); - ConvertIntToDecimalStringN(gStringVar2, gSaveBlock2Ptr->apprentices[saveblockApprenticeId].number, STR_CONV_MODE_RIGHT_ALIGN, i); - str = gUnknown_08611330[gSaveBlock2Ptr->apprentices[saveblockApprenticeId].id]; - StringExpandPlaceholders(gStringVar4, str); + StringCopy7(gStringVar1, gSaveBlock2Ptr->apprentices[saveApprenticeId].playerName); + ConvertInternationalString(gStringVar1, gSaveBlock2Ptr->apprentices[saveApprenticeId].language); + ConvertIntToDecimalStringN(gStringVar2, gSaveBlock2Ptr->apprentices[saveApprenticeId].number, STR_CONV_MODE_RIGHT_ALIGN, i); + challengeText = sApprenticeChallengeTexts[gSaveBlock2Ptr->apprentices[saveApprenticeId].id]; + StringExpandPlaceholders(gStringVar4, challengeText); } void Apprentice_EnableBothScriptContexts(void) @@ -1079,27 +144,27 @@ void ResetApprenticeStruct(struct Apprentice *apprentice) { u8 i; - for (i = 0; i < 6; i++) - apprentice->easyChatWords[i] = 0xFFFF; + for (i = 0; i < ARRAY_COUNT(apprentice->speechWon); i++) + apprentice->speechWon[i] = 0xFFFF; apprentice->playerName[0] = EOS; - apprentice->id = 16; + apprentice->id = NUM_APPRENTICES; } void ResetAllApprenticeData(void) { u8 i, j; - PLAYER_APPRENTICE.field_B2_1 = 0; - for (i = 0; i < 4; i++) + PLAYER_APPRENTICE.saveId = 0; + for (i = 0; i < APPRENTICE_COUNT; i++) { - for (j = 0; j < 6; j++) - gSaveBlock2Ptr->apprentices[i].easyChatWords[j] = 0xFFFF; - gSaveBlock2Ptr->apprentices[i].id = 16; + for (j = 0; j < ARRAY_COUNT(gSaveBlock2Ptr->apprentices[i].speechWon); j++) + gSaveBlock2Ptr->apprentices[i].speechWon[j] = 0xFFFF; + gSaveBlock2Ptr->apprentices[i].id = NUM_APPRENTICES; gSaveBlock2Ptr->apprentices[i].playerName[0] = EOS; gSaveBlock2Ptr->apprentices[i].lvlMode = 0; gSaveBlock2Ptr->apprentices[i].number = 0; - gSaveBlock2Ptr->apprentices[i].field_1 = 0; + gSaveBlock2Ptr->apprentices[i].numQuestions = 0; for (j = 0; j < TRAINER_ID_LENGTH; j++) gSaveBlock2Ptr->apprentices[i].playerId[j] = 0; gSaveBlock2Ptr->apprentices[i].language = gGameLanguage; @@ -1109,174 +174,184 @@ void ResetAllApprenticeData(void) Script_ResetPlayerApprentice(); } -static bool8 IsPlayersApprenticeActive(void) +static bool8 GivenApprenticeLvlMode(void) { - return (PLAYER_APPRENTICE.activeLvlMode != 0); + return (PLAYER_APPRENTICE.lvlMode != 0); } -static void sub_819FBC8(void) +static void SetApprenticeId(void) { if (gSaveBlock2Ptr->apprentices[0].number == 0) { do { - PLAYER_APPRENTICE.id = gUnknown_08611548[Random() % ARRAY_COUNT(gUnknown_08611548)]; + PLAYER_APPRENTICE.id = sInitialApprenticeIds[Random() % ARRAY_COUNT(sInitialApprenticeIds)]; } while (PLAYER_APPRENTICE.id == gSaveBlock2Ptr->apprentices[0].id); } else { do { - PLAYER_APPRENTICE.id = Random() % 16; + PLAYER_APPRENTICE.id = Random() % (NUM_APPRENTICES); } while (PLAYER_APPRENTICE.id == gSaveBlock2Ptr->apprentices[0].id); } } static void SetPlayersApprenticeLvlMode(u8 mode) { - PLAYER_APPRENTICE.activeLvlMode = mode; + PLAYER_APPRENTICE.lvlMode = mode; } -static void sub_819FC60(void) +static void ShuffleApprenticeSpecies(void) { - u8 array[APPRENTICE_SPECIES_COUNT]; + u8 species[APPRENTICE_SPECIES_COUNT]; u8 i; - for (i = 0; i < ARRAY_COUNT(array); i++) - array[i] = i; + for (i = 0; i < ARRAY_COUNT(species); i++) + species[i] = i; + // Shuffle the possible species an arbitrary 50 times for (i = 0; i < 50; i++) { u8 temp; - u8 var1 = Random() % ARRAY_COUNT(array); - u8 var2 = Random() % ARRAY_COUNT(array); - SWAP(array[var1], array[var2], temp); + u8 rand1 = Random() % ARRAY_COUNT(species); + u8 rand2 = Random() % ARRAY_COUNT(species); + SWAP(species[rand1], species[rand2], temp); } - for (i = 0; i < 3; i++) - PLAYER_APPRENTICE.monIds[i] = ((array[i * 2] & 0xF) << 4) | ((array[i * 2 + 1]) & 0xF); + for (i = 0; i < MULTI_PARTY_SIZE; i++) + PLAYER_APPRENTICE.speciesIds[i] = ((species[i * 2] & 0xF) << 4) | ((species[i * 2 + 1]) & 0xF); } -static u8 sub_819FCF8(u8 val, u8 *arg1, u8 *arg2) +// Pick one of the Apprentice's mons to ask the question about +// Picking a move chooses a random mon, picking a held item is sequential (so that none are repeated) +static u8 GetMonIdForQuestion(u8 questionId, u8 *party, u8 *partySlot) { u8 i, count; - u8 ret = 0; + u8 monId = 0; - if (val == 2) + if (questionId == QUESTION_ID_WHICH_MOVE) { do { - ret = Random() % 3; - for (count = 0, i = 0; i < 5; i++) + monId = Random() % (MULTI_PARTY_SIZE); + for (count = 0, i = 0; i < NUM_WHICH_MOVE_QUESTIONS; i++) { - if (gUnknown_030062EC->unk2[ret][i] != 0) + if (gApprenticePartyMovesData->moves[monId][i] != MOVE_NONE) count++; } - } while (count > 3); + } while (count > MULTI_PARTY_SIZE); } - else if (val == 1) + else if (questionId == QUESTION_ID_WHAT_ITEM) { - ret = arg1[*arg2]; - (*arg2)++; + monId = party[*partySlot]; + (*partySlot)++; } - return ret; + return monId; } -static void sub_819FD64(void) +// Sets the random order and data for the remaining questions after the initial "choose mon" questions +static void SetRandomQuestionData(void) { - u8 sp_0[10]; - u8 sp_C[3]; - u8 sp_10; + u8 questionOrder[APPRENTICE_MAX_QUESTIONS + 1]; + u8 partyOrder[MULTI_PARTY_SIZE]; + u8 partySlot; u8 i, j; u8 rand1, rand2; u8 id; - for (i = 0; i < 3; i++) - sp_C[i] = i; + for (i = 0; i < ARRAY_COUNT(partyOrder); i++) + partyOrder[i] = i; + + // Shuffle the party an arbitrary 10 times for (i = 0; i < 10; i++) { u8 temp; - rand1 = Random() % ARRAY_COUNT(sp_C); - rand2 = Random() % ARRAY_COUNT(sp_C); - SWAP(sp_C[rand1], sp_C[rand2], temp); + rand1 = Random() % ARRAY_COUNT(partyOrder); + rand2 = Random() % ARRAY_COUNT(partyOrder); + SWAP(partyOrder[rand1], partyOrder[rand2], temp); } - for (i = 0; i < 10; i++) - sp_0[i] = gUnknown_086114D3[i]; + for (i = 0; i < ARRAY_COUNT(questionOrder); i++) + questionOrder[i] = sQuestionPossibilities[i]; + + // Shuffle the questions an arbitrary 50 times for (i = 0; i < 50; i++) { u8 temp; - rand1 = Random() % ARRAY_COUNT(sp_0); - rand2 = Random() % ARRAY_COUNT(sp_0); - SWAP(sp_0[rand1], sp_0[rand2], temp); + rand1 = Random() % ARRAY_COUNT(questionOrder); + rand2 = Random() % ARRAY_COUNT(questionOrder); + SWAP(questionOrder[rand1], questionOrder[rand2], temp); } - gUnknown_030062EC = AllocZeroed(sizeof(*gUnknown_030062EC)); - gUnknown_030062EC->unk0 = 0; - for (i = 0; i < 5; i++) + gApprenticePartyMovesData = AllocZeroed(sizeof(*gApprenticePartyMovesData)); + gApprenticePartyMovesData->moveCounter = 0; + for (i = 0; i < NUM_WHICH_MOVE_QUESTIONS; i++) { - for (j = 0; j < 3; j++) - gUnknown_030062EC->unk20[j][i] = 4; + for (j = 0; j < MULTI_PARTY_SIZE; j++) + gApprenticePartyMovesData->moveSlots[j][i] = MAX_MON_MOVES; } - sp_10 = 0; - for (i = 0; i < 9; i++) + partySlot = 0; + for (i = 0; i < APPRENTICE_MAX_QUESTIONS; i++) { - PLAYER_APPRENTICE.field_B8[i].unk0_0 = sp_0[i]; - if (sp_0[i] != 3) + PLAYER_APPRENTICE.questions[i].questionId = questionOrder[i]; + if (questionOrder[i] != QUESTION_ID_WHICH_FIRST) { - PLAYER_APPRENTICE.field_B8[i].unk0_1 = sub_819FCF8(sp_0[i], sp_C, &sp_10); - id = PLAYER_APPRENTICE.field_B8[i].unk0_1; - if (sp_0[i] == 2) + PLAYER_APPRENTICE.questions[i].monId = GetMonIdForQuestion(questionOrder[i], partyOrder, &partySlot); + id = PLAYER_APPRENTICE.questions[i].monId; + if (questionOrder[i] == QUESTION_ID_WHICH_MOVE) { do { - rand1 = Random() % 4; - for (j = 0; j < gUnknown_030062EC->unk0 + 1; j++) + rand1 = Random() % MAX_MON_MOVES; + for (j = 0; j < gApprenticePartyMovesData->moveCounter + 1; j++) { - if (gUnknown_030062EC->unk20[id][j] == rand1) + if (gApprenticePartyMovesData->moveSlots[id][j] == rand1) break; } - } while (j != gUnknown_030062EC->unk0 + 1); + } while (j != gApprenticePartyMovesData->moveCounter + 1); - gUnknown_030062EC->unk20[id][gUnknown_030062EC->unk0] = rand1; - PLAYER_APPRENTICE.field_B8[i].unk0_2 = rand1; - PLAYER_APPRENTICE.field_B8[i].unk2 = sub_819FF98(PLAYER_APPRENTICE.field_B8[i].unk0_1); + gApprenticePartyMovesData->moveSlots[id][gApprenticePartyMovesData->moveCounter] = rand1; + PLAYER_APPRENTICE.questions[i].moveSlot = rand1; + PLAYER_APPRENTICE.questions[i].data = GetRandomAlternateMove(PLAYER_APPRENTICE.questions[i].monId); } } } - FREE_AND_SET_NULL(gUnknown_030062EC); + FREE_AND_SET_NULL(gApprenticePartyMovesData); } // No idea why a do-while loop is needed, but it will not match without it. -#define APPRENTICE_SPECIES_ID(speciesArrId, monId) speciesArrId = (PLAYER_APPRENTICE.monIds[monId] >> \ - (((PLAYER_APPRENTICE.field_B2_0 >> monId) & 1) << 2)) & 0xF; \ +#define APPRENTICE_SPECIES_ID(speciesArrId, monId) speciesArrId = (PLAYER_APPRENTICE.speciesIds[monId] >> \ + (((PLAYER_APPRENTICE.party >> monId) & 1) << 2)) & 0xF; \ do {} while (0) // Why the need to have two macros do the exact thing differently? -#define APPRENTICE_SPECIES_ID_2(speciesArrId, monId) { u8 a0 = ((PLAYER_APPRENTICE.field_B2_0 >> monId) & 1);\ - speciesArrId = PLAYER_APPRENTICE.monIds[monId]; \ +#define APPRENTICE_SPECIES_ID_2(speciesArrId, monId) { u8 a0 = ((PLAYER_APPRENTICE.party >> monId) & 1);\ + speciesArrId = PLAYER_APPRENTICE.speciesIds[monId]; \ speciesArrId = ((speciesArrId) >> (a0 << 2)) & 0xF; \ } -static u16 sub_819FF98(u8 arg0) +// Get the second move choice for the "Which move" question +// Unlike the first move choice, this can be either a level up move or a TM/HM move +static u16 GetRandomAlternateMove(u8 monId) { u8 i, j; u8 id; - u8 knownMovesCount; + u8 numLearnsetMoves; u16 species; const u16 *learnset; - bool32 var_24 = FALSE; - u16 moveId = 0; - bool32 valid; + bool32 needTMs = FALSE; + u16 moveId = MOVE_NONE; + bool32 shouldUseMove; u8 level; - if (arg0 < 3) + if (monId < MULTI_PARTY_SIZE) { - APPRENTICE_SPECIES_ID(id, arg0); + APPRENTICE_SPECIES_ID(id, monId); } else { @@ -1286,207 +361,224 @@ static u16 sub_819FF98(u8 arg0) species = gApprentices[PLAYER_APPRENTICE.id].species[id]; learnset = gLevelUpLearnsets[species]; j = 0; - if (PLAYER_APPRENTICE.activeLvlMode == 1) + + // Despite being open level, level up moves are only read up to level 60 + if (PLAYER_APPRENTICE.lvlMode == APPRENTICE_LVL_MODE_50) level = 50; - else + else // == APPRENTICE_LVL_MODE_OPEN level = 60; - for (j = 0; learnset[j] != 0xFFFF; j++) + for (j = 0; learnset[j] != LEVEL_UP_END; j++) { - if ((learnset[j] & 0xFE00) > (level << 9)) + if ((learnset[j] & LEVEL_UP_MOVE_LV) > (level << 9)) break; } - knownMovesCount = j; + numLearnsetMoves = j; i = 0; - while (i <= MAX_MON_MOVES) + + // i < 5 here is arbitrary, i isnt used and is only incremented when the selected move isnt in sValidApprenticeMoves + // This while loop contains 3 potential infinite loops, though none of them would occur in the base game + while (i < 5) { - if (Random() % 2 == 0 || var_24 == TRUE) + if (Random() % 2 == 0 || needTMs == TRUE) { + // Get TM move + // NOTE: Below is an infinite loop if a species that only learns TMs for moves + // that are also in its level up learnset is assigned to an Apprentice do { + // NOTE: Below is an infinite loop if a species which cannot learn TMs is assigned to an Apprentice do { id = Random() % (NUM_TECHNICAL_MACHINES + NUM_HIDDEN_MACHINES); - valid = CanSpeciesLearnTMHM(species, id); + shouldUseMove = CanSpeciesLearnTMHM(species, id); } - while (!valid); + while (!shouldUseMove); moveId = ItemIdToBattleMoveId(ITEM_TM01 + id); - valid = TRUE; + shouldUseMove = TRUE; - if (knownMovesCount < 5) + if (numLearnsetMoves <= MAX_MON_MOVES) j = 0; else - j = knownMovesCount - MAX_MON_MOVES; + j = numLearnsetMoves - MAX_MON_MOVES; - for (; j < knownMovesCount; j++) + for (; j < numLearnsetMoves; j++) { - if ((learnset[j] & 0x1FF) == moveId) + // Keep looking for TMs until one not in the level up learnset is found + if ((learnset[j] & LEVEL_UP_MOVE_ID) == moveId) { - valid = FALSE; + shouldUseMove = FALSE; break; } } - } while (valid != TRUE); + } while (shouldUseMove != TRUE); } else { - if (knownMovesCount <= MAX_MON_MOVES) + if (numLearnsetMoves <= MAX_MON_MOVES) { - var_24 = TRUE; + needTMs = TRUE; continue; } else { + // Get level up move + // NOTE: Below is an infinite loop if a mon whose last 4 moves contain + // all the moves in the rest of its learnset is assigned to an Apprentice do { - u8 learnsetId = Random() % (knownMovesCount - MAX_MON_MOVES); - moveId = learnset[learnsetId] & 0x1FF; - valid = TRUE; - for (j = knownMovesCount - MAX_MON_MOVES; j < knownMovesCount; j++) + // Get a random move excluding the 4 it would know at max level + u8 learnsetId = Random() % (numLearnsetMoves - MAX_MON_MOVES); + moveId = learnset[learnsetId] & LEVEL_UP_MOVE_ID; + shouldUseMove = TRUE; + + for (j = numLearnsetMoves - MAX_MON_MOVES; j < numLearnsetMoves; j++) { - if ((learnset[j] & 0x1FF) == moveId) + // Keep looking for moves until one not in the last 4 is found + if ((learnset[j] & LEVEL_UP_MOVE_ID) == moveId) { - valid = FALSE; + shouldUseMove = FALSE; break; } } - } while (valid != TRUE); + } while (shouldUseMove != TRUE); } } - if (sub_81A0194(arg0, moveId)) + if (TrySetMove(monId, moveId)) { - if (gUnknown_08611370[moveId]) + if (sValidApprenticeMoves[moveId]) break; i++; } } - gUnknown_030062EC->unk0++; + gApprenticePartyMovesData->moveCounter++; return moveId; } -static bool8 sub_81A0194(u8 arg0, u16 moveId) +static bool8 TrySetMove(u8 monId, u16 moveId) { u8 i; - for (i = 0; i < 5; i++) + for (i = 0; i < NUM_WHICH_MOVE_QUESTIONS; i++) { - if (gUnknown_030062EC->unk2[arg0][i] == moveId) + if (gApprenticePartyMovesData->moves[monId][i] == moveId) return FALSE; } - gUnknown_030062EC->unk2[arg0][gUnknown_030062EC->unk0] = moveId; + gApprenticePartyMovesData->moves[monId][gApprenticePartyMovesData->moveCounter] = moveId; return TRUE; } static void GetLatestLearnedMoves(u16 species, u16 *moves) { u8 i, j; - u8 level, knownMovesCount; + u8 level, numLearnsetMoves; const u16 *learnset; - if (PLAYER_APPRENTICE.activeLvlMode == 1) + if (PLAYER_APPRENTICE.lvlMode == APPRENTICE_LVL_MODE_50) level = 50; - else + else // == APPRENTICE_LVL_MODE_OPEN level = 60; learnset = gLevelUpLearnsets[species]; - for (i = 0; learnset[i] != 0xFFFF; i++) + for (i = 0; learnset[i] != LEVEL_UP_END; i++) { - if ((learnset[i] & 0xFE00) > (level << 9)) + if ((learnset[i] & LEVEL_UP_MOVE_LV) > (level << 9)) break; } - knownMovesCount = i; - if (knownMovesCount > MAX_MON_MOVES) - knownMovesCount = MAX_MON_MOVES; + numLearnsetMoves = i; + if (numLearnsetMoves > MAX_MON_MOVES) + numLearnsetMoves = MAX_MON_MOVES; - for (j = 0; j < knownMovesCount; j++) - moves[j] = learnset[(i - 1) - j] & 0x1FF; + for (j = 0; j < numLearnsetMoves; j++) + moves[j] = learnset[(i - 1) - j] & LEVEL_UP_MOVE_ID; } -static u16 sub_81A0284(u8 arg0, u8 speciesTableId, u8 arg2) +// Get the level up move or previously suggested move to be the first move choice +// Compare to GetRandomAlternateMove, which gets the move that will be the second choice +static u16 GetDefaultMove(u8 monId, u8 speciesArrayId, u8 moveSlot) { u16 moves[MAX_MON_MOVES]; - u8 i, count; + u8 i, numQuestions; - if (PLAYER_APPRENTICE.field_B1_1 < 3) - return 0; + if (PLAYER_APPRENTICE.questionsAnswered < NUM_WHICH_MON_QUESTIONS) + return MOVE_NONE; - count = 0; - for (i = 0; i < 9; i++) - { - if (PLAYER_APPRENTICE.field_B8[i].unk0_0 == 0) - break; - count++; - } + numQuestions = 0; + for (i = 0; i < APPRENTICE_MAX_QUESTIONS && PLAYER_APPRENTICE.questions[i].questionId != QUESTION_ID_WIN_SPEECH; i++) + numQuestions++; - GetLatestLearnedMoves(gApprentices[PLAYER_APPRENTICE.id].species[speciesTableId], moves); - for (i = 0; i < count && i < PLAYER_APPRENTICE.field_B1_1 - 3; i++) + GetLatestLearnedMoves(gApprentices[PLAYER_APPRENTICE.id].species[speciesArrayId], moves); + for (i = 0; i < numQuestions && i < CURRENT_QUESTION_NUM; i++) { - if (PLAYER_APPRENTICE.field_B8[i].unk0_0 == 2 - && PLAYER_APPRENTICE.field_B8[i].unk0_1 == arg0 - && PLAYER_APPRENTICE.field_B8[i].unk0_3 != 0) + if (PLAYER_APPRENTICE.questions[i].questionId == QUESTION_ID_WHICH_MOVE + && PLAYER_APPRENTICE.questions[i].monId == monId + && PLAYER_APPRENTICE.questions[i].suggestedChange) { - moves[PLAYER_APPRENTICE.field_B8[i].unk0_2] = PLAYER_APPRENTICE.field_B8[i].unk2; + moves[PLAYER_APPRENTICE.questions[i].moveSlot] = PLAYER_APPRENTICE.questions[i].data; } } - return moves[arg2]; + return moves[moveSlot]; } -static void sub_81A0390(u8 arg0) +static void SaveApprenticeParty(u8 numQuestions) { - struct ApprenticeMon *apprenticeMons[3]; + struct ApprenticeMon *apprenticeMons[MULTI_PARTY_SIZE]; u8 i, j; u32 speciesTableId; - for (i = 0; i < 3; i++) + for (i = 0; i < MULTI_PARTY_SIZE; i++) { - gSaveBlock2Ptr->apprentices[0].party[i].species = 0; - gSaveBlock2Ptr->apprentices[0].party[i].item = 0; + gSaveBlock2Ptr->apprentices[0].party[i].species = SPECIES_NONE; + gSaveBlock2Ptr->apprentices[0].party[i].item = ITEM_NONE; for (j = 0; j < MAX_MON_MOVES; j++) - gSaveBlock2Ptr->apprentices[0].party[i].moves[j] = 0; + gSaveBlock2Ptr->apprentices[0].party[i].moves[j] = MOVE_NONE; } - j = PLAYER_APPRENTICE.field_B1_2; - for (i = 0; i < 3; i++) + // Save party order + j = PLAYER_APPRENTICE.leadMonId; + for (i = 0; i < MULTI_PARTY_SIZE; i++) { apprenticeMons[j] = &gSaveBlock2Ptr->apprentices[0].party[i]; - j = (j + 1) % 3; + j = (j + 1) % (MULTI_PARTY_SIZE); } - for (i = 0; i < 3; i++) + // Save party species + for (i = 0; i < MULTI_PARTY_SIZE; i++) { APPRENTICE_SPECIES_ID(speciesTableId, i); apprenticeMons[i]->species = gApprentices[PLAYER_APPRENTICE.id].species[speciesTableId]; GetLatestLearnedMoves(apprenticeMons[i]->species, apprenticeMons[i]->moves); } - for (i = 0; i < arg0; i++) + // Update party based on response to held item / move choice questions + for (i = 0; i < numQuestions; i++) { - u8 var1 = PLAYER_APPRENTICE.field_B8[i].unk0_0; - u8 monId = PLAYER_APPRENTICE.field_B8[i].unk0_1; - if (var1 == 1) + u8 questionId = PLAYER_APPRENTICE.questions[i].questionId; + u8 monId = PLAYER_APPRENTICE.questions[i].monId; + if (questionId == QUESTION_ID_WHAT_ITEM) { - if (PLAYER_APPRENTICE.field_B8[i].unk0_3 != 0) - apprenticeMons[monId]->item = PLAYER_APPRENTICE.field_B8[i].unk2; + if (PLAYER_APPRENTICE.questions[i].suggestedChange) + apprenticeMons[monId]->item = PLAYER_APPRENTICE.questions[i].data; } - else if (var1 == 2) + else if (questionId == QUESTION_ID_WHICH_MOVE) { - if (PLAYER_APPRENTICE.field_B8[i].unk0_3 != 0) + if (PLAYER_APPRENTICE.questions[i].suggestedChange) { - u32 moveSlot = PLAYER_APPRENTICE.field_B8[i].unk0_2; - apprenticeMons[monId]->moves[moveSlot] = PLAYER_APPRENTICE.field_B8[i].unk2; + u32 moveSlot = PLAYER_APPRENTICE.questions[i].moveSlot; + apprenticeMons[monId]->moves[moveSlot] = PLAYER_APPRENTICE.questions[i].data; } } } } -static void CreateMenuWithAnswers(u8 arg0) +static void CreateApprenticeMenu(u8 menu) { u8 i; u8 windowId; @@ -1497,19 +589,19 @@ static void CreateMenuWithAnswers(u8 arg0) u8 top; s32 pixelWidth; - switch (arg0) + switch (menu) { case APPRENTICE_ASK_WHICH_LEVEL: - left = 0x12; + left = 18; top = 8; strings[0] = gText_Lv50; strings[1] = gText_OpenLevel; break; case APPRENTICE_ASK_3SPECIES: - count = 3; - left = 0x12; + count = MULTI_PARTY_SIZE; + left = 18; top = 6; - for (i = 0; i < 3; i++) + for (i = 0; i < MULTI_PARTY_SIZE; i++) { u16 species; u32 speciesTableId; @@ -1520,27 +612,27 @@ static void CreateMenuWithAnswers(u8 arg0) } break; case APPRENTICE_ASK_2SPECIES: - left = 0x12; + left = 18; top = 8; - if (PLAYER_APPRENTICE.field_B1_1 > 2) + if (PLAYER_APPRENTICE.questionsAnswered >= NUM_WHICH_MON_QUESTIONS) return; - strings[1] = gSpeciesNames[gUnknown_030062F0->unk2]; - strings[0] = gSpeciesNames[gUnknown_030062F0->unk0]; + strings[1] = gSpeciesNames[gApprenticeQuestionData->altSpeciesId]; + strings[0] = gSpeciesNames[gApprenticeQuestionData->speciesId]; break; case APPRENTICE_ASK_MOVES: - left = 0x11; + left = 17; top = 8; - strings[0] = gMoveNames[gUnknown_030062F0->unk4]; - strings[1] = gMoveNames[gUnknown_030062F0->unk6]; + strings[0] = gMoveNames[gApprenticeQuestionData->moveId1]; + strings[1] = gMoveNames[gApprenticeQuestionData->moveId2]; break; case APPRENTICE_ASK_GIVE: - left = 0x12; + left = 18; top = 8; strings[0] = gText_Give; strings[1] = gText_NoNeed; break; case APPRENTICE_ASK_YES_NO: - left = 0x14; + left = 20; top = 8; strings[0] = gText_Yes; strings[1] = gText_No; @@ -1623,12 +715,12 @@ static void RemoveAndHideWindow(u8 windowId) RemoveWindow(windowId); } -static void CreateChooseAnswerTask(bool8 noBButton, u8 itemsCount, u8 windowId) +static void CreateChooseAnswerTask(bool8 noBButton, u8 answers, u8 windowId) { u8 taskId = CreateTask(Task_ChooseAnswer, 80); gTasks[taskId].tNoBButton = noBButton; - if (itemsCount > 3) + if (answers > 3) gTasks[taskId].tWrapAround = TRUE; else gTasks[taskId].tWrapAround = FALSE; @@ -1649,71 +741,79 @@ static void Script_ResetPlayerApprentice(void) { u8 i; - sub_819FBC8(); - PLAYER_APPRENTICE.activeLvlMode = 0; - PLAYER_APPRENTICE.field_B1_1 = 0; - PLAYER_APPRENTICE.field_B1_2 = 0; - PLAYER_APPRENTICE.field_B2_0 = 0; + SetApprenticeId(); + PLAYER_APPRENTICE.lvlMode = 0; + PLAYER_APPRENTICE.questionsAnswered = 0; + PLAYER_APPRENTICE.leadMonId = 0; + PLAYER_APPRENTICE.party = 0; - for (i = 0; i < 3; i++) - PLAYER_APPRENTICE.monIds[i] = 0; + for (i = 0; i < MULTI_PARTY_SIZE; i++) + PLAYER_APPRENTICE.speciesIds[i] = 0; - for (i = 0; i < 9; i++) + for (i = 0; i < APPRENTICE_MAX_QUESTIONS; i++) { - PLAYER_APPRENTICE.field_B8[i].unk0_0 = 0; - PLAYER_APPRENTICE.field_B8[i].unk0_1 = 0; - PLAYER_APPRENTICE.field_B8[i].unk0_2 = 0; - PLAYER_APPRENTICE.field_B8[i].unk0_3 = 0; - PLAYER_APPRENTICE.field_B8[i].unk2 = 0; + PLAYER_APPRENTICE.questions[i].questionId = 0; + PLAYER_APPRENTICE.questions[i].monId = 0; + PLAYER_APPRENTICE.questions[i].moveSlot = 0; + PLAYER_APPRENTICE.questions[i].suggestedChange = 0; + PLAYER_APPRENTICE.questions[i].data = 0; } } -static void Script_IsPlayersApprenticeActive(void) +static void Script_GivenApprenticeLvlMode(void) { - if (!IsPlayersApprenticeActive()) + if (!GivenApprenticeLvlMode()) gSpecialVar_Result = FALSE; else gSpecialVar_Result = TRUE; } -static void Script_SetPlayersApprenticeLvlMode(void) +// VAR_0x8005 is 1 + the selection value from the multichoice APPRENTICE_ASK_WHICH_LEVEL +// i.e. APPRENTICE_LVL_MODE_50 or APPRENTICE_LVL_MODE_OPEN +static void Script_SetApprenticeLvlMode(void) { SetPlayersApprenticeLvlMode(gSpecialVar_0x8005); } -static void sub_81A0978(void) +// Never called, APPRENTICE_FUNC_SET_ID is unused +static void Script_SetApprenticeId(void) { - sub_819FBC8(); + SetApprenticeId(); } -static void sub_81A0984(void) +static void Script_SetRandomQuestionData(void) { - sub_819FD64(); + SetRandomQuestionData(); } -static void sub_81A0990(void) +static void IncrementQuestionsAnswered(void) { - PLAYER_APPRENTICE.field_B1_1++; + PLAYER_APPRENTICE.questionsAnswered++; } -static void sub_81A09B4(void) +// The first 3 questions answered after meeting the Apprentice are always selecting party mons +// after which this is never called +static void GetNumApprenticePartyMonsAssigned(void) { - gSpecialVar_Result = PLAYER_APPRENTICE.field_B1_1; + gSpecialVar_Result = PLAYER_APPRENTICE.questionsAnswered; } -static void sub_81A09D0(void) +// Never called, APPRENTICE_FUNC_IS_FINAL_QUESTION is unused +static void IsFinalQuestion(void) { - s32 var = PLAYER_APPRENTICE.field_B1_1 - 3; - if (var < 0) + s32 questionNum = CURRENT_QUESTION_NUM; + + if (questionNum < 0) { + // Not finished asking initial questions gSpecialVar_Result = FALSE; } else { - if (var > 8) + if (questionNum > APPRENTICE_MAX_QUESTIONS - 1) gSpecialVar_Result = TRUE; - if (!PLAYER_APPRENTICE.field_B8[var].unk0_0) + if (PLAYER_APPRENTICE.questions[questionNum].questionId == QUESTION_ID_WIN_SPEECH) gSpecialVar_Result = TRUE; else gSpecialVar_Result = FALSE; @@ -1722,7 +822,7 @@ static void sub_81A09D0(void) static void Script_CreateApprenticeMenu(void) { - CreateMenuWithAnswers(gSpecialVar_0x8005); + CreateApprenticeMenu(gSpecialVar_0x8005); } static void Task_WaitForPrintingMessage(u8 taskId) @@ -1737,77 +837,77 @@ static void Task_WaitForPrintingMessage(u8 taskId) } } -static void PrintMessage(void) +static void PrintApprenticeMessage(void) { const u8 *string; - if (gSpecialVar_0x8006 == 6) + if (gSpecialVar_0x8006 == APPRENTICE_MSG_WHICH_MON) { - string = gUnknown_08610FF0[PLAYER_APPRENTICE.id][0]; + string = sApprenticeWhichMonTexts[PLAYER_APPRENTICE.id][0]; } - else if (gSpecialVar_0x8006 == 7) + else if (gSpecialVar_0x8006 == APPRENTICE_MSG_THANKS_MON) { - string = gUnknown_08610FF0[PLAYER_APPRENTICE.id][1]; + string = sApprenticeWhichMonTexts[PLAYER_APPRENTICE.id][1]; } - else if (gSpecialVar_0x8006 == 8) + else if (gSpecialVar_0x8006 == APPRENTICE_MSG_WHICH_MOVE) { - string = gUnknown_086111B0[PLAYER_APPRENTICE.id][0]; + string = sApprenticeWhichMoveTexts[PLAYER_APPRENTICE.id][0]; } - else if (gSpecialVar_0x8006 == 9) + else if (gSpecialVar_0x8006 == APPRENTICE_MSG_THANKS_MOVE) { - string = gUnknown_086111B0[PLAYER_APPRENTICE.id][1]; + string = sApprenticeWhichMoveTexts[PLAYER_APPRENTICE.id][1]; } - else if (gSpecialVar_0x8006 == 4) + else if (gSpecialVar_0x8006 == APPRENTICE_MSG_WHICH_MON_FIRST) { - string = gUnknown_08611230[PLAYER_APPRENTICE.id][0]; + string = sApprenticeWhichMonFirstTexts[PLAYER_APPRENTICE.id][0]; } - else if (gSpecialVar_0x8006 == 5) + else if (gSpecialVar_0x8006 == APPRENTICE_MSG_THANKS_MON_FIRST) { - string = gUnknown_08611230[PLAYER_APPRENTICE.id][1]; + string = sApprenticeWhichMonFirstTexts[PLAYER_APPRENTICE.id][1]; } - else if (gSpecialVar_0x8006 == 10) + else if (gSpecialVar_0x8006 == APPRENTICE_MSG_WHAT_HELD_ITEM) { - string = gUnknown_08611070[PLAYER_APPRENTICE.id][0]; + string = sApprenticeHeldItemTexts[PLAYER_APPRENTICE.id][0]; } - else if (gSpecialVar_0x8006 == 11) + else if (gSpecialVar_0x8006 == APPRENTICE_MSG_PICK_WIN_SPEECH) { - string = gUnknown_086112B0[PLAYER_APPRENTICE.id][0]; + string = sApprenticePickWinSpeechTexts[PLAYER_APPRENTICE.id][0]; } - else if (gSpecialVar_0x8006 == 12) + else if (gSpecialVar_0x8006 == APPRENTICE_MSG_THANKS_HELD_ITEM) { - string = gUnknown_08611070[PLAYER_APPRENTICE.id][3]; + string = sApprenticeHeldItemTexts[PLAYER_APPRENTICE.id][3]; } - else if (gSpecialVar_0x8006 == 13) + else if (gSpecialVar_0x8006 == APPRENTICE_MSG_HOLD_NOTHING) { - string = gUnknown_08611070[PLAYER_APPRENTICE.id][1]; + string = sApprenticeHeldItemTexts[PLAYER_APPRENTICE.id][1]; } - else if (gSpecialVar_0x8006 == 16) + else if (gSpecialVar_0x8006 == APPRENTICE_MSG_ITEM_ALREADY_SUGGESTED) { - string = gUnknown_08611070[PLAYER_APPRENTICE.id][4]; + string = sApprenticeHeldItemTexts[PLAYER_APPRENTICE.id][4]; } - else if (gSpecialVar_0x8006 == 14) + else if (gSpecialVar_0x8006 == APPRENTICE_MSG_THANKS_NO_HELD_ITEM) { - string = gUnknown_08611070[PLAYER_APPRENTICE.id][2]; + string = sApprenticeHeldItemTexts[PLAYER_APPRENTICE.id][2]; } - else if (gSpecialVar_0x8006 == 15) + else if (gSpecialVar_0x8006 == APPRENTICE_MSG_THANKS_WIN_SPEECH) { - string = gUnknown_086112B0[PLAYER_APPRENTICE.id][1]; + string = sApprenticePickWinSpeechTexts[PLAYER_APPRENTICE.id][1]; } - else if (gSpecialVar_0x8006 == 0) + else if (gSpecialVar_0x8006 == APPRENTICE_MSG_PLEASE_TEACH) { - string = gUnknown_08610EF0[PLAYER_APPRENTICE.id][0]; + string = sApprenticeFirstMeetingTexts[PLAYER_APPRENTICE.id][0]; } - else if (gSpecialVar_0x8006 == 1) + else if (gSpecialVar_0x8006 == APPRENTICE_MSG_REJECT) { - string = gUnknown_08610EF0[PLAYER_APPRENTICE.id][1]; + string = sApprenticeFirstMeetingTexts[PLAYER_APPRENTICE.id][1]; } - else if (gSpecialVar_0x8006 == 2) + else if (gSpecialVar_0x8006 == APPRENTICE_MSG_WHICH_LVL_MODE) { - string = gUnknown_08610EF0[PLAYER_APPRENTICE.id][2]; + string = sApprenticeFirstMeetingTexts[PLAYER_APPRENTICE.id][2]; } - else if (gSpecialVar_0x8006 == 3) + else if (gSpecialVar_0x8006 == APPRENTICE_MSG_THANKS_LVL_MODE) { - string = gUnknown_08610EF0[PLAYER_APPRENTICE.id][3]; + string = sApprenticeFirstMeetingTexts[PLAYER_APPRENTICE.id][3]; } else { @@ -1820,121 +920,129 @@ static void PrintMessage(void) CreateTask(Task_WaitForPrintingMessage, 1); } -static void Script_PrintMessage(void) +static void Script_PrintApprenticeMessage(void) { ScriptContext2_Enable(); FreezeObjectEvents(); sub_808B864(); sub_808BCF4(); DrawDialogueFrame(0, 1); - PrintMessage(); + PrintApprenticeMessage(); } -static void sub_81A0CC0(void) +static void ApprenticeGetQuestion(void) { - if (PLAYER_APPRENTICE.field_B1_1 < 3) + if (PLAYER_APPRENTICE.questionsAnswered < NUM_WHICH_MON_QUESTIONS) { - gSpecialVar_Result = 2; + gSpecialVar_Result = APPRENTICE_QUESTION_WHICH_MON; } - else if (PLAYER_APPRENTICE.field_B1_1 > 11) + else if (PLAYER_APPRENTICE.questionsAnswered > (APPRENTICE_MAX_QUESTIONS + NUM_WHICH_MON_QUESTIONS - 1)) { - gSpecialVar_Result = 5; + gSpecialVar_Result = APPRENTICE_QUESTION_WIN_SPEECH; } else { - s32 id = PLAYER_APPRENTICE.field_B1_1 - 3; - switch (PLAYER_APPRENTICE.field_B8[id].unk0_0) + s32 id = CURRENT_QUESTION_NUM; + switch (PLAYER_APPRENTICE.questions[id].questionId) { - case 1: - gSpecialVar_Result = 4; + case QUESTION_ID_WHAT_ITEM: + gSpecialVar_Result = APPRENTICE_QUESTION_WHAT_ITEM; break; - case 2: - gSpecialVar_Result = 3; + case QUESTION_ID_WHICH_MOVE: + gSpecialVar_Result = APPRENTICE_QUESTION_WHICH_MOVE; break; - case 3: - gSpecialVar_Result = 1; + case QUESTION_ID_WHICH_FIRST: + gSpecialVar_Result = APPRENTICE_QUESTION_WHICH_FIRST; break; default: - gSpecialVar_Result = 5; + //case QUESTION_ID_WIN_SPEECH: + gSpecialVar_Result = APPRENTICE_QUESTION_WIN_SPEECH; break; } } } -static void sub_81A0D40(void) +// gSpecialVar_0x8005 is 0 or 1 for the mon selection (0 is already on the team) +// gSpecialVar_0x8006 is 0-2 for the number of party mons selected so far +static void SetApprenticePartyMon(void) { if (gSpecialVar_0x8005) { - u8 bitNo = gSpecialVar_0x8006; - PLAYER_APPRENTICE.field_B2_0 |= 1 << bitNo; + u8 partySlot = gSpecialVar_0x8006; + PLAYER_APPRENTICE.party |= 1 << partySlot; } } -static void sub_81A0D80(void) +// gSpecialVar_0x8005 is 0 or 1 for the move selection +// Selection 0 is implicitly the default move assigned +static void SetApprenticeMonMove(void) { - if (PLAYER_APPRENTICE.field_B1_1 >= 3) + if (PLAYER_APPRENTICE.questionsAnswered >= NUM_WHICH_MON_QUESTIONS) { - u8 id = PLAYER_APPRENTICE.field_B1_1 - 3; + u8 id = CURRENT_QUESTION_NUM; if (gSpecialVar_0x8005) - PLAYER_APPRENTICE.field_B8[id].unk0_3 = 1; + PLAYER_APPRENTICE.questions[id].suggestedChange = TRUE; else - PLAYER_APPRENTICE.field_B8[id].unk0_3 = 0; + PLAYER_APPRENTICE.questions[id].suggestedChange = FALSE; } } -static void sub_81A0DD4(void) +static void InitQuestionData(void) { u8 i; u8 count = 0; u8 id1, id2; - for (i = 0; i < 9 && PLAYER_APPRENTICE.field_B8[i].unk0_0; count++, i++) + for (i = 0; i < APPRENTICE_MAX_QUESTIONS && (PLAYER_APPRENTICE.questions[i].questionId != QUESTION_ID_WIN_SPEECH); count++, i++) ; - gUnknown_030062F0 = AllocZeroed(sizeof(*gUnknown_030062F0)); - if (gSpecialVar_0x8005 == 2) + gApprenticeQuestionData = AllocZeroed(sizeof(*gApprenticeQuestionData)); + if (gSpecialVar_0x8005 == APPRENTICE_QUESTION_WHICH_MON) { - if (PLAYER_APPRENTICE.field_B1_1 < 3) + if (PLAYER_APPRENTICE.questionsAnswered < NUM_WHICH_MON_QUESTIONS) { - id1 = PLAYER_APPRENTICE.monIds[PLAYER_APPRENTICE.field_B1_1] >> 4; - gUnknown_030062F0->unk2 = gApprentices[PLAYER_APPRENTICE.id].species[id1]; + // For the first MULTI_PARTY_SIZE (3) questions, a mon is asked to be selected for the Apprentice's party + id1 = PLAYER_APPRENTICE.speciesIds[PLAYER_APPRENTICE.questionsAnswered] >> 4; + gApprenticeQuestionData->altSpeciesId = gApprentices[PLAYER_APPRENTICE.id].species[id1]; - id2 = PLAYER_APPRENTICE.monIds[PLAYER_APPRENTICE.field_B1_1] & 0xF; - gUnknown_030062F0->unk0 = gApprentices[PLAYER_APPRENTICE.id].species[id2]; + id2 = PLAYER_APPRENTICE.speciesIds[PLAYER_APPRENTICE.questionsAnswered] & 0xF; + gApprenticeQuestionData->speciesId = gApprentices[PLAYER_APPRENTICE.id].species[id2]; } } - else if (gSpecialVar_0x8005 == 3) + else if (gSpecialVar_0x8005 == APPRENTICE_QUESTION_WHICH_MOVE) { - if (PLAYER_APPRENTICE.field_B1_1 >= 3 - && PLAYER_APPRENTICE.field_B1_1 < count + 3 - && PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk0_0 == 2) + if (PLAYER_APPRENTICE.questionsAnswered >= NUM_WHICH_MON_QUESTIONS + && PLAYER_APPRENTICE.questionsAnswered < count + NUM_WHICH_MON_QUESTIONS + && PLAYER_APPRENTICE.questions[CURRENT_QUESTION_NUM].questionId == QUESTION_ID_WHICH_MOVE) { - count = PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk0_1; + // count re-used as monId + count = PLAYER_APPRENTICE.questions[CURRENT_QUESTION_NUM].monId; APPRENTICE_SPECIES_ID_2(id1, count); - gUnknown_030062F0->unk0 = gApprentices[PLAYER_APPRENTICE.id].species[id1]; - gUnknown_030062F0->unk4 = sub_81A0284(count, id1, PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk0_2); - gUnknown_030062F0->unk6 = PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk2; + gApprenticeQuestionData->speciesId = gApprentices[PLAYER_APPRENTICE.id].species[id1]; + gApprenticeQuestionData->moveId1 = GetDefaultMove(count, id1, PLAYER_APPRENTICE.questions[CURRENT_QUESTION_NUM].moveSlot); + gApprenticeQuestionData->moveId2 = PLAYER_APPRENTICE.questions[CURRENT_QUESTION_NUM].data; } } - else if (gSpecialVar_0x8005 == 4) + else if (gSpecialVar_0x8005 == APPRENTICE_QUESTION_WHAT_ITEM) { - if (PLAYER_APPRENTICE.field_B1_1 >= 3 - && PLAYER_APPRENTICE.field_B1_1 < count + 3 - && PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk0_0 == 1) + if (PLAYER_APPRENTICE.questionsAnswered >= NUM_WHICH_MON_QUESTIONS + && PLAYER_APPRENTICE.questionsAnswered < count + NUM_WHICH_MON_QUESTIONS + && PLAYER_APPRENTICE.questions[CURRENT_QUESTION_NUM].questionId == QUESTION_ID_WHAT_ITEM) { - count = PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk0_1; + // count re-used as monId + count = PLAYER_APPRENTICE.questions[CURRENT_QUESTION_NUM].monId; APPRENTICE_SPECIES_ID_2(id2, count); - gUnknown_030062F0->unk0 = gApprentices[PLAYER_APPRENTICE.id].species[id2]; + gApprenticeQuestionData->speciesId = gApprentices[PLAYER_APPRENTICE.id].species[id2]; } } } -static void sub_81A0FE4(void) +static void FreeQuestionData(void) { - FREE_AND_SET_NULL(gUnknown_030062F0); + FREE_AND_SET_NULL(gApprenticeQuestionData); } -static void sub_81A0FFC(void) +static void ApprenticeBufferString(void) { u8 *stringDst; u8 text[16]; @@ -1958,41 +1066,41 @@ static void sub_81A0FFC(void) switch (gSpecialVar_0x8006) { case APPRENTICE_BUFF_SPECIES1: - StringCopy(stringDst, gSpeciesNames[gUnknown_030062F0->unk0]); + StringCopy(stringDst, gSpeciesNames[gApprenticeQuestionData->speciesId]); break; case APPRENTICE_BUFF_SPECIES2: - StringCopy(stringDst, gSpeciesNames[gUnknown_030062F0->unk2]); + StringCopy(stringDst, gSpeciesNames[gApprenticeQuestionData->altSpeciesId]); break; case APPRENTICE_BUFF_SPECIES3: - StringCopy(stringDst, gSpeciesNames[gUnknown_030062F0->unk0]); + StringCopy(stringDst, gSpeciesNames[gApprenticeQuestionData->speciesId]); break; case APPRENTICE_BUFF_MOVE1: - StringCopy(stringDst, gMoveNames[gUnknown_030062F0->unk4]); + StringCopy(stringDst, gMoveNames[gApprenticeQuestionData->moveId1]); break; case APPRENTICE_BUFF_MOVE2: - StringCopy(stringDst, gMoveNames[gUnknown_030062F0->unk6]); + StringCopy(stringDst, gMoveNames[gApprenticeQuestionData->moveId2]); break; case APPRENTICE_BUFF_ITEM: - StringCopy(stringDst, ItemId_GetName(PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk2)); + StringCopy(stringDst, ItemId_GetName(PLAYER_APPRENTICE.questions[CURRENT_QUESTION_NUM].data)); break; case APPRENTICE_BUFF_NAME: TVShowConvertInternationalString(text, GetApprenticeNameInLanguage(PLAYER_APPRENTICE.id, LANGUAGE_ENGLISH), LANGUAGE_ENGLISH); StringCopy(stringDst, text); break; case APPRENTICE_BUFF_LEVEL: - if (PLAYER_APPRENTICE.activeLvlMode == 1) + if (PLAYER_APPRENTICE.lvlMode == APPRENTICE_LVL_MODE_50) StringCopy(stringDst, gText_Lv50); - else + else // == APPRENTICE_LVL_MODE_OPEN StringCopy(stringDst, gText_OpenLevel); break; - case APPRENTICE_BUFF_EASY_CHAT: - FrontierSpeechToString(gSaveBlock2Ptr->apprentices[0].easyChatWords); + case APPRENTICE_BUFF_WIN_SPEECH: + FrontierSpeechToString(gSaveBlock2Ptr->apprentices[0].speechWon); StringCopy(stringDst, gStringVar4); break; - case APPRENTICE_BUFF_SPECIES4: - if (PLAYER_APPRENTICE.field_B1_2 < 3) + case APPRENTICE_BUFF_LEAD_MON_SPECIES: + if (PLAYER_APPRENTICE.leadMonId < MULTI_PARTY_SIZE) { - APPRENTICE_SPECIES_ID(speciesArrayId, PLAYER_APPRENTICE.field_B1_2); + APPRENTICE_SPECIES_ID(speciesArrayId, PLAYER_APPRENTICE.leadMonId); } else { @@ -2003,56 +1111,57 @@ static void sub_81A0FFC(void) } } -static void sub_81A11F8(void) +static void SetLeadApprenticeMon(void) { - PLAYER_APPRENTICE.field_B1_2 = gSpecialVar_0x8005; + PLAYER_APPRENTICE.leadMonId = gSpecialVar_0x8005; } -static void sub_81A1218(void) +static void Script_ApprenticeOpenBagMenu(void) { - sub_81AAC28(); + ApprenticeOpenBagMenu(); } -static void sub_81A1224(void) +static void TrySetApprenticeHeldItem(void) { u8 i, j; u8 count; - if (PLAYER_APPRENTICE.field_B1_1 < 3) + if (PLAYER_APPRENTICE.questionsAnswered < NUM_WHICH_MON_QUESTIONS) return; - for (count = 0, j = 0; j < 9 && PLAYER_APPRENTICE.field_B8[j].unk0_0; count++, j++) + for (count = 0, j = 0; j < APPRENTICE_MAX_QUESTIONS && PLAYER_APPRENTICE.questions[j].questionId != QUESTION_ID_WIN_SPEECH; count++, j++) ; - for (i = 0; i < count && i < PLAYER_APPRENTICE.field_B1_1 - 3; i++) + // Make sure the item hasnt already been suggested in previous questions + for (i = 0; i < count && i < CURRENT_QUESTION_NUM; i++) { do {} while(0); - if (PLAYER_APPRENTICE.field_B8[i].unk0_0 == 1 - && PLAYER_APPRENTICE.field_B8[i].unk0_3 - && PLAYER_APPRENTICE.field_B8[i].unk2 == gSpecialVar_0x8005) + if (PLAYER_APPRENTICE.questions[i].questionId == QUESTION_ID_WHAT_ITEM + && PLAYER_APPRENTICE.questions[i].suggestedChange + && PLAYER_APPRENTICE.questions[i].data == gSpecialVar_0x8005) { - PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk0_3 = 0; - PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk2 = gSpecialVar_0x8005; - gSpecialVar_Result = 0; + PLAYER_APPRENTICE.questions[CURRENT_QUESTION_NUM].suggestedChange = FALSE; + PLAYER_APPRENTICE.questions[CURRENT_QUESTION_NUM].data = gSpecialVar_0x8005; + gSpecialVar_Result = FALSE; return; } } - PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk0_3 = 1; - PLAYER_APPRENTICE.field_B8[PLAYER_APPRENTICE.field_B1_1 - 3].unk2 = gSpecialVar_0x8005; - gSpecialVar_Result = 1; + PLAYER_APPRENTICE.questions[CURRENT_QUESTION_NUM].suggestedChange = TRUE; + PLAYER_APPRENTICE.questions[CURRENT_QUESTION_NUM].data = gSpecialVar_0x8005; + gSpecialVar_Result = TRUE; } -static void sub_81A1370(void) +static void ShiftSavedApprentices(void) { s32 i; - s32 r10; - s32 r9; + s32 apprenticeNum; + s32 apprenticeIdx; if (gSaveBlock2Ptr->apprentices[0].playerName[0] == EOS) return; - for (i = 0; i < 3; i++) + for (i = 0; i < APPRENTICE_COUNT - 1; i++) { if (gSaveBlock2Ptr->apprentices[i + 1].playerName[0] == EOS) { @@ -2061,37 +1170,39 @@ static void sub_81A1370(void) } } - r10 = 0xFFFF; - r9 = -1; - for (i = 1; i < TRAINER_ID_LENGTH; i++) + apprenticeNum = 0xFFFF; + apprenticeIdx = -1; + for (i = 1; i < APPRENTICE_COUNT; i++) { if (GetTrainerId(gSaveBlock2Ptr->apprentices[i].playerId) == GetTrainerId(gSaveBlock2Ptr->playerTrainerId) - && gSaveBlock2Ptr->apprentices[i].number < r10) + && gSaveBlock2Ptr->apprentices[i].number < apprenticeNum) { - r10 = gSaveBlock2Ptr->apprentices[i].number; - r9 = i; + apprenticeNum = gSaveBlock2Ptr->apprentices[i].number; + apprenticeIdx = i; } } - if (r9 > 0) - gSaveBlock2Ptr->apprentices[r9] = gSaveBlock2Ptr->apprentices[0]; + if (apprenticeIdx > 0) + gSaveBlock2Ptr->apprentices[apprenticeIdx] = gSaveBlock2Ptr->apprentices[0]; } -static void sub_81A1438(void) +// Apprentice is always saved in the first slot. Pre-existing Apprentices are moved by ShiftSavedApprentices +static void SaveApprentice(void) { u8 i; gSaveBlock2Ptr->apprentices[0].id = PLAYER_APPRENTICE.id; - gSaveBlock2Ptr->apprentices[0].lvlMode = PLAYER_APPRENTICE.activeLvlMode; + gSaveBlock2Ptr->apprentices[0].lvlMode = PLAYER_APPRENTICE.lvlMode; - for (i = 0; i < 9 && PLAYER_APPRENTICE.field_B8[i].unk0_0; i++) + // Count questions asked until the final (win speech) question was reached + for (i = 0; i < APPRENTICE_MAX_QUESTIONS && (PLAYER_APPRENTICE.questions[i].questionId != QUESTION_ID_WIN_SPEECH); i++) ; - gSaveBlock2Ptr->apprentices[0].field_1 = i; + gSaveBlock2Ptr->apprentices[0].numQuestions = i; if (gSaveBlock2Ptr->apprentices[0].number < 255) gSaveBlock2Ptr->apprentices[0].number++; - sub_81A0390(gSaveBlock2Ptr->apprentices[0].field_1); + SaveApprenticeParty(gSaveBlock2Ptr->apprentices[0].numQuestions); for (i = 0; i < TRAINER_ID_LENGTH; i++) gSaveBlock2Ptr->apprentices[0].playerId[i] = gSaveBlock2Ptr->playerTrainerId[i]; @@ -2100,13 +1211,13 @@ static void sub_81A1438(void) CalcApprenticeChecksum(&gSaveBlock2Ptr->apprentices[0]); } -static void sub_81A150C(void) +// Never called, APPRENTICE_FUNC_SET_GFX_SAVED is unused +static void SetSavedApprenticeTrainerGfxId(void) { u8 i; u8 objectEventGfxId; u8 class = gApprentices[gSaveBlock2Ptr->apprentices[0].id].facilityClass; - // Search male classes. for (i = 0; i < ARRAY_COUNT(gTowerMaleFacilityClasses) && gTowerMaleFacilityClasses[i] != class; i++) ; if (i != ARRAY_COUNT(gTowerMaleFacilityClasses)) @@ -2125,7 +1236,7 @@ static void sub_81A150C(void) } } -static void Script_SetPlayerApprenticeTrainerGfxId(void) +static void SetPlayerApprenticeTrainerGfxId(void) { u8 i; u8 objectEventGfxId; @@ -2149,14 +1260,16 @@ static void Script_SetPlayerApprenticeTrainerGfxId(void) } } -static void sub_81A1638(void) +// Both of the below functions may have been dummied / used for debug +// In all cases theres a conditional for VAR_0x8004 right after the call to these functions +static void GetShouldCheckApprenticeGone(void) { - gSpecialVar_0x8004 = 1; + gSpecialVar_0x8004 = TRUE; } -static void sub_81A1644(void) +static void GetShouldApprenticeLeave(void) { - gSpecialVar_0x8004 = 1; + gSpecialVar_0x8004 = TRUE; } const u8 *GetApprenticeNameInLanguage(u32 apprenticeId, s32 language) @@ -2181,7 +1294,8 @@ const u8 *GetApprenticeNameInLanguage(u32 apprenticeId, s32 language) } } -static void sub_81A16B4(u8 taskId) +// Functionally unused +static void Task_SwitchToFollowupFuncAfterButtonPress(u8 taskId) { if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON) SwitchTaskToFollowupFunc(taskId); @@ -2191,8 +1305,8 @@ static void Task_ExecuteFuncAfterButtonPress(u8 taskId) { if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON) { - gUnknown_030062F4 = (void*)(u32)(((u16)gTasks[taskId].data[0] | (gTasks[taskId].data[1] << 0x10))); - gUnknown_030062F4(); + gApprenticeFunc = (void*)(u32)(((u16)gTasks[taskId].data[0] | (gTasks[taskId].data[1] << 16))); + gApprenticeFunc(); DestroyTask(taskId); } } @@ -2204,8 +1318,9 @@ static void ExecuteFuncAfterButtonPress(void (*func)(void)) gTasks[taskId].data[1] = (u32)(func) >> 16; } -static void sub_81A175C(TaskFunc taskFunc) +// Unused +static void ExecuteFollowupFuncAfterButtonPress(TaskFunc task) { - u8 taskId = CreateTask(sub_81A16B4, 1); - SetTaskFuncWithFollowupFunc(taskId, sub_81A16B4, taskFunc); + u8 taskId = CreateTask(Task_SwitchToFollowupFuncAfterButtonPress, 1); + SetTaskFuncWithFollowupFunc(taskId, Task_SwitchToFollowupFuncAfterButtonPress, task); } diff --git a/src/battle_anim.c b/src/battle_anim.c index 25abbfece..becc12d56 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -1355,7 +1355,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_Spotlight, 0x0800, ANIM_TAG_SPOTLIGHT}, {gBattleAnimSpriteGfx_LetterZ, 0x0200, ANIM_TAG_LETTER_Z}, {gBattleAnimSpriteGfx_RapidSpin, 0x0300, ANIM_TAG_RAPID_SPIN}, - {gBattleAnimSpriteGfx_TriForceTriangle, 0x0800, ANIM_TAG_TRI_FORCE_TRIANGLE}, + {gBattleAnimSpriteGfx_TriAttackTriangle, 0x0800, ANIM_TAG_TRI_ATTACK_TRIANGLE}, {gBattleAnimSpriteGfx_WispOrb, 0x0380, ANIM_TAG_WISP_ORB}, {gBattleAnimSpriteGfx_WispFire, 0x0800, ANIM_TAG_WISP_FIRE}, {gBattleAnimSpriteGfx_GoldStars, 0x00c0, ANIM_TAG_GOLD_STARS}, @@ -1648,7 +1648,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_Pokeball, ANIM_TAG_SPOTLIGHT}, {gBattleAnimSpritePal_LetterZ, ANIM_TAG_LETTER_Z}, {gBattleAnimSpritePal_RapidSpin, ANIM_TAG_RAPID_SPIN}, - {gBattleAnimSpritePal_TriForceTriangle, ANIM_TAG_TRI_FORCE_TRIANGLE}, + {gBattleAnimSpritePal_TriAttackTriangle, ANIM_TAG_TRI_ATTACK_TRIANGLE}, {gBattleAnimSpritePal_WispOrb, ANIM_TAG_WISP_ORB}, {gBattleAnimSpritePal_WispOrb, ANIM_TAG_WISP_FIRE}, {gBattleAnimSpritePal_GoldStars, ANIM_TAG_GOLD_STARS}, @@ -2808,12 +2808,12 @@ static void LoadMoveBg(u16 bgId) void *dmaDest; LZDecompressWram(tilemap, gDecompressionBuffer); - sub_80A4720(sub_80A6D94(), (void*)(gDecompressionBuffer), 0x100, 0); + sub_80A4720(GetBattleBgPaletteNum(), (void*)(gDecompressionBuffer), 0x100, 0); dmaSrc = gDecompressionBuffer; dmaDest = (void *)(BG_SCREEN_ADDR(26)); DmaCopy32(3, dmaSrc, dmaDest, 0x800); LZDecompressVram(gBattleAnimBackgroundTable[bgId].image, (void *)(BG_SCREEN_ADDR(4))); - LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, sub_80A6D94() * 16, 32); + LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, GetBattleBgPaletteNum() * 16, 32); } else { diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index 772ef6182..248228847 100755 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -26,24 +26,24 @@ extern const struct SpriteTemplate gThoughtBubbleSpriteTemplate; -void sub_815A0D4(struct Sprite *); -void sub_815A1B0(struct Sprite *); -void sub_815A254(struct Sprite *); -void sub_815A2F0(struct Sprite *); -void sub_815A6C4(struct Sprite *); -void sub_815A7B0(struct Sprite *); -void sub_815A7EC(struct Sprite *); -void sub_815A8AC(struct Sprite *); -void sub_815A934(struct Sprite *); -void sub_815AAA4(struct Sprite *); -void sub_815ABD0(struct Sprite *); -void sub_815ACD0(struct Sprite *); -void sub_815B27C(struct Sprite *); -void sub_815B394(struct Sprite *); -void sub_815B49C(struct Sprite *); +void AnimBlackSmoke(struct Sprite *); +void AnimWhiteHalo(struct Sprite *); +void AnimTealAlert(struct Sprite *); +void AnimMeanLookEye(struct Sprite *); +void AnimSpikes(struct Sprite *); +void AnimLeer(struct Sprite *); +void AnimLetterZ(struct Sprite *); +void AnimFang(struct Sprite *); +void AnimSpotlight(struct Sprite *); +void AnimClappingHand(struct Sprite *); +void AnimClappingHand2(struct Sprite *); +void AnimRapidSpin(struct Sprite *); +void AnimTriAttackTriangle(struct Sprite *); +void AnimBatonPassPokeball(struct Sprite *); +void AnimWishStar(struct Sprite *); void AnimMiniTwinklingStar(struct Sprite *); -void sub_815B70C(struct Sprite *); -void sub_815BE04(struct Sprite *); +void AnimSwallowBlueOrb(struct Sprite *); +void AnimGreenStar(struct Sprite *); void AnimWeakFrustrationAngerMark(struct Sprite *); void AnimSweetScentPetal(struct Sprite *); void AnimPainSplitProjectile(struct Sprite *); @@ -52,7 +52,7 @@ void AnimFlatterSpotlight(struct Sprite *); void AnimReversalOrb(struct Sprite *); void AnimYawnCloud(struct Sprite *); void AnimSmokeBallEscapeCloud(struct Sprite *); -void sub_815DEBC(struct Sprite *); +void AnimFacadeSweatDrop(struct Sprite *); void AnimRoarNoiseLine(struct Sprite *); void AnimGlareEyeDot(struct Sprite *); void AnimAssistPawprint(struct Sprite *); @@ -66,29 +66,29 @@ void sub_815FE80(struct Sprite *); void AnimParticuleBurst(struct Sprite *); void AnimKnockOffStrike(struct Sprite *); void AnimRecycle(struct Sprite *); -static void sub_815A114(struct Sprite *); -static void sub_815A1F4(struct Sprite *); -static void sub_815A234(struct Sprite *); -static void sub_815A31C(struct Sprite *); -static void sub_815A3AC(struct Sprite *); -static void sub_815A3F0(struct Sprite *); -static void sub_815A49C(struct Sprite *); -static void sub_815A52C(u8); -static void sub_815A5F0(u8); -static void sub_815A73C(struct Sprite *); -static void sub_815A76C(struct Sprite *); -static void sub_815A9A0(struct Sprite *); -static void sub_815AA6C(struct Sprite *); -static void sub_815AB5C(struct Sprite *); -static void sub_815AD4C(struct Sprite *); -static void sub_815AED8(u8); -static void sub_815B054(u8); -static void sub_815B23C(struct Sprite *); -static void sub_815B4D4(struct Sprite *); -static void sub_815B5D0(struct Sprite *); -static void sub_815BF44(struct Sprite *); -static void sub_815BFF4(struct Sprite *); -static void sub_815C050(struct Sprite *); +static void AnimBlackSmokeStep(struct Sprite *); +static void AnimWhiteHalo_Step1(struct Sprite *); +static void AnimWhiteHalo_Step2(struct Sprite *); +static void AnimMeanLookEye_Step1(struct Sprite *); +static void AnimMeanLookEye_Step2(struct Sprite *); +static void AnimMeanLookEye_Step3(struct Sprite *); +static void AnimMeanLookEye_Step4(struct Sprite *); +static void SetPsychicBackground_Step(u8); +static void FadeScreenToWhite_Step(u8); +static void AnimSpikes_Step1(struct Sprite *); +static void AnimSpikes_Step2(struct Sprite *); +static void AnimSpotlight_Step1(struct Sprite *); +static void AnimSpotlight_Step2(struct Sprite *); +static void AnimClappingHand_Step(struct Sprite *); +static void AnimRapidSpin_Step(struct Sprite *); +static void RapinSpinMonElevation_Step(u8); +static void TormentAttacker_Step(u8); +static void TormentAttacker_Callback(struct Sprite *); +static void AnimWishStar_Step(struct Sprite *); +static void AnimMiniTwinklingStar_Step(struct Sprite *); +static void AnimGreenStar_Step1(struct Sprite *); +static void AnimGreenStar_Step2(struct Sprite *); +static void AnimGreenStar_Callback(struct Sprite *); static void AnimTask_RockMonBackAndForthStep(u8); static void AnimSweetScentPetalStep(struct Sprite *); static void AnimTask_FlailMovementStep(u8); @@ -107,7 +107,7 @@ static void AnimRoarNoiseLineStep(struct Sprite *); static void AnimTask_GlareEyeDotsStep(u8); static void GetGlareEyeDotCoords(s16, s16, s16, s16, u8, u8, s16 *, s16 *); static void AnimTask_BarrageBallStep(u8); -static void sub_815E784(struct Sprite *); +static void AnimSmellingSaltsHand_Step(struct Sprite *); static void AnimTask_SmellingSaltsSquishStep(u8); static void AnimSmellingSaltExclamationStep(struct Sprite *); static void AnimHelpingHandClapStep(struct Sprite *); @@ -121,7 +121,7 @@ static void AnimTask_TeeterDanceMovementStep(u8); static void AnimRecycleStep(struct Sprite *); static void AnimTask_SlackOffSquishStep(u8); -const union AnimCmd gUnknown_085CE004[] = +const union AnimCmd gScratchAnimCmds[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(16, 4), @@ -131,23 +131,23 @@ const union AnimCmd gUnknown_085CE004[] = ANIMCMD_END, }; -const union AnimCmd *const gUnknown_085CE01C[] = +const union AnimCmd *const gScratchAnimTable[] = { - gUnknown_085CE004, + gScratchAnimCmds, }; -const struct SpriteTemplate gUnknown_085CE020 = +const struct SpriteTemplate gScratchSpriteTemplate = { .tileTag = ANIM_TAG_SCRATCH, .paletteTag = ANIM_TAG_SCRATCH, .oam = &gOamData_AffineOff_ObjBlend_32x32, - .anims = gUnknown_085CE01C, + .anims = gScratchAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimSpriteOnMonPos, }; -const struct SpriteTemplate gUnknown_085CE038 = +const struct SpriteTemplate gBlackSmokeSpriteTemplate = { .tileTag = ANIM_TAG_BLACK_SMOKE, .paletteTag = ANIM_TAG_BLACK_SMOKE, @@ -155,10 +155,10 @@ const struct SpriteTemplate gUnknown_085CE038 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_815A0D4, + .callback = AnimBlackSmoke, }; -const struct SpriteTemplate gUnknown_085CE050 = +const struct SpriteTemplate gBlackBallSpriteTemplate = { .tileTag = ANIM_TAG_BLACK_BALL, .paletteTag = ANIM_TAG_BLACK_BALL, @@ -169,7 +169,7 @@ const struct SpriteTemplate gUnknown_085CE050 = .callback = AnimThrowProjectile, }; -const union AnimCmd gUnknown_085CE068[] = +const union AnimCmd gOpeningEyeAnimCmds[] = { ANIMCMD_FRAME(0, 40), ANIMCMD_FRAME(16, 8), @@ -177,23 +177,23 @@ const union AnimCmd gUnknown_085CE068[] = ANIMCMD_END, }; -const union AnimCmd *const gUnknown_085CE078[] = +const union AnimCmd *const gOpeningEyeAnimTable[] = { - gUnknown_085CE068, + gOpeningEyeAnimCmds, }; -const struct SpriteTemplate gUnknown_085CE07C = +const struct SpriteTemplate gOpeningEyeSpriteTemplate = { .tileTag = ANIM_TAG_OPENING_EYE, .paletteTag = ANIM_TAG_OPENING_EYE, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_085CE078, + .anims = gOpeningEyeAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimSpriteOnMonPos, }; -const struct SpriteTemplate gUnknown_085CE094 = +const struct SpriteTemplate gWhiteHaloSpriteTemplate = { .tileTag = ANIM_TAG_ROUND_WHITE_HALO, .paletteTag = ANIM_TAG_ROUND_WHITE_HALO, @@ -201,10 +201,10 @@ const struct SpriteTemplate gUnknown_085CE094 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_815A1B0, + .callback = AnimWhiteHalo, }; -const struct SpriteTemplate gUnknown_085CE0AC = +const struct SpriteTemplate gTealAlertSpriteTemplate = { .tileTag = ANIM_TAG_TEAL_ALERT, .paletteTag = ANIM_TAG_TEAL_ALERT, @@ -212,10 +212,10 @@ const struct SpriteTemplate gUnknown_085CE0AC = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_815A254, + .callback = AnimTealAlert, }; -const union AffineAnimCmd gUnknown_085CE0C4[] = +const union AffineAnimCmd gMeanLookEyeAffineAnimCmds1[] = { AFFINEANIMCMD_FRAME(0x180, 0x180, 0, 0), AFFINEANIMCMD_FRAME(-0x20, 0x18, 0, 5), @@ -223,31 +223,31 @@ const union AffineAnimCmd gUnknown_085CE0C4[] = AFFINEANIMCMD_JUMP(1), }; -const union AffineAnimCmd gUnknown_085CE0E4[] = +const union AffineAnimCmd gMeanLookEyeAffineAnimCmds2[] = { AFFINEANIMCMD_FRAME(0x30, 0x30, 0, 0), AFFINEANIMCMD_FRAME(0x20, 0x20, 0, 6), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_085CE0FC[] = +const union AffineAnimCmd *const gMeanLookEyeAffineAnimTable[] = { - gUnknown_085CE0C4, - gUnknown_085CE0E4, + gMeanLookEyeAffineAnimCmds1, + gMeanLookEyeAffineAnimCmds2, }; -const struct SpriteTemplate gUnknown_085CE104 = +const struct SpriteTemplate gMeanLookEyeSpriteTemplate = { .tileTag = ANIM_TAG_EYE, .paletteTag = ANIM_TAG_EYE, .oam = &gOamData_AffineDouble_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_085CE0FC, - .callback = sub_815A2F0, + .affineAnims = gMeanLookEyeAffineAnimTable, + .callback = AnimMeanLookEye, }; -const struct SpriteTemplate gUnknown_085CE11C = +const struct SpriteTemplate gSpikesSpriteTemplate = { .tileTag = ANIM_TAG_SPIKES, .paletteTag = ANIM_TAG_SPIKES, @@ -255,10 +255,10 @@ const struct SpriteTemplate gUnknown_085CE11C = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_815A6C4, + .callback = AnimSpikes, }; -const union AnimCmd gUnknown_085CE134[] = +const union AnimCmd gLeerAnimCmds[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(16, 3), @@ -268,57 +268,57 @@ const union AnimCmd gUnknown_085CE134[] = ANIMCMD_END, }; -const union AnimCmd *const gUnknown_085CE14C[] = +const union AnimCmd *const gLeerAnimTable[] = { - gUnknown_085CE134, + gLeerAnimCmds, }; -const struct SpriteTemplate gUnknown_085CE150 = +const struct SpriteTemplate gLeerSpriteTemplate = { .tileTag = ANIM_TAG_LEER, .paletteTag = ANIM_TAG_LEER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_085CE14C, + .anims = gLeerAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_815A7B0, + .callback = AnimLeer, }; -const union AnimCmd gUnknown_085CE168[] = +const union AnimCmd gLetterZAnimCmds[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_END, }; -const union AnimCmd *const gUnknown_085CE170[] = +const union AnimCmd *const gLetterZAnimTable[] = { - gUnknown_085CE168, + gLetterZAnimCmds, }; -const union AffineAnimCmd gUnknown_085CE174[] = +const union AffineAnimCmd gLetterZAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(-7, -7, -3, 16), AFFINEANIMCMD_FRAME(7, 7, 3, 16), AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd *const gUnknown_085CE18C[] = +const union AffineAnimCmd *const gLetterZAffineAnimTable[] = { - gUnknown_085CE174, + gLetterZAffineAnimCmds, }; -const struct SpriteTemplate gUnknown_085CE190 = +const struct SpriteTemplate gLetterZSpriteTemplate = { .tileTag = ANIM_TAG_LETTER_Z, .paletteTag = ANIM_TAG_LETTER_Z, .oam = &gOamData_AffineNormal_ObjNormal_32x32, - .anims = gUnknown_085CE170, + .anims = gLetterZAnimTable, .images = NULL, - .affineAnims = gUnknown_085CE18C, - .callback = sub_815A7EC, + .affineAnims = gLetterZAffineAnimTable, + .callback = AnimLetterZ, }; -const union AnimCmd gUnknown_085CE1A8[] = +const union AnimCmd gFangAnimCmds[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(16, 16), @@ -327,66 +327,66 @@ const union AnimCmd gUnknown_085CE1A8[] = ANIMCMD_END, }; -const union AnimCmd *const gUnknown_085CE1BC[] = +const union AnimCmd *const gFangAnimTable[] = { - gUnknown_085CE1A8, + gFangAnimCmds, }; -const union AffineAnimCmd gUnknown_085CE1C0[] = +const union AffineAnimCmd gFangAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(0x200, 0x200, 0, 0), AFFINEANIMCMD_FRAME(-0x20, -0x20, 0, 8), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_085CE1D8[] = +const union AffineAnimCmd *const gFangAffineAnimTable[] = { - gUnknown_085CE1C0, + gFangAffineAnimCmds, }; -const struct SpriteTemplate gUnknown_085CE1DC = +const struct SpriteTemplate gFangSpriteTemplate = { .tileTag = ANIM_TAG_FANG_ATTACK, .paletteTag = ANIM_TAG_FANG_ATTACK, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = gUnknown_085CE1BC, + .anims = gFangAnimTable, .images = NULL, - .affineAnims = gUnknown_085CE1D8, - .callback = sub_815A8AC, + .affineAnims = gFangAffineAnimTable, + .callback = AnimFang, }; -const union AffineAnimCmd gUnknown_085CE1F4[] = +const union AffineAnimCmd gSpotlightAffineAnimCmds1[] = { AFFINEANIMCMD_FRAME(0x0, 0x180, 0, 0), AFFINEANIMCMD_FRAME(0x10, 0x0, 0, 20), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_085CE20C[] = +const union AffineAnimCmd gSpotlightAffineAnimCmds2[] = { AFFINEANIMCMD_FRAME(0x140, 0x180, 0, 0), AFFINEANIMCMD_FRAME(-0x10, 0x0, 0, 19), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_085CE224[] = +const union AffineAnimCmd *const gSpotlightAffineAnimTable[] = { - gUnknown_085CE1F4, - gUnknown_085CE20C, + gSpotlightAffineAnimCmds1, + gSpotlightAffineAnimCmds2, }; -const struct SpriteTemplate gUnknown_085CE22C = +const struct SpriteTemplate gSpotlightSpriteTemplate = { .tileTag = ANIM_TAG_SPOTLIGHT, .paletteTag = ANIM_TAG_SPOTLIGHT, .oam = &gOamData_AffineDouble_ObjNormal_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_085CE224, - .callback = sub_815A934, + .affineAnims = gSpotlightAffineAnimTable, + .callback = AnimSpotlight, }; -const struct SpriteTemplate gUnknown_085CE244 = +const struct SpriteTemplate gClappingHandSpriteTemplate = { .tileTag = ANIM_TAG_TAG_HAND, .paletteTag = ANIM_TAG_TAG_HAND, @@ -394,10 +394,10 @@ const struct SpriteTemplate gUnknown_085CE244 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_815AAA4, + .callback = AnimClappingHand, }; -const struct SpriteTemplate gUnknown_085CE25C = +const struct SpriteTemplate gClappingHand2SpriteTemplate = { .tileTag = ANIM_TAG_TAG_HAND, .paletteTag = ANIM_TAG_TAG_HAND, @@ -405,10 +405,10 @@ const struct SpriteTemplate gUnknown_085CE25C = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_815ABD0, + .callback = AnimClappingHand2, }; -const union AnimCmd gUnknown_085CE274[] = +const union AnimCmd gRapidSpinAnimCmds[] = { ANIMCMD_FRAME(0, 2), ANIMCMD_FRAME(8, 2), @@ -416,20 +416,20 @@ const union AnimCmd gUnknown_085CE274[] = ANIMCMD_JUMP(0), }; -const union AnimCmd *const gUnknown_085CE284[] = +const union AnimCmd *const gRapidSpinAnimTable[] = { - gUnknown_085CE274, + gRapidSpinAnimCmds, }; -const struct SpriteTemplate gUnknown_085CE288 = +const struct SpriteTemplate gRapidSpinSpriteTemplate = { .tileTag = ANIM_TAG_RAPID_SPIN, .paletteTag = ANIM_TAG_RAPID_SPIN, .oam = &gOamData_AffineOff_ObjNormal_32x16, - .anims = gUnknown_085CE284, + .anims = gRapidSpinAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_815ACD0, + .callback = AnimRapidSpin, }; const union AffineAnimCmd gUnknown_085CE2A0[] = @@ -440,18 +440,18 @@ const union AffineAnimCmd gUnknown_085CE2A0[] = AFFINEANIMCMD_END, }; -const union AnimCmd gUnknown_085CE2C0[] = +const union AnimCmd gTriAttackTriangleAnimCmds[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_END, }; -const union AnimCmd *const gUnknown_085CE2C8[] = +const union AnimCmd *const gTriAttackTriangleAnimTable[] = { - gUnknown_085CE2C0, + gTriAttackTriangleAnimCmds, }; -const union AffineAnimCmd gUnknown_085CE2CC[] = +const union AffineAnimCmd gTriAttackTriangleAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(0, 0, 5, 40), AFFINEANIMCMD_FRAME(0, 0, 10, 10), @@ -460,23 +460,23 @@ const union AffineAnimCmd gUnknown_085CE2CC[] = AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd *const gUnknown_085CE2F4[] = +const union AffineAnimCmd *const gTriAttackTriangleAffineAnimTable[] = { - gUnknown_085CE2CC, + gTriAttackTriangleAffineAnimCmds, }; -const struct SpriteTemplate gUnknown_085CE2F8 = +const struct SpriteTemplate gTriAttackTriangleSpriteTemplate = { - .tileTag = ANIM_TAG_TRI_FORCE_TRIANGLE, - .paletteTag = ANIM_TAG_TRI_FORCE_TRIANGLE, + .tileTag = ANIM_TAG_TRI_ATTACK_TRIANGLE, + .paletteTag = ANIM_TAG_TRI_ATTACK_TRIANGLE, .oam = &gOamData_AffineDouble_ObjNormal_64x64, - .anims = gUnknown_085CE2C8, + .anims = gTriAttackTriangleAnimTable, .images = NULL, - .affineAnims = gUnknown_085CE2F4, - .callback = sub_815B27C, + .affineAnims = gTriAttackTriangleAffineAnimTable, + .callback = AnimTriAttackTriangle, }; -const union AnimCmd gUnknown_085CE310[] = +const union AnimCmd gEclipsingOrbAnimCmds[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(16, 3), @@ -489,23 +489,23 @@ const union AnimCmd gUnknown_085CE310[] = ANIMCMD_END, }; -const union AnimCmd *const gUnknown_085CE334[] = +const union AnimCmd *const gEclipsingOrbAnimTable[] = { - gUnknown_085CE310, + gEclipsingOrbAnimCmds, }; -const struct SpriteTemplate gUnknown_085CE338 = +const struct SpriteTemplate gEclipsingOrbSpriteTemplate = { .tileTag = ANIM_TAG_ECLIPSING_ORB, .paletteTag = ANIM_TAG_ECLIPSING_ORB, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_085CE334, + .anims = gEclipsingOrbAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimSpriteOnMonPos, }; -const union AffineAnimCmd gUnknown_085CE350[] = +const union AffineAnimCmd DefenseCurlDeformMonAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(-12, 20, 0, 8), AFFINEANIMCMD_FRAME(12, -20, 0, 8), @@ -513,7 +513,7 @@ const union AffineAnimCmd gUnknown_085CE350[] = AFFINEANIMCMD_END, }; -const struct SpriteTemplate gUnknown_085CE370 = +const struct SpriteTemplate gBatonPassPokeballSpriteTemplate = { .tileTag = ANIM_TAG_POKEBALL, .paletteTag = ANIM_TAG_POKEBALL, @@ -521,10 +521,10 @@ const struct SpriteTemplate gUnknown_085CE370 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_815B394, + .callback = AnimBatonPassPokeball, }; -const struct SpriteTemplate gUnknown_085CE388 = +const struct SpriteTemplate gWishStarSpriteTemplate = { .tileTag = ANIM_TAG_GOLD_STARS, .paletteTag = ANIM_TAG_GOLD_STARS, @@ -532,7 +532,7 @@ const struct SpriteTemplate gUnknown_085CE388 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_815B49C, + .callback = AnimWishStar, }; const struct SpriteTemplate gMiniTwinklingStarSpriteTemplate = @@ -546,7 +546,7 @@ const struct SpriteTemplate gMiniTwinklingStarSpriteTemplate = .callback = AnimMiniTwinklingStar, }; -const union AffineAnimCmd gUnknown_085CE3B8[] = +const union AffineAnimCmd gStockpileDeformMonAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(8, -8, 0, 12), AFFINEANIMCMD_FRAME(-16, 16, 0, 12), @@ -555,7 +555,7 @@ const union AffineAnimCmd gUnknown_085CE3B8[] = AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_085CE3E0[] = +const union AffineAnimCmd gSpitUpDeformMonAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(0, 6, 0, 20), AFFINEANIMCMD_FRAME(0, 0, 0, 20), @@ -566,7 +566,7 @@ const union AffineAnimCmd gUnknown_085CE3E0[] = AFFINEANIMCMD_END, }; -const struct SpriteTemplate gUnknown_085CE418 = +const struct SpriteTemplate gSwallowBlueOrbSpriteTemplate = { .tileTag = ANIM_TAG_BLUE_ORB, .paletteTag = ANIM_TAG_BLUE_ORB, @@ -574,10 +574,10 @@ const struct SpriteTemplate gUnknown_085CE418 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_815B70C, + .callback = AnimSwallowBlueOrb, }; -const union AffineAnimCmd gUnknown_085CE430[] = +const union AffineAnimCmd gSwallowDeformMonAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(0, 6, 0, 20), AFFINEANIMCMD_FRAME(0, 0, 0, 20), @@ -587,7 +587,7 @@ const union AffineAnimCmd gUnknown_085CE430[] = AFFINEANIMCMD_END, }; -const s8 gUnknown_085CE460[] = +const s8 gMorningSunLightBeamCoordsTable[] = { 0xE8, 0x18, @@ -595,44 +595,44 @@ const s8 gUnknown_085CE460[] = 0x00, }; -const union AnimCmd gUnknown_085CE464[] = +const union AnimCmd gGreenStarAnimCmds1[] = { ANIMCMD_FRAME(0, 6), ANIMCMD_FRAME(4, 6), ANIMCMD_JUMP(0), }; -const union AnimCmd gUnknown_085CE470[] = +const union AnimCmd gGreenStarAnimCmds2[] = { ANIMCMD_FRAME(8, 6), ANIMCMD_END, }; -const union AnimCmd gUnknown_085CE478[] = +const union AnimCmd gGreenStarAnimCmds3[] = { ANIMCMD_FRAME(12, 6), ANIMCMD_END, }; -const union AnimCmd *const gUnknown_085CE480[] = +const union AnimCmd *const gGreenStarAnimTable[] = { - gUnknown_085CE464, - gUnknown_085CE470, - gUnknown_085CE478, + gGreenStarAnimCmds1, + gGreenStarAnimCmds2, + gGreenStarAnimCmds3, }; -const struct SpriteTemplate gUnknown_085CE48C = +const struct SpriteTemplate gGreenStarSpriteTemplate = { .tileTag = ANIM_TAG_GREEN_STAR, .paletteTag = ANIM_TAG_GREEN_STAR, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = gUnknown_085CE480, + .anims = gGreenStarAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_815BE04, + .callback = AnimGreenStar, }; -const s8 gUnknown_085CE4A4[] = +const s8 gDoomDesireLightBeamCoordTable[] = { 0x78, 0x50, @@ -640,7 +640,7 @@ const s8 gUnknown_085CE4A4[] = 0x00, }; -const u8 gUnknown_085CE4A8[] = +const u8 gDoomDesireLightBeamDelayTable[] = { 0, 0, @@ -762,7 +762,7 @@ const struct SpriteTemplate gFlatterSpotlightSpriteTemplate = .oam = &gOamData_AffineDouble_ObjNormal_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_085CE224, + .affineAnims = gSpotlightAffineAnimTable, .callback = AnimFlatterSpotlight, }; @@ -888,7 +888,7 @@ const union AffineAnimCmd gFacadeSquishAffineAnimCmds[] = AFFINEANIMCMD_END, }; -const struct SpriteTemplate gFacadeSweatDrop = +const struct SpriteTemplate gFacadeSweatDropSpriteTemplate = { .tileTag = ANIM_TAG_SWEAT_DROP, .paletteTag = ANIM_TAG_SWEAT_DROP, @@ -896,7 +896,7 @@ const struct SpriteTemplate gFacadeSweatDrop = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_815DEBC, + .callback = AnimFacadeSweatDrop, }; const u16 gFacadeBlendColors[] = { @@ -1179,7 +1179,7 @@ const union AffineAnimCmd gSlackOffSquishAffineAnimCmds[] = AFFINEANIMCMD_END, }; -void sub_815A0D4(struct Sprite *sprite) +void AnimBlackSmoke(struct Sprite *sprite) { sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; @@ -1190,10 +1190,10 @@ void sub_815A0D4(struct Sprite *sprite) sprite->data[0] = -gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[4]; - sprite->callback = sub_815A114; + sprite->callback = AnimBlackSmokeStep; } -static void sub_815A114(struct Sprite *sprite) +static void AnimBlackSmokeStep(struct Sprite *sprite) { if (sprite->data[1] > 0) { @@ -1208,43 +1208,43 @@ static void sub_815A114(struct Sprite *sprite) } } -void sub_815A160(u8 taskId) +void AnimTask_SmokescreenImpact(u8 taskId) { - sub_807521C( + SmokescreenImpact( GetBattlerSpriteCoord(gBattleAnimTarget, 2) + 8, GetBattlerSpriteCoord(gBattleAnimTarget, 3) + 8, 0); DestroyAnimVisualTask(taskId); } -void sub_815A1B0(struct Sprite *sprite) +void AnimWhiteHalo(struct Sprite *sprite) { sprite->data[0] = 90; sprite->callback = WaitAnimForDuration; sprite->data[1] = 7; - StoreSpriteCallbackInData6(sprite, sub_815A1F4); + StoreSpriteCallbackInData6(sprite, AnimWhiteHalo_Step1); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[1], 16 - sprite->data[1])); } -static void sub_815A1F4(struct Sprite *sprite) +static void AnimWhiteHalo_Step1(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[1], 16 - sprite->data[1])); if (--sprite->data[1] < 0) { sprite->invisible = 1; - sprite->callback = sub_815A234; + sprite->callback = AnimWhiteHalo_Step2; } } -static void sub_815A234(struct Sprite *sprite) +static void AnimWhiteHalo_Step2(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0); DestroyAnimSprite(sprite); } -void sub_815A254(struct Sprite *sprite) +void AnimTealAlert(struct Sprite *sprite) { u16 rotation; u8 x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); @@ -1266,15 +1266,15 @@ void sub_815A254(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void sub_815A2F0(struct Sprite *sprite) +void AnimMeanLookEye(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); sprite->data[0] = 4; - sprite->callback = sub_815A31C; + sprite->callback = AnimMeanLookEye_Step1; } -static void sub_815A31C(struct Sprite *sprite) +static void AnimMeanLookEye_Step1(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[0], 16 - sprite->data[0])); @@ -1294,22 +1294,22 @@ static void sub_815A31C(struct Sprite *sprite) sprite->data[2] = 0; sprite->invisible = 1; sprite->affineAnimPaused = 1; - sprite->callback = sub_815A3AC; + sprite->callback = AnimMeanLookEye_Step2; } } -static void sub_815A3AC(struct Sprite *sprite) +static void AnimMeanLookEye_Step2(struct Sprite *sprite) { if (sprite->data[2]++ > 9) { sprite->invisible = 0; sprite->affineAnimPaused = 0; if (sprite->affineAnimEnded) - sprite->callback = sub_815A3F0; + sprite->callback = AnimMeanLookEye_Step3; } } -static void sub_815A3F0(struct Sprite *sprite) +static void AnimMeanLookEye_Step3(struct Sprite *sprite) { switch (sprite->data[3]) { @@ -1344,11 +1344,11 @@ static void sub_815A3F0(struct Sprite *sprite) sprite->data[1] = 0; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[0], 0)); - sprite->callback = sub_815A49C; + sprite->callback = AnimMeanLookEye_Step4; } } -static void sub_815A49C(struct Sprite *sprite) +static void AnimMeanLookEye_Step4(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[0], 16 - sprite->data[0])); @@ -1369,17 +1369,17 @@ static void sub_815A49C(struct Sprite *sprite) } } -void sub_815A504(u8 taskId) +void AnimTask_SetPsychicBackground(u8 taskId) { - gTasks[taskId].func = sub_815A52C; + gTasks[taskId].func = SetPsychicBackground_Step; gAnimVisualTaskCount--; } -static void sub_815A52C(u8 taskId) +static void SetPsychicBackground_Step(u8 taskId) { int i; u16 lastColor; - u8 paletteIndex = sub_80A6D94(); + u8 paletteIndex = GetBattleBgPaletteNum(); if (++gTasks[taskId].data[5] == 4) { @@ -1395,17 +1395,17 @@ static void sub_815A52C(u8 taskId) DestroyTask(taskId); } -void sub_815A5C8(u8 taskId) +void AnimTask_FadeScreenToWhite(u8 taskId) { - gTasks[taskId].func = sub_815A5F0; + gTasks[taskId].func = FadeScreenToWhite_Step; gAnimVisualTaskCount--; } -static void sub_815A5F0(u8 taskId) +static void FadeScreenToWhite_Step(u8 taskId) { int i; u16 lastColor; - u8 paletteIndex = sub_80A6D94(); + u8 paletteIndex = GetBattleBgPaletteNum(); if (++gTasks[taskId].data[5] == 4) { @@ -1426,7 +1426,7 @@ static void sub_815A5F0(u8 taskId) DestroyTask(taskId); } -void sub_815A6C4(struct Sprite *sprite) +void AnimSpikes(struct Sprite *sprite) { u16 x; u16 y; @@ -1443,21 +1443,21 @@ void sub_815A6C4(struct Sprite *sprite) sprite->data[5] = -50; InitAnimArcTranslation(sprite); - sprite->callback = sub_815A73C; + sprite->callback = AnimSpikes_Step1; } -static void sub_815A73C(struct Sprite *sprite) +static void AnimSpikes_Step1(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) { sprite->data[0] = 30; sprite->data[1] = 0; sprite->callback = WaitAnimForDuration; - StoreSpriteCallbackInData6(sprite, sub_815A76C); + StoreSpriteCallbackInData6(sprite, AnimSpikes_Step2); } } -static void sub_815A76C(struct Sprite *sprite) +static void AnimSpikes_Step2(struct Sprite *sprite) { if (sprite->data[1] & 1) sprite->invisible ^= 1; @@ -1466,7 +1466,7 @@ static void sub_815A76C(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_815A7B0(struct Sprite *sprite) +void AnimLeer(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); @@ -1475,7 +1475,7 @@ void sub_815A7B0(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void sub_815A7EC(struct Sprite *sprite) +void AnimLetterZ(struct Sprite *sprite) { int var0; if (sprite->data[0] == 0) @@ -1513,7 +1513,7 @@ void sub_815A7EC(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_815A8AC(struct Sprite *sprite) +void AnimFang(struct Sprite *sprite) { if (sprite->animEnded) DestroyAnimSprite(sprite); @@ -1539,7 +1539,7 @@ void AnimTask_IsHealingMove(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_815A934(struct Sprite *sprite) +void AnimSpotlight(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR | WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ); SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJWIN_ON); @@ -1552,10 +1552,10 @@ void sub_815A934(struct Sprite *sprite) sprite->oam.objMode = ST_OAM_OBJ_WINDOW; sprite->invisible = 1; - sprite->callback = sub_815A9A0; + sprite->callback = AnimSpotlight_Step1; } -static void sub_815A9A0(struct Sprite *sprite) +static void AnimSpotlight_Step1(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -1591,20 +1591,20 @@ static void sub_815A9A0(struct Sprite *sprite) if (sprite->affineAnimEnded) { sprite->invisible = 1; - sprite->callback = sub_815AA6C; + sprite->callback = AnimSpotlight_Step2; } break; } } -static void sub_815AA6C(struct Sprite *sprite) +static void AnimSpotlight_Step2(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR | WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR); SetGpuReg(REG_OFFSET_DISPCNT, GetGpuReg(REG_OFFSET_DISPCNT) ^ DISPCNT_OBJWIN_ON); DestroyAnimSprite(sprite); } -void sub_815AAA4(struct Sprite *sprite) +void AnimClappingHand(struct Sprite *sprite) { if (gBattleAnimArgs[3] == 0) { @@ -1633,10 +1633,10 @@ void sub_815AAA4(struct Sprite *sprite) if (sprite->data[3] != 255) sprite->data[3] = gBattleAnimArgs[2]; - sprite->callback = sub_815AB5C; + sprite->callback = AnimClappingHand_Step; } -static void sub_815AB5C(struct Sprite *sprite) +static void AnimClappingHand_Step(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -1665,14 +1665,14 @@ static void sub_815AB5C(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_815ABD0(struct Sprite *sprite) +void AnimClappingHand2(struct Sprite *sprite) { sprite->oam.objMode = ST_OAM_OBJ_WINDOW; sprite->data[3] = 255; - sub_815AAA4(sprite); + AnimClappingHand(sprite); } -void sub_815ABEC(u8 taskId) +void AnimTask_CreateSpotlight(u8 taskId) { if (IsContest()) { @@ -1695,7 +1695,7 @@ void sub_815ABEC(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_815AC8C(u8 taskId) +void AnimTask_RemoveSpotlight(u8 taskId) { SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); gBattle_WIN1H = 0; @@ -1706,7 +1706,7 @@ void sub_815AC8C(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_815ACD0(struct Sprite *sprite) +void AnimRapidSpin(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { @@ -1726,10 +1726,10 @@ void sub_815ACD0(struct Sprite *sprite) sprite->data[2] = gBattleAnimArgs[4]; sprite->data[3] = gBattleAnimArgs[5]; sprite->data[4] = gBattleAnimArgs[3]; - sprite->callback = sub_815AD4C; + sprite->callback = AnimRapidSpin_Step; } -static void sub_815AD4C(struct Sprite *sprite) +static void AnimRapidSpin_Step(struct Sprite *sprite) { sprite->data[1] = (sprite->data[1] + sprite->data[2]) & 0xFF; sprite->pos2.x = gSineTable[sprite->data[1]] >> 4; @@ -1747,7 +1747,7 @@ static void sub_815AD4C(struct Sprite *sprite) } } -void sub_815ADB0(u8 taskId) +void AnimTask_RapinSpinMonElevation(u8 taskId) { s16 var0; u8 toBG2; @@ -1828,10 +1828,10 @@ void sub_815ADB0(u8 taskId) scanlineParams.unused9 = 0; ScanlineEffect_SetParams(scanlineParams); - task->func = sub_815AED8; + task->func = RapinSpinMonElevation_Step; } -static void sub_815AED8(u8 taskId) +static void RapinSpinMonElevation_Step(u8 taskId) { s16 i; struct Task *task = &gTasks[taskId]; @@ -1890,7 +1890,7 @@ static void sub_815AED8(u8 taskId) } } -void sub_815AFF0(u8 taskId) +void AnimTask_TormentAttacker(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1902,10 +1902,10 @@ void sub_815AFF0(u8 taskId) task->data[5] = -20; task->data[6] = 0; task->data[15] = GetAnimBattlerSpriteId(ANIM_ATTACKER); - task->func = sub_815B054; + task->func = TormentAttacker_Step; } -static void sub_815B054(u8 taskId) +static void TormentAttacker_Step(u8 taskId) { int var0, var1; s16 x, y; @@ -1987,7 +1987,7 @@ static void sub_815B054(u8 taskId) gSprites[i].data[0] = taskId; gSprites[i].data[1] = 6; StartSpriteAnim(&gSprites[i], 2); - gSprites[i].callback = sub_815B23C; + gSprites[i].callback = TormentAttacker_Callback; if (++j == 6) break; @@ -2004,7 +2004,7 @@ static void sub_815B054(u8 taskId) } } -static void sub_815B23C(struct Sprite *sprite) +static void TormentAttacker_Callback(struct Sprite *sprite) { if (sprite->animEnded) { @@ -2013,7 +2013,7 @@ static void sub_815B23C(struct Sprite *sprite) } } -void sub_815B27C(struct Sprite *sprite) +void AnimTriAttackTriangle(struct Sprite *sprite) { if (sprite->data[0] == 0) InitSpritePosToAnimAttacker(sprite, FALSE); @@ -2044,12 +2044,12 @@ void sub_815B27C(struct Sprite *sprite) } } -void sub_815B338(u8 taskId) +void AnimTask_DefenseCurlDeformMon(u8 taskId) { switch (gTasks[taskId].data[0]) { case 0: - PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_ATTACKER), gUnknown_085CE350); + PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_ATTACKER), DefenseCurlDeformMonAffineAnimCmds); gTasks[taskId].data[0]++; break; case 1: @@ -2059,7 +2059,7 @@ void sub_815B338(u8 taskId) } } -void sub_815B394(struct Sprite *sprite) +void AnimBatonPassPokeball(struct Sprite *sprite) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); @@ -2102,7 +2102,7 @@ void sub_815B394(struct Sprite *sprite) } } -void sub_815B49C(struct Sprite *sprite) +void AnimWishStar(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) sprite->pos1.x = -16; @@ -2110,10 +2110,10 @@ void sub_815B49C(struct Sprite *sprite) sprite->pos1.x = 256; sprite->pos1.y = 0; - sprite->callback = sub_815B4D4; + sprite->callback = AnimWishStar_Step; } -static void sub_815B4D4(struct Sprite *sprite) +static void AnimWishStar_Step(struct Sprite *sprite) { u32 newX; @@ -2156,10 +2156,10 @@ void AnimMiniTwinklingStar(struct Sprite *sprite) y = -y; sprite->pos2.y = y; - sprite->callback = sub_815B5D0; + sprite->callback = AnimMiniTwinklingStar_Step; } -static void sub_815B5D0(struct Sprite *sprite) +static void AnimMiniTwinklingStar_Step(struct Sprite *sprite) { if (++sprite->data[0] < 30) { @@ -2187,11 +2187,11 @@ static void sub_815B5D0(struct Sprite *sprite) DestroySprite(sprite); } -void sub_815B65C(u8 taskId) +void AnimTask_StockpileDeformMon(u8 taskId) { if (!gTasks[taskId].data[0]) { - PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_ATTACKER), gUnknown_085CE3B8); + PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_ATTACKER), gStockpileDeformMonAffineAnimCmds); gTasks[taskId].data[0]++; } else @@ -2201,11 +2201,11 @@ void sub_815B65C(u8 taskId) } } -void sub_815B6B4(u8 taskId) +void AnimTask_SpitUpDeformMon(u8 taskId) { if (!gTasks[taskId].data[0]) { - PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_ATTACKER), gUnknown_085CE3E0); + PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_ATTACKER), gSpitUpDeformMonAffineAnimCmds); gTasks[taskId].data[0]++; } else @@ -2215,7 +2215,7 @@ void sub_815B6B4(u8 taskId) } } -void sub_815B70C(struct Sprite *sprite) +void AnimSwallowBlueOrb(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -2234,11 +2234,11 @@ void sub_815B70C(struct Sprite *sprite) } } -void sub_815B778(u8 taskId) +void AnimTask_SwallowDeformMon(u8 taskId) { if (!gTasks[taskId].data[0]) { - PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_ATTACKER), gUnknown_085CE430); + PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_ATTACKER), gSwallowDeformMonAffineAnimCmds); gTasks[taskId].data[0]++; } else @@ -2248,7 +2248,7 @@ void sub_815B778(u8 taskId) } } -void sub_815B7D0(u8 taskId) +void AnimTask_TransformMon(u8 taskId) { int i, j; u8 position; @@ -2361,19 +2361,19 @@ void sub_815B7D0(u8 taskId) } } -void sub_815BB18(u8 taskId) +void AnimTask_IsMonInvisible(u8 taskId) { gBattleAnimArgs[7] = gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].invisible; DestroyAnimVisualTask(taskId); } -void sub_815BB58(u8 taskId) +void AnimTask_CastformGfxChange(u8 taskId) { HandleSpeciesGfxDataChange(gBattleAnimAttacker, gBattleAnimTarget, TRUE); DestroyAnimVisualTask(taskId); } -void sub_815BB84(u8 taskId) +void AnimTask_MorningSunLightBeam(u8 taskId) { struct BattleAnimBgData animBg; @@ -2434,7 +2434,7 @@ void sub_815BB84(u8 taskId) if (!gTasks[taskId].data[1]) { - gBattle_BG1_X = gUnknown_085CE460[gTasks[taskId].data[2]] + gTasks[taskId].data[10]; + gBattle_BG1_X = gMorningSunLightBeamCoordsTable[gTasks[taskId].data[2]] + gTasks[taskId].data[10]; if (++gTasks[taskId].data[2] == 4) gTasks[taskId].data[0] = 4; else @@ -2465,7 +2465,7 @@ void sub_815BB84(u8 taskId) } } -void sub_815BE04(struct Sprite *sprite) +void AnimGreenStar(struct Sprite *sprite) { s16 xOffset; u8 spriteId1; @@ -2481,8 +2481,8 @@ void sub_815BE04(struct Sprite *sprite) sprite->data[1] = gBattleAnimArgs[0]; sprite->data[2] = gBattleAnimArgs[1]; - spriteId1 = CreateSprite(&gUnknown_085CE48C, sprite->pos1.x, sprite->pos1.y, sprite->subpriority + 1); - spriteId2 = CreateSprite(&gUnknown_085CE48C, sprite->pos1.x, sprite->pos1.y, sprite->subpriority + 1); + spriteId1 = CreateSprite(&gGreenStarSpriteTemplate, sprite->pos1.x, sprite->pos1.y, sprite->subpriority + 1); + spriteId2 = CreateSprite(&gGreenStarSpriteTemplate, sprite->pos1.x, sprite->pos1.y, sprite->subpriority + 1); StartSpriteAnim(&gSprites[spriteId1], 1); StartSpriteAnim(&gSprites[spriteId2], 2); @@ -2494,15 +2494,15 @@ void sub_815BE04(struct Sprite *sprite) gSprites[spriteId2].data[7] = -1; gSprites[spriteId1].invisible = 1; gSprites[spriteId2].invisible = 1; - gSprites[spriteId1].callback = sub_815C050; - gSprites[spriteId2].callback = sub_815C050; + gSprites[spriteId1].callback = AnimGreenStar_Callback; + gSprites[spriteId2].callback = AnimGreenStar_Callback; sprite->data[6] = spriteId1; sprite->data[7] = spriteId2; - sprite->callback = sub_815BF44; + sprite->callback = AnimGreenStar_Step1; } -static void sub_815BF44(struct Sprite *sprite) +static void AnimGreenStar_Step1(struct Sprite *sprite) { s16 delta = sprite->data[3] + sprite->data[2]; sprite->pos2.y -= delta >> 8; @@ -2523,11 +2523,11 @@ static void sub_815BF44(struct Sprite *sprite) if (--sprite->data[1] == -1) { sprite->invisible = 1; - sprite->callback = sub_815BFF4; + sprite->callback = AnimGreenStar_Step2; } } -static void sub_815BFF4(struct Sprite *sprite) +static void AnimGreenStar_Step2(struct Sprite *sprite) { if (gSprites[sprite->data[6]].callback == SpriteCallbackDummy && gSprites[sprite->data[7]].callback == SpriteCallbackDummy) @@ -2538,7 +2538,7 @@ static void sub_815BFF4(struct Sprite *sprite) } } -static void sub_815C050(struct Sprite *sprite) +static void AnimGreenStar_Callback(struct Sprite *sprite) { if (!sprite->invisible) { @@ -2554,7 +2554,7 @@ static void sub_815C050(struct Sprite *sprite) } } -void sub_815C0A4(u8 taskId) +void AnimTask_DoomDesireLightBeam(u8 taskId) { struct BattleAnimBgData animBg; @@ -2609,9 +2609,9 @@ void sub_815C0A4(u8 taskId) case 1: gTasks[taskId].data[3] = 0; if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_OPPONENT) - gBattle_BG1_X = gTasks[taskId].data[10] + gUnknown_085CE4A4[gTasks[taskId].data[2]]; + gBattle_BG1_X = gTasks[taskId].data[10] + gDoomDesireLightBeamCoordTable[gTasks[taskId].data[2]]; else - gBattle_BG1_X = gTasks[taskId].data[10] - gUnknown_085CE4A4[gTasks[taskId].data[2]]; + gBattle_BG1_X = gTasks[taskId].data[10] - gDoomDesireLightBeamCoordTable[gTasks[taskId].data[2]]; if (++gTasks[taskId].data[2] == 5) gTasks[taskId].data[0] = 5; @@ -2627,7 +2627,7 @@ void sub_815C0A4(u8 taskId) gTasks[taskId].data[0]++; break; case 3: - if (++gTasks[taskId].data[3] > gUnknown_085CE4A8[gTasks[taskId].data[2]]) + if (++gTasks[taskId].data[3] > gDoomDesireLightBeamDelayTable[gTasks[taskId].data[2]]) gTasks[taskId].data[0]++; break; case 4: @@ -3808,7 +3808,7 @@ static void CreateSweatDroplets(u8 taskId, bool8 arg1) for (i = 0; i < 4; i++) { - u8 spriteId = CreateSprite(&gFacadeSweatDrop, xCoords[i], yCoords[i & 1], task->data[6] - 5); + u8 spriteId = CreateSprite(&gFacadeSweatDropSpriteTemplate, xCoords[i], yCoords[i & 1], task->data[6] - 5); if (spriteId != MAX_SPRITES) { gSprites[spriteId].data[0] = 0; @@ -3821,7 +3821,7 @@ static void CreateSweatDroplets(u8 taskId, bool8 arg1) } } -void sub_815DEBC(struct Sprite *sprite) +void AnimFacadeSweatDrop(struct Sprite *sprite) { sprite->pos1.x += sprite->data[1]; sprite->pos1.y += sprite->data[2]; @@ -4175,10 +4175,10 @@ void AnimSmellingSaltsHand(struct Sprite *sprite) sprite->pos1.x = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_RIGHT) + 8; } - sprite->callback = sub_815E784; + sprite->callback = AnimSmellingSaltsHand_Step; } -static void sub_815E784(struct Sprite *sprite) +static void AnimSmellingSaltsHand_Step(struct Sprite *sprite) { switch (sprite->data[0]) { diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c index ea5184c53..43890f24a 100644 --- a/src/battle_anim_mons.c +++ b/src/battle_anim_mons.c @@ -966,7 +966,7 @@ void sub_80A6D60(struct BattleAnimBgData *unk, const void *src, u32 arg2) CopyBgTilemapBufferToVram(unk->bgId); } -u8 sub_80A6D94(void) +u8 GetBattleBgPaletteNum(void) { if (IsContest()) return 1; @@ -1353,7 +1353,7 @@ u32 sub_80A75AC(u8 battleBackground, u8 attacker, u8 target, u8 attackerPartner, if (!IsContest()) selectedPalettes = 0xe; else - selectedPalettes = 1 << sub_80A6D94(); + selectedPalettes = 1 << GetBattleBgPaletteNum(); } if (attacker) { diff --git a/src/battle_anim_special.c b/src/battle_anim_special.c index 18d6700a8..6ff5ee893 100755 --- a/src/battle_anim_special.c +++ b/src/battle_anim_special.c @@ -403,7 +403,7 @@ const struct SpriteTemplate gBattleAnimSpriteTemplate_085E535C = .callback = sub_817330C, }; -extern const struct SpriteTemplate gUnknown_085CE388; +extern const struct SpriteTemplate gWishStarSpriteTemplate; extern const struct SpriteTemplate gMiniTwinklingStarSpriteTemplate; void unref_sub_8170478(u8 taskId) @@ -2081,7 +2081,7 @@ static void sub_8172FEC(u8 taskId) state = gTasks[taskId].data[11]; if (state == 0) { - spriteId = CreateSprite(&gUnknown_085CE388, x, y, 5); + spriteId = CreateSprite(&gWishStarSpriteTemplate, x, y, 5); } else if (state >= 0 && gTasks[taskId].data[11] < 4) { diff --git a/src/battle_arena.c b/src/battle_arena.c index f785fa7c3..c3d227376 100644 --- a/src/battle_arena.c +++ b/src/battle_arena.c @@ -22,6 +22,7 @@ #include "constants/songs.h" #include "constants/battle_string_ids.h" #include "constants/battle_frontier.h" +#include "constants/frontier_util.h" #include "constants/items.h" #include "constants/moves.h" #include "constants/rgb.h" @@ -786,14 +787,14 @@ static void InitArenaChallenge(void) bool32 isCurrent; u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; - gSaveBlock2Ptr->frontier.field_CA8 = 0; + gSaveBlock2Ptr->frontier.challengeStatus = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; - gSaveBlock2Ptr->frontier.field_CA9_a = 0; + gSaveBlock2Ptr->frontier.challengePaused = FALSE; gSaveBlock2Ptr->frontier.field_CA9_b = 0; if (lvlMode != FRONTIER_LVL_50) - isCurrent = gSaveBlock2Ptr->frontier.field_CDC & 0x80; + isCurrent = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_ARENA_OPEN; else - isCurrent = gSaveBlock2Ptr->frontier.field_CDC & 0x40; + isCurrent = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_ARENA_50; if (!isCurrent) gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode] = 0; @@ -816,9 +817,9 @@ static void GetArenaData(void) break; case 2: if (lvlMode != FRONTIER_LVL_50) - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_CDC & 0x80; + gSpecialVar_Result = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_ARENA_OPEN; else - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_CDC & 0x40; + gSpecialVar_Result = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_ARENA_50; break; } } @@ -839,16 +840,16 @@ static void SetArenaData(void) if (lvlMode != FRONTIER_LVL_50) { if (gSpecialVar_0x8006) - gSaveBlock2Ptr->frontier.field_CDC |= 0x80; + gSaveBlock2Ptr->frontier.winStreakActiveFlags |= STREAK_ARENA_OPEN; else - gSaveBlock2Ptr->frontier.field_CDC &= ~(0x80); + gSaveBlock2Ptr->frontier.winStreakActiveFlags &= ~(STREAK_ARENA_OPEN); } else { if (gSpecialVar_0x8006) - gSaveBlock2Ptr->frontier.field_CDC |= 0x40; + gSaveBlock2Ptr->frontier.winStreakActiveFlags |= STREAK_ARENA_50; else - gSaveBlock2Ptr->frontier.field_CDC &= ~(0x40); + gSaveBlock2Ptr->frontier.winStreakActiveFlags &= ~(STREAK_ARENA_50); } break; } @@ -856,10 +857,10 @@ static void SetArenaData(void) static void sub_81A5AC4(void) { - gSaveBlock2Ptr->frontier.field_CA8 = gSpecialVar_0x8005; + gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); - gSaveBlock2Ptr->frontier.field_CA9_a = 1; - sub_81A4C30(); + gSaveBlock2Ptr->frontier.challengePaused = TRUE; + SaveGameFrontier(); } static void SetArenaRewardItem(void) diff --git a/src/battle_dome.c b/src/battle_dome.c index 9c63bba42..fc254e74d 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -30,6 +30,7 @@ #include "scanline_effect.h" #include "script_pokemon_util_80F87D8.h" #include "graphics.h" +#include "constants/frontier_util.h" #include "constants/species.h" #include "constants/moves.h" #include "constants/trainers.h" @@ -1103,16 +1104,16 @@ static void (* const sBattleDomeFunctions[])(void) = InitDomeTrainers, }; -static const u32 gUnknown_0860D0EC[][2] = +static const u32 sWinStreakFlags[][2] = { - {0x00000004, 0x00000008}, - {0x00100000, 0x00200000}, + {STREAK_DOME_SINGLES_50, STREAK_DOME_SINGLES_OPEN}, + {STREAK_DOME_DOUBLES_50, STREAK_DOME_DOUBLES_OPEN}, }; -static const u32 gUnknown_0860D0FC[][2] = +static const u32 sWinStreakMasks[][2] = { - {0xfffffffb, 0xfffffff7}, - {0xffefffff, 0xffdfffff}, + {~(STREAK_DOME_SINGLES_50), ~(STREAK_DOME_SINGLES_OPEN)}, + {~(STREAK_DOME_DOUBLES_50), ~(STREAK_DOME_DOUBLES_OPEN)}, }; static const u8 sIdToOpponentId[DOME_TOURNAMENT_TRAINERS_COUNT][DOME_ROUNDS_COUNT] = @@ -2261,11 +2262,11 @@ static void InitDomeChallenge(void) u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); - gSaveBlock2Ptr->frontier.field_CA8 = 0; + gSaveBlock2Ptr->frontier.challengeStatus = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; - gSaveBlock2Ptr->frontier.field_CA9_a = 0; + gSaveBlock2Ptr->frontier.challengePaused = FALSE; gSaveBlock2Ptr->frontier.field_CA9_b = 0; - if (!(gSaveBlock2Ptr->frontier.field_CDC & gUnknown_0860D0EC[battleMode][lvlMode])) + if (!(gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode])) gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode] = 0; SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); @@ -2283,7 +2284,7 @@ static void GetDomeData(void) gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode]; break; case 1: - gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.field_CDC & gUnknown_0860D0EC[battleMode][lvlMode]) != 0); + gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode]) != 0); break; case 2: gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_0; @@ -2331,8 +2332,8 @@ static void GetDomeData(void) break; case 8: ClearSelectedPartyOrder(); - gSelectedOrderFromParty[0] = gSaveBlock2Ptr->frontier.field_CB0; - gSelectedOrderFromParty[1] = gSaveBlock2Ptr->frontier.field_CB0 >> 8; + gSelectedOrderFromParty[0] = gSaveBlock2Ptr->frontier.selectedPartyMons[3]; + gSelectedOrderFromParty[1] = gSaveBlock2Ptr->frontier.selectedPartyMons[3] >> 8; break; case 9: gSpecialVar_Result = (gSaveBlock2Ptr->frontier.field_D0A * 2) - 3 + gSaveBlock2Ptr->frontier.field_D0B; @@ -2352,9 +2353,9 @@ static void SetDomeData(void) break; case 1: if (gSpecialVar_0x8006) - gSaveBlock2Ptr->frontier.field_CDC |= gUnknown_0860D0EC[battleMode][lvlMode]; + gSaveBlock2Ptr->frontier.winStreakActiveFlags |= sWinStreakFlags[battleMode][lvlMode]; else - gSaveBlock2Ptr->frontier.field_CDC &= gUnknown_0860D0FC[battleMode][lvlMode]; + gSaveBlock2Ptr->frontier.winStreakActiveFlags &= sWinStreakMasks[battleMode][lvlMode]; break; case 2: gSaveBlock2Ptr->frontier.field_D08_0 = gSpecialVar_0x8006; @@ -2401,7 +2402,7 @@ static void SetDomeData(void) } break; case 8: - gSaveBlock2Ptr->frontier.field_CB0 = T1_READ_16(gSelectedOrderFromParty); + gSaveBlock2Ptr->frontier.selectedPartyMons[3] = T1_READ_16(gSelectedOrderFromParty); break; } } @@ -2431,12 +2432,12 @@ static void InitDomeTrainers(void) gSaveBlock2Ptr->frontier.domeTrainers[0].eliminatedAt = 0; gSaveBlock2Ptr->frontier.domeTrainers[0].unk3 = 0; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { gSaveBlock2Ptr->frontier.domeMonIds[0][i] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_SPECIES, NULL); for (j = 0; j < MAX_MON_MOVES; j++) gSaveBlock2Ptr->frontier.field_EFC[i].moves[j] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_MOVE1 + j, NULL); - for (j = 0; j < 6; j++) + for (j = 0; j < NUM_STATS; j++) gSaveBlock2Ptr->frontier.field_EFC[i].evs[j] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_HP_EV + j, NULL); gSaveBlock2Ptr->frontier.field_EFC[i].nature = GetNature(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1]); @@ -2499,9 +2500,9 @@ static void InitDomeTrainers(void) monTypesBits = 0; statSums[0] = 0; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { - trainerId = gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1; // Great variable choice, gamefreak. + trainerId = gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1; statSums[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_ATK, NULL); statSums[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_DEF, NULL); statSums[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_SPATK, NULL); @@ -2575,7 +2576,7 @@ static void InitDomeTrainers(void) } } - if (sub_81A3610()) + if (GetFrontierBrainStatus() != FRONTIER_BRAIN_NOT_READY) { for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) { @@ -3328,10 +3329,10 @@ static void SetDomeOpponentGraphicsId(void) static void sub_81902F8(void) { - gSaveBlock2Ptr->frontier.field_CA8 = gSpecialVar_0x8005; + gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); - gSaveBlock2Ptr->frontier.field_CA9_a = 1; - sub_81A4C30(); + gSaveBlock2Ptr->frontier.challengePaused = TRUE; + SaveGameFrontier(); } static void UpdateDomeStreaks(void) @@ -6016,7 +6017,7 @@ static void sub_8194F58(void) species[0] = 0; species[1] = 0; species[2] = 0; - if ((gSaveBlock2Ptr->frontier.field_D0A != -gSaveBlock2Ptr->frontier.field_D0B) && gSaveBlock2Ptr->frontier.field_CA8 != 1) + if ((gSaveBlock2Ptr->frontier.field_D0A != -gSaveBlock2Ptr->frontier.field_D0B) && gSaveBlock2Ptr->frontier.challengeStatus != CHALLENGE_STATUS_SAVING) return; statSums = AllocZeroed(sizeof(u16) * DOME_TOURNAMENT_TRAINERS_COUNT); diff --git a/src/battle_factory.c b/src/battle_factory.c index bc47b1fda..cc1fd12b7 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -11,6 +11,7 @@ #include "constants/species.h" #include "constants/battle_ai.h" #include "constants/battle_frontier.h" +#include "constants/frontier_util.h" #include "constants/layouts.h" #include "constants/trainers.h" #include "constants/moves.h" @@ -131,16 +132,16 @@ static void (* const sBattleFactoryFunctions[])(void) = RestorePlayerPartyHeldItems, }; -static const u32 gUnknown_08612164[][2] = +static const u32 sWinStreakFlags[][2] = { - {0x100, 0x200}, - {0x1000000, 0x2000000}, + {STREAK_FACTORY_SINGLES_50, STREAK_FACTORY_SINGLES_OPEN}, + {STREAK_FACTORY_DOUBLES_50, STREAK_FACTORY_DOUBLES_OPEN}, }; -static const u32 gUnknown_08612174[][2] = +static const u32 sWinStreakMasks[][2] = { - {0xfffffeff, 0xfffffdff}, - {0xfeffffff, 0xfdffffff}, + {~(STREAK_FACTORY_SINGLES_50), ~(STREAK_FACTORY_SINGLES_OPEN)}, + {~(STREAK_FACTORY_DOUBLES_50), ~(STREAK_FACTORY_DOUBLES_OPEN)}, }; static const u8 sFixedIVTable[][2] = @@ -187,11 +188,11 @@ static void InitFactoryChallenge(void) u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); - gSaveBlock2Ptr->frontier.field_CA8 = 0; + gSaveBlock2Ptr->frontier.challengeStatus = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; - gSaveBlock2Ptr->frontier.field_CA9_a = 0; + gSaveBlock2Ptr->frontier.challengePaused = FALSE; gSaveBlock2Ptr->frontier.field_CA9_b = 0; - if (!(gSaveBlock2Ptr->frontier.field_CDC & gUnknown_08612164[battleMode][lvlMode])) + if (!(gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode])) { gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode] = 0; gSaveBlock2Ptr->frontier.factoryRentsCount[battleMode][lvlMode] = 0; @@ -218,7 +219,7 @@ static void GetBattleFactoryData(void) gSpecialVar_Result = gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode]; break; case 2: - gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.field_CDC & gUnknown_08612164[battleMode][lvlMode]) != 0); + gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode]) != 0); break; case 3: gSpecialVar_Result = gSaveBlock2Ptr->frontier.factoryRentsCount[battleMode][lvlMode]; @@ -238,9 +239,9 @@ static void SetBattleFactoryData(void) break; case 2: if (gSpecialVar_0x8006) - gSaveBlock2Ptr->frontier.field_CDC |= gUnknown_08612164[battleMode][lvlMode]; + gSaveBlock2Ptr->frontier.winStreakActiveFlags |= sWinStreakFlags[battleMode][lvlMode]; else - gSaveBlock2Ptr->frontier.field_CDC &= gUnknown_08612174[battleMode][lvlMode]; + gSaveBlock2Ptr->frontier.winStreakActiveFlags &= sWinStreakMasks[battleMode][lvlMode]; break; case 3: if (sPerformedRentalSwap == TRUE) @@ -254,10 +255,10 @@ static void SetBattleFactoryData(void) static void sub_81A613C(void) { - gSaveBlock2Ptr->frontier.field_CA8 = gSpecialVar_0x8005; + gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); - gSaveBlock2Ptr->frontier.field_CA9_a = 1; - sub_81A4C30(); + gSaveBlock2Ptr->frontier.challengePaused = TRUE; + SaveGameFrontier(); } static void nullsub_75(void) diff --git a/src/battle_message.c b/src/battle_message.c index 1701f26ec..f60527d7a 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -1195,7 +1195,7 @@ const u8 gText_Love[] = _("love"); const u8 gText_SpaceAndSpace[] = _(" and "); const u8 gText_CommaSpace[] = _(", "); const u8 gText_Space2[] = _(" "); -const u8 gText_ScrollTextUp[] = _("\l"); +const u8 gText_LineBreak[] = _("\l"); const u8 gText_NewLine[] = _("\n"); const u8 gText_Are[] = _("are"); const u8 gText_Are2[] = _("are"); diff --git a/src/battle_palace.c b/src/battle_palace.c index fb8cc0729..ed3fb751e 100644 --- a/src/battle_palace.c +++ b/src/battle_palace.c @@ -8,6 +8,8 @@ #include "item.h" #include "string_util.h" #include "constants/items.h" +#include "constants/battle_frontier.h" +#include "constants/frontier_util.h" // This file's functions. static void sub_8195980(void); @@ -39,16 +41,16 @@ static void (* const sBattlePalaceFunctions[])(void) = static const u16 gUnknown_0860DE78[] = {ITEM_HP_UP, ITEM_PROTEIN, ITEM_IRON, ITEM_CALCIUM, ITEM_CARBOS, ITEM_ZINC}; static const u16 gUnknown_0860DE84[] = {ITEM_BRIGHT_POWDER, ITEM_WHITE_HERB, ITEM_QUICK_CLAW, ITEM_LEFTOVERS, ITEM_MENTAL_HERB, ITEM_KINGS_ROCK, ITEM_FOCUS_BAND, ITEM_SCOPE_LENS, ITEM_CHOICE_BAND}; -static const u32 gUnknown_0860DE98[][2] = +static const u32 sWinStreakFlags[][2] = { - {0x10, 0x20}, - {0x400000, 0x800000}, + {STREAK_PALACE_SINGLES_50, STREAK_PALACE_SINGLES_OPEN}, + {STREAK_PALACE_DOUBLES_50, STREAK_PALACE_DOUBLES_OPEN}, }; -static const u32 gUnknown_0860DEA8[][2] = +static const u32 sWinStreakMasks[][2] = { - {~0x10, ~0x20}, - {~0x400000, ~0x800000}, + {~(STREAK_PALACE_SINGLES_50), ~(STREAK_PALACE_SINGLES_OPEN)}, + {~(STREAK_PALACE_DOUBLES_50), ~(STREAK_PALACE_DOUBLES_OPEN)}, }; // code @@ -62,11 +64,11 @@ static void sub_8195980(void) u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); - gSaveBlock2Ptr->frontier.field_CA8 = 0; + gSaveBlock2Ptr->frontier.challengeStatus = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; - gSaveBlock2Ptr->frontier.field_CA9_a = 0; + gSaveBlock2Ptr->frontier.challengePaused = FALSE; gSaveBlock2Ptr->frontier.field_CA9_b = 0; - if (!(gSaveBlock2Ptr->frontier.field_CDC & gUnknown_0860DE98[battleMode][lvlMode])) + if (!(gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode])) gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode] = 0; SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); @@ -87,7 +89,7 @@ static void sub_8195A38(void) gSpecialVar_Result = gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode]; break; case 2: - gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.field_CDC & gUnknown_0860DE98[battleMode][lvlMode]) != 0); + gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode]) != 0); break; } } @@ -107,9 +109,9 @@ static void sub_8195AE4(void) break; case 2: if (gSpecialVar_0x8006) - gSaveBlock2Ptr->frontier.field_CDC |= gUnknown_0860DE98[battleMode][lvlMode]; + gSaveBlock2Ptr->frontier.winStreakActiveFlags |= sWinStreakFlags[battleMode][lvlMode]; else - gSaveBlock2Ptr->frontier.field_CDC &= gUnknown_0860DEA8[battleMode][lvlMode]; + gSaveBlock2Ptr->frontier.winStreakActiveFlags &= sWinStreakMasks[battleMode][lvlMode]; break; } } @@ -144,7 +146,7 @@ static void sub_8195C7C(void) u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); - if (gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode] < 9999) + if (gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode] < MAX_STREAK) { gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode]++; @@ -156,10 +158,10 @@ static void sub_8195C7C(void) static void sub_8195CE4(void) { - gSaveBlock2Ptr->frontier.field_CA8 = gSpecialVar_0x8005; + gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); - gSaveBlock2Ptr->frontier.field_CA9_a = 1; - sub_81A4C30(); + gSaveBlock2Ptr->frontier.challengePaused = TRUE; + SaveGameFrontier(); } static void sub_8195D28(void) diff --git a/src/battle_pike.c b/src/battle_pike.c index 730063b88..e3651b71d 100644 --- a/src/battle_pike.c +++ b/src/battle_pike.c @@ -15,6 +15,7 @@ #include "battle_setup.h" #include "constants/event_objects.h" #include "constants/battle_frontier.h" +#include "constants/frontier_util.h" #include "constants/abilities.h" #include "constants/easy_chat.h" #include "constants/layouts.h" @@ -51,7 +52,7 @@ static u8 sNpcId; static void SetRoomType(void); static void GetBattlePikeData(void); static void SetBattlePikeData(void); -static void GetInFinalRoom(void); +static void IsNextRoomFinal(void); static void SetupRoomObjectEvents(void); static void GetRoomType(void); static void sub_81A7400(void); @@ -72,8 +73,8 @@ static void ClearPikeTrainerIds(void); static void BufferRecordMixingTrainerMessage(void); static void GetCurrentRoomPikeQueenFightType(void); static void HealSomeMonsBeforePikeQueen(void); -static void SetHealingRoomsDisabled(void); -static void CanAnyPartyMonsBeHealed(void); +static void SetHealingroomTypesDisabled(void); +static void IsPartyFullHealed(void); static void BackupMonHeldItems(void); static void RestoreMonHeldItems(void); static void InitPikeChallenge(void); @@ -419,7 +420,7 @@ static const struct PikeRoomNPC sNPCTable[] = } }; -static const u16 sNPCSpeeches[][6] = +static const u16 sNPCSpeeches[][EASY_CHAT_BATTLE_WORDS_COUNT] = { {EC_WORD_I_AM, EC_WORD_LOST, EC_WORD_I, EC_WORD_NEED, EC_WORD_A, EC_MOVE2(HELPING_HAND)}, {EC_WORD_I_VE, EC_WORD_NO, EC_WORD_SENSE, EC_WORD_OF, EC_WORD_WHERE, EC_WORD_I_AM}, @@ -465,61 +466,61 @@ static const u16 sNPCSpeeches[][6] = {EC_MOVE2(TOXIC), EC_WORD_IS, EC_WORD_A, EC_WORD_TERRIBLE, EC_WORD_THING, EC_WORD_ISN_T_IT_QUES}, }; -// Only the 5th array in this data is used by the code. -static const u8 sPikeQueenWinStreakAppearances[][4] = +// Table duplicated from frontier_util, only Battle Pike entry used +static const u8 sFrontierBrainStreakAppearances[NUM_FRONTIER_FACILITIES][4] = { - {35, 70, 35, 1}, - { 4, 9, 5, 0}, - {21, 42, 21, 1}, - {28, 56, 28, 1}, - {21, 42, 21, 1}, - {28, 140, 56, 1}, - {21, 70, 35, 0}, + [FRONTIER_FACILITY_TOWER] = {35, 70, 35, 1}, + [FRONTIER_FACILITY_DOME] = { 4, 9, 5, 0}, + [FRONTIER_FACILITY_PALACE] = {21, 42, 21, 1}, + [FRONTIER_FACILITY_ARENA] = {28, 56, 28, 1}, + [FRONTIER_FACILITY_FACTORY] = {21, 42, 21, 1}, + [FRONTIER_FACILITY_PIKE] = {28, 140, 56, 1}, + [FRONTIER_FACILITY_PYRAMID] = {21, 70, 35, 0}, }; static void (* const sBattlePikeFunctions[])(void) = { - SetRoomType, - GetBattlePikeData, - SetBattlePikeData, - GetInFinalRoom, - SetupRoomObjectEvents, - GetRoomType, - sub_81A7400, - sub_81A740C, - sub_81A7418, - nullsub_76, - nullsub_124, - GetRoomInflictedStatus, - GetRoomInflictedStatusMon, - HealOneOrTwoMons, - BufferNPCMessage, - StatusInflictionScreenFade, - GetInBattlePike, - SetHintedRoom, - GetHintedRoomIndex, - GetRoomTypeHint, - ClearPikeTrainerIds, - BufferRecordMixingTrainerMessage, - GetCurrentRoomPikeQueenFightType, - HealSomeMonsBeforePikeQueen, - SetHealingRoomsDisabled, - CanAnyPartyMonsBeHealed, - BackupMonHeldItems, - RestoreMonHeldItems, - InitPikeChallenge + [BATTLE_PIKE_FUNC_SET_ROOM_TYPE] = SetRoomType, + [BATTLE_PIKE_FUNC_GET_DATA] = GetBattlePikeData, + [BATTLE_PIKE_FUNC_SET_DATA] = SetBattlePikeData, + [BATTLE_PIKE_FUNC_IS_FINAL_ROOM] = IsNextRoomFinal, + [BATTLE_PIKE_FUNC_SET_ROOM_OBJECTS] = SetupRoomObjectEvents, + [BATTLE_PIKE_FUNC_GET_ROOM_TYPE] = GetRoomType, + [BATTLE_PIKE_FUNC_6] = sub_81A7400, + [BATTLE_PIKE_FUNC_7] = sub_81A740C, + [BATTLE_PIKE_FUNC_8] = sub_81A7418, + [BATTLE_PIKE_FUNC_NULL_9] = nullsub_76, + [BATTLE_PIKE_FUNC_NULL_10] = nullsub_124, + [BATTLE_PIKE_FUNC_GET_ROOM_STATUS] = GetRoomInflictedStatus, + [BATTLE_PIKE_FUNC_GET_ROOM_STATUS_MON] = GetRoomInflictedStatusMon, + [BATTLE_PIKE_FUNC_HEAL_ONE_TWO_MONS] = HealOneOrTwoMons, + [BATTLE_PIKE_FUNC_BUFFER_NPC_MSG] = BufferNPCMessage, + [BATTLE_PIKE_FUNC_STATUS_SCREEN_FADE] = StatusInflictionScreenFade, + [BATTLE_PIKE_FUNC_IS_IN] = GetInBattlePike, + [BATTLE_PIKE_FUNC_SET_HINT_ROOM] = SetHintedRoom, + [BATTLE_PIKE_FUNC_GET_HINT_ROOM_ID] = GetHintedRoomIndex, + [BATTLE_PIKE_FUNC_GET_ROOM_TYPE_HINT] = GetRoomTypeHint, + [BATTLE_PIKE_FUNC_CLEAR_TRAINER_IDS] = ClearPikeTrainerIds, + [BATTLE_PIKE_FUNC_BUFFER_RECORD_MIX_MSG] = BufferRecordMixingTrainerMessage, + [BATTLE_PIKE_FUNC_GET_QUEEN_FIGHT_TYPE] = GetCurrentRoomPikeQueenFightType, + [BATTLE_PIKE_FUNC_HEAL_MONS_BEFORE_QUEEN] = HealSomeMonsBeforePikeQueen, + [BATTLE_PIKE_FUNC_SET_HEALING_ROOMS_DISABLED] = SetHealingroomTypesDisabled, + [BATTLE_PIKE_FUNC_IS_PARTY_FULL_HEALTH] = IsPartyFullHealed, + [BATTLE_PIKE_FUNC_SAVE_MON_HELD_ITEMS] = BackupMonHeldItems, + [BATTLE_PIKE_FUNC_LOAD_MON_HELD_ITEMS] = RestoreMonHeldItems, + [BATTLE_PIKE_FUNC_INIT_CHALLENGE] = InitPikeChallenge }; static const u8 sRoomTypeHints[] = { - 3, // PIKE_ROOM_SINGLE_BATTLE - 3, // PIKE_ROOM_HEAL_FULL - 1, // PIKE_ROOM_NPC - 0, // PIKE_ROOM_STATUS - 0, // PIKE_ROOM_HEAL_PART - 2, // PIKE_ROOM_WILD_MONS - 2, // PIKE_ROOM_HARD_BATTLE - 1, // PIKE_ROOM_DOUBLE_BATTLE - 4, // PIKE_ROOM_BRAIN + PIKE_HINT_PEOPLE, // PIKE_ROOM_SINGLE_BATTLE + PIKE_HINT_PEOPLE, // PIKE_ROOM_HEAL_FULL + PIKE_HINT_WHISPERING, // PIKE_ROOM_NPC + PIKE_HINT_NOSTALGIA, // PIKE_ROOM_STATUS + PIKE_HINT_NOSTALGIA, // PIKE_ROOM_HEAL_PART + PIKE_HINT_POKEMON, // PIKE_ROOM_WILD_MONS + PIKE_HINT_POKEMON, // PIKE_ROOM_HARD_BATTLE + PIKE_HINT_WHISPERING, // PIKE_ROOM_DOUBLE_BATTLE + PIKE_HINT_BRAIN, // PIKE_ROOM_BRAIN }; static const u8 sNumMonsToHealBeforePikeQueen[][3] = @@ -537,7 +538,7 @@ static bool8 (* const sStatusInflictionScreenFadeFuncs[])(struct Task *) = StatusInflictionFadeOut, StatusInflictionFadeIn }; -static const u32 gUnknown_08612690[] = {0x400, 0x800}; +static const u32 sWinStreakFlags[] = {STREAK_PIKE_50, STREAK_PIKE_OPEN}; // code void CallBattlePikeFunction(void) @@ -636,9 +637,9 @@ static void GetBattlePikeData(void) break; case 4: if (lvlMode != FRONTIER_LVL_50) - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_CDC & 0x800; + gSpecialVar_Result = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_PIKE_OPEN; else - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_CDC & 0x400; + gSpecialVar_Result = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_PIKE_50; break; } } @@ -653,37 +654,37 @@ static void SetBattlePikeData(void) gSaveBlock2Ptr->frontier.field_E02 = gSpecialVar_0x8006; break; case 1: - if (gSpecialVar_0x8006 <= 9999) + if (gSpecialVar_0x8006 <= MAX_STREAK) gSaveBlock2Ptr->frontier.pikeWinStreaks[gSaveBlock2Ptr->frontier.lvlMode] = gSpecialVar_0x8006; break; case 2: - if (gSpecialVar_0x8006 <= 9999 && gSaveBlock2Ptr->frontier.pikeRecordStreaks[gSaveBlock2Ptr->frontier.lvlMode] < gSpecialVar_0x8006) + if (gSpecialVar_0x8006 <= MAX_STREAK && gSaveBlock2Ptr->frontier.pikeRecordStreaks[gSaveBlock2Ptr->frontier.lvlMode] < gSpecialVar_0x8006) gSaveBlock2Ptr->frontier.pikeRecordStreaks[gSaveBlock2Ptr->frontier.lvlMode] = gSpecialVar_0x8006; break; case 3: - if (gSpecialVar_0x8006 <= 9999) + if (gSpecialVar_0x8006 <= MAX_STREAK) gSaveBlock2Ptr->frontier.pikeTotalStreaks[gSaveBlock2Ptr->frontier.lvlMode] = gSpecialVar_0x8006; break; case 4: if (lvlMode != FRONTIER_LVL_50) { if (gSpecialVar_0x8006) - gSaveBlock2Ptr->frontier.field_CDC |= 0x800; + gSaveBlock2Ptr->frontier.winStreakActiveFlags |= STREAK_PIKE_OPEN; else - gSaveBlock2Ptr->frontier.field_CDC &= ~(0x800); + gSaveBlock2Ptr->frontier.winStreakActiveFlags &= ~(STREAK_PIKE_OPEN); } else { if (gSpecialVar_0x8006) - gSaveBlock2Ptr->frontier.field_CDC |= 0x400; + gSaveBlock2Ptr->frontier.winStreakActiveFlags |= STREAK_PIKE_50; else - gSaveBlock2Ptr->frontier.field_CDC &= ~(0x400); + gSaveBlock2Ptr->frontier.winStreakActiveFlags &= ~(STREAK_PIKE_50); } break; } } -static void GetInFinalRoom(void) +static void IsNextRoomFinal(void) { if (gSaveBlock2Ptr->frontier.curChallengeBattleNum > 14) gSpecialVar_Result = TRUE; @@ -708,9 +709,9 @@ static void sub_81A740C(void) static void sub_81A7418(void) { - gSaveBlock2Ptr->frontier.field_CA8 = gSpecialVar_0x8005; + gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); - gSaveBlock2Ptr->frontier.field_CA9_a = 1; + gSaveBlock2Ptr->frontier.challengePaused = TRUE; save_serialize_map(); TrySavingData(SAVE_LINK); } @@ -1014,10 +1015,10 @@ static bool8 AtLeastOneHealthyMon(void) static u8 GetNextRoomType(void) { - u8 roomTypesAvailability[8]; + bool8 roomTypesDisabled[NUM_PIKE_ROOM_TYPES - 1]; // excludes Brain room, which cant be disabled u8 i; u8 nextRoomType; - u8 roomTypeGroup; + u8 roomHint; u8 numRoomCandidates; u8 *roomCandidates; u8 id; @@ -1033,54 +1034,54 @@ static u8 GetNextRoomType(void) return gSaveBlock2Ptr->frontier.pikeHintedRoomType; } - for (i = 0; i < 8; i++) - roomTypesAvailability[i] = 0; + for (i = 0; i < ARRAY_COUNT(roomTypesDisabled); i++) + roomTypesDisabled[i] = FALSE; - numRoomCandidates = 8; + numRoomCandidates = NUM_PIKE_ROOM_TYPES - 1; - // The room types associated with the lady's hint cannot be in the other two rooms. - roomTypeGroup = sRoomTypeHints[gSaveBlock2Ptr->frontier.pikeHintedRoomType]; - for (i = 0; i < 8; i++) + // The other two room types cannot be the same type as the one associated with the lady's hint + roomHint = sRoomTypeHints[gSaveBlock2Ptr->frontier.pikeHintedRoomType]; + for (i = 0; i < ARRAY_COUNT(roomTypesDisabled); i++) { - if (sRoomTypeHints[i] == roomTypeGroup) + if (sRoomTypeHints[i] == roomHint) { - roomTypesAvailability[i] = 1; + roomTypesDisabled[i] = TRUE; numRoomCandidates--; } } // Remove room type candidates that would have no effect on the player's party. - if (roomTypesAvailability[PIKE_ROOM_DOUBLE_BATTLE] != 1 && !AtLeastTwoAliveMons()) + if (roomTypesDisabled[PIKE_ROOM_DOUBLE_BATTLE] != TRUE && !AtLeastTwoAliveMons()) { - roomTypesAvailability[PIKE_ROOM_DOUBLE_BATTLE] = 1; + roomTypesDisabled[PIKE_ROOM_DOUBLE_BATTLE] = TRUE; numRoomCandidates--; } - if (roomTypesAvailability[PIKE_ROOM_STATUS] != 1 && !AtLeastOneHealthyMon()) + if (roomTypesDisabled[PIKE_ROOM_STATUS] != TRUE && !AtLeastOneHealthyMon()) { - roomTypesAvailability[PIKE_ROOM_STATUS] = 1; + roomTypesDisabled[PIKE_ROOM_STATUS] = TRUE; numRoomCandidates--; } // Remove healing room type candidates if healing rooms are disabled. if (gSaveBlock2Ptr->frontier.pikeHealingRoomsDisabled) { - if (roomTypesAvailability[PIKE_ROOM_HEAL_FULL] != 1) + if (roomTypesDisabled[PIKE_ROOM_HEAL_FULL] != TRUE) { - roomTypesAvailability[PIKE_ROOM_HEAL_FULL] = 1; + roomTypesDisabled[PIKE_ROOM_HEAL_FULL] = TRUE; numRoomCandidates--; } - if (roomTypesAvailability[PIKE_ROOM_HEAL_PART] != 1) + if (roomTypesDisabled[PIKE_ROOM_HEAL_PART] != TRUE) { - roomTypesAvailability[PIKE_ROOM_HEAL_PART] = 1; + roomTypesDisabled[PIKE_ROOM_HEAL_PART] = TRUE; numRoomCandidates--; } } roomCandidates = AllocZeroed(numRoomCandidates); id = 0; - for (i = 0; i < 8; i++) + for (i = 0; i < ARRAY_COUNT(roomTypesDisabled); i++) { - if (roomTypesAvailability[i] == 0) + if (roomTypesDisabled[i] == FALSE) roomCandidates[id++] = i; } @@ -1098,6 +1099,7 @@ static u16 GetNPCRoomGraphicsId(void) return sNPCTable[sNpcId].graphicsId; } +// Unused static u8 sub_81A7B84(void) { return sUnknown_0300128E; @@ -1323,8 +1325,8 @@ static void GetInBattlePike(void) bool8 InBattlePike(void) { return gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM - || gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1 - || gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3 + || gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL + || gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS || gMapHeader.mapLayoutId == LAYOUT_UNKNOWN_084693AC; } @@ -1344,9 +1346,9 @@ static void SetHintedRoom(void) { gSaveBlock2Ptr->frontier.pikeHintedRoomIndex = Random() % 3; if (gSaveBlock2Ptr->frontier.pikeHealingRoomsDisabled) - count = 6; + count = NUM_PIKE_ROOM_TYPES - 3; // exclude healing rooms and Brain room else - count = 8; + count = NUM_PIKE_ROOM_TYPES - 1; // exclude Brain room roomCandidates = AllocZeroed(count); for (i = 0, id = 0; i < count; i++) @@ -1373,9 +1375,6 @@ static void SetHintedRoom(void) static void GetHintedRoomIndex(void) { - // 0 = left room - // 1 = center room - // 2 = right room gSpecialVar_Result = gSaveBlock2Ptr->frontier.pikeHintedRoomIndex; } @@ -1500,7 +1499,7 @@ static u8 GetPikeQueenFightType(u8 nextRoom) { u8 numPikeSymbols; - u8 var = 5; + u8 facility = FRONTIER_FACILITY_PIKE; u8 ret = 0; u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u16 winStreak = gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode]; @@ -1511,16 +1510,16 @@ static u8 GetPikeQueenFightType(u8 nextRoom) { case 0: case 1: - if (winStreak == sPikeQueenWinStreakAppearances[var][numPikeSymbols] - sPikeQueenWinStreakAppearances[var][3]) + if (winStreak == sFrontierBrainStreakAppearances[facility][numPikeSymbols] - sFrontierBrainStreakAppearances[facility][3]) ret = numPikeSymbols + 1; break; case 2: default: - if (winStreak == sPikeQueenWinStreakAppearances[var][0] - sPikeQueenWinStreakAppearances[var][3]) + if (winStreak == sFrontierBrainStreakAppearances[facility][0] - sFrontierBrainStreakAppearances[facility][3]) ret = 3; - else if (winStreak == sPikeQueenWinStreakAppearances[var][1] - sPikeQueenWinStreakAppearances[var][3] - || (winStreak > sPikeQueenWinStreakAppearances[var][1] - && (winStreak - sPikeQueenWinStreakAppearances[var][1] + sPikeQueenWinStreakAppearances[var][3]) % sPikeQueenWinStreakAppearances[var][2] == 0)) + else if (winStreak == sFrontierBrainStreakAppearances[facility][1] - sFrontierBrainStreakAppearances[facility][3] + || (winStreak > sFrontierBrainStreakAppearances[facility][1] + && (winStreak - sFrontierBrainStreakAppearances[facility][1] + sFrontierBrainStreakAppearances[facility][3]) % sFrontierBrainStreakAppearances[facility][2] == 0)) ret = 4; break; } @@ -1541,17 +1540,17 @@ static void HealSomeMonsBeforePikeQueen(void) gSpecialVar_Result = toHealCount; } -static void SetHealingRoomsDisabled(void) +static void SetHealingroomTypesDisabled(void) { gSaveBlock2Ptr->frontier.pikeHealingRoomsDisabled = gSpecialVar_0x8005; } -static void CanAnyPartyMonsBeHealed(void) +static void IsPartyFullHealed(void) { u8 i, j; gSpecialVar_Result = TRUE; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { bool32 canBeHealed = FALSE; struct Pokemon *mon = &gPlayerParty[i]; @@ -1589,7 +1588,7 @@ static void BackupMonHeldItems(void) { u8 i; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { int heldItem = GetMonData(&gSaveBlock1Ptr->playerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_HELD_ITEM); @@ -1601,7 +1600,7 @@ static void RestoreMonHeldItems(void) { u8 i; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { SetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_HELD_ITEM, @@ -1613,10 +1612,10 @@ static void InitPikeChallenge(void) { u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; - gSaveBlock2Ptr->frontier.field_CA8 = 0; + gSaveBlock2Ptr->frontier.challengeStatus = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; - gSaveBlock2Ptr->frontier.field_CA9_a = 0; - if (!(gSaveBlock2Ptr->frontier.field_CDC & gUnknown_08612690[lvlMode])) + gSaveBlock2Ptr->frontier.challengePaused = FALSE; + if (!(gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[lvlMode])) gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode] = 0; gTrainerBattleOpponent_A = 0; diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c index 81eff39a9..e234ed411 100644 --- a/src/battle_pyramid.c +++ b/src/battle_pyramid.c @@ -30,6 +30,7 @@ #include "constants/battle_pyramid.h" #include "constants/event_objects.h" #include "constants/event_object_movement.h" +#include "constants/frontier_util.h" #include "constants/items.h" #include "constants/layouts.h" #include "constants/maps.h" @@ -514,7 +515,7 @@ static const u8 sTrainerTextGroups[50][2] = {FACILITY_CLASS_SAILOR, 2}, {FACILITY_CLASS_COLLECTOR, 2}, {FACILITY_CLASS_PKMN_BREEDER_M, 2}, - {FACILITY_CLASS_POKEMON_BREEDER_F, 3}, + {FACILITY_CLASS_PKMN_BREEDER_F, 3}, {FACILITY_CLASS_PKMN_RANGER_M, 2}, {FACILITY_CLASS_PKMN_RANGER_F, 3}, {FACILITY_CLASS_LASS, 3}, @@ -842,13 +843,13 @@ static void InitPyramidChallenge(void) bool32 isCurrent; u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; - gSaveBlock2Ptr->frontier.field_CA8 = 0; + gSaveBlock2Ptr->frontier.challengeStatus = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; - gSaveBlock2Ptr->frontier.field_CA9_a = 0; + gSaveBlock2Ptr->frontier.challengePaused = FALSE; if (lvlMode != FRONTIER_LVL_50) - isCurrent = gSaveBlock2Ptr->frontier.field_CDC & 0x2000; + isCurrent = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_PYRAMID_OPEN; else - isCurrent = gSaveBlock2Ptr->frontier.field_CDC & 0x1000; + isCurrent = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_PYRAMID_50; if (!isCurrent) { @@ -875,9 +876,9 @@ static void GetBattlePyramidData(void) break; case 2: if (lvlMode != FRONTIER_LVL_50) - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_CDC & 0x2000; + gSpecialVar_Result = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_PYRAMID_OPEN; else - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_CDC & 0x1000; + gSpecialVar_Result = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_PYRAMID_50; break; case 3: gSpecialVar_Result = gSaveBlock2Ptr->frontier.pyramidWinStreaks[FRONTIER_LVL_50]; @@ -886,10 +887,10 @@ static void GetBattlePyramidData(void) gSpecialVar_Result = gSaveBlock2Ptr->frontier.pyramidWinStreaks[FRONTIER_LVL_OPEN]; break; case 5: - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_CDC & 0x1000; + gSpecialVar_Result = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_PYRAMID_50; break; case 6: - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_CDC & 0x2000; + gSpecialVar_Result = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_PYRAMID_OPEN; break; } } @@ -910,16 +911,16 @@ static void SetBattlePyramidData(void) if (lvlMode != FRONTIER_LVL_50) { if (gSpecialVar_0x8006) - gSaveBlock2Ptr->frontier.field_CDC |= 0x2000; + gSaveBlock2Ptr->frontier.winStreakActiveFlags |= STREAK_PYRAMID_OPEN; else - gSaveBlock2Ptr->frontier.field_CDC &= ~(0x2000); + gSaveBlock2Ptr->frontier.winStreakActiveFlags &= ~(STREAK_PYRAMID_OPEN); } else { if (gSpecialVar_0x8006) - gSaveBlock2Ptr->frontier.field_CDC |= 0x1000; + gSaveBlock2Ptr->frontier.winStreakActiveFlags |= STREAK_PYRAMID_50; else - gSaveBlock2Ptr->frontier.field_CDC &= ~(0x1000); + gSaveBlock2Ptr->frontier.winStreakActiveFlags &= ~(STREAK_PYRAMID_50); } break; case 7: @@ -930,9 +931,9 @@ static void SetBattlePyramidData(void) static void sub_81A9134(void) { - gSaveBlock2Ptr->frontier.field_CA8 = gSpecialVar_0x8005; + gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); - gSaveBlock2Ptr->frontier.field_CA9_a = 1; + gSaveBlock2Ptr->frontier.challengePaused = TRUE; save_serialize_map(); TrySavingData(SAVE_LINK); } @@ -1169,7 +1170,7 @@ static void ClearPyramidPartyHeldItems(void) for (i = 0; i < PARTY_SIZE; i++) { - for (j = 0; j < 4; j++) + for (j = 0; j < MAX_FRONTIER_PARTY_SIZE; j++) { if (gSaveBlock2Ptr->frontier.selectedPartyMons[j] != 0 && gSaveBlock2Ptr->frontier.selectedPartyMons[j] - 1 == i) SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &item); @@ -1200,10 +1201,10 @@ static void RestorePyramidPlayerParty(void) { int i, j, k, l; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { int partyIndex = gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1; - for (j = 0; j < 3; j++) + for (j = 0; j < FRONTIER_PARTY_SIZE; j++) { if (GetMonData(&gSaveBlock1Ptr->playerParty[partyIndex], MON_DATA_SPECIES, NULL) == GetMonData(&gPlayerParty[j], MON_DATA_SPECIES, NULL)) { @@ -1224,7 +1225,7 @@ static void RestorePyramidPlayerParty(void) } } - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) gSaveBlock2Ptr->frontier.selectedPartyMons[i] = gSelectedOrderFromParty[i]; } @@ -1434,7 +1435,7 @@ void sub_81A9E90(void) if (InBattlePyramid()) { RestorePyramidPlayerParty(); - gSaveBlock2Ptr->frontier.field_CA8 = 2; + gSaveBlock2Ptr->frontier.challengeStatus = CHALLENGE_STATUS_PAUSED; VarSet(VAR_TEMP_E, 0); LoadPlayerParty(); } diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 33c5f661b..eab7b7d04 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -4555,7 +4555,7 @@ static void Cmd_moveend(void) case MOVEEND_CHOICE_MOVE: // update choice band move if (gHitMarker & HITMARKER_OBEYS && holdEffectAtk == HOLD_EFFECT_CHOICE_BAND - && gChosenMove != MOVE_STRUGGLE + && gChosenMove != MOVE_STRUGGLE && (*choicedMoveAtk == 0 || *choicedMoveAtk == 0xFFFF)) { if (gChosenMove == MOVE_BATON_PASS && !(gMoveResultFlags & MOVE_RESULT_FAILED)) @@ -7826,7 +7826,7 @@ static void Cmd_weatherdamage(void) gBattleMoveDamage = 0; } } - if (gBattleWeather & WEATHER_HAIL) + if (gBattleWeather & WEATHER_HAIL_ANY) { if (!IS_BATTLER_OF_TYPE(gBattlerAttacker, TYPE_ICE) && !(gStatuses3[gBattlerAttacker] & STATUS3_UNDERGROUND) diff --git a/src/battle_tent.c b/src/battle_tent.c index 34e3e9628..6e3df49a9 100644 --- a/src/battle_tent.c +++ b/src/battle_tent.c @@ -47,7 +47,7 @@ static void sub_81B9EC0(void); static u16 sRandMonSetId; // const rom data -void static (*const gUnknown_086160B4[])(void) = +void static (*const sVerdanturfTentFuncs[])(void) = { sub_81B99D4, sub_81B9A28, @@ -61,7 +61,7 @@ void static (*const gUnknown_086160B4[])(void) = static const u16 sVerdanturfTentRewards[] = {ITEM_NEST_BALL}; -void static (*const gUnknown_086160D8[])(void) = +void static (*const sFallarborTentFuncs[])(void) = { sub_81B9BA0, sub_81B9BF4, @@ -74,7 +74,7 @@ void static (*const gUnknown_086160D8[])(void) = static const u16 sFallarborTentRewards[] = {ITEM_HYPER_POTION}; -void static (*const gUnknown_086160F8[])(void) = +void static (*const sSlateportTentFuncs[])(void) = { sub_81B9D28, sub_81B9D7C, @@ -91,16 +91,16 @@ void static (*const gUnknown_086160F8[])(void) = static const u16 sSlateportTentRewards[] = {ITEM_FULL_HEAL}; // code -void sub_81B99B4(void) +void CallVerdanturfTentFunction(void) { - gUnknown_086160B4[gSpecialVar_0x8004](); + sVerdanturfTentFuncs[gSpecialVar_0x8004](); } static void sub_81B99D4(void) { - gSaveBlock2Ptr->frontier.field_CA8 = 0; + gSaveBlock2Ptr->frontier.challengeStatus = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; - gSaveBlock2Ptr->frontier.field_CA9_a = FALSE; + gSaveBlock2Ptr->frontier.challengePaused = FALSE; SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); } @@ -128,10 +128,10 @@ static void sub_81B9A90(void) static void sub_81B9ABC(void) { - gSaveBlock2Ptr->frontier.field_CA8 = gSpecialVar_0x8005; + gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); - gSaveBlock2Ptr->frontier.field_CA9_a = TRUE; - sub_81A4C30(); + gSaveBlock2Ptr->frontier.challengePaused = TRUE; + SaveGameFrontier(); } static void sub_81B9B00(void) @@ -153,16 +153,16 @@ static void sub_81B9B28(void) } } -void sub_81B9B80(void) +void CallFallarborTentFunction(void) { - gUnknown_086160D8[gSpecialVar_0x8004](); + sFallarborTentFuncs[gSpecialVar_0x8004](); } static void sub_81B9BA0(void) { - gSaveBlock2Ptr->frontier.field_CA8 = 0; + gSaveBlock2Ptr->frontier.challengeStatus = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; - gSaveBlock2Ptr->frontier.field_CA9_a = FALSE; + gSaveBlock2Ptr->frontier.challengePaused = FALSE; SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); } @@ -178,10 +178,10 @@ static void sub_81B9C10(void) static void sub_81B9C2C(void) { - gSaveBlock2Ptr->frontier.field_CA8 = gSpecialVar_0x8005; + gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); - gSaveBlock2Ptr->frontier.field_CA9_a = TRUE; - sub_81A4C30(); + gSaveBlock2Ptr->frontier.challengePaused = TRUE; + SaveGameFrontier(); } static void sub_81B9C70(void) @@ -208,16 +208,16 @@ static void sub_81B9CF0(void) GetFrontierTrainerName(gStringVar1, gTrainerBattleOpponent_A); } -void sub_81B9D08(void) +void CallSlateportTentFunction(void) { - gUnknown_086160F8[gSpecialVar_0x8004](); + sSlateportTentFuncs[gSpecialVar_0x8004](); } static void sub_81B9D28(void) { - gSaveBlock2Ptr->frontier.field_CA8 = 0; + gSaveBlock2Ptr->frontier.challengeStatus = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; - gSaveBlock2Ptr->frontier.field_CA9_a = FALSE; + gSaveBlock2Ptr->frontier.challengePaused = FALSE; SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); } @@ -233,10 +233,10 @@ static void sub_81B9D98(void) static void sub_81B9DB4(void) { - gSaveBlock2Ptr->frontier.field_CA8 = gSpecialVar_0x8005; + gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); - gSaveBlock2Ptr->frontier.field_CA9_a = TRUE; - sub_81A4C30(); + gSaveBlock2Ptr->frontier.challengePaused = TRUE; + SaveGameFrontier(); } static void sub_81B9DF8(void) diff --git a/src/battle_tower.c b/src/battle_tower.c index 199588571..43ffb12da 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -25,6 +25,7 @@ #include "battle_factory.h" #include "constants/battle_frontier.h" #include "constants/battle_tower.h" +#include "constants/frontier_util.h" #include "constants/items.h" #include "constants/trainers.h" #include "constants/event_objects.h" @@ -200,7 +201,7 @@ const u8 gTowerFemaleFacilityClasses[20] = FACILITY_CLASS_PARASOL_LADY, FACILITY_CLASS_SWIMMER_F, FACILITY_CLASS_PICNICKER, - FACILITY_CLASS_POKEMON_BREEDER_F, + FACILITY_CLASS_PKMN_BREEDER_F, FACILITY_CLASS_PKMN_RANGER_F, FACILITY_CLASS_LASS }; @@ -263,83 +264,84 @@ const u8 gTowerFemaleTrainerGfxIds[20] = OBJ_EVENT_GFX_LASS }; -static const u8 sRubyFacilityClassToEmerald[][2] = -{ - {0x00, FACILITY_CLASS_AQUA_LEADER_ARCHIE}, - {0x01, FACILITY_CLASS_AQUA_GRUNT_M}, - {0x02, FACILITY_CLASS_AQUA_GRUNT_F}, - {0x03, FACILITY_CLASS_AROMA_LADY}, - {0x04, FACILITY_CLASS_RUIN_MANIAC}, - {0x05, FACILITY_CLASS_INTERVIEWER}, - {0x06, FACILITY_CLASS_TUBER_F}, - {0x07, FACILITY_CLASS_TUBER_M}, - {0x08, FACILITY_CLASS_COOLTRAINER_M}, - {0x09, FACILITY_CLASS_COOLTRAINER_F}, - {0x0a, FACILITY_CLASS_HEX_MANIAC}, - {0x0b, FACILITY_CLASS_LADY}, - {0x0c, FACILITY_CLASS_BEAUTY}, - {0x0d, FACILITY_CLASS_RICH_BOY}, - {0x0e, FACILITY_CLASS_POKEMANIAC}, - {0x0f, FACILITY_CLASS_SWIMMER_M}, - {0x10, FACILITY_CLASS_BLACK_BELT}, - {0x11, FACILITY_CLASS_GUITARIST}, - {0x12, FACILITY_CLASS_KINDLER}, - {0x13, FACILITY_CLASS_CAMPER}, - {0x14, FACILITY_CLASS_BUG_MANIAC}, - {0x15, FACILITY_CLASS_PSYCHIC_M}, - {0x16, FACILITY_CLASS_PSYCHIC_F}, - {0x17, FACILITY_CLASS_GENTLEMAN}, - {0x18, FACILITY_CLASS_ELITE_FOUR_SIDNEY}, - {0x19, FACILITY_CLASS_ELITE_FOUR_PHOEBE}, - {0x1a, FACILITY_CLASS_LEADER_ROXANNE}, - {0x1b, FACILITY_CLASS_LEADER_BRAWLY}, - {0x1c, FACILITY_CLASS_LEADER_TATE_AND_LIZA}, - {0x1d, FACILITY_CLASS_SCHOOL_KID_M}, - {0x1e, FACILITY_CLASS_SCHOOL_KID_F}, - {0x1f, FACILITY_CLASS_SR_AND_JR}, - {0x20, FACILITY_CLASS_POKEFAN_M}, - {0x21, FACILITY_CLASS_POKEFAN_F}, - {0x22, FACILITY_CLASS_EXPERT_M}, - {0x23, FACILITY_CLASS_EXPERT_F}, - {0x24, FACILITY_CLASS_YOUNGSTER}, - {0x25, FACILITY_CLASS_CHAMPION_WALLACE}, - {0x26, FACILITY_CLASS_FISHERMAN}, - {0x27, FACILITY_CLASS_CYCLING_TRIATHLETE_M}, - {0x28, FACILITY_CLASS_CYCLING_TRIATHLETE_F}, - {0x29, FACILITY_CLASS_RUNNING_TRIATHLETE_M}, - {0x2a, FACILITY_CLASS_RUNNING_TRIATHLETE_F}, - {0x2b, FACILITY_CLASS_SWIMMING_TRIATHLETE_M}, - {0x2c, FACILITY_CLASS_SWIMMING_TRIATHLETE_F}, - {0x2d, FACILITY_CLASS_DRAGON_TAMER}, - {0x2e, FACILITY_CLASS_BIRD_KEEPER}, - {0x2f, FACILITY_CLASS_NINJA_BOY}, - {0x30, FACILITY_CLASS_BATTLE_GIRL}, - {0x31, FACILITY_CLASS_PARASOL_LADY}, - {0x32, FACILITY_CLASS_SWIMMER_F}, - {0x33, FACILITY_CLASS_PICNICKER}, - {0x34, FACILITY_CLASS_TWINS}, - {0x35, FACILITY_CLASS_SAILOR}, - {0x38, FACILITY_CLASS_COLLECTOR}, - {0x39, FACILITY_CLASS_WALLY}, - {0x3a, FACILITY_CLASS_BRENDAN}, - {0x3b, FACILITY_CLASS_BRENDAN_2}, - {0x3c, FACILITY_CLASS_BRENDAN_3}, - {0x3d, FACILITY_CLASS_MAY}, - {0x3e, FACILITY_CLASS_MAY_2}, - {0x3f, FACILITY_CLASS_MAY_3}, - {0x40, FACILITY_CLASS_PKMN_BREEDER_M}, - {0x41, FACILITY_CLASS_POKEMON_BREEDER_F}, - {0x42, FACILITY_CLASS_PKMN_RANGER_M}, - {0x43, FACILITY_CLASS_PKMN_RANGER_F}, - {0x44, FACILITY_CLASS_MAGMA_LEADER_MAXIE}, - {0x45, FACILITY_CLASS_MAGMA_GRUNT_M}, - {0x46, FACILITY_CLASS_MAGMA_GRUNT_F}, - {0x47, FACILITY_CLASS_LASS}, - {0x48, FACILITY_CLASS_BUG_CATCHER}, - {0x49, FACILITY_CLASS_HIKER}, - {0x4a, FACILITY_CLASS_YOUNG_COUPLE}, - {0x4b, FACILITY_CLASS_OLD_COUPLE}, - {0x4c, FACILITY_CLASS_SIS_AND_BRO}, +// Excludes the unused RS_FACILITY_CLASS_BOARDER_1 and _2 +static const u8 sRubyFacilityClassToEmerald[RS_FACILITY_CLASSES_COUNT - 2][2] = +{ + {RS_FACILITY_CLASS_AQUA_LEADER_ARCHIE, FACILITY_CLASS_AQUA_LEADER_ARCHIE}, + {RS_FACILITY_CLASS_AQUA_GRUNT_M, FACILITY_CLASS_AQUA_GRUNT_M}, + {RS_FACILITY_CLASS_AQUA_GRUNT_F, FACILITY_CLASS_AQUA_GRUNT_F}, + {RS_FACILITY_CLASS_AROMA_LADY, FACILITY_CLASS_AROMA_LADY}, + {RS_FACILITY_CLASS_RUIN_MANIAC, FACILITY_CLASS_RUIN_MANIAC}, + {RS_FACILITY_CLASS_INTERVIEWER, FACILITY_CLASS_INTERVIEWER}, + {RS_FACILITY_CLASS_TUBER_F, FACILITY_CLASS_TUBER_F}, + {RS_FACILITY_CLASS_TUBER_M, FACILITY_CLASS_TUBER_M}, + {RS_FACILITY_CLASS_COOLTRAINER_M, FACILITY_CLASS_COOLTRAINER_M}, + {RS_FACILITY_CLASS_COOLTRAINER_F, FACILITY_CLASS_COOLTRAINER_F}, + {RS_FACILITY_CLASS_HEX_MANIAC, FACILITY_CLASS_HEX_MANIAC}, + {RS_FACILITY_CLASS_LADY, FACILITY_CLASS_LADY}, + {RS_FACILITY_CLASS_BEAUTY, FACILITY_CLASS_BEAUTY}, + {RS_FACILITY_CLASS_RICH_BOY, FACILITY_CLASS_RICH_BOY}, + {RS_FACILITY_CLASS_POKEMANIAC, FACILITY_CLASS_POKEMANIAC}, + {RS_FACILITY_CLASS_SWIMMER_M, FACILITY_CLASS_SWIMMER_M}, + {RS_FACILITY_CLASS_BLACK_BELT, FACILITY_CLASS_BLACK_BELT}, + {RS_FACILITY_CLASS_GUITARIST, FACILITY_CLASS_GUITARIST}, + {RS_FACILITY_CLASS_KINDLER, FACILITY_CLASS_KINDLER}, + {RS_FACILITY_CLASS_CAMPER, FACILITY_CLASS_CAMPER}, + {RS_FACILITY_CLASS_BUG_MANIAC, FACILITY_CLASS_BUG_MANIAC}, + {RS_FACILITY_CLASS_PSYCHIC_M, FACILITY_CLASS_PSYCHIC_M}, + {RS_FACILITY_CLASS_PSYCHIC_F, FACILITY_CLASS_PSYCHIC_F}, + {RS_FACILITY_CLASS_GENTLEMAN, FACILITY_CLASS_GENTLEMAN}, + {RS_FACILITY_CLASS_ELITE_FOUR_M, FACILITY_CLASS_ELITE_FOUR_SIDNEY}, + {RS_FACILITY_CLASS_ELITE_FOUR_F, FACILITY_CLASS_ELITE_FOUR_PHOEBE}, + {RS_FACILITY_CLASS_LEADER_F, FACILITY_CLASS_LEADER_ROXANNE}, + {RS_FACILITY_CLASS_LEADER_M, FACILITY_CLASS_LEADER_BRAWLY}, + {RS_FACILITY_CLASS_LEADER_MF, FACILITY_CLASS_LEADER_TATE_AND_LIZA}, + {RS_FACILITY_CLASS_SCHOOL_KID_M, FACILITY_CLASS_SCHOOL_KID_M}, + {RS_FACILITY_CLASS_SCHOOL_KID_F, FACILITY_CLASS_SCHOOL_KID_F}, + {RS_FACILITY_CLASS_SR_AND_JR, FACILITY_CLASS_SR_AND_JR}, + {RS_FACILITY_CLASS_POKEFAN_M, FACILITY_CLASS_POKEFAN_M}, + {RS_FACILITY_CLASS_POKEFAN_F, FACILITY_CLASS_POKEFAN_F}, + {RS_FACILITY_CLASS_EXPERT_M, FACILITY_CLASS_EXPERT_M}, + {RS_FACILITY_CLASS_EXPERT_F, FACILITY_CLASS_EXPERT_F}, + {RS_FACILITY_CLASS_YOUNGSTER, FACILITY_CLASS_YOUNGSTER}, + {RS_FACILITY_CLASS_CHAMPION, FACILITY_CLASS_CHAMPION_WALLACE}, + {RS_FACILITY_CLASS_FISHERMAN, FACILITY_CLASS_FISHERMAN}, + {RS_FACILITY_CLASS_CYCLING_TRIATHLETE_M, FACILITY_CLASS_CYCLING_TRIATHLETE_M}, + {RS_FACILITY_CLASS_CYCLING_TRIATHLETE_F, FACILITY_CLASS_CYCLING_TRIATHLETE_F}, + {RS_FACILITY_CLASS_RUNNING_TRIATHLETE_M, FACILITY_CLASS_RUNNING_TRIATHLETE_M}, + {RS_FACILITY_CLASS_RUNNING_TRIATHLETE_F, FACILITY_CLASS_RUNNING_TRIATHLETE_F}, + {RS_FACILITY_CLASS_SWIMMING_TRIATHLETE_M, FACILITY_CLASS_SWIMMING_TRIATHLETE_M}, + {RS_FACILITY_CLASS_SWIMMING_TRIATHLETE_F, FACILITY_CLASS_SWIMMING_TRIATHLETE_F}, + {RS_FACILITY_CLASS_DRAGON_TAMER, FACILITY_CLASS_DRAGON_TAMER}, + {RS_FACILITY_CLASS_BIRD_KEEPER, FACILITY_CLASS_BIRD_KEEPER}, + {RS_FACILITY_CLASS_NINJA_BOY, FACILITY_CLASS_NINJA_BOY}, + {RS_FACILITY_CLASS_BATTLE_GIRL, FACILITY_CLASS_BATTLE_GIRL}, + {RS_FACILITY_CLASS_PARASOL_LADY, FACILITY_CLASS_PARASOL_LADY}, + {RS_FACILITY_CLASS_SWIMMER_F, FACILITY_CLASS_SWIMMER_F}, + {RS_FACILITY_CLASS_PICNICKER, FACILITY_CLASS_PICNICKER}, + {RS_FACILITY_CLASS_TWINS, FACILITY_CLASS_TWINS}, + {RS_FACILITY_CLASS_SAILOR, FACILITY_CLASS_SAILOR}, + {RS_FACILITY_CLASS_COLLECTOR, FACILITY_CLASS_COLLECTOR}, + {RS_FACILITY_CLASS_WALLY, FACILITY_CLASS_WALLY}, + {RS_FACILITY_CLASS_BRENDAN_1, FACILITY_CLASS_BRENDAN}, + {RS_FACILITY_CLASS_BRENDAN_2, FACILITY_CLASS_BRENDAN_2}, + {RS_FACILITY_CLASS_BRENDAN_3, FACILITY_CLASS_BRENDAN_3}, + {RS_FACILITY_CLASS_MAY_1, FACILITY_CLASS_MAY}, + {RS_FACILITY_CLASS_MAY_2, FACILITY_CLASS_MAY_2}, + {RS_FACILITY_CLASS_MAY_3, FACILITY_CLASS_MAY_3}, + {RS_FACILITY_CLASS_PKMN_BREEDER_M, FACILITY_CLASS_PKMN_BREEDER_M}, + {RS_FACILITY_CLASS_PKMN_BREEDER_F, FACILITY_CLASS_PKMN_BREEDER_F}, + {RS_FACILITY_CLASS_PKMN_RANGER_M, FACILITY_CLASS_PKMN_RANGER_M}, + {RS_FACILITY_CLASS_PKMN_RANGER_F, FACILITY_CLASS_PKMN_RANGER_F}, + {RS_FACILITY_CLASS_MAGMA_LEADER, FACILITY_CLASS_MAGMA_LEADER_MAXIE}, + {RS_FACILITY_CLASS_MAGMA_GRUNT_M, FACILITY_CLASS_MAGMA_GRUNT_M}, + {RS_FACILITY_CLASS_MAGMA_GRUNT_F, FACILITY_CLASS_MAGMA_GRUNT_F}, + {RS_FACILITY_CLASS_LASS, FACILITY_CLASS_LASS}, + {RS_FACILITY_CLASS_BUG_CATCHER, FACILITY_CLASS_BUG_CATCHER}, + {RS_FACILITY_CLASS_HIKER, FACILITY_CLASS_HIKER}, + {RS_FACILITY_CLASS_YOUNG_COUPLE, FACILITY_CLASS_YOUNG_COUPLE}, + {RS_FACILITY_CLASS_OLD_COUPLE, FACILITY_CLASS_OLD_COUPLE}, + {RS_FACILITY_CLASS_SIS_AND_BRO, FACILITY_CLASS_SIS_AND_BRO}, }; static const u8 *const gUnknown_085DCFD8[] = @@ -986,7 +988,7 @@ struct {FACILITY_CLASS_PSYCHIC_M, gUnknown_085DD44C}, {FACILITY_CLASS_PSYCHIC_F, gUnknown_085DD460}, {FACILITY_CLASS_SCHOOL_KID_F, gUnknown_085DD474}, - {FACILITY_CLASS_POKEMON_BREEDER_F, gUnknown_085DD488}, + {FACILITY_CLASS_PKMN_BREEDER_F, gUnknown_085DD488}, {FACILITY_CLASS_POKEFAN_F, gUnknown_085DD49C}, {FACILITY_CLASS_SWIMMER_F, gUnknown_085DD4B0}, {FACILITY_CLASS_SWIMMING_TRIATHLETE_M, gUnknown_085DD4C4}, @@ -1072,20 +1074,20 @@ static void (* const sBattleTowerFuncs[])(void) = [BATTLE_TOWER_FUNC_15] = sub_8164E04, }; -static const u32 gUnknown_085DF9AC[][2] = +static const u32 sWinStreakFlags[][2] = { - {0x00000001, 0x00000002}, - {0x00004000, 0x00008000}, - {0x00010000, 0x00020000}, - {0x00040000, 0x00080000}, + {STREAK_TOWER_SINGLES_50, STREAK_TOWER_SINGLES_OPEN}, + {STREAK_TOWER_DOUBLES_50, STREAK_TOWER_DOUBLES_OPEN}, + {STREAK_TOWER_MULTIS_50, STREAK_TOWER_MULTIS_OPEN}, + {STREAK_TOWER_LINK_MULTIS_50, STREAK_TOWER_LINK_MULTIS_OPEN}, }; -static const u32 gUnknown_085DF9CC[][2] = +static const u32 sWinStreakMasks[][2] = { - {0xfffffffe, 0xfffffffd}, - {0xffffbfff, 0xffff7fff}, - {0xfffeffff, 0xfffdffff}, - {0xfffbffff, 0xfff7ffff}, + {~(STREAK_TOWER_SINGLES_50), ~(STREAK_TOWER_SINGLES_OPEN)}, + {~(STREAK_TOWER_DOUBLES_50), ~(STREAK_TOWER_DOUBLES_OPEN)}, + {~(STREAK_TOWER_MULTIS_50), ~(STREAK_TOWER_MULTIS_OPEN)}, + {~(STREAK_TOWER_LINK_MULTIS_50), ~(STREAK_TOWER_LINK_MULTIS_OPEN)}, }; static const u8 gUnknown_085DF9EC[] = @@ -1093,12 +1095,13 @@ static const u8 gUnknown_085DF9EC[] = 0x01, 0x02, 0x03, 0x04, 0x05, 0x08, 0x09, 0x0a, 0x0b, 0x0c }; -static const u8 gUnknown_085DF9F6[] = +// Unclear why this was duplicated +static const u8 sBattleTowerPartySizes2[] = { - [FRONTIER_MODE_SINGLES] = 3, - [FRONTIER_MODE_DOUBLES] = 4, - [FRONTIER_MODE_MULTIS] = 2, - [FRONTIER_MODE_LINK_MULTIS] = 2, + [FRONTIER_MODE_SINGLES] = FRONTIER_PARTY_SIZE, + [FRONTIER_MODE_DOUBLES] = FRONTIER_DOUBLES_PARTY_SIZE, + [FRONTIER_MODE_MULTIS] = FRONTIER_MULTI_PARTY_SIZE, + [FRONTIER_MODE_LINK_MULTIS] = FRONTIER_MULTI_PARTY_SIZE, }; static const u16 gUnknown_085DF9FA[][2] = @@ -1127,22 +1130,22 @@ static const u16 gUnknown_085DFA1A[][2] = {0x00c8, 0x00b7}, }; -static const u8 gUnknown_085DFA42[4] = +static const u8 sBattleTowerPartySizes[FRONTIER_MODE_COUNT] = { - [FRONTIER_MODE_SINGLES] = 3, - [FRONTIER_MODE_DOUBLES] = 4, - [FRONTIER_MODE_MULTIS] = 2, - [FRONTIER_MODE_LINK_MULTIS] = 2, + [FRONTIER_MODE_SINGLES] = FRONTIER_PARTY_SIZE, + [FRONTIER_MODE_DOUBLES] = FRONTIER_DOUBLES_PARTY_SIZE, + [FRONTIER_MODE_MULTIS] = FRONTIER_MULTI_PARTY_SIZE, + [FRONTIER_MODE_LINK_MULTIS] = FRONTIER_MULTI_PARTY_SIZE, }; -static const u16 gUnknown_085DFA46[] = +static const u16 sRecordTrainerSpeechWon[] = { - 0x0c3a, 0x0c3a, 0x0c01, 0x0a2a, 0x0607, 0x0c01 + EC_WORD_YAY, EC_WORD_YAY, EC_WORD_EXCL_EXCL, EC_WORD_I_VE, EC_WORD_WON, EC_WORD_EXCL_EXCL }; -static const u16 gUnknown_085DFA52[] = +static const u16 sRecordTrainerSpeechLost[] = { - 0x1039, 0x122e, 0x0c04, 0x0a3d, 0x0630, 0x0c04 + EC_WORD_TOO, EC_WORD_BAD, EC_WORD_ELLIPSIS, EC_WORD_WE, EC_WORD_LOST, EC_WORD_ELLIPSIS }; // code @@ -1156,12 +1159,12 @@ static void sub_8161F94(void) u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); - gSaveBlock2Ptr->frontier.field_CA8 = 1; + gSaveBlock2Ptr->frontier.challengeStatus = CHALLENGE_STATUS_SAVING; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; - gSaveBlock2Ptr->frontier.field_CA9_a = 0; + gSaveBlock2Ptr->frontier.challengePaused = FALSE; gSaveBlock2Ptr->frontier.field_CA9_b = 0; - sub_81A3ACC(); - if (!(gSaveBlock2Ptr->frontier.field_CDC & gUnknown_085DF9AC[battleMode][lvlMode])) + ResetFrontierTrainerIds(); + if (!(gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode])) gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] = 0; ValidateBattleTowerRecordChecksums(); @@ -1182,10 +1185,10 @@ static void sub_8162054(void) gSpecialVar_Result = GetCurrentBattleTowerWinStreak(lvlMode, battleMode); break; case 2: - gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.field_CDC & gUnknown_085DF9AC[battleMode][lvlMode]) != 0); + gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode]) != 0); break; case 3: - gSaveBlock2Ptr->frontier.field_D07 = gSaveBlock2Ptr->frontier.lvlMode; + gSaveBlock2Ptr->frontier.towerLvlMode = gSaveBlock2Ptr->frontier.lvlMode; break; } } @@ -1204,12 +1207,12 @@ static void sub_81620F4(void) break; case 2: if (gSpecialVar_0x8006) - gSaveBlock2Ptr->frontier.field_CDC |= gUnknown_085DF9AC[battleMode][lvlMode]; + gSaveBlock2Ptr->frontier.winStreakActiveFlags |= sWinStreakFlags[battleMode][lvlMode]; else - gSaveBlock2Ptr->frontier.field_CDC &= gUnknown_085DF9CC[battleMode][lvlMode]; + gSaveBlock2Ptr->frontier.winStreakActiveFlags &= sWinStreakMasks[battleMode][lvlMode]; break; case 3: - gSaveBlock2Ptr->frontier.field_D07 = gSaveBlock2Ptr->frontier.lvlMode; + gSaveBlock2Ptr->frontier.towerLvlMode = gSaveBlock2Ptr->frontier.lvlMode; break; } } @@ -1219,8 +1222,9 @@ static void sub_81621C0(void) if (gTrainerBattleOpponent_A == TRAINER_EREADER) ClearEReaderTrainer(&gSaveBlock2Ptr->frontier.ereaderTrainer); - if (gSaveBlock2Ptr->frontier.field_D04 < 9999) - gSaveBlock2Ptr->frontier.field_D04++; + // below field is never read outside this conditional + if (gSaveBlock2Ptr->frontier.towerNumWins < MAX_STREAK) + gSaveBlock2Ptr->frontier.towerNumWins++; gSaveBlock2Ptr->frontier.curChallengeBattleNum++; SaveCurrentWinStreak(); @@ -1258,7 +1262,7 @@ static bool8 ChooseSpecialBattleTowerTrainer(void) validMons++; } - if (validMons >= gUnknown_085DF9F6[battleMode] + if (validMons >= sBattleTowerPartySizes2[battleMode] && gSaveBlock2Ptr->frontier.towerRecords[i].winStreak == winStreak && gSaveBlock2Ptr->frontier.towerRecords[i].lvlMode == lvlMode && recordHasData @@ -1272,10 +1276,10 @@ static bool8 ChooseSpecialBattleTowerTrainer(void) if (battleMode == FRONTIER_MODE_SINGLES) { ValidateApprenticesChecksums(); - for (i = 0; i < 4; i++) + for (i = 0; i < APPRENTICE_COUNT; i++) { if (gSaveBlock2Ptr->apprentices[i].lvlMode != 0 - && gUnknown_085DF9EC[gSaveBlock2Ptr->apprentices[i].field_1] == winStreak + && gUnknown_085DF9EC[gSaveBlock2Ptr->apprentices[i].numQuestions] == winStreak && gSaveBlock2Ptr->apprentices[i].lvlMode - 1 == lvlMode) { trainerIds[idsCount] = i + TRAINER_RECORD_MIXING_APPRENTICE; @@ -2000,7 +2004,7 @@ static void Unused_CreateApprenticeMons(u16 trainerId, u8 firstMonId) u8 fixedIV = 0; struct Apprentice *apprentice = &gSaveBlock2Ptr->apprentices[0]; - if (apprentice->field_1 < 5) + if (apprentice->numQuestions < 5) fixedIV = 6; else fixedIV = 9; @@ -2178,7 +2182,7 @@ static void sub_8163914(void) else if (trainerId < TRAINER_RECORD_MIXING_APPRENTICE) FrontierSpeechToString(gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].greeting); else - CopyFriendsApprenticeChallengeText(trainerId - TRAINER_RECORD_MIXING_APPRENTICE); + BufferApprenticeChallengeText(trainerId - TRAINER_RECORD_MIXING_APPRENTICE); } static void HandleSpecialTrainerBattleEnd(void) @@ -2244,21 +2248,21 @@ void DoSpecialTrainerBattle(void) switch (VarGet(VAR_FRONTIER_BATTLE_MODE)) { case FRONTIER_MODE_SINGLES: - FillFrontierTrainerParty(3); + FillFrontierTrainerParty(FRONTIER_PARTY_SIZE); break; case FRONTIER_MODE_DOUBLES: - FillFrontierTrainerParty(4); + FillFrontierTrainerParty(FRONTIER_DOUBLES_PARTY_SIZE); gBattleTypeFlags |= BATTLE_TYPE_DOUBLE; break; case FRONTIER_MODE_MULTIS: - FillFrontierTrainersParties(2); + FillFrontierTrainersParties(FRONTIER_MULTI_PARTY_SIZE); gPartnerTrainerId = gSaveBlock2Ptr->frontier.trainerIds[17]; FillPartnerParty(gPartnerTrainerId); gBattleTypeFlags |= BATTLE_TYPE_DOUBLE | BATTLE_TYPE_INGAME_PARTNER | BATTLE_TYPE_MULTI | BATTLE_TYPE_TWO_OPPONENTS; break; case FRONTIER_MODE_LINK_MULTIS: gBattleTypeFlags |= BATTLE_TYPE_DOUBLE | BATTLE_TYPE_LINK | BATTLE_TYPE_MULTI | BATTLE_TYPE_x800000; - FillFrontierTrainersParties(2); + FillFrontierTrainersParties(FRONTIER_MULTI_PARTY_SIZE); break; } CreateTask(Task_StartBattleAfterTransition, 1); @@ -2300,9 +2304,9 @@ void DoSpecialTrainerBattle(void) if (VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES) gBattleTypeFlags |= BATTLE_TYPE_DOUBLE; if (gSaveBlock2Ptr->frontier.lvlMode != FRONTIER_LVL_TENT) - FillFrontierTrainerParty(3); + FillFrontierTrainerParty(FRONTIER_PARTY_SIZE); else - FillTentTrainerParty(3); + FillTentTrainerParty(FRONTIER_PARTY_SIZE); CreateTask(Task_StartBattleAfterTransition, 1); PlayMapChosenOrBattleBGM(0); BattleTransition_StartOnField(sub_80B100C(4)); @@ -2310,9 +2314,9 @@ void DoSpecialTrainerBattle(void) case SPECIAL_BATTLE_ARENA: gBattleTypeFlags = BATTLE_TYPE_TRAINER | BATTLE_TYPE_ARENA; if (gSaveBlock2Ptr->frontier.lvlMode != FRONTIER_LVL_TENT) - FillFrontierTrainerParty(3); + FillFrontierTrainerParty(FRONTIER_PARTY_SIZE); else - FillTentTrainerParty(3); + FillTentTrainerParty(FRONTIER_PARTY_SIZE); CreateTask(Task_StartBattleAfterTransition, 1); PlayMapChosenOrBattleBGM(0); BattleTransition_StartOnField(sub_80B100C(5)); @@ -2328,14 +2332,14 @@ void DoSpecialTrainerBattle(void) break; case SPECIAL_BATTLE_PIKE_SINGLE: gBattleTypeFlags = BATTLE_TYPE_TRAINER | BATTLE_TYPE_BATTLE_TOWER; - FillFrontierTrainerParty(3); + FillFrontierTrainerParty(FRONTIER_PARTY_SIZE); CreateTask(Task_StartBattleAfterTransition, 1); PlayMapChosenOrBattleBGM(0); BattleTransition_StartOnField(sub_80B100C(7)); break; case SPECIAL_BATTLE_PYRAMID: gBattleTypeFlags = BATTLE_TYPE_TRAINER | BATTLE_TYPE_PYRAMID; - FillFrontierTrainerParty(3); + FillFrontierTrainerParty(FRONTIER_PARTY_SIZE); CreateTask(Task_StartBattleAfterTransition, 1); PlayMapChosenOrBattleBGM(0); BattleTransition_StartOnField(sub_80B100C(10)); @@ -2408,7 +2412,7 @@ static void sub_8163EE4(void) playerRecord->speechLost[i] = gSaveBlock1Ptr->easyChatBattleLost[i]; } - for (i = 0; i < 4; i++) + for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++) { if (gSaveBlock2Ptr->frontier.selectedPartyMons[i] != 0) sub_80686FC(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], &playerRecord->party[i]); @@ -2428,10 +2432,10 @@ static void SaveBattleTowerProgress(void) if (gSpecialVar_0x8005 == 0 && (challengeNum > 1 || gSaveBlock2Ptr->frontier.curChallengeBattleNum != 0)) sub_8163EE4(); - gSaveBlock2Ptr->frontier.field_CA8 =gSpecialVar_0x8005; + gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); - gSaveBlock2Ptr->frontier.field_CA9_a = 1; - sub_81A4C30(); + gSaveBlock2Ptr->frontier.challengePaused = TRUE; + SaveGameFrontier(); } static void nullsub_61(void) @@ -2569,10 +2573,10 @@ static void sub_81642A0(void) r10 = 0; ValidateApprenticesChecksums(); - for (i = 0; i < 4; i++) + for (i = 0; i < APPRENTICE_COUNT; i++) { if (gSaveBlock2Ptr->apprentices[i].lvlMode != 0 - && gUnknown_085DF9EC[gSaveBlock2Ptr->apprentices[i].field_1] / 7 <= challengeNum + && gUnknown_085DF9EC[gSaveBlock2Ptr->apprentices[i].numQuestions] / 7 <= challengeNum && gSaveBlock2Ptr->apprentices[i].lvlMode - 1 == lvlMode) { k = 0; @@ -2895,13 +2899,13 @@ static void sub_8164E04(void) GetFrontierTrainerName(text, gTrainerBattleOpponent_A); StripExtCtrlCodes(text); - StringCopy(gSaveBlock2Ptr->frontier.field_BD8, text); - GetBattleTowerTrainerLanguage(&gSaveBlock2Ptr->frontier.field_BEB, gTrainerBattleOpponent_A); - gSaveBlock2Ptr->frontier.field_BD6 = GetMonData(&gEnemyParty[gBattlerPartyIndexes[1]], MON_DATA_SPECIES, NULL); - gSaveBlock2Ptr->frontier.field_BD4 = GetMonData(&gPlayerParty[gBattlerPartyIndexes[0]], MON_DATA_SPECIES, NULL); + StringCopy(gSaveBlock2Ptr->frontier.towerInterview.opponentName, text); + GetBattleTowerTrainerLanguage(&gSaveBlock2Ptr->frontier.towerInterview.opponentLanguage, gTrainerBattleOpponent_A); + gSaveBlock2Ptr->frontier.towerInterview.opponentSpecies = GetMonData(&gEnemyParty[gBattlerPartyIndexes[1]], MON_DATA_SPECIES, NULL); + gSaveBlock2Ptr->frontier.towerInterview.playerSpecies = GetMonData(&gPlayerParty[gBattlerPartyIndexes[0]], MON_DATA_SPECIES, NULL); for (i = 0; i < POKEMON_NAME_LENGTH + 1; i++) - gSaveBlock2Ptr->frontier.field_BE0[i] = gBattleMons[0].nickname[i]; - gSaveBlock2Ptr->frontier.field_D06 = gBattleOutcome; + gSaveBlock2Ptr->frontier.towerInterview.opponentMonNickname[i] = gBattleMons[0].nickname[i]; + gSaveBlock2Ptr->frontier.towerBattleOutcome = gBattleOutcome; } static void ValidateBattleTowerRecordChecksums(void) @@ -2968,13 +2972,13 @@ u16 GetCurrentBattleTowerWinStreak(u8 lvlMode, u8 battleMode) static u8 GetMonCountForBattleMode(u8 battleMode) { - u8 sp[ARRAY_COUNT(gUnknown_085DFA42)]; - memcpy(sp, gUnknown_085DFA42, sizeof(gUnknown_085DFA42)); + u8 partySizes[ARRAY_COUNT(sBattleTowerPartySizes)]; + memcpy(partySizes, sBattleTowerPartySizes, sizeof(sBattleTowerPartySizes)); - if (battleMode < ARRAY_COUNT(gUnknown_085DFA42)) - return sp[battleMode]; + if (battleMode < ARRAY_COUNT(sBattleTowerPartySizes)) + return partySizes[battleMode]; else - return 3; + return FRONTIER_PARTY_SIZE; } struct RibbonCounter @@ -3158,7 +3162,7 @@ static void CopyEReaderTrainerFarewellMessage(void) void sub_81653CC(void) { - if (gSaveBlock2Ptr->frontier.field_CA8 == 1) + if (gSaveBlock2Ptr->frontier.challengeStatus == CHALLENGE_STATUS_SAVING) sub_80F01B8(); if (FlagGet(FLAG_CANCEL_BATTLE_ROOM_CHALLENGE) == TRUE) { @@ -3282,13 +3286,13 @@ bool32 RubyBattleTowerRecordToEmerald(struct RSBattleTowerRecord *src, struct Em { s32 i, validMons = 0; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { if (src->party[i].species) validMons++; } - if (validMons != 3) + if (validMons != FRONTIER_PARTY_SIZE) { memset(dst, 0, sizeof(*dst)); return FALSE; @@ -3298,6 +3302,7 @@ bool32 RubyBattleTowerRecordToEmerald(struct RSBattleTowerRecord *src, struct Em dst->lvlMode = src->lvlMode; dst->winStreak = src->winStreak; // BUG: Reading outside the array. sRubyFacilityClassToEmerald has less than FACILITY_CLASSES_COUNT entries. + // Fix by using ARRAY_COUNT(sRubyFacilityClassToEmerald) for (i = 0; i < FACILITY_CLASSES_COUNT; i++) { if (sRubyFacilityClassToEmerald[i][0] == src->facilityClass) @@ -3312,16 +3317,16 @@ bool32 RubyBattleTowerRecordToEmerald(struct RSBattleTowerRecord *src, struct Em dst->name[i] = src->name[i]; for (i = 0; i < TRAINER_ID_LENGTH; i++) dst->trainerId[i] = src->trainerId[i]; - for (i = 0; i < 6; i++) + for (i = 0; i < EASY_CHAT_BATTLE_WORDS_COUNT; i++) dst->greeting[i] = src->greeting[i]; - for (i = 0; i < 6; i++) - dst->speechWon[i] = gUnknown_085DFA46[i]; - for (i = 0; i < 6; i++) - dst->speechLost[i] = gUnknown_085DFA52[i]; - for (i = 0; i < 3; i++) + for (i = 0; i < EASY_CHAT_BATTLE_WORDS_COUNT; i++) + dst->speechWon[i] = sRecordTrainerSpeechWon[i]; + for (i = 0; i < EASY_CHAT_BATTLE_WORDS_COUNT; i++) + dst->speechLost[i] = sRecordTrainerSpeechLost[i]; + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) dst->party[i] = src->party[i]; - CpuFill32(0, &dst->party[3], sizeof(dst->party[3])); + CpuFill32(0, &dst->party[FRONTIER_PARTY_SIZE], sizeof(dst->party[FRONTIER_PARTY_SIZE])); CalcEmeraldBattleTowerChecksum(dst); return TRUE; } @@ -3331,13 +3336,13 @@ bool32 EmeraldBattleTowerRecordToRuby(struct EmeraldBattleTowerRecord *src, stru { s32 i, validMons = 0; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { if (src->party[i].species) validMons++; } - if (validMons != 3) + if (validMons != FRONTIER_PARTY_SIZE) { memset(dst, 0, sizeof(*dst)); return FALSE; @@ -3347,6 +3352,7 @@ bool32 EmeraldBattleTowerRecordToRuby(struct EmeraldBattleTowerRecord *src, stru dst->lvlMode = src->lvlMode; dst->winStreak = src->winStreak; // BUG: Reading outside the array. sRubyFacilityClassToEmerald has less than FACILITY_CLASSES_COUNT entries. + // Fix by using ARRAY_COUNT(sRubyFacilityClassToEmerald) instead for (i = 0; i < FACILITY_CLASSES_COUNT; i++) { if (sRubyFacilityClassToEmerald[i][1] == src->facilityClass) @@ -3355,15 +3361,15 @@ bool32 EmeraldBattleTowerRecordToRuby(struct EmeraldBattleTowerRecord *src, stru if (i != FACILITY_CLASSES_COUNT) dst->facilityClass = sRubyFacilityClassToEmerald[i][0]; else - dst->facilityClass = 0x24; // FACILITY_CLASS_YOUNGSTER in Ruby/Sapphire. + dst->facilityClass = RS_FACILITY_CLASS_YOUNGSTER; for (i = 0; i < PLAYER_NAME_LENGTH + 1; i++) dst->name[i] = src->name[i]; for (i = 0; i < TRAINER_ID_LENGTH; i++) dst->trainerId[i] = src->trainerId[i]; - for (i = 0; i < 6; i++) + for (i = 0; i < EASY_CHAT_BATTLE_WORDS_COUNT; i++) dst->greeting[i] = src->greeting[i]; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) dst->party[i] = src->party[i]; CalcRubyBattleTowerChecksum(dst); @@ -3393,7 +3399,7 @@ static void ValidateApprenticesChecksums(void) { s32 i, j; - for (i = 0; i < 4; i++) + for (i = 0; i < APPRENTICE_COUNT; i++) { u32 *data = (u32*) &gSaveBlock2Ptr->apprentices[i]; u32 checksum = 0; diff --git a/src/data/battle_frontier/apprentice.h b/src/data/battle_frontier/apprentice.h new file mode 100644 index 000000000..0fdb87f96 --- /dev/null +++ b/src/data/battle_frontier/apprentice.h @@ -0,0 +1,982 @@ +// data/text/apprentice.inc +extern const u8 gText_ApprenticePleaseTeach0[]; +extern const u8 gText_ApprenticePleaseTeach1[]; +extern const u8 gText_ApprenticePleaseTeach2[]; +extern const u8 gText_ApprenticePleaseTeach3[]; +extern const u8 gText_ApprenticePleaseTeach4[]; +extern const u8 gText_ApprenticePleaseTeach5[]; +extern const u8 gText_ApprenticePleaseTeach6[]; +extern const u8 gText_ApprenticePleaseTeach7[]; +extern const u8 gText_ApprenticePleaseTeach8[]; +extern const u8 gText_ApprenticePleaseTeach9[]; +extern const u8 gText_ApprenticePleaseTeach10[]; +extern const u8 gText_ApprenticePleaseTeach11[]; +extern const u8 gText_ApprenticePleaseTeach12[]; +extern const u8 gText_ApprenticePleaseTeach13[]; +extern const u8 gText_ApprenticePleaseTeach14[]; +extern const u8 gText_ApprenticePleaseTeach15[]; +extern const u8 gText_ApprenticeRejectTeaching0[]; +extern const u8 gText_ApprenticeRejectTeaching1[]; +extern const u8 gText_ApprenticeRejectTeaching2[]; +extern const u8 gText_ApprenticeRejectTeaching3[]; +extern const u8 gText_ApprenticeRejectTeaching4[]; +extern const u8 gText_ApprenticeRejectTeaching5[]; +extern const u8 gText_ApprenticeRejectTeaching6[]; +extern const u8 gText_ApprenticeRejectTeaching7[]; +extern const u8 gText_ApprenticeRejectTeaching8[]; +extern const u8 gText_ApprenticeRejectTeaching9[]; +extern const u8 gText_ApprenticeRejectTeaching10[]; +extern const u8 gText_ApprenticeRejectTeaching11[]; +extern const u8 gText_ApprenticeRejectTeaching12[]; +extern const u8 gText_ApprenticeRejectTeaching13[]; +extern const u8 gText_ApprenticeRejectTeaching14[]; +extern const u8 gText_ApprenticeRejectTeaching15[]; +extern const u8 gText_ApprenticeWhichLevelMode0[]; +extern const u8 gText_ApprenticeWhichLevelMode1[]; +extern const u8 gText_ApprenticeWhichLevelMode2[]; +extern const u8 gText_ApprenticeWhichLevelMode3[]; +extern const u8 gText_ApprenticeWhichLevelMode4[]; +extern const u8 gText_ApprenticeWhichLevelMode5[]; +extern const u8 gText_ApprenticeWhichLevelMode6[]; +extern const u8 gText_ApprenticeWhichLevelMode7[]; +extern const u8 gText_ApprenticeWhichLevelMode8[]; +extern const u8 gText_ApprenticeWhichLevelMode9[]; +extern const u8 gText_ApprenticeWhichLevelMode10[]; +extern const u8 gText_ApprenticeWhichLevelMode11[]; +extern const u8 gText_ApprenticeWhichLevelMode12[]; +extern const u8 gText_ApprenticeWhichLevelMode13[]; +extern const u8 gText_ApprenticeWhichLevelMode14[]; +extern const u8 gText_ApprenticeWhichLevelMode15[]; +extern const u8 gText_ApprenticeLevelModeThanks0[]; +extern const u8 gText_ApprenticeLevelModeThanks1[]; +extern const u8 gText_ApprenticeLevelModeThanks2[]; +extern const u8 gText_ApprenticeLevelModeThanks3[]; +extern const u8 gText_ApprenticeLevelModeThanks4[]; +extern const u8 gText_ApprenticeLevelModeThanks5[]; +extern const u8 gText_ApprenticeLevelModeThanks6[]; +extern const u8 gText_ApprenticeLevelModeThanks7[]; +extern const u8 gText_ApprenticeLevelModeThanks8[]; +extern const u8 gText_ApprenticeLevelModeThanks9[]; +extern const u8 gText_ApprenticeLevelModeThanks10[]; +extern const u8 gText_ApprenticeLevelModeThanks11[]; +extern const u8 gText_ApprenticeLevelModeThanks12[]; +extern const u8 gText_ApprenticeLevelModeThanks13[]; +extern const u8 gText_ApprenticeLevelModeThanks14[]; +extern const u8 gText_ApprenticeLevelModeThanks15[]; + +extern const u8 gText_ApprenticeWhichMon0[]; +extern const u8 gText_ApprenticeWhichMon1[]; +extern const u8 gText_ApprenticeWhichMon2[]; +extern const u8 gText_ApprenticeWhichMon3[]; +extern const u8 gText_ApprenticeWhichMon4[]; +extern const u8 gText_ApprenticeWhichMon5[]; +extern const u8 gText_ApprenticeWhichMon6[]; +extern const u8 gText_ApprenticeWhichMon7[]; +extern const u8 gText_ApprenticeWhichMon8[]; +extern const u8 gText_ApprenticeWhichMon9[]; +extern const u8 gText_ApprenticeWhichMon10[]; +extern const u8 gText_ApprenticeWhichMon11[]; +extern const u8 gText_ApprenticeWhichMon12[]; +extern const u8 gText_ApprenticeWhichMon13[]; +extern const u8 gText_ApprenticeWhichMon14[]; +extern const u8 gText_ApprenticeWhichMon15[]; +extern const u8 gText_ApprenticeMonThanks0[]; +extern const u8 gText_ApprenticeMonThanks1[]; +extern const u8 gText_ApprenticeMonThanks2[]; +extern const u8 gText_ApprenticeMonThanks3[]; +extern const u8 gText_ApprenticeMonThanks4[]; +extern const u8 gText_ApprenticeMonThanks5[]; +extern const u8 gText_ApprenticeMonThanks6[]; +extern const u8 gText_ApprenticeMonThanks7[]; +extern const u8 gText_ApprenticeMonThanks8[]; +extern const u8 gText_ApprenticeMonThanks9[]; +extern const u8 gText_ApprenticeMonThanks10[]; +extern const u8 gText_ApprenticeMonThanks11[]; +extern const u8 gText_ApprenticeMonThanks12[]; +extern const u8 gText_ApprenticeMonThanks13[]; +extern const u8 gText_ApprenticeMonThanks14[]; +extern const u8 gText_ApprenticeMonThanks15[]; + +extern const u8 gText_ApprenticeWhatHeldItem0[]; +extern const u8 gText_ApprenticeWhatHeldItem1[]; +extern const u8 gText_ApprenticeWhatHeldItem2[]; +extern const u8 gText_ApprenticeWhatHeldItem3[]; +extern const u8 gText_ApprenticeWhatHeldItem4[]; +extern const u8 gText_ApprenticeWhatHeldItem5[]; +extern const u8 gText_ApprenticeWhatHeldItem6[]; +extern const u8 gText_ApprenticeWhatHeldItem7[]; +extern const u8 gText_ApprenticeWhatHeldItem8[]; +extern const u8 gText_ApprenticeWhatHeldItem9[]; +extern const u8 gText_ApprenticeWhatHeldItem10[]; +extern const u8 gText_ApprenticeWhatHeldItem11[]; +extern const u8 gText_ApprenticeWhatHeldItem12[]; +extern const u8 gText_ApprenticeWhatHeldItem13[]; +extern const u8 gText_ApprenticeWhatHeldItem14[]; +extern const u8 gText_ApprenticeWhatHeldItem15[]; +extern const u8 gText_ApprenticeHoldNothing0[]; +extern const u8 gText_ApprenticeHoldNothing1[]; +extern const u8 gText_ApprenticeHoldNothing2[]; +extern const u8 gText_ApprenticeHoldNothing3[]; +extern const u8 gText_ApprenticeHoldNothing4[]; +extern const u8 gText_ApprenticeHoldNothing5[]; +extern const u8 gText_ApprenticeHoldNothing6[]; +extern const u8 gText_ApprenticeHoldNothing7[]; +extern const u8 gText_ApprenticeHoldNothing8[]; +extern const u8 gText_ApprenticeHoldNothing9[]; +extern const u8 gText_ApprenticeHoldNothing10[]; +extern const u8 gText_ApprenticeHoldNothing11[]; +extern const u8 gText_ApprenticeHoldNothing12[]; +extern const u8 gText_ApprenticeHoldNothing13[]; +extern const u8 gText_ApprenticeHoldNothing14[]; +extern const u8 gText_ApprenticeHoldNothing15[]; +extern const u8 gText_ApprenticeThanksNoHeldItem0[]; +extern const u8 gText_ApprenticeThanksNoHeldItem1[]; +extern const u8 gText_ApprenticeThanksNoHeldItem2[]; +extern const u8 gText_ApprenticeThanksNoHeldItem3[]; +extern const u8 gText_ApprenticeThanksNoHeldItem4[]; +extern const u8 gText_ApprenticeThanksNoHeldItem5[]; +extern const u8 gText_ApprenticeThanksNoHeldItem6[]; +extern const u8 gText_ApprenticeThanksNoHeldItem7[]; +extern const u8 gText_ApprenticeThanksNoHeldItem8[]; +extern const u8 gText_ApprenticeThanksNoHeldItem9[]; +extern const u8 gText_ApprenticeThanksNoHeldItem10[]; +extern const u8 gText_ApprenticeThanksNoHeldItem11[]; +extern const u8 gText_ApprenticeThanksNoHeldItem12[]; +extern const u8 gText_ApprenticeThanksNoHeldItem13[]; +extern const u8 gText_ApprenticeThanksNoHeldItem14[]; +extern const u8 gText_ApprenticeThanksNoHeldItem15[]; +extern const u8 gText_ApprenticeThanksHeldItem0[]; +extern const u8 gText_ApprenticeThanksHeldItem1[]; +extern const u8 gText_ApprenticeThanksHeldItem2[]; +extern const u8 gText_ApprenticeThanksHeldItem3[]; +extern const u8 gText_ApprenticeThanksHeldItem4[]; +extern const u8 gText_ApprenticeThanksHeldItem5[]; +extern const u8 gText_ApprenticeThanksHeldItem6[]; +extern const u8 gText_ApprenticeThanksHeldItem7[]; +extern const u8 gText_ApprenticeThanksHeldItem8[]; +extern const u8 gText_ApprenticeThanksHeldItem9[]; +extern const u8 gText_ApprenticeThanksHeldItem10[]; +extern const u8 gText_ApprenticeThanksHeldItem11[]; +extern const u8 gText_ApprenticeThanksHeldItem12[]; +extern const u8 gText_ApprenticeThanksHeldItem13[]; +extern const u8 gText_ApprenticeThanksHeldItem14[]; +extern const u8 gText_ApprenticeThanksHeldItem15[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended0[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended1[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended2[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended3[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended4[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended5[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended6[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended7[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended8[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended9[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended10[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended11[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended12[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended13[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended14[]; +extern const u8 gText_ApprenticeItemAlreadyRecommended15[]; + +extern const u8 gText_ApprenticeWhichMove0[]; +extern const u8 gText_ApprenticeWhichMove1[]; +extern const u8 gText_ApprenticeWhichMove2[]; +extern const u8 gText_ApprenticeWhichMove3[]; +extern const u8 gText_ApprenticeWhichMove4[]; +extern const u8 gText_ApprenticeWhichMove5[]; +extern const u8 gText_ApprenticeWhichMove6[]; +extern const u8 gText_ApprenticeWhichMove7[]; +extern const u8 gText_ApprenticeWhichMove8[]; +extern const u8 gText_ApprenticeWhichMove9[]; +extern const u8 gText_ApprenticeWhichMove10[]; +extern const u8 gText_ApprenticeWhichMove11[]; +extern const u8 gText_ApprenticeWhichMove12[]; +extern const u8 gText_ApprenticeWhichMove13[]; +extern const u8 gText_ApprenticeWhichMove14[]; +extern const u8 gText_ApprenticeWhichMove15[]; +extern const u8 gText_ApprenticeMoveThanks0[]; +extern const u8 gText_ApprenticeMoveThanks1[]; +extern const u8 gText_ApprenticeMoveThanks2[]; +extern const u8 gText_ApprenticeMoveThanks3[]; +extern const u8 gText_ApprenticeMoveThanks4[]; +extern const u8 gText_ApprenticeMoveThanks5[]; +extern const u8 gText_ApprenticeMoveThanks6[]; +extern const u8 gText_ApprenticeMoveThanks7[]; +extern const u8 gText_ApprenticeMoveThanks8[]; +extern const u8 gText_ApprenticeMoveThanks9[]; +extern const u8 gText_ApprenticeMoveThanks10[]; +extern const u8 gText_ApprenticeMoveThanks11[]; +extern const u8 gText_ApprenticeMoveThanks12[]; +extern const u8 gText_ApprenticeMoveThanks13[]; +extern const u8 gText_ApprenticeMoveThanks14[]; +extern const u8 gText_ApprenticeMoveThanks15[]; + +extern const u8 gText_ApprenticeWhichMonFirst0[]; +extern const u8 gText_ApprenticeWhichMonFirst1[]; +extern const u8 gText_ApprenticeWhichMonFirst2[]; +extern const u8 gText_ApprenticeWhichMonFirst3[]; +extern const u8 gText_ApprenticeWhichMonFirst4[]; +extern const u8 gText_ApprenticeWhichMonFirst5[]; +extern const u8 gText_ApprenticeWhichMonFirst6[]; +extern const u8 gText_ApprenticeWhichMonFirst7[]; +extern const u8 gText_ApprenticeWhichMonFirst8[]; +extern const u8 gText_ApprenticeWhichMonFirst9[]; +extern const u8 gText_ApprenticeWhichMonFirst10[]; +extern const u8 gText_ApprenticeWhichMonFirst11[]; +extern const u8 gText_ApprenticeWhichMonFirst12[]; +extern const u8 gText_ApprenticeWhichMonFirst13[]; +extern const u8 gText_ApprenticeWhichMonFirst14[]; +extern const u8 gText_ApprenticeWhichMonFirst15[]; +extern const u8 gText_ApprenticeMonFirstThanks0[]; +extern const u8 gText_ApprenticeMonFirstThanks1[]; +extern const u8 gText_ApprenticeMonFirstThanks2[]; +extern const u8 gText_ApprenticeMonFirstThanks3[]; +extern const u8 gText_ApprenticeMonFirstThanks4[]; +extern const u8 gText_ApprenticeMonFirstThanks5[]; +extern const u8 gText_ApprenticeMonFirstThanks6[]; +extern const u8 gText_ApprenticeMonFirstThanks7[]; +extern const u8 gText_ApprenticeMonFirstThanks8[]; +extern const u8 gText_ApprenticeMonFirstThanks9[]; +extern const u8 gText_ApprenticeMonFirstThanks10[]; +extern const u8 gText_ApprenticeMonFirstThanks11[]; +extern const u8 gText_ApprenticeMonFirstThanks12[]; +extern const u8 gText_ApprenticeMonFirstThanks13[]; +extern const u8 gText_ApprenticeMonFirstThanks14[]; +extern const u8 gText_ApprenticeMonFirstThanks15[]; + +extern const u8 gText_ApprenticePickWinSpeech0[]; +extern const u8 gText_ApprenticePickWinSpeech1[]; +extern const u8 gText_ApprenticePickWinSpeech2[]; +extern const u8 gText_ApprenticePickWinSpeech3[]; +extern const u8 gText_ApprenticePickWinSpeech4[]; +extern const u8 gText_ApprenticePickWinSpeech5[]; +extern const u8 gText_ApprenticePickWinSpeech6[]; +extern const u8 gText_ApprenticePickWinSpeech7[]; +extern const u8 gText_ApprenticePickWinSpeech8[]; +extern const u8 gText_ApprenticePickWinSpeech9[]; +extern const u8 gText_ApprenticePickWinSpeech10[]; +extern const u8 gText_ApprenticePickWinSpeech11[]; +extern const u8 gText_ApprenticePickWinSpeech12[]; +extern const u8 gText_ApprenticePickWinSpeech13[]; +extern const u8 gText_ApprenticePickWinSpeech14[]; +extern const u8 gText_ApprenticePickWinSpeech15[]; +extern const u8 gText_ApprenticeWinSpeechThanks0[]; +extern const u8 gText_ApprenticeWinSpeechThanks1[]; +extern const u8 gText_ApprenticeWinSpeechThanks2[]; +extern const u8 gText_ApprenticeWinSpeechThanks3[]; +extern const u8 gText_ApprenticeWinSpeechThanks4[]; +extern const u8 gText_ApprenticeWinSpeechThanks5[]; +extern const u8 gText_ApprenticeWinSpeechThanks6[]; +extern const u8 gText_ApprenticeWinSpeechThanks7[]; +extern const u8 gText_ApprenticeWinSpeechThanks8[]; +extern const u8 gText_ApprenticeWinSpeechThanks9[]; +extern const u8 gText_ApprenticeWinSpeechThanks10[]; +extern const u8 gText_ApprenticeWinSpeechThanks11[]; +extern const u8 gText_ApprenticeWinSpeechThanks12[]; +extern const u8 gText_ApprenticeWinSpeechThanks13[]; +extern const u8 gText_ApprenticeWinSpeechThanks14[]; +extern const u8 gText_ApprenticeWinSpeechThanks15[]; + +extern const u8 gText_ApprenticeChallenge0[]; +extern const u8 gText_ApprenticeChallenge1[]; +extern const u8 gText_ApprenticeChallenge2[]; +extern const u8 gText_ApprenticeChallenge3[]; +extern const u8 gText_ApprenticeChallenge4[]; +extern const u8 gText_ApprenticeChallenge5[]; +extern const u8 gText_ApprenticeChallenge6[]; +extern const u8 gText_ApprenticeChallenge7[]; +extern const u8 gText_ApprenticeChallenge8[]; +extern const u8 gText_ApprenticeChallenge9[]; +extern const u8 gText_ApprenticeChallenge10[]; +extern const u8 gText_ApprenticeChallenge11[]; +extern const u8 gText_ApprenticeChallenge12[]; +extern const u8 gText_ApprenticeChallenge13[]; +extern const u8 gText_ApprenticeChallenge14[]; +extern const u8 gText_ApprenticeChallenge15[]; + +const struct ApprenticeTrainer gApprentices[NUM_APPRENTICES] = +{ + { + .name = {_("サダヒロ"), _("ALANN"), _("ALAIN"), _("ADELFO"), _("CLAUS"), _("TEO")}, + .otId = 0xBDC9, + .facilityClass = FACILITY_CLASS_BUG_CATCHER, + .species = {SPECIES_BEAUTIFLY, SPECIES_DUSTOX, SPECIES_ILLUMISE, SPECIES_SHIFTRY, SPECIES_BRELOOM, SPECIES_NINJASK, SPECIES_SHEDINJA, SPECIES_PINSIR, SPECIES_HERACROSS, SPECIES_VOLBEAT}, + .id = 0, + .speechLost = {EC_WORD_NO, EC_WORD_MISTAKE, EC_WORD_EXCL, EC_WORD_I, EC_WORD_LOST, EC_WORD_BADLY}, + }, + { + .name = {_("ヒロオ"), _("LIONEL"), _("LIONEL"), _("CAIO"), _("LUDWIG"), _("LEO")}, + .otId = 0xCF09, + .facilityClass = FACILITY_CLASS_YOUNGSTER, + .species = {SPECIES_SWELLOW, SPECIES_SWALOT, SPECIES_SHUCKLE, SPECIES_MANECTRIC, SPECIES_TORKOAL, SPECIES_HARIYAMA, SPECIES_MIGHTYENA, SPECIES_LUDICOLO, SPECIES_CRAWDAUNT, SPECIES_WHISCASH}, + .id = 1, + .speechLost = {EC_WORD_OKAY, EC_WORD_I, EC_WORD_LOST, EC_WORD_YOU_RE, EC_WORD_A, EC_WORD_MASTER}, + }, + { + .name = {_("ケイジ"), _("SONNY"), _("HERVE"), _("FEDRO"), _("WENZEL"), _("SANTI")}, + .otId = 0x2E34, + .facilityClass = FACILITY_CLASS_SCHOOL_KID_M, + .species = {SPECIES_LINOONE, SPECIES_MIGHTYENA, SPECIES_WHISCASH, SPECIES_ZANGOOSE, SPECIES_SEVIPER, SPECIES_NINETALES, SPECIES_KECLEON, SPECIES_SHUCKLE, SPECIES_MANECTRIC, SPECIES_MACHAMP}, + .id = 2, + .speechLost = {EC_WORD_I, EC_WORD_WENT, EC_WORD_AND, EC_WORD_LOST, EC_WORD_AWW, EC_WORD_ELLIPSIS}, + }, + { + .name = {_("ユラ"), _("LAYLA"), _("LAYLA"), _("ASTRID"), _("SONJA"), _("LOLA")}, + .otId = 0x84EF, + .facilityClass = FACILITY_CLASS_LASS, + .species = {SPECIES_SWALOT, SPECIES_XATU, SPECIES_ALTARIA, SPECIES_GOLDUCK, SPECIES_FLYGON, SPECIES_ALAKAZAM, SPECIES_GARDEVOIR, SPECIES_WAILORD, SPECIES_GRUMPIG, SPECIES_MIGHTYENA}, + .id = 3, + .speechLost = {EC_WORD_IS, EC_WORD_THIS, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_QUES, 0xFFFF}, + }, + { + .name = {_("ヨウカ"), _("MACY"), _("AMELIE"), _("CLEO"), _("MARIA"), _("ELISA")}, + .otId = 0x1E43, + .facilityClass = FACILITY_CLASS_SCHOOL_KID_F, + .species = {SPECIES_WIGGLYTUFF, SPECIES_LINOONE, SPECIES_KINGDRA, SPECIES_DELCATTY, SPECIES_RAICHU, SPECIES_FEAROW, SPECIES_STARMIE, SPECIES_MEDICHAM, SPECIES_SHIFTRY, SPECIES_BEAUTIFLY}, + .id = 4, + .speechLost = {EC_WORD_THIS, EC_WORD_WON_T, EC_WORD_BE, EC_WORD_HAPPENING, EC_WORD_NEXT, EC_WORD_TIME}, + }, + { + .name = {_("ヤスシ"), _("DONTE"), _("BRAHIM"), _("GLAUCO"), _("JOSEF"), _("ROQUE")}, + .otId = 0x379F, + .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M, + .species = {SPECIES_STARMIE, SPECIES_DODRIO, SPECIES_AGGRON, SPECIES_MAGNETON, SPECIES_MACHAMP, SPECIES_ARMALDO, SPECIES_HERACROSS, SPECIES_NOSEPASS, SPECIES_EXPLOUD, SPECIES_MIGHTYENA}, + .id = 5, + .speechLost = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_RUN, EC_WORD_BYE_BYE, EC_WORD_EXCL}, + }, + { + .name = {_("ミサオ"), _("AMIRA"), _("LAURE"), _("DAFNE"), _("AMELIE"), _("LARA")}, + .otId = 0xF555, + .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F, + .species = {SPECIES_STARMIE, SPECIES_DODRIO, SPECIES_MAGNETON, SPECIES_MEDICHAM, SPECIES_MIGHTYENA, SPECIES_GLALIE, SPECIES_GOLEM, SPECIES_ELECTRODE, SPECIES_PELIPPER, SPECIES_SHARPEDO}, + .id = 6, + .speechLost = {EC_WORD_AHAHA, EC_WORD_DEFEATED, EC_WORD_EXCL, EC_WORD_IT_S, EC_WORD_NOTHING, EC_WORD_EXCL}, + }, + { + .name = {_("カズサ"), _("KALI"), _("JODIE"), _("ILENIA"), _("KARO"), _("ELSA")}, + .otId = 0x8D26, + .facilityClass = FACILITY_CLASS_BEAUTY, + .species = {SPECIES_NINETALES, SPECIES_ALAKAZAM, SPECIES_SCEPTILE, SPECIES_SALAMENCE, SPECIES_GOLDUCK, SPECIES_MAWILE, SPECIES_WEEZING, SPECIES_LANTURN, SPECIES_GARDEVOIR, SPECIES_MILOTIC}, + .id = 7, + .speechLost = {EC_WORD_YOU_RE, EC_WORD_STRONG, EC_WORD_AREN_T, EC_WORD_YOU, EC_WORD_QUES, 0xFFFF}, + }, + { + .name = {_("スミレ"), _("ANNIE"), _("ANNIE"), _("IMELDA"), _("INES"), _("ROSA")}, + .otId = 0x800C, + .facilityClass = FACILITY_CLASS_AROMA_LADY, + .species = {SPECIES_SCEPTILE, SPECIES_VILEPLUME, SPECIES_BELLOSSOM, SPECIES_ROSELIA, SPECIES_CORSOLA, SPECIES_FLYGON, SPECIES_BRELOOM, SPECIES_MILOTIC, SPECIES_ALTARIA, SPECIES_CRADILY}, + .id = 8, + .speechLost = {EC_WORD_WHAT, EC_WORD_TOUGH, EC_WORD_POKEMON, EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_EXCL}, + }, + { + .name = {_("アキノリ"), _("DILLEN"), _("RENE"), _("INDRO"), _("DETLEF"), _("PEDRO")}, + .otId = 0x469f, + .facilityClass = FACILITY_CLASS_HIKER, + .species = {SPECIES_SKARMORY, SPECIES_GOLEM, SPECIES_BLAZIKEN, SPECIES_CAMERUPT, SPECIES_DONPHAN, SPECIES_MUK, SPECIES_SALAMENCE, SPECIES_TROPIUS, SPECIES_SOLROCK, SPECIES_RHYDON}, + .id = 9, + .speechLost = {EC_WORD_WE, EC_WORD_WERE, EC_WORD_JUST, EC_WORD_SHREDDED, EC_WORD_ELLIPSIS, 0xFFFF}, + }, + { + .name = {_("トウゾウ"), _("DALLAS"), _("BRUNO"), _("LEARCO"), _("ANSGAR"), _("MANOLO")}, + .otId = 0x71FC, + .facilityClass = FACILITY_CLASS_FISHERMAN, + .species = {SPECIES_SEAKING, SPECIES_STARMIE, SPECIES_GOLDUCK, SPECIES_TENTACRUEL, SPECIES_OCTILLERY, SPECIES_GOREBYSS, SPECIES_GLALIE, SPECIES_WAILORD, SPECIES_SHARPEDO, SPECIES_KINGDRA}, + .id = 10, + .speechLost = {EC_WORD_YOUR, EC_WORD_WIN, EC_WORD_ANGERS, EC_WORD_ME, EC_WORD_EXCL, 0xFFFF}, + }, + { + .name = {_("セイヤ"), _("FRANK"), _("FRANK"), _("OLINDO"), _("FRANK"), _("MAURO")}, + .otId = 0xA39E, + .facilityClass = FACILITY_CLASS_SAILOR, + .species = {SPECIES_QUAGSIRE, SPECIES_STARMIE, SPECIES_PELIPPER, SPECIES_CRAWDAUNT, SPECIES_WAILORD, SPECIES_GYARADOS, SPECIES_SWAMPERT, SPECIES_LANTURN, SPECIES_WHISCASH, SPECIES_SHUCKLE}, + .id = 11, + .speechLost = {EC_WORD_LOSING, EC_WORD_DOESN_T, EC_MOVE(CUT), EC_WORD_ME, EC_WORD_DEEP, EC_WORD_OK_QUES}, + }, + { + .name = {_("リュウジ"), _("LAMONT"), _("XAV"), _("ORFEO"), _("JÜRGEN"), _("JORGE")}, + .otId = 0xE590, + .facilityClass = FACILITY_CLASS_GUITARIST, + .species = {SPECIES_ABSOL, SPECIES_CROBAT, SPECIES_EXPLOUD, SPECIES_MAGNETON, SPECIES_SHARPEDO, SPECIES_MANECTRIC, SPECIES_METAGROSS, SPECIES_ELECTRODE, SPECIES_NOSEPASS, SPECIES_WEEZING}, + .id = 12, + .speechLost = {EC_WORD_A, EC_WORD_LOSS, EC_WORD_IS, EC_WORD_WHAT, EC_WORD_THIS, EC_WORD_IS}, + }, + { + .name = {_("カツアキ"), _("TYRESE"), _("ANDY"), _("PARIDE"), _("DAVID"), _("CHICHO")}, + .otId = 0xD018, + .facilityClass = FACILITY_CLASS_BLACK_BELT, + .species = {SPECIES_BLAZIKEN, SPECIES_GOLEM, SPECIES_MACHAMP, SPECIES_RHYDON, SPECIES_HARIYAMA, SPECIES_AGGRON, SPECIES_MEDICHAM, SPECIES_ZANGOOSE, SPECIES_VIGOROTH, SPECIES_SLAKING}, + .id = 13, + .speechLost = {EC_WORD_I_AM, EC_WORD_TOO_WEAK, EC_WORD_AND, EC_WORD_LOW, EC_WORD_OF, EC_WORD_POWER}, + }, + { + .name = {_("トシミツ"), _("DANTE"), _("DANTE"), _("RAOUL"), _("LOTHAR"), _("PABLO")}, + .otId = 0xBC75, + .facilityClass = FACILITY_CLASS_RUIN_MANIAC, + .species = {SPECIES_SCEPTILE, SPECIES_SANDSLASH, SPECIES_FLYGON, SPECIES_CLAYDOL, SPECIES_ARMALDO, SPECIES_CROBAT, SPECIES_CRADILY, SPECIES_SOLROCK, SPECIES_LUNATONE, SPECIES_GOLEM}, + .id = 14, + .speechLost = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_UNDERSTAND, EC_WORD_WHAT, EC_WORD_IS, EC_WORD_HAPPENING}, + }, + { + .name = {_("ローウェン"), _("ARTURO"), _("ARTURO"), _("ROMOLO"), _("BRIAN"), _("ARTURO")}, + .otId = 0xFA02, + .facilityClass = FACILITY_CLASS_GENTLEMAN, + .species = {SPECIES_ABSOL, SPECIES_MIGHTYENA, SPECIES_ALAKAZAM, SPECIES_BANETTE, SPECIES_NINETALES, SPECIES_CLAYDOL, SPECIES_MUK, SPECIES_SALAMENCE, SPECIES_WALREIN, SPECIES_DUSCLOPS}, + .id = 15, + .speechLost = {EC_WORD_THIS, EC_WORD_HAS, EC_WORD_TO, EC_WORD_BE, EC_WORD_A, EC_WORD_LIE}, + }, +}; + +// Sequence of 4 messages for the first meeting with the apprentice +static const u8 *const sApprenticeFirstMeetingTexts[NUM_APPRENTICES][4] = +{ + {gText_ApprenticePleaseTeach0, gText_ApprenticeRejectTeaching0, gText_ApprenticeWhichLevelMode0, gText_ApprenticeLevelModeThanks0}, + {gText_ApprenticePleaseTeach1, gText_ApprenticeRejectTeaching1, gText_ApprenticeWhichLevelMode1, gText_ApprenticeLevelModeThanks1}, + {gText_ApprenticePleaseTeach2, gText_ApprenticeRejectTeaching2, gText_ApprenticeWhichLevelMode2, gText_ApprenticeLevelModeThanks2}, + {gText_ApprenticePleaseTeach3, gText_ApprenticeRejectTeaching3, gText_ApprenticeWhichLevelMode3, gText_ApprenticeLevelModeThanks3}, + {gText_ApprenticePleaseTeach4, gText_ApprenticeRejectTeaching4, gText_ApprenticeWhichLevelMode4, gText_ApprenticeLevelModeThanks4}, + {gText_ApprenticePleaseTeach5, gText_ApprenticeRejectTeaching5, gText_ApprenticeWhichLevelMode5, gText_ApprenticeLevelModeThanks5}, + {gText_ApprenticePleaseTeach6, gText_ApprenticeRejectTeaching6, gText_ApprenticeWhichLevelMode6, gText_ApprenticeLevelModeThanks6}, + {gText_ApprenticePleaseTeach7, gText_ApprenticeRejectTeaching7, gText_ApprenticeWhichLevelMode7, gText_ApprenticeLevelModeThanks7}, + {gText_ApprenticePleaseTeach8, gText_ApprenticeRejectTeaching8, gText_ApprenticeWhichLevelMode8, gText_ApprenticeLevelModeThanks8}, + {gText_ApprenticePleaseTeach9, gText_ApprenticeRejectTeaching9, gText_ApprenticeWhichLevelMode9, gText_ApprenticeLevelModeThanks9}, + {gText_ApprenticePleaseTeach10, gText_ApprenticeRejectTeaching10, gText_ApprenticeWhichLevelMode10, gText_ApprenticeLevelModeThanks10}, + {gText_ApprenticePleaseTeach11, gText_ApprenticeRejectTeaching11, gText_ApprenticeWhichLevelMode11, gText_ApprenticeLevelModeThanks11}, + {gText_ApprenticePleaseTeach12, gText_ApprenticeRejectTeaching12, gText_ApprenticeWhichLevelMode12, gText_ApprenticeLevelModeThanks12}, + {gText_ApprenticePleaseTeach13, gText_ApprenticeRejectTeaching13, gText_ApprenticeWhichLevelMode13, gText_ApprenticeLevelModeThanks13}, + {gText_ApprenticePleaseTeach14, gText_ApprenticeRejectTeaching14, gText_ApprenticeWhichLevelMode14, gText_ApprenticeLevelModeThanks14}, + {gText_ApprenticePleaseTeach15, gText_ApprenticeRejectTeaching15, gText_ApprenticeWhichLevelMode15, gText_ApprenticeLevelModeThanks15}, +}; + +static const u8 *const sApprenticeWhichMonTexts[NUM_APPRENTICES][2] = +{ + {gText_ApprenticeWhichMon0, gText_ApprenticeMonThanks0}, + {gText_ApprenticeWhichMon1, gText_ApprenticeMonThanks1}, + {gText_ApprenticeWhichMon2, gText_ApprenticeMonThanks2}, + {gText_ApprenticeWhichMon3, gText_ApprenticeMonThanks3}, + {gText_ApprenticeWhichMon4, gText_ApprenticeMonThanks4}, + {gText_ApprenticeWhichMon5, gText_ApprenticeMonThanks5}, + {gText_ApprenticeWhichMon6, gText_ApprenticeMonThanks6}, + {gText_ApprenticeWhichMon7, gText_ApprenticeMonThanks7}, + {gText_ApprenticeWhichMon8, gText_ApprenticeMonThanks8}, + {gText_ApprenticeWhichMon9, gText_ApprenticeMonThanks9}, + {gText_ApprenticeWhichMon10, gText_ApprenticeMonThanks10}, + {gText_ApprenticeWhichMon11, gText_ApprenticeMonThanks11}, + {gText_ApprenticeWhichMon12, gText_ApprenticeMonThanks12}, + {gText_ApprenticeWhichMon13, gText_ApprenticeMonThanks13}, + {gText_ApprenticeWhichMon14, gText_ApprenticeMonThanks14}, + {gText_ApprenticeWhichMon15, gText_ApprenticeMonThanks15}, +}; + +// Sequence of 5 messages for suggesting a held item to the apprentice +static const u8 *const sApprenticeHeldItemTexts[NUM_APPRENTICES][5] = +{ + {gText_ApprenticeWhatHeldItem0, gText_ApprenticeHoldNothing0, gText_ApprenticeThanksNoHeldItem0, gText_ApprenticeThanksHeldItem0, gText_ApprenticeItemAlreadyRecommended0}, + {gText_ApprenticeWhatHeldItem1, gText_ApprenticeHoldNothing1, gText_ApprenticeThanksNoHeldItem1, gText_ApprenticeThanksHeldItem1, gText_ApprenticeItemAlreadyRecommended1}, + {gText_ApprenticeWhatHeldItem2, gText_ApprenticeHoldNothing2, gText_ApprenticeThanksNoHeldItem2, gText_ApprenticeThanksHeldItem2, gText_ApprenticeItemAlreadyRecommended2}, + {gText_ApprenticeWhatHeldItem3, gText_ApprenticeHoldNothing3, gText_ApprenticeThanksNoHeldItem3, gText_ApprenticeThanksHeldItem3, gText_ApprenticeItemAlreadyRecommended3}, + {gText_ApprenticeWhatHeldItem4, gText_ApprenticeHoldNothing4, gText_ApprenticeThanksNoHeldItem4, gText_ApprenticeThanksHeldItem4, gText_ApprenticeItemAlreadyRecommended4}, + {gText_ApprenticeWhatHeldItem5, gText_ApprenticeHoldNothing5, gText_ApprenticeThanksNoHeldItem5, gText_ApprenticeThanksHeldItem5, gText_ApprenticeItemAlreadyRecommended5}, + {gText_ApprenticeWhatHeldItem6, gText_ApprenticeHoldNothing6, gText_ApprenticeThanksNoHeldItem6, gText_ApprenticeThanksHeldItem6, gText_ApprenticeItemAlreadyRecommended6}, + {gText_ApprenticeWhatHeldItem7, gText_ApprenticeHoldNothing7, gText_ApprenticeThanksNoHeldItem7, gText_ApprenticeThanksHeldItem7, gText_ApprenticeItemAlreadyRecommended7}, + {gText_ApprenticeWhatHeldItem8, gText_ApprenticeHoldNothing8, gText_ApprenticeThanksNoHeldItem8, gText_ApprenticeThanksHeldItem8, gText_ApprenticeItemAlreadyRecommended8}, + {gText_ApprenticeWhatHeldItem9, gText_ApprenticeHoldNothing9, gText_ApprenticeThanksNoHeldItem9, gText_ApprenticeThanksHeldItem9, gText_ApprenticeItemAlreadyRecommended9}, + {gText_ApprenticeWhatHeldItem10, gText_ApprenticeHoldNothing10, gText_ApprenticeThanksNoHeldItem10, gText_ApprenticeThanksHeldItem10, gText_ApprenticeItemAlreadyRecommended10}, + {gText_ApprenticeWhatHeldItem11, gText_ApprenticeHoldNothing11, gText_ApprenticeThanksNoHeldItem11, gText_ApprenticeThanksHeldItem11, gText_ApprenticeItemAlreadyRecommended11}, + {gText_ApprenticeWhatHeldItem12, gText_ApprenticeHoldNothing12, gText_ApprenticeThanksNoHeldItem12, gText_ApprenticeThanksHeldItem12, gText_ApprenticeItemAlreadyRecommended12}, + {gText_ApprenticeWhatHeldItem13, gText_ApprenticeHoldNothing13, gText_ApprenticeThanksNoHeldItem13, gText_ApprenticeThanksHeldItem13, gText_ApprenticeItemAlreadyRecommended13}, + {gText_ApprenticeWhatHeldItem14, gText_ApprenticeHoldNothing14, gText_ApprenticeThanksNoHeldItem14, gText_ApprenticeThanksHeldItem14, gText_ApprenticeItemAlreadyRecommended14}, + {gText_ApprenticeWhatHeldItem15, gText_ApprenticeHoldNothing15, gText_ApprenticeThanksNoHeldItem15, gText_ApprenticeThanksHeldItem15, gText_ApprenticeItemAlreadyRecommended15}, +}; + +static const u8 *const sApprenticeWhichMoveTexts[NUM_APPRENTICES][2] = +{ + {gText_ApprenticeWhichMove0, gText_ApprenticeMoveThanks0}, + {gText_ApprenticeWhichMove1, gText_ApprenticeMoveThanks1}, + {gText_ApprenticeWhichMove2, gText_ApprenticeMoveThanks2}, + {gText_ApprenticeWhichMove3, gText_ApprenticeMoveThanks3}, + {gText_ApprenticeWhichMove4, gText_ApprenticeMoveThanks4}, + {gText_ApprenticeWhichMove5, gText_ApprenticeMoveThanks5}, + {gText_ApprenticeWhichMove6, gText_ApprenticeMoveThanks6}, + {gText_ApprenticeWhichMove7, gText_ApprenticeMoveThanks7}, + {gText_ApprenticeWhichMove8, gText_ApprenticeMoveThanks8}, + {gText_ApprenticeWhichMove9, gText_ApprenticeMoveThanks9}, + {gText_ApprenticeWhichMove10, gText_ApprenticeMoveThanks10}, + {gText_ApprenticeWhichMove11, gText_ApprenticeMoveThanks11}, + {gText_ApprenticeWhichMove12, gText_ApprenticeMoveThanks12}, + {gText_ApprenticeWhichMove13, gText_ApprenticeMoveThanks13}, + {gText_ApprenticeWhichMove14, gText_ApprenticeMoveThanks14}, + {gText_ApprenticeWhichMove15, gText_ApprenticeMoveThanks15}, +}; + +static const u8 *const sApprenticeWhichMonFirstTexts[NUM_APPRENTICES][2] = +{ + {gText_ApprenticeWhichMonFirst0, gText_ApprenticeMonFirstThanks0}, + {gText_ApprenticeWhichMonFirst1, gText_ApprenticeMonFirstThanks1}, + {gText_ApprenticeWhichMonFirst2, gText_ApprenticeMonFirstThanks2}, + {gText_ApprenticeWhichMonFirst3, gText_ApprenticeMonFirstThanks3}, + {gText_ApprenticeWhichMonFirst4, gText_ApprenticeMonFirstThanks4}, + {gText_ApprenticeWhichMonFirst5, gText_ApprenticeMonFirstThanks5}, + {gText_ApprenticeWhichMonFirst6, gText_ApprenticeMonFirstThanks6}, + {gText_ApprenticeWhichMonFirst7, gText_ApprenticeMonFirstThanks7}, + {gText_ApprenticeWhichMonFirst8, gText_ApprenticeMonFirstThanks8}, + {gText_ApprenticeWhichMonFirst9, gText_ApprenticeMonFirstThanks9}, + {gText_ApprenticeWhichMonFirst10, gText_ApprenticeMonFirstThanks10}, + {gText_ApprenticeWhichMonFirst11, gText_ApprenticeMonFirstThanks11}, + {gText_ApprenticeWhichMonFirst12, gText_ApprenticeMonFirstThanks12}, + {gText_ApprenticeWhichMonFirst13, gText_ApprenticeMonFirstThanks13}, + {gText_ApprenticeWhichMonFirst14, gText_ApprenticeMonFirstThanks14}, + {gText_ApprenticeWhichMonFirst15, gText_ApprenticeMonFirstThanks15}, +}; + +static const u8 *const sApprenticePickWinSpeechTexts[NUM_APPRENTICES][2] = +{ + {gText_ApprenticePickWinSpeech0, gText_ApprenticeWinSpeechThanks0}, + {gText_ApprenticePickWinSpeech1, gText_ApprenticeWinSpeechThanks1}, + {gText_ApprenticePickWinSpeech2, gText_ApprenticeWinSpeechThanks2}, + {gText_ApprenticePickWinSpeech3, gText_ApprenticeWinSpeechThanks3}, + {gText_ApprenticePickWinSpeech4, gText_ApprenticeWinSpeechThanks4}, + {gText_ApprenticePickWinSpeech5, gText_ApprenticeWinSpeechThanks5}, + {gText_ApprenticePickWinSpeech6, gText_ApprenticeWinSpeechThanks6}, + {gText_ApprenticePickWinSpeech7, gText_ApprenticeWinSpeechThanks7}, + {gText_ApprenticePickWinSpeech8, gText_ApprenticeWinSpeechThanks8}, + {gText_ApprenticePickWinSpeech9, gText_ApprenticeWinSpeechThanks9}, + {gText_ApprenticePickWinSpeech10, gText_ApprenticeWinSpeechThanks10}, + {gText_ApprenticePickWinSpeech11, gText_ApprenticeWinSpeechThanks11}, + {gText_ApprenticePickWinSpeech12, gText_ApprenticeWinSpeechThanks12}, + {gText_ApprenticePickWinSpeech13, gText_ApprenticeWinSpeechThanks13}, + {gText_ApprenticePickWinSpeech14, gText_ApprenticeWinSpeechThanks14}, + {gText_ApprenticePickWinSpeech15, gText_ApprenticeWinSpeechThanks15}, +}; + +static const u8 *const sApprenticeChallengeTexts[NUM_APPRENTICES] = +{ + gText_ApprenticeChallenge0, + gText_ApprenticeChallenge1, + gText_ApprenticeChallenge2, + gText_ApprenticeChallenge3, + gText_ApprenticeChallenge4, + gText_ApprenticeChallenge5, + gText_ApprenticeChallenge6, + gText_ApprenticeChallenge7, + gText_ApprenticeChallenge8, + gText_ApprenticeChallenge9, + gText_ApprenticeChallenge10, + gText_ApprenticeChallenge11, + gText_ApprenticeChallenge12, + gText_ApprenticeChallenge13, + gText_ApprenticeChallenge14, + gText_ApprenticeChallenge15, +}; + +// Unclear what the criteria are for valid moves +// Notably, a large percentage of multi-strike moves are not valid +static const bool8 sValidApprenticeMoves[MOVES_COUNT] = +{ + [MOVE_NONE] = FALSE, + [MOVE_POUND] = FALSE, + [MOVE_KARATE_CHOP] = TRUE, + [MOVE_DOUBLE_SLAP] = TRUE, + [MOVE_COMET_PUNCH] = FALSE, + [MOVE_MEGA_PUNCH] = TRUE, + [MOVE_PAY_DAY] = FALSE, + [MOVE_FIRE_PUNCH] = TRUE, + [MOVE_ICE_PUNCH] = TRUE, + [MOVE_THUNDER_PUNCH] = TRUE, + [MOVE_SCRATCH] = FALSE, + [MOVE_VICE_GRIP] = FALSE, + [MOVE_GUILLOTINE] = TRUE, + [MOVE_RAZOR_WIND] = FALSE, + [MOVE_SWORDS_DANCE] = TRUE, + [MOVE_CUT] = FALSE, + [MOVE_GUST] = FALSE, + [MOVE_WING_ATTACK] = FALSE, + [MOVE_WHIRLWIND] = TRUE, + [MOVE_FLY] = TRUE, + [MOVE_BIND] = TRUE, + [MOVE_SLAM] = TRUE, + [MOVE_VINE_WHIP] = FALSE, + [MOVE_STOMP] = TRUE, + [MOVE_DOUBLE_KICK] = TRUE, + [MOVE_MEGA_KICK] = TRUE, + [MOVE_JUMP_KICK] = TRUE, + [MOVE_ROLLING_KICK] = TRUE, + [MOVE_SAND_ATTACK] = TRUE, + [MOVE_HEADBUTT] = TRUE, + [MOVE_HORN_ATTACK] = FALSE, + [MOVE_FURY_ATTACK] = FALSE, + [MOVE_HORN_DRILL] = TRUE, + [MOVE_TACKLE] = FALSE, + [MOVE_BODY_SLAM] = TRUE, + [MOVE_WRAP] = TRUE, + [MOVE_TAKE_DOWN] = TRUE, + [MOVE_THRASH] = TRUE, + [MOVE_DOUBLE_EDGE] = TRUE, + [MOVE_TAIL_WHIP] = FALSE, + [MOVE_POISON_STING] = FALSE, + [MOVE_TWINEEDLE] = TRUE, + [MOVE_PIN_MISSILE] = FALSE, + [MOVE_LEER] = FALSE, + [MOVE_BITE] = TRUE, + [MOVE_GROWL] = FALSE, + [MOVE_ROAR] = TRUE, + [MOVE_SING] = TRUE, + [MOVE_SUPERSONIC] = TRUE, + [MOVE_SONIC_BOOM] = TRUE, + [MOVE_DISABLE] = TRUE, + [MOVE_ACID] = FALSE, + [MOVE_EMBER] = FALSE, + [MOVE_FLAMETHROWER] = TRUE, + [MOVE_MIST] = TRUE, + [MOVE_WATER_GUN] = FALSE, + [MOVE_HYDRO_PUMP] = TRUE, + [MOVE_SURF] = TRUE, + [MOVE_ICE_BEAM] = TRUE, + [MOVE_BLIZZARD] = TRUE, + [MOVE_PSYBEAM] = TRUE, + [MOVE_BUBBLE_BEAM] = FALSE, + [MOVE_AURORA_BEAM] = FALSE, + [MOVE_HYPER_BEAM] = TRUE, + [MOVE_PECK] = FALSE, + [MOVE_DRILL_PECK] = TRUE, + [MOVE_SUBMISSION] = TRUE, + [MOVE_LOW_KICK] = TRUE, + [MOVE_COUNTER] = TRUE, + [MOVE_SEISMIC_TOSS] = TRUE, + [MOVE_STRENGTH] = TRUE, + [MOVE_ABSORB] = FALSE, + [MOVE_MEGA_DRAIN] = FALSE, + [MOVE_LEECH_SEED] = TRUE, + [MOVE_GROWTH] = TRUE, + [MOVE_RAZOR_LEAF] = TRUE, + [MOVE_SOLAR_BEAM] = TRUE, + [MOVE_POISON_POWDER] = TRUE, + [MOVE_STUN_SPORE] = TRUE, + [MOVE_SLEEP_POWDER] = TRUE, + [MOVE_PETAL_DANCE] = TRUE, + [MOVE_STRING_SHOT] = FALSE, + [MOVE_DRAGON_RAGE] = TRUE, + [MOVE_FIRE_SPIN] = TRUE, + [MOVE_THUNDER_SHOCK] = FALSE, + [MOVE_THUNDERBOLT] = TRUE, + [MOVE_THUNDER_WAVE] = TRUE, + [MOVE_THUNDER] = TRUE, + [MOVE_ROCK_THROW] = FALSE, + [MOVE_EARTHQUAKE] = TRUE, + [MOVE_FISSURE] = TRUE, + [MOVE_DIG] = TRUE, + [MOVE_TOXIC] = TRUE, + [MOVE_CONFUSION] = FALSE, + [MOVE_PSYCHIC] = TRUE, + [MOVE_HYPNOSIS] = TRUE, + [MOVE_MEDITATE] = TRUE, + [MOVE_AGILITY] = TRUE, + [MOVE_QUICK_ATTACK] = TRUE, + [MOVE_RAGE] = FALSE, + [MOVE_TELEPORT] = FALSE, + [MOVE_NIGHT_SHADE] = TRUE, + [MOVE_MIMIC] = TRUE, + [MOVE_SCREECH] = TRUE, + [MOVE_DOUBLE_TEAM] = TRUE, + [MOVE_RECOVER] = TRUE, + [MOVE_HARDEN] = TRUE, + [MOVE_MINIMIZE] = TRUE, + [MOVE_SMOKESCREEN] = TRUE, + [MOVE_CONFUSE_RAY] = TRUE, + [MOVE_WITHDRAW] = TRUE, + [MOVE_DEFENSE_CURL] = TRUE, + [MOVE_BARRIER] = TRUE, + [MOVE_LIGHT_SCREEN] = TRUE, + [MOVE_HAZE] = TRUE, + [MOVE_REFLECT] = TRUE, + [MOVE_FOCUS_ENERGY] = TRUE, + [MOVE_BIDE] = FALSE, + [MOVE_METRONOME] = TRUE, + [MOVE_MIRROR_MOVE] = TRUE, + [MOVE_SELF_DESTRUCT] = TRUE, + [MOVE_EGG_BOMB] = TRUE, + [MOVE_LICK] = TRUE, + [MOVE_SMOG] = FALSE, + [MOVE_SLUDGE] = FALSE, + [MOVE_BONE_CLUB] = FALSE, + [MOVE_FIRE_BLAST] = TRUE, + [MOVE_WATERFALL] = TRUE, + [MOVE_CLAMP] = TRUE, + [MOVE_SWIFT] = TRUE, + [MOVE_SKULL_BASH] = TRUE, + [MOVE_SPIKE_CANNON] = FALSE, + [MOVE_CONSTRICT] = FALSE, + [MOVE_AMNESIA] = TRUE, + [MOVE_KINESIS] = TRUE, + [MOVE_SOFT_BOILED] = TRUE, + [MOVE_HI_JUMP_KICK] = TRUE, + [MOVE_GLARE] = TRUE, + [MOVE_DREAM_EATER] = TRUE, + [MOVE_POISON_GAS] = FALSE, + [MOVE_BARRAGE] = FALSE, + [MOVE_LEECH_LIFE] = FALSE, + [MOVE_LOVELY_KISS] = TRUE, + [MOVE_SKY_ATTACK] = TRUE, + [MOVE_TRANSFORM] = TRUE, + [MOVE_BUBBLE] = FALSE, + [MOVE_DIZZY_PUNCH] = TRUE, + [MOVE_SPORE] = TRUE, + [MOVE_FLASH] = TRUE, + [MOVE_PSYWAVE] = TRUE, + [MOVE_SPLASH] = FALSE, + [MOVE_ACID_ARMOR] = TRUE, + [MOVE_CRABHAMMER] = TRUE, + [MOVE_EXPLOSION] = TRUE, + [MOVE_FURY_SWIPES] = FALSE, + [MOVE_BONEMERANG] = TRUE, + [MOVE_REST] = TRUE, + [MOVE_ROCK_SLIDE] = TRUE, + [MOVE_HYPER_FANG] = TRUE, + [MOVE_SHARPEN] = TRUE, + [MOVE_CONVERSION] = TRUE, + [MOVE_TRI_ATTACK] = TRUE, + [MOVE_SUPER_FANG] = TRUE, + [MOVE_SLASH] = TRUE, + [MOVE_SUBSTITUTE] = TRUE, + [MOVE_STRUGGLE] = TRUE, + [MOVE_SKETCH] = TRUE, + [MOVE_TRIPLE_KICK] = TRUE, + [MOVE_THIEF] = TRUE, + [MOVE_SPIDER_WEB] = TRUE, + [MOVE_MIND_READER] = TRUE, + [MOVE_NIGHTMARE] = TRUE, + [MOVE_FLAME_WHEEL] = FALSE, + [MOVE_SNORE] = TRUE, + [MOVE_CURSE] = TRUE, + [MOVE_FLAIL] = TRUE, + [MOVE_CONVERSION_2] = TRUE, + [MOVE_AEROBLAST] = TRUE, + [MOVE_COTTON_SPORE] = TRUE, + [MOVE_REVERSAL] = TRUE, + [MOVE_SPITE] = TRUE, + [MOVE_POWDER_SNOW] = FALSE, + [MOVE_PROTECT] = TRUE, + [MOVE_MACH_PUNCH] = TRUE, + [MOVE_SCARY_FACE] = TRUE, + [MOVE_FAINT_ATTACK] = TRUE, + [MOVE_SWEET_KISS] = TRUE, + [MOVE_BELLY_DRUM] = TRUE, + [MOVE_SLUDGE_BOMB] = TRUE, + [MOVE_MUD_SLAP] = TRUE, + [MOVE_OCTAZOOKA] = TRUE, + [MOVE_SPIKES] = TRUE, + [MOVE_ZAP_CANNON] = TRUE, + [MOVE_FORESIGHT] = TRUE, + [MOVE_DESTINY_BOND] = TRUE, + [MOVE_PERISH_SONG] = TRUE, + [MOVE_ICY_WIND] = TRUE, + [MOVE_DETECT] = TRUE, + [MOVE_BONE_RUSH] = FALSE, + [MOVE_LOCK_ON] = TRUE, + [MOVE_OUTRAGE] = TRUE, + [MOVE_SANDSTORM] = TRUE, + [MOVE_GIGA_DRAIN] = TRUE, + [MOVE_ENDURE] = TRUE, + [MOVE_CHARM] = TRUE, + [MOVE_ROLLOUT] = TRUE, + [MOVE_FALSE_SWIPE] = TRUE, + [MOVE_SWAGGER] = TRUE, + [MOVE_MILK_DRINK] = TRUE, + [MOVE_SPARK] = FALSE, + [MOVE_FURY_CUTTER] = TRUE, + [MOVE_STEEL_WING] = TRUE, + [MOVE_MEAN_LOOK] = TRUE, + [MOVE_ATTRACT] = TRUE, + [MOVE_SLEEP_TALK] = TRUE, + [MOVE_HEAL_BELL] = TRUE, + [MOVE_RETURN] = TRUE, + [MOVE_PRESENT] = TRUE, + [MOVE_FRUSTRATION] = TRUE, + [MOVE_SAFEGUARD] = TRUE, + [MOVE_PAIN_SPLIT] = TRUE, + [MOVE_SACRED_FIRE] = TRUE, + [MOVE_MAGNITUDE] = FALSE, + [MOVE_DYNAMIC_PUNCH] = TRUE, + [MOVE_MEGAHORN] = TRUE, + [MOVE_DRAGON_BREATH] = TRUE, + [MOVE_BATON_PASS] = TRUE, + [MOVE_ENCORE] = TRUE, + [MOVE_PURSUIT] = TRUE, + [MOVE_RAPID_SPIN] = TRUE, + [MOVE_SWEET_SCENT] = TRUE, + [MOVE_IRON_TAIL] = TRUE, + [MOVE_METAL_CLAW] = TRUE, + [MOVE_VITAL_THROW] = TRUE, + [MOVE_MORNING_SUN] = TRUE, + [MOVE_SYNTHESIS] = TRUE, + [MOVE_MOONLIGHT] = TRUE, + [MOVE_HIDDEN_POWER] = TRUE, + [MOVE_CROSS_CHOP] = TRUE, + [MOVE_TWISTER] = FALSE, + [MOVE_RAIN_DANCE] = TRUE, + [MOVE_SUNNY_DAY] = TRUE, + [MOVE_CRUNCH] = TRUE, + [MOVE_MIRROR_COAT] = TRUE, + [MOVE_PSYCH_UP] = TRUE, + [MOVE_EXTREME_SPEED] = TRUE, + [MOVE_ANCIENT_POWER] = TRUE, + [MOVE_SHADOW_BALL] = TRUE, + [MOVE_FUTURE_SIGHT] = TRUE, + [MOVE_ROCK_SMASH] = TRUE, + [MOVE_WHIRLPOOL] = TRUE, + [MOVE_BEAT_UP] = TRUE, + [MOVE_FAKE_OUT] = TRUE, + [MOVE_UPROAR] = TRUE, + [MOVE_STOCKPILE] = TRUE, + [MOVE_SPIT_UP] = TRUE, + [MOVE_SWALLOW] = TRUE, + [MOVE_HEAT_WAVE] = TRUE, + [MOVE_HAIL] = TRUE, + [MOVE_TORMENT] = TRUE, + [MOVE_FLATTER] = TRUE, + [MOVE_WILL_O_WISP] = TRUE, + [MOVE_MEMENTO] = TRUE, + [MOVE_FACADE] = TRUE, + [MOVE_FOCUS_PUNCH] = TRUE, + [MOVE_SMELLING_SALT] = TRUE, + [MOVE_FOLLOW_ME] = TRUE, + [MOVE_NATURE_POWER] = TRUE, + [MOVE_CHARGE] = TRUE, + [MOVE_TAUNT] = TRUE, + [MOVE_HELPING_HAND] = TRUE, + [MOVE_TRICK] = TRUE, + [MOVE_ROLE_PLAY] = TRUE, + [MOVE_WISH] = TRUE, + [MOVE_ASSIST] = TRUE, + [MOVE_INGRAIN] = TRUE, + [MOVE_SUPERPOWER] = TRUE, + [MOVE_MAGIC_COAT] = TRUE, + [MOVE_RECYCLE] = TRUE, + [MOVE_REVENGE] = TRUE, + [MOVE_BRICK_BREAK] = TRUE, + [MOVE_YAWN] = TRUE, + [MOVE_KNOCK_OFF] = TRUE, + [MOVE_ENDEAVOR] = TRUE, + [MOVE_ERUPTION] = TRUE, + [MOVE_SKILL_SWAP] = TRUE, + [MOVE_IMPRISON] = TRUE, + [MOVE_REFRESH] = TRUE, + [MOVE_GRUDGE] = TRUE, + [MOVE_SNATCH] = TRUE, + [MOVE_SECRET_POWER] = TRUE, + [MOVE_DIVE] = TRUE, + [MOVE_ARM_THRUST] = FALSE, + [MOVE_CAMOUFLAGE] = TRUE, + [MOVE_TAIL_GLOW] = TRUE, + [MOVE_LUSTER_PURGE] = TRUE, + [MOVE_MIST_BALL] = TRUE, + [MOVE_FEATHER_DANCE] = TRUE, + [MOVE_TEETER_DANCE] = TRUE, + [MOVE_BLAZE_KICK] = TRUE, + [MOVE_MUD_SPORT] = TRUE, + [MOVE_ICE_BALL] = FALSE, + [MOVE_NEEDLE_ARM] = TRUE, + [MOVE_SLACK_OFF] = TRUE, + [MOVE_HYPER_VOICE] = TRUE, + [MOVE_POISON_FANG] = FALSE, + [MOVE_CRUSH_CLAW] = TRUE, + [MOVE_BLAST_BURN] = TRUE, + [MOVE_HYDRO_CANNON] = TRUE, + [MOVE_METEOR_MASH] = TRUE, + [MOVE_ASTONISH] = TRUE, + [MOVE_WEATHER_BALL] = TRUE, + [MOVE_AROMATHERAPY] = TRUE, + [MOVE_FAKE_TEARS] = TRUE, + [MOVE_AIR_CUTTER] = TRUE, + [MOVE_OVERHEAT] = TRUE, + [MOVE_ODOR_SLEUTH] = TRUE, + [MOVE_ROCK_TOMB] = TRUE, + [MOVE_SILVER_WIND] = TRUE, + [MOVE_METAL_SOUND] = TRUE, + [MOVE_GRASS_WHISTLE] = TRUE, + [MOVE_TICKLE] = TRUE, + [MOVE_COSMIC_POWER] = TRUE, + [MOVE_WATER_SPOUT] = TRUE, + [MOVE_SIGNAL_BEAM] = TRUE, + [MOVE_SHADOW_PUNCH] = TRUE, + [MOVE_EXTRASENSORY] = TRUE, + [MOVE_SKY_UPPERCUT] = TRUE, + [MOVE_SAND_TOMB] = TRUE, + [MOVE_SHEER_COLD] = TRUE, + [MOVE_MUDDY_WATER] = TRUE, + [MOVE_BULLET_SEED] = FALSE, + [MOVE_AERIAL_ACE] = TRUE, + [MOVE_ICICLE_SPEAR] = FALSE, + [MOVE_IRON_DEFENSE] = TRUE, + [MOVE_BLOCK] = TRUE, + [MOVE_HOWL] = TRUE, + [MOVE_DRAGON_CLAW] = TRUE, + [MOVE_FRENZY_PLANT] = TRUE, + [MOVE_BULK_UP] = TRUE, + [MOVE_BOUNCE] = TRUE, + [MOVE_MUD_SHOT] = FALSE, + [MOVE_POISON_TAIL] = TRUE, + [MOVE_COVET] = TRUE, + [MOVE_VOLT_TACKLE] = TRUE, + [MOVE_MAGICAL_LEAF] = TRUE, + [MOVE_WATER_SPORT] = TRUE, + [MOVE_CALM_MIND] = TRUE, + [MOVE_LEAF_BLADE] = TRUE, + [MOVE_DRAGON_DANCE] = TRUE, + [MOVE_ROCK_BLAST] = FALSE, + [MOVE_SHOCK_WAVE] = TRUE, + [MOVE_WATER_PULSE] = TRUE, + [MOVE_DOOM_DESIRE] = TRUE, + [MOVE_PSYCHO_BOOST] = TRUE, +}; + +// The possible questions to ask after the initial 3 WHICH MON questions. Retrieved from here and shuffled +// WHAT_ITEM has max 3 occurrences, one for each party member +// WHICH_MOVE has max 5 occurrences, defined as NUM_WHICH_MOVE_QUESTIONS +// WHICH_FIRST has max 1 occurrence, lead mon should only be chosen once +// WHICH_SPEECH has max 1 occurrence, as the apprentice leaves after its asked +static const u8 sQuestionPossibilities[] = +{ + QUESTION_ID_WHAT_ITEM, + QUESTION_ID_WHAT_ITEM, + QUESTION_ID_WHAT_ITEM, + QUESTION_ID_WHICH_MOVE, + QUESTION_ID_WHICH_MOVE, + QUESTION_ID_WHICH_MOVE, + QUESTION_ID_WHICH_MOVE, + QUESTION_ID_WHICH_MOVE, + QUESTION_ID_WHICH_FIRST, + QUESTION_ID_WIN_SPEECH +}; + +static void (* const sApprenticeFunctions[])(void) = +{ + [APPRENTICE_FUNC_GAVE_LVLMODE] = Script_GivenApprenticeLvlMode, + [APPRENTICE_FUNC_SET_LVLMODE] = Script_SetApprenticeLvlMode, + [APPRENTICE_FUNC_SET_ID] = Script_SetApprenticeId, + [APPRENTICE_FUNC_SHUFFLE_SPECIES] = ShuffleApprenticeSpecies, + [APPRENTICE_FUNC_RANDOMIZE_QUESTIONS] = Script_SetRandomQuestionData, + [APPRENTICE_FUNC_ANSWERED_QUESTION] = IncrementQuestionsAnswered, + [APPRENTICE_FUNC_IS_FINAL_QUESTION] = IsFinalQuestion, + [APPRENTICE_FUNC_MENU] = Script_CreateApprenticeMenu, + [APPRENTICE_FUNC_PRINT_MSG] = Script_PrintApprenticeMessage, + [APPRENTICE_FUNC_RESET] = Script_ResetPlayerApprentice, + [APPRENTICE_FUNC_CHECK_GONE] = GetShouldCheckApprenticeGone, + [APPRENTICE_FUNC_GET_QUESTION] = ApprenticeGetQuestion, + [APPRENTICE_FUNC_GET_NUM_PARTY_MONS] = GetNumApprenticePartyMonsAssigned, + [APPRENTICE_FUNC_SET_PARTY_MON] = SetApprenticePartyMon, + [APPRENTICE_FUNC_INIT_QUESTION_DATA] = InitQuestionData, + [APPRENTICE_FUNC_FREE_QUESTION_DATA] = FreeQuestionData, + [APPRENTICE_FUNC_BUFFER_STRING] = ApprenticeBufferString, + [APPRENTICE_FUNC_SET_MOVE] = SetApprenticeMonMove, + [APPRENTICE_FUNC_SET_LEAD_MON] = SetLeadApprenticeMon, + [APPRENTICE_FUNC_OPEN_BAG] = Script_ApprenticeOpenBagMenu, + [APPRENTICE_FUNC_TRY_SET_HELD_ITEM] = TrySetApprenticeHeldItem, + [APPRENTICE_FUNC_SAVE] = SaveApprentice, + [APPRENTICE_FUNC_SET_GFX_SAVED] = SetSavedApprenticeTrainerGfxId, + [APPRENTICE_FUNC_SET_GFX] = SetPlayerApprenticeTrainerGfxId, + [APPRENTICE_FUNC_SHOULD_LEAVE] = GetShouldApprenticeLeave, + [APPRENTICE_FUNC_SHIFT_SAVED] = ShiftSavedApprentices, +}; + +// The first Apprentice can only be one of these +static const u8 sInitialApprenticeIds[8] = {0, 1, 2, 3, 6, 7, 8, 9}; diff --git a/src/data/battle_frontier/battle_frontier_trainers.h b/src/data/battle_frontier/battle_frontier_trainers.h index faef40656..7977852b2 100644 --- a/src/data/battle_frontier/battle_frontier_trainers.h +++ b/src/data/battle_frontier/battle_frontier_trainers.h @@ -361,7 +361,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[] = .monSets = gBattleFrontierTrainerMons_Payton }, [45] = { - .facilityClass = FACILITY_CLASS_POKEMON_BREEDER_F, + .facilityClass = FACILITY_CLASS_PKMN_BREEDER_F, .trainerName = _("PAMELA"), .speechBefore = {EC_WORD_ALL, EC_WORD_POKEMON, EC_WORD_ADORE, EC_WORD_A, EC_WORD_KIND, EC_WORD_TRAINER}, .speechWin = {EC_WORD_IT_S, EC_WORD_TOO, EC_WORD_BAD, EC_WORD_YOU, EC_WORD_LOST, 0xFFFF}, @@ -369,7 +369,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[] = .monSets = gBattleFrontierTrainerMons_Pamela }, [46] = { - .facilityClass = FACILITY_CLASS_POKEMON_BREEDER_F, + .facilityClass = FACILITY_CLASS_PKMN_BREEDER_F, .trainerName = _("ELIZA"), .speechBefore = {EC_WORD_I, EC_WORD_ADORE, EC_WORD_POKEMON, EC_WORD_LIKE, EC_WORD_MY, EC_WORD_CHILDREN}, .speechWin = {EC_WORD_I_AM, EC_WORD_SO, EC_WORD_HAPPY, EC_WORD_FOR, EC_WORD_MY, EC_WORD_POKEMON}, @@ -377,7 +377,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[] = .monSets = gBattleFrontierTrainerMons_Eliza }, [47] = { - .facilityClass = FACILITY_CLASS_POKEMON_BREEDER_F, + .facilityClass = FACILITY_CLASS_PKMN_BREEDER_F, .trainerName = _("MARISA"), .speechBefore = {EC_WORD_I, EC_WORD_PROMISE, EC_WORD_TO, EC_WORD_BATTLE, EC_WORD_SERIOUSLY, 0xFFFF}, .speechWin = {EC_WORD_PROMISE, EC_WORD_ME, EC_WORD_YOU, EC_WORD_WILL, EC_WORD_DO, EC_WORD_BETTER}, @@ -1273,7 +1273,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[] = .monSets = gBattleFrontierTrainerMons_Cordell }, [159] = { - .facilityClass = FACILITY_CLASS_POKEMON_BREEDER_F, + .facilityClass = FACILITY_CLASS_PKMN_BREEDER_F, .trainerName = _("JAZLYN"), .speechBefore = {EC_WORD_IS, EC_WORD_YOUR, EC_WORD_POKEDEX, EC_WORD_REALLY, EC_WORD_AWESOME, EC_WORD_QUES}, .speechWin = {EC_WORD_OH_YEAH, EC_WORD_WOW, EC_WORD_YOUR, EC_WORD_POKEDEX, EC_WORD_IS, EC_WORD_SUPER}, @@ -1745,7 +1745,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[] = .monSets = gBattleFrontierTrainerMons_Wilson }, [218] = { - .facilityClass = FACILITY_CLASS_POKEMON_BREEDER_F, + .facilityClass = FACILITY_CLASS_PKMN_BREEDER_F, .trainerName = _("CLARE"), .speechBefore = {EC_WORD_YAY, EC_WORD_EXCL, EC_WORD_A, EC_WORD_TOUGH, EC_WORD_TRAINER, EC_WORD_EXCL}, .speechWin = {EC_WORD_AWW, EC_WORD_EXCL, EC_WORD_A, EC_WORD_WIMPY, EC_WORD_TRAINER, EC_WORD_EXCL}, @@ -1753,7 +1753,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[] = .monSets = gBattleFrontierTrainerMons_Clare }, [219] = { - .facilityClass = FACILITY_CLASS_POKEMON_BREEDER_F, + .facilityClass = FACILITY_CLASS_PKMN_BREEDER_F, .trainerName = _("TESS"), .speechBefore = {EC_WORD_WANT, EC_WORD_SOME, EC_POKEMON(GULPIN), EC_WORD_DESIGN, EC_WORD_SWEETS, EC_WORD_QUES}, .speechWin = {EC_WORD_THEY_RE, EC_WORD_A, EC_WORD_SECRET, EC_WORD_POKEMON, EC_WORD_GOURMET, EC_WORD_ITEM}, diff --git a/src/data/battle_frontier/trainer_hill.h b/src/data/battle_frontier/trainer_hill.h index f38cfcc38..cfd5dd994 100644 --- a/src/data/battle_frontier/trainer_hill.h +++ b/src/data/battle_frontier/trainer_hill.h @@ -847,7 +847,7 @@ static const struct TrHillFloor sDataTagNormal_Floors[] = [1] = { .name = _("JAYDEN"), - .facilityClass = FACILITY_CLASS_POKEMON_BREEDER_F, + .facilityClass = FACILITY_CLASS_PKMN_BREEDER_F, .unused = 0, .speechBefore = {EC_WORD_SOME, EC_WORD_THINGS, EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_DO, EC_WORD_ALONE}, .speechWin = {EC_WORD_YOU, EC_WORD_WIN, EC_WORD_AS, EC_WORD_A, EC_WORD_GROUP, 0xFFFF}, @@ -1152,7 +1152,7 @@ static const struct TrHillFloor sDataTagNormal_Floors[] = [1] = { .name = _("VERONICA"), - .facilityClass = FACILITY_CLASS_POKEMON_BREEDER_F, + .facilityClass = FACILITY_CLASS_PKMN_BREEDER_F, .unused = 0, .speechBefore = {EC_WORD_I_AM, EC_WORD_THE, EC_WORD_STRONG, EC_WORD_BEAUTY, EC_WORD_AROUND, EC_WORD_HERE}, .speechWin = {EC_WORD_I_AM, EC_WORD_STRONG, EC_WORD_THAT_S, EC_WORD_WHY, EC_WORD_EXCL, 0xFFFF}, diff --git a/src/data/pokemon/level_up_learnsets.h b/src/data/pokemon/level_up_learnsets.h index 727cc0959..c78b9ef0a 100644 --- a/src/data/pokemon/level_up_learnsets.h +++ b/src/data/pokemon/level_up_learnsets.h @@ -1,5 +1,4 @@ #define LEVEL_UP_MOVE(lvl, move) ((lvl << 9) | move) -#define LEVEL_UP_END 0xffff static const u16 sBulbasaurLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), diff --git a/src/data/pokemon/trainer_class_lookups.h b/src/data/pokemon/trainer_class_lookups.h index 0f2b53a18..2edefb274 100644 --- a/src/data/pokemon/trainer_class_lookups.h +++ b/src/data/pokemon/trainer_class_lookups.h @@ -2,7 +2,7 @@ const u8 gFacilityClassToPicIndex[] = { [FACILITY_CLASS_HIKER] = TRAINER_PIC_HIKER, [FACILITY_CLASS_AQUA_GRUNT_M] = TRAINER_PIC_AQUA_GRUNT_M, - [FACILITY_CLASS_POKEMON_BREEDER_F] = TRAINER_PIC_POKEMON_BREEDER_F, + [FACILITY_CLASS_PKMN_BREEDER_F] = TRAINER_PIC_POKEMON_BREEDER_F, [FACILITY_CLASS_COOLTRAINER_M] = TRAINER_PIC_COOLTRAINER_M, [FACILITY_CLASS_BIRD_KEEPER] = TRAINER_PIC_BIRD_KEEPER, [FACILITY_CLASS_COLLECTOR] = TRAINER_PIC_COLLECTOR, @@ -88,7 +88,7 @@ const u8 gFacilityClassToTrainerClass[] = { [FACILITY_CLASS_HIKER] = TRAINER_CLASS_HIKER, [FACILITY_CLASS_AQUA_GRUNT_M] = TRAINER_CLASS_TEAM_AQUA, - [FACILITY_CLASS_POKEMON_BREEDER_F] = TRAINER_CLASS_PKMN_BREEDER, + [FACILITY_CLASS_PKMN_BREEDER_F] = TRAINER_CLASS_PKMN_BREEDER, [FACILITY_CLASS_COOLTRAINER_M] = TRAINER_CLASS_COOLTRAINER, [FACILITY_CLASS_BIRD_KEEPER] = TRAINER_CLASS_BIRD_KEEPER, [FACILITY_CLASS_COLLECTOR] = TRAINER_CLASS_COLLECTOR, diff --git a/src/easy_chat.c b/src/easy_chat.c index a2d03d8d6..0d32e91cf 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -1320,7 +1320,7 @@ void ShowEasyChatScreen(void) words = &gSaveBlock1Ptr->lilycoveLady.quiz.correctAnswer; break; case EASY_CHAT_TYPE_APPRENTICE: - words = gSaveBlock2Ptr->apprentices[0].easyChatWords; + words = gSaveBlock2Ptr->apprentices[0].speechWon; break; case EASY_CHAT_TYPE_QUESTIONNAIRE: words = sub_801B058(); diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index a708e0c95..52b619dbf 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -30,6 +30,7 @@ #include "wild_encounter.h" #include "constants/event_bg.h" #include "constants/event_objects.h" +#include "constants/field_poison.h" #include "constants/map_types.h" #include "constants/maps.h" #include "constants/songs.h" @@ -647,11 +648,11 @@ static bool8 UpdatePoisonStepCounter(void) { switch (DoPoisonFieldEffect()) { - case 0: + case FLDPSN_NONE: return FALSE; - case 1: + case FLDPSN_PSN: return FALSE; - case 2: + case FLDPSN_FNT: return TRUE; } } diff --git a/src/frontier_pass.c b/src/frontier_pass.c index d8b36ffbd..33ac5b0fe 100644 --- a/src/frontier_pass.c +++ b/src/frontier_pass.c @@ -1553,9 +1553,9 @@ static u8 MapNumToFrontierFacilityId(u16 mapNum) // id + 1, zero means not a fro else if (mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PIKE_LOBBY) || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR) || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM) - || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1) - || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM2) - || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3)) + || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL) + || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PIKE_ROOM_FINAL) + || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS)) return FRONTIER_FACILITY_PIKE + 1; else if (mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY) || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE) diff --git a/src/frontier_util.c b/src/frontier_util.c index a29714a32..4f7ab1ba6 100644 --- a/src/frontier_util.c +++ b/src/frontier_util.c @@ -45,32 +45,32 @@ struct FrontierBrainMon u8 fixedIV; u8 nature; u8 evs[NUM_STATS]; - u16 moves[4]; + u16 moves[MAX_MON_MOVES]; }; // This file's functions. -static void sub_81A17A0(void); -static void sub_81A1830(void); -static void sub_81A1968(void); -static void LoadSelectedParty(void); +static void GetChallengeStatus(void); +static void GetFrontierData(void); +static void SetFrontierData(void); +static void SetSelectedPartyOrder(void); static void DoSoftReset_(void); static void SetFrontierTrainers(void); -static void sub_81A1B38(void); +static void SaveSelectedParty(void); static void ShowFacilityResultsWindow(void); -static void sub_81A31FC(void); -static void sub_81A35EC(void); +static void CheckPutFrontierTVShowOnAir(void); +static void Script_GetFrontierBrainStatus(void); static void IsTrainerFrontierBrain(void); -static void sub_81A3B64(void); +static void GiveBattlePoints(void); static void GetFacilitySymbolCount(void); static void GiveFacilitySymbol(void); static void CheckBattleTypeFlag(void); -static void sub_81A3FD4(void); +static void CheckPartyIneligibility(void); static void ValidateVisitingTrainer(void); -static void sub_81A4230(void); -static void sub_81A43A8(void); -static void sub_81A4410(void); +static void IncrementWinStreak(void); +static void RestoreHeldItems(void); +static void SaveRecordBattle(void); static void BufferFrontierTrainerName(void); -static void sub_81A447C(void); +static void ResetSketchedMoves(void); static void SetFacilityBrainObjectEvent(void); static void ShowTowerResultsWindow(u8); static void ShowDomeResultsWindow(u8); @@ -83,15 +83,15 @@ static void ShowLinkContestResultsWindow(void); static void CopyFrontierBrainText(bool8 playerWonText); // const rom data -static const u8 gUnknown_08611550[][4] = -{ - [FRONTIER_FACILITY_TOWER] = {0x23, 0x46, 0x23, 0x01}, - [FRONTIER_FACILITY_DOME] = {0x04, 0x09, 0x05, 0x00}, - [FRONTIER_FACILITY_PALACE] = {0x15, 0x2a, 0x15, 0x01}, - [FRONTIER_FACILITY_ARENA] = {0x1c, 0x38, 0x1c, 0x01}, - [FRONTIER_FACILITY_FACTORY] = {0x15, 0x2a, 0x15, 0x01}, - [FRONTIER_FACILITY_PIKE] = {0x1c, 0x8c, 0x38, 0x01}, - [FRONTIER_FACILITY_PYRAMID] = {0x15, 0x46, 0x23, 0x00}, +static const u8 sFrontierBrainStreakAppearances[NUM_FRONTIER_FACILITIES][4] = +{ + [FRONTIER_FACILITY_TOWER] = {35, 70, 35, 1}, + [FRONTIER_FACILITY_DOME] = { 4, 9, 5, 0}, + [FRONTIER_FACILITY_PALACE] = {21, 42, 21, 1}, + [FRONTIER_FACILITY_ARENA] = {28, 56, 28, 1}, + [FRONTIER_FACILITY_FACTORY] = {21, 42, 21, 1}, + [FRONTIER_FACILITY_PIKE] = {28, 140, 56, 1}, + [FRONTIER_FACILITY_PYRAMID] = {21, 70, 35, 0}, }; static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = @@ -104,7 +104,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_ALAKAZAM, .heldItem = ITEM_BRIGHT_POWDER, .fixedIV = 24, - .nature = 15, + .nature = NATURE_MODEST, .evs = {106, 0, 152, 152, 100, 0}, .moves = {MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_DISABLE}, }, @@ -112,7 +112,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_ENTEI, .heldItem = ITEM_LUM_BERRY, .fixedIV = 24, - .nature = 1, + .nature = NATURE_LONELY, .evs = {100, 152, 152, 0, 100, 6}, .moves = {MOVE_FIRE_BLAST, MOVE_CALM_MIND, MOVE_RETURN, MOVE_ROAR}, }, @@ -120,7 +120,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_SNORLAX, .heldItem = ITEM_QUICK_CLAW, .fixedIV = 24, - .nature = 3, + .nature = NATURE_ADAMANT, .evs = {152, 152, 0, 0, 106, 100}, .moves = {MOVE_BODY_SLAM, MOVE_BELLY_DRUM, MOVE_YAWN, MOVE_SHADOW_BALL}, }, @@ -131,7 +131,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_RAIKOU, .heldItem = ITEM_LUM_BERRY, .fixedIV = 31, - .nature = 15, + .nature = NATURE_MODEST, .evs = {158, 0, 252, 100, 0, 0}, .moves = {MOVE_THUNDERBOLT, MOVE_CALM_MIND, MOVE_REFLECT, MOVE_REST}, }, @@ -139,7 +139,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_LATIOS, .heldItem = ITEM_BRIGHT_POWDER, .fixedIV = 31, - .nature = 15, + .nature = NATURE_MODEST, .evs = {252, 0, 252, 6, 0, 0}, .moves = {MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_RECOVER, MOVE_DRAGON_CLAW}, }, @@ -147,7 +147,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_SNORLAX, .heldItem = ITEM_CHESTO_BERRY, .fixedIV = 31, - .nature = 3, + .nature = NATURE_ADAMANT, .evs = {252, 252, 0, 0, 6, 0}, .moves = {MOVE_CURSE, MOVE_RETURN, MOVE_REST, MOVE_SHADOW_BALL}, }, @@ -161,7 +161,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_SWAMPERT, .heldItem = ITEM_FOCUS_BAND, .fixedIV = 20, - .nature = 2, + .nature = NATURE_BRAVE, .evs = {152, 152, 106, 0, 100, 0}, .moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_COUNTER}, }, @@ -169,7 +169,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_SALAMENCE, .heldItem = ITEM_LUM_BERRY, .fixedIV = 20, - .nature = 3, + .nature = NATURE_ADAMANT, .evs = {152, 152, 106, 100, 0, 0}, .moves = {MOVE_EARTHQUAKE, MOVE_BRICK_BREAK, MOVE_DRAGON_CLAW, MOVE_AERIAL_ACE}, }, @@ -177,7 +177,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_CHARIZARD, .heldItem = ITEM_WHITE_HERB, .fixedIV = 20, - .nature = 17, + .nature = NATURE_QUIET, .evs = {100, 152, 106, 152, 0, 0}, .moves = {MOVE_OVERHEAT, MOVE_ROCK_SLIDE, MOVE_AERIAL_ACE, MOVE_EARTHQUAKE}, }, @@ -188,7 +188,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_SWAMPERT, .heldItem = ITEM_LEFTOVERS, .fixedIV = 31, - .nature = 2, + .nature = NATURE_BRAVE, .evs = {252, 252, 6, 0, 0, 0}, .moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_MIRROR_COAT}, }, @@ -196,7 +196,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_METAGROSS, .heldItem = ITEM_QUICK_CLAW, .fixedIV = 31, - .nature = 2, + .nature = NATURE_BRAVE, .evs = {252, 252, 6, 0, 0, 0}, .moves = {MOVE_PSYCHIC, MOVE_METEOR_MASH, MOVE_EARTHQUAKE, MOVE_PROTECT}, }, @@ -204,7 +204,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_LATIAS, .heldItem = ITEM_CHESTO_BERRY, .fixedIV = 31, - .nature = 15, + .nature = NATURE_MODEST, .evs = {252, 0, 252, 6, 0, 0}, .moves = {MOVE_THUNDERBOLT, MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_REST}, }, @@ -218,7 +218,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_CROBAT, .heldItem = ITEM_BRIGHT_POWDER, .fixedIV = 16, - .nature = 3, + .nature = NATURE_ADAMANT, .evs = {152, 0, 0, 152, 100, 106}, .moves = {MOVE_CONFUSE_RAY, MOVE_DOUBLE_TEAM, MOVE_TOXIC, MOVE_FLY}, }, @@ -226,7 +226,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_SLAKING, .heldItem = ITEM_SCOPE_LENS, .fixedIV = 16, - .nature = 0, + .nature = NATURE_HARDY, .evs = {152, 152, 0, 106, 100, 0}, .moves = {MOVE_EARTHQUAKE, MOVE_SWAGGER, MOVE_SHADOW_BALL, MOVE_BRICK_BREAK}, }, @@ -234,7 +234,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_LAPRAS, .heldItem = ITEM_QUICK_CLAW, .fixedIV = 16, - .nature = 17, + .nature = NATURE_QUIET, .evs = {0, 0, 252, 0, 106, 152}, .moves = {MOVE_ICE_BEAM, MOVE_HORN_DRILL, MOVE_CONFUSE_RAY, MOVE_PROTECT}, }, @@ -245,7 +245,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_ARCANINE, .heldItem = ITEM_WHITE_HERB, .fixedIV = 31, - .nature = 11, + .nature = NATURE_HASTY, .evs = {6, 252, 252, 0, 0, 0}, .moves = {MOVE_OVERHEAT, MOVE_EXTREME_SPEED, MOVE_ROAR, MOVE_PROTECT}, }, @@ -253,7 +253,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_SLAKING, .heldItem = ITEM_SCOPE_LENS, .fixedIV = 31, - .nature = 0, + .nature = NATURE_HARDY, .evs = {6, 252, 0, 252, 0, 0}, .moves = {MOVE_HYPER_BEAM, MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_YAWN}, }, @@ -261,7 +261,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_SUICUNE, .heldItem = ITEM_KINGS_ROCK, .fixedIV = 31, - .nature = 11, + .nature = NATURE_HASTY, .evs = {252, 0, 252, 6, 0, 0}, .moves = {MOVE_BLIZZARD, MOVE_SURF, MOVE_BITE, MOVE_CALM_MIND}, }, @@ -275,7 +275,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_HERACROSS, .heldItem = ITEM_SALAC_BERRY, .fixedIV = 20, - .nature = 13, + .nature = NATURE_JOLLY, .evs = {106, 152, 0, 152, 0, 100}, .moves = {MOVE_MEGAHORN, MOVE_ROCK_TOMB, MOVE_ENDURE, MOVE_REVERSAL}, }, @@ -283,7 +283,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_UMBREON, .heldItem = ITEM_LEFTOVERS, .fixedIV = 20, - .nature = 20, + .nature = NATURE_CALM, .evs = {152, 0, 100, 0, 152, 106}, .moves = {MOVE_BODY_SLAM, MOVE_CONFUSE_RAY, MOVE_PSYCHIC, MOVE_FAINT_ATTACK}, }, @@ -291,7 +291,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_SHEDINJA, .heldItem = ITEM_BRIGHT_POWDER, .fixedIV = 20, - .nature = 3, + .nature = NATURE_ADAMANT, .evs = {0, 252, 6, 252, 0, 0}, .moves = {MOVE_SHADOW_BALL, MOVE_RETURN, MOVE_CONFUSE_RAY, MOVE_AERIAL_ACE}, }, @@ -302,7 +302,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_UMBREON, .heldItem = ITEM_CHESTO_BERRY, .fixedIV = 31, - .nature = 20, + .nature = NATURE_CALM, .evs = {252, 0, 0, 0, 252, 6}, .moves = {MOVE_DOUBLE_EDGE, MOVE_CONFUSE_RAY, MOVE_REST, MOVE_PSYCHIC}, }, @@ -310,7 +310,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_GENGAR, .heldItem = ITEM_LEFTOVERS, .fixedIV = 31, - .nature = 15, + .nature = NATURE_MODEST, .evs = {252, 0, 252, 0, 6, 0}, .moves = {MOVE_PSYCHIC, MOVE_HYPNOSIS, MOVE_DREAM_EATER, MOVE_DESTINY_BOND}, }, @@ -318,7 +318,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_BRELOOM, .heldItem = ITEM_LUM_BERRY, .fixedIV = 31, - .nature = 13, + .nature = NATURE_JOLLY, .evs = {6, 252, 0, 252, 0, 0}, .moves = {MOVE_SPORE, MOVE_FOCUS_PUNCH, MOVE_GIGA_DRAIN, MOVE_HEADBUTT}, }, @@ -333,7 +333,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_METANG, .heldItem = ITEM_SITRUS_BERRY, .fixedIV = 31, - .nature = 2, + .nature = NATURE_BRAVE, .evs = {0, 252, 252, 0, 6, 0}, .moves = {MOVE_LIGHT_SCREEN, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_METAL_CLAW}, }, @@ -341,7 +341,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_SKARMORY, .heldItem = ITEM_SITRUS_BERRY, .fixedIV = 31, - .nature = 8, + .nature = NATURE_IMPISH, .evs = {252, 0, 0, 0, 6, 252}, .moves = {MOVE_TOXIC, MOVE_AERIAL_ACE, MOVE_PROTECT, MOVE_STEEL_WING}, }, @@ -349,7 +349,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_AGGRON, .heldItem = ITEM_SITRUS_BERRY, .fixedIV = 31, - .nature = 3, + .nature = NATURE_ADAMANT, .evs = {0, 252, 0, 0, 252, 6}, .moves = {MOVE_THUNDERBOLT, MOVE_PROTECT, MOVE_SOLAR_BEAM, MOVE_DRAGON_CLAW}, }, @@ -359,7 +359,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_METANG, .heldItem = ITEM_SITRUS_BERRY, .fixedIV = 31, - .nature = 2, + .nature = NATURE_BRAVE, .evs = {0, 252, 252, 0, 6, 0}, .moves = {MOVE_LIGHT_SCREEN, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_METAL_CLAW}, }, @@ -367,7 +367,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_SKARMORY, .heldItem = ITEM_SITRUS_BERRY, .fixedIV = 31, - .nature = 8, + .nature = NATURE_IMPISH, .evs = {252, 0, 0, 0, 6, 252}, .moves = {MOVE_TOXIC, MOVE_AERIAL_ACE, MOVE_PROTECT, MOVE_STEEL_WING}, }, @@ -375,7 +375,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_AGGRON, .heldItem = ITEM_SITRUS_BERRY, .fixedIV = 31, - .nature = 3, + .nature = NATURE_ADAMANT, .evs = {0, 252, 0, 0, 252, 6}, .moves = {MOVE_THUNDERBOLT, MOVE_PROTECT, MOVE_SOLAR_BEAM, MOVE_DRAGON_CLAW}, }, @@ -389,7 +389,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_SEVIPER, .heldItem = ITEM_QUICK_CLAW, .fixedIV = 16, - .nature = 2, + .nature = NATURE_BRAVE, .evs = {252, 0, 252, 0, 6, 0}, .moves = {MOVE_SWAGGER, MOVE_CRUNCH, MOVE_POISON_FANG, MOVE_GIGA_DRAIN}, }, @@ -397,7 +397,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_SHUCKLE, .heldItem = ITEM_CHESTO_BERRY, .fixedIV = 16, - .nature = 5, + .nature = NATURE_BOLD, .evs = {252, 0, 0, 0, 106, 252}, .moves = {MOVE_TOXIC, MOVE_SANDSTORM, MOVE_PROTECT, MOVE_REST}, }, @@ -405,7 +405,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_MILOTIC, .heldItem = ITEM_LEFTOVERS, .fixedIV = 16, - .nature = 15, + .nature = NATURE_MODEST, .evs = {152, 0, 100, 0, 152, 106}, .moves = {MOVE_ICE_BEAM, MOVE_MIRROR_COAT, MOVE_SURF, MOVE_RECOVER}, }, @@ -416,7 +416,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_SEVIPER, .heldItem = ITEM_FOCUS_BAND, .fixedIV = 31, - .nature = 5, + .nature = NATURE_BOLD, .evs = {252, 0, 0, 0, 252, 6}, .moves = {MOVE_SWAGGER, MOVE_CRUNCH, MOVE_SLUDGE_BOMB, MOVE_GIGA_DRAIN}, }, @@ -424,7 +424,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_STEELIX, .heldItem = ITEM_BRIGHT_POWDER, .fixedIV = 31, - .nature = 2, + .nature = NATURE_BRAVE, .evs = {252, 0, 0, 0, 6, 252}, .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_EXPLOSION, MOVE_SCREECH}, }, @@ -432,7 +432,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_GYARADOS, .heldItem = ITEM_CHESTO_BERRY, .fixedIV = 31, - .nature = 3, + .nature = NATURE_ADAMANT, .evs = {252, 6, 0, 0, 0, 252}, .moves = {MOVE_DRAGON_DANCE, MOVE_RETURN, MOVE_ROAR, MOVE_REST}, }, @@ -446,7 +446,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_REGIROCK, .heldItem = ITEM_QUICK_CLAW, .fixedIV = 16, - .nature = 3, + .nature = NATURE_ADAMANT, .evs = {152, 152, 0, 0, 106, 100}, .moves = {MOVE_EXPLOSION, MOVE_SUPERPOWER, MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER}, }, @@ -454,7 +454,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_REGISTEEL, .heldItem = ITEM_LEFTOVERS, .fixedIV = 16, - .nature = 3, + .nature = NATURE_ADAMANT, .evs = {152, 152, 0, 0, 6, 200}, .moves = {MOVE_EARTHQUAKE, MOVE_METAL_CLAW, MOVE_TOXIC, MOVE_IRON_DEFENSE}, }, @@ -462,7 +462,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_REGICE, .heldItem = ITEM_CHESTO_BERRY, .fixedIV = 16, - .nature = 15, + .nature = NATURE_MODEST, .evs = {106, 0, 152, 0, 100, 152}, .moves = {MOVE_ICE_BEAM, MOVE_AMNESIA, MOVE_THUNDER, MOVE_REST}, }, @@ -473,7 +473,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_ARTICUNO, .heldItem = ITEM_SCOPE_LENS, .fixedIV = 31, - .nature = 16, + .nature = NATURE_MILD, .evs = {6, 0, 252, 252, 0, 0}, .moves = {MOVE_BLIZZARD, MOVE_WATER_PULSE, MOVE_AERIAL_ACE, MOVE_REFLECT}, }, @@ -481,7 +481,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_ZAPDOS, .heldItem = ITEM_LUM_BERRY, .fixedIV = 31, - .nature = 16, + .nature = NATURE_MILD, .evs = {6, 0, 252, 252, 0, 0}, .moves = {MOVE_THUNDER, MOVE_DETECT, MOVE_DRILL_PECK, MOVE_LIGHT_SCREEN}, }, @@ -489,7 +489,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = .species = SPECIES_MOLTRES, .heldItem = ITEM_BRIGHT_POWDER, .fixedIV = 31, - .nature = 16, + .nature = NATURE_MILD, .evs = {6, 0, 252, 252, 0, 0}, .moves = {MOVE_FIRE_BLAST, MOVE_HYPER_BEAM, MOVE_AERIAL_ACE, MOVE_SAFEGUARD}, }, @@ -497,7 +497,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = }, }; -static const u8 gUnknown_086118B4[][7][4] = +static const u8 sBattlePointAwards[][NUM_FRONTIER_FACILITIES][FRONTIER_MODE_COUNT] = { { {1, 2, 3, 3}, {1, 1, 0, 0}, {4, 5, 0, 0}, {1, 0, 0, 0}, {3, 4, 0, 0}, {1, 0, 0, 0}, {5, 0, 0, 0} @@ -591,7 +591,9 @@ static const u8 gUnknown_086118B4[][7][4] = }, }; -static const u16 gUnknown_08611BFC[][2] = +// Flags to change the conversation when the Frontier Brain is encountered for a battle +// First bit is has battled them before and not won yet, second bit is has battled them and won (obtained a Symbol) +static const u16 sBattledBrainBitFlags[NUM_FRONTIER_FACILITIES][2] = { [FRONTIER_FACILITY_TOWER] = {0x0001, 0x0002}, [FRONTIER_FACILITY_DOME] = {0x0004, 0x0008}, @@ -604,32 +606,32 @@ static const u16 gUnknown_08611BFC[][2] = static void (* const sFrontierUtilFuncs[])(void) = { - [FRONTIER_UTIL_FUNC_0] = sub_81A17A0, - [FRONTIER_UTIL_FUNC_1] = sub_81A1830, - [FRONTIER_UTIL_FUNC_2] = sub_81A1968, - [FRONTIER_UTIL_FUNC_LOAD_SELECTED_PARTY] = LoadSelectedParty, + [FRONTIER_UTIL_FUNC_GET_STATUS] = GetChallengeStatus, + [FRONTIER_UTIL_FUNC_GET_DATA] = GetFrontierData, + [FRONTIER_UTIL_FUNC_SET_DATA] = SetFrontierData, + [FRONTIER_UTIL_FUNC_SET_PARTY_ORDER] = SetSelectedPartyOrder, [FRONTIER_UTIL_FUNC_SOFT_RESET] = DoSoftReset_, - [FRONTIER_UTIL_FUNC_SET_FRONTIER_TRAINERS] = SetFrontierTrainers, - [FRONTIER_UTIL_FUNC_6] = sub_81A1B38, + [FRONTIER_UTIL_FUNC_SET_TRAINERS] = SetFrontierTrainers, + [FRONTIER_UTIL_FUNC_SAVE_PARTY] = SaveSelectedParty, [FRONTIER_UTIL_FUNC_RESULTS_WINDOW] = ShowFacilityResultsWindow, - [FRONTIER_UTIL_FUNC_8] = sub_81A31FC, - [FRONTIER_UTIL_FUNC_9] = sub_81A35EC, - [FRONTIER_UTIL_FUNC_IS_FRONTIER_BRAIN] = IsTrainerFrontierBrain, - [FRONTIER_UTIL_FUNC_11] = sub_81A3B64, + [FRONTIER_UTIL_FUNC_CHECK_AIR_TV_SHOW] = CheckPutFrontierTVShowOnAir, + [FRONTIER_UTIL_FUNC_GET_BRAIN_STATUS] = Script_GetFrontierBrainStatus, + [FRONTIER_UTIL_FUNC_IS_BRAIN] = IsTrainerFrontierBrain, + [FRONTIER_UTIL_FUNC_GIVE_BATTLE_POINTS] = GiveBattlePoints, [FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS] = GetFacilitySymbolCount, [FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL] = GiveFacilitySymbol, [FRONTIER_UTIL_FUNC_CHECK_BATTLE_TYPE] = CheckBattleTypeFlag, - [FRONTIER_UTIL_FUNC_15] = sub_81A3FD4, + [FRONTIER_UTIL_FUNC_CHECK_INELIGIBLE] = CheckPartyIneligibility, [FRONTIER_UTIL_FUNC_CHECK_VISIT_TRAINER] = ValidateVisitingTrainer, - [FRONTIER_UTIL_FUNC_17] = sub_81A4230, - [FRONTIER_UTIL_FUNC_18] = sub_81A43A8, - [FRONTIER_UTIL_FUNC_19] = sub_81A4410, + [FRONTIER_UTIL_FUNC_INCREMENT_STREAK] = IncrementWinStreak, + [FRONTIER_UTIL_FUNC_RESTORE_HELD_ITEMS] = RestoreHeldItems, + [FRONTIER_UTIL_FUNC_SAVE_BATTLE] = SaveRecordBattle, [FRONTIER_UTIL_FUNC_BUFFER_TRAINER_NAME] = BufferFrontierTrainerName, - [FRONTIER_UTIL_FUNC_21] = sub_81A447C, + [FRONTIER_UTIL_FUNC_RESET_SKETCH_MOVES] = ResetSketchedMoves, [FRONTIER_UTIL_FUNC_SET_BRAIN_OBJECT] = SetFacilityBrainObjectEvent, }; -static const struct WindowTemplate gUnknown_08611C74 = +static const struct WindowTemplate sFrontierResultsWindowTemplate = { .bg = 0, .tilemapLeft = 1, @@ -640,7 +642,7 @@ static const struct WindowTemplate gUnknown_08611C74 = .baseBlock = 1 }; -static const struct WindowTemplate gUnknown_08611C7C = +static const struct WindowTemplate sLinkContestResultsWindowTemplate = { .bg = 0, .tilemapLeft = 2, @@ -651,7 +653,7 @@ static const struct WindowTemplate gUnknown_08611C7C = .baseBlock = 1 }; -static const struct WindowTemplate gUnknown_08611C84 = +static const struct WindowTemplate sRankingHallRecordsWindowTemplate = { .bg = 0, .tilemapLeft = 2, @@ -663,7 +665,7 @@ static const struct WindowTemplate gUnknown_08611C84 = }; // Second field - whether the character is female. -static const u8 sFacilityToBrainObjEventGfx[][2] = +static const u8 sFrontierBrainObjEventGfx[NUM_FRONTIER_FACILITIES][2] = { [FRONTIER_FACILITY_TOWER] = {OBJ_EVENT_GFX_ANABEL, TRUE}, [FRONTIER_FACILITY_DOME] = {OBJ_EVENT_GFX_TUCKER, FALSE}, @@ -714,7 +716,7 @@ static const u8 *const sHallFacilityToRecordsText[] = [RANKING_HALL_BATTLE_TOWER_LINK] = gText_FrontierFacilityWinStreak, }; -static const u16 gFacilityToBrainTrainerId[] = +static const u16 sFrontierBrainTrainerIds[NUM_FRONTIER_FACILITIES] = { [FRONTIER_FACILITY_TOWER] = TRAINER_ANABEL, [FRONTIER_FACILITY_DOME] = TRAINER_TUCKER, @@ -725,60 +727,60 @@ static const u16 gFacilityToBrainTrainerId[] = [FRONTIER_FACILITY_PYRAMID] = TRAINER_BRANDON, }; -static const u8 *const gUnknown_08611D40[] = +static const u8 *const sFrontierBrainPlayerLostSilverTexts[NUM_FRONTIER_FACILITIES] = { - gText_082C843F, - gText_082C848B, - gText_082C8628, - gText_082C85B4, - gText_082C8512, - gText_082C859D, - gText_082C86C3, + [FRONTIER_FACILITY_TOWER] = gText_AnabelWonSilver, + [FRONTIER_FACILITY_DOME] = gText_TuckerWonSilver, + [FRONTIER_FACILITY_PALACE] = gText_SpenserWonSilver, + [FRONTIER_FACILITY_ARENA] = gText_GretaWonSilver, + [FRONTIER_FACILITY_FACTORY] = gText_NolandWonSilver, + [FRONTIER_FACILITY_PIKE] = gText_LucyWonSilver, + [FRONTIER_FACILITY_PYRAMID] = gText_BrandonWonSilver, }; -static const u8 *const gUnknown_08611D5C[] = +static const u8 *const sFrontierBrainPlayerWonSilverTexts[NUM_FRONTIER_FACILITIES] = { - gText_082C8458, - gText_082C84C1, - gText_082C8662, - gText_082C85E3, - gText_082C853B, - gText_082C85A4, - gText_082C86FE, + [FRONTIER_FACILITY_TOWER] = gText_AnabelDefeatSilver, + [FRONTIER_FACILITY_DOME] = gText_TuckerDefeatSilver, + [FRONTIER_FACILITY_PALACE] = gText_SpenserDefeatSilver, + [FRONTIER_FACILITY_ARENA] = gText_GretaDefeatSilver, + [FRONTIER_FACILITY_FACTORY] = gText_NolandDefeatSilver, + [FRONTIER_FACILITY_PIKE] = gText_LucyDefeatSilver, + [FRONTIER_FACILITY_PYRAMID] = gText_BrandonDefeatSilver, }; -static const u8 *const gUnknown_08611D78[] = +static const u8 *const sFrontierBrainPlayerLostGoldTexts[NUM_FRONTIER_FACILITIES] = { - gText_082C846C, - gText_082C84D0, - gText_082C8682, - gText_082C85F5, - gText_082C8561, - gText_082C85A9, - gText_082C8739, + [FRONTIER_FACILITY_TOWER] = gText_AnabelWonGold, + [FRONTIER_FACILITY_DOME] = gText_TuckerWonGold, + [FRONTIER_FACILITY_PALACE] = gText_SpenserWonGold, + [FRONTIER_FACILITY_ARENA] = gText_GretaWonGold, + [FRONTIER_FACILITY_FACTORY] = gText_NolandWonGold, + [FRONTIER_FACILITY_PIKE] = gText_LucyWonGold, + [FRONTIER_FACILITY_PYRAMID] = gText_BrandonWonGold, }; -static const u8 *const gUnknown_08611D94[] = +static const u8 *const sFrontierBrainPlayerWonGoldTexts[NUM_FRONTIER_FACILITIES] = { - gText_082C8480, - gText_082C84F7, - gText_082C86B3, - gText_082C8611, - gText_082C8589, - gText_082C85AE, - gText_082C877B, + [FRONTIER_FACILITY_TOWER] = gText_AnabelDefeatGold, + [FRONTIER_FACILITY_DOME] = gText_TuckerDefeatGold, + [FRONTIER_FACILITY_PALACE] = gText_SpenserDefeatGold, + [FRONTIER_FACILITY_ARENA] = gText_GretaDefeatGold, + [FRONTIER_FACILITY_FACTORY] = gText_NolandDefeatGold, + [FRONTIER_FACILITY_PIKE] = gText_LucyDefeatGold, + [FRONTIER_FACILITY_PYRAMID] = gText_BrandonDefeatGold, }; -static const u8 *const *const gUnknown_08611DB0[] = +static const u8 *const *const sFrontierBrainPlayerLostTexts[] = { - gUnknown_08611D40, - gUnknown_08611D78, + sFrontierBrainPlayerLostSilverTexts, + sFrontierBrainPlayerLostGoldTexts, }; -static const u8 *const *const gUnknown_08611DB8[] = +static const u8 *const *const sFrontierBrainPlayerWonTexts[] = { - gUnknown_08611D5C, - gUnknown_08611D94, + sFrontierBrainPlayerWonSilverTexts, + sFrontierBrainPlayerWonGoldTexts, }; // code @@ -787,101 +789,102 @@ void CallFrontierUtilFunc(void) sFrontierUtilFuncs[gSpecialVar_0x8004](); } -static void sub_81A17A0(void) +// Buffers into VAR_TEMP_0 specifically because this is used to react to the status in OnFrame map scripts +static void GetChallengeStatus(void) { VarSet(VAR_TEMP_0, 0xFF); - switch (gSaveBlock2Ptr->frontier.field_CA8) + switch (gSaveBlock2Ptr->frontier.challengeStatus) { case 0: break; - case 1: + case CHALLENGE_STATUS_SAVING: FrontierGamblerSetWonOrLost(FALSE); - VarSet(VAR_TEMP_0, gSaveBlock2Ptr->frontier.field_CA8); + VarSet(VAR_TEMP_0, gSaveBlock2Ptr->frontier.challengeStatus); break; - case 4: + case CHALLENGE_STATUS_LOST: FrontierGamblerSetWonOrLost(FALSE); - VarSet(VAR_TEMP_0, gSaveBlock2Ptr->frontier.field_CA8); + VarSet(VAR_TEMP_0, gSaveBlock2Ptr->frontier.challengeStatus); break; - case 3: + case CHALLENGE_STATUS_WON: FrontierGamblerSetWonOrLost(TRUE); - VarSet(VAR_TEMP_0, gSaveBlock2Ptr->frontier.field_CA8); + VarSet(VAR_TEMP_0, gSaveBlock2Ptr->frontier.challengeStatus); break; - case 2: - VarSet(VAR_TEMP_0, gSaveBlock2Ptr->frontier.field_CA8); + case CHALLENGE_STATUS_PAUSED: + VarSet(VAR_TEMP_0, gSaveBlock2Ptr->frontier.challengeStatus); break; } } -static void sub_81A1830(void) +static void GetFrontierData(void) { u8 facility = VarGet(VAR_FRONTIER_FACILITY); - u8 currSymbol = GetPlayerSymbolCountForFacility(facility); - if (currSymbol == 2) - currSymbol = 1; + u8 hasSymbol = GetPlayerSymbolCountForFacility(facility); + if (hasSymbol == 2) + hasSymbol = 1; switch (gSpecialVar_0x8005) { - case 0: - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_CA8; + case FRONTIER_DATA_CHALLENGE_STATUS: + gSpecialVar_Result = gSaveBlock2Ptr->frontier.challengeStatus; break; - case 1: + case FRONTIER_DATA_LVL_MODE: gSpecialVar_Result = gSaveBlock2Ptr->frontier.lvlMode; break; - case 2: + case FRONTIER_DATA_BATTLE_NUM: gSpecialVar_Result = gSaveBlock2Ptr->frontier.curChallengeBattleNum; break; - case 3: - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_CA9_a; + case FRONTIER_DATA_PAUSED: + gSpecialVar_Result = gSaveBlock2Ptr->frontier.challengePaused; break; - case 5: + case FRONTIER_DATA_BATTLE_OUTCOME: gSpecialVar_Result = gBattleOutcome; gBattleOutcome = 0; break; - case 6: + case FRONTIER_DATA_6: gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_CA9_b; break; - case 7: - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D00 & gUnknown_08611BFC[facility][currSymbol]; + case FRONTIER_DATA_HEARD_BRAIN_SPEECH: + gSpecialVar_Result = gSaveBlock2Ptr->frontier.battledBrainFlags & sBattledBrainBitFlags[facility][hasSymbol]; break; } } -static void sub_81A1968(void) +static void SetFrontierData(void) { s32 i; u8 facility = VarGet(VAR_FRONTIER_FACILITY); - u8 currSymbol = GetPlayerSymbolCountForFacility(facility); - if (currSymbol == 2) - currSymbol = 1; + u8 hasSymbol = GetPlayerSymbolCountForFacility(facility); + if (hasSymbol == 2) + hasSymbol = 1; switch (gSpecialVar_0x8005) { - case 0: - gSaveBlock2Ptr->frontier.field_CA8 = gSpecialVar_0x8006; + case FRONTIER_DATA_CHALLENGE_STATUS: + gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8006; break; - case 1: + case FRONTIER_DATA_LVL_MODE: gSaveBlock2Ptr->frontier.lvlMode = gSpecialVar_0x8006; break; - case 2: + case FRONTIER_DATA_BATTLE_NUM: gSaveBlock2Ptr->frontier.curChallengeBattleNum = gSpecialVar_0x8006; break; - case 3: - gSaveBlock2Ptr->frontier.field_CA9_a = gSpecialVar_0x8006; + case FRONTIER_DATA_PAUSED: + gSaveBlock2Ptr->frontier.challengePaused = gSpecialVar_0x8006; break; - case 4: - for (i = 0; i < 4; i++) + case FRONTIER_DATA_SELECTED_MON_ORDER: + for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++) gSaveBlock2Ptr->frontier.selectedPartyMons[i] = gSelectedOrderFromParty[i]; break; - case 6: + case FRONTIER_DATA_6: gSaveBlock2Ptr->frontier.field_CA9_b = gSpecialVar_0x8006; break; - case 7: - gSaveBlock2Ptr->frontier.field_D00 |= gUnknown_08611BFC[facility][currSymbol]; + case FRONTIER_DATA_HEARD_BRAIN_SPEECH: + gSaveBlock2Ptr->frontier.battledBrainFlags |= sBattledBrainBitFlags[facility][hasSymbol]; break; } } -static void LoadSelectedParty(void) +static void SetSelectedPartyOrder(void) { s32 i; @@ -901,11 +904,11 @@ static void SetFrontierTrainers(void) gFacilityTrainers = gBattleFrontierTrainers; } -static void sub_81A1B38(void) +static void SaveSelectedParty(void) { u8 i; - for (i = 0; i < 4; i++) + for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++) { u16 monId = gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1; if (monId < PARTY_SIZE) @@ -915,7 +918,7 @@ static void sub_81A1B38(void) static void ShowFacilityResultsWindow(void) { - if (gSpecialVar_0x8006 > 3) + if (gSpecialVar_0x8006 >= FRONTIER_MODE_COUNT) gSpecialVar_0x8006 = 0; switch (gSpecialVar_0x8005) { @@ -940,15 +943,15 @@ static void ShowFacilityResultsWindow(void) case FRONTIER_FACILITY_PYRAMID: ShowPyramidResultsWindow(); break; - case RESULTS_LINK_CONTEST: + case FACILITY_LINK_CONTEST: ShowLinkContestResultsWindow(); break; } } -static bool8 sub_81A1C24(u32 flags) +static bool8 IsWinStreakActive(u32 challenge) { - if (gSaveBlock2Ptr->frontier.field_CDC & flags) + if (gSaveBlock2Ptr->frontier.winStreakActiveFlags & challenge) return TRUE; else return FALSE; @@ -978,8 +981,8 @@ static void PrintHyphens(s32 y) static void TowerPrintStreak(const u8 *str, u16 num, u8 x1, u8 x2, u8 y) { AddTextPrinterParameterized(gRecordsWindowId, 1, str, x1, y, TEXT_SPEED_FF, NULL); - if (num > 9999) - num = 9999; + if (num > MAX_STREAK) + num = MAX_STREAK; ConvertIntToDecimalStringN(gStringVar1, num, STR_CONV_MODE_RIGHT_ALIGN, 4); StringExpandPlaceholders(gStringVar4, gText_WinStreak); AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, x2, y, TEXT_SPEED_FF, NULL); @@ -994,8 +997,8 @@ static void TowerPrintRecordStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 x2, u8 y static u16 TowerGetWinStreak(u8 battleMode, u8 lvlMode) { u16 winStreak = gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode]; - if (winStreak > 9999) - return 9999; + if (winStreak > MAX_STREAK) + return MAX_STREAK; else return winStreak; } @@ -1009,27 +1012,27 @@ static void TowerPrintPrevOrCurrentStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 x default: case FRONTIER_MODE_SINGLES: if (lvlMode != FRONTIER_LVL_50) - isCurrent = sub_81A1C24(2); + isCurrent = IsWinStreakActive(STREAK_TOWER_SINGLES_OPEN); else - isCurrent = sub_81A1C24(1); + isCurrent = IsWinStreakActive(STREAK_TOWER_SINGLES_50); break; case FRONTIER_MODE_DOUBLES: if (lvlMode != FRONTIER_LVL_50) - isCurrent = sub_81A1C24(0x8000); + isCurrent = IsWinStreakActive(STREAK_TOWER_DOUBLES_OPEN); else - isCurrent = sub_81A1C24(0x4000); + isCurrent = IsWinStreakActive(STREAK_TOWER_DOUBLES_50); break; case FRONTIER_MODE_MULTIS: if (lvlMode != FRONTIER_LVL_50) - isCurrent = sub_81A1C24(0x20000); + isCurrent = IsWinStreakActive(STREAK_TOWER_MULTIS_OPEN); else - isCurrent = sub_81A1C24(0x10000); + isCurrent = IsWinStreakActive(STREAK_TOWER_MULTIS_50); break; case FRONTIER_MODE_LINK_MULTIS: if (lvlMode != FRONTIER_LVL_50) - isCurrent = sub_81A1C24(0x80000); + isCurrent = IsWinStreakActive(STREAK_TOWER_LINK_MULTIS_OPEN); else - isCurrent = sub_81A1C24(0x40000); + isCurrent = IsWinStreakActive(STREAK_TOWER_LINK_MULTIS_50); break; } @@ -1041,7 +1044,7 @@ static void TowerPrintPrevOrCurrentStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 x static void ShowTowerResultsWindow(u8 battleMode) { - gRecordsWindowId = AddWindow(&gUnknown_08611C74); + gRecordsWindowId = AddWindow(&sFrontierResultsWindowTemplate); DrawStdWindowFrame(gRecordsWindowId, FALSE); FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1)); if (battleMode == FRONTIER_MODE_SINGLES) @@ -1069,8 +1072,8 @@ static void ShowTowerResultsWindow(u8 battleMode) static u16 DomeGetWinStreak(u8 battleMode, u8 lvlMode) { u16 winStreak = gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode]; - if (winStreak > 9999) - return 9999; + if (winStreak > MAX_STREAK) + return MAX_STREAK; else return winStreak; } @@ -1092,15 +1095,15 @@ static void DomePrintPrevOrCurrentStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 x2 default: case FRONTIER_MODE_SINGLES: if (lvlMode != FRONTIER_LVL_50) - isCurrent = sub_81A1C24(8); + isCurrent = IsWinStreakActive(STREAK_DOME_SINGLES_OPEN); else - isCurrent = sub_81A1C24(4); + isCurrent = IsWinStreakActive(STREAK_DOME_SINGLES_50); break; case FRONTIER_MODE_DOUBLES: if (lvlMode != FRONTIER_LVL_50) - isCurrent = sub_81A1C24(0x200000); + isCurrent = IsWinStreakActive(STREAK_DOME_DOUBLES_OPEN); else - isCurrent = sub_81A1C24(0x100000); + isCurrent = IsWinStreakActive(STREAK_DOME_DOUBLES_50); break; } @@ -1112,7 +1115,7 @@ static void DomePrintPrevOrCurrentStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 x2 static void ShowDomeResultsWindow(u8 battleMode) { - gRecordsWindowId = AddWindow(&gUnknown_08611C74); + gRecordsWindowId = AddWindow(&sFrontierResultsWindowTemplate); DrawStdWindowFrame(gRecordsWindowId, FALSE); FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1)); if (battleMode == FRONTIER_MODE_SINGLES) @@ -1138,8 +1141,8 @@ static void ShowDomeResultsWindow(u8 battleMode) static void PalacePrintStreak(const u8 *str, u16 num, u8 x1, u8 x2, u8 y) { AddTextPrinterParameterized(gRecordsWindowId, 1, str, x1, y, TEXT_SPEED_FF, NULL); - if (num > 9999) - num = 9999; + if (num > MAX_STREAK) + num = MAX_STREAK; ConvertIntToDecimalStringN(gStringVar1, num, STR_CONV_MODE_RIGHT_ALIGN, 4); StringExpandPlaceholders(gStringVar4, gText_WinStreak); AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, x2, y, TEXT_SPEED_FF, NULL); @@ -1154,8 +1157,8 @@ static void PalacePrintRecordStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 x2, u8 static u16 PalaceGetWinStreak(u8 battleMode, u8 lvlMode) { u16 winStreak = gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode]; - if (winStreak > 9999) - return 9999; + if (winStreak > MAX_STREAK) + return MAX_STREAK; else return winStreak; } @@ -1169,15 +1172,15 @@ static void PalacePrintPrevOrCurrentStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 default: case FRONTIER_MODE_SINGLES: if (lvlMode != FRONTIER_LVL_50) - isCurrent = sub_81A1C24(0x20); + isCurrent = IsWinStreakActive(STREAK_PALACE_SINGLES_OPEN); else - isCurrent = sub_81A1C24(0x10); + isCurrent = IsWinStreakActive(STREAK_PALACE_SINGLES_50); break; case FRONTIER_MODE_DOUBLES: if (lvlMode != FRONTIER_LVL_50) - isCurrent = sub_81A1C24(0x800000); + isCurrent = IsWinStreakActive(STREAK_PALACE_DOUBLES_OPEN); else - isCurrent = sub_81A1C24(0x400000); + isCurrent = IsWinStreakActive(STREAK_PALACE_DOUBLES_50); } if (isCurrent == TRUE) @@ -1188,7 +1191,7 @@ static void PalacePrintPrevOrCurrentStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 static void ShowPalaceResultsWindow(u8 battleMode) { - gRecordsWindowId = AddWindow(&gUnknown_08611C74); + gRecordsWindowId = AddWindow(&sFrontierResultsWindowTemplate); DrawStdWindowFrame(gRecordsWindowId, FALSE); FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1)); if (battleMode == FRONTIER_MODE_SINGLES) @@ -1212,8 +1215,8 @@ static void ShowPalaceResultsWindow(u8 battleMode) static u16 PikeGetWinStreak(u8 lvlMode) { u16 winStreak = gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode]; - if (winStreak > 9999) - return 9999; + if (winStreak > MAX_STREAK) + return MAX_STREAK; else return winStreak; } @@ -1232,9 +1235,9 @@ static void PikePrintPrevOrCurrentStreak(u8 lvlMode, u8 x1, u8 x2, u8 y) u16 winStreak = PikeGetWinStreak(lvlMode); if (lvlMode != FRONTIER_LVL_50) - isCurrent = sub_81A1C24(0x800); + isCurrent = IsWinStreakActive(STREAK_PIKE_OPEN); else - isCurrent = sub_81A1C24(0x400); + isCurrent = IsWinStreakActive(STREAK_PIKE_50); if (isCurrent == TRUE) PrintTwoStrings(gText_Current, gText_RoomsCleared, winStreak, x1, x2, y); @@ -1244,7 +1247,7 @@ static void PikePrintPrevOrCurrentStreak(u8 lvlMode, u8 x1, u8 x2, u8 y) static void ShowPikeResultsWindow(void) { - gRecordsWindowId = AddWindow(&gUnknown_08611C74); + gRecordsWindowId = AddWindow(&sFrontierResultsWindowTemplate); DrawStdWindowFrame(gRecordsWindowId, FALSE); FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1)); StringExpandPlaceholders(gStringVar4, gText_BattleChoiceResults); @@ -1266,8 +1269,8 @@ static void ShowPikeResultsWindow(void) static void ArenaPrintStreak(const u8 *str, u16 num, u8 x1, u8 x2, u8 y) { AddTextPrinterParameterized(gRecordsWindowId, 1, str, x1, y, TEXT_SPEED_FF, NULL); - if (num > 9999) - num = 9999; + if (num > MAX_STREAK) + num = MAX_STREAK; ConvertIntToDecimalStringN(gStringVar1, num, STR_CONV_MODE_RIGHT_ALIGN, 4); StringExpandPlaceholders(gStringVar4, gText_KOsInARow); AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, x2, y, TEXT_SPEED_FF, NULL); @@ -1282,8 +1285,8 @@ static void ArenaPrintRecordStreak(u8 lvlMode, u8 x1, u8 x2, u8 y) static u16 ArenaGetWinStreak(u8 lvlMode) { u16 winStreak = gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode]; - if (winStreak > 9999) - return 9999; + if (winStreak > MAX_STREAK) + return MAX_STREAK; else return winStreak; } @@ -1294,9 +1297,9 @@ static void ArenaPrintPrevOrCurrentStreak(u8 lvlMode, u8 x1, u8 x2, u8 y) u16 winStreak = ArenaGetWinStreak(lvlMode); if (lvlMode != FRONTIER_LVL_50) - isCurrent = sub_81A1C24(0x80); + isCurrent = IsWinStreakActive(STREAK_ARENA_OPEN); else - isCurrent = sub_81A1C24(0x40); + isCurrent = IsWinStreakActive(STREAK_ARENA_50); if (isCurrent == TRUE) ArenaPrintStreak(gText_Current, winStreak, x1, x2, y); @@ -1306,7 +1309,7 @@ static void ArenaPrintPrevOrCurrentStreak(u8 lvlMode, u8 x1, u8 x2, u8 y) static void ShowArenaResultsWindow(void) { - gRecordsWindowId = AddWindow(&gUnknown_08611C74); + gRecordsWindowId = AddWindow(&sFrontierResultsWindowTemplate); DrawStdWindowFrame(gRecordsWindowId, FALSE); FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1)); PrintHyphens(10); @@ -1326,8 +1329,8 @@ static void ShowArenaResultsWindow(void) static void FactoryPrintStreak(const u8 *str, u16 num1, u16 num2, u8 x1, u8 x2, u8 x3, u8 y) { AddTextPrinterParameterized(gRecordsWindowId, 1, str, x1, y, TEXT_SPEED_FF, NULL); - if (num1 > 9999) - num1 = 9999; + if (num1 > MAX_STREAK) + num1 = MAX_STREAK; ConvertIntToDecimalStringN(gStringVar1, num1, STR_CONV_MODE_RIGHT_ALIGN, 4); StringExpandPlaceholders(gStringVar4, gText_WinStreak); AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, x2, y, TEXT_SPEED_FF, NULL); @@ -1347,8 +1350,8 @@ static void FactoryPrintRecordStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 x2, u8 static u16 FactoryGetWinStreak(u8 battleMode, u8 lvlMode) { u16 winStreak = gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode]; - if (winStreak > 9999) - return 9999; + if (winStreak > MAX_STREAK) + return MAX_STREAK; else return winStreak; } @@ -1356,8 +1359,8 @@ static u16 FactoryGetWinStreak(u8 battleMode, u8 lvlMode) static u16 FactoryGetRentsCount(u8 battleMode, u8 lvlMode) { u16 rents = gSaveBlock2Ptr->frontier.factoryRentsCount[battleMode][lvlMode]; - if (rents > 9999) - return 9999; + if (rents > MAX_STREAK) + return MAX_STREAK; else return rents; } @@ -1372,15 +1375,15 @@ static void FactoryPrintPrevOrCurrentStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 default: case FRONTIER_MODE_SINGLES: if (lvlMode != FRONTIER_LVL_50) - isCurrent = sub_81A1C24(0x200); + isCurrent = IsWinStreakActive(STREAK_FACTORY_SINGLES_OPEN); else - isCurrent = sub_81A1C24(0x100); + isCurrent = IsWinStreakActive(STREAK_FACTORY_SINGLES_50); break; case FRONTIER_MODE_DOUBLES: if (lvlMode != FRONTIER_LVL_50) - isCurrent = sub_81A1C24(0x2000000); + isCurrent = IsWinStreakActive(STREAK_FACTORY_DOUBLES_OPEN); else - isCurrent = sub_81A1C24(0x1000000); + isCurrent = IsWinStreakActive(STREAK_FACTORY_DOUBLES_50); break; } @@ -1392,7 +1395,7 @@ static void FactoryPrintPrevOrCurrentStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 static void ShowFactoryResultsWindow(u8 battleMode) { - gRecordsWindowId = AddWindow(&gUnknown_08611C74); + gRecordsWindowId = AddWindow(&sFrontierResultsWindowTemplate); DrawStdWindowFrame(gRecordsWindowId, FALSE); FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1)); if (battleMode == FRONTIER_MODE_SINGLES) @@ -1417,8 +1420,8 @@ static void ShowFactoryResultsWindow(u8 battleMode) static void PyramidPrintStreak(const u8 *str, u16 num, u8 x1, u8 x2, u8 y) { AddTextPrinterParameterized(gRecordsWindowId, 1, str, x1, y, TEXT_SPEED_FF, NULL); - if (num > 9999) - num = 9999; + if (num > MAX_STREAK) + num = MAX_STREAK; ConvertIntToDecimalStringN(gStringVar1, num, STR_CONV_MODE_RIGHT_ALIGN, 4); StringExpandPlaceholders(gStringVar4, gText_FloorsCleared); AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, x2, y, TEXT_SPEED_FF, NULL); @@ -1433,8 +1436,8 @@ static void PyramidPrintRecordStreak(u8 lvlMode, u8 x1, u8 x2, u8 y) static u16 PyramidGetWinStreak(u8 lvlMode) { u16 winStreak = gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode]; - if (winStreak > 9999) - return 9999; + if (winStreak > MAX_STREAK) + return MAX_STREAK; else return winStreak; } @@ -1445,9 +1448,9 @@ static void PyramidPrintPrevOrCurrentStreak(u8 lvlMode, u8 x1, u8 x2, u8 y) u16 winStreak = PyramidGetWinStreak(lvlMode); if (lvlMode != FRONTIER_LVL_50) - isCurrent = sub_81A1C24(0x2000); + isCurrent = IsWinStreakActive(STREAK_PYRAMID_OPEN); else - isCurrent = sub_81A1C24(0x1000); + isCurrent = IsWinStreakActive(STREAK_PYRAMID_50); if (isCurrent == TRUE) PyramidPrintStreak(gText_Current, winStreak, x1, x2, y); @@ -1457,7 +1460,7 @@ static void PyramidPrintPrevOrCurrentStreak(u8 lvlMode, u8 x1, u8 x2, u8 y) static void ShowPyramidResultsWindow(void) { - gRecordsWindowId = AddWindow(&gUnknown_08611C74); + gRecordsWindowId = AddWindow(&sFrontierResultsWindowTemplate); DrawStdWindowFrame(gRecordsWindowId, FALSE); FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1)); StringExpandPlaceholders(gStringVar4, gText_BattleQuestResults); @@ -1480,7 +1483,7 @@ static void ShowLinkContestResultsWindow(void) s32 i, j; s32 x; - gRecordsWindowId = AddWindow(&gUnknown_08611C7C); + gRecordsWindowId = AddWindow(&sLinkContestResultsWindowTemplate); DrawStdWindowFrame(gRecordsWindowId, FALSE); FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1)); @@ -1524,7 +1527,7 @@ static void ShowLinkContestResultsWindow(void) CopyWindowToVram(gRecordsWindowId, 3); } -static void sub_81A31FC(void) +static void CheckPutFrontierTVShowOnAir(void) { u8 name[32]; s32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; @@ -1541,25 +1544,25 @@ static void sub_81A31FC(void) { StringCopy(name, gLinkPlayers[gBattleScripting.multiplayerId ^ 1].name); StripExtCtrlCodes(name); - StringCopy(gSaveBlock2Ptr->frontier.opponentName[lvlMode], name); - SetTrainerId(gLinkPlayers[gBattleScripting.multiplayerId ^ 1].trainerId, gSaveBlock2Ptr->frontier.field_EF1[lvlMode]); + StringCopy(gSaveBlock2Ptr->frontier.opponentNames[lvlMode], name); + SetTrainerId(gLinkPlayers[gBattleScripting.multiplayerId ^ 1].trainerId, gSaveBlock2Ptr->frontier.opponentTrainerIds[lvlMode]); } if (gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] > 1 - && sub_80EE818()) + && ShouldAirFrontierTVShow()) { switch (battleMode) { case FRONTIER_MODE_SINGLES: - sub_80EE8C8(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], 1); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], 1); break; case FRONTIER_MODE_DOUBLES: - sub_80EE8C8(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], 2); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], 2); break; case FRONTIER_MODE_MULTIS: - sub_80EE8C8(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], 3); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], 3); break; case FRONTIER_MODE_LINK_MULTIS: - sub_80EE8C8(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], 4); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], 4); break; } } @@ -1570,12 +1573,12 @@ static void sub_81A31FC(void) { gSaveBlock2Ptr->frontier.domeRecordWinStreaks[battleMode][lvlMode] = gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode]; if (gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode] > 1 - && sub_80EE818()) + && ShouldAirFrontierTVShow()) { if (battleMode == FRONTIER_MODE_SINGLES) - sub_80EE8C8(gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode], 5); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode], 5); else - sub_80EE8C8(gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode], 6); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode], 6); } } break; @@ -1584,12 +1587,12 @@ static void sub_81A31FC(void) { gSaveBlock2Ptr->frontier.palaceRecordWinStreaks[battleMode][lvlMode] = gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode]; if (gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode] > 1 - && sub_80EE818()) + && ShouldAirFrontierTVShow()) { if (battleMode == FRONTIER_MODE_SINGLES) - sub_80EE8C8(gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode], 11); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode], 11); else - sub_80EE8C8(gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode], 12); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode], 12); } } break; @@ -1598,9 +1601,9 @@ static void sub_81A31FC(void) { gSaveBlock2Ptr->frontier.arenaRecordStreaks[lvlMode] = gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode]; if (gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode] > 1 - && sub_80EE818()) + && ShouldAirFrontierTVShow()) { - sub_80EE8C8(gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode], 10); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode], 10); } } break; @@ -1610,12 +1613,12 @@ static void sub_81A31FC(void) gSaveBlock2Ptr->frontier.factoryRecordWinStreaks[battleMode][lvlMode] = gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode]; gSaveBlock2Ptr->frontier.factoryRecordRentsCount[battleMode][lvlMode] = gSaveBlock2Ptr->frontier.factoryRentsCount[battleMode][lvlMode]; if (gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode] > 1 - && sub_80EE818()) + && ShouldAirFrontierTVShow()) { if (battleMode == FRONTIER_MODE_SINGLES) - sub_80EE8C8(gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode], 7); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode], 7); else - sub_80EE8C8(gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode], 8); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode], 8); } } break; @@ -1624,9 +1627,9 @@ static void sub_81A31FC(void) { gSaveBlock2Ptr->frontier.pikeRecordStreaks[lvlMode] = gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode]; if (gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode] > 1 - && sub_80EE818()) + && ShouldAirFrontierTVShow()) { - sub_80EE8C8(gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode], 9); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode], 9); } } break; @@ -1635,53 +1638,58 @@ static void sub_81A31FC(void) { gSaveBlock2Ptr->frontier.pyramidRecordStreaks[lvlMode] = gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode]; if (gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode] > 1 - && sub_80EE818()) + && ShouldAirFrontierTVShow()) { - sub_80EE8C8(gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode], 13); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode], 13); } } break; } } -static void sub_81A35EC(void) +static void Script_GetFrontierBrainStatus(void) { VarGet(VAR_FRONTIER_FACILITY); // Unused return value. - gSpecialVar_Result = sub_81A3610(); + gSpecialVar_Result = GetFrontierBrainStatus(); } -u8 sub_81A3610(void) +u8 GetFrontierBrainStatus(void) { - s32 ret = 0; + s32 status = FRONTIER_BRAIN_NOT_READY; s32 facility = VarGet(VAR_FRONTIER_FACILITY); s32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); - u16 val = GetCurrentFacilityWinStreak(); - s32 r5 = val + gUnknown_08611550[facility][3]; + u16 winStreakNoModifier = GetCurrentFacilityWinStreak(); + s32 winStreak = winStreakNoModifier + sFrontierBrainStreakAppearances[facility][3]; s32 symbolsCount; if (battleMode != FRONTIER_MODE_SINGLES) - return 0; + return FRONTIER_BRAIN_NOT_READY; symbolsCount = GetPlayerSymbolCountForFacility(facility); switch (symbolsCount) { + // Missing a symbol case 0: case 1: - if (r5 == gUnknown_08611550[facility][symbolsCount]) - ret = symbolsCount + 1; + if (winStreak == sFrontierBrainStreakAppearances[facility][symbolsCount]) + status = symbolsCount + 1; // FRONTIER_BRAIN_SILVER and FRONTIER_BRAIN_GOLD break; + // Already received both symbols case 2: default: - if (r5 == gUnknown_08611550[facility][0]) - ret = 3; - else if (r5 == gUnknown_08611550[facility][1]) - ret = 4; - else if (r5 > gUnknown_08611550[facility][1] && (r5 - gUnknown_08611550[facility][1]) % gUnknown_08611550[facility][2] == 0) - ret = 4; + // Silver streak is reached + if (winStreak == sFrontierBrainStreakAppearances[facility][0]) + status = FRONTIER_BRAIN_STREAK; + // Gold streak is reached + else if (winStreak == sFrontierBrainStreakAppearances[facility][1]) + status = FRONTIER_BRAIN_STREAK_LONG; + // Some increment of the gold streak is reached + else if (winStreak > sFrontierBrainStreakAppearances[facility][1] && (winStreak - sFrontierBrainStreakAppearances[facility][1]) % sFrontierBrainStreakAppearances[facility][2] == 0) + status = FRONTIER_BRAIN_STREAK_LONG; break; } - return ret; + return status; } void CopyFrontierTrainerText(u8 whichText, u16 trainerId) @@ -1698,7 +1706,7 @@ void CopyFrontierTrainerText(u8 whichText, u16 trainerId) else if (trainerId < TRAINER_RECORD_MIXING_APPRENTICE) FrontierSpeechToString(gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].greeting); else - CopyFriendsApprenticeChallengeText(trainerId - TRAINER_RECORD_MIXING_APPRENTICE); + BufferApprenticeChallengeText(trainerId - TRAINER_RECORD_MIXING_APPRENTICE); break; case FRONTIER_PLAYER_LOST_TEXT: if (trainerId == TRAINER_EREADER) @@ -1725,7 +1733,7 @@ void CopyFrontierTrainerText(u8 whichText, u16 trainerId) if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) FrontierSpeechToString(GetRecordedBattleEasyChatSpeech()); else - FrontierSpeechToString(gSaveBlock2Ptr->apprentices[trainerId - TRAINER_RECORD_MIXING_APPRENTICE].easyChatWords); + FrontierSpeechToString(gSaveBlock2Ptr->apprentices[trainerId - TRAINER_RECORD_MIXING_APPRENTICE].speechWon); } break; case FRONTIER_PLAYER_WON_TEXT: @@ -1753,23 +1761,23 @@ void CopyFrontierTrainerText(u8 whichText, u16 trainerId) if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) { trainerId = GetRecordedBattleApprenticeId(); - FrontierSpeechToString(gApprentices[trainerId].easyChatWords); + FrontierSpeechToString(gApprentices[trainerId].speechLost); } else { trainerId = gSaveBlock2Ptr->apprentices[trainerId - TRAINER_RECORD_MIXING_APPRENTICE].id; - FrontierSpeechToString(gApprentices[trainerId].easyChatWords); + FrontierSpeechToString(gApprentices[trainerId].speechLost); } } break; } } -void sub_81A3908(void) +void ResetWinStreaks(void) { s32 battleMode, lvlMode; - gSaveBlock2Ptr->frontier.field_CDC = 0; + gSaveBlock2Ptr->frontier.winStreakActiveFlags = 0; for (battleMode = 0; battleMode < 4; battleMode++) { for (lvlMode = 0; lvlMode < 2; lvlMode++) @@ -1789,8 +1797,8 @@ void sub_81A3908(void) } } } - if (gSaveBlock2Ptr->frontier.field_CA8 != 0) - gSaveBlock2Ptr->frontier.field_CA8 = 1; + if (gSaveBlock2Ptr->frontier.challengeStatus != 0) + gSaveBlock2Ptr->frontier.challengeStatus = CHALLENGE_STATUS_SAVING; } u32 GetCurrentFacilityWinStreak(void) @@ -1820,11 +1828,11 @@ u32 GetCurrentFacilityWinStreak(void) } } -void sub_81A3ACC(void) +void ResetFrontierTrainerIds(void) { s32 i; - for (i = 0; i < 20; i++) + for (i = 0; i < (int)ARRAY_COUNT(gSaveBlock2Ptr->frontier.trainerIds); i++) gSaveBlock2Ptr->frontier.trainerIds[i] = 0xFFFF; } @@ -1842,7 +1850,7 @@ u8 GetPlayerSymbolCountForFacility(u8 facility) + FlagGet(FLAG_SYS_TOWER_GOLD + facility * 2); } -static void sub_81A3B64(void) +static void GiveBattlePoints(void) { s32 challengeNum = 0; s32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; @@ -1877,20 +1885,20 @@ static void sub_81A3B64(void) if (challengeNum != 0) challengeNum--; - if (challengeNum >= ARRAY_COUNT(gUnknown_086118B4)) - challengeNum = ARRAY_COUNT(gUnknown_086118B4) - 1; + if (challengeNum >= ARRAY_COUNT(sBattlePointAwards)) + challengeNum = ARRAY_COUNT(sBattlePointAwards) - 1; - points = gUnknown_086118B4[challengeNum][facility][battleMode]; + points = sBattlePointAwards[challengeNum][facility][battleMode]; if (gTrainerBattleOpponent_A == TRAINER_FRONTIER_BRAIN) points += 10; gSaveBlock2Ptr->frontier.battlePoints += points; ConvertIntToDecimalStringN(gStringVar1, points, STR_CONV_MODE_LEFT_ALIGN, 2); - if (gSaveBlock2Ptr->frontier.battlePoints > 9999) - gSaveBlock2Ptr->frontier.battlePoints = 9999; + if (gSaveBlock2Ptr->frontier.battlePoints > MAX_BATTLE_FRONTIER_POINTS) + gSaveBlock2Ptr->frontier.battlePoints = MAX_BATTLE_FRONTIER_POINTS; - points = gSaveBlock2Ptr->frontier.field_EBA; - points += gUnknown_086118B4[challengeNum][facility][battleMode]; - IncrementDailyBattlePoints(gUnknown_086118B4[challengeNum][facility][battleMode]); + points = gSaveBlock2Ptr->frontier.cardBattlePoints; + points += sBattlePointAwards[challengeNum][facility][battleMode]; + IncrementDailyBattlePoints(sBattlePointAwards[challengeNum][facility][battleMode]); if (gTrainerBattleOpponent_A == TRAINER_FRONTIER_BRAIN) { points += 10; @@ -1898,7 +1906,7 @@ static void sub_81A3B64(void) } if (points > 0xFFFF) points = 0xFFFF; - gSaveBlock2Ptr->frontier.field_EBA = points; + gSaveBlock2Ptr->frontier.cardBattlePoints = points; } static void GetFacilitySymbolCount(void) @@ -1924,12 +1932,12 @@ static void CheckBattleTypeFlag(void) gSpecialVar_Result = FALSE; } -static u8 sub_81A3DD0(u16 species, u8 arg1, s32 arg2) +static u8 AppendCaughtBannedMonSpeciesName(u16 species, u8 count, s32 numBannedMonsCaught) { if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_CAUGHT)) { - arg1++; - switch (arg1) + count++; + switch (count) { case 1: case 3: @@ -1937,30 +1945,30 @@ static u8 sub_81A3DD0(u16 species, u8 arg1, s32 arg2) case 7: case 9: case 11: - if (arg2 == arg1) + if (numBannedMonsCaught == count) StringAppend(gStringVar1, gText_SpaceAndSpace); - else if (arg2 > arg1) + else if (numBannedMonsCaught > count) StringAppend(gStringVar1, gText_CommaSpace); break; case 2: - if (arg1 == arg2) + if (count == numBannedMonsCaught) StringAppend(gStringVar1, gText_SpaceAndSpace); else StringAppend(gStringVar1, gText_CommaSpace); StringAppend(gStringVar1, gText_NewLine); break; default: - if (arg1 == arg2) + if (count == numBannedMonsCaught) StringAppend(gStringVar1, gText_SpaceAndSpace); else StringAppend(gStringVar1, gText_CommaSpace); - StringAppend(gStringVar1, gText_ScrollTextUp); + StringAppend(gStringVar1, gText_LineBreak); break; } StringAppend(gStringVar1, gSpeciesNames[species]); } - return arg1; + return count; } static void AppendIfValid(u16 species, u16 heldItem, u16 hp, u8 lvlMode, u8 monLevel, u16 *speciesArray, u16 *itemsArray, u8 *count) @@ -1996,30 +2004,36 @@ static void AppendIfValid(u16 species, u16 heldItem, u16 hp, u8 lvlMode, u8 monL (*count)++; } -static void sub_81A3FD4(void) +// gSpecialVar_Result is the level mode before and after calls to this function +// gSpecialVar_0x8004 is used to store the return value instead (TRUE if there are insufficient eligible mons) +// The names of ineligible pokemon that have been caught are also buffered to print +static void CheckPartyIneligibility(void) { - u16 speciesArray[6]; - u16 itemArray[6]; + u16 speciesArray[PARTY_SIZE]; + u16 itemArray[PARTY_SIZE]; s32 monId = 0; s32 toChoose = 0; u8 count = 0; s32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); s32 monIdLooper; + // count is re-used, define for clarity + #define numEligibleMons count + switch (battleMode) { case FRONTIER_MODE_SINGLES: - toChoose = 3; + toChoose = FRONTIER_PARTY_SIZE; break; case FRONTIER_MODE_MULTIS: case FRONTIER_MODE_LINK_MULTIS: - toChoose = 2; + toChoose = FRONTIER_MULTI_PARTY_SIZE; break; case FRONTIER_MODE_DOUBLES: if (VarGet(VAR_FRONTIER_FACILITY) == FRONTIER_FACILITY_TOWER) - toChoose = 4; + toChoose = FRONTIER_DOUBLES_PARTY_SIZE; else - toChoose = 3; + toChoose = FRONTIER_PARTY_SIZE; break; } @@ -2027,7 +2041,7 @@ static void sub_81A3FD4(void) do { monId = monIdLooper; - count = 0; + numEligibleMons = 0; do { u16 species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES2); @@ -2036,12 +2050,12 @@ static void sub_81A3FD4(void) u16 hp = GetMonData(&gPlayerParty[monId], MON_DATA_HP); if (VarGet(VAR_FRONTIER_FACILITY) == FRONTIER_FACILITY_PYRAMID) { - if (heldItem == 0) - AppendIfValid(species, heldItem, hp, gSpecialVar_Result, level, speciesArray, itemArray, &count); + if (heldItem == ITEM_NONE) + AppendIfValid(species, heldItem, hp, gSpecialVar_Result, level, speciesArray, itemArray, &numEligibleMons); } else { - AppendIfValid(species, heldItem, hp, gSpecialVar_Result, level, speciesArray, itemArray, &count); + AppendIfValid(species, heldItem, hp, gSpecialVar_Result, level, speciesArray, itemArray, &numEligibleMons); } monId++; if (monId >= PARTY_SIZE) @@ -2049,9 +2063,9 @@ static void sub_81A3FD4(void) } while (monId != monIdLooper); monIdLooper++; - } while (monIdLooper < PARTY_SIZE && count < toChoose); + } while (monIdLooper < PARTY_SIZE && numEligibleMons < toChoose); - if (count < toChoose) + if (numEligibleMons < toChoose) { s32 i; s32 caughtBannedMons = 0; @@ -2062,10 +2076,10 @@ static void sub_81A3FD4(void) caughtBannedMons++; } gStringVar1[0] = EOS; - gSpecialVar_0x8004 = 1; + gSpecialVar_0x8004 = TRUE; count = 0; for (i = 0; gFrontierBannedSpecies[i] != 0xFFFF; i++) - count = sub_81A3DD0(gFrontierBannedSpecies[i], count, caughtBannedMons); + count = AppendCaughtBannedMonSpeciesName(gFrontierBannedSpecies[i], count, caughtBannedMons); if (count == 0) { @@ -2075,7 +2089,7 @@ static void sub_81A3FD4(void) else { if (count & 1) - StringAppend(gStringVar1, gText_ScrollTextUp); + StringAppend(gStringVar1, gText_LineBreak); else StringAppend(gStringVar1, gText_Space2); StringAppend(gStringVar1, gText_Are2); @@ -2083,9 +2097,10 @@ static void sub_81A3FD4(void) } else { - gSpecialVar_0x8004 = 0; + gSpecialVar_0x8004 = FALSE; gSaveBlock2Ptr->frontier.lvlMode = gSpecialVar_Result; } + #undef numEligibleMons } static void ValidateVisitingTrainer(void) @@ -2093,7 +2108,7 @@ static void ValidateVisitingTrainer(void) ValidateEReaderTrainer(); } -static void sub_81A4230(void) +static void IncrementWinStreak(void) { s32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; s32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); @@ -2102,50 +2117,50 @@ static void sub_81A4230(void) switch (facility) { case FRONTIER_FACILITY_TOWER: - if (gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] < 9999) + if (gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] < MAX_STREAK) { gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode]++; if (battleMode == FRONTIER_MODE_SINGLES) { SetGameStat(GAME_STAT_BATTLE_TOWER_BEST_STREAK, gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode]); - gSaveBlock2Ptr->frontier.field_D02 = gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode]; + gSaveBlock2Ptr->frontier.towerSinglesStreak = gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode]; } } break; case FRONTIER_FACILITY_DOME: - if (gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode] < 9999) + if (gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode] < MAX_STREAK) gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode]++; - if (gSaveBlock2Ptr->frontier.domeTotalChampionships[battleMode][lvlMode] < 9999) + if (gSaveBlock2Ptr->frontier.domeTotalChampionships[battleMode][lvlMode] < MAX_STREAK) gSaveBlock2Ptr->frontier.domeTotalChampionships[battleMode][lvlMode]++; break; case FRONTIER_FACILITY_PALACE: - if (gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode] < 9999) + if (gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode] < MAX_STREAK) gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode]++; break; case FRONTIER_FACILITY_ARENA: - if (gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode] < 9999) + if (gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode] < MAX_STREAK) gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode]++; break; case FRONTIER_FACILITY_FACTORY: - if (gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode] < 9999) + if (gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode] < MAX_STREAK) gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode]++; break; case FRONTIER_FACILITY_PIKE: - if (gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode] < 9999) + if (gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode] < MAX_STREAK) gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode]++; break; case FRONTIER_FACILITY_PYRAMID: - if (gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode] < 9999) + if (gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode] < MAX_STREAK) gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode]++; break; } } -static void sub_81A43A8(void) +static void RestoreHeldItems(void) { u8 i; - for (i = 0; i < 4; i++) + for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++) { if (gSaveBlock2Ptr->frontier.selectedPartyMons[i] != 0) { @@ -2155,7 +2170,7 @@ static void sub_81A43A8(void) } } -static void sub_81A4410(void) +static void SaveRecordBattle(void) { gSpecialVar_Result = MoveRecordedBattleToSaveData(); gSaveBlock2Ptr->frontier.field_CA9_b = 1; @@ -2174,11 +2189,11 @@ static void BufferFrontierTrainerName(void) } } -static void sub_81A447C(void) +static void ResetSketchedMoves(void) { u8 i, j, k; - for (i = 0; i < 4; i++) + for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++) { u16 monId = gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1; if (monId < PARTY_SIZE) @@ -2217,8 +2232,8 @@ static void Print1PRecord(s32 position, s32 x, s32 y, struct RankingHall1P *hall TVShowConvertInternationalString(text, hallRecord->name, hallRecord->language); AddTextPrinterParameterized(gRecordsWindowId, 1, text, (x + 2) * 8, (8 * (y + 5 * position)) + 1, TEXT_SPEED_FF, NULL); winStreak = hallRecord->winStreak; - if (winStreak > 9999) - winStreak = 9999; + if (winStreak > MAX_STREAK) + winStreak = MAX_STREAK; ConvertIntToDecimalStringN(gStringVar2, winStreak, STR_CONV_MODE_RIGHT_ALIGN, 4); StringExpandPlaceholders(gStringVar4, sHallFacilityToRecordsText[hallFacilityId]); AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, GetStringRightAlignXOffset(1, sHallFacilityToRecordsText[hallFacilityId], 0xC8), (8 * (y + 5 * position)) + 1, TEXT_SPEED_FF, NULL); @@ -2244,8 +2259,8 @@ static void Print2PRecord(s32 position, s32 x, s32 y, struct RankingHall2P *hall AddTextPrinterParameterized(gRecordsWindowId, 1, text, (x + 4) * 8, (8 * (y + 5 * position + 1)) + 1, TEXT_SPEED_FF, NULL); winStreak = hallRecord->winStreak; - if (winStreak > 9999) - winStreak = 9999; + if (winStreak > MAX_STREAK) + winStreak = MAX_STREAK; ConvertIntToDecimalStringN(gStringVar2, winStreak, STR_CONV_MODE_RIGHT_ALIGN, 4); StringExpandPlaceholders(gStringVar4, sHallFacilityToRecordsText[RANKING_HALL_BATTLE_TOWER_LINK]); AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, GetStringRightAlignXOffset(1, sHallFacilityToRecordsText[RANKING_HALL_BATTLE_TOWER_LINK], 0xC8), (8 * (y + 5 * position)) + 1, TEXT_SPEED_FF, NULL); @@ -2334,8 +2349,8 @@ static void PrintHallRecords(s32 hallFacilityId, s32 lvlMode) AddTextPrinterParameterized(gRecordsWindowId, 1, sLevelModeText[lvlMode], x, 1, TEXT_SPEED_FF, NULL); if (hallFacilityId == RANKING_HALL_BATTLE_TOWER_LINK) { - gSaveBlock2Ptr->frontier.opponentName[0][PLAYER_NAME_LENGTH] = EOS; - gSaveBlock2Ptr->frontier.opponentName[1][PLAYER_NAME_LENGTH] = EOS; + gSaveBlock2Ptr->frontier.opponentNames[0][PLAYER_NAME_LENGTH] = EOS; + gSaveBlock2Ptr->frontier.opponentNames[1][PLAYER_NAME_LENGTH] = EOS; Fill2PRecords(records2P, lvlMode); for (i = 0; i < 3; i++) Print2PRecord(i, 1, 4, &records2P[i]); @@ -2350,7 +2365,7 @@ static void PrintHallRecords(s32 hallFacilityId, s32 lvlMode) void ShowRankingHallRecordsWindow(void) { - gRecordsWindowId = AddWindow(&gUnknown_08611C84); + gRecordsWindowId = AddWindow(&sRankingHallRecordsWindowTemplate); DrawStdWindowFrame(gRecordsWindowId, FALSE); FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1)); PrintHallRecords(gSpecialVar_0x8005, FRONTIER_LVL_50); @@ -2395,7 +2410,7 @@ void ClearRankingHallRecords(void) } } -void sub_81A4C30(void) +void SaveGameFrontier(void) { s32 i; struct Pokemon *monsParty = calloc(PARTY_SIZE, sizeof(struct Pokemon)); @@ -2426,7 +2441,7 @@ u8 GetFrontierBrainTrainerPicIndex(void) else facility = VarGet(VAR_FRONTIER_FACILITY); - return gTrainers[gFacilityToBrainTrainerId[facility]].trainerPic; + return gTrainers[sFrontierBrainTrainerIds[facility]].trainerPic; } u8 GetFrontierBrainTrainerClass(void) @@ -2438,7 +2453,7 @@ u8 GetFrontierBrainTrainerClass(void) else facility = VarGet(VAR_FRONTIER_FACILITY); - return gTrainers[gFacilityToBrainTrainerId[facility]].trainerClass; + return gTrainers[sFrontierBrainTrainerIds[facility]].trainerClass; } void CopyFrontierBrainTrainerName(u8 *dst) @@ -2452,7 +2467,7 @@ void CopyFrontierBrainTrainerName(u8 *dst) facility = VarGet(VAR_FRONTIER_FACILITY); for (i = 0; i < PLAYER_NAME_LENGTH; i++) - dst[i] = gTrainers[gFacilityToBrainTrainerId[facility]].trainerName[i]; + dst[i] = gTrainers[sFrontierBrainTrainerIds[facility]].trainerName[i]; dst[i] = EOS; } @@ -2460,13 +2475,13 @@ void CopyFrontierBrainTrainerName(u8 *dst) bool8 IsFrontierBrainFemale(void) { s32 facility = VarGet(VAR_FRONTIER_FACILITY); - return sFacilityToBrainObjEventGfx[facility][1]; + return sFrontierBrainObjEventGfx[facility][1]; } void SetFrontierBrainObjEventGfx_2(void) { s32 facility = VarGet(VAR_FRONTIER_FACILITY); - VarSet(VAR_OBJ_GFX_ID_0, sFacilityToBrainObjEventGfx[facility][0]); + VarSet(VAR_OBJ_GFX_ID_0, sFrontierBrainObjEventGfx[facility][0]); } #define FRONTIER_BRAIN_OTID 61226 @@ -2769,7 +2784,7 @@ u16 GetFrontierBrainMonSpecies(u8 monId) void SetFrontierBrainObjEventGfx(u8 facility) { gTrainerBattleOpponent_A = TRAINER_FRONTIER_BRAIN; - VarSet(VAR_OBJ_GFX_ID_0, sFacilityToBrainObjEventGfx[facility][0]); + VarSet(VAR_OBJ_GFX_ID_0, sFrontierBrainObjEventGfx[facility][0]); } u16 GetFrontierBrainMonMove(u8 monId, u8 moveSlotId) @@ -2804,17 +2819,18 @@ s32 GetFronterBrainSymbol(void) if (symbol == 2) { u16 winStreak = GetCurrentFacilityWinStreak(); - if (winStreak + gUnknown_08611550[facility][3] == gUnknown_08611550[facility][0]) + if (winStreak + sFrontierBrainStreakAppearances[facility][3] == sFrontierBrainStreakAppearances[facility][0]) symbol = 0; - else if (winStreak + gUnknown_08611550[facility][3] == gUnknown_08611550[facility][1]) + else if (winStreak + sFrontierBrainStreakAppearances[facility][3] == sFrontierBrainStreakAppearances[facility][1]) symbol = 1; - else if (winStreak + gUnknown_08611550[facility][3] > gUnknown_08611550[facility][1] - && (winStreak + gUnknown_08611550[facility][3] - gUnknown_08611550[facility][1]) % gUnknown_08611550[facility][2] == 0) + else if (winStreak + sFrontierBrainStreakAppearances[facility][3] > sFrontierBrainStreakAppearances[facility][1] + && (winStreak + sFrontierBrainStreakAppearances[facility][3] - sFrontierBrainStreakAppearances[facility][1]) % sFrontierBrainStreakAppearances[facility][2] == 0) symbol = 1; } return symbol; } +// Called for intro speech as well despite the fact that its handled in the map scripts files instead static void CopyFrontierBrainText(bool8 playerWonText) { s32 facility; @@ -2834,10 +2850,10 @@ static void CopyFrontierBrainText(bool8 playerWonText) switch (playerWonText) { case FALSE: - StringCopy(gStringVar4, gUnknown_08611DB0[symbol][facility]); + StringCopy(gStringVar4, sFrontierBrainPlayerLostTexts[symbol][facility]); break; case TRUE: - StringCopy(gStringVar4, gUnknown_08611DB8[symbol][facility]); + StringCopy(gStringVar4, sFrontierBrainPlayerWonTexts[symbol][facility]); break; } } diff --git a/src/graphics.c b/src/graphics.c index 17d9a03cb..82765e913 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -777,8 +777,8 @@ const u32 gBattleAnimSpriteGfx_Roots[] = INCBIN_U32("graphics/battle_anims/sprit const u32 gBattleAnimSpritePal_ItemBag[] = INCBIN_U32("graphics/battle_anims/sprites/item_bag.gbapal.lz"); const u32 gBattleAnimSpriteGfx_ItemBag[] = INCBIN_U32("graphics/battle_anims/sprites/item_bag.4bpp.lz"); -const u32 gBattleAnimSpritePal_TriForceTriangle[] = INCBIN_U32("graphics/battle_anims/sprites/tri_force_triangle.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_TriForceTriangle[] = INCBIN_U32("graphics/battle_anims/sprites/tri_force_triangle.4bpp.lz"); +const u32 gBattleAnimSpritePal_TriAttackTriangle[] = INCBIN_U32("graphics/battle_anims/sprites/tri_attack_triangle.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_TriAttackTriangle[] = INCBIN_U32("graphics/battle_anims/sprites/tri_attack_triangle.4bpp.lz"); const u32 gBattleAnimSpritePal_LetterZ[] = INCBIN_U32("graphics/battle_anims/sprites/letter_z.gbapal.lz"); const u32 gBattleAnimSpriteGfx_LetterZ[] = INCBIN_U32("graphics/battle_anims/sprites/letter_z.4bpp.lz"); diff --git a/src/item_menu.c b/src/item_menu.c index 9d8010f85..6c9480d0b 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -119,7 +119,7 @@ void sub_81AD9C0(u8); void sub_81ADB14(u8); void sub_81ADA7C(u8); void sub_81ADC0C(u8); -void bag_menu_leave_maybe(void); +void CB2_ApprenticeExitBagMenu(void); void CB2_FavorLadyExitBagMenu(void); void CB2_QuizLadyExitBagMenu(void); void sub_81ABA6C(void); @@ -492,23 +492,23 @@ void sub_81AAC14(void) GoToBagMenu(RETURN_LOCATION_PC, POCKETS_COUNT, sub_816B31C); } -void sub_81AAC28(void) +void ApprenticeOpenBagMenu(void) { - GoToBagMenu(RETURN_LOCATION_FIELD_6, POCKETS_COUNT, bag_menu_leave_maybe); - gSpecialVar_0x8005 = 0; - gSpecialVar_Result = 0; + GoToBagMenu(RETURN_LOCATION_FIELD_6, POCKETS_COUNT, CB2_ApprenticeExitBagMenu); + gSpecialVar_0x8005 = ITEM_NONE; + gSpecialVar_Result = FALSE; } void FavorLadyOpenBagMenu(void) { GoToBagMenu(RETURN_LOCATION_FIELD_4, POCKETS_COUNT, CB2_FavorLadyExitBagMenu); - gSpecialVar_Result = 0; + gSpecialVar_Result = FALSE; } void QuizLadyOpenBagMenu(void) { GoToBagMenu(RETURN_LOCATION_FIELD_5, POCKETS_COUNT, CB2_QuizLadyExitBagMenu); - gSpecialVar_Result = 0; + gSpecialVar_Result = FALSE; } void GoToBagMenu(u8 bagMenuType, u8 pocketId, void ( *postExitMenuMainCallback2)()) @@ -2203,7 +2203,7 @@ void unknown_ItemMenu_Show(u8 taskId) unknown_ItemMenu_Confirm(taskId); } -void bag_menu_leave_maybe(void) +void CB2_ApprenticeExitBagMenu(void) { gFieldCallback = Apprentice_EnableBothScriptContexts; SetMainCallback2(CB2_ReturnToField); diff --git a/src/link.c b/src/link.c index b010558a5..dcc35d7d0 100644 --- a/src/link.c +++ b/src/link.c @@ -453,7 +453,7 @@ static void LinkTestProcessKeyInput(void) } if (gMain.newKeys & R_BUTTON) { - TrySavingData(1); + TrySavingData(SAVE_LINK); } if (gMain.newKeys & SELECT_BUTTON) { diff --git a/src/menu.c b/src/menu.c index 056fc6a9d..72844140f 100644 --- a/src/menu.c +++ b/src/menu.c @@ -62,7 +62,13 @@ static EWRAM_DATA u16 gUnknown_0203CDA8 = 0; static EWRAM_DATA void *gUnknown_0203CDAC[0x20] = {NULL}; const u16 gUnknown_0860F074[] = INCBIN_U16("graphics/interface/860F074.gbapal"); -static const u8 gUnknown_0860F094[] = { 8, 4, 1 }; + +static const u8 sTextSpeedFrameDelays[] = +{ + [OPTIONS_TEXT_SPEED_SLOW] = 8, + [OPTIONS_TEXT_SPEED_MID] = 4, + [OPTIONS_TEXT_SPEED_FAST] = 1 +}; static const struct WindowTemplate sStandardTextBox_WindowTemplates[] = { @@ -480,7 +486,7 @@ u8 GetPlayerTextSpeedDelay(void) if (gSaveBlock2Ptr->optionsTextSpeed > OPTIONS_TEXT_SPEED_FAST) gSaveBlock2Ptr->optionsTextSpeed = OPTIONS_TEXT_SPEED_MID; speed = GetPlayerTextSpeed(); - return gUnknown_0860F094[speed]; + return sTextSpeedFrameDelays[speed]; } u8 sub_81979C4(u8 a1) diff --git a/src/mystery_gift.c b/src/mystery_gift.c index aae7d127e..9da5f060a 100644 --- a/src/mystery_gift.c +++ b/src/mystery_gift.c @@ -921,7 +921,7 @@ static bool32 mevent_save_game(u8 * state) (*state)++; break; case 1: - TrySavingData(0); + TrySavingData(SAVE_NORMAL); (*state)++; break; case 2: diff --git a/src/new_game.c b/src/new_game.c index 1021ea96c..b24114f77 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -122,8 +122,8 @@ static void ClearFrontierRecord(void) { CpuFill32(0, &gSaveBlock2Ptr->frontier, sizeof(gSaveBlock2Ptr->frontier)); - gSaveBlock2Ptr->frontier.opponentName[0][0] = EOS; - gSaveBlock2Ptr->frontier.opponentName[1][0] = EOS; + gSaveBlock2Ptr->frontier.opponentNames[0][0] = EOS; + gSaveBlock2Ptr->frontier.opponentNames[1][0] = EOS; } static void WarpToTruck(void) diff --git a/src/overworld.c b/src/overworld.c index fb1f1f977..c625b3b45 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -1715,7 +1715,7 @@ void CB2_ContinueSavedGame(void) StopMapMusic(); ResetSafariZoneFlag_(); if (gSaveFileStatus == 0xFF) - sub_81A3908(); + ResetWinStreaks(); LoadSaveblockMapHeader(); ClearDiveAndHoleWarps(); diff --git a/src/pokemon.c b/src/pokemon.c index a30e20ea2..2b9483c53 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -1887,7 +1887,7 @@ const u16 gLinkPlayerFacilityClasses[] = FACILITY_CLASS_PKMN_BREEDER_M, FACILITY_CLASS_GUITARIST, FACILITY_CLASS_COOLTRAINER_F, FACILITY_CLASS_HEX_MANIAC, FACILITY_CLASS_PICNICKER, FACILITY_CLASS_LASS, FACILITY_CLASS_PSYCHIC_F, FACILITY_CLASS_BATTLE_GIRL, - FACILITY_CLASS_POKEMON_BREEDER_F, FACILITY_CLASS_BEAUTY + FACILITY_CLASS_PKMN_BREEDER_F, FACILITY_CLASS_BEAUTY }; static const u8 sHoldEffectToType[][2] = @@ -2943,12 +2943,12 @@ void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon) u16 moveLevel; u16 move; - moveLevel = (gLevelUpLearnsets[species][i] & 0xFE00); + moveLevel = (gLevelUpLearnsets[species][i] & LEVEL_UP_MOVE_LV); if (moveLevel > (level << 9)) break; - move = (gLevelUpLearnsets[species][i] & 0x1FF); + move = (gLevelUpLearnsets[species][i] & LEVEL_UP_MOVE_ID); if (GiveMoveToBoxMon(boxMon, move) == MON_HAS_MAX_MOVES) DeleteFirstMoveAndGiveMoveToBoxMon(boxMon, move); @@ -2969,7 +2969,7 @@ u16 MonTryLearningNewMove(struct Pokemon *mon, bool8 firstMove) { sLearningMoveTableID = 0; - while ((gLevelUpLearnsets[species][sLearningMoveTableID] & 0xFE00) != (level << 9)) + while ((gLevelUpLearnsets[species][sLearningMoveTableID] & LEVEL_UP_MOVE_LV) != (level << 9)) { sLearningMoveTableID++; if (gLevelUpLearnsets[species][sLearningMoveTableID] == LEVEL_UP_END) @@ -2977,9 +2977,9 @@ u16 MonTryLearningNewMove(struct Pokemon *mon, bool8 firstMove) } } - if ((gLevelUpLearnsets[species][sLearningMoveTableID] & 0xFE00) == (level << 9)) + if ((gLevelUpLearnsets[species][sLearningMoveTableID] & LEVEL_UP_MOVE_LV) == (level << 9)) { - gMoveToLearn = (gLevelUpLearnsets[species][sLearningMoveTableID] & 0x1FF); + gMoveToLearn = (gLevelUpLearnsets[species][sLearningMoveTableID] & LEVEL_UP_MOVE_ID); sLearningMoveTableID++; retVal = GiveMoveToMon(mon, gMoveToLearn); } @@ -3271,7 +3271,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de } // any weather except sun weakens solar beam - if ((gBattleWeather & (WEATHER_RAIN_ANY | WEATHER_SANDSTORM_ANY | WEATHER_HAIL)) && gCurrentMove == MOVE_SOLAR_BEAM) + if ((gBattleWeather & (WEATHER_RAIN_ANY | WEATHER_SANDSTORM_ANY | WEATHER_HAIL_ANY)) && gCurrentMove == MOVE_SOLAR_BEAM) damage /= 2; // sunny @@ -6112,23 +6112,23 @@ u8 GetMoveRelearnerMoves(struct Pokemon *mon, u16 *moves) { u16 moveLevel; - if (gLevelUpLearnsets[species][i] == 0xFFFF) + if (gLevelUpLearnsets[species][i] == LEVEL_UP_END) break; - moveLevel = gLevelUpLearnsets[species][i] & 0xFE00; + moveLevel = gLevelUpLearnsets[species][i] & LEVEL_UP_MOVE_LV; if (moveLevel <= (level << 9)) { - for (j = 0; j < MAX_MON_MOVES && learnedMoves[j] != (gLevelUpLearnsets[species][i] & 0x1FF); j++) + for (j = 0; j < MAX_MON_MOVES && learnedMoves[j] != (gLevelUpLearnsets[species][i] & LEVEL_UP_MOVE_ID); j++) ; if (j == MAX_MON_MOVES) { - for (k = 0; k < numMoves && moves[k] != (gLevelUpLearnsets[species][i] & 0x1FF); k++) + for (k = 0; k < numMoves && moves[k] != (gLevelUpLearnsets[species][i] & LEVEL_UP_MOVE_ID); k++) ; if (k == numMoves) - moves[numMoves++] = gLevelUpLearnsets[species][i] & 0x1FF; + moves[numMoves++] = gLevelUpLearnsets[species][i] & LEVEL_UP_MOVE_ID; } } } @@ -6141,8 +6141,8 @@ u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves) u8 numMoves = 0; int i; - for (i = 0; i < 20 && gLevelUpLearnsets[species][i] != 0xFFFF; i++) - moves[numMoves++] = gLevelUpLearnsets[species][i] & 0x1FF; + for (i = 0; i < 20 && gLevelUpLearnsets[species][i] != LEVEL_UP_END; i++) + moves[numMoves++] = gLevelUpLearnsets[species][i] & LEVEL_UP_MOVE_ID; return numMoves; } @@ -6166,23 +6166,23 @@ u8 GetNumberOfRelearnableMoves(struct Pokemon *mon) { u16 moveLevel; - if (gLevelUpLearnsets[species][i] == 0xFFFF) + if (gLevelUpLearnsets[species][i] == LEVEL_UP_END) break; - moveLevel = gLevelUpLearnsets[species][i] & 0xFE00; + moveLevel = gLevelUpLearnsets[species][i] & LEVEL_UP_MOVE_LV; if (moveLevel <= (level << 9)) { - for (j = 0; j < MAX_MON_MOVES && learnedMoves[j] != (gLevelUpLearnsets[species][i] & 0x1FF); j++) + for (j = 0; j < MAX_MON_MOVES && learnedMoves[j] != (gLevelUpLearnsets[species][i] & LEVEL_UP_MOVE_ID); j++) ; if (j == MAX_MON_MOVES) { - for (k = 0; k < numMoves && moves[k] != (gLevelUpLearnsets[species][i] & 0x1FF); k++) + for (k = 0; k < numMoves && moves[k] != (gLevelUpLearnsets[species][i] & LEVEL_UP_MOVE_ID); k++) ; if (k == numMoves) - moves[numMoves++] = gLevelUpLearnsets[species][i] & 0x1FF; + moves[numMoves++] = gLevelUpLearnsets[species][i] & LEVEL_UP_MOVE_ID; } } } diff --git a/src/record_mixing.c b/src/record_mixing.c index 8a1e8b1ee..00b2cb076 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -69,7 +69,7 @@ struct PlayerRecordsEmerald /* 0x1124 */ struct EmeraldBattleTowerRecord battleTowerRecord; /* 0x1210 */ u16 giftItem; /* 0x1214 */ LilycoveLady lilycoveLady; - /* 0x1254 */ struct Apprentice apprentice[2]; + /* 0x1254 */ struct Apprentice apprentices[2]; /* 0x12dc */ struct PlayerHallRecords hallRecords; /* 0x1434 */ u8 field_1434[0x10]; }; // 0x1444 @@ -120,8 +120,8 @@ static void sub_80E7B2C(const u8 *); static void ReceiveDaycareMailData(struct RecordMixingDayCareMail *, size_t, u8, TVShow *); static void ReceiveGiftItem(u16 *item, u8 which); static void Task_DoRecordMixing(u8 taskId); -static void sub_80E8110(struct Apprentice *arg0, struct Apprentice *arg1); -static void ReceiveApprenticeData(struct Apprentice *arg0, size_t arg1, u32 arg2); +static void GetSavedApprentices(struct Apprentice *dst, struct Apprentice *src); +static void ReceiveApprenticeData(struct Apprentice *mixApprentice, size_t recordSize, u32 multiplayerId); static void ReceiveRankingHallRecords(struct PlayerHallRecords *hallRecords, size_t arg1, u32 arg2); static void sub_80E89F8(struct RecordMixingDayCareMail *dst); static void SanitizeDayCareMailForRuby(struct RecordMixingDayCareMail *src); @@ -252,7 +252,7 @@ static void PrepareExchangePacket(void) if (GetMultiplayerId() == 0) sSentRecord->emerald.giftItem = GetRecordMixingGift(); - sub_80E8110(sSentRecord->emerald.apprentice, sApprenticesSave); + GetSavedApprentices(sSentRecord->emerald.apprentices, sApprenticesSave); GetPlayerHallRecords(&sSentRecord->emerald.hallRecords); } } @@ -285,7 +285,7 @@ static void ReceiveExchangePacket(u32 which) ReceiveBattleTowerData(&sReceivedRecords->emerald.battleTowerRecord, sizeof(struct PlayerRecordsEmerald), which); ReceiveGiftItem(&sReceivedRecords->emerald.giftItem, which); ReceiveLilycoveLadyData(&sReceivedRecords->emerald.lilycoveLady, sizeof(struct PlayerRecordsEmerald), which); - ReceiveApprenticeData(sReceivedRecords->emerald.apprentice, sizeof(struct PlayerRecordsEmerald), (u8) which); + ReceiveApprenticeData(sReceivedRecords->emerald.apprentices, sizeof(struct PlayerRecordsEmerald), (u8) which); ReceiveRankingHallRecords(&sReceivedRecords->emerald.hallRecords, sizeof(struct PlayerRecordsEmerald), (u8) which); } } @@ -651,7 +651,7 @@ static void ReceiveBattleTowerData(void *battleTowerRecord, size_t recordSize, u { struct EmeraldBattleTowerRecord *dest; struct BattleTowerPokemon *btPokemon; - u32 mixIndices[4]; + u32 mixIndices[MAX_LINK_PLAYERS]; s32 i; ShufflePlayerIndices(mixIndices); @@ -682,7 +682,7 @@ static void ReceiveBattleTowerData(void *battleTowerRecord, size_t recordSize, u static void ReceiveLilycoveLadyData(LilycoveLady *lilycoveLady, size_t recordSize, u8 which) { LilycoveLady *dest; - u32 mixIndices[4]; + u32 mixIndices[MAX_LINK_PLAYERS]; ShufflePlayerIndices(mixIndices); memcpy((void *)lilycoveLady + recordSize * which, sLilycoveLadySave, sizeof(LilycoveLady)); @@ -1018,57 +1018,59 @@ static void Task_DoRecordMixing(u8 taskId) // New Emerald functions -static void sub_80E8110(struct Apprentice *dst, struct Apprentice *src) +static void GetSavedApprentices(struct Apprentice *dst, struct Apprentice *src) { s32 i, id; - s32 var_2C, var_28, var_24, r8; + s32 apprenticeSaveId, oldPlayerApprenticeSaveId; + s32 numOldPlayerApprentices, numMixApprentices; dst[0].playerName[0] = EOS; dst[1].playerName[0] = EOS; dst[0] = src[0]; - var_28 = 0; - var_24 = 0; - var_2C = 0; - r8 = 0; + oldPlayerApprenticeSaveId = 0; + numOldPlayerApprentices = 0; + apprenticeSaveId = 0; + numMixApprentices = 0; for (i = 0; i < 2; i++) { - id = ((i + gSaveBlock2Ptr->playerApprentice.field_B2_1) % 3) + 1; + id = ((i + gSaveBlock2Ptr->playerApprentice.saveId) % (APPRENTICE_COUNT - 1)) + 1; if (src[id].playerName[0] != EOS) { if (GetTrainerId(src[id].playerId) != GetTrainerId(gSaveBlock2Ptr->playerTrainerId)) { - r8++; - var_2C = id; + numMixApprentices++; + apprenticeSaveId = id; } if (GetTrainerId(src[id].playerId) == GetTrainerId(gSaveBlock2Ptr->playerTrainerId)) { - var_24++; - var_28 = id; + numOldPlayerApprentices++; + oldPlayerApprenticeSaveId = id; } } } - if (r8 == 0 && var_24 != 0) + // Prefer passing on other mixed Apprentices rather than old player's Apprentices + if (numMixApprentices == 0 && numOldPlayerApprentices != 0) { - r8 = var_24; - var_2C = var_28; + numMixApprentices = numOldPlayerApprentices; + apprenticeSaveId = oldPlayerApprenticeSaveId; } - switch (r8) + switch (numMixApprentices) { case 1: - dst[1] = src[var_2C]; + dst[1] = src[apprenticeSaveId]; break; case 2: if (Random2() > 0x3333) { - dst[1] = src[gSaveBlock2Ptr->playerApprentice.field_B2_1 + 1]; + dst[1] = src[gSaveBlock2Ptr->playerApprentice.saveId + 1]; } else { - dst[1] = src[((gSaveBlock2Ptr->playerApprentice.field_B2_1 + 1) % 3 + 1)]; + dst[1] = src[((gSaveBlock2Ptr->playerApprentice.saveId + 1) % (APPRENTICE_COUNT - 1) + 1)]; } break; } @@ -1092,9 +1094,9 @@ void GetPlayerHallRecords(struct PlayerHallRecords *dst) { dst->twoPlayers[j].language = GAME_LANGUAGE; CopyTrainerId(dst->twoPlayers[j].id1, gSaveBlock2Ptr->playerTrainerId); - CopyTrainerId(dst->twoPlayers[j].id2, gSaveBlock2Ptr->frontier.field_EF1[j]); + CopyTrainerId(dst->twoPlayers[j].id2, gSaveBlock2Ptr->frontier.opponentTrainerIds[j]); StringCopy(dst->twoPlayers[j].name1, gSaveBlock2Ptr->playerName); - StringCopy(dst->twoPlayers[j].name2, gSaveBlock2Ptr->frontier.opponentName[j]); + StringCopy(dst->twoPlayers[j].name2, gSaveBlock2Ptr->frontier.opponentNames[j]); } for (i = 0; i < 2; i++) @@ -1113,14 +1115,14 @@ void GetPlayerHallRecords(struct PlayerHallRecords *dst) } } -static bool32 sub_80E841C(struct Apprentice *arg0, struct Apprentice *arg1) +static bool32 IsApprenticeAlreadySaved(struct Apprentice *mixApprentice, struct Apprentice *apprentices) { s32 i; - for (i = 0; i < 4; i++) + for (i = 0; i < APPRENTICE_COUNT; i++) { - if (GetTrainerId(arg0->playerId) == GetTrainerId(arg1[i].playerId) - && arg0->number == arg1[i].number) + if (GetTrainerId(mixApprentice->playerId) == GetTrainerId(apprentices[i].playerId) + && mixApprentice->number == apprentices[i].number) { return TRUE; } @@ -1129,40 +1131,40 @@ static bool32 sub_80E841C(struct Apprentice *arg0, struct Apprentice *arg1) return FALSE; } -static void ReceiveApprenticeData(struct Apprentice *arg0, size_t arg1, u32 arg2) +static void ReceiveApprenticeData(struct Apprentice *mixApprentice, size_t recordSize, u32 multiplayerId) { - s32 i, r7, r8; - struct Apprentice *structPtr; - u32 mixIndices[4]; - u32 structId; + s32 i, numApprentices, apprenticeId; + struct Apprentice *mixApprenticePtr; + u32 mixIndices[MAX_LINK_PLAYERS]; + u32 apprenticeSaveId; ShufflePlayerIndices(mixIndices); - structPtr = (void*)(arg0) + (arg1 * mixIndices[arg2]); - r7 = 0; - r8 = 0; + mixApprenticePtr = (void*)(mixApprentice) + (recordSize * mixIndices[multiplayerId]); + numApprentices = 0; + apprenticeId = 0; for (i = 0; i < 2; i++) { - if (structPtr[i].playerName[0] != EOS && !sub_80E841C(&structPtr[i], &gSaveBlock2Ptr->apprentices[0])) + if (mixApprenticePtr[i].playerName[0] != EOS && !IsApprenticeAlreadySaved(&mixApprenticePtr[i], &gSaveBlock2Ptr->apprentices[0])) { - r7++; - r8 = i; + numApprentices++; + apprenticeId = i; } } - switch (r7) + switch (numApprentices) { case 1: - structId = gSaveBlock2Ptr->playerApprentice.field_B2_1 + 1; - gSaveBlock2Ptr->apprentices[structId] = structPtr[r8]; - gSaveBlock2Ptr->playerApprentice.field_B2_1 = (gSaveBlock2Ptr->playerApprentice.field_B2_1 + 1) % 3; + apprenticeSaveId = gSaveBlock2Ptr->playerApprentice.saveId + 1; + gSaveBlock2Ptr->apprentices[apprenticeSaveId] = mixApprenticePtr[apprenticeId]; + gSaveBlock2Ptr->playerApprentice.saveId = (gSaveBlock2Ptr->playerApprentice.saveId + 1) % (APPRENTICE_COUNT - 1); break; case 2: for (i = 0; i < 2; i++) { - structId = ((i ^ 1) + gSaveBlock2Ptr->playerApprentice.field_B2_1) % 3 + 1; - gSaveBlock2Ptr->apprentices[structId] = structPtr[i]; + apprenticeSaveId = ((i ^ 1) + gSaveBlock2Ptr->playerApprentice.saveId) % (APPRENTICE_COUNT - 1) + 1; + gSaveBlock2Ptr->apprentices[apprenticeSaveId] = mixApprenticePtr[i]; } - gSaveBlock2Ptr->playerApprentice.field_B2_1 = (gSaveBlock2Ptr->playerApprentice.field_B2_1 + 2) % 3; + gSaveBlock2Ptr->playerApprentice.saveId = (gSaveBlock2Ptr->playerApprentice.saveId + 2) % (APPRENTICE_COUNT - 1); break; } } diff --git a/src/recorded_battle.c b/src/recorded_battle.c index bd1974d48..1533fd5ad 100644 --- a/src/recorded_battle.c +++ b/src/recorded_battle.c @@ -334,9 +334,9 @@ bool32 MoveRecordedBattleToSaveData(void) s32 i, j; bool32 ret; struct RecordedBattleSave *battleSave, *savSection; - u8 var; + u8 saveAttempts; - var = 0; + saveAttempts = 0; battleSave = AllocZeroed(sizeof(struct RecordedBattleSave)); savSection = AllocZeroed(0x1000); @@ -409,12 +409,12 @@ bool32 MoveRecordedBattleToSaveData(void) if (sBattleOutcome == B_OUTCOME_WON) { - for (i = 0; i < 6; i++) + for (i = 0; i < EASY_CHAT_BATTLE_WORDS_COUNT; i++) battleSave->easyChatSpeech[i] = gSaveBlock2Ptr->frontier.towerRecords[gTrainerBattleOpponent_A - TRAINER_RECORD_MIXING_FRIEND].speechLost[i]; } else { - for (i = 0; i < 6; i++) + for (i = 0; i < EASY_CHAT_BATTLE_WORDS_COUNT; i++) battleSave->easyChatSpeech[i] = gSaveBlock2Ptr->frontier.towerRecords[gTrainerBattleOpponent_A - TRAINER_RECORD_MIXING_FRIEND].speechWon[i]; } battleSave->recordMixFriendLanguage = gSaveBlock2Ptr->frontier.towerRecords[gTrainerBattleOpponent_A - TRAINER_RECORD_MIXING_FRIEND].language; @@ -427,12 +427,12 @@ bool32 MoveRecordedBattleToSaveData(void) if (sBattleOutcome == B_OUTCOME_WON) { - for (i = 0; i < 6; i++) + for (i = 0; i < EASY_CHAT_BATTLE_WORDS_COUNT; i++) battleSave->easyChatSpeech[i] = gSaveBlock2Ptr->frontier.towerRecords[gTrainerBattleOpponent_B - TRAINER_RECORD_MIXING_FRIEND].speechLost[i]; } else { - for (i = 0; i < 6; i++) + for (i = 0; i < EASY_CHAT_BATTLE_WORDS_COUNT; i++) battleSave->easyChatSpeech[i] = gSaveBlock2Ptr->frontier.towerRecords[gTrainerBattleOpponent_B - TRAINER_RECORD_MIXING_FRIEND].speechWon[i]; } battleSave->recordMixFriendLanguage = gSaveBlock2Ptr->frontier.towerRecords[gTrainerBattleOpponent_B - TRAINER_RECORD_MIXING_FRIEND].language; @@ -449,15 +449,15 @@ bool32 MoveRecordedBattleToSaveData(void) if (gTrainerBattleOpponent_A >= TRAINER_RECORD_MIXING_APPRENTICE) { battleSave->apprenticeId = gSaveBlock2Ptr->apprentices[gTrainerBattleOpponent_A - TRAINER_RECORD_MIXING_APPRENTICE].id; - for (i = 0; i < 6; i++) - battleSave->easyChatSpeech[i] = gSaveBlock2Ptr->apprentices[gTrainerBattleOpponent_A - TRAINER_RECORD_MIXING_APPRENTICE].easyChatWords[i]; + for (i = 0; i < EASY_CHAT_BATTLE_WORDS_COUNT; i++) + battleSave->easyChatSpeech[i] = gSaveBlock2Ptr->apprentices[gTrainerBattleOpponent_A - TRAINER_RECORD_MIXING_APPRENTICE].speechWon[i]; battleSave->apprenticeLanguage = gSaveBlock2Ptr->apprentices[gTrainerBattleOpponent_A - TRAINER_RECORD_MIXING_APPRENTICE].language; } else if (gTrainerBattleOpponent_B >= TRAINER_RECORD_MIXING_APPRENTICE) { battleSave->apprenticeId = gSaveBlock2Ptr->apprentices[gTrainerBattleOpponent_B - TRAINER_RECORD_MIXING_APPRENTICE].id; - for (i = 0; i < 6; i++) - battleSave->easyChatSpeech[i] = gSaveBlock2Ptr->apprentices[gTrainerBattleOpponent_B - TRAINER_RECORD_MIXING_APPRENTICE].easyChatWords[i]; + for (i = 0; i < EASY_CHAT_BATTLE_WORDS_COUNT; i++) + battleSave->easyChatSpeech[i] = gSaveBlock2Ptr->apprentices[gTrainerBattleOpponent_B - TRAINER_RECORD_MIXING_APPRENTICE].speechWon[i]; battleSave->apprenticeLanguage = gSaveBlock2Ptr->apprentices[gTrainerBattleOpponent_B - TRAINER_RECORD_MIXING_APPRENTICE].language; } else if (gPartnerTrainerId >= TRAINER_RECORD_MIXING_APPRENTICE) @@ -480,8 +480,8 @@ bool32 MoveRecordedBattleToSaveData(void) ret = RecordedBattleToSave(battleSave, savSection); if (ret == TRUE) break; - var++; - if (var >= 3) + saveAttempts++; + if (saveAttempts >= 3) break; } diff --git a/src/reset_rtc_screen.c b/src/reset_rtc_screen.c index eebaab52f..2bbf7d782 100644 --- a/src/reset_rtc_screen.c +++ b/src/reset_rtc_screen.c @@ -608,7 +608,7 @@ static void Task_ResetRtcScreen(u8 taskId) } break; case 4: - if (TrySavingData(0) == 1) + if (TrySavingData(SAVE_NORMAL) == 1) { ShowMessage(gText_SaveCompleted); PlaySE(SE_PINPON); diff --git a/src/save.c b/src/save.c index cdfd2ae1d..e1f5a6fff 100644 --- a/src/save.c +++ b/src/save.c @@ -683,8 +683,8 @@ u8 HandleSavingData(u8 saveType) SaveSerializedGame(); save_write_to_flash(0xFFFF, gRamSaveSectionLocations); break; - case SAVE_LINK: // _081532C4 - case SAVE_LINK2: + case SAVE_LINK: // Link and Battle Frontier + case SAVE_LINK2: // Unused SaveSerializedGame(); for(i = 0; i < 5; i++) ClearSaveData_2(i, gRamSaveSectionLocations); diff --git a/src/script_pokemon_util_80F87D8.c b/src/script_pokemon_util_80F87D8.c index f1f5bdb6f..7b4ce9f24 100755 --- a/src/script_pokemon_util_80F87D8.c +++ b/src/script_pokemon_util_80F87D8.c @@ -640,7 +640,7 @@ void CreateScriptedWildMon(u16 species, u8 level, u16 item) u8 heldItem[2]; ZeroEnemyPartyMons(); - CreateMon(&gEnemyParty[0], species, level, 0x20, 0, 0, OT_ID_PLAYER_ID, 0); + CreateMon(&gEnemyParty[0], species, level, 32, 0, 0, OT_ID_PLAYER_ID, 0); if (item) { heldItem[0] = item; diff --git a/src/smokescreen.c b/src/smokescreen.c index 61e011451..1ee0c658c 100644 --- a/src/smokescreen.c +++ b/src/smokescreen.c @@ -4,46 +4,46 @@ #include "sprite.h" #include "util.h" -static void sub_8075370(struct Sprite *); +static void SmokescreenImpact_Callback(struct Sprite *); -extern const struct CompressedSpriteSheet gUnknown_0831C620; -extern const struct CompressedSpritePalette gUnknown_0831C628; -extern const struct SpriteTemplate gUnknown_0831C688; +extern const struct CompressedSpriteSheet gSmokescreenImpactSpriteSheet; +extern const struct CompressedSpritePalette gSmokescreenlImpactSpritePalette; +extern const struct SpriteTemplate gSmokescreenImpactSpriteTemplate; -u8 sub_807521C(s16 x, s16 y, u8 a3) +u8 SmokescreenImpact(s16 x, s16 y, u8 a3) { u8 mainSpriteId; u8 spriteId1, spriteId2, spriteId3, spriteId4; struct Sprite *mainSprite; - if (GetSpriteTileStartByTag(gUnknown_0831C620.tag) == 0xFFFF) + if (GetSpriteTileStartByTag(gSmokescreenImpactSpriteSheet.tag) == 0xFFFF) { - LoadCompressedSpriteSheetUsingHeap(&gUnknown_0831C620); - LoadCompressedSpritePaletteUsingHeap(&gUnknown_0831C628); + LoadCompressedSpriteSheetUsingHeap(&gSmokescreenImpactSpriteSheet); + LoadCompressedSpritePaletteUsingHeap(&gSmokescreenlImpactSpritePalette); } - mainSpriteId = CreateInvisibleSpriteWithCallback(sub_8075370); + mainSpriteId = CreateInvisibleSpriteWithCallback(SmokescreenImpact_Callback); mainSprite = &gSprites[mainSpriteId]; mainSprite->data[1] = a3; - spriteId1 = CreateSprite(&gUnknown_0831C688, x - 16, y - 16, 2); + spriteId1 = CreateSprite(&gSmokescreenImpactSpriteTemplate, x - 16, y - 16, 2); gSprites[spriteId1].data[0] = mainSpriteId; mainSprite->data[0]++; AnimateSprite(&gSprites[spriteId1]); - spriteId2 = CreateSprite(&gUnknown_0831C688, x, y - 16, 2); + spriteId2 = CreateSprite(&gSmokescreenImpactSpriteTemplate, x, y - 16, 2); gSprites[spriteId2].data[0] = mainSpriteId; mainSprite->data[0]++; StartSpriteAnim(&gSprites[spriteId2], 1); AnimateSprite(&gSprites[spriteId2]); - spriteId3 = CreateSprite(&gUnknown_0831C688, x - 16, y, 2); + spriteId3 = CreateSprite(&gSmokescreenImpactSpriteTemplate, x - 16, y, 2); gSprites[spriteId3].data[0] = mainSpriteId; mainSprite->data[0]++; StartSpriteAnim(&gSprites[spriteId3], 2); AnimateSprite(&gSprites[spriteId3]); - spriteId4 = CreateSprite(&gUnknown_0831C688, x, y, 2); + spriteId4 = CreateSprite(&gSmokescreenImpactSpriteTemplate, x, y, 2); gSprites[spriteId4].data[0] = mainSpriteId; mainSprite->data[0]++; StartSpriteAnim(&gSprites[spriteId4], 3); @@ -52,12 +52,12 @@ u8 sub_807521C(s16 x, s16 y, u8 a3) return mainSpriteId; } -static void sub_8075370(struct Sprite *sprite) +static void SmokescreenImpact_Callback(struct Sprite *sprite) { if (!sprite->data[0]) { - FreeSpriteTilesByTag(gUnknown_0831C620.tag); - FreeSpritePaletteByTag(gUnknown_0831C628.tag); + FreeSpriteTilesByTag(gSmokescreenImpactSpriteSheet.tag); + FreeSpritePaletteByTag(gSmokescreenlImpactSpritePalette.tag); if (!sprite->data[1]) DestroySprite(sprite); else @@ -65,7 +65,7 @@ static void sub_8075370(struct Sprite *sprite) } } -void sub_80753B4(struct Sprite *sprite) +void SpriteCB_DestroySprite(struct Sprite *sprite) { if (sprite->animEnded) { diff --git a/src/trainer_card.c b/src/trainer_card.c index f3bff3731..9fa686e16 100755 --- a/src/trainer_card.c +++ b/src/trainer_card.c @@ -728,7 +728,7 @@ static void TrainerCard_GenerateCardForLinkPlayer(struct TrainerCard *trainerCar trainerCard->version = GAME_VERSION; SetPlayerCardData(trainerCard, CARD_TYPE_EMERALD); trainerCard->hasAllSymbols = HasAllFrontierSymbols(); - trainerCard->frontierBP = gSaveBlock2Ptr->frontier.field_EBA; + trainerCard->frontierBP = gSaveBlock2Ptr->frontier.cardBattlePoints; if (trainerCard->hasAllSymbols) trainerCard->stars++; @@ -744,7 +744,7 @@ void TrainerCard_GenerateCardForPlayer(struct TrainerCard *trainerCard) trainerCard->version = GAME_VERSION; SetPlayerCardData(trainerCard, CARD_TYPE_EMERALD); trainerCard->var_3A = HasAllFrontierSymbols(); - *((u16*)&trainerCard->berryCrushPoints) = gSaveBlock2Ptr->frontier.field_EBA; + *((u16*)&trainerCard->berryCrushPoints) = gSaveBlock2Ptr->frontier.cardBattlePoints; if (trainerCard->var_3A) trainerCard->stars++; diff --git a/src/trainer_hill.c b/src/trainer_hill.c index 7e3e1e13d..11ac49e3a 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -223,24 +223,24 @@ static const u8 *const sFloorStrings[] = static void (* const sHillFunctions[])(void) = { - [TRAINER_HILL_FUNC_START] = TrainerHillStartChallenge, - [TRAINER_HILL_FUNC_GET_OWNER_STATE] = GetOwnerState, - [TRAINER_HILL_FUNC_GIVE_PRIZE] = GiveChallengePrize, - [TRAINER_HILL_FUNC_CHECK_FINAL_TIME] = CheckFinalTime, - [TRAINER_HILL_FUNC_RESUME_TIMER] = TrainerHillResumeTimer, - [TRAINER_HILL_FUNC_SET_LOST] = TrainerHillSetPlayerLost, - [TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS] = TrainerHillGetChallengeStatus, - [TRAINER_HILL_FUNC_GET_CHALLENGE_TIME] = BufferChallengeTime, - [TRAINER_HILL_FUNC_GET_ALL_FLOORS_USED] = GetAllFloorsUsed, - [TRAINER_HILL_FUNC_CLEAR_RESULT] = ClearVarResult, - [TRAINER_HILL_FUNC_IN_CHALLENGE] = IsTrainerHillChallengeActive, - [TRAINER_HILL_FUNC_POST_BATTLE_TEXT] = ShowTrainerHillPostBattleText, + [TRAINER_HILL_FUNC_START] = TrainerHillStartChallenge, + [TRAINER_HILL_FUNC_GET_OWNER_STATE] = GetOwnerState, + [TRAINER_HILL_FUNC_GIVE_PRIZE] = GiveChallengePrize, + [TRAINER_HILL_FUNC_CHECK_FINAL_TIME] = CheckFinalTime, + [TRAINER_HILL_FUNC_RESUME_TIMER] = TrainerHillResumeTimer, + [TRAINER_HILL_FUNC_SET_LOST] = TrainerHillSetPlayerLost, + [TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS] = TrainerHillGetChallengeStatus, + [TRAINER_HILL_FUNC_GET_CHALLENGE_TIME] = BufferChallengeTime, + [TRAINER_HILL_FUNC_GET_ALL_FLOORS_USED] = GetAllFloorsUsed, + [TRAINER_HILL_FUNC_CLEAR_RESULT] = ClearVarResult, + [TRAINER_HILL_FUNC_IN_CHALLENGE] = IsTrainerHillChallengeActive, + [TRAINER_HILL_FUNC_POST_BATTLE_TEXT] = ShowTrainerHillPostBattleText, [TRAINER_HILL_FUNC_SET_ALL_TRAINER_FLAGS] = SetAllTrainerFlags, - [TRAINER_HILL_FUNC_GET_GAME_SAVED] = GetGameSaved, - [TRAINER_HILL_FUNC_SET_GAME_SAVED] = SetGameSaved, - [TRAINER_HILL_FUNC_CLEAR_GAME_SAVED] = ClearGameSaved, - [TRAINER_HILL_FUNC_GET_WON] = GetChallengeWon, - [TRAINER_HILL_FUNC_SET_TAG] = TrainerHillSetTag, + [TRAINER_HILL_FUNC_GET_GAME_SAVED] = GetGameSaved, + [TRAINER_HILL_FUNC_SET_GAME_SAVED] = SetGameSaved, + [TRAINER_HILL_FUNC_CLEAR_GAME_SAVED] = ClearGameSaved, + [TRAINER_HILL_FUNC_GET_WON] = GetChallengeWon, + [TRAINER_HILL_FUNC_SET_TAG] = TrainerHillSetTag, }; static const u8 *const sTagMatchStrings[] = @@ -1,7 +1,6 @@ #include "global.h" #include "rtc.h" #include "overworld.h" -#include "constants/maps.h" #include "random.h" #include "event_data.h" #include "fieldmap.h" @@ -14,12 +13,9 @@ #include "pokemon_storage_system.h" #include "field_message_box.h" #include "easy_chat.h" -#include "constants/species.h" -#include "constants/moves.h" #include "battle.h" #include "battle_tower.h" #include "contest.h" -#include "constants/items.h" #include "item.h" #include "link.h" #include "main.h" @@ -33,15 +29,20 @@ #include "naming_screen.h" #include "malloc.h" #include "region_map.h" -#include "constants/region_map_sections.h" #include "decoration.h" #include "secret_base.h" #include "tv.h" #include "data.h" +#include "constants/battle_frontier.h" #include "constants/contest.h" +#include "constants/items.h" #include "constants/layouts.h" +#include "constants/maps.h" #include "constants/metatile_behaviors.h" +#include "constants/moves.h" +#include "constants/region_map_sections.h" #include "constants/script_menu.h" +#include "constants/species.h" #include "constants/tv.h" // Static type declarations @@ -1538,12 +1539,12 @@ static void InterviewAfter_BravoTrainerBattleTowerProfile(void) show->bravoTrainerTower.kind = TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE; show->bravoTrainerTower.active = TRUE; StringCopy(show->bravoTrainerTower.trainerName, gSaveBlock2Ptr->playerName); - StringCopy(show->bravoTrainerTower.pokemonName, gSaveBlock2Ptr->frontier.field_BD8); - show->bravoTrainerTower.species = gSaveBlock2Ptr->frontier.field_BD4; - show->bravoTrainerTower.defeatedSpecies = gSaveBlock2Ptr->frontier.field_BD6; - show->bravoTrainerTower.numFights = GetCurrentBattleTowerWinStreak(gSaveBlock2Ptr->frontier.field_D07, 0); - show->bravoTrainerTower.wonTheChallenge = gSaveBlock2Ptr->frontier.field_D06; - if (gSaveBlock2Ptr->frontier.field_D07 == 0) + StringCopy(show->bravoTrainerTower.pokemonName, gSaveBlock2Ptr->frontier.towerInterview.opponentName); + show->bravoTrainerTower.species = gSaveBlock2Ptr->frontier.towerInterview.playerSpecies; + show->bravoTrainerTower.defeatedSpecies = gSaveBlock2Ptr->frontier.towerInterview.opponentSpecies; + show->bravoTrainerTower.numFights = GetCurrentBattleTowerWinStreak(gSaveBlock2Ptr->frontier.towerLvlMode, 0); + show->bravoTrainerTower.wonTheChallenge = gSaveBlock2Ptr->frontier.towerBattleOutcome; + if (gSaveBlock2Ptr->frontier.towerLvlMode == FRONTIER_LVL_50) { show->bravoTrainerTower.btLevel = 50; } @@ -1554,13 +1555,13 @@ static void InterviewAfter_BravoTrainerBattleTowerProfile(void) show->bravoTrainerTower.interviewResponse = gSpecialVar_0x8004; tv_store_id_2x(show); show->bravoTrainerTower.language = gGameLanguage; - if (show->bravoTrainerTower.language == LANGUAGE_JAPANESE || gSaveBlock2Ptr->frontier.field_BEB == LANGUAGE_JAPANESE) + if (show->bravoTrainerTower.language == LANGUAGE_JAPANESE || gSaveBlock2Ptr->frontier.towerInterview.opponentLanguage == LANGUAGE_JAPANESE) { show->bravoTrainerTower.pokemonNameLanguage = LANGUAGE_JAPANESE; } else { - show->bravoTrainerTower.pokemonNameLanguage = gSaveBlock2Ptr->frontier.field_BEB; + show->bravoTrainerTower.pokemonNameLanguage = gSaveBlock2Ptr->frontier.towerInterview.opponentLanguage; } } @@ -2466,7 +2467,7 @@ bool8 ShouldHideFanClubInterviewer(void) return FALSE; } -bool8 sub_80EE818(void) +bool8 ShouldAirFrontierTVShow(void) { u32 playerId; u8 showIdx; @@ -2494,7 +2495,7 @@ bool8 sub_80EE818(void) return TRUE; } -void sub_80EE8C8(u16 winStreak, u8 facilityAndMode) +void TryPutFrontierTVShowOnAir(u16 winStreak, u8 facilityAndMode) { TVShow *show; diff --git a/src/wild_encounter.c b/src/wild_encounter.c index 530e5e323..cb6dba1d4 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -424,7 +424,7 @@ static bool8 TryGenerateWildMon(const struct WildPokemonInfo *wildMonInfo, u8 ar level = ChooseWildMonLevel(&wildMonInfo->wildPokemon[wildMonIndex]); if (flags & WILD_CHECK_REPEL && !IsWildLevelAllowedByRepel(level)) return FALSE; - if (gMapHeader.mapLayoutId != LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3 && flags & WILD_CHECK_KEEN_EYE && !IsAbilityAllowingEncounter(level)) + if (gMapHeader.mapLayoutId != LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS && flags & WILD_CHECK_KEEN_EYE && !IsAbilityAllowingEncounter(level)) return FALSE; CreateWildMon(wildMonInfo->wildPokemon[wildMonIndex].species, level); @@ -533,7 +533,7 @@ bool8 StandardWildEncounter(u16 currMetaTileBehavior, u16 previousMetaTileBehavi headerId = GetCurrentMapWildMonHeaderId(); if (headerId == 0xFFFF) { - if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3) + if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS) { headerId = GetBattlePikeWildMonHeaderId(); if (previousMetaTileBehavior != currMetaTileBehavior && !DoGlobalWildEncounterDiceRoll()) @@ -676,7 +676,7 @@ bool8 SweetScentWildEncounter(void) headerId = GetCurrentMapWildMonHeaderId(); if (headerId == 0xFFFF) { - if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3) + if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS) { headerId = GetBattlePikeWildMonHeaderId(); if (TryGenerateWildMon(gBattlePikeWildMonHeaders[headerId].landMonsInfo, WILD_AREA_LAND, 0) != TRUE) |