Merge pull request #949 from GriffinRichards/doc-dome

Document Battle Dome and add facility party constants
This commit is contained in:
huderlem
2020-01-12 20:10:03 -06:00
committed by GitHub
61 changed files with 14255 additions and 20492 deletions
+22 -24
View File
@@ -1,5 +1,3 @@
@ TODO: Add explanatory comments to macros
@ Initialize the Battle Dome challenge
.macro dome_init
setvar VAR_0x8004, BATTLE_DOME_FUNC_INIT
@@ -23,64 +21,64 @@
special CallBattleDomeFunction
.endm
@
@ Buffer the name of the current round to gStringVar1
.macro dome_getroundtext
setvar VAR_0x8004, BATTLE_DOME_FUNC_GET_ROUND_TEXT
special CallBattleDomeFunction
.endm
@
@ Buffer the name of the opponent to gStringVar2 and the name of the round to gStringVar1
.macro dome_getopponentname
setvar VAR_0x8004, BATTLE_DOME_FUNC_GET_OPPONENT_NAME
special CallBattleDomeFunction
.endm
@
@ Choose which of the opponents mons to use in battle and load them into the enemy party
.macro dome_initopponentparty
setvar VAR_0x8004, BATTLE_DOME_FUNC_INIT_OPPONENT_PARTY
special CallBattleDomeFunction
.endm
@
@ Show the page that gives information on the next opponent
.macro dome_showopponentinfo
setvar VAR_0x8004, BATTLE_DOME_FUNC_SHOW_OPPONENT_INFO
special CallBattleDomeFunction
.endm
@
@ Displays the tourney tree for the current tourney
.macro dome_showtourneytree
setvar VAR_0x8004, BATTLE_DOME_FUNC_SHOW_TOURNEY_TREE
special CallBattleDomeFunction
.endm
@
.macro dome_showresultstree
setvar VAR_0x8004, BATTLE_DOME_FUNC_SHOW_PREV_RESULTS_TREE
@ Displays the tourney tree for the results of the previous tourney. Before the player enters their first tourney this is a random tourney generated by dome_initresultstree
.macro dome_showprevtourneytree
setvar VAR_0x8004, BATTLE_DOME_FUNC_SHOW_PREV_TOURNEY_TREE
special CallBattleDomeFunction
.endm
@
@ Sets gTrainerBattleOpponent_A to the trainer ID of the next opponent
.macro dome_setopponent
setvar VAR_0x8004, BATTLE_DOME_FUNC_SET_OPPONENT_ID
special CallBattleDomeFunction
.endm
@
@ Set the object event gfx id for the opponent
.macro dome_setopponentgfx
setvar VAR_0x8004, BATTLE_DOME_FUNC_SET_OPPONENT_GFX
special CallBattleDomeFunction
.endm
@
@ A non-interactive version of the tourney tree shown when a round is completed
.macro dome_showstatictourneytree
setvar VAR_0x8004, BATTLE_DOME_FUNC_SHOW_STATIC_TOURNEY_TREE
special CallBattleDomeFunction
.endm
@
.macro dome_resolvewinners arg:req
@ Decides the winners of NPC vs NPC matches, and eliminates either the player or their opponent depending on the playerStatus (DOME_PLAYER_*)
.macro dome_resolvewinners playerStatus:req
setvar VAR_0x8004, BATTLE_DOME_FUNC_RESOLVE_WINNERS
setvar VAR_0x8005, \arg
setvar VAR_0x8005, \playerStatus
special CallBattleDomeFunction
.endm
@@ -97,7 +95,7 @@
special CallBattleDomeFunction
.endm
@
@ Sets the facility trainer/mon set pointers
.macro dome_settrainers
setvar VAR_0x8004, BATTLE_DOME_FUNC_SET_TRAINERS
special CallBattleDomeFunction
@@ -109,19 +107,19 @@
special CallBattleDomeFunction
.endm
@
@ Reset the held items of the mons that just battled to what they were prior to battling
.macro dome_restorehelditems
setvar VAR_0x8004, BATTLE_DOME_FUNC_RESTORE_HELD_ITEMS
special CallBattleDomeFunction
.endm
@
@ Reduce the players party to the selected mons, used to reduce down to the 2 selected for battle
.macro dome_reduceparty
setvar VAR_0x8004, BATTLE_DOME_FUNC_REDUCE_PARTY
special CallBattleDomeFunction
.endm
@
@ Compares the initial tournament ranking (seed) of the player to opponent A. Returns 1 if the player's seed is better, 2 if the opponent's seed is better.
.macro dome_compareseeds
setvar VAR_0x8004, BATTLE_DOME_FUNC_COMPARE_SEEDS
special CallBattleDomeFunction
@@ -133,13 +131,13 @@
special CallBattleDomeFunction
.endm
@ TODO: Document this macro and its function
.macro dome_21
setvar VAR_0x8004, BATTLE_DOME_FUNC_21
@ Performs a random tourney to initialize the results board before the player has entered a challenge
.macro dome_initresultstree
setvar VAR_0x8004, BATTLE_DOME_FUNC_INIT_RESULTS_TREE
special CallBattleDomeFunction
.endm
@
@ Generates the tourney trainers and their parties, and seeds them in the tourney tree
.macro dome_inittrainers
setvar VAR_0x8004, BATTLE_DOME_FUNC_INIT_TRAINERS
special CallBattleDomeFunction
+1 -1
View File
@@ -2395,10 +2395,10 @@ AI_CV_Hail_ScoreDown1:
AI_CV_Hail_End:
end
@ BUG: Facade score is increased if the target is statused, but should be if the user is. Replace AI_TARGET with AI_USER
AI_CV_Facade:
if_not_status AI_TARGET, STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON, AI_CV_Facade_End
score +1
AI_CV_Facade_End:
end
File diff suppressed because it is too large Load Diff
@@ -1,48 +1,48 @@
BattleFrontier_BattleDomeCorridor_MapScripts:: @ 824B0FE
map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleDomeCorridor_MapScript2_24B104
map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleDomeCorridor_OnFrame
.byte 0
BattleFrontier_BattleDomeCorridor_MapScript2_24B104: @ 824B104
map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomeCorridor_EventScript_24B10E
BattleFrontier_BattleDomeCorridor_OnFrame: @ 824B104
map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomeCorridor_EventScript_EnterCorridor
.2byte 0
BattleFrontier_BattleDomeCorridor_EventScript_24B10E:: @ 824B10E
BattleFrontier_BattleDomeCorridor_EventScript_EnterCorridor:: @ 824B10E
delay 16
setvar VAR_TEMP_0, 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 EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeCorridor_Movement_24B1A1
goto_if_eq BattleFrontier_BattleDomeCorridor_EventScript_WalkToBattleRoomLvOpen
applymovement 1, BattleFrontier_BattleDomeCorridor_Movement_AttendantWalkToDoorLv50
applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeCorridor_Movement_PlayerWalkToDoorLv50
waitmovement 0
opendoor 13, 3
waitdooranim
applymovement 1, BattleFrontier_BattleDomeCorridor_Movement_24B1BE
applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeCorridor_Movement_24B1AE
applymovement 1, BattleFrontier_BattleDomeCorridor_Movement_AttendantEnterDoorLv50
applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeCorridor_Movement_PlayerEnterDoorLv50
waitmovement 0
closedoor 13, 3
waitdooranim
goto BattleFrontier_BattleDomeCorridor_EventScript_24B18F
goto BattleFrontier_BattleDomeCorridor_EventScript_WarpToPreBattleRoom
BattleFrontier_BattleDomeCorridor_EventScript_24B161:: @ 824B161
applymovement 1, BattleFrontier_BattleDomeCorridor_Movement_24B1D6
applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeCorridor_Movement_24B1C1
BattleFrontier_BattleDomeCorridor_EventScript_WalkToBattleRoomLvOpen:: @ 824B161
applymovement 1, BattleFrontier_BattleDomeCorridor_Movement_AttendantWalkToDoorLvOpen
applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeCorridor_Movement_PlayerWalkToDoorLvOpen
waitmovement 0
opendoor 37, 3
waitdooranim
applymovement 1, BattleFrontier_BattleDomeCorridor_Movement_24B1E6
applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeCorridor_Movement_24B1D2
applymovement 1, BattleFrontier_BattleDomeCorridor_Movement_AttendantEnterDoorLvOpen
applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeCorridor_Movement_PlayerEnterDoorLvOpen
waitmovement 0
closedoor 37, 3
waitdooranim
BattleFrontier_BattleDomeCorridor_EventScript_24B18F:: @ 824B18F
BattleFrontier_BattleDomeCorridor_EventScript_WarpToPreBattleRoom:: @ 824B18F
waitmovement 0
setvar VAR_0x8006, 0
warp MAP_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM, 255, 5, 7
waitstate
end
BattleFrontier_BattleDomeCorridor_Movement_24B1A1: @ 824B1A1
BattleFrontier_BattleDomeCorridor_Movement_PlayerWalkToDoorLv50: @ 824B1A1
walk_up
walk_left
walk_left
@@ -57,13 +57,13 @@ BattleFrontier_BattleDomeCorridor_Movement_24B1A1: @ 824B1A1
walk_in_place_fastest_up
step_end
BattleFrontier_BattleDomeCorridor_Movement_24B1AE: @ 824B1AE
BattleFrontier_BattleDomeCorridor_Movement_PlayerEnterDoorLv50: @ 824B1AE
walk_up
walk_up
set_invisible
step_end
BattleFrontier_BattleDomeCorridor_Movement_24B1B2: @ 824B1B2
BattleFrontier_BattleDomeCorridor_Movement_AttendantWalkToDoorLv50: @ 824B1B2
walk_left
walk_left
walk_left
@@ -77,12 +77,12 @@ BattleFrontier_BattleDomeCorridor_Movement_24B1B2: @ 824B1B2
walk_up
step_end
BattleFrontier_BattleDomeCorridor_Movement_24B1BE: @ 824B1BE
BattleFrontier_BattleDomeCorridor_Movement_AttendantEnterDoorLv50: @ 824B1BE
walk_up
set_invisible
step_end
BattleFrontier_BattleDomeCorridor_Movement_24B1C1: @ 824B1C1
BattleFrontier_BattleDomeCorridor_Movement_PlayerWalkToDoorLvOpen: @ 824B1C1
walk_up
walk_right
walk_right
@@ -101,13 +101,13 @@ BattleFrontier_BattleDomeCorridor_Movement_24B1C1: @ 824B1C1
walk_in_place_fastest_up
step_end
BattleFrontier_BattleDomeCorridor_Movement_24B1D2: @ 824B1D2
BattleFrontier_BattleDomeCorridor_Movement_PlayerEnterDoorLvOpen: @ 824B1D2
walk_up
walk_up
set_invisible
step_end
BattleFrontier_BattleDomeCorridor_Movement_24B1D6: @ 824B1D6
BattleFrontier_BattleDomeCorridor_Movement_AttendantWalkToDoorLvOpen: @ 824B1D6
walk_right
walk_right
walk_right
@@ -125,12 +125,13 @@ BattleFrontier_BattleDomeCorridor_Movement_24B1D6: @ 824B1D6
walk_up
step_end
BattleFrontier_BattleDomeCorridor_Movement_24B1E6: @ 824B1E6
BattleFrontier_BattleDomeCorridor_Movement_AttendantEnterDoorLvOpen: @ 824B1E6
walk_up
set_invisible
step_end
BattleFrontier_BattleDomeCorridor_Movement_24B1E9: @ 824B1E9
@ Unused
BattleFrontier_BattleDomeCorridor_Movement_WalkToBattleRoomMidRight: @ 824B1E9
walk_up
walk_right
walk_right
@@ -24,7 +24,7 @@
"movement_range_y": 1,
"trainer_type": "0",
"trainer_sight_or_berry_tree_id": "0",
"script": "BattleFrontier_BattleDomeLobby_EventScript_249A35",
"script": "BattleFrontier_BattleDomeLobby_EventScript_SinglesAttendant",
"flag": "0"
},
{
@@ -37,7 +37,7 @@
"movement_range_y": 1,
"trainer_type": "0",
"trainer_sight_or_berry_tree_id": "0",
"script": "BattleFrontier_BattleDomeLobby_EventScript_249E10",
"script": "BattleFrontier_BattleDomeLobby_EventScript_Man",
"flag": "0"
},
{
@@ -50,7 +50,7 @@
"movement_range_y": 1,
"trainer_type": "0",
"trainer_sight_or_berry_tree_id": "0",
"script": "BattleFrontier_BattleDomeLobby_EventScript_249DFE",
"script": "BattleFrontier_BattleDomeLobby_EventScript_Lass",
"flag": "0"
},
{
@@ -63,7 +63,7 @@
"movement_range_y": 1,
"trainer_type": "0",
"trainer_sight_or_berry_tree_id": "0",
"script": "BattleFrontier_BattleDomeLobby_EventScript_249E07",
"script": "BattleFrontier_BattleDomeLobby_EventScript_FatMan",
"flag": "0"
},
{
@@ -76,7 +76,7 @@
"movement_range_y": 1,
"trainer_type": "0",
"trainer_sight_or_berry_tree_id": "0",
"script": "BattleFrontier_BattleDomeLobby_EventScript_249DED",
"script": "BattleFrontier_BattleDomeLobby_EventScript_Maniac",
"flag": "0"
},
{
@@ -89,7 +89,7 @@
"movement_range_y": 1,
"trainer_type": "0",
"trainer_sight_or_berry_tree_id": "0",
"script": "BattleFrontier_BattleDomeLobby_EventScript_249A47",
"script": "BattleFrontier_BattleDomeLobby_EventScript_DoublesAttendant",
"flag": "0"
}
],
@@ -117,7 +117,7 @@
"y": 10,
"elevation": 0,
"player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY",
"script": "BattleFrontier_BattleDomeLobby_EventScript_249D52"
"script": "BattleFrontier_BattleDomeLobby_EventScript_ShowSinglesResults"
},
{
"type": "sign",
@@ -125,7 +125,7 @@
"y": 10,
"elevation": 0,
"player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY",
"script": "BattleFrontier_BattleDomeLobby_EventScript_249D84"
"script": "BattleFrontier_BattleDomeLobby_EventScript_ShowPrevTourneyTree"
},
{
"type": "sign",
@@ -133,7 +133,7 @@
"y": 10,
"elevation": 0,
"player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY",
"script": "BattleFrontier_BattleDomeLobby_EventScript_249D6B"
"script": "BattleFrontier_BattleDomeLobby_EventScript_ShowDoublesResults"
},
{
"type": "sign",
@@ -141,7 +141,7 @@
"y": 10,
"elevation": 0,
"player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY",
"script": "BattleFrontier_BattleDomeLobby_EventScript_249E34"
"script": "BattleFrontier_BattleDomeLobby_EventScript_RulesBoard"
}
]
}
@@ -1,171 +1,168 @@
BattleFrontier_BattleDomeLobby_MapScripts:: @ 82497E2
map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattleDomeLobby_MapScript1_2497F2
map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleDomeLobby_MapScript2_24980F
map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattleDomeLobby_OnResume
map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleDomeLobby_OnFrame
map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleDomeLobby_OnWarp
.byte 0
BattleFrontier_BattleDomeLobby_MapScript1_2497F2: @ 82497F2
dome_21
BattleFrontier_BattleDomeLobby_OnResume: @ 82497F2
dome_initresultstree
end
BattleFrontier_BattleDomeLobby_OnWarp: @ 82497FB
map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleDomeLobby_EventScript_249805
map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleDomeLobby_EventScript_TurnPlayerNorth
.2byte 0
BattleFrontier_BattleDomeLobby_EventScript_249805:: @ 8249805
BattleFrontier_BattleDomeLobby_EventScript_TurnPlayerNorth:: @ 8249805
setvar VAR_TEMP_1, 1
turnobject EVENT_OBJ_ID_PLAYER, DIR_NORTH
end
BattleFrontier_BattleDomeLobby_MapScript2_24980F: @ 824980F
map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomeLobby_EventScript_249839
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
BattleFrontier_BattleDomeLobby_OnFrame: @ 824980F
map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomeLobby_EventScript_GetChallengeStatus
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattleDomeLobby_EventScript_QuitWithoutSaving
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattleDomeLobby_EventScript_ResumeChallenge
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, BattleFrontier_BattleDomeLobby_EventScript_WonChallenge
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattleDomeLobby_EventScript_LostChallenge
.2byte 0
BattleFrontier_BattleDomeLobby_EventScript_249839:: @ 8249839
BattleFrontier_BattleDomeLobby_EventScript_GetChallengeStatus:: @ 8249839
frontier_getstatus
end
BattleFrontier_BattleDomeLobby_EventScript_249842:: @ 8249842
BattleFrontier_BattleDomeLobby_EventScript_QuitWithoutSaving:: @ 8249842
lockall
msgbox BattleFrontier_BattleDomeLobby_Text_24A45F, MSGBOX_DEFAULT
msgbox BattleFrontier_BattleDomeLobby_Text_DidntSaveBeforeQuitting, MSGBOX_DEFAULT
closemessage
dome_set DOME_DATA_WIN_STREAK, 0
dome_set DOME_DATA_WIN_STREAK_ACTIVE, FALSE
dome_set DOME_DATA_6, 1
dome_set DOME_DATA_ATTEMPTED_CHALLENGE, TRUE
frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0
setvar VAR_TEMP_0, 255
releaseall
end
BattleFrontier_BattleDomeLobby_EventScript_24989B:: @ 824989B
BattleFrontier_BattleDomeLobby_EventScript_WonChallenge:: @ 824989B
call BattleFrontier_EventScript_IncrementWinStreak
lockall
frontier_isbrain
compare VAR_RESULT, TRUE
goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_2498C1
msgbox BattleFrontier_BattleDomeLobby_Text_24A4E9, MSGBOX_DEFAULT
goto BattleFrontier_BattleDomeLobby_EventScript_2498C9
goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_DefeatedAce
msgbox BattleFrontier_BattleDomeLobby_Text_CongratsForWinningTourney, MSGBOX_DEFAULT
goto BattleFrontier_BattleDomeLobby_EventScript_GiveBattlePoints
BattleFrontier_BattleDomeLobby_EventScript_2498C1:: @ 82498C1
msgbox BattleFrontier_BattleDomeLobby_Text_24AD67, MSGBOX_DEFAULT
BattleFrontier_BattleDomeLobby_EventScript_2498C9:: @ 82498C9
msgbox BattleFrontier_BattleDomeLobby_Text_24ADB1, MSGBOX_DEFAULT
BattleFrontier_BattleDomeLobby_EventScript_DefeatedAce:: @ 82498C1
msgbox BattleFrontier_BattleDomeLobby_Text_CongratsDefeatedTucker, MSGBOX_DEFAULT
BattleFrontier_BattleDomeLobby_EventScript_GiveBattlePoints:: @ 82498C9
msgbox BattleFrontier_BattleDomeLobby_Text_AwardTheseBattlePoints, MSGBOX_DEFAULT
frontier_givepoints
msgbox BattleFrontier_Text_ObtainedXBattlePoints, MSGBOX_GETPOINTS
message BattleFrontier_BattleDomeLobby_Text_24A5D6
message BattleFrontier_BattleDomeLobby_Text_RecordWillBeSaved
waitmessage
special LoadPlayerParty
frontier_setpartyorder FRONTIER_PARTY_SIZE
frontier_checkairshow
dome_set DOME_DATA_6, 1
dome_set DOME_DATA_7, 1
dome_set DOME_DATA_ATTEMPTED_CHALLENGE, TRUE
dome_set DOME_DATA_HAS_WON_CHALLENGE, TRUE
dome_set DOME_DATA_WIN_STREAK_ACTIVE, TRUE
special LoadPlayerParty
special HealPlayerParty
goto BattleFrontier_BattleDomeLobby_EventScript_249991
goto BattleFrontier_BattleDomeLobby_EventScript_AskRecordBattle
BattleFrontier_BattleDomeLobby_EventScript_249940:: @ 8249940
BattleFrontier_BattleDomeLobby_EventScript_LostChallenge:: @ 8249940
lockall
msgbox BattleFrontier_BattleDomeLobby_Text_24A5BF, MSGBOX_DEFAULT
message BattleFrontier_BattleDomeLobby_Text_24A5D6
msgbox BattleFrontier_BattleDomeLobby_Text_ThankYouForPlaying, MSGBOX_DEFAULT
message BattleFrontier_BattleDomeLobby_Text_RecordWillBeSaved
waitmessage
special LoadPlayerParty
frontier_setpartyorder FRONTIER_PARTY_SIZE
frontier_checkairshow
dome_set DOME_DATA_WIN_STREAK_ACTIVE, FALSE
dome_set DOME_DATA_6, 1
dome_set DOME_DATA_ATTEMPTED_CHALLENGE, TRUE
special LoadPlayerParty
special HealPlayerParty
BattleFrontier_BattleDomeLobby_EventScript_249991:: @ 8249991
BattleFrontier_BattleDomeLobby_EventScript_AskRecordBattle:: @ 8249991
dome_save 0
playse SE_SAVE
waitse
call BattleFrontier_EventScript_GetCantRecordBattle
compare VAR_RESULT, TRUE
goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_2499E9
message BattleFrontier_BattleDomeLobby_Text_24AE17
goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_EndChallenge
message BattleFrontier_BattleDomeLobby_Text_RecordLastMatch
waitmessage
multichoicedefault 20, 8, MULTI_YESNO, 1, 0
switch VAR_RESULT
case 1, BattleFrontier_BattleDomeLobby_EventScript_2499E9
case 0, BattleFrontier_BattleDomeLobby_EventScript_2499E4
case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_2499E9
case 1, BattleFrontier_BattleDomeLobby_EventScript_EndChallenge
case 0, BattleFrontier_BattleDomeLobby_EventScript_RecordBattle
case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_EndChallenge
BattleFrontier_BattleDomeLobby_EventScript_2499E4:: @ 82499E4
BattleFrontier_BattleDomeLobby_EventScript_RecordBattle:: @ 82499E4
call BattleFrontier_EventScript_SaveBattle
BattleFrontier_BattleDomeLobby_EventScript_2499E9:: @ 82499E9
msgbox BattleFrontier_BattleDomeLobby_Text_249F74, MSGBOX_DEFAULT
BattleFrontier_BattleDomeLobby_EventScript_EndChallenge:: @ 82499E9
msgbox BattleFrontier_BattleDomeLobby_Text_HopeToSeeYouAgain, MSGBOX_DEFAULT
closemessage
setvar VAR_TEMP_0, 255
releaseall
end
BattleFrontier_BattleDomeLobby_EventScript_2499F9:: @ 82499F9
BattleFrontier_BattleDomeLobby_EventScript_ResumeChallenge:: @ 82499F9
lockall
msgbox BattleFrontier_BattleDomeLobby_Text_24A5FE, MSGBOX_DEFAULT
message BattleFrontier_BattleDomeLobby_Text_24A61A
msgbox BattleFrontier_BattleDomeLobby_Text_WeveBeenWaitingForYou, MSGBOX_DEFAULT
message BattleFrontier_BattleDomeLobby_Text_OkayToSaveBeforeChallenge2
waitmessage
dome_save CHALLENGE_STATUS_SAVING
playse SE_SAVE
waitse
frontier_set FRONTIER_DATA_PAUSED, FALSE
setvar VAR_TEMP_0, 255
goto BattleFrontier_BattleDomeLobby_EventScript_249BC2
goto BattleFrontier_BattleDomeLobby_EventScript_EnterChallenge
BattleFrontier_BattleDomeLobby_EventScript_249A35:: @ 8249A35
BattleFrontier_BattleDomeLobby_EventScript_SinglesAttendant:: @ 8249A35
lock
faceplayer
setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_DOME
setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES
goto BattleFrontier_BattleDomeLobby_EventScript_249A59
goto BattleFrontier_BattleDomeLobby_EventScript_AttendantWelcome
end
BattleFrontier_BattleDomeLobby_EventScript_249A47:: @ 8249A47
BattleFrontier_BattleDomeLobby_EventScript_DoublesAttendant:: @ 8249A47
lock
faceplayer
setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_DOME
setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES
goto BattleFrontier_BattleDomeLobby_EventScript_249A59
goto BattleFrontier_BattleDomeLobby_EventScript_AttendantWelcome
end
BattleFrontier_BattleDomeLobby_EventScript_249A59:: @ 8249A59
BattleFrontier_BattleDomeLobby_EventScript_AttendantWelcome:: @ 8249A59
special SavePlayerParty
compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249CFD
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_WelcomeSingles
compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D06
BattleFrontier_BattleDomeLobby_EventScript_249A72:: @ 8249A72
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_WelcomeDoubles
BattleFrontier_BattleDomeLobby_EventScript_AskTakeChallenge:: @ 8249A72
compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D0F
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_TakeSinglesChallenge
compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D15
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_TakeDoublesChallenge
waitmessage
multichoice 17, 6, MULTI_CHALLENGEINFO, 0
switch VAR_RESULT
case 0, BattleFrontier_BattleDomeLobby_EventScript_249ABF
case 1, BattleFrontier_BattleDomeLobby_EventScript_249BFA
case 2, BattleFrontier_BattleDomeLobby_EventScript_249C64
case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_249C64
case 0, BattleFrontier_BattleDomeLobby_EventScript_TryEnterChallenge
case 1, BattleFrontier_BattleDomeLobby_EventScript_ExplainChallenge
case 2, BattleFrontier_BattleDomeLobby_EventScript_CancelChallenge
case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_CancelChallenge
BattleFrontier_BattleDomeLobby_EventScript_249ABF:: @ 8249ABF
message BattleFrontier_BattleDomeLobby_Text_24A210
BattleFrontier_BattleDomeLobby_EventScript_TryEnterChallenge:: @ 8249ABF
message BattleFrontier_BattleDomeLobby_Text_WhichLevelMode
waitmessage
multichoice 17, 6, MULTI_LEVEL_MODE, 0
switch VAR_RESULT
case FRONTIER_LVL_TENT, BattleFrontier_BattleDomeLobby_EventScript_249C64
case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_249C64
case FRONTIER_LVL_TENT, BattleFrontier_BattleDomeLobby_EventScript_CancelChallenge
case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_CancelChallenge
frontier_checkineligible
compare VAR_0x8004, TRUE
goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_249C15
goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_NotEnoughValidMons
frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT
msgbox BattleFrontier_BattleDomeLobby_Text_24A26E, MSGBOX_DEFAULT
msgbox BattleFrontier_BattleDomeLobby_Text_SelectThreeMons, MSGBOX_DEFAULT
fadescreen FADE_TO_BLACK
call BattleFrontier_EventScript_GetLvlMode
copyvar VAR_0x8004, VAR_RESULT
@@ -173,14 +170,14 @@ BattleFrontier_BattleDomeLobby_EventScript_249ABF:: @ 8249ABF
special ChoosePartyForBattleFrontier
waitstate
compare VAR_RESULT, 0
goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_249C61
msgbox BattleFrontier_BattleDomeLobby_Text_24A1C6, MSGBOX_YESNO
goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_LoadPartyCancelChallenge
msgbox BattleFrontier_BattleDomeLobby_Text_OkayToSaveBeforeChallenge, MSGBOX_YESNO
switch VAR_RESULT
case NO, BattleFrontier_BattleDomeLobby_EventScript_249C61
case YES, BattleFrontier_BattleDomeLobby_EventScript_249B60
case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_249C61
case NO, BattleFrontier_BattleDomeLobby_EventScript_LoadPartyCancelChallenge
case YES, BattleFrontier_BattleDomeLobby_EventScript_SaveBeforeChallenge
case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_LoadPartyCancelChallenge
BattleFrontier_BattleDomeLobby_EventScript_249B60:: @ 8249B60
BattleFrontier_BattleDomeLobby_EventScript_SaveBeforeChallenge:: @ 8249B60
setvar VAR_TEMP_0, 0
frontier_set FRONTIER_DATA_SELECTED_MON_ORDER
dome_init
@@ -192,137 +189,135 @@ BattleFrontier_BattleDomeLobby_EventScript_249B60:: @ 8249B60
call Common_EventScript_SaveGame
setvar VAR_TEMP_0, 255
compare VAR_RESULT, 0
goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_249C4A
goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_CancelChallengeSaveFailed
dome_inittrainers
BattleFrontier_BattleDomeLobby_EventScript_249BC2:: @ 8249BC2
BattleFrontier_BattleDomeLobby_EventScript_EnterChallenge:: @ 8249BC2
special SavePlayerParty
frontier_setpartyorder FRONTIER_PARTY_SIZE
dome_settrainers
msgbox BattleFrontier_BattleDomeLobby_Text_24A437, MSGBOX_DEFAULT
msgbox BattleFrontier_BattleDomeLobby_Text_ShowYouToBattleDome, MSGBOX_DEFAULT
closemessage
call BattleFrontier_BattleDomeLobby_EventScript_249C6E
call BattleFrontier_BattleDomeLobby_EventScript_WalkToDoor
special HealPlayerParty
warp MAP_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR, 255, 23, 6
setvar VAR_TEMP_0, 0
waitstate
end
BattleFrontier_BattleDomeLobby_EventScript_249BFA:: @ 8249BFA
BattleFrontier_BattleDomeLobby_EventScript_ExplainChallenge:: @ 8249BFA
compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D1B
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_ExplainSinglesChallenge
compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D24
goto BattleFrontier_BattleDomeLobby_EventScript_249A72
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_ExplainDoublesChallenge
goto BattleFrontier_BattleDomeLobby_EventScript_AskTakeChallenge
BattleFrontier_BattleDomeLobby_EventScript_249C15:: @ 8249C15
BattleFrontier_BattleDomeLobby_EventScript_NotEnoughValidMons:: @ 8249C15
switch VAR_RESULT
case FRONTIER_LVL_50, BattleFrontier_BattleDomeLobby_EventScript_249C30
case FRONTIER_LVL_OPEN, BattleFrontier_BattleDomeLobby_EventScript_249C3D
case FRONTIER_LVL_50, BattleFrontier_BattleDomeLobby_EventScript_NotEnoughValidMonsLv50
case FRONTIER_LVL_OPEN, BattleFrontier_BattleDomeLobby_EventScript_NotEnoughValidMonsLvOpen
BattleFrontier_BattleDomeLobby_EventScript_249C30:: @ 8249C30
msgbox BattleFrontier_BattleDomeLobby_Text_24A353, MSGBOX_DEFAULT
goto BattleFrontier_BattleDomeLobby_EventScript_249C6C
BattleFrontier_BattleDomeLobby_EventScript_NotEnoughValidMonsLv50:: @ 8249C30
msgbox BattleFrontier_BattleDomeLobby_Text_NotEnoughValidMonsLv50, MSGBOX_DEFAULT
goto BattleFrontier_BattleDomeLobby_EventScript_EndCancelChallenge
BattleFrontier_BattleDomeLobby_EventScript_249C3D:: @ 8249C3D
msgbox BattleFrontier_BattleDomeLobby_Text_24A2AB, MSGBOX_DEFAULT
goto BattleFrontier_BattleDomeLobby_EventScript_249C6C
BattleFrontier_BattleDomeLobby_EventScript_NotEnoughValidMonsLvOpen:: @ 8249C3D
msgbox BattleFrontier_BattleDomeLobby_Text_NotEnoughValidMonsLvOpen, MSGBOX_DEFAULT
goto BattleFrontier_BattleDomeLobby_EventScript_EndCancelChallenge
BattleFrontier_BattleDomeLobby_EventScript_249C4A:: @ 8249C4A
BattleFrontier_BattleDomeLobby_EventScript_CancelChallengeSaveFailed:: @ 8249C4A
frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0
goto BattleFrontier_BattleDomeLobby_EventScript_249C64
goto BattleFrontier_BattleDomeLobby_EventScript_CancelChallenge
BattleFrontier_BattleDomeLobby_EventScript_249C61:: @ 8249C61
BattleFrontier_BattleDomeLobby_EventScript_LoadPartyCancelChallenge:: @ 8249C61
special LoadPlayerParty
BattleFrontier_BattleDomeLobby_EventScript_249C64:: @ 8249C64
msgbox BattleFrontier_BattleDomeLobby_Text_249F74, MSGBOX_DEFAULT
BattleFrontier_BattleDomeLobby_EventScript_249C6C:: @ 8249C6C
BattleFrontier_BattleDomeLobby_EventScript_CancelChallenge:: @ 8249C64
msgbox BattleFrontier_BattleDomeLobby_Text_HopeToSeeYouAgain, MSGBOX_DEFAULT
BattleFrontier_BattleDomeLobby_EventScript_EndCancelChallenge:: @ 8249C6C
release
end
BattleFrontier_BattleDomeLobby_EventScript_249C6E:: @ 8249C6E
BattleFrontier_BattleDomeLobby_EventScript_WalkToDoor:: @ 8249C6E
compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249CDD
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_SinglesAttendantWalkToDoor
compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249CE5
applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeLobby_Movement_249D45
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_DoublesAttendantWalkToDoor
applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeLobby_Movement_WalkToDoor
waitmovement 0
compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D2D
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_OpenSinglesDoor
compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D33
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_OpenDoublesDoor
waitdooranim
compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249CED
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_SinglesAttendantEnterDoor
compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249CF5
applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeLobby_Movement_249D4E
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_DoublesAttendantEnterDoor
applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeLobby_Movement_PlayerEnterDoor
waitmovement 0
compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D39
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_CloseSinglesDoor
compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D3F
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_CloseDoublesDoor
waitdooranim
return
BattleFrontier_BattleDomeLobby_EventScript_249CDD:: @ 8249CDD
applymovement 1, BattleFrontier_BattleDomeLobby_Movement_249D45
BattleFrontier_BattleDomeLobby_EventScript_SinglesAttendantWalkToDoor:: @ 8249CDD
applymovement 1, BattleFrontier_BattleDomeLobby_Movement_WalkToDoor
return
BattleFrontier_BattleDomeLobby_EventScript_249CE5:: @ 8249CE5
applymovement 6, BattleFrontier_BattleDomeLobby_Movement_249D45
BattleFrontier_BattleDomeLobby_EventScript_DoublesAttendantWalkToDoor:: @ 8249CE5
applymovement 6, BattleFrontier_BattleDomeLobby_Movement_WalkToDoor
return
BattleFrontier_BattleDomeLobby_EventScript_249CED:: @ 8249CED
applymovement 1, BattleFrontier_BattleDomeLobby_Movement_249D4B
BattleFrontier_BattleDomeLobby_EventScript_SinglesAttendantEnterDoor:: @ 8249CED
applymovement 1, BattleFrontier_BattleDomeLobby_Movement_AttendantEnterDoor
return
BattleFrontier_BattleDomeLobby_EventScript_249CF5:: @ 8249CF5
applymovement 6, BattleFrontier_BattleDomeLobby_Movement_249D4B
BattleFrontier_BattleDomeLobby_EventScript_DoublesAttendantEnterDoor:: @ 8249CF5
applymovement 6, BattleFrontier_BattleDomeLobby_Movement_AttendantEnterDoor
return
BattleFrontier_BattleDomeLobby_EventScript_249CFD:: @ 8249CFD
msgbox BattleFrontier_BattleDomeLobby_Text_249EB7, MSGBOX_DEFAULT
BattleFrontier_BattleDomeLobby_EventScript_WelcomeSingles:: @ 8249CFD
msgbox BattleFrontier_BattleDomeLobby_Text_WelcomeSingleBattle, MSGBOX_DEFAULT
return
BattleFrontier_BattleDomeLobby_EventScript_249D06:: @ 8249D06
msgbox BattleFrontier_BattleDomeLobby_Text_24A664, MSGBOX_DEFAULT
BattleFrontier_BattleDomeLobby_EventScript_WelcomeDoubles:: @ 8249D06
msgbox BattleFrontier_BattleDomeLobby_Text_WelcomeDoubleBattle, MSGBOX_DEFAULT
return
BattleFrontier_BattleDomeLobby_EventScript_249D0F:: @ 8249D0F
message BattleFrontier_BattleDomeLobby_Text_249F3A
BattleFrontier_BattleDomeLobby_EventScript_TakeSinglesChallenge:: @ 8249D0F
message BattleFrontier_BattleDomeLobby_Text_TakeSinglesChallenge
return
BattleFrontier_BattleDomeLobby_EventScript_249D15:: @ 8249D15
message BattleFrontier_BattleDomeLobby_Text_24A6E7
BattleFrontier_BattleDomeLobby_EventScript_TakeDoublesChallenge:: @ 8249D15
message BattleFrontier_BattleDomeLobby_Text_TakeDoublesChallenge
return
BattleFrontier_BattleDomeLobby_EventScript_249D1B:: @ 8249D1B
msgbox BattleFrontier_BattleDomeLobby_Text_249F8E, MSGBOX_DEFAULT
BattleFrontier_BattleDomeLobby_EventScript_ExplainSinglesChallenge:: @ 8249D1B
msgbox BattleFrontier_BattleDomeLobby_Text_ExplainSinglesChallenge, MSGBOX_DEFAULT
return
BattleFrontier_BattleDomeLobby_EventScript_249D24:: @ 8249D24
msgbox BattleFrontier_BattleDomeLobby_Text_24A721, MSGBOX_DEFAULT
BattleFrontier_BattleDomeLobby_EventScript_ExplainDoublesChallenge:: @ 8249D24
msgbox BattleFrontier_BattleDomeLobby_Text_ExplainDoublesChallenge, MSGBOX_DEFAULT
return
BattleFrontier_BattleDomeLobby_EventScript_249D2D:: @ 8249D2D
BattleFrontier_BattleDomeLobby_EventScript_OpenSinglesDoor:: @ 8249D2D
opendoor 5, 4
return
BattleFrontier_BattleDomeLobby_EventScript_249D33:: @ 8249D33
BattleFrontier_BattleDomeLobby_EventScript_OpenDoublesDoor:: @ 8249D33
opendoor 17, 4
return
BattleFrontier_BattleDomeLobby_EventScript_249D39:: @ 8249D39
BattleFrontier_BattleDomeLobby_EventScript_CloseSinglesDoor:: @ 8249D39
closedoor 5, 4
return
BattleFrontier_BattleDomeLobby_EventScript_249D3F:: @ 8249D3F
BattleFrontier_BattleDomeLobby_EventScript_CloseDoublesDoor:: @ 8249D3F
closedoor 17, 4
return
BattleFrontier_BattleDomeLobby_Movement_249D45: @ 8249D45
BattleFrontier_BattleDomeLobby_Movement_WalkToDoor: @ 8249D45
walk_up
walk_up
walk_up
@@ -330,18 +325,18 @@ BattleFrontier_BattleDomeLobby_Movement_249D45: @ 8249D45
walk_up
step_end
BattleFrontier_BattleDomeLobby_Movement_249D4B: @ 8249D4B
BattleFrontier_BattleDomeLobby_Movement_AttendantEnterDoor: @ 8249D4B
walk_up
set_invisible
step_end
BattleFrontier_BattleDomeLobby_Movement_249D4E: @ 8249D4E
BattleFrontier_BattleDomeLobby_Movement_PlayerEnterDoor: @ 8249D4E
walk_up
walk_up
set_invisible
step_end
BattleFrontier_BattleDomeLobby_EventScript_249D52:: @ 8249D52
BattleFrontier_BattleDomeLobby_EventScript_ShowSinglesResults:: @ 8249D52
lockall
frontier_results FRONTIER_FACILITY_DOME, FRONTIER_MODE_SINGLES
waitbuttonpress
@@ -349,7 +344,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249D52:: @ 8249D52
releaseall
end
BattleFrontier_BattleDomeLobby_EventScript_249D6B:: @ 8249D6B
BattleFrontier_BattleDomeLobby_EventScript_ShowDoublesResults:: @ 8249D6B
lockall
frontier_results FRONTIER_FACILITY_DOME, FRONTIER_MODE_DOUBLES
waitbuttonpress
@@ -357,119 +352,121 @@ BattleFrontier_BattleDomeLobby_EventScript_249D6B:: @ 8249D6B
releaseall
end
BattleFrontier_BattleDomeLobby_EventScript_249D84:: @ 8249D84
dome_get DOME_DATA_9
BattleFrontier_BattleDomeLobby_EventScript_ShowPrevTourneyTree:: @ 8249D84
dome_get DOME_DATA_PREV_TOURNEY_TYPE
compare VAR_RESULT, 0
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249DC9
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsSinglesLv50
compare VAR_RESULT, 1
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249DD2
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsDoublesLv50
compare VAR_RESULT, 2
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249DDB
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsSinglesLvOpen
compare VAR_RESULT, 3
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249DE4
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsDoublesLvOpen
fadescreen FADE_TO_BLACK
dome_showresultstree
dome_showprevtourneytree
waitstate
end
BattleFrontier_BattleDomeLobby_EventScript_249DC9:: @ 8249DC9
msgbox BattleFrontier_BattleDomeLobby_Text_24A966, MSGBOX_SIGN
BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsSinglesLv50:: @ 8249DC9
msgbox BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsSinglesLv50, MSGBOX_SIGN
return
BattleFrontier_BattleDomeLobby_EventScript_249DD2:: @ 8249DD2
msgbox BattleFrontier_BattleDomeLobby_Text_24A9A9, MSGBOX_SIGN
BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsDoublesLv50:: @ 8249DD2
msgbox BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsDoublesLv50, MSGBOX_SIGN
return
BattleFrontier_BattleDomeLobby_EventScript_249DDB:: @ 8249DDB
msgbox BattleFrontier_BattleDomeLobby_Text_24A9EC, MSGBOX_SIGN
BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsSinglesLvOpen:: @ 8249DDB
msgbox BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsSinglesLvOpen, MSGBOX_SIGN
return
BattleFrontier_BattleDomeLobby_EventScript_249DE4:: @ 8249DE4
msgbox BattleFrontier_BattleDomeLobby_Text_24AA31, MSGBOX_SIGN
BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsDoublesLvOpen:: @ 8249DE4
msgbox BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsDoublesLvOpen, MSGBOX_SIGN
return
BattleFrontier_BattleDomeLobby_EventScript_249DED:: @ 8249DED
BattleFrontier_BattleDomeLobby_EventScript_Maniac:: @ 8249DED
dome_getwinnersname
msgbox BattleFrontier_BattleDomeLobby_Text_24AA76, MSGBOX_NPC
msgbox BattleFrontier_BattleDomeLobby_Text_LastWinnerWasTough, MSGBOX_NPC
end
BattleFrontier_BattleDomeLobby_EventScript_249DFE:: @ 8249DFE
msgbox BattleFrontier_BattleDomeLobby_Text_24AB94, MSGBOX_NPC
BattleFrontier_BattleDomeLobby_EventScript_Lass:: @ 8249DFE
msgbox BattleFrontier_BattleDomeLobby_Text_WinnersGainReputation, MSGBOX_NPC
end
BattleFrontier_BattleDomeLobby_EventScript_249E07:: @ 8249E07
msgbox BattleFrontier_BattleDomeLobby_Text_24AC76, MSGBOX_NPC
BattleFrontier_BattleDomeLobby_EventScript_FatMan:: @ 8249E07
msgbox BattleFrontier_BattleDomeLobby_Text_TrashedInFirstRound, MSGBOX_NPC
end
BattleFrontier_BattleDomeLobby_EventScript_249E10:: @ 8249E10
msgbox BattleFrontier_BattleDomeLobby_Text_24ACD3, MSGBOX_NPC
BattleFrontier_BattleDomeLobby_EventScript_Man:: @ 8249E10
msgbox BattleFrontier_BattleDomeLobby_Text_NeedToCheckOpponentCarefully, MSGBOX_NPC
end
@ A few OutsideWest event scripts are inserted here instead, two of which are unused
BattleFrontier_OutsideWest_EventScript_Man3:: @ 8249E19
msgbox BattleFrontier_OutsideWest_Text_24AB06, MSGBOX_NPC
msgbox BattleFrontier_OutsideWest_Text_LongDreamedAboutBattleFrontier, MSGBOX_NPC
end
@ Unused
BattleFrontier_OutsideWest_EventScript_BattleDomeSign2:: @ 8249E22
msgbox BattleFrontier_OutsideWest_Text_BattleDomeSign2, MSGBOX_NPC
end
@ Unused
BattleFrontier_OutsideWest_EventScript_UnderConstructionSign:: @ 8249E2B
msgbox BattleFrontier_OutsideWest_Text_QuestionMarkUnderConstruction, MSGBOX_NPC
end
BattleFrontier_BattleDomeLobby_EventScript_249E34:: @ 8249E34
BattleFrontier_BattleDomeLobby_EventScript_RulesBoard:: @ 8249E34
lockall
msgbox BattleFrontier_BattleDomeLobby_Text_24AE63, MSGBOX_DEFAULT
goto BattleFrontier_BattleDomeLobby_EventScript_249E43
msgbox BattleFrontier_BattleDomeLobby_Text_RulesAreListed, MSGBOX_DEFAULT
goto BattleFrontier_BattleDomeLobby_EventScript_ReadRulesBoard
end
BattleFrontier_BattleDomeLobby_EventScript_249E43:: @ 8249E43
message BattleFrontier_BattleDomeLobby_Text_24AE8B
BattleFrontier_BattleDomeLobby_EventScript_ReadRulesBoard:: @ 8249E43
message BattleFrontier_BattleDomeLobby_Text_ReadWhichHeading
waitmessage
multichoice 17, 4, MULTI_BATTLE_DOME_RULES, 0
switch VAR_RESULT
case 0, BattleFrontier_BattleDomeLobby_EventScript_249E8B
case 1, BattleFrontier_BattleDomeLobby_EventScript_249E99
case 2, BattleFrontier_BattleDomeLobby_EventScript_249EA7
case 3, BattleFrontier_BattleDomeLobby_EventScript_249EB5
case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_249EB5
case 0, BattleFrontier_BattleDomeLobby_EventScript_RulesMatchup
case 1, BattleFrontier_BattleDomeLobby_EventScript_RulesTourneyTree
case 2, BattleFrontier_BattleDomeLobby_EventScript_RulesDoubleKO
case 3, BattleFrontier_BattleDomeLobby_EventScript_ExitRules
case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_ExitRules
end
BattleFrontier_BattleDomeLobby_EventScript_249E8B:: @ 8249E8B
msgbox BattleFrontier_BattleDomeLobby_Text_24AEAE, MSGBOX_DEFAULT
goto BattleFrontier_BattleDomeLobby_EventScript_249E43
BattleFrontier_BattleDomeLobby_EventScript_RulesMatchup:: @ 8249E8B
msgbox BattleFrontier_BattleDomeLobby_Text_ExplainMatchupRules, MSGBOX_DEFAULT
goto BattleFrontier_BattleDomeLobby_EventScript_ReadRulesBoard
end
BattleFrontier_BattleDomeLobby_EventScript_249E99:: @ 8249E99
msgbox BattleFrontier_BattleDomeLobby_Text_24AF4C, MSGBOX_DEFAULT
goto BattleFrontier_BattleDomeLobby_EventScript_249E43
BattleFrontier_BattleDomeLobby_EventScript_RulesTourneyTree:: @ 8249E99
msgbox BattleFrontier_BattleDomeLobby_Text_ExplainTourneyTree, MSGBOX_DEFAULT
goto BattleFrontier_BattleDomeLobby_EventScript_ReadRulesBoard
end
BattleFrontier_BattleDomeLobby_EventScript_249EA7:: @ 8249EA7
msgbox BattleFrontier_BattleDomeLobby_Text_24B073, MSGBOX_DEFAULT
goto BattleFrontier_BattleDomeLobby_EventScript_249E43
BattleFrontier_BattleDomeLobby_EventScript_RulesDoubleKO:: @ 8249EA7
msgbox BattleFrontier_BattleDomeLobby_Text_ExplainDoubleKORules, MSGBOX_DEFAULT
goto BattleFrontier_BattleDomeLobby_EventScript_ReadRulesBoard
end
BattleFrontier_BattleDomeLobby_EventScript_249EB5:: @ 8249EB5
BattleFrontier_BattleDomeLobby_EventScript_ExitRules:: @ 8249EB5
releaseall
end
BattleFrontier_BattleDomeLobby_Text_249EB7: @ 8249EB7
BattleFrontier_BattleDomeLobby_Text_WelcomeSingleBattle: @ 8249EB7
.string "Where the strategies of TRAINERS\n"
.string "are put to the test!\p"
.string "Welcome to the BATTLE DOME!\p"
.string "I am your guide to the SINGLE BATTLE\n"
.string "Tournament.$"
BattleFrontier_BattleDomeLobby_Text_249F3A: @ 8249F3A
BattleFrontier_BattleDomeLobby_Text_TakeSinglesChallenge: @ 8249F3A
.string "Would you like to challenge\n"
.string "the SINGLE BATTLE Tournament?$"
BattleFrontier_BattleDomeLobby_Text_249F74: @ 8249F74
BattleFrontier_BattleDomeLobby_Text_HopeToSeeYouAgain: @ 8249F74
.string "We hope to see you again.$"
BattleFrontier_BattleDomeLobby_Text_249F8E: @ 8249F8E
BattleFrontier_BattleDomeLobby_Text_ExplainSinglesChallenge: @ 8249F8E
.string "The SINGLE BATTLE Tournament\n"
.string "is exactly as the name suggests--\l"
.string "a tournament of SINGLE BATTLES.\p"
@@ -490,20 +487,20 @@ BattleFrontier_BattleDomeLobby_Text_249F8E: @ 8249F8E
.string "If you don't save before interrupting,\n"
.string "you will be disqualified.$"
BattleFrontier_BattleDomeLobby_Text_24A1C6: @ 824A1C6
BattleFrontier_BattleDomeLobby_Text_OkayToSaveBeforeChallenge: @ 824A1C6
.string "Before I show you to the BATTLE DOME,\n"
.string "I must save the data. Is that okay?$"
BattleFrontier_BattleDomeLobby_Text_24A210: @ 824A210
BattleFrontier_BattleDomeLobby_Text_WhichLevelMode: @ 824A210
.string "The tournament offers two levels\n"
.string "of challenge, Level 50 and Open Level.\l"
.string "Which is your choice?$"
BattleFrontier_BattleDomeLobby_Text_24A26E: @ 824A26E
BattleFrontier_BattleDomeLobby_Text_SelectThreeMons: @ 824A26E
.string "Now select the three POKéMON that\n"
.string "you wish to enter, please.$"
BattleFrontier_BattleDomeLobby_Text_24A2AB: @ 824A2AB
BattleFrontier_BattleDomeLobby_Text_NotEnoughValidMonsLvOpen: @ 824A2AB
.string "Excuse me!\p"
.string "You don't have three eligible POKéMON.\p"
.string "Also, the POKéMON must be holding\n"
@@ -511,7 +508,7 @@ BattleFrontier_BattleDomeLobby_Text_24A2AB: @ 824A2AB
.string "EGGS{STR_VAR_1} ineligible.\p"
.string "Please come see me when you are ready.$"
BattleFrontier_BattleDomeLobby_Text_24A353: @ 824A353
BattleFrontier_BattleDomeLobby_Text_NotEnoughValidMonsLv50: @ 824A353
.string "Excuse me!\p"
.string "You don't have three eligible POKéMON.\p"
.string "You must have three different POKéMON\n"
@@ -521,25 +518,27 @@ BattleFrontier_BattleDomeLobby_Text_24A353: @ 824A353
.string "EGGS{STR_VAR_1} ineligible.\p"
.string "Please come see me when you are ready.$"
BattleFrontier_BattleDomeLobby_Text_24A437: @ 824A437
BattleFrontier_BattleDomeLobby_Text_ShowYouToBattleDome: @ 824A437
.string "I will now show you to\n"
.string "the BATTLE DOME.$"
BattleFrontier_BattleDomeLobby_Text_24A45F: @ 824A45F
BattleFrontier_BattleDomeLobby_Text_DidntSaveBeforeQuitting: @ 824A45F
.string "Excuse me!\p"
.string "You didn't save before you quit your\n"
.string "challenge last time.\p"
.string "Because of that, your challenge so far\n"
.string "has been disqualified. Sorry!$"
BattleFrontier_BattleDomeLobby_Text_24A4E9: @ 824A4E9
BattleFrontier_BattleDomeLobby_Text_CongratsForWinningTourney: @ 824A4E9
.string "Congratulations for winning\n"
.string "your Battle Tournament!$"
BattleFrontier_BattleDomeLobby_Text_24A51D: @ 824A51D
@ Unused
BattleFrontier_BattleDomeLobby_Text_HereIsYourPrize: @ 824A51D
.string "Here is your prize for your Battle\n"
.string "Tournament victory.$"
@ Used by Verdanturf Tent
BattleFrontier_BattleDomeLobby_Text_ReceivedPrize: @ 824A554
.string "{PLAYER} received the prize\n"
.string "{STR_VAR_1}.$"
@@ -550,32 +549,32 @@ BattleFrontier_BattleDomeLobby_Text_BagFullMakeRoom: @ 824A56E
.string "Please make room in your BAG, then come\n"
.string "see me.$"
BattleFrontier_BattleDomeLobby_Text_24A5BF: @ 824A5BF
BattleFrontier_BattleDomeLobby_Text_ThankYouForPlaying: @ 824A5BF
.string "Thank you for playing!$"
BattleFrontier_BattleDomeLobby_Text_24A5D6: @ 824A5D6
BattleFrontier_BattleDomeLobby_Text_RecordWillBeSaved: @ 824A5D6
.string "Your record will be saved.\n"
.string "Please wait.$"
BattleFrontier_BattleDomeLobby_Text_24A5FE: @ 824A5FE
BattleFrontier_BattleDomeLobby_Text_WeveBeenWaitingForYou: @ 824A5FE
.string "We've been waiting for you!$"
BattleFrontier_BattleDomeLobby_Text_24A61A: @ 824A61A
BattleFrontier_BattleDomeLobby_Text_OkayToSaveBeforeChallenge2: @ 824A61A
.string "Before I show you to the BATTLE DOME,\n"
.string "I must save the data. Is that okay?$"
BattleFrontier_BattleDomeLobby_Text_24A664: @ 824A664
BattleFrontier_BattleDomeLobby_Text_WelcomeDoubleBattle: @ 824A664
.string "Where the strategies of TRAINERS\n"
.string "are put to the test!\p"
.string "Welcome to the BATTLE DOME!\p"
.string "I am your guide to the DOUBLE BATTLE\n"
.string "Tournament.$"
BattleFrontier_BattleDomeLobby_Text_24A6E7: @ 824A6E7
BattleFrontier_BattleDomeLobby_Text_TakeDoublesChallenge: @ 824A6E7
.string "Would you like to challenge\n"
.string "the DOUBLE BATTLE Tournament?$"
BattleFrontier_BattleDomeLobby_Text_24A721: @ 824A721
BattleFrontier_BattleDomeLobby_Text_ExplainDoublesChallenge: @ 824A721
.string "The DOUBLE BATTLE Tournament\n"
.string "is exactly as the name suggests--\l"
.string "a tournament of DOUBLE BATTLES.\p"
@@ -596,23 +595,23 @@ BattleFrontier_BattleDomeLobby_Text_24A721: @ 824A721
.string "If you don't save before interrupting,\n"
.string "you will be disqualified.$"
BattleFrontier_BattleDomeLobby_Text_24A966: @ 824A966
BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsSinglesLv50: @ 824A966
.string "They're the results of the last\n"
.string "Level 50 SINGLE BATTLE Tournament.$"
BattleFrontier_BattleDomeLobby_Text_24A9A9: @ 824A9A9
BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsDoublesLv50: @ 824A9A9
.string "They're the results of the last\n"
.string "Level 50 DOUBLE BATTLE Tournament.$"
BattleFrontier_BattleDomeLobby_Text_24A9EC: @ 824A9EC
BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsSinglesLvOpen: @ 824A9EC
.string "They're the results of the last\n"
.string "Open Level SINGLE BATTLE Tournament.$"
BattleFrontier_BattleDomeLobby_Text_24AA31: @ 824AA31
BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsDoublesLvOpen: @ 824AA31
.string "They're the results of the last\n"
.string "Open Level DOUBLE BATTLE Tournament.$"
BattleFrontier_BattleDomeLobby_Text_24AA76: @ 824AA76
BattleFrontier_BattleDomeLobby_Text_LastWinnerWasTough: @ 824AA76
.string "Did you see it?\n"
.string "The last Battle Tournament?\p"
.string "The winner, {STR_VAR_1}, was seriously\n"
@@ -620,19 +619,21 @@ BattleFrontier_BattleDomeLobby_Text_24AA76: @ 824AA76
.string "You should check out the results\n"
.string "on the monitor beside the PC.$"
BattleFrontier_OutsideWest_Text_24AB06: @ 824AB06
BattleFrontier_OutsideWest_Text_LongDreamedAboutBattleFrontier: @ 824AB06
.string "The BATTLE FRONTIER…\n"
.string "I've long dreamed about a place like it.$"
@ Functionally unused
BattleFrontier_OutsideWest_Text_BattleDomeSign2: @ 824AB44
.string "The BATTLE DOME\n"
.string "Become the Unbeatable Superstar!$"
@ Functionally unused
BattleFrontier_OutsideWest_Text_QuestionMarkUnderConstruction: @ 824AB75
.string "The ??????\n"
.string "Under Construction!$"
BattleFrontier_BattleDomeLobby_Text_24AB94: @ 824AB94
BattleFrontier_BattleDomeLobby_Text_WinnersGainReputation: @ 824AB94
.string "When a TRAINER chains tournament\n"
.string "wins at the BATTLE DOME, he or she\l"
.string "gains a reputation as a star.\p"
@@ -641,48 +642,48 @@ BattleFrontier_BattleDomeLobby_Text_24AB94: @ 824AB94
.string "A true superstar is a TRAINER who\n"
.string "can keep winning tournaments.$"
BattleFrontier_BattleDomeLobby_Text_24AC76: @ 824AC76
BattleFrontier_BattleDomeLobby_Text_TrashedInFirstRound: @ 824AC76
.string "I ran into one of the tournament\n"
.string "favorites in the very first round.\p"
.string "Of course I got trashed…$"
BattleFrontier_BattleDomeLobby_Text_24ACD3: @ 824ACD3
BattleFrontier_BattleDomeLobby_Text_NeedToCheckOpponentCarefully: @ 824ACD3
.string "I would've won if I'd kept this POKéMON\n"
.string "held in reserve.\p"
.string "You need to check your opponent's\n"
.string "POKéMON carefully before choosing\l"
.string "your battling POKéMON.$"
BattleFrontier_BattleDomeLobby_Text_24AD67: @ 824AD67
BattleFrontier_BattleDomeLobby_Text_CongratsDefeatedTucker: @ 824AD67
.string "Congratulations!\p"
.string "You defeated the DOME ACE and won\n"
.string "the Battle Tournament!$"
BattleFrontier_BattleDomeLobby_Text_24ADB1: @ 824ADB1
BattleFrontier_BattleDomeLobby_Text_AwardTheseBattlePoints: @ 824ADB1
.string "In recognition of your strategy--\n"
.string "a thing of beauty it was, too--\l"
.string "we award you these Battle Point(s)!$"
BattleFrontier_BattleDomeLobby_Text_24AE17: @ 824AE17
BattleFrontier_BattleDomeLobby_Text_RecordLastMatch: @ 824AE17
.string "Would you like to record your\n"
.string "last BATTLE DOME match on your\l"
.string "FRONTIER PASS?$"
BattleFrontier_BattleDomeLobby_Text_24AE63: @ 824AE63
BattleFrontier_BattleDomeLobby_Text_RulesAreListed: @ 824AE63
.string "The Battle Tournament rules\n"
.string "are listed.$"
BattleFrontier_BattleDomeLobby_Text_24AE8B: @ 824AE8B
BattleFrontier_BattleDomeLobby_Text_ReadWhichHeading: @ 824AE8B
.string "Which heading do you want to read?$"
BattleFrontier_BattleDomeLobby_Text_24AEAE: @ 824AEAE
BattleFrontier_BattleDomeLobby_Text_ExplainMatchupRules: @ 824AEAE
.string "The tournament matchups are drawn up\n"
.string "based on the toughness of POKéMON\l"
.string "held by TRAINERS.\p"
.string "The matchups avoid having tough\n"
.string "TRAINERS face each other right away.$"
BattleFrontier_BattleDomeLobby_Text_24AF4C: @ 824AF4C
BattleFrontier_BattleDomeLobby_Text_ExplainTourneyTree: @ 824AF4C
.string "The tournament chart, or as we call it,\n"
.string "the “Tree,” is available for viewing\l"
.string "in the Waiting Room from any guide.\p"
@@ -693,7 +694,7 @@ BattleFrontier_BattleDomeLobby_Text_24AF4C: @ 824AF4C
.string "by TRAINERS, and the battle styles of\l"
.string "TRAINERS.$"
BattleFrontier_BattleDomeLobby_Text_24B073: @ 824B073
BattleFrontier_BattleDomeLobby_Text_ExplainDoubleKORules: @ 824B073
.string "If battling POKéMON faint at the same\n"
.string "time--a double KO--in a tournament\l"
.string "match, the REFEREES will review\l"
@@ -1,92 +1,91 @@
BattleFrontier_BattleDomePreBattleRoom_MapScripts:: @ 824B1F9
map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleDomePreBattleRoom_MapScript2_24B218
map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleDomePreBattleRoom_MapScript2_24B204
map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleDomePreBattleRoom_OnFrame
map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleDomePreBattleRoom_OnWarp
.byte 0
BattleFrontier_BattleDomePreBattleRoom_MapScript2_24B204: @ 824B204
map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B20E
BattleFrontier_BattleDomePreBattleRoom_OnWarp: @ 824B204
map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_TurnPlayerNorth
.2byte 0
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B20E:: @ 824B20E
BattleFrontier_BattleDomePreBattleRoom_EventScript_TurnPlayerNorth:: @ 824B20E
setvar VAR_TEMP_1, 1
turnobject EVENT_OBJ_ID_PLAYER, DIR_NORTH
end
BattleFrontier_BattleDomePreBattleRoom_MapScript2_24B218: @ 824B218
map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B222
BattleFrontier_BattleDomePreBattleRoom_OnFrame: @ 824B218
map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_EnterRoom
.2byte 0
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B222:: @ 824B222
BattleFrontier_BattleDomePreBattleRoom_EventScript_EnterRoom:: @ 824B222
compare VAR_0x8006, 1
goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5C7
goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_ReturnFromBattle
frontier_set FRONTIER_DATA_RECORD_DISABLED, TRUE
setvar VAR_TEMP_0, 1
applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomePreBattleRoom_Movement_24B652
applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomePreBattleRoom_Movement_PlayerEnter
waitmovement 0
lockall
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F:: @ 824B24F
call BattleFrontier_BattleDomePreBattleRoom_EventScript_24B4FB
BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound:: @ 824B24F
call BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForNextRoundMessage
waitmessage
switch VAR_RESULT
switch VAR_RESULT @ No case?
call BattleFrontier_EventScript_GetCantRecordBattle
compare VAR_RESULT, TRUE
goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_24B2C1
goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRoundNoRecord
multichoice 16, 0, MULTI_TOURNEY_WITH_RECORD, 1
switch VAR_RESULT
case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3DD
case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3F5
case 2, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B46D
case 3, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B30D
case 4, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B349
case 5, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B377
case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F
case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowOpponentInfo
case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowTourneyTree
case 2, BattleFrontier_BattleDomePreBattleRoom_EventScript_ContinueChallenge
case 3, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskRecordBattle
case 4, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskPauseChallenge
case 5, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskRetireChallenge
case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B2C1:: @ 824B2C1
BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRoundNoRecord:: @ 824B2C1
multichoice 16, 2, MULTI_TOURNEY_NO_RECORD, 1
switch VAR_RESULT
case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3DD
case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3F5
case 2, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B46D
case 3, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B349
case 4, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B377
case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F
case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowOpponentInfo
case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowTourneyTree
case 2, BattleFrontier_BattleDomePreBattleRoom_EventScript_ContinueChallenge
case 3, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskPauseChallenge
case 4, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskRetireChallenge
case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B30D:: @ 824B30D
message BattleFrontier_BattleDomePreBattleRoom_Text_24BAF7
BattleFrontier_BattleDomePreBattleRoom_EventScript_AskRecordBattle:: @ 824B30D
message BattleFrontier_BattleDomePreBattleRoom_Text_RecordLastMatch
waitmessage
multichoicedefault 20, 8, MULTI_YESNO, 1, 0
switch VAR_RESULT
case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F
case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B33F
case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F
case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound
case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_RecordBattle
case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B33F:: @ 824B33F
BattleFrontier_BattleDomePreBattleRoom_EventScript_RecordBattle:: @ 824B33F
call BattleFrontier_EventScript_SaveBattle
goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F
goto BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B349:: @ 824B349
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24BA69, MSGBOX_YESNO
BattleFrontier_BattleDomePreBattleRoom_EventScript_AskPauseChallenge:: @ 824B349
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_SaveAndQuitGame, MSGBOX_YESNO
switch VAR_RESULT
case NO, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F
case YES, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3BB
case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F
case NO, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound
case YES, BattleFrontier_BattleDomePreBattleRoom_EventScript_PauseChallenge
case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B377:: @ 824B377
message BattleFrontier_BattleDomePreBattleRoom_Text_24BA93
BattleFrontier_BattleDomePreBattleRoom_EventScript_AskRetireChallenge:: @ 824B377
message BattleFrontier_BattleDomePreBattleRoom_Text_RetireYourChallenge
waitmessage
multichoicedefault 20, 8, MULTI_YESNO, 1, 0
switch VAR_RESULT
case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F
case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3A9
case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F
case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound
case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_RetireChallenge
case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3A9:: @ 824B3A9
dome_resolvewinners 9
goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24BE9A
BattleFrontier_BattleDomePreBattleRoom_EventScript_RetireChallenge:: @ 824B3A9
dome_resolvewinners DOME_PLAYER_RETIRED
goto BattleFrontier_BattleDomeBattleRoom_EventScript_WarpToLobbyLost
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3BB:: @ 824B3BB
message BattleFrontier_BattleDomePreBattleRoom_Text_24BAD3
BattleFrontier_BattleDomePreBattleRoom_EventScript_PauseChallenge:: @ 824B3BB
message BattleFrontier_BattleDomePreBattleRoom_Text_SavingDataPleaseWait
waitmessage
dome_save CHALLENGE_STATUS_PAUSED
playse SE_SAVE
@@ -95,70 +94,70 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3BB:: @ 824B3BB
frontier_reset
end
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3DD:: @ 824B3DD
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B9B5, MSGBOX_DEFAULT
BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowOpponentInfo:: @ 824B3DD
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_PlayersNextOpponentIsTrainer, MSGBOX_DEFAULT
fadescreen FADE_TO_BLACK
dome_showopponentinfo
waitstate
goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F
goto BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3F5:: @ 824B3F5
call BattleFrontier_BattleDomePreBattleRoom_EventScript_24B40A
BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowTourneyTree:: @ 824B3F5
call BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowRoundMessage
fadescreen FADE_TO_BLACK
dome_showtourneytree
waitstate
goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F
goto BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B40A:: @ 824B40A
BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowRoundMessage:: @ 824B40A
frontier_get FRONTIER_DATA_BATTLE_NUM
switch VAR_RESULT
case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B449
case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B452
case 2, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B45B
case 3, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B464
case DOME_ROUND1, BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInRound1
case DOME_ROUND2, BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInRound2
case DOME_SEMIFINAL, BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInSemifinals
case DOME_FINAL, BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInFinals
return
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B449:: @ 824B449
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B9D9, MSGBOX_DEFAULT
BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInRound1:: @ 824B449
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInRound1, MSGBOX_DEFAULT
return
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B452:: @ 824B452
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B9FD, MSGBOX_DEFAULT
BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInRound2:: @ 824B452
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInRound2, MSGBOX_DEFAULT
return
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B45B:: @ 824B45B
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24BA21, MSGBOX_DEFAULT
BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInSemifinals:: @ 824B45B
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInSemifinals, MSGBOX_DEFAULT
return
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B464:: @ 824B464
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24BA46, MSGBOX_DEFAULT
BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInFinals:: @ 824B464
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInFinals, MSGBOX_DEFAULT
return
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B46D:: @ 824B46D
message BattleFrontier_BattleDomePreBattleRoom_Text_24B70C
BattleFrontier_BattleDomePreBattleRoom_EventScript_ContinueChallenge:: @ 824B46D
message BattleFrontier_BattleDomePreBattleRoom_Text_ChooseTwoMons
waitmessage
waitbuttonpress
fadescreen FADE_TO_BLACK
call BattleFrontier_EventScript_GetLvlMode
copyvar VAR_0x8004, VAR_RESULT
setvar VAR_0x8005, 2 @ 2 of the 3 party mons are selected for battle
setvar VAR_0x8005, DOME_BATTLE_PARTY_SIZE @ 2 of the 3 party mons are selected for battle
special ChoosePartyForBattleFrontier
waitstate
frontier_resetsketch
compare VAR_RESULT, 0
goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F
dome_set DOME_DATA_8
goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound
dome_set DOME_DATA_SELECTED_MONS
dome_reduceparty
dome_setopponent
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B748, MSGBOX_DEFAULT
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_RightThisWay, MSGBOX_DEFAULT
closemessage
applymovement 1, BattleFrontier_BattleDomePreBattleRoom_Movement_24B64F
applymovement 1, BattleFrontier_BattleDomePreBattleRoom_Movement_AttendantMoveAside
waitmovement 0
applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomePreBattleRoom_Movement_24B657
applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomePreBattleRoom_Movement_PlayerWalkToDoor
waitmovement 0
opendoor 5, 1
waitdooranim
applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomePreBattleRoom_Movement_24B659
applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomePreBattleRoom_Movement_PlayerEnterDoor
waitmovement 0
closedoor 5, 1
waitdooranim
@@ -167,224 +166,229 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B46D:: @ 824B46D
waitstate
end
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B4FB:: @ 824B4FB
BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForNextRoundMessage:: @ 824B4FB
frontier_get FRONTIER_DATA_BATTLE_NUM
switch VAR_RESULT
case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B53A
case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B540
case 2, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B546
case 3, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B54C
case DOME_ROUND1, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForRound1
case DOME_ROUND2, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForRound2
case DOME_SEMIFINAL, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForSemifinals
case DOME_FINAL, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForFinals
return
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B53A:: @ 824B53A
message BattleFrontier_BattleDomePreBattleRoom_Text_24B65C
BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForRound1:: @ 824B53A
message BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForRound1
return
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B540:: @ 824B540
message BattleFrontier_BattleDomePreBattleRoom_Text_24B689
BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForRound2:: @ 824B540
message BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForRound2
return
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B546:: @ 824B546
message BattleFrontier_BattleDomePreBattleRoom_Text_24B6B6
BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForSemifinals:: @ 824B546
message BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForSemifinals
return
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B54C:: @ 824B54C
BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForFinals:: @ 824B54C
frontier_getbrainstatus
switch VAR_RESULT
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
case FRONTIER_BRAIN_SILVER, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerSilver
case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerGold
case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerSilver
case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerGold
message BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForFinals
return
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B58B:: @ 824B58B
goto_if_set FLAG_TEMP_1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5B5
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24BB2E, MSGBOX_DEFAULT
BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerSilver:: @ 824B58B
goto_if_set FLAG_TEMP_1, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerSilverShort
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerSilver, MSGBOX_DEFAULT
setflag FLAG_TEMP_1
return
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5A0:: @ 824B5A0
goto_if_set FLAG_TEMP_1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5BE
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24BBAC, MSGBOX_DEFAULT
BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerGold:: @ 824B5A0
goto_if_set FLAG_TEMP_1, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerGoldShort
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerGold, MSGBOX_DEFAULT
setflag FLAG_TEMP_1
return
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5B5:: @ 824B5B5
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24BC2A, MSGBOX_DEFAULT
BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerSilverShort:: @ 824B5B5
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerSilverShort, MSGBOX_DEFAULT
return
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5BE:: @ 824B5BE
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24BC63, MSGBOX_DEFAULT
BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerGoldShort:: @ 824B5BE
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerGoldShort, MSGBOX_DEFAULT
return
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5C7:: @ 824B5C7
BattleFrontier_BattleDomePreBattleRoom_EventScript_ReturnFromBattle:: @ 824B5C7
setvar VAR_TEMP_0, 1
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B760, MSGBOX_DEFAULT
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_RestoreMonsToFullHealth, MSGBOX_DEFAULT
special LoadPlayerParty
frontier_setpartyorder FRONTIER_PARTY_SIZE
playfanfare MUS_ME_ASA
waitfanfare
special HealPlayerParty
call BattleFrontier_BattleDomePreBattleRoom_EventScript_24B600
call BattleFrontier_BattleDomePreBattleRoom_EventScript_RoundCompleteMessage
fadescreen FADE_TO_BLACK
dome_showstatictourneytree
waitstate
goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F
goto BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B600:: @ 824B600
BattleFrontier_BattleDomePreBattleRoom_EventScript_RoundCompleteMessage:: @ 824B600
frontier_get FRONTIER_DATA_BATTLE_NUM
switch VAR_RESULT
case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B634
case 2, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B63D
case 3, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B646
case DOME_ROUND2, BattleFrontier_BattleDomePreBattleRoom_EventScript_Round1Complete
case DOME_SEMIFINAL, BattleFrontier_BattleDomePreBattleRoom_EventScript_Round2Complete
case DOME_FINAL, BattleFrontier_BattleDomePreBattleRoom_EventScript_SemifinalsComplete
return
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B634:: @ 824B634
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B7A3, MSGBOX_DEFAULT
BattleFrontier_BattleDomePreBattleRoom_EventScript_Round1Complete:: @ 824B634
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_Round1Complete, MSGBOX_DEFAULT
return
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B63D:: @ 824B63D
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B7F1, MSGBOX_DEFAULT
BattleFrontier_BattleDomePreBattleRoom_EventScript_Round2Complete:: @ 824B63D
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_Round2Complete, MSGBOX_DEFAULT
return
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B646:: @ 824B646
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B83F, MSGBOX_DEFAULT
BattleFrontier_BattleDomePreBattleRoom_EventScript_SemifinalsComplete:: @ 824B646
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_SemifinalsComplete, MSGBOX_DEFAULT
return
BattleFrontier_BattleDomePreBattleRoom_Movement_24B64F: @ 824B64F
BattleFrontier_BattleDomePreBattleRoom_Movement_AttendantMoveAside: @ 824B64F
walk_right
face_left
step_end
BattleFrontier_BattleDomePreBattleRoom_Movement_24B652: @ 824B652
BattleFrontier_BattleDomePreBattleRoom_Movement_PlayerEnter: @ 824B652
walk_up
walk_up
walk_up
walk_up
step_end
BattleFrontier_BattleDomePreBattleRoom_Movement_24B657: @ 824B657
BattleFrontier_BattleDomePreBattleRoom_Movement_PlayerWalkToDoor: @ 824B657
walk_up
step_end
BattleFrontier_BattleDomePreBattleRoom_Movement_24B659: @ 824B659
BattleFrontier_BattleDomePreBattleRoom_Movement_PlayerEnterDoor: @ 824B659
walk_up
set_invisible
step_end
BattleFrontier_BattleDomePreBattleRoom_Text_24B65C: @ 824B65C
BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForRound1: @ 824B65C
.string "Your 1st-round match is next.\n"
.string "Are you ready?$"
BattleFrontier_BattleDomePreBattleRoom_Text_24B689: @ 824B689
BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForRound2: @ 824B689
.string "Your 2nd-round match is next.\n"
.string "Are you ready?$"
BattleFrontier_BattleDomePreBattleRoom_Text_24B6B6: @ 824B6B6
BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForSemifinals: @ 824B6B6
.string "Your semifinal match is next.\n"
.string "Are you ready?$"
BattleFrontier_BattleDomePreBattleRoom_Text_24B6E3: @ 824B6E3
BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForFinals: @ 824B6E3
.string "Your final match is next.\n"
.string "Are you ready?$"
BattleFrontier_BattleDomePreBattleRoom_Text_24B70C: @ 824B70C
BattleFrontier_BattleDomePreBattleRoom_Text_ChooseTwoMons: @ 824B70C
.string "Please choose the two POKéMON\n"
.string "that are to appear in battle.$"
BattleFrontier_BattleDomePreBattleRoom_Text_24B748: @ 824B748
BattleFrontier_BattleDomePreBattleRoom_Text_RightThisWay: @ 824B748
.string "Right this way, please.$"
BattleFrontier_BattleDomePreBattleRoom_Text_24B760: @ 824B760
BattleFrontier_BattleDomePreBattleRoom_Text_RestoreMonsToFullHealth: @ 824B760
.string "Thank you for competing!\p"
.string "I'll restore your POKéMON to\n"
.string "full health.$"
BattleFrontier_BattleDomePreBattleRoom_Text_24B7A3: @ 824B7A3
BattleFrontier_BattleDomePreBattleRoom_Text_Round1Complete: @ 824B7A3
.string "All 1st-round matches have been\n"
.string "completed.\p"
.string "These are the teams that advanced!$"
BattleFrontier_BattleDomePreBattleRoom_Text_24B7F1: @ 824B7F1
BattleFrontier_BattleDomePreBattleRoom_Text_Round2Complete: @ 824B7F1
.string "All 2nd-round matches have been\n"
.string "completed.\p"
.string "These are the teams that advanced!$"
BattleFrontier_BattleDomePreBattleRoom_Text_24B83F: @ 824B83F
BattleFrontier_BattleDomePreBattleRoom_Text_SemifinalsComplete: @ 824B83F
.string "All semifinal matches have been\n"
.string "completed.\p"
.string "These are the teams that advanced!$"
BattleFrontier_BattleDomePreBattleRoom_Text_24B88D: @ 824B88D
@ Unused
BattleFrontier_BattleDomePreBattleRoom_Text_CongratsReadyForRound2: @ 824B88D
.string "Congratulations for getting through\n"
.string "the 1st round.\p"
.string "The 2nd round is next.\n"
.string "Are you ready?$"
BattleFrontier_BattleDomePreBattleRoom_Text_24B8E6: @ 824B8E6
@ Unused
BattleFrontier_BattleDomePreBattleRoom_Text_CongratsReadyForSemifinals: @ 824B8E6
.string "Congratulations for advancing\n"
.string "to the semifinals.\p"
.string "The best four teams meet in this round.\n"
.string "Are you ready?$"
BattleFrontier_BattleDomePreBattleRoom_Text_24B94E: @ 824B94E
@ Unused
BattleFrontier_BattleDomePreBattleRoom_Text_CongratsReadyForFinals: @ 824B94E
.string "Congratulations for advancing\n"
.string "to the final match.\p"
.string "You're one win from the championship.\n"
.string "Are you ready?$"
BattleFrontier_BattleDomePreBattleRoom_Text_24B9B5: @ 824B9B5
BattleFrontier_BattleDomePreBattleRoom_Text_PlayersNextOpponentIsTrainer: @ 824B9B5
.string "{PLAYER}'s next opponent\n"
.string "is this TRAINER.$"
BattleFrontier_BattleDomePreBattleRoom_Text_24B9D9: @ 824B9D9
BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInRound1: @ 824B9D9
.string "The tournament is in the 1st round.$"
BattleFrontier_BattleDomePreBattleRoom_Text_24B9FD: @ 824B9FD
BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInRound2: @ 824B9FD
.string "The tournament is in the 2nd round.$"
BattleFrontier_BattleDomePreBattleRoom_Text_24BA21: @ 824BA21
BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInSemifinals: @ 824BA21
.string "The tournament is in the semifinals.$"
BattleFrontier_BattleDomePreBattleRoom_Text_24BA46: @ 824BA46
BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInFinals: @ 824BA46
.string "The tournament is up to the final.$"
BattleFrontier_BattleDomePreBattleRoom_Text_24BA69: @ 824BA69
BattleFrontier_BattleDomePreBattleRoom_Text_SaveAndQuitGame: @ 824BA69
.string "Would you like to save and\n"
.string "quit the game?$"
BattleFrontier_BattleDomePreBattleRoom_Text_24BA93: @ 824BA93
BattleFrontier_BattleDomePreBattleRoom_Text_RetireYourChallenge: @ 824BA93
.string "Would you like to retire from your\n"
.string "Battle Tournament challenge?$"
BattleFrontier_BattleDomePreBattleRoom_Text_24BAD3: @ 824BAD3
BattleFrontier_BattleDomePreBattleRoom_Text_SavingDataPleaseWait: @ 824BAD3
.string "I am saving your data.\n"
.string "Please wait.$"
BattleFrontier_BattleDomePreBattleRoom_Text_24BAF7: @ 824BAF7
BattleFrontier_BattleDomePreBattleRoom_Text_RecordLastMatch: @ 824BAF7
.string "Should I record your last match\n"
.string "on your FRONTIER PASS?$"
BattleFrontier_BattleDomePreBattleRoom_Text_24BB2E: @ 824BB2E
BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerSilver: @ 824BB2E
.string "Congratulations for advancing\n"
.string "to the final match.\p"
.string "For the final match, you will challenge\n"
.string "the DOME ACE TUCKER.\p"
.string "Are you ready?$"
BattleFrontier_BattleDomePreBattleRoom_Text_24BBAC: @ 824BBAC
@ Identical to ReadyForTuckerSilver
BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerGold: @ 824BBAC
.string "Congratulations for advancing\n"
.string "to the final match.\p"
.string "For the final match, you will challenge\n"
.string "the DOME ACE TUCKER.\p"
.string "Are you ready?$"
BattleFrontier_BattleDomePreBattleRoom_Text_24BC2A: @ 824BC2A
BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerSilverShort: @ 824BC2A
.string "Your final battle against TUCKER is\n"
.string "next. Are you ready?$"
BattleFrontier_BattleDomePreBattleRoom_Text_24BC63: @ 824BC63
@ Identical again
BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerGoldShort: @ 824BC63
.string "Your final battle against TUCKER is\n"
.string "next. Are you ready?$"
+2 -2
View File
@@ -13,7 +13,7 @@ Route110_TrickHouseEnd_OnResume: @ 826ACC4
Route110_TrickHouseEnd_OnTransition: @ 826ACD0
setvar VAR_TEMP_1, 0
setvar VAR_TEMP_2, 0
special SetTrickHouseEndRoomFlag
special SetTrickHouseNuggetFlag
end
Route110_TrickHouseEnd_OnWarp: @ 826ACDE
@@ -171,7 +171,7 @@ Route110_TrickHouseEnd_EventScript_CompletedPuzzle8:: @ 826AF28
call_if_eq Route110_TrickHouseEnd_EventScript_NoRoomForTent
msgbox Route110_TrickHouseEnd_Text_LeavingOnJourney, MSGBOX_DEFAULT
call Route110_TrickHouseEnd_EventScript_TrickMasterExit
special ResetTrickHouseEndRoomFlag
special ResetTrickHouseNuggetFlag
release
end
+3 -3
View File
@@ -271,8 +271,8 @@ gSpecials:: @ 81DBA64
def_special RetrieveLotteryNumber
def_special PickLotteryCornerTicket
def_special ShowBerryBlenderRecordWindow
def_special ResetTrickHouseEndRoomFlag
def_special SetTrickHouseEndRoomFlag
def_special ResetTrickHouseNuggetFlag
def_special SetTrickHouseNuggetFlag
def_special ScriptMenu_CreatePCMultichoice
def_special AccessHallOfFamePC
def_special Special_ShowDiploma
@@ -498,7 +498,7 @@ gSpecials:: @ 81DBA64
def_special GetPCBoxToSendMon
def_special ShouldShowBoxWasFullMessage
def_special SetMatchCallRegisteredFlag
def_special sub_8175280
def_special DoConfettiEffect
def_special CreateAbnormalWeatherEvent
def_special GetAbnormalWeatherMapNameAndType
def_special GetMartEmployeeObjectEventId
+114 -114
View File
@@ -1,341 +1,341 @@
gBattleDomeOpponentPotentialText1::
BattleDome_Text_Potential1::
.string "The best candidate to be a champ!$"
gBattleDomeOpponentPotentialText2::
BattleDome_Text_Potential2::
.string "A sure-finalist team.$"
gBattleDomeOpponentPotentialText3::
BattleDome_Text_Potential3::
.string "A likely top-three finisher.$"
gBattleDomeOpponentPotentialText4::
BattleDome_Text_Potential4::
.string "A candidate to finish first.$"
gBattleDomeOpponentPotentialText5::
BattleDome_Text_Potential5::
.string "A team with top-class potential.$"
gBattleDomeOpponentPotentialText6::
BattleDome_Text_Potential6::
.string "The dark horse team this tournament.$"
gBattleDomeOpponentPotentialText7::
BattleDome_Text_Potential7::
.string "A better-than-average team.$"
gBattleDomeOpponentPotentialText8::
BattleDome_Text_Potential8::
.string "This tournament's average team.$"
gBattleDomeOpponentPotentialText9::
BattleDome_Text_Potential9::
.string "A team with average potential.$"
gBattleDomeOpponentPotentialText10::
BattleDome_Text_Potential10::
.string "A weaker-than-average team.$"
gBattleDomeOpponentPotentialText11::
BattleDome_Text_Potential11::
.string "A team looking for its first win.$"
gBattleDomeOpponentPotentialText12::
BattleDome_Text_Potential12::
.string "One win will make this team proud.$"
gBattleDomeOpponentPotentialText13::
BattleDome_Text_Potential13::
.string "Overall, a weak team.$"
gBattleDomeOpponentPotentialText14::
BattleDome_Text_Potential14::
.string "A team with very low potential.$"
gBattleDomeOpponentPotentialText15::
BattleDome_Text_Potential15::
.string "A team unlikely to win the tournament.$"
gBattleDomeOpponentPotentialText16::
BattleDome_Text_Potential16::
.string "The team most unlikely to win.$"
gBattleDomeOpponentPotentialText17::
BattleDome_Text_PotentialDomeAceTucker::
.string "The perfect, invincible superstar!$"
gBattleDomeOpponentStyleText1::
BattleDome_Text_StyleRiskDisaster::
.string "Willing to risk total disaster at times.$"
gBattleDomeOpponentStyleText2::
BattleDome_Text_StyleEndureLongBattles::
.string "Skilled at enduring long battles.$"
gBattleDomeOpponentStyleText3::
BattleDome_Text_StyleVariesTactics::
.string "Varies tactics to suit the opponent.$"
gBattleDomeOpponentStyleText4::
BattleDome_Text_StyleToughWinningPattern::
.string "Has a tough winning pattern.$"
gBattleDomeOpponentStyleText5::
BattleDome_Text_StyleUsesVeryRareMove::
.string "Occasionally uses a very rare move.$"
gBattleDomeOpponentStyleText6::
BattleDome_Text_StyleUsesStartlingMoves::
.string "Uses startling and disruptive moves.$"
gBattleDomeOpponentStyleText7::
BattleDome_Text_StyleConstantlyWatchesHP::
.string "Constantly watches HP in battle.$"
gBattleDomeOpponentStyleText8::
BattleDome_Text_StyleStoresAndLoosesPower::
.string "Good at storing then loosing power.$"
gBattleDomeOpponentStyleText9::
BattleDome_Text_StyleEnfeeblesFoes::
.string "Skilled at enfeebling foes.$"
gBattleDomeOpponentStyleText10::
BattleDome_Text_StylePrefersLuckTactics::
.string "Prefers tactics that rely on luck.$"
gBattleDomeOpponentStyleText11::
BattleDome_Text_StyleRegalAtmosphere::
.string "Attacks with a regal atmosphere.$"
gBattleDomeOpponentStyleText12::
BattleDome_Text_StylePowerfulLowPPMoves::
.string "Attacks with powerful, low-PP moves.$"
gBattleDomeOpponentStyleText13::
BattleDome_Text_StyleEnfeebleThenAttack::
.string "Skilled at enfeebling, then attacking.$"
gBattleDomeOpponentStyleText14::
BattleDome_Text_StyleBattlesWhileEnduring::
.string "Battles while enduring all attacks.$"
gBattleDomeOpponentStyleText15::
BattleDome_Text_StyleUpsetsFoesEmotionally::
.string "Skilled at upsetting foes emotionally.$"
gBattleDomeOpponentStyleText16::
BattleDome_Text_StyleStrongAndStraightforward::
.string "Uses strong and straightforward moves.$"
gBattleDomeOpponentStyleText17::
BattleDome_Text_StyleAggressivelyStrongMoves::
.string "Aggressively uses strong moves.$"
gBattleDomeOpponentStyleText18::
BattleDome_Text_StyleCleverlyDodgesAttacks::
.string "Battles while cleverly dodging attacks.$"
gBattleDomeOpponentStyleText19::
BattleDome_Text_StyleUsesUpsettingMoves::
.string "Skilled at using upsetting attacks.$"
gBattleDomeOpponentStyleText20::
BattleDome_Text_StyleUsesPopularMoves::
.string "Uses many popular moves.$"
gBattleDomeOpponentStyleText21::
BattleDome_Text_StyleHasPowerfulComboMoves::
.string "Has moves for powerful combinations.$"
gBattleDomeOpponentStyleText22::
BattleDome_Text_StyleUsesHighProbabilityMoves::
.string "Uses high-probability attacks.$"
gBattleDomeOpponentStyleText23::
BattleDome_Text_StyleAggressivelySpectacularMoves::
.string "Aggressively uses spectacular moves.$"
gBattleDomeOpponentStyleText24::
BattleDome_Text_StyleEmphasizesOffenseOverDefense::
.string "Emphasizes offense over defense.$"
gBattleDomeOpponentStyleText25::
BattleDome_Text_StyleEmphasizesDefenseOverOffense::
.string "Emphasizes defense over offense.$"
gBattleDomeOpponentStyleText26::
BattleDome_Text_StyleAttacksQuicklyStrongMoves::
.string "Attacks quickly with strong moves.$"
gBattleDomeOpponentStyleText27::
BattleDome_Text_StyleUsesAddedEffectMoves::
.string "Often uses moves with added effects.$"
gBattleDomeOpponentStyleText28::
BattleDome_Text_StyleUsesBalancedMixOfMoves::
.string "Uses a well-balanced mix of moves.$"
gBattleDomeOpponentStyleTextUnused1::
BattleDome_Text_StyleSampleMessage1::
.string "This is sample message 1.$"
gBattleDomeOpponentStyleTextUnused2::
BattleDome_Text_StyleSampleMessage2::
.string "This is sample message 2.$"
gBattleDomeOpponentStyleTextUnused3::
BattleDome_Text_StyleSampleMessage3::
.string "This is sample message 3.$"
gBattleDomeOpponentStyleTextUnused4::
BattleDome_Text_StyleSampleMessage4::
.string "This is sample message 4.$"
gBattleDomeOpponentStatsText1::
BattleDome_Text_EmphasizesHPAndAtk::
.string "Emphasizes HP and ATTACK.$"
gBattleDomeOpponentStatsText2::
BattleDome_Text_EmphasizesHPAndDef::
.string "Emphasizes HP and DEFENSE.$"
gBattleDomeOpponentStatsText3::
BattleDome_Text_EmphasizesHPAndSpeed::
.string "Emphasizes HP and SPEED.$"
gBattleDomeOpponentStatsText4::
BattleDome_Text_EmphasizesHPAndSpAtk::
.string "Emphasizes HP and SP. ATTACK.$"
gBattleDomeOpponentStatsText5::
BattleDome_Text_EmphasizesHPAndSpDef::
.string "Emphasizes HP and SP. DEFENSE.$"
gBattleDomeOpponentStatsText6::
BattleDome_Text_EmphasizesAtkAndDef::
.string "Emphasizes ATTACK and DEFENSE.$"
gBattleDomeOpponentStatsText7::
BattleDome_Text_EmphasizesAtkAndSpeed::
.string "Emphasizes ATTACK and SPEED.$"
gBattleDomeOpponentStatsText8::
BattleDome_Text_EmphasizesAtkAndSpAtk::
.string "Emphasizes ATTACK and SP. ATTACK.$"
gBattleDomeOpponentStatsText9::
BattleDome_Text_EmphasizesAtkAndSpDef::
.string "Emphasizes ATTACK and SP. DEFENSE.$"
gBattleDomeOpponentStatsText10::
BattleDome_Text_EmphasizesDefAndSpeed::
.string "Emphasizes DEFENSE and SPEED.$"
gBattleDomeOpponentStatsText11::
BattleDome_Text_EmphasizesDefAndSpAtk::
.string "Emphasizes DEFENSE and SP. ATTACK.$"
gBattleDomeOpponentStatsText12::
BattleDome_Text_EmphasizesDefAndSpDef::
.string "Emphasizes DEFENSE and SP. DEFENSE.$"
gBattleDomeOpponentStatsText13::
BattleDome_Text_EmphasizesSpeedAndSpAtk::
.string "Emphasizes SPEED and SP. ATTACK.$"
gBattleDomeOpponentStatsText14::
BattleDome_Text_EmphasizesSpeedAndSpDef::
.string "Emphasizes SPEED and SP. DEFENSE.$"
gBattleDomeOpponentStatsText15::
BattleDome_Text_EmphasizesSpAtkAndSpDef::
.string "Emphasizes SP. ATTACK and SP. DEFENSE.$"
gBattleDomeOpponentStatsText16::
BattleDome_Text_EmphasizesHP::
.string "Emphasizes HP.$"
gBattleDomeOpponentStatsText17::
BattleDome_Text_EmphasizesAtk::
.string "Emphasizes ATTACK.$"
gBattleDomeOpponentStatsText18::
BattleDome_Text_EmphasizesDef::
.string "Emphasizes DEFENSE.$"
gBattleDomeOpponentStatsText19::
BattleDome_Text_EmphasizesSpeed::
.string "Emphasizes SPEED.$"
gBattleDomeOpponentStatsText20::
BattleDome_Text_EmphasizesSpAtk::
.string "Emphasizes SP. ATTACK.$"
gBattleDomeOpponentStatsText21::
BattleDome_Text_EmphasizesSpDef::
.string "Emphasizes SP. DEFENSE.$"
gBattleDomeOpponentStatsText22::
BattleDome_Text_NeglectsHPAndAtk::
.string "Neglects HP and ATTACK.$"
gBattleDomeOpponentStatsText23::
BattleDome_Text_NeglectsHPAndDef::
.string "Neglects HP and DEFENSE.$"
gBattleDomeOpponentStatsText24::
BattleDome_Text_NeglectsHPAndSpeed::
.string "Neglects HP and SPEED.$"
gBattleDomeOpponentStatsText25::
BattleDome_Text_NeglectsHPAndSpAtk::
.string "Neglects HP and SP. ATTACK.$"
gBattleDomeOpponentStatsText26::
BattleDome_Text_NeglectsHPAndSpDef::
.string "Neglects HP and SP. DEFENSE.$"
gBattleDomeOpponentStatsText27::
BattleDome_Text_NeglectsAtkAndDef::
.string "Neglects ATTACK and DEFENSE.$"
gBattleDomeOpponentStatsText28::
BattleDome_Text_NeglectsAtkAndSpeed::
.string "Neglects ATTACK and SPEED.$"
gBattleDomeOpponentStatsText29::
BattleDome_Text_NeglectsAtkAndSpAtk::
.string "Neglects ATTACK and SP. ATTACK.$"
gBattleDomeOpponentStatsText30::
BattleDome_Text_NeglectsAtkAndSpDef::
.string "Neglects ATTACK and SP. DEFENSE.$"
gBattleDomeOpponentStatsText31::
BattleDome_Text_NeglectsDefAndSpeed::
.string "Neglects DEFENSE and SPEED.$"
gBattleDomeOpponentStatsText32::
BattleDome_Text_NeglectsDefAndSpAtk::
.string "Neglects DEFENSE and SP. ATTACK.$"
gBattleDomeOpponentStatsText33::
BattleDome_Text_NeglectsDefAndSpDef::
.string "Neglects DEFENSE and SP. DEFENSE.$"
gBattleDomeOpponentStatsText34::
BattleDome_Text_NeglectsSpeedAndSpAtk::
.string "Neglects SPEED and SP. ATTACK.$"
gBattleDomeOpponentStatsText35::
BattleDome_Text_NeglectsSpeedAndSpDef::
.string "Neglects SPEED and SP. DEFENSE.$"
gBattleDomeOpponentStatsText36::
BattleDome_Text_NeglectsSpAtkAndSpDef::
.string "Neglects SP. ATTACK and SP. DEFENSE.$"
gBattleDomeOpponentStatsText37::
BattleDome_Text_NeglectsHP::
.string "Neglects HP.$"
gBattleDomeOpponentStatsText38::
BattleDome_Text_NeglectsAtk::
.string "Neglects ATTACK.$"
gBattleDomeOpponentStatsText39::
BattleDome_Text_NeglectsDef::
.string "Neglects DEFENSE.$"
gBattleDomeOpponentStatsText40::
BattleDome_Text_NeglectsSpeed::
.string "Neglects SPEED.$"
gBattleDomeOpponentStatsText41::
BattleDome_Text_NeglectsSpAtk::
.string "Neglects SP. ATTACK.$"
gBattleDomeOpponentStatsText42::
BattleDome_Text_NeglectsSpDef::
.string "Neglects SP. DEFENSE.$"
gBattleDomeOpponentStatsText43::
BattleDome_Text_RaisesMonsWellBalanced::
.string "Raises POKéMON in a well-balanced way.$"
gBattleDomeWinText1::
BattleDome_Text_LetTheBattleBegin::
.string "Let the battle begin!$"
gBattleDomeWinText2::
BattleDome_Text_TrainerWonUsingMove::
.string "{STR_VAR_1} won using {STR_VAR_2}!$"
gBattleDomeWinText3::
BattleDome_Text_TrainerBecameChamp::
.string "{STR_VAR_1} became the champ!$"
gBattleDomeWinText4::
BattleDome_Text_TrainerWonByDefault::
.string "{STR_VAR_1} won by default!$"
gBattleDomeWinText5::
BattleDome_Text_TrainerWonOutrightByDefault::
.string "{STR_VAR_1} won outright by default!$"
gBattleDomeWinText6::
BattleDome_Text_TrainerWonNoMoves::
.string "{STR_VAR_1} won without using a move!$"
gBattleDomeWinText7::
BattleDome_Text_TrainerWonOutrightNoMoves::
.string "{STR_VAR_1} won outright with no moves!$"
gBattleDomeMatchNumberText1::
BattleDome_Text_Round1Match1::
.string "Round 1, Match 1$"
gBattleDomeMatchNumberText2::
BattleDome_Text_Round1Match2::
.string "Round 1, Match 2$"
gBattleDomeMatchNumberText3::
BattleDome_Text_Round1Match3::
.string "Round 1, Match 3$"
gBattleDomeMatchNumberText4::
BattleDome_Text_Round1Match4::
.string "Round 1, Match 4$"
gBattleDomeMatchNumberText5::
BattleDome_Text_Round1Match5::
.string "Round 1, Match 5$"
gBattleDomeMatchNumberText6::
BattleDome_Text_Round1Match6::
.string "Round 1, Match 6$"
gBattleDomeMatchNumberText7::
BattleDome_Text_Round1Match7::
.string "Round 1, Match 7$"
gBattleDomeMatchNumberText8::
BattleDome_Text_Round1Match8::
.string "Round 1, Match 8$"
gBattleDomeMatchNumberText9::
BattleDome_Text_Round2Match1::
.string "Round 2, Match 1$"
gBattleDomeMatchNumberText10::
BattleDome_Text_Round2Match2::
.string "Round 2, Match 2$"
gBattleDomeMatchNumberText11::
BattleDome_Text_Round2Match3::
.string "Round 2, Match 3$"
gBattleDomeMatchNumberText12::
BattleDome_Text_Round2Match4::
.string "Round 2, Match 4$"
gBattleDomeMatchNumberText13::
BattleDome_Text_SemifinalMatch1::
.string "Semifinal Match 1$"
gBattleDomeMatchNumberText14::
BattleDome_Text_SemifinalMatch2::
.string "Semifinal Match 2$"
gBattleDomeMatchNumberText15::
BattleDome_Text_FinalMatch::
.string "Final Match$"

Before

Width:  |  Height:  |  Size: 576 B

After

Width:  |  Height:  |  Size: 576 B

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

+2 -2
View File
@@ -1,9 +1,9 @@
#ifndef GUARD_BATTLE_DOME_H
#define GUARD_BATTLE_DOME_H
extern u32 gUnknown_0203CD70;
extern u32 gPlayerPartyLostHP;
int GetDomeTrainerMonCountInBits(u16 tournamentTrainerId);
int GetDomeTrainerSelectedMons(u16 tournamentTrainerId);
int TrainerIdToDomeTournamentId(u16 trainerId);
#endif // GUARD_BATTLE_DOME_H
+8 -8
View File
@@ -8,8 +8,8 @@ struct RSBattleTowerRecord
/*0x02*/ u16 winStreak;
/*0x04*/ u8 name[PLAYER_NAME_LENGTH + 1];
/*0x0C*/ u8 trainerId[TRAINER_ID_LENGTH];
/*0x10*/ u16 greeting[6];
/*0x1C*/ struct BattleTowerPokemon party[3];
/*0x10*/ u16 greeting[EASY_CHAT_BATTLE_WORDS_COUNT];
/*0x1C*/ struct BattleTowerPokemon party[FRONTIER_PARTY_SIZE];
/*0xA0*/ u32 checksum;
};
@@ -18,10 +18,10 @@ struct BattleFrontierTrainer
u8 facilityClass;
u8 filler1[3];
u8 trainerName[PLAYER_NAME_LENGTH + 1];
u16 speechBefore[6];
u16 speechWin[6];
u16 speechLose[6];
const u16 *monSets;
u16 speechBefore[EASY_CHAT_BATTLE_WORDS_COUNT];
u16 speechWin[EASY_CHAT_BATTLE_WORDS_COUNT];
u16 speechLose[EASY_CHAT_BATTLE_WORDS_COUNT];
const u16 *monSet;
};
struct FacilityMon
@@ -49,7 +49,7 @@ extern const struct BattleFrontierTrainer *gFacilityTrainers;
extern const struct FacilityMon *gFacilityTrainerMons;
void CallBattleTowerFunc(void);
u16 sub_8162548(u8 challengeNum, u8 battleNum);
u16 GetRandomScaledFrontierTrainerId(u8 challengeNum, u8 battleNum);
void SetBattleFacilityTrainerGfxId(u16 trainerId, u8 tempVarId);
void SetEReaderTrainerGfxId(void);
u8 GetBattleFacilityTrainerGfxId(u16 trainerId);
@@ -59,7 +59,7 @@ u8 GetFrontierOpponentClass(u16 trainerId);
void GetFrontierTrainerName(u8 *dst, u16 trainerId);
void FillFrontierTrainerParty(u8 monsCount);
void FillFrontierTrainersParties(u8 monsCount);
u16 RandomizeFacilityTrainerMonSet(u16 trainerId);
u16 GetRandomFrontierMonFromSet(u16 trainerId);
void FrontierSpeechToString(const u16 *words);
void DoSpecialTrainerBattle(void);
void CalcEmeraldBattleTowerChecksum(struct EmeraldBattleTowerRecord *record);
+133 -15
View File
@@ -1,6 +1,21 @@
#ifndef GUARD_CONSTANTS_BATTLE_DOME_H
#define GUARD_CONSTANTS_BATTLE_DOME_H
#define DOME_ROUND1 0
#define DOME_ROUND2 1
#define DOME_SEMIFINAL 2
#define DOME_FINAL 3
#define DOME_ROUNDS_COUNT 4
//#define DOME_TOURNAMENT_TRAINERS_COUNT 16 -- defined in global
#define DOME_TOURNAMENT_MATCHES_COUNT DOME_TOURNAMENT_TRAINERS_COUNT - 1
#define DOME_BATTLE_PARTY_SIZE 2
#define DOME_PLAYER_WON_MATCH 1
#define DOME_PLAYER_LOST_MATCH 2
#define DOME_PLAYER_RETIRED 9
#define BATTLE_DOME_FUNC_INIT 0
#define BATTLE_DOME_FUNC_GET_DATA 1
#define BATTLE_DOME_FUNC_SET_DATA 2
@@ -9,7 +24,7 @@
#define BATTLE_DOME_FUNC_INIT_OPPONENT_PARTY 5
#define BATTLE_DOME_FUNC_SHOW_OPPONENT_INFO 6
#define BATTLE_DOME_FUNC_SHOW_TOURNEY_TREE 7
#define BATTLE_DOME_FUNC_SHOW_PREV_RESULTS_TREE 8
#define BATTLE_DOME_FUNC_SHOW_PREV_TOURNEY_TREE 8
#define BATTLE_DOME_FUNC_SET_OPPONENT_ID 9
#define BATTLE_DOME_FUNC_SET_OPPONENT_GFX 10
#define BATTLE_DOME_FUNC_SHOW_STATIC_TOURNEY_TREE 11
@@ -22,24 +37,127 @@
#define BATTLE_DOME_FUNC_REDUCE_PARTY 18
#define BATTLE_DOME_FUNC_COMPARE_SEEDS 19
#define BATTLE_DOME_FUNC_GET_WINNER_NAME 20
#define BATTLE_DOME_FUNC_21 21
#define BATTLE_DOME_FUNC_INIT_RESULTS_TREE 21
#define BATTLE_DOME_FUNC_INIT_TRAINERS 22
#define DOME_DATA_WIN_STREAK 0
#define DOME_DATA_WIN_STREAK_ACTIVE 1
#define DOME_DATA_2 2
#define DOME_DATA_3 3
#define DOME_DATA_4 4
#define DOME_DATA_5 5
#define DOME_DATA_6 6
#define DOME_DATA_7 7
#define DOME_DATA_8 8
#define DOME_DATA_9 9
#define DOME_DATA_ATTEMPTED_SINGLES_50 2
#define DOME_DATA_ATTEMPTED_SINGLES_OPEN 3
#define DOME_DATA_HAS_WON_SINGLES_50 4
#define DOME_DATA_HAS_WON_SINGLES_OPEN 5
#define DOME_DATA_ATTEMPTED_CHALLENGE 6
#define DOME_DATA_HAS_WON_CHALLENGE 7
#define DOME_DATA_SELECTED_MONS 8
#define DOME_DATA_PREV_TOURNEY_TYPE 9
// ID for Exit/Cancel on the tourney tree
#define TOURNEY_TREE_CLOSE_BUTTON 31
// Input IDs on the tourney tree
#define TOURNEY_TREE_SELECTED_CLOSE 0
#define TOURNEY_TREE_NO_SELECTION 1
#define TOURNEY_TREE_SELECTED_TRAINER 2
#define TOURNEY_TREE_SELECTED_MATCH 3
// Modes for showing the tourney tree info card
#define INFOCARD_NEXT_OPPONENT 0
#define INFOCARD_TRAINER 1
#define INFOCARD_MATCH 2
// Input IDs for the info cards
#define INFOCARD_INPUT_NONE 0
#define TRAINERCARD_INPUT_UP 1
#define TRAINERCARD_INPUT_DOWN 2
#define TRAINERCARD_INPUT_LEFT 3
#define TRAINERCARD_INPUT_RIGHT 4
#define MATCHCARD_INPUT_UP 5
#define MATCHCARD_INPUT_DOWN 6
#define MATCHCARD_INPUT_LEFT 7
#define MATCHCARD_INPUT_RIGHT 8
#define INFOCARD_INPUT_AB 9
#define CARD_ALTERNATE_SLOT (1 << 0) // When set, uses an alternate slot to store the incoming card sprites
#define MOVE_CARD_RIGHT (1 << 1)
#define MOVE_CARD_DOWN (1 << 2)
#define MOVE_CARD_LEFT (1 << 3)
#define MOVE_CARD_UP (1 << 4)
#define MOVE_CARD (MOVE_CARD_RIGHT | MOVE_CARD_DOWN | MOVE_CARD_LEFT | MOVE_CARD_UP)
// Text IDs for sBattleDomeWinTexts
#define DOME_TEXT_NO_WINNER_YET 0
#define DOME_TEXT_WON_USING_MOVE 1
#define DOME_TEXT_CHAMP_USING_MOVE 2
#define DOME_TEXT_WON_ON_FORFEIT 3
#define DOME_TEXT_CHAMP_ON_FORFEIT 4
#define DOME_TEXT_WON_NO_MOVES 5
#define DOME_TEXT_CHAMP_NO_MOVES 6
// Offsets/start positions within sBattleDomeOpponentStatsTexts
#define DOME_TEXT_TWO_GOOD_STATS 0
#define DOME_TEXT_ONE_GOOD_STAT 15
#define DOME_TEXT_TWO_BAD_STATS 21
#define DOME_TEXT_ONE_BAD_STAT 36
#define DOME_TEXT_WELL_BALANCED 42
#define DOME_TEXT_HP 0
#define DOME_TEXT_ATK 5
#define DOME_TEXT_DEF 9
#define DOME_TEXT_SPEED 12
#define DOME_TEXT_SPATK 14
// Move point indexes for sBattleStyleMovePoints[][], to determine Battle Dome trainers battle styles
#define MOVE_POINTS_COMBO 0 // Moves that work well in combination (e.g. Rain Dance + Hydro Pump)
#define MOVE_POINTS_STAT_RAISE 1
#define MOVE_POINTS_STAT_LOWER 2
#define MOVE_POINTS_RARE 3 // Uncommon moves. Mostly arbitrary
#define MOVE_POINTS_HEAL 4
#define MOVE_POINTS_RISKY 5
#define MOVE_POINTS_STATUS 6
#define MOVE_POINTS_DMG 7
#define MOVE_POINTS_DEF 8 // Defensive moves, like Amnesia, Light Screen, or accuracy-lowers
#define MOVE_POINTS_ACCURATE 9
#define MOVE_POINTS_POWERFUL 10 // Most of the moves that are >= 100 power
#define MOVE_POINTS_POPULAR 11 // Group seems arbitrary. All using it are TM/HMs, but its only 11/58
#define MOVE_POINTS_LUCK 12
#define MOVE_POINTS_STRONG 13 // Most of the moves that are >= 90 power
#define MOVE_POINTS_LOW_PP 14
#define MOVE_POINTS_EFFECT 15 // Moves with additional effects
#define NUM_MOVE_POINT_TYPES 16
// Battle style IDs for sBattleDomeOpponentStyleTexts
#define DOME_BATTLE_STYLE_RISKY 0
#define DOME_BATTLE_STYLE_STALL 1
#define DOME_BATTLE_STYLE_VARIED 2
#define DOME_BATTLE_STYLE_COMBO_HIGH 3
#define DOME_BATTLE_STYLE_RARE_MOVES 4
#define DOME_BATTLE_STYLE_RARE_MOVE 5
#define DOME_BATTLE_STYLE_HP 6
#define DOME_BATTLE_STYLE_STORE_POWER 7
#define DOME_BATTLE_STYLE_ENFEEBLE_LOW 8
#define DOME_BATTLE_STYLE_LUCK 9
#define DOME_BATTLE_STYLE_REGAL 10
#define DOME_BATTLE_STYLE_LOW_PP 11
#define DOME_BATTLE_STYLE_STATUS_ATK 12
#define DOME_BATTLE_STYLE_ENDURE 13
#define DOME_BATTLE_STYLE_STATUS 14
#define DOME_BATTLE_STYLE_STRAIGHTFORWARD 15
#define DOME_BATTLE_STYLE_AGGRESSIVE 16
#define DOME_BATTLE_STYLE_DEF 17
#define DOME_BATTLE_STYLE_ENFEEBLE_HIGH 18
#define DOME_BATTLE_STYLE_POPULAR_POWER 19
#define DOME_BATTLE_STYLE_COMBO_LOW 20
#define DOME_BATTLE_STYLE_ACCURATE 21
#define DOME_BATTLE_STYLE_POWERFUL 22
#define DOME_BATTLE_STYLE_ATK_OVER_DEF 23
#define DOME_BATTLE_STYLE_DEF_OVER_ATK 24
#define DOME_BATTLE_STYLE_POPULAR_STRONG 25
#define DOME_BATTLE_STYLE_EFFECTS 26
#define DOME_BATTLE_STYLE_BALANCED 27
#define DOME_BATTLE_STYLE_UNUSED1 28
#define DOME_BATTLE_STYLE_UNUSED2 29
#define DOME_BATTLE_STYLE_UNUSED3 30
#define DOME_BATTLE_STYLE_UNUSED4 31
#define NUM_BATTLE_STYLES 32
#define DOME_ROUND1 0
#define DOME_ROUND2 1
#define DOME_SEMIFINAL 2
#define DOME_FINAL 3
#define DOME_ROUNDS_COUNT 4
#endif //GUARD_CONSTANTS_BATTLE_DOME_H
+3 -7
View File
@@ -6,9 +6,9 @@
// Battle Frontier facility ids.
#define FRONTIER_FACILITY_TOWER 0
#define FRONTIER_FACILITY_DOME 1
#define FRONTIER_FACILITY_PALACE 2
#define FRONTIER_FACILITY_ARENA 3
#define FRONTIER_FACILITY_FACTORY 4
#define FRONTIER_FACILITY_PALACE 2 // also Verdanturf Tent
#define FRONTIER_FACILITY_ARENA 3 // also Fallarbor Tent
#define FRONTIER_FACILITY_FACTORY 4 // also Slateport Tent
#define FRONTIER_FACILITY_PIKE 5
#define FRONTIER_FACILITY_PYRAMID 6
#define NUM_FRONTIER_FACILITIES 7
@@ -17,10 +17,6 @@
#define FACILITY_UNION_ROOM 8
#define FACILITY_MULTI_OR_EREADER 9 // Direct Corner multi battles, multi battle with Steven, and e-Reader battles
#define TENT_VERDANTURF 2
#define TENT_FALLARBOR 3
#define TENT_SLATEPORT 4
// Battle Frontier lvl modes.
#define FRONTIER_LVL_50 0
#define FRONTIER_LVL_OPEN 1
+899
View File
@@ -0,0 +1,899 @@
#ifndef GUARD_CONSTANTS_BATTLE_FRONTIER_MONS_H
#define GUARD_CONSTANTS_BATTLE_FRONTIER_MONS_H
#define FRONTIER_MON_SUNKERN 0
#define FRONTIER_MON_AZURILL 1
#define FRONTIER_MON_CATERPIE 2
#define FRONTIER_MON_WEEDLE 3
#define FRONTIER_MON_WURMPLE 4
#define FRONTIER_MON_RALTS 5
#define FRONTIER_MON_MAGIKARP 6
#define FRONTIER_MON_FEEBAS 7
#define FRONTIER_MON_METAPOD 8
#define FRONTIER_MON_KAKUNA 9
#define FRONTIER_MON_PICHU 10
#define FRONTIER_MON_SILCOON 11
#define FRONTIER_MON_CASCOON 12
#define FRONTIER_MON_IGGLYBUFF 13
#define FRONTIER_MON_WOOPER 14
#define FRONTIER_MON_TYROGUE 15
#define FRONTIER_MON_SENTRET 16
#define FRONTIER_MON_CLEFFA 17
#define FRONTIER_MON_SEEDOT 18
#define FRONTIER_MON_LOTAD 19
#define FRONTIER_MON_POOCHYENA 20
#define FRONTIER_MON_SHEDINJA 21
#define FRONTIER_MON_MAKUHITA 22
#define FRONTIER_MON_WHISMUR 23
#define FRONTIER_MON_ZIGZAGOON 24
#define FRONTIER_MON_ZUBAT 25
#define FRONTIER_MON_TOGEPI 26
#define FRONTIER_MON_SPINARAK 27
#define FRONTIER_MON_MARILL 28
#define FRONTIER_MON_HOPPIP 29
#define FRONTIER_MON_SLUGMA 30
#define FRONTIER_MON_SWINUB 31
#define FRONTIER_MON_SMEARGLE 32
#define FRONTIER_MON_PIDGEY 33
#define FRONTIER_MON_RATTATA 34
#define FRONTIER_MON_WYNAUT 35
#define FRONTIER_MON_SKITTY 36
#define FRONTIER_MON_SPEAROW 37
#define FRONTIER_MON_HOOTHOOT 38
#define FRONTIER_MON_DIGLETT 39
#define FRONTIER_MON_LEDYBA 40
#define FRONTIER_MON_NINCADA 41
#define FRONTIER_MON_SURSKIT 42
#define FRONTIER_MON_JIGGLYPUFF 43
#define FRONTIER_MON_TAILLOW 44
#define FRONTIER_MON_WINGULL 45
#define FRONTIER_MON_NIDORAN_M 46
#define FRONTIER_MON_NIDORAN_F 47
#define FRONTIER_MON_KIRLIA 48
#define FRONTIER_MON_MAREEP 49
#define FRONTIER_MON_MEDITITE 50
#define FRONTIER_MON_SLAKOTH 51
#define FRONTIER_MON_PARAS 52
#define FRONTIER_MON_EKANS 53
#define FRONTIER_MON_DITTO 54
#define FRONTIER_MON_BARBOACH 55
#define FRONTIER_MON_MEOWTH 56
#define FRONTIER_MON_PINECO 57
#define FRONTIER_MON_TRAPINCH 58
#define FRONTIER_MON_SPHEAL 59
#define FRONTIER_MON_HORSEA 60
#define FRONTIER_MON_SHROOMISH 61
#define FRONTIER_MON_SHUPPET 62
#define FRONTIER_MON_DUSKULL 63
#define FRONTIER_MON_ELECTRIKE 64
#define FRONTIER_MON_VULPIX 65
#define FRONTIER_MON_PIKACHU 66
#define FRONTIER_MON_SANDSHREW 67
#define FRONTIER_MON_POLIWAG 68
#define FRONTIER_MON_BELLSPROUT 69
#define FRONTIER_MON_GEODUDE 70
#define FRONTIER_MON_DRATINI 71
#define FRONTIER_MON_SNUBBULL 72
#define FRONTIER_MON_REMORAID 73
#define FRONTIER_MON_LARVITAR 74
#define FRONTIER_MON_BALTOY 75
#define FRONTIER_MON_SNORUNT 76
#define FRONTIER_MON_BAGON 77
#define FRONTIER_MON_BELDUM 78
#define FRONTIER_MON_GULPIN 79
#define FRONTIER_MON_VENONAT 80
#define FRONTIER_MON_MANKEY 81
#define FRONTIER_MON_MACHOP 82
#define FRONTIER_MON_SHELLDER 83
#define FRONTIER_MON_SMOOCHUM 84
#define FRONTIER_MON_NUMEL 85
#define FRONTIER_MON_CARVANHA 86
#define FRONTIER_MON_CORPHISH 87
#define FRONTIER_MON_CHARMANDER 88
#define FRONTIER_MON_CYNDAQUIL 89
#define FRONTIER_MON_ABRA 90
#define FRONTIER_MON_DODUO 91
#define FRONTIER_MON_GASTLY 92
#define FRONTIER_MON_SWABLU 93
#define FRONTIER_MON_TREECKO 94
#define FRONTIER_MON_TORCHIC 95
#define FRONTIER_MON_MUDKIP 96
#define FRONTIER_MON_SQUIRTLE 97
#define FRONTIER_MON_TOTODILE 98
#define FRONTIER_MON_SLOWPOKE 99
#define FRONTIER_MON_BULBASAUR 100
#define FRONTIER_MON_CHIKORITA 101
#define FRONTIER_MON_ODDISH 102
#define FRONTIER_MON_PSYDUCK 103
#define FRONTIER_MON_CUBONE 104
#define FRONTIER_MON_GOLDEEN 105
#define FRONTIER_MON_NATU 106
#define FRONTIER_MON_CLEFAIRY 107
#define FRONTIER_MON_MAGNEMITE 108
#define FRONTIER_MON_SEEL 109
#define FRONTIER_MON_GRIMER 110
#define FRONTIER_MON_KRABBY 111
#define FRONTIER_MON_EXEGGCUTE 112
#define FRONTIER_MON_EEVEE 113
#define FRONTIER_MON_DROWZEE 114
#define FRONTIER_MON_VOLTORB 115
#define FRONTIER_MON_CHINCHOU 116
#define FRONTIER_MON_TEDDIURSA 117
#define FRONTIER_MON_DELIBIRD 118
#define FRONTIER_MON_HOUNDOUR 119
#define FRONTIER_MON_PHANPY 120
#define FRONTIER_MON_SPOINK 121
#define FRONTIER_MON_ARON 122
#define FRONTIER_MON_LUVDISC 123
#define FRONTIER_MON_TENTACOOL 124
#define FRONTIER_MON_CACNEA 125
#define FRONTIER_MON_UNOWN 126
#define FRONTIER_MON_KOFFING 127
#define FRONTIER_MON_STARYU 128
#define FRONTIER_MON_SKIPLOOM 129
#define FRONTIER_MON_NUZLEAF 130
#define FRONTIER_MON_LOMBRE 131
#define FRONTIER_MON_VIBRAVA 132
#define FRONTIER_MON_RHYHORN 133
#define FRONTIER_MON_CLAMPERL 134
#define FRONTIER_MON_PIDGEOTTO 135
#define FRONTIER_MON_GROWLITHE 136
#define FRONTIER_MON_FARFETCHD 137
#define FRONTIER_MON_OMANYTE 138
#define FRONTIER_MON_KABUTO 139
#define FRONTIER_MON_LILEEP 140
#define FRONTIER_MON_ANORITH 141
#define FRONTIER_MON_AIPOM 142
#define FRONTIER_MON_ELEKID 143
#define FRONTIER_MON_LOUDRED 144
#define FRONTIER_MON_SPINDA 145
#define FRONTIER_MON_NIDORINA 146
#define FRONTIER_MON_NIDORINO 147
#define FRONTIER_MON_FLAAFFY 148
#define FRONTIER_MON_MAGBY 149
#define FRONTIER_MON_NOSEPASS 150
#define FRONTIER_MON_CORSOLA 151
#define FRONTIER_MON_MAWILE 152
#define FRONTIER_MON_BUTTERFREE 153
#define FRONTIER_MON_BEEDRILL 154
#define FRONTIER_MON_POLIWHIRL 155
#define FRONTIER_MON_ONIX 156
#define FRONTIER_MON_BEAUTIFLY 157
#define FRONTIER_MON_DUSTOX 158
#define FRONTIER_MON_LEDIAN 159
#define FRONTIER_MON_ARIADOS 160
#define FRONTIER_MON_YANMA 161
#define FRONTIER_MON_DELCATTY_1 162
#define FRONTIER_MON_SABLEYE_1 163
#define FRONTIER_MON_LICKITUNG_1 164
#define FRONTIER_MON_WEEPINBELL_1 165
#define FRONTIER_MON_GRAVELER_1 166
#define FRONTIER_MON_GLOOM_1 167
#define FRONTIER_MON_PORYGON_1 168
#define FRONTIER_MON_KADABRA_1 169
#define FRONTIER_MON_WAILMER_1 170
#define FRONTIER_MON_ROSELIA_1 171
#define FRONTIER_MON_VOLBEAT_1 172
#define FRONTIER_MON_ILLUMISE_1 173
#define FRONTIER_MON_IVYSAUR_1 174
#define FRONTIER_MON_CHARMELEON_1 175
#define FRONTIER_MON_WARTORTLE_1 176
#define FRONTIER_MON_PARASECT_1 177
#define FRONTIER_MON_MACHOKE_1 178
#define FRONTIER_MON_HAUNTER_1 179
#define FRONTIER_MON_BAYLEEF_1 180
#define FRONTIER_MON_QUILAVA_1 181
#define FRONTIER_MON_CROCONAW_1 182
#define FRONTIER_MON_TOGETIC_1 183
#define FRONTIER_MON_MURKROW_1 184
#define FRONTIER_MON_WOBBUFFET_1 185
#define FRONTIER_MON_PLUSLE_1 186
#define FRONTIER_MON_MINUN_1 187
#define FRONTIER_MON_GROVYLE_1 188
#define FRONTIER_MON_COMBUSKEN_1 189
#define FRONTIER_MON_MARSHTOMP_1 190
#define FRONTIER_MON_PONYTA_1 191
#define FRONTIER_MON_AZUMARILL_1 192
#define FRONTIER_MON_SUDOWOODO_1 193
#define FRONTIER_MON_MAGCARGO_1 194
#define FRONTIER_MON_PUPITAR_1 195
#define FRONTIER_MON_SEALEO_1 196
#define FRONTIER_MON_RATICATE_1 197
#define FRONTIER_MON_MASQUERAIN_1 198
#define FRONTIER_MON_FURRET_1 199
#define FRONTIER_MON_DUNSPARCE_1 200
#define FRONTIER_MON_DRAGONAIR_1 201
#define FRONTIER_MON_MIGHTYENA_1 202
#define FRONTIER_MON_LINOONE_1 203
#define FRONTIER_MON_CASTFORM_1 204
#define FRONTIER_MON_SHELGON_1 205
#define FRONTIER_MON_METANG_1 206
#define FRONTIER_MON_WIGGLYTUFF_1 207
#define FRONTIER_MON_SUNFLORA_1 208
#define FRONTIER_MON_CHIMECHO_1 209
#define FRONTIER_MON_GLIGAR_1 210
#define FRONTIER_MON_QWILFISH_1 211
#define FRONTIER_MON_SNEASEL_1 212
#define FRONTIER_MON_PELIPPER_1 213
#define FRONTIER_MON_SWELLOW_1 214
#define FRONTIER_MON_LAIRON_1 215
#define FRONTIER_MON_TANGELA_1 216
#define FRONTIER_MON_ARBOK_1 217
#define FRONTIER_MON_PERSIAN_1 218
#define FRONTIER_MON_SEADRA_1 219
#define FRONTIER_MON_KECLEON_1 220
#define FRONTIER_MON_VIGOROTH_1 221
#define FRONTIER_MON_LUNATONE_1 222
#define FRONTIER_MON_SOLROCK_1 223
#define FRONTIER_MON_NOCTOWL_1 224
#define FRONTIER_MON_SANDSLASH_1 225
#define FRONTIER_MON_VENOMOTH_1 226
#define FRONTIER_MON_CHANSEY_1 227
#define FRONTIER_MON_SEAKING_1 228
#define FRONTIER_MON_JUMPLUFF_1 229
#define FRONTIER_MON_PILOSWINE_1 230
#define FRONTIER_MON_GOLBAT_1 231
#define FRONTIER_MON_PRIMEAPE_1 232
#define FRONTIER_MON_HITMONLEE_1 233
#define FRONTIER_MON_HITMONCHAN_1 234
#define FRONTIER_MON_GIRAFARIG_1 235
#define FRONTIER_MON_HITMONTOP_1 236
#define FRONTIER_MON_BANETTE_1 237
#define FRONTIER_MON_NINJASK_1 238
#define FRONTIER_MON_SEVIPER_1 239
#define FRONTIER_MON_ZANGOOSE_1 240
#define FRONTIER_MON_CAMERUPT_1 241
#define FRONTIER_MON_SHARPEDO_1 242
#define FRONTIER_MON_TROPIUS_1 243
#define FRONTIER_MON_MAGNETON_1 244
#define FRONTIER_MON_MANTINE_1 245
#define FRONTIER_MON_STANTLER_1 246
#define FRONTIER_MON_ABSOL_1 247
#define FRONTIER_MON_SWALOT_1 248
#define FRONTIER_MON_CRAWDAUNT_1 249
#define FRONTIER_MON_PIDGEOT_1 250
#define FRONTIER_MON_GRUMPIG_1 251
#define FRONTIER_MON_TORKOAL_1 252
#define FRONTIER_MON_KINGLER_1 253
#define FRONTIER_MON_CACTURNE_1 254
#define FRONTIER_MON_BELLOSSOM_1 255
#define FRONTIER_MON_OCTILLERY_1 256
#define FRONTIER_MON_HUNTAIL_1 257
#define FRONTIER_MON_GOREBYSS_1 258
#define FRONTIER_MON_RELICANTH_1 259
#define FRONTIER_MON_OMASTAR_1 260
#define FRONTIER_MON_KABUTOPS_1 261
#define FRONTIER_MON_POLIWRATH_1 262
#define FRONTIER_MON_SCYTHER_1 263
#define FRONTIER_MON_PINSIR_1 264
#define FRONTIER_MON_POLITOED_1 265
#define FRONTIER_MON_CLOYSTER_1 266
#define FRONTIER_MON_DELCATTY_2 267
#define FRONTIER_MON_SABLEYE_2 268
#define FRONTIER_MON_LICKITUNG_2 269
#define FRONTIER_MON_WEEPINBELL_2 270
#define FRONTIER_MON_GRAVELER_2 271
#define FRONTIER_MON_GLOOM_2 272
#define FRONTIER_MON_PORYGON_2 273
#define FRONTIER_MON_KADABRA_2 274
#define FRONTIER_MON_WAILMER_2 275
#define FRONTIER_MON_ROSELIA_2 276
#define FRONTIER_MON_VOLBEAT_2 277
#define FRONTIER_MON_ILLUMISE_2 278
#define FRONTIER_MON_IVYSAUR_2 279
#define FRONTIER_MON_CHARMELEON_2 280
#define FRONTIER_MON_WARTORTLE_2 281
#define FRONTIER_MON_PARASECT_2 282
#define FRONTIER_MON_MACHOKE_2 283
#define FRONTIER_MON_HAUNTER_2 284
#define FRONTIER_MON_BAYLEEF_2 285
#define FRONTIER_MON_QUILAVA_2 286
#define FRONTIER_MON_CROCONAW_2 287
#define FRONTIER_MON_TOGETIC_2 288
#define FRONTIER_MON_MURKROW_2 289
#define FRONTIER_MON_WOBBUFFET_2 290
#define FRONTIER_MON_PLUSLE_2 291
#define FRONTIER_MON_MINUN_2 292
#define FRONTIER_MON_GROVYLE_2 293
#define FRONTIER_MON_COMBUSKEN_2 294
#define FRONTIER_MON_MARSHTOMP_2 295
#define FRONTIER_MON_PONYTA_2 296
#define FRONTIER_MON_AZUMARILL_2 297
#define FRONTIER_MON_SUDOWOODO_2 298
#define FRONTIER_MON_MAGCARGO_2 299
#define FRONTIER_MON_PUPITAR_2 300
#define FRONTIER_MON_SEALEO_2 301
#define FRONTIER_MON_RATICATE_2 302
#define FRONTIER_MON_MASQUERAIN_2 303
#define FRONTIER_MON_FURRET_2 304
#define FRONTIER_MON_DUNSPARCE_2 305
#define FRONTIER_MON_DRAGONAIR_2 306
#define FRONTIER_MON_MIGHTYENA_2 307
#define FRONTIER_MON_LINOONE_2 308
#define FRONTIER_MON_CASTFORM_2 309
#define FRONTIER_MON_SHELGON_2 310
#define FRONTIER_MON_METANG_2 311
#define FRONTIER_MON_WIGGLYTUFF_2 312
#define FRONTIER_MON_SUNFLORA_2 313
#define FRONTIER_MON_CHIMECHO_2 314
#define FRONTIER_MON_GLIGAR_2 315
#define FRONTIER_MON_QWILFISH_2 316
#define FRONTIER_MON_SNEASEL_2 317
#define FRONTIER_MON_PELIPPER_2 318
#define FRONTIER_MON_SWELLOW_2 319
#define FRONTIER_MON_LAIRON_2 320
#define FRONTIER_MON_TANGELA_2 321
#define FRONTIER_MON_ARBOK_2 322
#define FRONTIER_MON_PERSIAN_2 323
#define FRONTIER_MON_SEADRA_2 324
#define FRONTIER_MON_KECLEON_2 325
#define FRONTIER_MON_VIGOROTH_2 326
#define FRONTIER_MON_LUNATONE_2 327
#define FRONTIER_MON_SOLROCK_2 328
#define FRONTIER_MON_NOCTOWL_2 329
#define FRONTIER_MON_SANDSLASH_2 330
#define FRONTIER_MON_VENOMOTH_2 331
#define FRONTIER_MON_CHANSEY_2 332
#define FRONTIER_MON_SEAKING_2 333
#define FRONTIER_MON_JUMPLUFF_2 334
#define FRONTIER_MON_PILOSWINE_2 335
#define FRONTIER_MON_GOLBAT_2 336
#define FRONTIER_MON_PRIMEAPE_2 337
#define FRONTIER_MON_HITMONLEE_2 338
#define FRONTIER_MON_HITMONCHAN_2 339
#define FRONTIER_MON_GIRAFARIG_2 340
#define FRONTIER_MON_HITMONTOP_2 341
#define FRONTIER_MON_BANETTE_2 342
#define FRONTIER_MON_NINJASK_2 343
#define FRONTIER_MON_SEVIPER_2 344
#define FRONTIER_MON_ZANGOOSE_2 345
#define FRONTIER_MON_CAMERUPT_2 346
#define FRONTIER_MON_SHARPEDO_2 347
#define FRONTIER_MON_TROPIUS_2 348
#define FRONTIER_MON_MAGNETON_2 349
#define FRONTIER_MON_MANTINE_2 350
#define FRONTIER_MON_STANTLER_2 351
#define FRONTIER_MON_ABSOL_2 352
#define FRONTIER_MON_SWALOT_2 353
#define FRONTIER_MON_CRAWDAUNT_2 354
#define FRONTIER_MON_PIDGEOT_2 355
#define FRONTIER_MON_GRUMPIG_2 356
#define FRONTIER_MON_TORKOAL_2 357
#define FRONTIER_MON_KINGLER_2 358
#define FRONTIER_MON_CACTURNE_2 359
#define FRONTIER_MON_BELLOSSOM_2 360
#define FRONTIER_MON_OCTILLERY_2 361
#define FRONTIER_MON_HUNTAIL_2 362
#define FRONTIER_MON_GOREBYSS_2 363
#define FRONTIER_MON_RELICANTH_2 364
#define FRONTIER_MON_OMASTAR_2 365
#define FRONTIER_MON_KABUTOPS_2 366
#define FRONTIER_MON_POLIWRATH_2 367
#define FRONTIER_MON_SCYTHER_2 368
#define FRONTIER_MON_PINSIR_2 369
#define FRONTIER_MON_POLITOED_2 370
#define FRONTIER_MON_CLOYSTER_2 371
#define FRONTIER_MON_DUGTRIO_1 372
#define FRONTIER_MON_MEDICHAM_1 373
#define FRONTIER_MON_MISDREAVUS_1 374
#define FRONTIER_MON_FEAROW_1 375
#define FRONTIER_MON_GRANBULL_1 376
#define FRONTIER_MON_JYNX_1 377
#define FRONTIER_MON_DUSCLOPS_1 378
#define FRONTIER_MON_DODRIO_1 379
#define FRONTIER_MON_MR_MIME_1 380
#define FRONTIER_MON_LANTURN_1 381
#define FRONTIER_MON_BRELOOM_1 382
#define FRONTIER_MON_FORRETRESS_1 383
#define FRONTIER_MON_WHISCASH_1 384
#define FRONTIER_MON_XATU_1 385
#define FRONTIER_MON_SKARMORY_1 386
#define FRONTIER_MON_MAROWAK_1 387
#define FRONTIER_MON_QUAGSIRE_1 388
#define FRONTIER_MON_CLEFABLE_1 389
#define FRONTIER_MON_HARIYAMA_1 390
#define FRONTIER_MON_RAICHU_1 391
#define FRONTIER_MON_DEWGONG_1 392
#define FRONTIER_MON_MANECTRIC_1 393
#define FRONTIER_MON_VILEPLUME_1 394
#define FRONTIER_MON_VICTREEBEL_1 395
#define FRONTIER_MON_ELECTRODE_1 396
#define FRONTIER_MON_EXPLOUD_1 397
#define FRONTIER_MON_SHIFTRY_1 398
#define FRONTIER_MON_GLALIE_1 399
#define FRONTIER_MON_LUDICOLO_1 400
#define FRONTIER_MON_HYPNO_1 401
#define FRONTIER_MON_GOLEM_1 402
#define FRONTIER_MON_RHYDON_1 403
#define FRONTIER_MON_ALAKAZAM_1 404
#define FRONTIER_MON_WEEZING_1 405
#define FRONTIER_MON_KANGASKHAN_1 406
#define FRONTIER_MON_ELECTABUZZ_1 407
#define FRONTIER_MON_TAUROS_1 408
#define FRONTIER_MON_SLOWBRO_1 409
#define FRONTIER_MON_SLOWKING_1 410
#define FRONTIER_MON_MILTANK_1 411
#define FRONTIER_MON_ALTARIA_1 412
#define FRONTIER_MON_NIDOQUEEN_1 413
#define FRONTIER_MON_NIDOKING_1 414
#define FRONTIER_MON_MAGMAR_1 415
#define FRONTIER_MON_CRADILY_1 416
#define FRONTIER_MON_ARMALDO_1 417
#define FRONTIER_MON_GOLDUCK_1 418
#define FRONTIER_MON_RAPIDASH_1 419
#define FRONTIER_MON_MUK_1 420
#define FRONTIER_MON_GENGAR_1 421
#define FRONTIER_MON_AMPHAROS_1 422
#define FRONTIER_MON_SCIZOR_1 423
#define FRONTIER_MON_HERACROSS_1 424
#define FRONTIER_MON_URSARING_1 425
#define FRONTIER_MON_HOUNDOOM_1 426
#define FRONTIER_MON_DONPHAN_1 427
#define FRONTIER_MON_CLAYDOL_1 428
#define FRONTIER_MON_WAILORD_1 429
#define FRONTIER_MON_NINETALES_1 430
#define FRONTIER_MON_MACHAMP_1 431
#define FRONTIER_MON_SHUCKLE_1 432
#define FRONTIER_MON_STEELIX_1 433
#define FRONTIER_MON_TENTACRUEL_1 434
#define FRONTIER_MON_AERODACTYL_1 435
#define FRONTIER_MON_PORYGON2_1 436
#define FRONTIER_MON_GARDEVOIR_1 437
#define FRONTIER_MON_EXEGGUTOR_1 438
#define FRONTIER_MON_STARMIE_1 439
#define FRONTIER_MON_FLYGON_1 440
#define FRONTIER_MON_VENUSAUR_1 441
#define FRONTIER_MON_VAPOREON_1 442
#define FRONTIER_MON_JOLTEON_1 443
#define FRONTIER_MON_FLAREON_1 444
#define FRONTIER_MON_MEGANIUM_1 445
#define FRONTIER_MON_ESPEON_1 446
#define FRONTIER_MON_UMBREON_1 447
#define FRONTIER_MON_BLASTOISE_1 448
#define FRONTIER_MON_FERALIGATR_1 449
#define FRONTIER_MON_AGGRON_1 450
#define FRONTIER_MON_BLAZIKEN_1 451
#define FRONTIER_MON_WALREIN_1 452
#define FRONTIER_MON_SCEPTILE_1 453
#define FRONTIER_MON_CHARIZARD_1 454
#define FRONTIER_MON_TYPHLOSION_1 455
#define FRONTIER_MON_LAPRAS_1 456
#define FRONTIER_MON_CROBAT_1 457
#define FRONTIER_MON_SWAMPERT_1 458
#define FRONTIER_MON_GYARADOS_1 459
#define FRONTIER_MON_SNORLAX_1 460
#define FRONTIER_MON_KINGDRA_1 461
#define FRONTIER_MON_BLISSEY_1 462
#define FRONTIER_MON_MILOTIC_1 463
#define FRONTIER_MON_ARCANINE_1 464
#define FRONTIER_MON_SALAMENCE_1 465
#define FRONTIER_MON_METAGROSS_1 466
#define FRONTIER_MON_SLAKING_1 467
#define FRONTIER_MON_DUGTRIO_2 468
#define FRONTIER_MON_MEDICHAM_2 469
#define FRONTIER_MON_MAROWAK_2 470
#define FRONTIER_MON_QUAGSIRE_2 471
#define FRONTIER_MON_MISDREAVUS_2 472
#define FRONTIER_MON_FEAROW_2 473
#define FRONTIER_MON_GRANBULL_2 474
#define FRONTIER_MON_JYNX_2 475
#define FRONTIER_MON_DUSCLOPS_2 476
#define FRONTIER_MON_DODRIO_2 477
#define FRONTIER_MON_MR_MIME_2 478
#define FRONTIER_MON_LANTURN_2 479
#define FRONTIER_MON_BRELOOM_2 480
#define FRONTIER_MON_FORRETRESS_2 481
#define FRONTIER_MON_SKARMORY_2 482
#define FRONTIER_MON_WHISCASH_2 483
#define FRONTIER_MON_XATU_2 484
#define FRONTIER_MON_CLEFABLE_2 485
#define FRONTIER_MON_HARIYAMA_2 486
#define FRONTIER_MON_RAICHU_2 487
#define FRONTIER_MON_DEWGONG_2 488
#define FRONTIER_MON_MANECTRIC_2 489
#define FRONTIER_MON_VILEPLUME_2 490
#define FRONTIER_MON_VICTREEBEL_2 491
#define FRONTIER_MON_ELECTRODE_2 492
#define FRONTIER_MON_EXPLOUD_2 493
#define FRONTIER_MON_SHIFTRY_2 494
#define FRONTIER_MON_GLALIE_2 495
#define FRONTIER_MON_LUDICOLO_2 496
#define FRONTIER_MON_HYPNO_2 497
#define FRONTIER_MON_GOLEM_2 498
#define FRONTIER_MON_RHYDON_2 499
#define FRONTIER_MON_ALAKAZAM_2 500
#define FRONTIER_MON_WEEZING_2 501
#define FRONTIER_MON_KANGASKHAN_2 502
#define FRONTIER_MON_ELECTABUZZ_2 503
#define FRONTIER_MON_TAUROS_2 504
#define FRONTIER_MON_SLOWBRO_2 505
#define FRONTIER_MON_SLOWKING_2 506
#define FRONTIER_MON_MILTANK_2 507
#define FRONTIER_MON_ALTARIA_2 508
#define FRONTIER_MON_NIDOQUEEN_2 509
#define FRONTIER_MON_NIDOKING_2 510
#define FRONTIER_MON_MAGMAR_2 511
#define FRONTIER_MON_CRADILY_2 512
#define FRONTIER_MON_ARMALDO_2 513
#define FRONTIER_MON_GOLDUCK_2 514
#define FRONTIER_MON_RAPIDASH_2 515
#define FRONTIER_MON_MUK_2 516
#define FRONTIER_MON_GENGAR_2 517
#define FRONTIER_MON_AMPHAROS_2 518
#define FRONTIER_MON_SCIZOR_2 519
#define FRONTIER_MON_HERACROSS_2 520
#define FRONTIER_MON_URSARING_2 521
#define FRONTIER_MON_HOUNDOOM_2 522
#define FRONTIER_MON_DONPHAN_2 523
#define FRONTIER_MON_CLAYDOL_2 524
#define FRONTIER_MON_WAILORD_2 525
#define FRONTIER_MON_NINETALES_2 526
#define FRONTIER_MON_MACHAMP_2 527
#define FRONTIER_MON_SHUCKLE_2 528
#define FRONTIER_MON_STEELIX_2 529
#define FRONTIER_MON_TENTACRUEL_2 530
#define FRONTIER_MON_AERODACTYL_2 531
#define FRONTIER_MON_PORYGON2_2 532
#define FRONTIER_MON_GARDEVOIR_2 533
#define FRONTIER_MON_EXEGGUTOR_2 534
#define FRONTIER_MON_STARMIE_2 535
#define FRONTIER_MON_FLYGON_2 536
#define FRONTIER_MON_VENUSAUR_2 537
#define FRONTIER_MON_VAPOREON_2 538
#define FRONTIER_MON_JOLTEON_2 539
#define FRONTIER_MON_FLAREON_2 540
#define FRONTIER_MON_MEGANIUM_2 541
#define FRONTIER_MON_ESPEON_2 542
#define FRONTIER_MON_UMBREON_2 543
#define FRONTIER_MON_BLASTOISE_2 544
#define FRONTIER_MON_FERALIGATR_2 545
#define FRONTIER_MON_AGGRON_2 546
#define FRONTIER_MON_BLAZIKEN_2 547
#define FRONTIER_MON_WALREIN_2 548
#define FRONTIER_MON_SCEPTILE_2 549
#define FRONTIER_MON_CHARIZARD_2 550
#define FRONTIER_MON_TYPHLOSION_2 551
#define FRONTIER_MON_LAPRAS_2 552
#define FRONTIER_MON_CROBAT_2 553
#define FRONTIER_MON_SWAMPERT_2 554
#define FRONTIER_MON_GYARADOS_2 555
#define FRONTIER_MON_SNORLAX_2 556
#define FRONTIER_MON_KINGDRA_2 557
#define FRONTIER_MON_BLISSEY_2 558
#define FRONTIER_MON_MILOTIC_2 559
#define FRONTIER_MON_ARCANINE_2 560
#define FRONTIER_MON_SALAMENCE_2 561
#define FRONTIER_MON_METAGROSS_2 562
#define FRONTIER_MON_SLAKING_2 563
#define FRONTIER_MON_DUGTRIO_3 564
#define FRONTIER_MON_MEDICHAM_3 565
#define FRONTIER_MON_MISDREAVUS_3 566
#define FRONTIER_MON_FEAROW_3 567
#define FRONTIER_MON_GRANBULL_3 568
#define FRONTIER_MON_JYNX_3 569
#define FRONTIER_MON_DUSCLOPS_3 570
#define FRONTIER_MON_DODRIO_3 571
#define FRONTIER_MON_MR_MIME_3 572
#define FRONTIER_MON_LANTURN_3 573
#define FRONTIER_MON_BRELOOM_3 574
#define FRONTIER_MON_FORRETRESS_3 575
#define FRONTIER_MON_WHISCASH_3 576
#define FRONTIER_MON_XATU_3 577
#define FRONTIER_MON_SKARMORY_3 578
#define FRONTIER_MON_MAROWAK_3 579
#define FRONTIER_MON_QUAGSIRE_3 580
#define FRONTIER_MON_CLEFABLE_3 581
#define FRONTIER_MON_HARIYAMA_3 582
#define FRONTIER_MON_RAICHU_3 583
#define FRONTIER_MON_DEWGONG_3 584
#define FRONTIER_MON_MANECTRIC_3 585
#define FRONTIER_MON_VILEPLUME_3 586
#define FRONTIER_MON_VICTREEBEL_3 587
#define FRONTIER_MON_ELECTRODE_3 588
#define FRONTIER_MON_EXPLOUD_3 589
#define FRONTIER_MON_SHIFTRY_3 590
#define FRONTIER_MON_GLALIE_3 591
#define FRONTIER_MON_LUDICOLO_3 592
#define FRONTIER_MON_HYPNO_3 593
#define FRONTIER_MON_GOLEM_3 594
#define FRONTIER_MON_RHYDON_3 595
#define FRONTIER_MON_ALAKAZAM_3 596
#define FRONTIER_MON_WEEZING_3 597
#define FRONTIER_MON_KANGASKHAN_3 598
#define FRONTIER_MON_ELECTABUZZ_3 599
#define FRONTIER_MON_TAUROS_3 600
#define FRONTIER_MON_SLOWBRO_3 601
#define FRONTIER_MON_SLOWKING_3 602
#define FRONTIER_MON_MILTANK_3 603
#define FRONTIER_MON_ALTARIA_3 604
#define FRONTIER_MON_NIDOQUEEN_3 605
#define FRONTIER_MON_NIDOKING_3 606
#define FRONTIER_MON_MAGMAR_3 607
#define FRONTIER_MON_CRADILY_3 608
#define FRONTIER_MON_ARMALDO_3 609
#define FRONTIER_MON_GOLDUCK_3 610
#define FRONTIER_MON_RAPIDASH_3 611
#define FRONTIER_MON_MUK_3 612
#define FRONTIER_MON_GENGAR_3 613
#define FRONTIER_MON_AMPHAROS_3 614
#define FRONTIER_MON_SCIZOR_3 615
#define FRONTIER_MON_HERACROSS_3 616
#define FRONTIER_MON_URSARING_3 617
#define FRONTIER_MON_HOUNDOOM_3 618
#define FRONTIER_MON_DONPHAN_3 619
#define FRONTIER_MON_CLAYDOL_3 620
#define FRONTIER_MON_WAILORD_3 621
#define FRONTIER_MON_NINETALES_3 622
#define FRONTIER_MON_MACHAMP_3 623
#define FRONTIER_MON_SHUCKLE_3 624
#define FRONTIER_MON_STEELIX_3 625
#define FRONTIER_MON_TENTACRUEL_3 626
#define FRONTIER_MON_AERODACTYL_3 627
#define FRONTIER_MON_PORYGON2_3 628
#define FRONTIER_MON_GARDEVOIR_3 629
#define FRONTIER_MON_EXEGGUTOR_3 630
#define FRONTIER_MON_STARMIE_3 631
#define FRONTIER_MON_FLYGON_3 632
#define FRONTIER_MON_VENUSAUR_3 633
#define FRONTIER_MON_VAPOREON_3 634
#define FRONTIER_MON_JOLTEON_3 635
#define FRONTIER_MON_FLAREON_3 636
#define FRONTIER_MON_MEGANIUM_3 637
#define FRONTIER_MON_ESPEON_3 638
#define FRONTIER_MON_UMBREON_3 639
#define FRONTIER_MON_BLASTOISE_3 640
#define FRONTIER_MON_FERALIGATR_3 641
#define FRONTIER_MON_AGGRON_3 642
#define FRONTIER_MON_BLAZIKEN_3 643
#define FRONTIER_MON_WALREIN_3 644
#define FRONTIER_MON_SCEPTILE_3 645
#define FRONTIER_MON_CHARIZARD_3 646
#define FRONTIER_MON_TYPHLOSION_3 647
#define FRONTIER_MON_LAPRAS_3 648
#define FRONTIER_MON_CROBAT_3 649
#define FRONTIER_MON_SWAMPERT_3 650
#define FRONTIER_MON_GYARADOS_3 651
#define FRONTIER_MON_SNORLAX_3 652
#define FRONTIER_MON_KINGDRA_3 653
#define FRONTIER_MON_BLISSEY_3 654
#define FRONTIER_MON_MILOTIC_3 655
#define FRONTIER_MON_ARCANINE_3 656
#define FRONTIER_MON_SALAMENCE_3 657
#define FRONTIER_MON_METAGROSS_3 658
#define FRONTIER_MON_SLAKING_3 659
#define FRONTIER_MON_DUGTRIO_4 660
#define FRONTIER_MON_MEDICHAM_4 661
#define FRONTIER_MON_MISDREAVUS_4 662
#define FRONTIER_MON_FEAROW_4 663
#define FRONTIER_MON_GRANBULL_4 664
#define FRONTIER_MON_JYNX_4 665
#define FRONTIER_MON_DUSCLOPS_4 666
#define FRONTIER_MON_DODRIO_4 667
#define FRONTIER_MON_MR_MIME_4 668
#define FRONTIER_MON_LANTURN_4 669
#define FRONTIER_MON_BRELOOM_4 670
#define FRONTIER_MON_FORRETRESS_4 671
#define FRONTIER_MON_WHISCASH_4 672
#define FRONTIER_MON_XATU_4 673
#define FRONTIER_MON_SKARMORY_4 674
#define FRONTIER_MON_MAROWAK_4 675
#define FRONTIER_MON_QUAGSIRE_4 676
#define FRONTIER_MON_CLEFABLE_4 677
#define FRONTIER_MON_HARIYAMA_4 678
#define FRONTIER_MON_RAICHU_4 679
#define FRONTIER_MON_DEWGONG_4 680
#define FRONTIER_MON_MANECTRIC_4 681
#define FRONTIER_MON_VILEPLUME_4 682
#define FRONTIER_MON_VICTREEBEL_4 683
#define FRONTIER_MON_ELECTRODE_4 684
#define FRONTIER_MON_EXPLOUD_4 685
#define FRONTIER_MON_SHIFTRY_4 686
#define FRONTIER_MON_GLALIE_4 687
#define FRONTIER_MON_LUDICOLO_4 688
#define FRONTIER_MON_HYPNO_4 689
#define FRONTIER_MON_GOLEM_4 690
#define FRONTIER_MON_RHYDON_4 691
#define FRONTIER_MON_ALAKAZAM_4 692
#define FRONTIER_MON_WEEZING_4 693
#define FRONTIER_MON_KANGASKHAN_4 694
#define FRONTIER_MON_ELECTABUZZ_4 695
#define FRONTIER_MON_TAUROS_4 696
#define FRONTIER_MON_SLOWBRO_4 697
#define FRONTIER_MON_SLOWKING_4 698
#define FRONTIER_MON_MILTANK_4 699
#define FRONTIER_MON_ALTARIA_4 700
#define FRONTIER_MON_NIDOQUEEN_4 701
#define FRONTIER_MON_NIDOKING_4 702
#define FRONTIER_MON_MAGMAR_4 703
#define FRONTIER_MON_CRADILY_4 704
#define FRONTIER_MON_ARMALDO_4 705
#define FRONTIER_MON_GOLDUCK_4 706
#define FRONTIER_MON_RAPIDASH_4 707
#define FRONTIER_MON_MUK_4 708
#define FRONTIER_MON_GENGAR_4 709
#define FRONTIER_MON_AMPHAROS_4 710
#define FRONTIER_MON_SCIZOR_4 711
#define FRONTIER_MON_HERACROSS_4 712
#define FRONTIER_MON_URSARING_4 713
#define FRONTIER_MON_HOUNDOOM_4 714
#define FRONTIER_MON_DONPHAN_4 715
#define FRONTIER_MON_CLAYDOL_4 716
#define FRONTIER_MON_WAILORD_4 717
#define FRONTIER_MON_NINETALES_4 718
#define FRONTIER_MON_MACHAMP_4 719
#define FRONTIER_MON_SHUCKLE_4 720
#define FRONTIER_MON_STEELIX_4 721
#define FRONTIER_MON_TENTACRUEL_4 722
#define FRONTIER_MON_AERODACTYL_4 723
#define FRONTIER_MON_PORYGON2_4 724
#define FRONTIER_MON_GARDEVOIR_4 725
#define FRONTIER_MON_EXEGGUTOR_4 726
#define FRONTIER_MON_STARMIE_4 727
#define FRONTIER_MON_FLYGON_4 728
#define FRONTIER_MON_VENUSAUR_4 729
#define FRONTIER_MON_VAPOREON_4 730
#define FRONTIER_MON_JOLTEON_4 731
#define FRONTIER_MON_FLAREON_4 732
#define FRONTIER_MON_MEGANIUM_4 733
#define FRONTIER_MON_ESPEON_4 734
#define FRONTIER_MON_UMBREON_4 735
#define FRONTIER_MON_BLASTOISE_4 736
#define FRONTIER_MON_FERALIGATR_4 737
#define FRONTIER_MON_AGGRON_4 738
#define FRONTIER_MON_BLAZIKEN_4 739
#define FRONTIER_MON_WALREIN_4 740
#define FRONTIER_MON_SCEPTILE_4 741
#define FRONTIER_MON_CHARIZARD_4 742
#define FRONTIER_MON_TYPHLOSION_4 743
#define FRONTIER_MON_LAPRAS_4 744
#define FRONTIER_MON_CROBAT_4 745
#define FRONTIER_MON_SWAMPERT_4 746
#define FRONTIER_MON_GYARADOS_4 747
#define FRONTIER_MON_SNORLAX_4 748
#define FRONTIER_MON_KINGDRA_4 749
#define FRONTIER_MON_BLISSEY_4 750
#define FRONTIER_MON_MILOTIC_4 751
#define FRONTIER_MON_ARCANINE_4 752
#define FRONTIER_MON_SALAMENCE_4 753
#define FRONTIER_MON_METAGROSS_4 754
#define FRONTIER_MON_SLAKING_4 755
#define FRONTIER_MON_ARTICUNO_1 756
#define FRONTIER_MON_ZAPDOS_1 757
#define FRONTIER_MON_MOLTRES_1 758
#define FRONTIER_MON_RAIKOU_1 759
#define FRONTIER_MON_ENTEI_1 760
#define FRONTIER_MON_SUICUNE_1 761
#define FRONTIER_MON_REGIROCK_1 762
#define FRONTIER_MON_REGICE_1 763
#define FRONTIER_MON_REGISTEEL_1 764
#define FRONTIER_MON_LATIAS_1 765
#define FRONTIER_MON_LATIOS_1 766
#define FRONTIER_MON_ARTICUNO_2 767
#define FRONTIER_MON_ZAPDOS_2 768
#define FRONTIER_MON_MOLTRES_2 769
#define FRONTIER_MON_RAIKOU_2 770
#define FRONTIER_MON_ENTEI_2 771
#define FRONTIER_MON_SUICUNE_2 772
#define FRONTIER_MON_REGIROCK_2 773
#define FRONTIER_MON_REGICE_2 774
#define FRONTIER_MON_REGISTEEL_2 775
#define FRONTIER_MON_LATIAS_2 776
#define FRONTIER_MON_LATIOS_2 777
#define FRONTIER_MON_ARTICUNO_3 778
#define FRONTIER_MON_ZAPDOS_3 779
#define FRONTIER_MON_MOLTRES_3 780
#define FRONTIER_MON_RAIKOU_3 781
#define FRONTIER_MON_ENTEI_3 782
#define FRONTIER_MON_SUICUNE_3 783
#define FRONTIER_MON_REGIROCK_3 784
#define FRONTIER_MON_REGICE_3 785
#define FRONTIER_MON_REGISTEEL_3 786
#define FRONTIER_MON_LATIAS_3 787
#define FRONTIER_MON_LATIOS_3 788
#define FRONTIER_MON_ARTICUNO_4 789
#define FRONTIER_MON_ZAPDOS_4 790
#define FRONTIER_MON_MOLTRES_4 791
#define FRONTIER_MON_RAIKOU_4 792
#define FRONTIER_MON_ENTEI_4 793
#define FRONTIER_MON_SUICUNE_4 794
#define FRONTIER_MON_REGIROCK_4 795
#define FRONTIER_MON_REGICE_4 796
#define FRONTIER_MON_REGISTEEL_4 797
#define FRONTIER_MON_LATIAS_4 798
#define FRONTIER_MON_LATIOS_4 799
#define FRONTIER_MON_GENGAR_5 800
#define FRONTIER_MON_GENGAR_6 801
#define FRONTIER_MON_GENGAR_7 802
#define FRONTIER_MON_GENGAR_8 803
#define FRONTIER_MON_URSARING_5 804
#define FRONTIER_MON_URSARING_6 805
#define FRONTIER_MON_URSARING_7 806
#define FRONTIER_MON_URSARING_8 807
#define FRONTIER_MON_MACHAMP_5 808
#define FRONTIER_MON_MACHAMP_6 809
#define FRONTIER_MON_MACHAMP_7 810
#define FRONTIER_MON_MACHAMP_8 811
#define FRONTIER_MON_GARDEVOIR_5 812
#define FRONTIER_MON_GARDEVOIR_6 813
#define FRONTIER_MON_GARDEVOIR_7 814
#define FRONTIER_MON_GARDEVOIR_8 815
#define FRONTIER_MON_STARMIE_5 816
#define FRONTIER_MON_STARMIE_6 817
#define FRONTIER_MON_STARMIE_7 818
#define FRONTIER_MON_STARMIE_8 819
#define FRONTIER_MON_LAPRAS_5 820
#define FRONTIER_MON_LAPRAS_6 821
#define FRONTIER_MON_LAPRAS_7 822
#define FRONTIER_MON_LAPRAS_8 823
#define FRONTIER_MON_SNORLAX_5 824
#define FRONTIER_MON_SNORLAX_6 825
#define FRONTIER_MON_SNORLAX_7 826
#define FRONTIER_MON_SNORLAX_8 827
#define FRONTIER_MON_SALAMENCE_5 828
#define FRONTIER_MON_SALAMENCE_6 829
#define FRONTIER_MON_SALAMENCE_7 830
#define FRONTIER_MON_SALAMENCE_8 831
#define FRONTIER_MON_METAGROSS_5 832
#define FRONTIER_MON_METAGROSS_6 833
#define FRONTIER_MON_METAGROSS_7 834
#define FRONTIER_MON_METAGROSS_8 835
#define FRONTIER_MON_REGIROCK_5 836
#define FRONTIER_MON_REGIROCK_6 837
#define FRONTIER_MON_REGICE_5 838
#define FRONTIER_MON_REGICE_6 839
#define FRONTIER_MON_REGISTEEL_5 840
#define FRONTIER_MON_REGISTEEL_6 841
#define FRONTIER_MON_LATIAS_5 842
#define FRONTIER_MON_LATIAS_6 843
#define FRONTIER_MON_LATIAS_7 844
#define FRONTIER_MON_LATIAS_8 845
#define FRONTIER_MON_LATIOS_5 846
#define FRONTIER_MON_LATIOS_6 847
#define FRONTIER_MON_LATIOS_7 848
#define FRONTIER_MON_LATIOS_8 849
#define FRONTIER_MONS_HIGH_TIER 849 // Mons above this point can only appear > level 50
#define FRONTIER_MON_DRAGONITE_1 850
#define FRONTIER_MON_DRAGONITE_2 851
#define FRONTIER_MON_DRAGONITE_3 852
#define FRONTIER_MON_DRAGONITE_4 853
#define FRONTIER_MON_DRAGONITE_5 854
#define FRONTIER_MON_DRAGONITE_6 855
#define FRONTIER_MON_DRAGONITE_7 856
#define FRONTIER_MON_DRAGONITE_8 857
#define FRONTIER_MON_DRAGONITE_9 858
#define FRONTIER_MON_DRAGONITE_10 859
#define FRONTIER_MON_TYRANITAR_1 860
#define FRONTIER_MON_TYRANITAR_2 861
#define FRONTIER_MON_TYRANITAR_3 862
#define FRONTIER_MON_TYRANITAR_4 863
#define FRONTIER_MON_TYRANITAR_5 864
#define FRONTIER_MON_TYRANITAR_6 865
#define FRONTIER_MON_TYRANITAR_7 866
#define FRONTIER_MON_TYRANITAR_8 867
#define FRONTIER_MON_TYRANITAR_9 868
#define FRONTIER_MON_TYRANITAR_10 869
#define FRONTIER_MON_ARTICUNO_5 870
#define FRONTIER_MON_ARTICUNO_6 871
#define FRONTIER_MON_ZAPDOS_5 872
#define FRONTIER_MON_ZAPDOS_6 873
#define FRONTIER_MON_MOLTRES_5 874
#define FRONTIER_MON_MOLTRES_6 875
#define FRONTIER_MON_RAIKOU_5 876
#define FRONTIER_MON_RAIKOU_6 877
#define FRONTIER_MON_ENTEI_5 878
#define FRONTIER_MON_ENTEI_6 879
#define FRONTIER_MON_SUICUNE_5 880
#define FRONTIER_MON_SUICUNE_6 881
#define NUM_FRONTIER_MONS 882
#endif //GUARD_CONSTANTS_BATTLE_FRONTIER_MONS_H
@@ -0,0 +1,309 @@
#ifndef GUARD_CONSTANTS_BATTLE_FRONTIER_TRAINERS_H
#define GUARD_CONSTANTS_BATTLE_FRONTIER_TRAINERS_H
#define FRONTIER_TRAINER_BRADY 0
#define FRONTIER_TRAINER_CONNER 1
#define FRONTIER_TRAINER_BRADLEY 2
#define FRONTIER_TRAINER_CYBIL 3
#define FRONTIER_TRAINER_RODETTE 4
#define FRONTIER_TRAINER_PEGGY 5
#define FRONTIER_TRAINER_KEITH 6
#define FRONTIER_TRAINER_GRAYSON 7
#define FRONTIER_TRAINER_GLENN 8
#define FRONTIER_TRAINER_LILIANA 9
#define FRONTIER_TRAINER_ELISE 10
#define FRONTIER_TRAINER_ZOEY 11
#define FRONTIER_TRAINER_MANUEL 12
#define FRONTIER_TRAINER_RUSS 13
#define FRONTIER_TRAINER_DUSTIN 14
#define FRONTIER_TRAINER_TINA 15
#define FRONTIER_TRAINER_GILLIAN1 16
#define FRONTIER_TRAINER_ZOE 17
#define FRONTIER_TRAINER_CHEN 18
#define FRONTIER_TRAINER_AL 19
#define FRONTIER_TRAINER_MITCH 20
#define FRONTIER_TRAINER_ANNE 21
#define FRONTIER_TRAINER_ALIZE 22
#define FRONTIER_TRAINER_LAUREN 23
#define FRONTIER_TRAINER_KIPP 24
#define FRONTIER_TRAINER_JASON 25
#define FRONTIER_TRAINER_JOHN 26
#define FRONTIER_TRAINER_ANN 27
#define FRONTIER_TRAINER_EILEEN 28
#define FRONTIER_TRAINER_CARLIE 29
#define FRONTIER_TRAINER_GORDON 30
#define FRONTIER_TRAINER_AYDEN 31
#define FRONTIER_TRAINER_MARCO 32
#define FRONTIER_TRAINER_CIERRA 33
#define FRONTIER_TRAINER_MARCY 34
#define FRONTIER_TRAINER_KATHY 35
#define FRONTIER_TRAINER_PEYTON 36
#define FRONTIER_TRAINER_JULIAN 37
#define FRONTIER_TRAINER_QUINN 38
#define FRONTIER_TRAINER_HAYLEE 39
#define FRONTIER_TRAINER_AMANDA 40
#define FRONTIER_TRAINER_STACY 41
#define FRONTIER_TRAINER_RAFAEL 42
#define FRONTIER_TRAINER_OLIVER 43
#define FRONTIER_TRAINER_PAYTON 44
#define FRONTIER_TRAINER_PAMELA 45
#define FRONTIER_TRAINER_ELIZA 46
#define FRONTIER_TRAINER_MARISA 47
#define FRONTIER_TRAINER_LEWIS 48
#define FRONTIER_TRAINER_YOSHI 49
#define FRONTIER_TRAINER_DESTIN 50
#define FRONTIER_TRAINER_KEON 51
#define FRONTIER_TRAINER_STUART 52
#define FRONTIER_TRAINER_NESTOR 53
#define FRONTIER_TRAINER_DERRICK 54
#define FRONTIER_TRAINER_BRYSON 55
#define FRONTIER_TRAINER_CLAYTON 56
#define FRONTIER_TRAINER_TRENTON 57
#define FRONTIER_TRAINER_JENSON 58
#define FRONTIER_TRAINER_WESLEY 59
#define FRONTIER_TRAINER_ANTON 60
#define FRONTIER_TRAINER_LAWSON 61
#define FRONTIER_TRAINER_SAMMY 62
#define FRONTIER_TRAINER_ARNIE 63
#define FRONTIER_TRAINER_ADRIAN 64
#define FRONTIER_TRAINER_TRISTAN 65
#define FRONTIER_TRAINER_JULIANA 66
#define FRONTIER_TRAINER_RYLEE 67
#define FRONTIER_TRAINER_CHELSEA 68
#define FRONTIER_TRAINER_DANELA 69
#define FRONTIER_TRAINER_LIZBETH 70
#define FRONTIER_TRAINER_AMELIA 71
#define FRONTIER_TRAINER_JILLIAN 72
#define FRONTIER_TRAINER_ABBIE 73
#define FRONTIER_TRAINER_BRIANA 74
#define FRONTIER_TRAINER_ANTONIO 75
#define FRONTIER_TRAINER_JADEN 76
#define FRONTIER_TRAINER_DAKOTA 77
#define FRONTIER_TRAINER_BRAYDEN 78
#define FRONTIER_TRAINER_CORSON 79
#define FRONTIER_TRAINER_TREVIN 80
#define FRONTIER_TRAINER_PATRICK 81
#define FRONTIER_TRAINER_KADEN 82
#define FRONTIER_TRAINER_MAXWELL 83
#define FRONTIER_TRAINER_DARYL 84
#define FRONTIER_TRAINER_KENNETH 85
#define FRONTIER_TRAINER_RICH 86
#define FRONTIER_TRAINER_CADEN 87
#define FRONTIER_TRAINER_MARLON 88
#define FRONTIER_TRAINER_NASH 89
#define FRONTIER_TRAINER_ROBBY 90
#define FRONTIER_TRAINER_REECE 91
#define FRONTIER_TRAINER_KATHRYN 92
#define FRONTIER_TRAINER_ELLEN 93
#define FRONTIER_TRAINER_RAMON 94
#define FRONTIER_TRAINER_ARTHUR 95
#define FRONTIER_TRAINER_ALONDRA 96
#define FRONTIER_TRAINER_ADRIANA 97
#define FRONTIER_TRAINER_MALIK 98
#define FRONTIER_TRAINER_JILL 99
#define FRONTIER_TRAINER_ERIK 100
#define FRONTIER_TRAINER_YAZMIN 101
#define FRONTIER_TRAINER_JAMAL 102
#define FRONTIER_TRAINER_LESLIE 103
#define FRONTIER_TRAINER_DAVE 104
#define FRONTIER_TRAINER_CARLO 105
#define FRONTIER_TRAINER_EMILIA 106
#define FRONTIER_TRAINER_DALIA 107
#define FRONTIER_TRAINER_HITOMI 108
#define FRONTIER_TRAINER_RICARDO 109
#define FRONTIER_TRAINER_SHIZUKA 110
#define FRONTIER_TRAINER_JOANA 111
#define FRONTIER_TRAINER_KELLY 112
#define FRONTIER_TRAINER_RAYNA 113
#define FRONTIER_TRAINER_EVAN 114
#define FRONTIER_TRAINER_JORDAN 115
#define FRONTIER_TRAINER_JOEL 116
#define FRONTIER_TRAINER_KRISTEN 117
#define FRONTIER_TRAINER_SELPHY 118
#define FRONTIER_TRAINER_CHLOE 119
#define FRONTIER_TRAINER_NORTON 120
#define FRONTIER_TRAINER_LUKAS 121
#define FRONTIER_TRAINER_ZACH 122
#define FRONTIER_TRAINER_KAITLYN 123
#define FRONTIER_TRAINER_BREANNA 124
#define FRONTIER_TRAINER_KENDRA 125
#define FRONTIER_TRAINER_MOLLY 126
#define FRONTIER_TRAINER_JAZMIN 127
#define FRONTIER_TRAINER_KELSEY 128
#define FRONTIER_TRAINER_JALEN 129
#define FRONTIER_TRAINER_GRIFFEN 130
#define FRONTIER_TRAINER_XANDER 131
#define FRONTIER_TRAINER_MARVIN 132
#define FRONTIER_TRAINER_BRENNAN 133
#define FRONTIER_TRAINER_BALEY 134
#define FRONTIER_TRAINER_ZACKARY 135
#define FRONTIER_TRAINER_GABRIEL 136
#define FRONTIER_TRAINER_EMILY 137
#define FRONTIER_TRAINER_JORDYN 138
#define FRONTIER_TRAINER_SOFIA 139
#define FRONTIER_TRAINER_BRADEN 140
#define FRONTIER_TRAINER_KAYDEN 141
#define FRONTIER_TRAINER_COOPER 142
#define FRONTIER_TRAINER_JULIA 143
#define FRONTIER_TRAINER_AMARA 144
#define FRONTIER_TRAINER_LYNN 145
#define FRONTIER_TRAINER_JOVAN 146
#define FRONTIER_TRAINER_DOMINIC 147
#define FRONTIER_TRAINER_NIKOLAS 148
#define FRONTIER_TRAINER_VALERIA 149
#define FRONTIER_TRAINER_DELANEY 150
#define FRONTIER_TRAINER_MEGHAN 151
#define FRONTIER_TRAINER_ROBERTO 152
#define FRONTIER_TRAINER_DAMIAN 153
#define FRONTIER_TRAINER_BRODY 154
#define FRONTIER_TRAINER_GRAHAM 155
#define FRONTIER_TRAINER_TYLOR 156
#define FRONTIER_TRAINER_JAREN 157
#define FRONTIER_TRAINER_CORDELL 158
#define FRONTIER_TRAINER_JAZLYN 159
#define FRONTIER_TRAINER_ZACHERY 160
#define FRONTIER_TRAINER_JOHAN 161
#define FRONTIER_TRAINER_SHEA 162
#define FRONTIER_TRAINER_KAILA 163
#define FRONTIER_TRAINER_ISIAH 164
#define FRONTIER_TRAINER_GARRETT 165
#define FRONTIER_TRAINER_HAYLIE 166
#define FRONTIER_TRAINER_MEGAN 167
#define FRONTIER_TRAINER_ISSAC 168
#define FRONTIER_TRAINER_QUINTON 169
#define FRONTIER_TRAINER_SALMA 170
#define FRONTIER_TRAINER_ANSLEY 171
#define FRONTIER_TRAINER_HOLDEN 172
#define FRONTIER_TRAINER_LUCA 173
#define FRONTIER_TRAINER_JAMISON 174
#define FRONTIER_TRAINER_GUNNAR 175
#define FRONTIER_TRAINER_CRAIG 176
#define FRONTIER_TRAINER_PIERCE 177
#define FRONTIER_TRAINER_REGINA 178
#define FRONTIER_TRAINER_ALISON 179
#define FRONTIER_TRAINER_HANK 180
#define FRONTIER_TRAINER_EARL 181
#define FRONTIER_TRAINER_RAMIRO 182
#define FRONTIER_TRAINER_HUNTER 183
#define FRONTIER_TRAINER_AIDEN 184
#define FRONTIER_TRAINER_XAVIER 185
#define FRONTIER_TRAINER_CLINTON 186
#define FRONTIER_TRAINER_JESSE 187
#define FRONTIER_TRAINER_EDUARDO 188
#define FRONTIER_TRAINER_HAL 189
#define FRONTIER_TRAINER_GAGE 190
#define FRONTIER_TRAINER_ARNOLD 191
#define FRONTIER_TRAINER_JARRETT 192
#define FRONTIER_TRAINER_GARETT 193
#define FRONTIER_TRAINER_EMANUEL 194
#define FRONTIER_TRAINER_GUSTAVO 195
#define FRONTIER_TRAINER_KAMERON 196
#define FRONTIER_TRAINER_ALFREDO 197
#define FRONTIER_TRAINER_RUBEN 198
#define FRONTIER_TRAINER_LAMAR 199
#define FRONTIER_TRAINER_JAXON 200
#define FRONTIER_TRAINER_LOGAN 201
#define FRONTIER_TRAINER_EMILEE 202
#define FRONTIER_TRAINER_JOSIE 203
#define FRONTIER_TRAINER_ARMANDO 204
#define FRONTIER_TRAINER_SKYLER 205
#define FRONTIER_TRAINER_RUTH 206
#define FRONTIER_TRAINER_MELODY 207
#define FRONTIER_TRAINER_PEDRO 208
#define FRONTIER_TRAINER_ERICK 209
#define FRONTIER_TRAINER_ELAINE 210
#define FRONTIER_TRAINER_JOYCE 211
#define FRONTIER_TRAINER_TODD 212
#define FRONTIER_TRAINER_GAVIN 213
#define FRONTIER_TRAINER_MALORY 214
#define FRONTIER_TRAINER_ESTHER 215
#define FRONTIER_TRAINER_OSCAR 216
#define FRONTIER_TRAINER_WILSON 217
#define FRONTIER_TRAINER_CLARE 218
#define FRONTIER_TRAINER_TESS 219
#define FRONTIER_TRAINER_LEON 220
#define FRONTIER_TRAINER_ALONZO 221
#define FRONTIER_TRAINER_VINCE 222
#define FRONTIER_TRAINER_BRYON 223
#define FRONTIER_TRAINER_AVA 224
#define FRONTIER_TRAINER_MIRIAM 225
#define FRONTIER_TRAINER_CARRIE 226
#define FRONTIER_TRAINER_GILLIAN2 227
#define FRONTIER_TRAINER_TYLER 228
#define FRONTIER_TRAINER_CHAZ 229
#define FRONTIER_TRAINER_NELSON 230
#define FRONTIER_TRAINER_SHANIA 231
#define FRONTIER_TRAINER_STELLA 232
#define FRONTIER_TRAINER_DORINE 233
#define FRONTIER_TRAINER_MADDOX 234
#define FRONTIER_TRAINER_DAVIN 235
#define FRONTIER_TRAINER_TREVON 236
#define FRONTIER_TRAINER_MATEO 237
#define FRONTIER_TRAINER_BRET 238
#define FRONTIER_TRAINER_RAUL 239
#define FRONTIER_TRAINER_KAY 240
#define FRONTIER_TRAINER_ELENA 241
#define FRONTIER_TRAINER_ALANA 242
#define FRONTIER_TRAINER_ALEXAS 243
#define FRONTIER_TRAINER_WESTON 244
#define FRONTIER_TRAINER_JASPER 245
#define FRONTIER_TRAINER_NADIA 246
#define FRONTIER_TRAINER_MIRANDA 247
#define FRONTIER_TRAINER_EMMA 248
#define FRONTIER_TRAINER_ROLANDO 249
#define FRONTIER_TRAINER_STANLY 250
#define FRONTIER_TRAINER_DARIO 251
#define FRONTIER_TRAINER_KARLEE 252
#define FRONTIER_TRAINER_JAYLIN 253
#define FRONTIER_TRAINER_INGRID 254
#define FRONTIER_TRAINER_DELILAH 255
#define FRONTIER_TRAINER_CARLY 256
#define FRONTIER_TRAINER_LEXIE 257
#define FRONTIER_TRAINER_MILLER 258
#define FRONTIER_TRAINER_MARV 259
#define FRONTIER_TRAINER_LAYTON 260
#define FRONTIER_TRAINER_BROOKS 261
#define FRONTIER_TRAINER_GREGORY 262
#define FRONTIER_TRAINER_REESE 263
#define FRONTIER_TRAINER_MASON 264
#define FRONTIER_TRAINER_TOBY 265
#define FRONTIER_TRAINER_DOROTHY 266
#define FRONTIER_TRAINER_PIPER 267
#define FRONTIER_TRAINER_FINN 268
#define FRONTIER_TRAINER_SAMIR 269
#define FRONTIER_TRAINER_FIONA 270
#define FRONTIER_TRAINER_GLORIA 271
#define FRONTIER_TRAINER_NICO 272
#define FRONTIER_TRAINER_JEREMY 273
#define FRONTIER_TRAINER_CAITLIN 274
#define FRONTIER_TRAINER_REENA 275
#define FRONTIER_TRAINER_AVERY 276
#define FRONTIER_TRAINER_LIAM 277
#define FRONTIER_TRAINER_THEO 278
#define FRONTIER_TRAINER_BAILEY 279
#define FRONTIER_TRAINER_HUGO 280
#define FRONTIER_TRAINER_BRYCE 281
#define FRONTIER_TRAINER_GIDEON 282
#define FRONTIER_TRAINER_TRISTON 283
#define FRONTIER_TRAINER_CHARLES 284
#define FRONTIER_TRAINER_RAYMOND 285
#define FRONTIER_TRAINER_DIRK 286
#define FRONTIER_TRAINER_HAROLD 287
#define FRONTIER_TRAINER_OMAR 288
#define FRONTIER_TRAINER_PETER 289
#define FRONTIER_TRAINER_DEV 290
#define FRONTIER_TRAINER_COREY 291
#define FRONTIER_TRAINER_ANDRE 292
#define FRONTIER_TRAINER_FERRIS 293
#define FRONTIER_TRAINER_ALIVIA 294
#define FRONTIER_TRAINER_PAIGE 295
#define FRONTIER_TRAINER_ANYA 296
#define FRONTIER_TRAINER_DAWN 297
#define FRONTIER_TRAINER_ABBY 298
#define FRONTIER_TRAINER_GRETEL 299
#define FRONTIER_TRAINERS_COUNT 300
// special trainer IDs begin at 300, see constants/trainers.h
#endif // GUARD_CONSTANTS_BATTLE_FRONTIER_TRAINERS_H
+173
View File
@@ -0,0 +1,173 @@
#ifndef GUARD_CONSTANTS_BATTLE_TENT_MONS_H
#define GUARD_CONSTANTS_BATTLE_TENT_MONS_H
#define SLATEPORT_TENT_MON_ZIGZAGOON_1 0
#define SLATEPORT_TENT_MON_ZIGZAGOON_2 1
#define SLATEPORT_TENT_MON_BEAUTIFLY 2
#define SLATEPORT_TENT_MON_DUSTOX 3
#define SLATEPORT_TENT_MON_WAILMER_1 4
#define SLATEPORT_TENT_MON_WAILMER_2 5
#define SLATEPORT_TENT_MON_MARILL_1 6
#define SLATEPORT_TENT_MON_WINGULL_1 7
#define SLATEPORT_TENT_MON_PELIPPER_1 8
#define SLATEPORT_TENT_MON_CACNEA_1 9
#define SLATEPORT_TENT_MON_LOMBRE_1 10
#define SLATEPORT_TENT_MON_LOTAD 11
#define SLATEPORT_TENT_MON_SEEDOT 12
#define SLATEPORT_TENT_MON_NUZLEAF 13
#define SLATEPORT_TENT_MON_NINJASK_1 14
#define SLATEPORT_TENT_MON_NINJASK_2 15
#define SLATEPORT_TENT_MON_GRAVELER 16
#define SLATEPORT_TENT_MON_BALTOY 17
#define SLATEPORT_TENT_MON_MIGHTYENA_1 18
#define SLATEPORT_TENT_MON_MIGHTYENA_2 19
#define SLATEPORT_TENT_MON_LINOONE 20
#define SLATEPORT_TENT_MON_GOLDEEN 21
#define SLATEPORT_TENT_MON_ELECTRIKE_1 22
#define SLATEPORT_TENT_MON_VOLTORB 23
#define SLATEPORT_TENT_MON_ARON_1 24
#define SLATEPORT_TENT_MON_ARON_2 25
#define SLATEPORT_TENT_MON_TRAPINCH_1 26
#define SLATEPORT_TENT_MON_CACNEA_2 27
#define SLATEPORT_TENT_MON_TAILLOW 28
#define SLATEPORT_TENT_MON_SWELLOW 29
#define SLATEPORT_TENT_MON_GOLBAT_1 30
#define SLATEPORT_TENT_MON_LOUDRED 31
#define SLATEPORT_TENT_MON_SPINDA 32
#define SLATEPORT_TENT_MON_MAGNEMITE 33
#define SLATEPORT_TENT_MON_WHISMUR 34
#define SLATEPORT_TENT_MON_MAKUHITA 35
#define SLATEPORT_TENT_MON_NUMEL_1 36
#define SLATEPORT_TENT_MON_BARBOACH 37
#define SLATEPORT_TENT_MON_TENTACOOL 38
#define SLATEPORT_TENT_MON_VIGOROTH 39
#define SLATEPORT_TENT_MON_MAGIKARP 40
#define SLATEPORT_TENT_MON_SEVIPER_1 41
#define SLATEPORT_TENT_MON_SOLROCK 42
#define SLATEPORT_TENT_MON_KECLEON_1 43
#define SLATEPORT_TENT_MON_KECLEON_2 44
#define SLATEPORT_TENT_MON_SHROOMISH_1 45
#define SLATEPORT_TENT_MON_SHROOMISH_2 46
#define SLATEPORT_TENT_MON_LOMBRE_2 47
#define SLATEPORT_TENT_MON_NUMEL_2 48
#define SLATEPORT_TENT_MON_TRAPINCH_2 49
#define SLATEPORT_TENT_MON_PELIPPER_2 50
#define SLATEPORT_TENT_MON_WINGULL_2 51
#define SLATEPORT_TENT_MON_MARILL_2 52
#define SLATEPORT_TENT_MON_SKITTY 53
#define SLATEPORT_TENT_MON_SEVIPER_2 54
#define SLATEPORT_TENT_MON_GOLBAT_2 55
#define SLATEPORT_TENT_MON_RALTS 56
#define SLATEPORT_TENT_MON_SANDSHREW 57
#define SLATEPORT_TENT_MON_SWALOT 58
#define SLATEPORT_TENT_MON_VOLBEAT 59
#define SLATEPORT_TENT_MON_ILLUMISE 60
#define SLATEPORT_TENT_MON_KADABRA 61
#define SLATEPORT_TENT_MON_KIRLIA 62
#define SLATEPORT_TENT_MON_BRELOOM 63
#define SLATEPORT_TENT_MON_PLUSLE_1 64
#define SLATEPORT_TENT_MON_PLUSLE_2 65
#define SLATEPORT_TENT_MON_ELECTRIKE_2 66
#define SLATEPORT_TENT_MON_SWABLU 67
#define SLATEPORT_TENT_MON_MACHOP 68
#define SLATEPORT_TENT_MON_MACHOKE 69
#define NUM_SLATEPORT_TENT_MONS 70
#define VERDANTURF_TENT_MON_POOCHYENA 0
#define VERDANTURF_TENT_MON_ZIGZAGOON 1
#define VERDANTURF_TENT_MON_DUSTOX 2
#define VERDANTURF_TENT_MON_TAILLOW 3
#define VERDANTURF_TENT_MON_SHROOMISH 4
#define VERDANTURF_TENT_MON_MACHOP 5
#define VERDANTURF_TENT_MON_MAGIKARP 6
#define VERDANTURF_TENT_MON_BARBOACH 7
#define VERDANTURF_TENT_MON_WINGULL 8
#define VERDANTURF_TENT_MON_ARON_1 9
#define VERDANTURF_TENT_MON_NUMEL_1 10
#define VERDANTURF_TENT_MON_SWALOT 11
#define VERDANTURF_TENT_MON_KECLEON 12
#define VERDANTURF_TENT_MON_BALTOY 13
#define VERDANTURF_TENT_MON_NINJASK 14
#define VERDANTURF_TENT_MON_MAKUHITA 15
#define VERDANTURF_TENT_MON_SWABLU 16
#define VERDANTURF_TENT_MON_GOLDEEN_1 17
#define VERDANTURF_TENT_MON_LOTAD 18
#define VERDANTURF_TENT_MON_NUMEL_2 19
#define VERDANTURF_TENT_MON_LINOONE 20
#define VERDANTURF_TENT_MON_SEVIPER 21
#define VERDANTURF_TENT_MON_SKARMORY 22
#define VERDANTURF_TENT_MON_SWELLOW 23
#define VERDANTURF_TENT_MON_GOLDEEN_2 24
#define VERDANTURF_TENT_MON_ELECTRIKE 25
#define VERDANTURF_TENT_MON_NUZLEAF 26
#define VERDANTURF_TENT_MON_ARON_2 27
#define VERDANTURF_TENT_MON_MIGHTYENA 28
#define VERDANTURF_TENT_MON_SOLROCK 29
#define VERDANTURF_TENT_MON_GRAVELER 30
#define VERDANTURF_TENT_MON_KADABRA 31
#define VERDANTURF_TENT_MON_VOLTORB 32
#define VERDANTURF_TENT_MON_MAGNEMITE 33
#define VERDANTURF_TENT_MON_PELIPPER 34
#define VERDANTURF_TENT_MON_LOUDRED 35
#define VERDANTURF_TENT_MON_MARILL 36
#define VERDANTURF_TENT_MON_TRAPINCH 37
#define VERDANTURF_TENT_MON_TENTACOOL 38
#define VERDANTURF_TENT_MON_VIGOROTH 39
#define VERDANTURF_TENT_MON_WAILMER 40
#define VERDANTURF_TENT_MON_ILLUMISE 41
#define VERDANTURF_TENT_MON_MACHOKE 42
#define VERDANTURF_TENT_MON_WHISMUR 43
#define VERDANTURF_TENT_MON_CACNEA 44
#define NUM_VERDANTURF_TENT_MONS 45
#define FALLARBOR_TENT_MON_NUMEL 0
#define FALLARBOR_TENT_MON_LINOONE_1 1
#define FALLARBOR_TENT_MON_PLUSLE 2
#define FALLARBOR_TENT_MON_POOCHYENA 3
#define FALLARBOR_TENT_MON_KECLEON 4
#define FALLARBOR_TENT_MON_MAGIKARP 5
#define FALLARBOR_TENT_MON_SOLROCK 6
#define FALLARBOR_TENT_MON_MAKUHITA 7
#define FALLARBOR_TENT_MON_MACHOKE 8
#define FALLARBOR_TENT_MON_NINCADA 9
#define FALLARBOR_TENT_MON_BEAUTIFLY 10
#define FALLARBOR_TENT_MON_DUSTOX 11
#define FALLARBOR_TENT_MON_ILLUMISE 12
#define FALLARBOR_TENT_MON_VOLBEAT 13
#define FALLARBOR_TENT_MON_NINJASK_1 14
#define FALLARBOR_TENT_MON_NINJASK_2 15
#define FALLARBOR_TENT_MON_ARON_1 16
#define FALLARBOR_TENT_MON_ARON_2 17
#define FALLARBOR_TENT_MON_ELECTRIKE 18
#define FALLARBOR_TENT_MON_MAGNEMITE 19
#define FALLARBOR_TENT_MON_VOLTORB 20
#define FALLARBOR_TENT_MON_WHISMUR 21
#define FALLARBOR_TENT_MON_LOUDRED 22
#define FALLARBOR_TENT_MON_LINOONE_2 23
#define FALLARBOR_TENT_MON_MIGHTYENA 24
#define FALLARBOR_TENT_MON_SWABLU 25
#define FALLARBOR_TENT_MON_SKARMORY 26
#define FALLARBOR_TENT_MON_GOLBAT 27
#define FALLARBOR_TENT_MON_WINGULL 28
#define FALLARBOR_TENT_MON_PELIPPER 29
#define FALLARBOR_TENT_MON_BARBOACH 30
#define FALLARBOR_TENT_MON_WAILMER 31
#define FALLARBOR_TENT_MON_MARILL 32
#define FALLARBOR_TENT_MON_GOLDEEN_1 33
#define FALLARBOR_TENT_MON_GOLDEEN_2 34
#define FALLARBOR_TENT_MON_TRAPINCH 35
#define FALLARBOR_TENT_MON_BALTOY 36
#define FALLARBOR_TENT_MON_GRAVELER 37
#define FALLARBOR_TENT_MON_SANDSHREW 38
#define FALLARBOR_TENT_MON_SWALOT 39
#define FALLARBOR_TENT_MON_SHROOMISH 40
#define FALLARBOR_TENT_MON_KIRLIA 41
#define FALLARBOR_TENT_MON_LOMBRE 42
#define FALLARBOR_TENT_MON_NUZLEAF 43
#define FALLARBOR_TENT_MON_CACNEA 44
#define NUM_FALLARBOR_TENT_MONS 45
#endif // GUARD_CONSTANTS_BATTLE_TENT_MONS_H
+99
View File
@@ -0,0 +1,99 @@
#ifndef GUARD_CONSTANTS_BATTLE_TENT_TRAINERS_H
#define GUARD_CONSTANTS_BATTLE_TENT_TRAINERS_H
#define SLATEPORT_TENT_TRAINER_JOLIE 0
#define SLATEPORT_TENT_TRAINER_MALACHI 1
#define SLATEPORT_TENT_TRAINER_KELSIE 2
#define SLATEPORT_TENT_TRAINER_DAVON 3
#define SLATEPORT_TENT_TRAINER_GLENDA 4
#define SLATEPORT_TENT_TRAINER_HELENA 5
#define SLATEPORT_TENT_TRAINER_RODOLFO 6
#define SLATEPORT_TENT_TRAINER_DAVION 7
#define SLATEPORT_TENT_TRAINER_KENDALL 8
#define SLATEPORT_TENT_TRAINER_COLTEN 9
#define SLATEPORT_TENT_TRAINER_IRVIN 10
#define SLATEPORT_TENT_TRAINER_SHAUN 11
#define SLATEPORT_TENT_TRAINER_KYLER 12
#define SLATEPORT_TENT_TRAINER_MAGGIE 13
#define SLATEPORT_TENT_TRAINER_STEPHON 14
#define SLATEPORT_TENT_TRAINER_REBECCA 15
#define SLATEPORT_TENT_TRAINER_REGGIE 16
#define SLATEPORT_TENT_TRAINER_JANAE 17
#define SLATEPORT_TENT_TRAINER_CAIDEN 18
#define SLATEPORT_TENT_TRAINER_KIRSTEN 19
#define SLATEPORT_TENT_TRAINER_KURTIS 20
#define SLATEPORT_TENT_TRAINER_STEFAN 21
#define SLATEPORT_TENT_TRAINER_AVERY 22
#define SLATEPORT_TENT_TRAINER_DWANE 23
#define SLATEPORT_TENT_TRAINER_MCKENNA 24
#define SLATEPORT_TENT_TRAINER_CAMRYN 25
#define SLATEPORT_TENT_TRAINER_NATASHA 26
#define SLATEPORT_TENT_TRAINER_AUSTYN 27
#define SLATEPORT_TENT_TRAINER_DONOVAN 28
#define SLATEPORT_TENT_TRAINER_TAMIA 29
#define VERDANTURF_TENT_TRAINER_BRENNA 0
#define VERDANTURF_TENT_TRAINER_DILAN 1
#define VERDANTURF_TENT_TRAINER_ELIANA 2
#define VERDANTURF_TENT_TRAINER_MARKUS 3
#define VERDANTURF_TENT_TRAINER_CAITLYN 4
#define VERDANTURF_TENT_TRAINER_DESIREE 5
#define VERDANTURF_TENT_TRAINER_RONALD 6
#define VERDANTURF_TENT_TRAINER_ASHTEN 7
#define VERDANTURF_TENT_TRAINER_GERARD 8
#define VERDANTURF_TENT_TRAINER_BRADLY 9
#define VERDANTURF_TENT_TRAINER_DENNIS 10
#define VERDANTURF_TENT_TRAINER_PRESTIN 11
#define VERDANTURF_TENT_TRAINER_ERNESTO 12
#define VERDANTURF_TENT_TRAINER_NALA 13
#define VERDANTURF_TENT_TRAINER_DARNELL 14
#define VERDANTURF_TENT_TRAINER_ASHLYN 15
#define VERDANTURF_TENT_TRAINER_ADDISON 16
#define VERDANTURF_TENT_TRAINER_JUSTINE 17
#define VERDANTURF_TENT_TRAINER_TYSON 18
#define VERDANTURF_TENT_TRAINER_LAILA 19
#define VERDANTURF_TENT_TRAINER_WAREN 20
#define VERDANTURF_TENT_TRAINER_TOBIAS 21
#define VERDANTURF_TENT_TRAINER_JOSIAH 22
#define VERDANTURF_TENT_TRAINER_DION 23
#define VERDANTURF_TENT_TRAINER_KENZIE 24
#define VERDANTURF_TENT_TRAINER_LILLIAN 25
#define VERDANTURF_TENT_TRAINER_LESLEY 26
#define VERDANTURF_TENT_TRAINER_MARQUIS 27
#define VERDANTURF_TENT_TRAINER_FREDDY 28
#define VERDANTURF_TENT_TRAINER_CECILIA 29
#define FALLARBOR_TENT_TRAINER_AMBER 0
#define FALLARBOR_TENT_TRAINER_JAVIER 1
#define FALLARBOR_TENT_TRAINER_NATALIA 2
#define FALLARBOR_TENT_TRAINER_TREVE 3
#define FALLARBOR_TENT_TRAINER_ARIANNA 4
#define FALLARBOR_TENT_TRAINER_JADYN 5
#define FALLARBOR_TENT_TRAINER_GERARDO 6
#define FALLARBOR_TENT_TRAINER_JONN 7
#define FALLARBOR_TENT_TRAINER_ESTEBAN 8
#define FALLARBOR_TENT_TRAINER_JAMESON 9
#define FALLARBOR_TENT_TRAINER_ALANZO 10
#define FALLARBOR_TENT_TRAINER_HOWARD 11
#define FALLARBOR_TENT_TRAINER_CONRAD 12
#define FALLARBOR_TENT_TRAINER_MAKENNA 13
#define FALLARBOR_TENT_TRAINER_BRAYAN 14
#define FALLARBOR_TENT_TRAINER_MARIANA 15
#define FALLARBOR_TENT_TRAINER_SHELDON 16
#define FALLARBOR_TENT_TRAINER_GIANNA 17
#define FALLARBOR_TENT_TRAINER_YAHIR 18
#define FALLARBOR_TENT_TRAINER_BRITNEY 19
#define FALLARBOR_TENT_TRAINER_HECTER 20
#define FALLARBOR_TENT_TRAINER_TANNOR 21
#define FALLARBOR_TENT_TRAINER_BENJI 22
#define FALLARBOR_TENT_TRAINER_RORY 23
#define FALLARBOR_TENT_TRAINER_ELEANOR 24
#define FALLARBOR_TENT_TRAINER_EVELYN 25
#define FALLARBOR_TENT_TRAINER_ARIELLE 26
#define FALLARBOR_TENT_TRAINER_CONNAR 27
#define FALLARBOR_TENT_TRAINER_MAURICE 28
#define FALLARBOR_TENT_TRAINER_KIANNA 29
#define NUM_BATTLE_TENT_TRAINERS 30
#endif // GUARD_CONSTANTS_BATTLE_TENT_TRAINERS_H
+9 -5
View File
@@ -1,6 +1,8 @@
#ifndef GUARD_CONSTANTS_FLAGS_H
#define GUARD_CONSTANTS_FLAGS_H
#include "constants/opponents.h"
// Temporary Flags
// These temporary flags are are cleared every time a map is loaded. They are used
// for things like shortening an NPCs introduction text if the player already spoke
@@ -533,8 +535,6 @@
#define FLAG_MYSTERY_EVENT_14 0x1F2
#define FLAG_MYSTERY_EVENT_15 0x1F3
#define FLAG_TRICK_HOUSE_END_ROOM 0x1F5 // Trick House End Room Flag
// Hidden Items -- sorted by location
#define FLAG_HIDDEN_ITEMS_START 0x1F4
#define FLAG_HIDDEN_ITEM_TRICK_HOUSE_NUGGET (FLAG_HIDDEN_ITEMS_START + 0x01)
@@ -1342,13 +1342,17 @@
#define FLAG_UNUSED_0x4FF 0x4FF // Unused Flag
#define FLAG_TRAINER_FLAG_START 0x500
#define TRAINERS_FLAG_NO 0x356
// Trainer Flags
// Trainer flags occupy 0x500 - 0x85F, the last 9 of which are unused
// See constants/opponents.h. The values there + FLAG_TRAINER_FLAG_START are the flag IDs
#define SYSTEM_FLAGS (FLAG_TRAINER_FLAG_START + TRAINERS_FLAG_NO + 0xA) // 0x860
#define TRAINER_FLAGS_START 0x500
#define TRAINER_FLAGS_END (TRAINER_FLAGS_START + MAX_TRAINERS_COUNT - 1) // 0x85F
// System Flags
#define SYSTEM_FLAGS (TRAINER_FLAGS_END + 1) // 0x860
#define FLAG_SYS_POKEMON_GET (SYSTEM_FLAGS + 0) // FLAG_0x860
#define FLAG_SYS_POKEDEX_GET (SYSTEM_FLAGS + 1)
#define FLAG_SYS_POKENAV_GET (SYSTEM_FLAGS + 2)
+1
View File
@@ -58,6 +58,7 @@
#define TRAINER_ID_LENGTH 4
#define MAX_MON_MOVES 4
#define NUM_STATS 6
// party sizes
#define PARTY_SIZE 6
+4
View File
@@ -857,6 +857,10 @@
#define TRAINER_BRENDAN_PLACEHOLDER 853
#define TRAINER_MAY_PLACEHOLDER 854
// NOTE: Because each Trainer uses a flag to determine when they are defeated, there is only space for 9 additional trainers before trainer flag space overflows
// More space can be made by shifting flags around in constants/flags.h or changing how trainer flags are handled
#define TRAINERS_COUNT 855
#define MAX_TRAINERS_COUNT 864
#endif // GUARD_CONSTANTS_OPPONENTS_H
+4 -2
View File
@@ -80,8 +80,8 @@
#define STAT_ACC 6 // Only in battles.
#define STAT_EVASION 7 // Only in battles.
#define NUM_STATS 6
#define NUM_BATTLE_STATS 8
#define NUM_EV_STATS NUM_STATS - 1 // excludes HP
#define NUM_BATTLE_STATS NUM_STATS + 2 // includes Accuracy and Evasion
// Shiny odds
#define SHINY_ODDS 8 // Actual probability is SHINY_ODDS/65536
@@ -213,6 +213,8 @@
#define FRIENDSHIP_EVENT_FAINT_OUTSIDE_BATTLE 7
#define FRIENDSHIP_EVENT_FAINT_LARGE 8
#define MAX_FRIENDSHIP 0xFF
#define STATUS_PRIMARY_NONE 0
#define STATUS_PRIMARY_POISON 1
#define STATUS_PRIMARY_PARALYSIS 2
+3 -1
View File
@@ -2,9 +2,11 @@
#define GUARD_TRAINERS_H
#include "constants/opponents.h"
#include "constants/battle_frontier_trainers.h"
// Special Trainer Ids.
#define TRAINER_RECORD_MIXING_FRIEND 300
// 0-299 are frontier trainers
#define TRAINER_RECORD_MIXING_FRIEND FRONTIER_TRAINERS_COUNT
#define TRAINER_RECORD_MIXING_APPRENTICE 400
#define TRAINER_EREADER 500
#define TRAINER_FRONTIER_BRAIN 1022
+25 -28
View File
@@ -297,10 +297,11 @@ struct BattleTowerEReaderTrainer
/*0xB8*/ u32 checksum;
};
struct FrontierMonData
// For displaying party information on the player's Battle Dome tourney page
struct DomeMonData
{
u16 moves[MAX_MON_MOVES];
u8 evs[6];
u8 evs[NUM_STATS];
u8 nature;
};
@@ -317,7 +318,7 @@ struct BattleDomeTrainer
u16 trainerId:10;
u16 isEliminated:1;
u16 eliminatedAt:2;
u16 unk3:3;
u16 forfeited:3;
};
#define DOME_TOURNAMENT_TRAINERS_COUNT 16
@@ -332,10 +333,6 @@ struct BattleFrontier
/*0xCA9*/ u8 lvlMode:2;
/*0xCA9*/ u8 challengePaused:1;
/*0xCA9*/ u8 disableRecordBattle: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];
@@ -347,17 +344,17 @@ struct BattleFrontier
/*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;
/*0xD08*/ u8 field_D08_3:1;
/*0xD08*/ u8 field_D08_4:1;
/*0xD08*/ u8 field_D08_5:1;
/*0xD08*/ u8 field_D08_6:1;
/*0xD08*/ u8 field_D08_7:1;
/*0xD09*/ u8 filler_D09;
/*0xD0A*/ u8 field_D0A;
/*0xD0B*/ u8 field_D0B;
/*0xD08*/ u8 domeAttemptedSingles50:1;
/*0xD08*/ u8 domeAttemptedSinglesOpen:1;
/*0xD08*/ u8 domeHasWonSingles50:1;
/*0xD08*/ u8 domeHasWonSinglesOpen:1;
/*0xD08*/ u8 domeAttemptedDoubles50:1;
/*0xD08*/ u8 domeAttemptedDoublesOpen:1;
/*0xD08*/ u8 domeHasWonDoubles50:1;
/*0xD08*/ u8 domeHasWonDoublesOpen:1;
/*0xD09*/ u8 domeUnused;
/*0xD0A*/ u8 domeLvlMode;
/*0xD0B*/ u8 domeBattleMode;
/*0xD0C*/ u16 domeWinStreaks[2][2];
/*0xD14*/ u16 domeRecordWinStreaks[2][2];
/*0xD1C*/ u16 domeTotalChampionships[2][2];
@@ -392,11 +389,11 @@ struct BattleFrontier
/*0xE6A*/ u16 verdanturfTentPrize;
/*0xE6C*/ u16 fallarborTentPrize;
/*0xE6E*/ u16 slateportTentPrize;
/*0xE70*/ struct RentalMon rentalMons[PARTY_SIZE];
/*0xE70*/ struct RentalMon rentalMons[FRONTIER_PARTY_SIZE * 2];
/*0xEB8*/ u16 battlePoints;
/*0xEBA*/ u16 cardBattlePoints;
/*0xEBC*/ u32 battlesCount;
/*0xEC0*/ u16 field_EC0[16];
/*0xEC0*/ u16 domeWinningMoves[DOME_TOURNAMENT_TRAINERS_COUNT];
/*0xEE0*/ u8 trainerFlags;
/*0xEE1*/ u8 opponentNames[2][PLAYER_NAME_LENGTH + 1];
/*0xEF1*/ u8 opponentTrainerIds[2][TRAINER_ID_LENGTH];
@@ -404,7 +401,7 @@ struct BattleFrontier
/*0xEF9*/ u8 savedGame:1;
/*0xEFA*/ u8 unused_EFA;
/*0xEFB*/ u8 unused_EFB;
/*0xEFC*/ struct FrontierMonData field_EFC[FRONTIER_PARTY_SIZE];
/*0xEFC*/ struct DomeMonData domePlayerPartyData[FRONTIER_PARTY_SIZE];
};
struct ApprenticeQuestion
@@ -934,13 +931,13 @@ struct SaveBlock1
/*0x271C*/ u8 playerRoomDecor[DECOR_MAX_PLAYERS_HOUSE];
/*0x2728*/ u8 playerRoomDecorPos[DECOR_MAX_PLAYERS_HOUSE];
/*0x2734*/ u8 decorDesk[10];
/*0x????*/ u8 decorChair[10];
/*0x????*/ u8 decorPlant[10];
/*0x????*/ u8 decorOrnament[30];
/*0x????*/ u8 decorMat[30];
/*0x????*/ u8 decorPoster[10];
/*0x????*/ u8 decorDoll[40];
/*0x????*/ u8 decorCushion[10];
/*0x273E*/ u8 decorChair[10];
/*0x2748*/ u8 decorPlant[10];
/*0x2752*/ u8 decorOrnament[30];
/*0x2770*/ u8 decorMat[30];
/*0x278E*/ u8 decorPoster[10];
/*0x2798*/ u8 decorDoll[40];
/*0x27C0*/ u8 decorCushion[10];
/*0x27CA*/ u8 padding_27CA[2];
/*0x27CC*/ TVShow tvShows[TV_SHOWS_COUNT];
/*0x2B50*/ PokeNews pokeNews[POKE_NEWS_COUNT];
+16 -13
View File
@@ -4117,19 +4117,19 @@ extern const u16 gTitleScreenBgPalettes[];
extern const u16 gTitleScreenPressStartPal[];
extern const u16 gTitleScreenEmeraldVersionPal[];
extern const u32 gUnknown_08D83D50[];
extern const u32 gUnknown_08D84970[];
extern const u32 gUnknown_08D84F00[];
extern const u32 gUnknown_08D85444[];
extern const u32 gUnknown_08D85358[];
extern const u32 gBattleWindowTextPalette[];
extern const u32 gUnknown_08D854C8[];
extern const u32 gUnknown_08D82F10[];
extern const u32 gUnknown_08D834FC[];
extern const u32 gUnknown_08D83B2C[];
extern const u32 gUnknown_08D83C3C[];
extern const u32 gUnknown_08D83900[];
extern const u32 gBattleFrontierGfx_DomeOptions[];
// Battle Dome
extern const u32 gDomeTourneyInfoCard_Gfx[];
extern const u32 gDomeTourneyInfoCard_Tilemap[];
extern const u32 gDomeTourneyInfoCardBg_Tilemap[];
extern const u32 gDomeTourneyTree_Pal[];
extern const u32 gDomeTourneyTreeButtons_Pal[];
extern const u32 gDomeTourneyMatchCardBg_Pal[];
extern const u32 gDomeTourneyBg_Gfx[];
extern const u32 gDomeTourneyLine_Gfx[];
extern const u32 gDomeTourneyLineDown_Tilemap[];
extern const u32 gDomeTourneyLineUp_Tilemap[];
extern const u32 gDomeTourneyLineMask_Tilemap[];
extern const u32 gDomeTourneyTreeButtons_Gfx[];
extern const u16 gTilesetAnims_BattleDomePals0_0[];
extern const u16 gTilesetAnims_BattleDomePals0_1[];
extern const u16 gTilesetAnims_BattleDomePals0_2[];
@@ -4137,6 +4137,9 @@ extern const u16 gTilesetAnims_BattleDomePals0_3[];
extern const u32 gBattleArenaJudgementSymbolsGfx[];
extern const u32 gBattleArenaJudgementSymbolsPalette[];
extern const u32 gBattleWindowTextPalette[];
extern const u32 gContest2Pal[];
extern const u32 gBattleAnimSpriteGfx_Bone[];
+1 -1
View File
@@ -4,7 +4,7 @@
void CB2_DoHallOfFameScreen(void);
void CB2_DoHallOfFameScreenDontSaveData(void);
void CB2_DoHallOfFamePC(void);
void sub_8175280(void);
void DoConfettiEffect(void);
// hof_pc.c
void ReturnFromHallOfFamePC(void);
+1 -1
View File
@@ -16,7 +16,7 @@ void LoadMonIconPalette(u16 species);
void FreeMonIconPalettes(void);
u8 sub_80D2D78(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, bool32 extra);
void FreeMonIconPalette(u16 species);
void sub_80D2EF8(struct Sprite *sprite);
void FreeAndDestroyMonIconSprite(struct Sprite *sprite);
u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality, bool32 extra);
u8 UpdateMonIconFrame(struct Sprite *sprite);
void LoadMonIconPalette(u16 species);
+114 -116
View File
@@ -1705,120 +1705,120 @@ extern const u8 BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmerMAccept[]
extern const u8 BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmerMReject[];
// Battle Dome.
extern const u8 gBattleDomeOpponentPotentialText1[];
extern const u8 gBattleDomeOpponentPotentialText2[];
extern const u8 gBattleDomeOpponentPotentialText3[];
extern const u8 gBattleDomeOpponentPotentialText4[];
extern const u8 gBattleDomeOpponentPotentialText5[];
extern const u8 gBattleDomeOpponentPotentialText6[];
extern const u8 gBattleDomeOpponentPotentialText7[];
extern const u8 gBattleDomeOpponentPotentialText8[];
extern const u8 gBattleDomeOpponentPotentialText9[];
extern const u8 gBattleDomeOpponentPotentialText10[];
extern const u8 gBattleDomeOpponentPotentialText11[];
extern const u8 gBattleDomeOpponentPotentialText12[];
extern const u8 gBattleDomeOpponentPotentialText13[];
extern const u8 gBattleDomeOpponentPotentialText14[];
extern const u8 gBattleDomeOpponentPotentialText15[];
extern const u8 gBattleDomeOpponentPotentialText16[];
extern const u8 gBattleDomeOpponentPotentialText17[];
extern const u8 gBattleDomeOpponentStyleText1[];
extern const u8 gBattleDomeOpponentStyleText2[];
extern const u8 gBattleDomeOpponentStyleText3[];
extern const u8 gBattleDomeOpponentStyleText4[];
extern const u8 gBattleDomeOpponentStyleText5[];
extern const u8 gBattleDomeOpponentStyleText6[];
extern const u8 gBattleDomeOpponentStyleText7[];
extern const u8 gBattleDomeOpponentStyleText8[];
extern const u8 gBattleDomeOpponentStyleText9[];
extern const u8 gBattleDomeOpponentStyleText10[];
extern const u8 gBattleDomeOpponentStyleText11[];
extern const u8 gBattleDomeOpponentStyleText12[];
extern const u8 gBattleDomeOpponentStyleText13[];
extern const u8 gBattleDomeOpponentStyleText14[];
extern const u8 gBattleDomeOpponentStyleText15[];
extern const u8 gBattleDomeOpponentStyleText16[];
extern const u8 gBattleDomeOpponentStyleText17[];
extern const u8 gBattleDomeOpponentStyleText18[];
extern const u8 gBattleDomeOpponentStyleText19[];
extern const u8 gBattleDomeOpponentStyleText20[];
extern const u8 gBattleDomeOpponentStyleText21[];
extern const u8 gBattleDomeOpponentStyleText22[];
extern const u8 gBattleDomeOpponentStyleText23[];
extern const u8 gBattleDomeOpponentStyleText24[];
extern const u8 gBattleDomeOpponentStyleText25[];
extern const u8 gBattleDomeOpponentStyleText26[];
extern const u8 gBattleDomeOpponentStyleText27[];
extern const u8 gBattleDomeOpponentStyleText28[];
extern const u8 gBattleDomeOpponentStyleTextUnused1[];
extern const u8 gBattleDomeOpponentStyleTextUnused2[];
extern const u8 gBattleDomeOpponentStyleTextUnused3[];
extern const u8 gBattleDomeOpponentStyleTextUnused4[];
extern const u8 gBattleDomeOpponentStatsText1[];
extern const u8 gBattleDomeOpponentStatsText2[];
extern const u8 gBattleDomeOpponentStatsText3[];
extern const u8 gBattleDomeOpponentStatsText4[];
extern const u8 gBattleDomeOpponentStatsText5[];
extern const u8 gBattleDomeOpponentStatsText6[];
extern const u8 gBattleDomeOpponentStatsText7[];
extern const u8 gBattleDomeOpponentStatsText8[];
extern const u8 gBattleDomeOpponentStatsText9[];
extern const u8 gBattleDomeOpponentStatsText10[];
extern const u8 gBattleDomeOpponentStatsText11[];
extern const u8 gBattleDomeOpponentStatsText12[];
extern const u8 gBattleDomeOpponentStatsText13[];
extern const u8 gBattleDomeOpponentStatsText14[];
extern const u8 gBattleDomeOpponentStatsText15[];
extern const u8 gBattleDomeOpponentStatsText16[];
extern const u8 gBattleDomeOpponentStatsText17[];
extern const u8 gBattleDomeOpponentStatsText18[];
extern const u8 gBattleDomeOpponentStatsText19[];
extern const u8 gBattleDomeOpponentStatsText20[];
extern const u8 gBattleDomeOpponentStatsText21[];
extern const u8 gBattleDomeOpponentStatsText22[];
extern const u8 gBattleDomeOpponentStatsText23[];
extern const u8 gBattleDomeOpponentStatsText24[];
extern const u8 gBattleDomeOpponentStatsText25[];
extern const u8 gBattleDomeOpponentStatsText26[];
extern const u8 gBattleDomeOpponentStatsText27[];
extern const u8 gBattleDomeOpponentStatsText28[];
extern const u8 gBattleDomeOpponentStatsText29[];
extern const u8 gBattleDomeOpponentStatsText30[];
extern const u8 gBattleDomeOpponentStatsText31[];
extern const u8 gBattleDomeOpponentStatsText32[];
extern const u8 gBattleDomeOpponentStatsText33[];
extern const u8 gBattleDomeOpponentStatsText34[];
extern const u8 gBattleDomeOpponentStatsText35[];
extern const u8 gBattleDomeOpponentStatsText36[];
extern const u8 gBattleDomeOpponentStatsText37[];
extern const u8 gBattleDomeOpponentStatsText38[];
extern const u8 gBattleDomeOpponentStatsText39[];
extern const u8 gBattleDomeOpponentStatsText40[];
extern const u8 gBattleDomeOpponentStatsText41[];
extern const u8 gBattleDomeOpponentStatsText42[];
extern const u8 gBattleDomeOpponentStatsText43[];
extern const u8 gBattleDomeMatchNumberText1[];
extern const u8 gBattleDomeMatchNumberText2[];
extern const u8 gBattleDomeMatchNumberText3[];
extern const u8 gBattleDomeMatchNumberText4[];
extern const u8 gBattleDomeMatchNumberText5[];
extern const u8 gBattleDomeMatchNumberText6[];
extern const u8 gBattleDomeMatchNumberText7[];
extern const u8 gBattleDomeMatchNumberText8[];
extern const u8 gBattleDomeMatchNumberText9[];
extern const u8 gBattleDomeMatchNumberText10[];
extern const u8 gBattleDomeMatchNumberText11[];
extern const u8 gBattleDomeMatchNumberText12[];
extern const u8 gBattleDomeMatchNumberText13[];
extern const u8 gBattleDomeMatchNumberText14[];
extern const u8 gBattleDomeMatchNumberText15[];
extern const u8 gBattleDomeWinText1[];
extern const u8 gBattleDomeWinText2[];
extern const u8 gBattleDomeWinText3[];
extern const u8 gBattleDomeWinText4[];
extern const u8 gBattleDomeWinText5[];
extern const u8 gBattleDomeWinText6[];
extern const u8 gBattleDomeWinText7[];
extern const u8 BattleDome_Text_Potential1[];
extern const u8 BattleDome_Text_Potential2[];
extern const u8 BattleDome_Text_Potential3[];
extern const u8 BattleDome_Text_Potential4[];
extern const u8 BattleDome_Text_Potential5[];
extern const u8 BattleDome_Text_Potential6[];
extern const u8 BattleDome_Text_Potential7[];
extern const u8 BattleDome_Text_Potential8[];
extern const u8 BattleDome_Text_Potential9[];
extern const u8 BattleDome_Text_Potential10[];
extern const u8 BattleDome_Text_Potential11[];
extern const u8 BattleDome_Text_Potential12[];
extern const u8 BattleDome_Text_Potential13[];
extern const u8 BattleDome_Text_Potential14[];
extern const u8 BattleDome_Text_Potential15[];
extern const u8 BattleDome_Text_Potential16[];
extern const u8 BattleDome_Text_PotentialDomeAceTucker[];
extern const u8 BattleDome_Text_StyleRiskDisaster[];
extern const u8 BattleDome_Text_StyleEndureLongBattles[];
extern const u8 BattleDome_Text_StyleVariesTactics[];
extern const u8 BattleDome_Text_StyleToughWinningPattern[];
extern const u8 BattleDome_Text_StyleUsesVeryRareMove[];
extern const u8 BattleDome_Text_StyleUsesStartlingMoves[];
extern const u8 BattleDome_Text_StyleConstantlyWatchesHP[];
extern const u8 BattleDome_Text_StyleStoresAndLoosesPower[];
extern const u8 BattleDome_Text_StyleEnfeeblesFoes[];
extern const u8 BattleDome_Text_StylePrefersLuckTactics[];
extern const u8 BattleDome_Text_StyleRegalAtmosphere[];
extern const u8 BattleDome_Text_StylePowerfulLowPPMoves[];
extern const u8 BattleDome_Text_StyleEnfeebleThenAttack[];
extern const u8 BattleDome_Text_StyleBattlesWhileEnduring[];
extern const u8 BattleDome_Text_StyleUpsetsFoesEmotionally[];
extern const u8 BattleDome_Text_StyleStrongAndStraightforward[];
extern const u8 BattleDome_Text_StyleAggressivelyStrongMoves[];
extern const u8 BattleDome_Text_StyleCleverlyDodgesAttacks[];
extern const u8 BattleDome_Text_StyleUsesUpsettingMoves[];
extern const u8 BattleDome_Text_StyleUsesPopularMoves[];
extern const u8 BattleDome_Text_StyleHasPowerfulComboMoves[];
extern const u8 BattleDome_Text_StyleUsesHighProbabilityMoves[];
extern const u8 BattleDome_Text_StyleAggressivelySpectacularMoves[];
extern const u8 BattleDome_Text_StyleEmphasizesOffenseOverDefense[];
extern const u8 BattleDome_Text_StyleEmphasizesDefenseOverOffense[];
extern const u8 BattleDome_Text_StyleAttacksQuicklyStrongMoves[];
extern const u8 BattleDome_Text_StyleUsesAddedEffectMoves[];
extern const u8 BattleDome_Text_StyleUsesBalancedMixOfMoves[];
extern const u8 BattleDome_Text_StyleSampleMessage1[];
extern const u8 BattleDome_Text_StyleSampleMessage2[];
extern const u8 BattleDome_Text_StyleSampleMessage3[];
extern const u8 BattleDome_Text_StyleSampleMessage4[];
extern const u8 BattleDome_Text_EmphasizesHPAndAtk[];
extern const u8 BattleDome_Text_EmphasizesHPAndDef[];
extern const u8 BattleDome_Text_EmphasizesHPAndSpeed[];
extern const u8 BattleDome_Text_EmphasizesHPAndSpAtk[];
extern const u8 BattleDome_Text_EmphasizesHPAndSpDef[];
extern const u8 BattleDome_Text_EmphasizesAtkAndDef[];
extern const u8 BattleDome_Text_EmphasizesAtkAndSpeed[];
extern const u8 BattleDome_Text_EmphasizesAtkAndSpAtk[];
extern const u8 BattleDome_Text_EmphasizesAtkAndSpDef[];
extern const u8 BattleDome_Text_EmphasizesDefAndSpeed[];
extern const u8 BattleDome_Text_EmphasizesDefAndSpAtk[];
extern const u8 BattleDome_Text_EmphasizesDefAndSpDef[];
extern const u8 BattleDome_Text_EmphasizesSpeedAndSpAtk[];
extern const u8 BattleDome_Text_EmphasizesSpeedAndSpDef[];
extern const u8 BattleDome_Text_EmphasizesSpAtkAndSpDef[];
extern const u8 BattleDome_Text_EmphasizesHP[];
extern const u8 BattleDome_Text_EmphasizesAtk[];
extern const u8 BattleDome_Text_EmphasizesDef[];
extern const u8 BattleDome_Text_EmphasizesSpeed[];
extern const u8 BattleDome_Text_EmphasizesSpAtk[];
extern const u8 BattleDome_Text_EmphasizesSpDef[];
extern const u8 BattleDome_Text_NeglectsHPAndAtk[];
extern const u8 BattleDome_Text_NeglectsHPAndDef[];
extern const u8 BattleDome_Text_NeglectsHPAndSpeed[];
extern const u8 BattleDome_Text_NeglectsHPAndSpAtk[];
extern const u8 BattleDome_Text_NeglectsHPAndSpDef[];
extern const u8 BattleDome_Text_NeglectsAtkAndDef[];
extern const u8 BattleDome_Text_NeglectsAtkAndSpeed[];
extern const u8 BattleDome_Text_NeglectsAtkAndSpAtk[];
extern const u8 BattleDome_Text_NeglectsAtkAndSpDef[];
extern const u8 BattleDome_Text_NeglectsDefAndSpeed[];
extern const u8 BattleDome_Text_NeglectsDefAndSpAtk[];
extern const u8 BattleDome_Text_NeglectsDefAndSpDef[];
extern const u8 BattleDome_Text_NeglectsSpeedAndSpAtk[];
extern const u8 BattleDome_Text_NeglectsSpeedAndSpDef[];
extern const u8 BattleDome_Text_NeglectsSpAtkAndSpDef[];
extern const u8 BattleDome_Text_NeglectsHP[];
extern const u8 BattleDome_Text_NeglectsAtk[];
extern const u8 BattleDome_Text_NeglectsDef[];
extern const u8 BattleDome_Text_NeglectsSpeed[];
extern const u8 BattleDome_Text_NeglectsSpAtk[];
extern const u8 BattleDome_Text_NeglectsSpDef[];
extern const u8 BattleDome_Text_RaisesMonsWellBalanced[];
extern const u8 BattleDome_Text_Round1Match1[];
extern const u8 BattleDome_Text_Round1Match2[];
extern const u8 BattleDome_Text_Round1Match3[];
extern const u8 BattleDome_Text_Round1Match4[];
extern const u8 BattleDome_Text_Round1Match5[];
extern const u8 BattleDome_Text_Round1Match6[];
extern const u8 BattleDome_Text_Round1Match7[];
extern const u8 BattleDome_Text_Round1Match8[];
extern const u8 BattleDome_Text_Round2Match1[];
extern const u8 BattleDome_Text_Round2Match2[];
extern const u8 BattleDome_Text_Round2Match3[];
extern const u8 BattleDome_Text_Round2Match4[];
extern const u8 BattleDome_Text_SemifinalMatch1[];
extern const u8 BattleDome_Text_SemifinalMatch2[];
extern const u8 BattleDome_Text_FinalMatch[];
extern const u8 BattleDome_Text_LetTheBattleBegin[];
extern const u8 BattleDome_Text_TrainerWonUsingMove[];
extern const u8 BattleDome_Text_TrainerBecameChamp[];
extern const u8 BattleDome_Text_TrainerWonByDefault[];
extern const u8 BattleDome_Text_TrainerWonOutrightByDefault[];
extern const u8 BattleDome_Text_TrainerWonNoMoves[];
extern const u8 BattleDome_Text_TrainerWonOutrightNoMoves[];
// Battle Pyramid.
extern const u8 BattlePyramid_Text_ExitHintUp1[];
@@ -1948,8 +1948,6 @@ extern const u8 BattlePyramid_Text_FiveTrainersRemaining6[];
extern const u8 BattlePyramid_Text_SixTrainersRemaining6[];
extern const u8 BattlePyramid_Text_SevenTrainersRemaining6[];
// PC strings
extern const u8 gText_ExitFromBox[];
extern const u8 gText_WhatDoYouWantToDo[];
+2 -1
View File
@@ -2676,8 +2676,9 @@ static void PlayerHandleHealthBarUpdate(void)
LoadBattleBarGfx(0);
hpVal = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8);
// gPlayerPartyLostHP used by Battle Dome, but never read
if (hpVal > 0)
gUnknown_0203CD70 += hpVal;
gPlayerPartyLostHP += hpVal;
if (hpVal != INSTANT_HP_BAR_DROP)
{
+2592 -2591
View File
File diff suppressed because it is too large Load Diff
+4 -3
View File
@@ -12,6 +12,7 @@
#include "constants/battle_ai.h"
#include "constants/battle_factory.h"
#include "constants/battle_frontier.h"
#include "constants/battle_frontier_mons.h"
#include "constants/frontier_util.h"
#include "constants/layouts.h"
#include "constants/trainers.h"
@@ -304,7 +305,7 @@ static void GenerateOpponentMons(void)
do
{
trainerId = sub_8162548(challengeNum, gSaveBlock2Ptr->frontier.curChallengeBattleNum);
trainerId = GetRandomScaledFrontierTrainerId(challengeNum, gSaveBlock2Ptr->frontier.curChallengeBattleNum);
for (i = 0; i < gSaveBlock2Ptr->frontier.curChallengeBattleNum; i++)
{
if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId)
@@ -331,7 +332,7 @@ static void GenerateOpponentMons(void)
if (j != 6)
continue;
if (lvlMode == FRONTIER_LVL_50 && monSetId > 849)
if (lvlMode == FRONTIER_LVL_50 && monSetId > FRONTIER_MONS_HIGH_TIER)
continue;
for (k = firstMonId; k < firstMonId + i; k++)
@@ -727,7 +728,7 @@ void FillFactoryBrainParty(void)
if (gFacilityTrainerMons[monSetId].species == SPECIES_UNOWN)
continue;
if (monLevel == 50 && monSetId > 849)
if (monLevel == 50 && monSetId > FRONTIER_MONS_HIGH_TIER)
continue;
for (j = 0; j < 6; j++)
+1 -1
View File
@@ -159,7 +159,7 @@ static void SetPalaceOpponent(void)
static void BufferOpponentIntroSpeech(void)
{
if (gTrainerBattleOpponent_A < TRAINER_RECORD_MIXING_FRIEND)
if (gTrainerBattleOpponent_A < FRONTIER_TRAINERS_COUNT)
FrontierSpeechToString(gFacilityTrainers[gTrainerBattleOpponent_A].speechBefore);
}
+5 -5
View File
@@ -1400,7 +1400,7 @@ static void PrepareOneTrainer(bool8 difficult)
challengeNum = gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode] / 14;
do
{
trainerId = sub_8162548(challengeNum, battleNum);
trainerId = GetRandomScaledFrontierTrainerId(challengeNum, battleNum);
for (i = 0; i < gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1; i++)
{
if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId)
@@ -1425,7 +1425,7 @@ static void PrepareTwoTrainers(void)
gFacilityTrainers = gBattleFrontierTrainers;
do
{
trainerId = sub_8162548(challengeNum, 1);
trainerId = GetRandomScaledFrontierTrainerId(challengeNum, 1);
for (i = 0; i < gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1; i++)
{
if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId)
@@ -1440,7 +1440,7 @@ static void PrepareTwoTrainers(void)
do
{
trainerId = sub_8162548(challengeNum, 1);
trainerId = GetRandomScaledFrontierTrainerId(challengeNum, 1);
for (i = 0; i < gSaveBlock2Ptr->frontier.curChallengeBattleNum; i++)
{
if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId)
@@ -1466,12 +1466,12 @@ static void BufferTrainerIntro(void)
{
if (gSpecialVar_0x8005 == 0)
{
if (gTrainerBattleOpponent_A < TRAINER_RECORD_MIXING_FRIEND)
if (gTrainerBattleOpponent_A < FRONTIER_TRAINERS_COUNT)
FrontierSpeechToString(gFacilityTrainers[gTrainerBattleOpponent_A].speechBefore);
}
else if (gSpecialVar_0x8005 == 1)
{
if (gTrainerBattleOpponent_B < TRAINER_RECORD_MIXING_FRIEND)
if (gTrainerBattleOpponent_B < FRONTIER_TRAINERS_COUNT)
FrontierSpeechToString(gFacilityTrainers[gTrainerBattleOpponent_B].speechBefore);
}
}
+2 -2
View File
@@ -1493,7 +1493,7 @@ static u16 GetUniqueTrainerId(u8 eventObjectId)
{
do
{
trainerId = sub_8162548(challengeNum + 1, battleNum);
trainerId = GetRandomScaledFrontierTrainerId(challengeNum + 1, battleNum);
for (i = 0; i < eventObjectId; i++)
{
if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId)
@@ -1505,7 +1505,7 @@ static u16 GetUniqueTrainerId(u8 eventObjectId)
{
do
{
trainerId = sub_8162548(challengeNum, battleNum);
trainerId = GetRandomScaledFrontierTrainerId(challengeNum, battleNum);
for (i = 0; i < eventObjectId; i++)
{
if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId)
+6 -6
View File
@@ -961,12 +961,12 @@ static u8 TrainerBattleLoadArg8(const u8 *ptr)
static u16 GetTrainerAFlag(void)
{
return FLAG_TRAINER_FLAG_START + gTrainerBattleOpponent_A;
return TRAINER_FLAGS_START + gTrainerBattleOpponent_A;
}
static u16 GetTrainerBFlag(void)
{
return FLAG_TRAINER_FLAG_START + gTrainerBattleOpponent_B;
return TRAINER_FLAGS_START + gTrainerBattleOpponent_B;
}
static bool32 IsPlayerDefeated(u32 battleOutcome)
@@ -1193,7 +1193,7 @@ void SetUpTwoTrainersBattle(void)
bool32 GetTrainerFlagFromScriptPointer(const u8 *data)
{
u32 flag = TrainerBattleLoadArg16(data + 2);
return FlagGet(FLAG_TRAINER_FLAG_START + flag);
return FlagGet(TRAINER_FLAGS_START + flag);
}
void SetUpTrainerMovement(void)
@@ -1232,17 +1232,17 @@ static void SetBattledTrainerFlag(void)
bool8 HasTrainerBeenFought(u16 trainerId)
{
return FlagGet(FLAG_TRAINER_FLAG_START + trainerId);
return FlagGet(TRAINER_FLAGS_START + trainerId);
}
void SetTrainerFlag(u16 trainerId)
{
FlagSet(FLAG_TRAINER_FLAG_START + trainerId);
FlagSet(TRAINER_FLAGS_START + trainerId);
}
void ClearTrainerFlag(u16 trainerId)
{
FlagClear(FLAG_TRAINER_FLAG_START + trainerId);
FlagClear(TRAINER_FLAGS_START + trainerId);
}
void BattleSetup_StartTrainerBattle(void)
+13 -11
View File
@@ -12,6 +12,8 @@
#include "frontier_util.h"
#include "string_util.h"
#include "constants/battle_tent.h"
#include "constants/battle_tent_trainers.h"
#include "constants/battle_tent_mons.h"
#include "constants/items.h"
#include "constants/layouts.h"
#include "constants/region_map_sections.h"
@@ -134,7 +136,7 @@ static void SetVerdanturfTentTrainerGfx(void)
static void BufferVerdanturfTentTrainerIntro(void)
{
if (gTrainerBattleOpponent_A < TRAINER_RECORD_MIXING_FRIEND)
if (gTrainerBattleOpponent_A < FRONTIER_TRAINERS_COUNT)
FrontierSpeechToString(gFacilityTrainers[gTrainerBattleOpponent_A].speechBefore);
}
@@ -311,7 +313,7 @@ static void GenerateInitialRentalMons(void)
while (i != PARTY_SIZE)
{
// Cannot have two pokemon of the same species.
monSetId = Random() % 70;
monSetId = Random() % NUM_SLATEPORT_TENT_MONS;
for (j = firstMonId; j < firstMonId + i; j++)
{
u16 monId = monIds[j];
@@ -353,10 +355,10 @@ static void GenerateOpponentMons(void)
{
u16 trainerId;
s32 i, j, k;
register const u16 *monSets asm("r9"); // Fix me. Compiler insists on moving that variable into stack.
register const u16 *monSet asm("r9"); // Fix me. Compiler insists on moving that variable into stack.
u16 species[FRONTIER_PARTY_SIZE];
u16 heldItems[FRONTIER_PARTY_SIZE];
s32 setsCount = 0;
s32 monId = 0;
gFacilityTrainers = gSlateportBattleTentTrainers;
gFacilityTrainerMons = gSlateportBattleTentMons;
@@ -365,7 +367,7 @@ static void GenerateOpponentMons(void)
{
do
{
trainerId = Random() % 30;
trainerId = Random() % NUM_BATTLE_TENT_TRAINERS;
for (i = 0; i < gSaveBlock2Ptr->frontier.curChallengeBattleNum; i++)
{
if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId)
@@ -374,21 +376,21 @@ static void GenerateOpponentMons(void)
} while (i != gSaveBlock2Ptr->frontier.curChallengeBattleNum);
gTrainerBattleOpponent_A = trainerId;
while (gFacilityTrainers[gTrainerBattleOpponent_A].monSets[setsCount] != 0xFFFF)
setsCount++;
if (setsCount > 8)
while (gFacilityTrainers[gTrainerBattleOpponent_A].monSet[monId] != 0xFFFF)
monId++;
if (monId > 8)
break;
setsCount = 0;
monId = 0;
}
if (gSaveBlock2Ptr->frontier.curChallengeBattleNum < 2)
gSaveBlock2Ptr->frontier.trainerIds[gSaveBlock2Ptr->frontier.curChallengeBattleNum] = gTrainerBattleOpponent_A;
monSets = gFacilityTrainers[gTrainerBattleOpponent_A].monSets;
monSet = gFacilityTrainers[gTrainerBattleOpponent_A].monSet;
i = 0;
while (i != FRONTIER_PARTY_SIZE)
{
sRandMonSetId = monSets[Random() % setsCount];
sRandMonSetId = monSet[Random() % monId];
for (j = 0; j < 6; j++)
{
if (gFacilityTrainerMons[sRandMonSetId].species == gFacilityTrainerMons[gSaveBlock2Ptr->frontier.rentalMons[j].monId].species)
+182 -165
View File
@@ -25,6 +25,9 @@
#include "battle_factory.h"
#include "constants/apprentice.h"
#include "constants/battle_frontier.h"
#include "constants/battle_frontier_mons.h"
#include "constants/battle_tent_mons.h"
#include "constants/battle_tent_trainers.h"
#include "constants/battle_tower.h"
#include "constants/frontier_util.h"
#include "constants/items.h"
@@ -849,30 +852,37 @@ static const u8 sBattleTowerPartySizes2[] =
[FRONTIER_MODE_LINK_MULTIS] = FRONTIER_MULTI_PARTY_SIZE,
};
static const u16 gUnknown_085DF9FA[][2] =
// Trainer ID ranges for possible frontier trainers to encounter on particular challenges
// Trainers are scaled by difficulty, so higher trainer IDs have better teams
static const u16 sFrontierTrainerIdRanges[][2] =
{
{0x0000, 0x0063},
{0x0050, 0x0077},
{0x0064, 0x008b},
{0x0078, 0x009f},
{0x008c, 0x00b3},
{0x00a0, 0x00c7},
{0x00b4, 0x00db},
{0x00c8, 0x012b},
{FRONTIER_TRAINER_BRADY, FRONTIER_TRAINER_JILL}, // 0 - 99
{FRONTIER_TRAINER_TREVIN, FRONTIER_TRAINER_CHLOE}, // 80 - 119
{FRONTIER_TRAINER_ERIK, FRONTIER_TRAINER_SOFIA}, // 100 - 139
{FRONTIER_TRAINER_NORTON, FRONTIER_TRAINER_JAZLYN}, // 120 - 159
{FRONTIER_TRAINER_BRADEN, FRONTIER_TRAINER_ALISON}, // 140 - 179
{FRONTIER_TRAINER_ZACHERY, FRONTIER_TRAINER_LAMAR}, // 160 - 199
{FRONTIER_TRAINER_HANK, FRONTIER_TRAINER_TESS}, // 180 - 219
{FRONTIER_TRAINER_JAXON, FRONTIER_TRAINER_GRETEL}, // 200 - 299
};
static const u16 gUnknown_085DFA1A[][2] =
static const u16 sFrontierTrainerIdRangesHard[][2] =
{
{0x0064, 0x0077},
{0x0078, 0x008b},
{0x008c, 0x009f},
{0x00a0, 0x00b3},
{0x00b4, 0x00c7},
{0x00c8, 0x00db},
{0x00dc, 0x00ef},
{0x00c8, 0x012b},
{0x00b3, 0x008d},
{0x00c8, 0x00b7},
{FRONTIER_TRAINER_ERIK, FRONTIER_TRAINER_CHLOE}, // 100 - 119
{FRONTIER_TRAINER_NORTON, FRONTIER_TRAINER_SOFIA}, // 120 - 139
{FRONTIER_TRAINER_BRADEN, FRONTIER_TRAINER_JAZLYN}, // 140 - 159
{FRONTIER_TRAINER_ZACHERY, FRONTIER_TRAINER_ALISON}, // 160 - 179
{FRONTIER_TRAINER_HANK, FRONTIER_TRAINER_LAMAR}, // 180 - 199
{FRONTIER_TRAINER_JAXON, FRONTIER_TRAINER_TESS}, // 200 - 219
{FRONTIER_TRAINER_LEON, FRONTIER_TRAINER_RAUL}, // 220 - 239
{FRONTIER_TRAINER_JAXON, FRONTIER_TRAINER_GRETEL}, // 200 - 299
};
// Trainer IDs? Don't make sense as part of previous array, min/max relationship reversed and never accessed
static const u16 sUnused_085DFA1A[][2] =
{
{179, 141}, // FRONTIER_TRAINER_ALISON - FRONTIER_TRAINER_KAYDEN
{200, 183}, // FRONTIER_TRAINER_JAXON - FRONTIER_TRAINER_HUNTER
};
static const u8 sBattleTowerPartySizes[FRONTIER_MODE_COUNT] =
@@ -1077,7 +1087,7 @@ static void SetNextFacilityOpponent(void)
s32 i;
while (1)
{
id = sub_8162548(challengeNum, gSaveBlock2Ptr->frontier.curChallengeBattleNum);
id = GetRandomScaledFrontierTrainerId(challengeNum, gSaveBlock2Ptr->frontier.curChallengeBattleNum);
// Ensure trainer wasn't previously fought in this challenge.
for (i = 0; i < gSaveBlock2Ptr->frontier.curChallengeBattleNum; i++)
@@ -1097,7 +1107,7 @@ static void SetNextFacilityOpponent(void)
}
}
u16 sub_8162548(u8 challengeNum, u8 battleNum)
u16 GetRandomScaledFrontierTrainerId(u8 challengeNum, u8 battleNum)
{
u16 trainerId;
@@ -1105,49 +1115,54 @@ u16 sub_8162548(u8 challengeNum, u8 battleNum)
{
if (battleNum == 6)
{
trainerId = (gUnknown_085DFA1A[challengeNum][1] - gUnknown_085DFA1A[challengeNum][0]) + 1;
trainerId = gUnknown_085DFA1A[challengeNum][0] + (Random() % trainerId);
// The last battle in each challenge has a jump in difficulty, pulls from a table with higher ranges
trainerId = (sFrontierTrainerIdRangesHard[challengeNum][1] - sFrontierTrainerIdRangesHard[challengeNum][0]) + 1;
trainerId = sFrontierTrainerIdRangesHard[challengeNum][0] + (Random() % trainerId);
}
else
{
trainerId = (gUnknown_085DF9FA[challengeNum][1] - gUnknown_085DF9FA[challengeNum][0]) + 1;
trainerId = gUnknown_085DF9FA[challengeNum][0] + (Random() % trainerId);
trainerId = (sFrontierTrainerIdRanges[challengeNum][1] - sFrontierTrainerIdRanges[challengeNum][0]) + 1;
trainerId = sFrontierTrainerIdRanges[challengeNum][0] + (Random() % trainerId);
}
}
else
{
trainerId = (gUnknown_085DF9FA[7][1] - gUnknown_085DF9FA[7][0]) + 1;
trainerId = gUnknown_085DF9FA[7][0] + (Random() % trainerId);
// After challenge 7, trainer IDs always come from the last, hardest range, which is the same for both trainer ID tables
trainerId = (sFrontierTrainerIdRanges[7][1] - sFrontierTrainerIdRanges[7][0]) + 1;
trainerId = sFrontierTrainerIdRanges[7][0] + (Random() % trainerId);
}
return trainerId;
}
static void sub_81625B4(u8 challengeNum, u8 battleNum, u16 *trainerIdPtr, u8 *arg3) // Unused
// Unused
static void GetRandomScaledFrontierTrainerIdRange(u8 challengeNum, u8 battleNum, u16 *trainerIdPtr, u8 *rangePtr)
{
u16 trainerId, count;
u16 trainerId, range;
if (challengeNum <= 7)
{
if (battleNum == 6)
{
count = (gUnknown_085DFA1A[challengeNum][1] - gUnknown_085DFA1A[challengeNum][0]) + 1;
trainerId = gUnknown_085DFA1A[challengeNum][0];
// The last battle in each challenge has a jump in difficulty, pulls from a table with higher ranges
range = (sFrontierTrainerIdRangesHard[challengeNum][1] - sFrontierTrainerIdRangesHard[challengeNum][0]) + 1;
trainerId = sFrontierTrainerIdRangesHard[challengeNum][0];
}
else
{
count = (gUnknown_085DF9FA[challengeNum][1] - gUnknown_085DF9FA[challengeNum][0]) + 1;
trainerId = gUnknown_085DF9FA[challengeNum][0];
range = (sFrontierTrainerIdRanges[challengeNum][1] - sFrontierTrainerIdRanges[challengeNum][0]) + 1;
trainerId = sFrontierTrainerIdRanges[challengeNum][0];
}
}
else
{
count = (gUnknown_085DF9FA[7][1] - gUnknown_085DF9FA[7][0]) + 1;
trainerId = gUnknown_085DF9FA[7][0];
// After challenge 7, trainer IDs always come from the last, hardest range, which is the same for both trainer ID tables
range = (sFrontierTrainerIdRanges[7][1] - sFrontierTrainerIdRanges[7][0]) + 1;
trainerId = sFrontierTrainerIdRanges[7][0];
}
*trainerIdPtr = trainerId;
*arg3 = count;
*rangePtr = range;
}
void SetBattleFacilityTrainerGfxId(u16 trainerId, u8 tempVarId)
@@ -1166,7 +1181,7 @@ void SetBattleFacilityTrainerGfxId(u16 trainerId, u8 tempVarId)
SetFrontierBrainEventObjGfx_2();
return;
}
else if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
else if (trainerId < FRONTIER_TRAINERS_COUNT)
{
facilityClass = gFacilityTrainers[trainerId].facilityClass;
}
@@ -1258,7 +1273,7 @@ u8 GetBattleFacilityTrainerGfxId(u16 trainerId)
{
facilityClass = gSaveBlock2Ptr->frontier.ereaderTrainer.facilityClass;
}
else if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
else if (trainerId < FRONTIER_TRAINERS_COUNT)
{
facilityClass = gFacilityTrainers[trainerId].facilityClass;
}
@@ -1400,7 +1415,7 @@ u8 GetFrontierTrainerFrontSpriteId(u16 trainerId)
{
return GetFrontierBrainTrainerPicIndex();
}
else if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
else if (trainerId < FRONTIER_TRAINERS_COUNT)
{
return gFacilityClassToPicIndex[gFacilityTrainers[trainerId].facilityClass];
}
@@ -1437,7 +1452,7 @@ u8 GetFrontierOpponentClass(u16 trainerId)
{
trainerClass = gTrainers[TRAINER_STEVEN].trainerClass;
}
else if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
else if (trainerId < FRONTIER_TRAINERS_COUNT)
{
trainerClass = gFacilityClassToTrainerClass[gFacilityTrainers[trainerId].facilityClass];
}
@@ -1478,7 +1493,7 @@ static u8 GetFrontierTrainerFacilityClass(u16 trainerId)
{
facilityClass = gSaveBlock2Ptr->frontier.ereaderTrainer.facilityClass;
}
else if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
else if (trainerId < FRONTIER_TRAINERS_COUNT)
{
facilityClass = gFacilityTrainers[trainerId].facilityClass;
}
@@ -1520,7 +1535,7 @@ void GetFrontierTrainerName(u8 *dst, u16 trainerId)
for (i = 0; i < PLAYER_NAME_LENGTH; i++)
dst[i] = gTrainers[TRAINER_STEVEN].trainerName[i];
}
else if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
else if (trainerId < FRONTIER_TRAINERS_COUNT)
{
for (i = 0; i < PLAYER_NAME_LENGTH; i++)
dst[i] = gFacilityTrainers[trainerId].trainerName[i];
@@ -1575,7 +1590,7 @@ static bool8 IsFrontierTrainerFemale(u16 trainerId)
{
return IsFrontierBrainFemale();
}
else if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
else if (trainerId < FRONTIER_TRAINERS_COUNT)
{
facilityClass = gFacilityTrainers[trainerId].facilityClass;
}
@@ -1623,18 +1638,18 @@ static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount)
{
s32 i, j;
u16 chosenMonIndices[4];
u8 friendship = 0xFF;
u8 friendship = MAX_FRIENDSHIP;
u8 level = SetFacilityPtrsGetLevel();
u8 fixedIV = 0;
u8 bfMonCount;
const u16 *monSets = NULL;
const u16 *monSet = NULL;
u32 otID = 0;
if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
if (trainerId < FRONTIER_TRAINERS_COUNT)
{
// Normal battle frontier trainer.
fixedIV = GetFrontierTrainerFixedIvs(trainerId);
monSets = gFacilityTrainers[gTrainerBattleOpponent_A].monSets;
monSet = gFacilityTrainers[gTrainerBattleOpponent_A].monSet;
}
else if (trainerId == TRAINER_EREADER)
{
@@ -1672,20 +1687,20 @@ static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount)
// Attempt to fill the trainer's party with random Pokemon until 3 have been
// successfully chosen. The trainer's party may not have duplicate pokemon species
// or duplicate held items.
for (bfMonCount = 0; monSets[bfMonCount] != 0xFFFF; bfMonCount++)
for (bfMonCount = 0; monSet[bfMonCount] != 0xFFFF; bfMonCount++)
;
i = 0;
otID = Random32();
while (i != monCount)
{
u16 monSetId = monSets[Random() % bfMonCount];
if ((level == 50 || level == 20) && monSetId > 849)
u16 monId = monSet[Random() % bfMonCount];
if ((level == 50 || level == 20) && monId > FRONTIER_MONS_HIGH_TIER)
continue;
// Ensure this pokemon species isn't a duplicate.
for (j = 0; j < i + firstMonId; j++)
{
if (GetMonData(&gEnemyParty[j], MON_DATA_SPECIES, NULL) == gFacilityTrainerMons[monSetId].species)
if (GetMonData(&gEnemyParty[j], MON_DATA_SPECIES, NULL) == gFacilityTrainerMons[monId].species)
break;
}
if (j != i + firstMonId)
@@ -1695,7 +1710,7 @@ static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount)
for (j = 0; j < i + firstMonId; j++)
{
if (GetMonData(&gEnemyParty[j], MON_DATA_HELD_ITEM, NULL) != 0
&& GetMonData(&gEnemyParty[j], MON_DATA_HELD_ITEM, NULL) == gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId])
&& GetMonData(&gEnemyParty[j], MON_DATA_HELD_ITEM, NULL) == gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId])
break;
}
if (j != i + firstMonId)
@@ -1705,34 +1720,34 @@ static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount)
// because the species and held items were already checked directly above.
for (j = 0; j < i; j++)
{
if (chosenMonIndices[j] == monSetId)
if (chosenMonIndices[j] == monId)
break;
}
if (j != i)
continue;
chosenMonIndices[i] = monSetId;
chosenMonIndices[i] = monId;
// Place the chosen pokemon into the trainer's party.
CreateMonWithEVSpreadNatureOTID(&gEnemyParty[i + firstMonId],
gFacilityTrainerMons[monSetId].species,
gFacilityTrainerMons[monId].species,
level,
gFacilityTrainerMons[monSetId].nature,
gFacilityTrainerMons[monId].nature,
fixedIV,
gFacilityTrainerMons[monSetId].evSpread,
gFacilityTrainerMons[monId].evSpread,
otID);
friendship = 255;
friendship = MAX_FRIENDSHIP;
// Give the chosen pokemon its specified moves.
for (j = 0; j < MAX_MON_MOVES; j++)
{
SetMonMoveSlot(&gEnemyParty[i + firstMonId], gFacilityTrainerMons[monSetId].moves[j], j);
if (gFacilityTrainerMons[monSetId].moves[j] == MOVE_FRUSTRATION)
SetMonMoveSlot(&gEnemyParty[i + firstMonId], gFacilityTrainerMons[monId].moves[j], j);
if (gFacilityTrainerMons[monId].moves[j] == MOVE_FRUSTRATION)
friendship = 0; // Frustration is more powerful the lower the pokemon's friendship is.
}
SetMonData(&gEnemyParty[i + firstMonId], MON_DATA_FRIENDSHIP, &friendship);
SetMonData(&gEnemyParty[i + firstMonId], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]);
SetMonData(&gEnemyParty[i + firstMonId], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId]);
// The pokemon was successfully added to the trainer's party, so it's safe to move on to
// the next party slot.
@@ -1744,7 +1759,7 @@ static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount)
static void Unused_CreateApprenticeMons(u16 trainerId, u8 firstMonId)
{
s32 i, j;
u8 friendship = 0xFF;
u8 friendship = MAX_FRIENDSHIP;
u8 level = 0;
u8 fixedIV = 0;
struct Apprentice *apprentice = &gSaveBlock2Ptr->apprentices[0];
@@ -1762,7 +1777,7 @@ static void Unused_CreateApprenticeMons(u16 trainerId, u8 firstMonId)
for (i = 0; i != 3; i++)
{
CreateMonWithEVSpread(&gEnemyParty[firstMonId + i], apprentice->party[i].species, level, fixedIV, 8);
friendship = 0xFF;
friendship = MAX_FRIENDSHIP;
for (j = 0; j < MAX_MON_MOVES; j++)
{
if (apprentice->party[i].moves[j] == MOVE_FRUSTRATION)
@@ -1773,27 +1788,27 @@ static void Unused_CreateApprenticeMons(u16 trainerId, u8 firstMonId)
}
}
u16 RandomizeFacilityTrainerMonSet(u16 trainerId)
u16 GetRandomFrontierMonFromSet(u16 trainerId)
{
u8 level = SetFacilityPtrsGetLevel();
const u16 *monSets = gFacilityTrainers[trainerId].monSets;
u8 bfMonCount = 0;
u32 monSetId = monSets[bfMonCount];
const u16 *monSet = gFacilityTrainers[trainerId].monSet;
u8 numMons = 0;
u32 monId = monSet[numMons];
while (monSetId != 0xFFFF)
while (monId != 0xFFFF)
{
bfMonCount++;
monSetId = monSets[bfMonCount];
if (monSetId == 0xFFFF)
numMons++;
monId = monSet[numMons];
if (monId == 0xFFFF)
break;
}
do
{
monSetId = monSets[Random() % bfMonCount];
} while((level == 50 || level == 20) && monSetId > 849);
monId = monSet[Random() % numMons];
} while((level == 50 || level == 20) && monId > FRONTIER_MONS_HIGH_TIER);
return monSetId;
return monId;
}
static void FillFactoryTrainerParty(void)
@@ -1813,7 +1828,7 @@ static void FillFactoryFrontierTrainerParty(u16 trainerId, u8 firstMonId)
u8 fixedIV;
u32 otID;
if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
if (trainerId < FRONTIER_TRAINERS_COUNT)
{
u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; // Unused variable.
u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
@@ -1843,21 +1858,21 @@ static void FillFactoryFrontierTrainerParty(u16 trainerId, u8 firstMonId)
otID = T1_READ_32(gSaveBlock2Ptr->playerTrainerId);
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
{
u16 monSetId = gUnknown_03006298[i];
u16 monId = gUnknown_03006298[i];
CreateMonWithEVSpreadNatureOTID(&gEnemyParty[firstMonId + i],
gFacilityTrainerMons[monSetId].species,
gFacilityTrainerMons[monId].species,
level,
gFacilityTrainerMons[monSetId].nature,
gFacilityTrainerMons[monId].nature,
fixedIV,
gFacilityTrainerMons[monSetId].evSpread,
gFacilityTrainerMons[monId].evSpread,
otID);
friendship = 0;
for (j = 0; j < MAX_MON_MOVES; j++)
SetMonMoveAvoidReturn(&gEnemyParty[firstMonId + i], gFacilityTrainerMons[monSetId].moves[j], j);
SetMonMoveAvoidReturn(&gEnemyParty[firstMonId + i], gFacilityTrainerMons[monId].moves[j], j);
SetMonData(&gEnemyParty[firstMonId + i], MON_DATA_FRIENDSHIP, &friendship);
SetMonData(&gEnemyParty[firstMonId + i], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]);
SetMonData(&gEnemyParty[firstMonId + i], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId]);
}
}
@@ -1871,25 +1886,25 @@ static void FillFactoryTentTrainerParty(u16 trainerId, u8 firstMonId)
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
{
u16 monSetId = gUnknown_03006298[i];
u16 monId = gUnknown_03006298[i];
CreateMonWithEVSpreadNatureOTID(&gEnemyParty[firstMonId + i],
gFacilityTrainerMons[monSetId].species,
gFacilityTrainerMons[monId].species,
level,
gFacilityTrainerMons[monSetId].nature,
gFacilityTrainerMons[monId].nature,
fixedIV,
gFacilityTrainerMons[monSetId].evSpread,
gFacilityTrainerMons[monId].evSpread,
otID);
friendship = 0;
for (j = 0; j < MAX_MON_MOVES; j++)
{
SetMonMoveAvoidReturn(&gEnemyParty[firstMonId + i], gFacilityTrainerMons[monSetId].moves[j], j);
if (gFacilityTrainerMons[monSetId].moves[j] == MOVE_FRUSTRATION)
SetMonMoveAvoidReturn(&gEnemyParty[firstMonId + i], gFacilityTrainerMons[monId].moves[j], j);
if (gFacilityTrainerMons[monId].moves[j] == MOVE_FRUSTRATION)
friendship = 0;
}
SetMonData(&gEnemyParty[firstMonId + i], MON_DATA_FRIENDSHIP, &friendship);
SetMonData(&gEnemyParty[firstMonId + i], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]);
SetMonData(&gEnemyParty[firstMonId + i], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId]);
}
}
@@ -1922,7 +1937,7 @@ static void GetOpponentIntroSpeech(void)
if (trainerId == TRAINER_EREADER)
FrontierSpeechToString(gSaveBlock2Ptr->frontier.ereaderTrainer.greeting);
else if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
else if (trainerId < FRONTIER_TRAINERS_COUNT)
FrontierSpeechToString(gFacilityTrainers[trainerId].speechBefore);
else if (trainerId < TRAINER_RECORD_MIXING_APPRENTICE)
FrontierSpeechToString(gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].greeting);
@@ -2150,7 +2165,7 @@ static void sub_8163EE4(void)
StringCopy7(playerRecord->name, gSaveBlock2Ptr->playerName);
playerRecord->winStreak = GetCurrentBattleTowerWinStreak(lvlMode, battleMode);
for (i = 0; i < 6; i++)
for (i = 0; i < EASY_CHAT_BATTLE_WORDS_COUNT; i++)
{
playerRecord->greeting[i] = gSaveBlock1Ptr->easyChatBattleStart[i];
playerRecord->speechWon[i] = gSaveBlock1Ptr->easyChatBattleWon[i];
@@ -2252,7 +2267,7 @@ static void LoadMultiPartnerCandidatesData(void)
u32 spArray[5];
s32 r10;
u16 trainerId;
u16 monSetId;
u16 monId;
u32 lvlMode, battleMode;
s32 challengeNum;
u32 species1, species2;
@@ -2272,7 +2287,7 @@ static void LoadMultiPartnerCandidatesData(void)
{
do
{
trainerId = sub_8162548(challengeNum, 0);
trainerId = GetRandomScaledFrontierTrainerId(challengeNum, 0);
for (i = 0; i < j; i++)
{
if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId)
@@ -2294,24 +2309,24 @@ static void LoadMultiPartnerCandidatesData(void)
{
while (1)
{
monSetId = RandomizeFacilityTrainerMonSet(trainerId);
if (j % 2 != 0 && gFacilityTrainerMons[gSaveBlock2Ptr->frontier.trainerIds[r10 - 1]].itemTableId == gFacilityTrainerMons[monSetId].itemTableId)
monId = GetRandomFrontierMonFromSet(trainerId);
if (j % 2 != 0 && gFacilityTrainerMons[gSaveBlock2Ptr->frontier.trainerIds[r10 - 1]].itemTableId == gFacilityTrainerMons[monId].itemTableId)
continue;
for (k = 8; k < r10; k++)
{
if (gFacilityTrainerMons[gSaveBlock2Ptr->frontier.trainerIds[k]].species == gFacilityTrainerMons[monSetId].species)
if (gFacilityTrainerMons[gSaveBlock2Ptr->frontier.trainerIds[k]].species == gFacilityTrainerMons[monId].species)
break;
if (species1 == gFacilityTrainerMons[monSetId].species)
if (species1 == gFacilityTrainerMons[monId].species)
break;
if (species2 == gFacilityTrainerMons[monSetId].species)
if (species2 == gFacilityTrainerMons[monId].species)
break;
}
if (k == r10)
break;
}
gSaveBlock2Ptr->frontier.trainerIds[r10] = monSetId;
gSaveBlock2Ptr->frontier.trainerIds[r10] = monId;
r10++;
}
}
@@ -2392,7 +2407,7 @@ static void LoadMultiPartnerCandidatesData(void)
}
}
static void sub_81646BC(u16 trainerId, u16 monSetId)
static void sub_81646BC(u16 trainerId, u16 monId)
{
u16 move = 0;
u16 species = 0;
@@ -2400,10 +2415,10 @@ static void sub_81646BC(u16 trainerId, u16 monSetId)
if (trainerId != TRAINER_EREADER)
{
if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
if (trainerId < FRONTIER_TRAINERS_COUNT)
{
move = gFacilityTrainerMons[monSetId].moves[0];
species = gFacilityTrainerMons[monSetId].species;
move = gFacilityTrainerMons[monId].moves[0];
species = gFacilityTrainerMons[monId].species;
}
else if (trainerId < TRAINER_RECORD_MIXING_APPRENTICE)
{
@@ -2430,7 +2445,7 @@ static void sub_81646BC(u16 trainerId, u16 monSetId)
static void ShowPartnerCandidateMessage(void)
{
s32 i, j, partnerId;
s32 monSetId;
s32 monId;
s32 level = SetFacilityPtrsGetLevel();
u16 winStreak = GetCurrentFacilityWinStreak();
s32 challengeNum = winStreak / 7;
@@ -2448,7 +2463,7 @@ static void ShowPartnerCandidateMessage(void)
case PARTNER_MSGID_INTRO:
if (trainerId == TRAINER_EREADER)
return;
if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
if (trainerId < FRONTIER_TRAINERS_COUNT)
{
GetFrontierTrainerName(gStringVar1, trainerId);
}
@@ -2468,16 +2483,16 @@ static void ShowPartnerCandidateMessage(void)
}
break;
case PARTNER_MSGID_MON1:
monSetId = gSaveBlock2Ptr->frontier.trainerIds[8 + k * 2];
sub_81646BC(trainerId, monSetId);
monId = gSaveBlock2Ptr->frontier.trainerIds[8 + k * 2];
sub_81646BC(trainerId, monId);
break;
case PARTNER_MSGID_MON2_ASK:
monSetId = gSaveBlock2Ptr->frontier.trainerIds[9 + k * 2];
sub_81646BC(trainerId, monSetId);
monId = gSaveBlock2Ptr->frontier.trainerIds[9 + k * 2];
sub_81646BC(trainerId, monId);
break;
case PARTNER_MSGID_ACCEPT:
gPartnerTrainerId = trainerId;
if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
if (trainerId < FRONTIER_TRAINERS_COUNT)
{
gSaveBlock2Ptr->frontier.trainerIds[18] = gSaveBlock2Ptr->frontier.trainerIds[8 + k * 2];
gSaveBlock2Ptr->frontier.trainerIds[19] = gSaveBlock2Ptr->frontier.trainerIds[9 + k * 2];
@@ -2496,7 +2511,7 @@ static void ShowPartnerCandidateMessage(void)
{
while (1)
{
i = sub_8162548(challengeNum, k / 2);
i = GetRandomScaledFrontierTrainerId(challengeNum, k / 2);
if (gPartnerTrainerId == i)
continue;
@@ -2520,7 +2535,7 @@ static void ShowPartnerCandidateMessage(void)
return;
// First check is redundant, only needs to make sure it's not an Apprentice
if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
if (trainerId < FRONTIER_TRAINERS_COUNT)
{
ShowFieldMessage(sPartnerTrainerTextTables[partnerId].strings[gSpecialVar_0x8005]);
}
@@ -2575,7 +2590,7 @@ static void LoadLinkMultiOpponentsData(void)
{
do
{
trainerId = sub_8162548(challengeNum, i / 2);
trainerId = GetRandomScaledFrontierTrainerId(challengeNum, i / 2);
for (j = 0; j < i; j++)
{
if (gSaveBlock2Ptr->frontier.trainerIds[j] == trainerId)
@@ -2926,7 +2941,7 @@ static void FillPartnerParty(u16 trainerId)
s32 i, j;
u32 ivs, level;
u32 friendship;
u16 monSetId;
u16 monId;
u32 otID;
u8 trainerName[PLAYER_NAME_LENGTH + 1];
SetFacilityPtrsGetLevel();
@@ -2960,30 +2975,30 @@ static void FillPartnerParty(u16 trainerId)
// Scrapped, lol.
trainerName[0] = gGameLanguage;
}
else if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
else if (trainerId < FRONTIER_TRAINERS_COUNT)
{
level = SetFacilityPtrsGetLevel();
ivs = GetFrontierTrainerFixedIvs(trainerId);
otID = Random32();
for (i = 0; i < 2; i++)
{
monSetId = gSaveBlock2Ptr->frontier.trainerIds[i + 18];
monId = gSaveBlock2Ptr->frontier.trainerIds[i + 18];
CreateMonWithEVSpreadNatureOTID(&gPlayerParty[3 + i],
gFacilityTrainerMons[monSetId].species,
gFacilityTrainerMons[monId].species,
level,
gFacilityTrainerMons[monSetId].nature,
gFacilityTrainerMons[monId].nature,
ivs,
gFacilityTrainerMons[monSetId].evSpread,
gFacilityTrainerMons[monId].evSpread,
otID);
friendship = 0xFF;
friendship = MAX_FRIENDSHIP;
for (j = 0; j < MAX_MON_MOVES; j++)
{
SetMonMoveSlot(&gPlayerParty[3 + i], gFacilityTrainerMons[monSetId].moves[j], j);
if (gFacilityTrainerMons[monSetId].moves[j] == MOVE_FRUSTRATION)
SetMonMoveSlot(&gPlayerParty[3 + i], gFacilityTrainerMons[monId].moves[j], j);
if (gFacilityTrainerMons[monId].moves[j] == MOVE_FRUSTRATION)
friendship = 0;
}
SetMonData(&gPlayerParty[3 + i], MON_DATA_FRIENDSHIP, &friendship);
SetMonData(&gPlayerParty[3 + i], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]);
SetMonData(&gPlayerParty[3 + i], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId]);
for (j = 0; j < PLAYER_NAME_LENGTH + 1; j++)
trainerName[j] = gFacilityTrainers[trainerId].trainerName[j];
SetMonData(&gPlayerParty[3 + i], MON_DATA_OT_NAME, &trainerName);
@@ -3164,7 +3179,7 @@ void GetBattleTowerTrainerLanguage(u8 *dst, u16 trainerId)
{
*dst = gGameLanguage;
}
else if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
else if (trainerId < FRONTIER_TRAINERS_COUNT)
{
*dst = gGameLanguage;
}
@@ -3237,28 +3252,30 @@ s32 GetHighestLevelInPlayerParty(void)
return highestLevel;
}
// Frontier Trainer parties are roughly scaled in difficulty with higher trainer IDs, so scale IVs as well
// Duplicated in Battle Dome as GetDomeTrainerMonIvs
static u8 GetFrontierTrainerFixedIvs(u16 trainerId)
{
u8 fixedIV = 0;
u8 fixedIv;
if (trainerId < 100)
fixedIV = 3;
else if (trainerId < 120)
fixedIV = 6;
else if (trainerId < 140)
fixedIV = 9;
else if (trainerId < 160)
fixedIV = 12;
else if (trainerId < 180)
fixedIV = 15;
else if (trainerId < 200)
fixedIV = 18;
else if (trainerId < 220)
fixedIV = 21;
else
fixedIV = 31;
if (trainerId <= FRONTIER_TRAINER_JILL) // 0 - 99
fixedIv = 3;
else if (trainerId <= FRONTIER_TRAINER_CHLOE) // 100 - 119
fixedIv = 6;
else if (trainerId <= FRONTIER_TRAINER_SOFIA) // 120 - 139
fixedIv = 9;
else if (trainerId <= FRONTIER_TRAINER_JAZLYN) // 140 - 159
fixedIv = 12;
else if (trainerId <= FRONTIER_TRAINER_ALISON) // 160 - 179
fixedIv = 15;
else if (trainerId <= FRONTIER_TRAINER_LAMAR) // 180 - 199
fixedIv = 18;
else if (trainerId <= FRONTIER_TRAINER_TESS) // 200 - 219
fixedIv = 21;
else // 220+ (- 299)
fixedIv = 31;
return fixedIV;
return fixedIv;
}
static u16 sub_8165D40(void)
@@ -3280,19 +3297,19 @@ static u16 sub_8165D40(void)
static u8 SetTentPtrsGetLevel(void)
{
u8 level = 30;
u32 tentFacility = VarGet(VAR_FRONTIER_FACILITY);
u32 facility = VarGet(VAR_FRONTIER_FACILITY);
if (tentFacility == TENT_SLATEPORT)
if (facility == FRONTIER_FACILITY_FACTORY)
{
gFacilityTrainers = gSlateportBattleTentTrainers;
gFacilityTrainerMons = gSlateportBattleTentMons;
}
else if (tentFacility == TENT_VERDANTURF)
else if (facility == FRONTIER_FACILITY_PALACE)
{
gFacilityTrainers = gVerdanturfBattleTentTrainers;
gFacilityTrainerMons = gVerdanturfBattleTentMons;
}
else if (tentFacility == TENT_FALLARBOR)
else if (facility == FRONTIER_FACILITY_ARENA)
{
gFacilityTrainers = gFallarborBattleTentTrainers;
gFacilityTrainerMons = gFallarborBattleTentMons;
@@ -3339,19 +3356,19 @@ static void FillTentTrainerParty_(u16 trainerId, u8 firstMonId, u8 monCount)
u8 level = SetTentPtrsGetLevel();
u8 fixedIV = 0;
u8 bfMonCount;
const u16 *monSets = NULL;
const u16 *monSet = NULL;
u32 otID = 0;
u16 monSetId;
u16 monId;
monSets = gFacilityTrainers[gTrainerBattleOpponent_A].monSets;
monSet = gFacilityTrainers[gTrainerBattleOpponent_A].monSet;
bfMonCount = 0;
monSetId = monSets[bfMonCount];
while (monSetId != 0xFFFF)
monId = monSet[bfMonCount];
while (monId != 0xFFFF)
{
bfMonCount++;
monSetId = monSets[bfMonCount];
if (monSetId == 0xFFFF)
monId = monSet[bfMonCount];
if (monId == 0xFFFF)
break;
}
@@ -3359,12 +3376,12 @@ static void FillTentTrainerParty_(u16 trainerId, u8 firstMonId, u8 monCount)
otID = Random32();
while (i != monCount)
{
u16 monSetId = monSets[Random() % bfMonCount];
u16 monId = monSet[Random() % bfMonCount];
// Ensure this pokemon species isn't a duplicate.
for (j = 0; j < i + firstMonId; j++)
{
if (GetMonData(&gEnemyParty[j], MON_DATA_SPECIES, NULL) == gFacilityTrainerMons[monSetId].species)
if (GetMonData(&gEnemyParty[j], MON_DATA_SPECIES, NULL) == gFacilityTrainerMons[monId].species)
break;
}
if (j != i + firstMonId)
@@ -3374,7 +3391,7 @@ static void FillTentTrainerParty_(u16 trainerId, u8 firstMonId, u8 monCount)
for (j = 0; j < i + firstMonId; j++)
{
if (GetMonData(&gEnemyParty[j], MON_DATA_HELD_ITEM, NULL) != 0
&& GetMonData(&gEnemyParty[j], MON_DATA_HELD_ITEM, NULL) == gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId])
&& GetMonData(&gEnemyParty[j], MON_DATA_HELD_ITEM, NULL) == gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId])
break;
}
if (j != i + firstMonId)
@@ -3384,34 +3401,34 @@ static void FillTentTrainerParty_(u16 trainerId, u8 firstMonId, u8 monCount)
// because the species and held items were already checked directly above.
for (j = 0; j < i; j++)
{
if (chosenMonIndices[j] == monSetId)
if (chosenMonIndices[j] == monId)
break;
}
if (j != i)
continue;
chosenMonIndices[i] = monSetId;
chosenMonIndices[i] = monId;
// Place the chosen pokemon into the trainer's party.
CreateMonWithEVSpreadNatureOTID(&gEnemyParty[i + firstMonId],
gFacilityTrainerMons[monSetId].species,
gFacilityTrainerMons[monId].species,
level,
gFacilityTrainerMons[monSetId].nature,
gFacilityTrainerMons[monId].nature,
fixedIV,
gFacilityTrainerMons[monSetId].evSpread,
gFacilityTrainerMons[monId].evSpread,
otID);
friendship = 255;
friendship = MAX_FRIENDSHIP;
// Give the chosen pokemon its specified moves.
for (j = 0; j < MAX_MON_MOVES; j++)
{
SetMonMoveSlot(&gEnemyParty[i + firstMonId], gFacilityTrainerMons[monSetId].moves[j], j);
if (gFacilityTrainerMons[monSetId].moves[j] == MOVE_FRUSTRATION)
SetMonMoveSlot(&gEnemyParty[i + firstMonId], gFacilityTrainerMons[monId].moves[j], j);
if (gFacilityTrainerMons[monId].moves[j] == MOVE_FRUSTRATION)
friendship = 0; // Frustration is more powerful the lower the pokemon's friendship is.
}
SetMonData(&gEnemyParty[i + firstMonId], MON_DATA_FRIENDSHIP, &friendship);
SetMonData(&gEnemyParty[i + firstMonId], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]);
SetMonData(&gEnemyParty[i + firstMonId], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId]);
// The pokemon was successfully added to the trainer's party, so it's safe to move on to
// the next party slot.
+1 -1
View File
@@ -5093,7 +5093,7 @@ static void sub_80DE864(u8 a)
gContestResources->field_18->unk4_0 = 1;
break;
case MOVE_RETURN:
gAnimFriendship = 0xFF;
gAnimFriendship = MAX_FRIENDSHIP;
break;
case MOVE_FRUSTRATION:
gAnimFriendship = 0;
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+5 -5
View File
@@ -995,7 +995,7 @@ u16 GetWeekCount(void)
u8 GetLeadMonFriendshipScore(void)
{
struct Pokemon *pokemon = &gPlayerParty[GetLeadMonIndex()];
if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) == 255)
if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) == MAX_FRIENDSHIP)
{
return 6;
}
@@ -1221,18 +1221,18 @@ void EndLotteryCornerComputerEffect(void)
DrawWholeMapView();
}
void SetTrickHouseEndRoomFlag(void)
void SetTrickHouseNuggetFlag(void)
{
u16 *specVar = &gSpecialVar_0x8004;
u16 flag = FLAG_TRICK_HOUSE_END_ROOM;
u16 flag = FLAG_HIDDEN_ITEM_TRICK_HOUSE_NUGGET;
*specVar = flag;
FlagSet(flag);
}
void ResetTrickHouseEndRoomFlag(void)
void ResetTrickHouseNuggetFlag(void)
{
u16 *specVar = &gSpecialVar_0x8004;
u16 flag = FLAG_TRICK_HOUSE_END_ROOM;
u16 flag = FLAG_HIDDEN_ITEM_TRICK_HOUSE_NUGGET;
*specVar = flag;
FlagClear(flag);
}
+10 -10
View File
@@ -1701,7 +1701,7 @@ void CopyFrontierTrainerText(u8 whichText, u16 trainerId)
FrontierSpeechToString(gSaveBlock2Ptr->frontier.ereaderTrainer.greeting);
else if (trainerId == TRAINER_FRONTIER_BRAIN)
CopyFrontierBrainText(FALSE);
else if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
else if (trainerId < FRONTIER_TRAINERS_COUNT)
FrontierSpeechToString(gFacilityTrainers[trainerId].speechBefore);
else if (trainerId < TRAINER_RECORD_MIXING_APPRENTICE)
FrontierSpeechToString(gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].greeting);
@@ -1717,7 +1717,7 @@ void CopyFrontierTrainerText(u8 whichText, u16 trainerId)
{
CopyFrontierBrainText(FALSE);
}
else if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
else if (trainerId < FRONTIER_TRAINERS_COUNT)
{
FrontierSpeechToString(gFacilityTrainers[trainerId].speechWin);
}
@@ -1745,7 +1745,7 @@ void CopyFrontierTrainerText(u8 whichText, u16 trainerId)
{
CopyFrontierBrainText(TRUE);
}
else if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
else if (trainerId < FRONTIER_TRAINERS_COUNT)
{
FrontierSpeechToString(gFacilityTrainers[trainerId].speechLose);
}
@@ -2490,7 +2490,7 @@ void SetFrontierBrainEventObjGfx_2(void)
void CreateFrontierBrainPokemon(void)
{
s32 i, j;
s32 monCountInBits;
s32 selectedMonBits;
s32 monPartyId;
s32 monLevel = 0;
u8 friendship;
@@ -2498,16 +2498,16 @@ void CreateFrontierBrainPokemon(void)
s32 symbol = GetFronterBrainSymbol();
if (facility == FRONTIER_FACILITY_DOME)
monCountInBits = GetDomeTrainerMonCountInBits(TrainerIdToDomeTournamentId(TRAINER_FRONTIER_BRAIN));
selectedMonBits = GetDomeTrainerSelectedMons(TrainerIdToDomeTournamentId(TRAINER_FRONTIER_BRAIN));
else
monCountInBits = 7;
selectedMonBits = (1 << FRONTIER_PARTY_SIZE) - 1; // all 3 mons selected
ZeroEnemyPartyMons();
monPartyId = 0;
monLevel = SetFacilityPtrsGetLevel();
for (i = 0; i < 3; monCountInBits >>= 1, i++)
for (i = 0; i < FRONTIER_PARTY_SIZE; selectedMonBits >>= 1, i++)
{
if (!(monCountInBits & 1))
if (!(selectedMonBits & 1))
continue;
do
@@ -2523,7 +2523,7 @@ void CreateFrontierBrainPokemon(void)
SetMonData(&gEnemyParty[monPartyId], MON_DATA_HELD_ITEM, &sFrontierBrainsMons[facility][symbol][i].heldItem);
for (j = 0; j < NUM_STATS; j++)
SetMonData(&gEnemyParty[monPartyId], MON_DATA_HP_EV + j, &sFrontierBrainsMons[facility][symbol][i].evs[j]);
friendship = 0xFF;
friendship = MAX_FRIENDSHIP;
for (j = 0; j < MAX_MON_MOVES; j++)
{
SetMonMoveSlot(&gEnemyParty[monPartyId], sFrontierBrainsMons[facility][symbol][i].moves[j], j);
@@ -2560,7 +2560,7 @@ void CreateFrontierBrainPokemon(void)
bl TrainerIdToDomeTournamentId\n\
lsls r0, 16\n\
lsrs r0, 16\n\
bl GetDomeTrainerMonCountInBits\n\
bl GetDomeTrainerSelectedMons\n\
adds r4, r0, 0\n\
b _081A4E46\n\
.pool\n\
+13 -19
View File
@@ -964,25 +964,19 @@ const u32 gVsLettersGfx[] = INCBIN_U32("graphics/battle_transitions/vs.4bpp.lz")
#include "data/graphics/battle_terrain.h"
const u32 gUnknown_08D82F10[] = INCBIN_U32("graphics/battle_frontier/tourney_bg.4bpp.lz");
const u32 gUnknown_08D834FC[] = INCBIN_U32("graphics/battle_frontier/tourney_line.4bpp.lz"); // the red glow mask for the tourney advancement lines
const u32 gUnknown_08D83900[] = INCBIN_U32("graphics/unknown/unknown_D83900.bin.lz"); // tilemaps likely
const u32 gUnknown_08D83B2C[] = INCBIN_U32("graphics/unknown/unknown_D83B2C.bin.lz");
const u32 gUnknown_08D83C3C[] = INCBIN_U32("graphics/unknown/unknown_D83C3C.bin.lz");
const u32 gUnknown_08D83D50[] = INCBIN_U32("graphics/battle_frontier/misc1.4bpp.lz");
const u32 gUnknown_08D84970[] = INCBIN_U32("graphics/unknown/unknown_D84970.bin.lz");
const u32 gUnknown_08D84F00[] = INCBIN_U32("graphics/unknown/unknown_D84F00.bin.lz");
const u32 gBattleFrontierGfx_DomeOptions[] = INCBIN_U32("graphics/battle_frontier/options.4bpp.lz");
const u32 gUnknown_08D85358[] = INCBIN_U32("graphics/battle_frontier/options_pal1.gbapal.lz");
const u32 gUnknown_08D85444[] = INCBIN_U32("graphics/battle_frontier/options_pal2.gbapal.lz"); // pokeball pal
const u32 gUnknown_08D854C8[] = INCBIN_U32("graphics/battle_frontier/options_pal3.gbapal.lz"); // arrow pal
// Battle Dome
const u32 gDomeTourneyBg_Gfx[] = INCBIN_U32("graphics/battle_frontier/tourney_bg.4bpp.lz");
const u32 gDomeTourneyLine_Gfx[] = INCBIN_U32("graphics/battle_frontier/tourney_line.4bpp.lz"); // the red glow mask for the tourney advancement lines
const u32 gDomeTourneyLineMask_Tilemap[] = INCBIN_U32("graphics/battle_frontier/tourney_line_mask_map.bin.lz");
const u32 gDomeTourneyLineDown_Tilemap[] = INCBIN_U32("graphics/battle_frontier/tourney_line_down_map.bin.lz");
const u32 gDomeTourneyLineUp_Tilemap[] = INCBIN_U32("graphics/battle_frontier/tourney_line_up_map.bin.lz");
const u32 gDomeTourneyInfoCard_Gfx[] = INCBIN_U32("graphics/battle_frontier/tourney_info_card.4bpp.lz");
const u32 gDomeTourneyInfoCard_Tilemap[] = INCBIN_U32("graphics/battle_frontier/tourney_info_card_tilemap.bin.lz");
const u32 gDomeTourneyInfoCardBg_Tilemap[] = INCBIN_U32("graphics/battle_frontier/tourney_info_card_bg.bin.lz");
const u32 gDomeTourneyTreeButtons_Gfx[] = INCBIN_U32("graphics/battle_frontier/tourney_buttons.4bpp.lz"); // exit/cancel and pokeball buttons
const u32 gDomeTourneyTree_Pal[] = INCBIN_U32("graphics/battle_frontier/tourney.gbapal.lz");
const u32 gDomeTourneyTreeButtons_Pal[] = INCBIN_U32("graphics/battle_frontier/tourney_buttons.gbapal.lz");
const u32 gDomeTourneyMatchCardBg_Pal[] = INCBIN_U32("graphics/battle_frontier/tourney_match_card_bg.gbapal.lz");
const u32 gBattleArenaJudgementSymbolsGfx[] = INCBIN_U32("graphics/battle_frontier/arena_judgement_symbols.4bpp.lz");
const u32 gBattleArenaJudgementSymbolsPalette[] = INCBIN_U32("graphics/battle_frontier/arena_judgement_symbols.gbapal.lz");
+8 -7
View File
@@ -101,7 +101,7 @@ static void SpriteCB_GetOnScreenAndAnimate(struct Sprite *sprite);
static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u8 unused2);
static void HallOfFame_PrintWelcomeText(u8 unusedPossiblyWindowId, u8 unused2);
static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2);
static void sub_8175364(u8 taskId);
static void Task_DoConfettiEffect(u8 taskId);
static void sub_81751A4(struct Sprite* sprite);
// const rom data
@@ -1387,12 +1387,13 @@ static bool8 sub_81751FC(void)
return FALSE;
}
void sub_8175280(void)
// Used when a Battle Dome tourney is won
void DoConfettiEffect(void)
{
u8 taskId;
gSpecialVar_0x8004 = 180;
taskId = CreateTask(sub_8175364, 0);
taskId = CreateTask(Task_DoConfettiEffect, 0);
if (taskId != 0xFF)
{
gTasks[taskId].data[1] = gSpecialVar_0x8004;
@@ -1400,11 +1401,11 @@ void sub_8175280(void)
}
}
static void sub_81752C0(void)
static void StopConfettiEffect(void)
{
u8 taskId;
if ((taskId = FindTaskIdByFunc(sub_8175364)) != 0xFF)
if ((taskId = FindTaskIdByFunc(Task_DoConfettiEffect)) != 0xFF)
DestroyTask(taskId);
sub_8152254();
@@ -1437,7 +1438,7 @@ static void sub_81752F4(struct UnkStruct_81520A8 *structPtr)
}
}
static void sub_8175364(u8 taskId)
static void Task_DoConfettiEffect(u8 taskId)
{
u32 var = 0;
u16 *data = gTasks[taskId].data;
@@ -1475,7 +1476,7 @@ static void sub_8175364(u8 taskId)
data[0] = 0xFF;
break;
case 0xFF:
sub_81752C0();
StopConfettiEffect();
gSpecialVar_0x8004 = var;
gSpecialVar_0x8005 = 0xFFFF;
break;
+1 -1
View File
@@ -542,7 +542,7 @@ static void CB2_ExitMailReadFreeVars(void)
case 1:
case 2:
FreeMonIconPalette(sub_80D2E84(sMailRead->mail->species));
sub_80D2EF8(&gSprites[sMailRead->monIconSprite]);
FreeAndDestroyMonIconSprite(&gSprites[sMailRead->monIconSprite]);
}
memset(sMailRead, 0, sizeof(*sMailRead));
ResetPaletteFade();
+2 -2
View File
@@ -445,7 +445,7 @@ void sub_801C61C(void)
{
u8 r6 = 0;
if (sWonderCardData->unk_017C != 0xFF)
sub_80D2EF8(&gSprites[sWonderCardData->unk_017C]);
FreeAndDestroyMonIconSprite(&gSprites[sWonderCardData->unk_017C]);
if (sWonderCardData->unk_0000.unk_09 != 0 && sWonderCardData->unk_0000.unk_08_0 == 1)
{
for (; r6 < sWonderCardData->unk_0000.unk_09; r6++)
@@ -456,7 +456,7 @@ void sub_801C61C(void)
}
if (sWonderCardData->unk_017D[r6][1] != 0xFF)
{
sub_80D2EF8(&gSprites[sWonderCardData->unk_017D[r6][1]]);
FreeAndDestroyMonIconSprite(&gSprites[sWonderCardData->unk_017D[r6][1]]);
}
}
FreeSpriteTilesByTag(0x8000);
+11 -10
View File
@@ -1334,7 +1334,7 @@ const struct SpindaSpot gSpindaSpotGraphics[] =
#include "data/pokemon/item_effects.h"
const s8 gNatureStatTable[][5] =
const s8 gNatureStatTable[][NUM_EV_STATS] =
{
// Atk Def Spd Sp.Atk Sp.Def
{ 0, 0, 0, 0, 0}, // Hardy
@@ -5086,8 +5086,8 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
}
if (friendship < 0)
friendship = 0;
if (friendship > 255)
friendship = 255;
if (friendship > MAX_FRIENDSHIP)
friendship = MAX_FRIENDSHIP;
SetMonData(mon, MON_DATA_FRIENDSHIP, &friendship);
retVal = FALSE;
}
@@ -5112,8 +5112,8 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
}
if (friendship < 0)
friendship = 0;
if (friendship > 255)
friendship = 255;
if (friendship > MAX_FRIENDSHIP)
friendship = MAX_FRIENDSHIP;
SetMonData(mon, MON_DATA_FRIENDSHIP, &friendship);
retVal = FALSE;
}
@@ -5137,8 +5137,8 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
}
if (friendship < 0)
friendship = 0;
if (friendship > 255)
friendship = 255;
if (friendship > MAX_FRIENDSHIP)
friendship = MAX_FRIENDSHIP;
SetMonData(mon, MON_DATA_FRIENDSHIP, &friendship);
retVal = FALSE;
}
@@ -5717,7 +5717,8 @@ u8 GetTrainerEncounterMusicId(u16 trainerOpponentId)
u16 ModifyStatByNature(u8 nature, u16 n, u8 statIndex)
{
if (statIndex < 1 || statIndex > 5)
// Dont modify HP, Accuracy, or Evasion by nature
if (statIndex <= STAT_HP || statIndex > NUM_EV_STATS)
{
// Should just be "return n", but it wouldn't match without this.
u16 retVal = n;
@@ -5788,8 +5789,8 @@ void AdjustFriendship(struct Pokemon *mon, u8 event)
}
if (friendship < 0)
friendship = 0;
if (friendship > 255)
friendship = 255;
if (friendship > MAX_FRIENDSHIP)
friendship = MAX_FRIENDSHIP;
SetMonData(mon, MON_DATA_FRIENDSHIP, &friendship);
}
}
+1 -1
View File
@@ -1128,7 +1128,7 @@ const u8 *GetMonIconPtr(u16 species, u32 personality, bool32 handleDeoxys)
return GetMonIconTiles(GetIconSpecies(species, personality), handleDeoxys);
}
void sub_80D2EF8(struct Sprite *sprite)
void FreeAndDestroyMonIconSprite(struct Sprite *sprite)
{
sub_80D328C(sprite);
}
+3 -3
View File
@@ -706,20 +706,20 @@ static void CB2_ReturnFromChooseBattleFrontierParty(void)
void ReducePlayerPartyToSelectedMons(void)
{
struct Pokemon party[4];
struct Pokemon party[MAX_FRONTIER_PARTY_SIZE];
int i;
CpuFill32(0, party, sizeof party);
// copy the selected pokemon according to the order.
for (i = 0; i < 4; i++)
for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++)
if (gSelectedOrderFromParty[i]) // as long as the order keeps going (did the player select 1 mon? 2? 3?), do not stop
party[i] = gPlayerParty[gSelectedOrderFromParty[i] - 1]; // index is 0 based, not literal
CpuFill32(0, gPlayerParty, sizeof gPlayerParty);
// overwrite the first 4 with the order copied to.
for (i = 0; i < 4; i++)
for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++)
gPlayerParty[i] = party[i];
CalculatePlayerPartyCount();