summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGriffinR <griffin.richards@comcast.net>2019-11-25 20:00:04 -0500
committerGriffinR <griffin.richards@comcast.net>2019-11-25 20:00:04 -0500
commitf559fa3fe26910056e84315370cb13ec8501af18 (patch)
tree498c7ed00243cf03420451fdde3e04ac36add55c
parent4c52cf9ed15f01f949fbf2139444f674694e446d (diff)
parent6efa51f8ad7b62a3a12c81f1d0bf299be31718b0 (diff)
Merge master into ObjEvent rename
-rw-r--r--README.md2
-rw-r--r--asm/macros.inc12
-rw-r--r--asm/macros/battle_frontier.inc35
-rw-r--r--asm/macros/battle_frontier/apprentice.inc133
-rw-r--r--asm/macros/battle_frontier/battle_arena.inc1
-rw-r--r--asm/macros/battle_frontier/battle_dome.inc1
-rw-r--r--asm/macros/battle_frontier/battle_factory.inc1
-rw-r--r--asm/macros/battle_frontier/battle_palace.inc1
-rw-r--r--asm/macros/battle_frontier/battle_pike.inc54
-rw-r--r--asm/macros/battle_frontier/battle_pyramid.inc1
-rw-r--r--asm/macros/battle_frontier/battle_tower.inc7
-rw-r--r--asm/macros/battle_frontier/frontier_util.inc153
-rw-r--r--asm/macros/battle_tent.inc1
-rw-r--r--asm/macros/trainer_hill.inc92
-rw-r--r--common_syms/apprentice.txt6
-rw-r--r--data/battle_anim_scripts.s180
-rw-r--r--data/event_scripts.s8
-rw-r--r--data/layouts/BattleFrontier_BattlePikeRoomFinal/border.bin (renamed from data/layouts/BattleFrontier_BattlePikeRandomRoom1/border.bin)bin8 -> 8 bytes
-rw-r--r--data/layouts/BattleFrontier_BattlePikeRoomFinal/map.bin (renamed from data/layouts/BattleFrontier_BattlePikeRandomRoom2/map.bin)0
-rw-r--r--data/layouts/BattleFrontier_BattlePikeRoomNormal/border.bin (renamed from data/layouts/BattleFrontier_BattlePikeRandomRoom2/border.bin)bin8 -> 8 bytes
-rw-r--r--data/layouts/BattleFrontier_BattlePikeRoomNormal/map.bin (renamed from data/layouts/BattleFrontier_BattlePikeRandomRoom1/map.bin)0
-rw-r--r--data/layouts/BattleFrontier_BattlePikeRoomWildMons/border.bin (renamed from data/layouts/BattleFrontier_BattlePikeRandomRoom3/border.bin)bin8 -> 8 bytes
-rw-r--r--data/layouts/BattleFrontier_BattlePikeRoomWildMons/map.bin (renamed from data/layouts/BattleFrontier_BattlePikeRandomRoom3/map.bin)0
-rw-r--r--data/layouts/layouts.json24
-rw-r--r--data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc102
-rw-r--r--data/maps/BattleFrontier_BattleArenaLobby/scripts.inc92
-rw-r--r--data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc121
-rw-r--r--data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc7
-rw-r--r--data/maps/BattleFrontier_BattleDomeLobby/scripts.inc133
-rw-r--r--data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc42
-rw-r--r--data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc96
-rw-r--r--data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc93
-rw-r--r--data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc28
-rw-r--r--data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc106
-rw-r--r--data/maps/BattleFrontier_BattlePalaceCorridor/scripts.inc6
-rw-r--r--data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc114
-rw-r--r--data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc20
-rw-r--r--data/maps/BattleFrontier_BattlePikeLobby/scripts.inc97
-rw-r--r--data/maps/BattleFrontier_BattlePikeRandomRoom1/scripts.inc895
-rw-r--r--data/maps/BattleFrontier_BattlePikeRandomRoom2/scripts.inc43
-rw-r--r--data/maps/BattleFrontier_BattlePikeRandomRoom3/scripts.inc50
-rw-r--r--data/maps/BattleFrontier_BattlePikeRoomFinal/map.json (renamed from data/maps/BattleFrontier_BattlePikeRandomRoom2/map.json)6
-rw-r--r--data/maps/BattleFrontier_BattlePikeRoomFinal/scripts.inc40
-rw-r--r--data/maps/BattleFrontier_BattlePikeRoomNormal/map.json (renamed from data/maps/BattleFrontier_BattlePikeRandomRoom1/map.json)24
-rw-r--r--data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc870
-rw-r--r--data/maps/BattleFrontier_BattlePikeRoomWildMons/map.json (renamed from data/maps/BattleFrontier_BattlePikeRandomRoom3/map.json)20
-rw-r--r--data/maps/BattleFrontier_BattlePikeRoomWildMons/scripts.inc45
-rw-r--r--data/maps/BattleFrontier_BattlePikeThreePathRoom/map.json8
-rw-r--r--data/maps/BattleFrontier_BattlePikeThreePathRoom/scripts.inc212
-rw-r--r--data/maps/BattleFrontier_BattlePyramidEmptySquare/scripts.inc57
-rw-r--r--data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc84
-rw-r--r--data/maps/BattleFrontier_BattlePyramidTop/scripts.inc79
-rw-r--r--data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc135
-rw-r--r--data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc52
-rw-r--r--data/maps/BattleFrontier_BattleTowerCorridor2/scripts.inc12
-rw-r--r--data/maps/BattleFrontier_BattleTowerElevator/scripts.inc8
-rw-r--r--data/maps/BattleFrontier_BattleTowerLobby/map.json2
-rw-r--r--data/maps/BattleFrontier_BattleTowerLobby/scripts.inc317
-rw-r--r--data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc5
-rw-r--r--data/maps/BattleFrontier_ScottsHouse/scripts.inc12
-rw-r--r--data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc42
-rw-r--r--data/maps/FallarborTown_BattleTentLobby/scripts.inc96
-rw-r--r--data/maps/LilycoveCity_ContestLobby/scripts.inc4
-rw-r--r--data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc7
-rw-r--r--data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc21
-rw-r--r--data/maps/SlateportCity_BattleTentCorridor/scripts.inc21
-rw-r--r--data/maps/SlateportCity_BattleTentLobby/scripts.inc85
-rw-r--r--data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc6
-rw-r--r--data/maps/TrainerHill_Entrance/scripts.inc37
-rw-r--r--data/maps/TrainerHill_Roof/scripts.inc12
-rw-r--r--data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc38
-rw-r--r--data/maps/VerdanturfTown_BattleTentLobby/scripts.inc98
-rw-r--r--data/maps/map_groups.json6
-rw-r--r--data/scripts/apprentice.inc2892
-rw-r--r--data/scripts/battle_pike.inc313
-rw-r--r--data/scripts/field_poison.inc5
-rw-r--r--data/scripts/trainer_hill.inc22
-rw-r--r--data/smokescreen.s8
-rw-r--r--data/specials.inc6
-rw-r--r--data/text/apprentice.inc2527
-rw-r--r--data/text/frontier_brain.inc63
-rw-r--r--graphics/battle_anims/sprites/tri_attack_triangle.png (renamed from graphics/battle_anims/sprites/tri_force_triangle.png)bin481 -> 481 bytes
-rw-r--r--include/apprentice.h8
-rw-r--r--include/battle_anim.h4
-rw-r--r--include/battle_message.h2
-rw-r--r--include/constants/apprentice.h100
-rw-r--r--include/constants/battle_anim.h2
-rw-r--r--include/constants/battle_frontier.h24
-rw-r--r--include/constants/battle_pike.h19
-rw-r--r--include/constants/frontier_util.h73
-rw-r--r--include/constants/global.h25
-rwxr-xr-xinclude/constants/layouts.h6
-rwxr-xr-xinclude/constants/map_groups.h6
-rw-r--r--include/constants/pokemon.h4
-rw-r--r--include/constants/trainer_hill.h34
-rw-r--r--include/constants/trainers.h82
-rw-r--r--include/frontier_util.h8
-rw-r--r--include/global.h122
-rw-r--r--include/graphics.h4
-rw-r--r--include/item_menu.h2
-rw-r--r--include/strings.h63
-rw-r--r--include/tv.h4
-rw-r--r--src/apprentice.c1861
-rw-r--r--src/battle_anim.c8
-rwxr-xr-xsrc/battle_anim_effects_3.c508
-rw-r--r--src/battle_anim_mons.c4
-rwxr-xr-xsrc/battle_anim_special.c4
-rw-r--r--src/battle_arena.c27
-rw-r--r--src/battle_dome.c49
-rw-r--r--src/battle_factory.c31
-rw-r--r--src/battle_message.c2
-rw-r--r--src/battle_palace.c34
-rw-r--r--src/battle_pike.c209
-rw-r--r--src/battle_pyramid.c41
-rw-r--r--src/battle_script_commands.c4
-rw-r--r--src/battle_tent.c48
-rw-r--r--src/battle_tower.c330
-rw-r--r--src/data/battle_frontier/apprentice.h982
-rw-r--r--src/data/battle_frontier/battle_frontier_trainers.h12
-rw-r--r--src/data/battle_frontier/trainer_hill.h4
-rw-r--r--src/data/pokemon/level_up_learnsets.h1
-rw-r--r--src/data/pokemon/trainer_class_lookups.h4
-rw-r--r--src/easy_chat.c2
-rw-r--r--src/field_control_avatar.c7
-rw-r--r--src/frontier_pass.c6
-rw-r--r--src/frontier_util.c718
-rw-r--r--src/graphics.c4
-rwxr-xr-xsrc/item_menu.c16
-rw-r--r--src/link.c2
-rw-r--r--src/menu.c10
-rw-r--r--src/mystery_gift.c2
-rw-r--r--src/new_game.c4
-rw-r--r--src/overworld.c2
-rw-r--r--src/pokemon.c38
-rw-r--r--src/record_mixing.c100
-rw-r--r--src/recorded_battle.c24
-rw-r--r--src/reset_rtc_screen.c2
-rw-r--r--src/save.c4
-rwxr-xr-xsrc/script_pokemon_util_80F87D8.c2
-rw-r--r--src/smokescreen.c34
-rwxr-xr-xsrc/trainer_card.c4
-rw-r--r--src/trainer_hill.c34
-rw-r--r--src/tv.c31
-rw-r--r--src/wild_encounter.c6
144 files changed, 8331 insertions, 8530 deletions
diff --git a/README.md b/README.md
index 5d4edab85..2c3447abc 100644
--- a/README.md
+++ b/README.md
@@ -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
index f496f458e..f496f458e 100644
--- a/data/layouts/BattleFrontier_BattlePikeRandomRoom1/border.bin
+++ b/data/layouts/BattleFrontier_BattlePikeRoomFinal/border.bin
Binary files differ
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
index f496f458e..f496f458e 100644
--- a/data/layouts/BattleFrontier_BattlePikeRandomRoom2/border.bin
+++ b/data/layouts/BattleFrontier_BattlePikeRoomNormal/border.bin
Binary files differ
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
index f496f458e..f496f458e 100644
--- a/data/layouts/BattleFrontier_BattlePikeRandomRoom3/border.bin
+++ b/data/layouts/BattleFrontier_BattlePikeRoomWildMons/border.bin
Binary files differ
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
index 9157118fd..9157118fd 100644
--- a/graphics/battle_anims/sprites/tri_force_triangle.png
+++ b/graphics/battle_anims/sprites/tri_attack_triangle.png
Binary files differ
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[] =
diff --git a/src/tv.c b/src/tv.c
index a77f42a75..5cec4f12b 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -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)