summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGriffinR <griffin.g.richards@gmail.com>2020-01-12 22:42:43 -0500
committerGitHub <noreply@github.com>2020-01-12 22:42:43 -0500
commit655910a16fcb7b62cf43b83bb00b21a9c3e55e82 (patch)
treea619369a0d8b263f82d660ad7800f4b42328bb07 /src
parent635267ce32bd696fe15391449efdf07fa35cf449 (diff)
parentfa5816915d2a089549bfae3851c36336eae35d43 (diff)
Merge branch 'master' into fix-eventobj
Diffstat (limited to 'src')
-rw-r--r--src/battle_controller_player.c3
-rw-r--r--src/battle_dome.c5103
-rw-r--r--src/battle_factory.c7
-rw-r--r--src/battle_interface.c308
-rw-r--r--src/battle_palace.c2
-rw-r--r--src/battle_pike.c10
-rw-r--r--src/battle_pyramid.c4
-rw-r--r--src/battle_setup.c12
-rw-r--r--src/battle_tent.c24
-rw-r--r--src/battle_tower.c353
-rw-r--r--src/cable_club.c9
-rw-r--r--src/contest.c2
-rw-r--r--src/data/battle_frontier/battle_frontier_mons.h1766
-rw-r--r--src/data/battle_frontier/battle_frontier_trainer_mons.h20200
-rw-r--r--src/data/battle_frontier/battle_frontier_trainers.h1202
-rw-r--r--src/data/battle_frontier/battle_tent.h2070
-rw-r--r--src/decoration.c3
-rw-r--r--src/dewford_trend.c6
-rw-r--r--src/easy_chat.c31
-rwxr-xr-xsrc/ereader_helpers.c10
-rw-r--r--src/field_control_avatar.c8
-rw-r--r--src/field_specials.c10
-rw-r--r--src/fldeff_misc.c82
-rw-r--r--src/frontier_util.c20
-rw-r--r--src/graphics.c32
-rw-r--r--src/hall_of_fame.c21
-rw-r--r--src/intro.c2
-rw-r--r--src/item.c3
-rw-r--r--src/link.c5
-rw-r--r--src/mail.c2
-rw-r--r--src/main_menu.c10
-rw-r--r--src/mauville_old_man.c2
-rw-r--r--src/mevent_801BAAC.c4
-rw-r--r--src/mevent_news.c1
-rw-r--r--src/new_game.c2
-rw-r--r--src/overworld.c4
-rw-r--r--src/pokemon.c21
-rw-r--r--src/pokemon_icon.c2
-rw-r--r--src/recorded_battle.c4
-rw-r--r--src/reset_rtc_screen.c4
-rw-r--r--src/reset_save_heap.c4
-rw-r--r--src/save.c295
-rwxr-xr-xsrc/script_pokemon_util_80F87D8.c46
-rw-r--r--src/secret_base.c482
-rw-r--r--src/start_menu.c12
-rw-r--r--src/trade.c8
-rw-r--r--src/tv.c375
47 files changed, 12204 insertions, 20382 deletions
diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c
index 161df3b82..7fe1ed24a 100644
--- a/src/battle_controller_player.c
+++ b/src/battle_controller_player.c
@@ -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)
{
diff --git a/src/battle_dome.c b/src/battle_dome.c
index 897269a30..746d195d9 100644
--- a/src/battle_dome.c
+++ b/src/battle_dome.c
@@ -1,6 +1,7 @@
#include "global.h"
#include "battle_dome.h"
#include "battle.h"
+#include "battle_main.h"
#include "battle_setup.h"
#include "battle_tower.h"
#include "frontier_util.h"
@@ -34,60 +35,80 @@
#include "constants/frontier_util.h"
#include "constants/species.h"
#include "constants/moves.h"
+#include "constants/pokemon.h"
#include "constants/trainers.h"
#include "constants/abilities.h"
#include "constants/songs.h"
#include "constants/battle_frontier.h"
#include "constants/rgb.h"
-struct BattleDomeStruct
+// Enough space to hold 2 match info cards worth of trainers and their parties
+#define NUM_INFOCARD_SPRITES ((FRONTIER_PARTY_SIZE + 1) * 4)
+#define NUM_INFOCARD_TRAINERS 2
+
+// An 'Info Card' is a trainer or match information page that can be viewed on the Tourney Tree
+struct TourneyTreeInfoCard
{
- u8 arr[DOME_TOURNAMENT_TRAINERS_COUNT];
- u8 unk_10;
- u8 unk_11[3];
+ u8 spriteIds[NUM_INFOCARD_SPRITES];
+ u8 pos;
+ u8 tournamentIds[NUM_INFOCARD_TRAINERS];
};
-struct UnkStruct_860DD10
+struct TourneyTreeLineSection
{
u8 x;
u8 y;
u16 src;
};
+#define DOME_TRAINERS gSaveBlock2Ptr->frontier.domeTrainers
+#define DOME_MONS gSaveBlock2Ptr->frontier.domeMonIds
+
+#define tState data[0]
+
+// Task data for Task_ShowTourneyTree
+#define tNotInteractive data[1]
+#define tIsPrevTourneyTree data[4]
+
+// Task data for Task_ShowTourneyInfoCard
+#define tTournamentId data[1]
+#define tMode data[2]
+#define tPrevTaskId data[3]
+
// This file's functions.
static u8 GetDomeTrainerMonIvs(u16 trainerId);
static void SwapDomeTrainers(int id1, int id2, u16 *statsArray);
static void CalcDomeMonStats(u16 species, int level, int ivs, u8 evBits, u8 nature, int *stats);
static void CreateDomeOpponentMons(u16 tournamentTrainerId);
-static int sub_818FCBC(u16 tournamentTrainerId, bool8 arg1);
-static int sub_818FDB8(u16 tournamentTrainerId, bool8 arg1);
+static int SelectOpponentMonsUsingPersonality(u16 tournamentTrainerId, bool8 arg1);
+static int SelectOpponentMonsUsingOtId(u16 tournamentTrainerId, bool8 arg1);
static int GetTypeEffectivenessPoints(int move, int species, int arg2);
-static int sub_818FEB4(int *arr, bool8 arg1);
-static void Task_ShowOpponentInfo(u8 taskId);
-static void sub_8190CD4(u8 taskId);
-static u8 sub_819221C(u8 taskId);
-static void InitDomeFacilityTrainersAndMons(void);
+static int SelectOpponentMonsFromParty(int *arr, bool8 arg1);
+static void Task_ShowTourneyInfoCard(u8 taskId);
+static void Task_HandleInfoCardInput(u8 taskId);
+static u8 Task_GetInfoCardInput(u8 taskId);
+static void SetFacilityTrainerAndMonPtrs(void);
static int TrainerIdToTournamentId(u16 trainerId);
static u16 TrainerIdOfPlayerOpponent(void);
static void Task_ShowTourneyTree(u8 taskId);
-static void sub_8194950(u8 taskId);
-static void CB2_BattleDome(void);
-static void VblankCb0_BattleDome(void);
+static void Task_HandleStaticTourneyTreeInput(u8 taskId);
+static void CB2_TourneyTree(void);
+static void VblankCb_TourneyInfoCard(void);
static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo);
-static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId);
-static int sub_8192F08(u8, u8*);
+static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTourneyId);
+static int BufferDomeWinString(u8, u8*);
static u8 GetDomeBrainTrainerPicId(void);
static u8 GetDomeBrainTrainerClass(void);
static void CopyDomeBrainTrainerName(u8 *str);
static void CopyDomeTrainerName(u8 *str, u16 trainerId);
-static void HblankCb_BattleDome(void);
-static void VblankCb1_BattleDome(void);
+static void HblankCb_TourneyTree(void);
+static void VblankCb_TourneyTree(void);
static u8 UpdateTourneyTreeCursor(u8 taskId);
static void DecideRoundWinners(u8 roundId);
static u8 sub_81953E8(u8 tournamentId, u8);
-static void sub_81948EC(u8, u8);
-static void sub_8190B40(struct Sprite *sprite);
-static void sub_8190C6C(struct Sprite *sprite);
+static void DrawTourneyAdvancementLine(u8, u8);
+static void SpriteCb_HorizontalScrollArrow(struct Sprite *sprite);
+static void SpriteCb_VerticalScrollArrow(struct Sprite *sprite);
static void InitDomeChallenge(void);
static void GetDomeData(void);
static void SetDomeData(void);
@@ -96,7 +117,7 @@ static void BufferDomeOpponentName(void);
static void InitDomeOpponentParty(void);
static void ShowDomeOpponentInfo(void);
static void ShowDomeTourneyTree(void);
-static void ShowPreviousDomeResultsTourneyTree(void);
+static void ShowPreviousDomeTourneyTree(void);
static void SetDomeOpponentId(void);
static void SetDomeOpponentGraphicsId(void);
static void ShowNonInteractiveDomeTourneyTree(void);
@@ -105,411 +126,415 @@ static void SaveDomeChallenge(void);
static void IncrementDomeStreaks(void);
static void ResetSketchedMoves(void);
static void RestoreDomePlayerPartyHeldItems(void);
-static void ReduceDomePlayerPartyTo3Mons(void);
+static void ReduceDomePlayerPartyToSelectedMons(void);
static void GetPlayerSeededBeforeOpponent(void);
static void BufferLastDomeWinnerName(void);
-static void sub_8194F58(void);
+static void InitRandomTourneyTreeResults(void);
static void InitDomeTrainers(void);
// EWRAM variables.
-EWRAM_DATA u32 gUnknown_0203CD70 = 0;
-static EWRAM_DATA u32 gUnknown_0203CD74 = 0;
-static EWRAM_DATA struct BattleDomeStruct *sBattleDomeStruct = {0};
+EWRAM_DATA u32 gPlayerPartyLostHP = 0; // never read
+static EWRAM_DATA u32 sPlayerPartyMaxHP = 0; // never read
+static EWRAM_DATA struct TourneyTreeInfoCard *sInfoCard = {0};
static EWRAM_DATA u8 *sTilemapBuffer = NULL;
-// Const rom data.
-static const u8 sMovePointsForDomeTrainers[MOVES_COUNT][DOME_TOURNAMENT_TRAINERS_COUNT] =
-{
- [MOVE_NONE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_POUND] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_KARATE_CHOP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_DOUBLE_SLAP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_COMET_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_MEGA_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_PAY_DAY] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_FIRE_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_ICE_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_THUNDER_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_SCRATCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_VICE_GRIP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_GUILLOTINE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0},
- [MOVE_RAZOR_WIND] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_SWORDS_DANCE] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0},
- [MOVE_CUT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_GUST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_WING_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_WHIRLWIND] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_FLY] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_BIND] = {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1},
- [MOVE_SLAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_VINE_WHIP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_STOMP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_DOUBLE_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_MEGA_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0},
- [MOVE_JUMP_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_ROLLING_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
- [MOVE_SAND_ATTACK] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_HEADBUTT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_HORN_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_FURY_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_HORN_DRILL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0},
- [MOVE_TACKLE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_BODY_SLAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_WRAP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
- [MOVE_TAKE_DOWN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_THRASH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_DOUBLE_EDGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_TAIL_WHIP] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_POISON_STING] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_TWINEEDLE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_PIN_MISSILE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_LEER] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_BITE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_GROWL] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_ROAR] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_SING] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_SUPERSONIC] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_SONIC_BOOM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_DISABLE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_ACID] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_EMBER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_FLAMETHROWER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1},
- [MOVE_MIST] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_WATER_GUN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_HYDRO_PUMP] = {1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0},
- [MOVE_SURF] = {1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0},
- [MOVE_ICE_BEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1},
- [MOVE_BLIZZARD] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1},
- [MOVE_PSYBEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_BUBBLE_BEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_AURORA_BEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_HYPER_BEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0},
- [MOVE_PECK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_DRILL_PECK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_SUBMISSION] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_LOW_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_COUNTER] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0},
- [MOVE_SEISMIC_TOSS] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_STRENGTH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_ABSORB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_MEGA_DRAIN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_LEECH_SEED] = {1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_GROWTH] = {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_RAZOR_LEAF] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_SOLAR_BEAM] = {1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0},
- [MOVE_POISON_POWDER] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_STUN_SPORE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_SLEEP_POWDER] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_PETAL_DANCE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_STRING_SHOT] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_DRAGON_RAGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_FIRE_SPIN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
- [MOVE_THUNDER_SHOCK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_THUNDERBOLT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1},
- [MOVE_THUNDER_WAVE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_THUNDER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1},
- [MOVE_ROCK_THROW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_EARTHQUAKE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0},
- [MOVE_FISSURE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0},
- [MOVE_DIG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_TOXIC] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1},
- [MOVE_CONFUSION] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_PSYCHIC] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1},
- [MOVE_HYPNOSIS] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_MEDITATE] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_AGILITY] = {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_QUICK_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_RAGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_TELEPORT] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_NIGHT_SHADE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_MIMIC] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_SCREECH] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_DOUBLE_TEAM] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_RECOVER] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_HARDEN] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_MINIMIZE] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_SMOKESCREEN] = {0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_CONFUSE_RAY] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_WITHDRAW] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_DEFENSE_CURL] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_BARRIER] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_LIGHT_SCREEN] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_HAZE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_REFLECT] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_FOCUS_ENERGY] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_BIDE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_METRONOME] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0},
- [MOVE_MIRROR_MOVE] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0},
- [MOVE_SELF_DESTRUCT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0},
- [MOVE_EGG_BOMB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0},
- [MOVE_LICK] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_SMOG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
- [MOVE_SLUDGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_BONE_CLUB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
- [MOVE_FIRE_BLAST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1},
- [MOVE_WATERFALL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_CLAMP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
- [MOVE_SWIFT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_SKULL_BASH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0},
- [MOVE_SPIKE_CANNON] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_CONSTRICT] = {0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_AMNESIA] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_KINESIS] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_SOFT_BOILED] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_HI_JUMP_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_GLARE] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_DREAM_EATER] = {1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0},
- [MOVE_POISON_GAS] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_BARRAGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_LEECH_LIFE] = {0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_LOVELY_KISS] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_SKY_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1},
- [MOVE_TRANSFORM] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_BUBBLE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_DIZZY_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_SPORE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_FLASH] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_PSYWAVE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_SPLASH] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_ACID_ARMOR] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_CRABHAMMER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},
- [MOVE_EXPLOSION] = {0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0},
- [MOVE_FURY_SWIPES] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_BONEMERANG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_REST] = {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_ROCK_SLIDE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
- [MOVE_HYPER_FANG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
- [MOVE_SHARPEN] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_CONVERSION] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_TRI_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_SUPER_FANG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_SLASH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_SUBSTITUTE] = {0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_STRUGGLE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0},
- [MOVE_SKETCH] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0},
- [MOVE_TRIPLE_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_THIEF] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_SPIDER_WEB] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_MIND_READER] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0},
- [MOVE_NIGHTMARE] = {1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_FLAME_WHEEL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_SNORE] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_CURSE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_FLAIL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_CONVERSION_2] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_AEROBLAST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0},
- [MOVE_COTTON_SPORE] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_REVERSAL] = {1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_SPITE] = {0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_POWDER_SNOW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_PROTECT] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0},
- [MOVE_MACH_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_SCARY_FACE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_FAINT_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_SWEET_KISS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_BELLY_DRUM] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_SLUDGE_BOMB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1},
- [MOVE_MUD_SLAP] = {0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_OCTAZOOKA] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
- [MOVE_SPIKES] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_ZAP_CANNON] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1},
- [MOVE_FORESIGHT] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_DESTINY_BOND] = {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0},
- [MOVE_PERISH_SONG] = {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0},
- [MOVE_ICY_WIND] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
- [MOVE_DETECT] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0},
- [MOVE_BONE_RUSH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_LOCK_ON] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0},
- [MOVE_OUTRAGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1},
- [MOVE_SANDSTORM] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_GIGA_DRAIN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0},
- [MOVE_ENDURE] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_CHARM] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_ROLLOUT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_FALSE_SWIPE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_SWAGGER] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
- [MOVE_MILK_DRINK] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_SPARK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_FURY_CUTTER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_STEEL_WING] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
- [MOVE_MEAN_LOOK] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0},
- [MOVE_ATTRACT] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_SLEEP_TALK] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0},
- [MOVE_HEAL_BELL] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0},
- [MOVE_RETURN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_PRESENT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0},
- [MOVE_FRUSTRATION] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_SAFEGUARD] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_PAIN_SPLIT] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_SACRED_FIRE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1},
- [MOVE_MAGNITUDE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_DYNAMIC_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1},
- [MOVE_MEGAHORN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},
- [MOVE_DRAGON_BREATH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_BATON_PASS] = {1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_ENCORE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0},
- [MOVE_PURSUIT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_RAPID_SPIN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_SWEET_SCENT] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_IRON_TAIL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1},
- [MOVE_METAL_CLAW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
- [MOVE_VITAL_THROW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_MORNING_SUN] = {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0},
- [MOVE_SYNTHESIS] = {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0},
- [MOVE_MOONLIGHT] = {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0},
- [MOVE_HIDDEN_POWER] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_CROSS_CHOP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0},
- [MOVE_TWISTER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_RAIN_DANCE] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0},
- [MOVE_SUNNY_DAY] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0},
- [MOVE_CRUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_MIRROR_COAT] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_PSYCH_UP] = {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_EXTREME_SPEED] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0},
- [MOVE_ANCIENT_POWER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1},
- [MOVE_SHADOW_BALL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_FUTURE_SIGHT] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_ROCK_SMASH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_WHIRLPOOL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
- [MOVE_BEAT_UP] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_FAKE_OUT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_UPROAR] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_STOCKPILE] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_SPIT_UP] = {1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0},
- [MOVE_SWALLOW] = {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_HEAT_WAVE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1},
- [MOVE_HAIL] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_TORMENT] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_FLATTER] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_WILL_O_WISP] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_MEMENTO] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_FACADE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_FOCUS_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0},
- [MOVE_SMELLING_SALT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_FOLLOW_ME] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_NATURE_POWER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_CHARGE] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_TAUNT] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_HELPING_HAND] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_TRICK] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_ROLE_PLAY] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_WISH] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_ASSIST] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0},
- [MOVE_INGRAIN] = {1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_SUPERPOWER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0},
- [MOVE_MAGIC_COAT] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0},
- [MOVE_RECYCLE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_REVENGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0},
- [MOVE_BRICK_BREAK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_YAWN] = {1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_KNOCK_OFF] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_ENDEAVOR] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0},
- [MOVE_ERUPTION] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0},
- [MOVE_SKILL_SWAP] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_IMPRISON] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0},
- [MOVE_REFRESH] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_GRUDGE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0},
- [MOVE_SNATCH] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0},
- [MOVE_SECRET_POWER] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_DIVE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_ARM_THRUST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_CAMOUFLAGE] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_TAIL_GLOW] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_LUSTER_PURGE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1},
- [MOVE_MIST_BALL] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1},
- [MOVE_FEATHER_DANCE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_TEETER_DANCE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_BLAZE_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
- [MOVE_MUD_SPORT] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_ICE_BALL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_NEEDLE_ARM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_SLACK_OFF] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_HYPER_VOICE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0},
- [MOVE_POISON_FANG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_CRUSH_CLAW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
- [MOVE_BLAST_BURN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0},
- [MOVE_HYDRO_CANNON] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0},
- [MOVE_METEOR_MASH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1},
- [MOVE_ASTONISH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_WEATHER_BALL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_AROMATHERAPY] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0},
- [MOVE_FAKE_TEARS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_AIR_CUTTER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_OVERHEAT] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1},
- [MOVE_ODOR_SLEUTH] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_ROCK_TOMB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
- [MOVE_SILVER_WIND] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1},
- [MOVE_METAL_SOUND] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_GRASS_WHISTLE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_TICKLE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_COSMIC_POWER] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_WATER_SPOUT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0},
- [MOVE_SIGNAL_BEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_SHADOW_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_EXTRASENSORY] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_SKY_UPPERCUT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_SAND_TOMB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
- [MOVE_SHEER_COLD] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0},
- [MOVE_MUDDY_WATER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1},
- [MOVE_BULLET_SEED] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_AERIAL_ACE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_ICICLE_SPEAR] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_IRON_DEFENSE] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_BLOCK] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0},
- [MOVE_HOWL] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_DRAGON_CLAW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_FRENZY_PLANT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0},
- [MOVE_BULK_UP] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_BOUNCE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1},
- [MOVE_MUD_SHOT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
- [MOVE_POISON_TAIL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_COVET] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_VOLT_TACKLE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0},
- [MOVE_MAGICAL_LEAF] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_WATER_SPORT] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_CALM_MIND] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_LEAF_BLADE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
- [MOVE_DRAGON_DANCE] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_ROCK_BLAST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_SHOCK_WAVE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
- [MOVE_WATER_PULSE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
- [MOVE_DOOM_DESIRE] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0},
- [MOVE_PSYCHO_BOOST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1},
+// Each move has an array of points for different move characteristics which contribute to a tourney trainers listed battle style (see sBattleStyleThresholds)
+// All move points are either 1 or 0, so theyre essentially flags saying whether or not the move has that characteristic
+static const u8 sBattleStyleMovePoints[MOVES_COUNT][NUM_MOVE_POINT_TYPES] =
+{
+ [MOVE_NONE] = {0},
+ [MOVE_POUND] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_KARATE_CHOP] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_DOUBLE_SLAP] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_COMET_PUNCH] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_MEGA_PUNCH] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_PAY_DAY] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_FIRE_PUNCH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_ICE_PUNCH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_THUNDER_PUNCH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_SCRATCH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_VICE_GRIP] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_GUILLOTINE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_RAZOR_WIND] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_SWORDS_DANCE] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_POPULAR] = 1},
+ [MOVE_CUT] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_GUST] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_WING_ATTACK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_WHIRLWIND] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_FLY] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_BIND] = {[MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_SLAM] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_VINE_WHIP] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_STOMP] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_DOUBLE_KICK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_MEGA_KICK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_JUMP_KICK] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_ROLLING_KICK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_SAND_ATTACK] = {[MOVE_POINTS_STAT_LOWER] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_HEADBUTT] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_HORN_ATTACK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_FURY_ATTACK] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_HORN_DRILL] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_TACKLE] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_BODY_SLAM] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_WRAP] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_TAKE_DOWN] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_THRASH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_DOUBLE_EDGE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_TAIL_WHIP] = {[MOVE_POINTS_STAT_LOWER] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_POISON_STING] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_TWINEEDLE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_PIN_MISSILE] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_LEER] = {[MOVE_POINTS_STAT_LOWER] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_BITE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_GROWL] = {[MOVE_POINTS_STAT_LOWER] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_ROAR] = {[MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_SING] = {[MOVE_POINTS_STATUS] = 1},
+ [MOVE_SUPERSONIC] = {[MOVE_POINTS_STATUS] = 1},
+ [MOVE_SONIC_BOOM] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_DISABLE] = {[MOVE_POINTS_STATUS] = 1},
+ [MOVE_ACID] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_EMBER] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_FLAMETHROWER] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POPULAR] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_MIST] = {0},
+ [MOVE_WATER_GUN] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_HYDRO_PUMP] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_SURF] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POPULAR] = 1, [MOVE_POINTS_STRONG] = 1},
+ [MOVE_ICE_BEAM] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POPULAR] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_BLIZZARD] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_PSYBEAM] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_BUBBLE_BEAM] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_AURORA_BEAM] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_HYPER_BEAM] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_POPULAR] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_PECK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_DRILL_PECK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_SUBMISSION] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_LOW_KICK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_COUNTER] = {[MOVE_POINTS_DEF] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LUCK] = 1},
+ [MOVE_SEISMIC_TOSS] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_STRENGTH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_ABSORB] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_MEGA_DRAIN] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_LEECH_SEED] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_STATUS] = 1},
+ [MOVE_GROWTH] = {[MOVE_POINTS_STAT_RAISE] = 1},
+ [MOVE_RAZOR_LEAF] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_SOLAR_BEAM] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_POPULAR] = 1, [MOVE_POINTS_STRONG] = 1},
+ [MOVE_POISON_POWDER] = {[MOVE_POINTS_STATUS] = 1},
+ [MOVE_STUN_SPORE] = {[MOVE_POINTS_STATUS] = 1},
+ [MOVE_SLEEP_POWDER] = {[MOVE_POINTS_STATUS] = 1},
+ [MOVE_PETAL_DANCE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_STRING_SHOT] = {[MOVE_POINTS_STAT_LOWER] = 1},
+ [MOVE_DRAGON_RAGE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_FIRE_SPIN] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_THUNDER_SHOCK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_THUNDERBOLT] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POPULAR] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_THUNDER_WAVE] = {[MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_THUNDER] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_ROCK_THROW] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_EARTHQUAKE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_POPULAR] = 1, [MOVE_POINTS_STRONG] = 1},
+ [MOVE_FISSURE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_LUCK] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_DIG] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_TOXIC] = {[MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_CONFUSION] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_PSYCHIC] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POPULAR] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_HYPNOSIS] = {[MOVE_POINTS_COMBO] = 1},
+ [MOVE_MEDITATE] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_STAT_RAISE] = 1},
+ [MOVE_AGILITY] = {[MOVE_POINTS_STAT_RAISE] = 1},
+ [MOVE_QUICK_ATTACK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_RAGE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_TELEPORT] = {0},
+ [MOVE_NIGHT_SHADE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_MIMIC] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_SCREECH] = {[MOVE_POINTS_STAT_LOWER] = 1},
+ [MOVE_DOUBLE_TEAM] = {[MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_DEF] = 1},
+ [MOVE_RECOVER] = {0},
+ [MOVE_HARDEN] = {[MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_DEF] = 1},
+ [MOVE_MINIMIZE] = {[MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_DEF] = 1},
+ [MOVE_SMOKESCREEN] = {[MOVE_POINTS_STAT_LOWER] = 1, [MOVE_POINTS_DEF] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_CONFUSE_RAY] = {[MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_WITHDRAW] = {[MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_DEF] = 1},
+ [MOVE_DEFENSE_CURL] = {[MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_DEF] = 1},
+ [MOVE_BARRIER] = {[MOVE_POINTS_DEF] = 1},
+ [MOVE_LIGHT_SCREEN] = {[MOVE_POINTS_DEF] = 1},
+ [MOVE_HAZE] = {0},
+ [MOVE_REFLECT] = {[MOVE_POINTS_DEF] = 1},
+ [MOVE_FOCUS_ENERGY] = {[MOVE_POINTS_COMBO] = 1},
+ [MOVE_BIDE] = {[MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_METRONOME] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_LUCK] = 1},
+ [MOVE_MIRROR_MOVE] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_LUCK] = 1},
+ [MOVE_SELF_DESTRUCT] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_EGG_BOMB] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1},
+ [MOVE_LICK] = {[MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_SMOG] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_SLUDGE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_BONE_CLUB] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_FIRE_BLAST] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_WATERFALL] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_CLAMP] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_SWIFT] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_SKULL_BASH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_STRONG] = 1},
+ [MOVE_SPIKE_CANNON] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_CONSTRICT] = {[MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_AMNESIA] = {[MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_DEF] = 1},
+ [MOVE_KINESIS] = {[MOVE_POINTS_STAT_LOWER] = 1},
+ [MOVE_SOFT_BOILED] = {[MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_HI_JUMP_KICK] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_GLARE] = {[MOVE_POINTS_STAT_LOWER] = 1},
+ [MOVE_DREAM_EATER] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_RARE] = 1, [MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_STRONG] = 1},
+ [MOVE_POISON_GAS] = {[MOVE_POINTS_STATUS] = 1},
+ [MOVE_BARRAGE] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_LEECH_LIFE] = {[MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_LOVELY_KISS] = {[MOVE_POINTS_STATUS] = 1},
+ [MOVE_SKY_ATTACK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_TRANSFORM] = {[MOVE_POINTS_RARE] = 1},
+ [MOVE_BUBBLE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_DIZZY_PUNCH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_SPORE] = {[MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_FLASH] = {0},
+ [MOVE_PSYWAVE] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_SPLASH] = {[MOVE_POINTS_RARE] = 1},
+ [MOVE_ACID_ARMOR] = {[MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_DEF] = 1},
+ [MOVE_CRABHAMMER] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_STRONG] = 1},
+ [MOVE_EXPLOSION] = {[MOVE_POINTS_RISKY] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_POPULAR] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_FURY_SWIPES] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_BONEMERANG] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_REST] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_HEAL] = 1},
+ [MOVE_ROCK_SLIDE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_HYPER_FANG] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_SHARPEN] = {[MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_DEF] = 1},
+ [MOVE_CONVERSION] = {[MOVE_POINTS_DEF] = 1},
+ [MOVE_TRI_ATTACK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_SUPER_FANG] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_SLASH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_SUBSTITUTE] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_DEF] = 1},
+ [MOVE_STRUGGLE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1}, // Odd that this is assigned qualities
+ [MOVE_SKETCH] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_LUCK] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_TRIPLE_KICK] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_THIEF] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_SPIDER_WEB] = {[MOVE_POINTS_STAT_LOWER] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_MIND_READER] = {[MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_NIGHTMARE] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_FLAME_WHEEL] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_SNORE] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_CURSE] = {[MOVE_POINTS_STATUS] = 1},
+ [MOVE_FLAIL] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_CONVERSION_2] = {[MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_AEROBLAST] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_COTTON_SPORE] = {[MOVE_POINTS_STAT_LOWER] = 1},
+ [MOVE_REVERSAL] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_SPITE] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_RISKY] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_POWDER_SNOW] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_PROTECT] = {[MOVE_POINTS_DEF] = 1, [MOVE_POINTS_POPULAR] = 1},
+ [MOVE_MACH_PUNCH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_SCARY_FACE] = {0},
+ [MOVE_FAINT_ATTACK] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_SWEET_KISS] = {0},
+ [MOVE_BELLY_DRUM] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_STAT_RAISE] = 1},
+ [MOVE_SLUDGE_BOMB] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_MUD_SLAP] = {[MOVE_POINTS_STAT_LOWER] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_OCTAZOOKA] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_SPIKES] = {[MOVE_POINTS_COMBO] = 1},
+ [MOVE_ZAP_CANNON] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_LUCK] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_FORESIGHT] = {[MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_DESTINY_BOND] = {[MOVE_POINTS_RISKY] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_PERISH_SONG] = {[MOVE_POINTS_RISKY] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_ICY_WIND] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_DETECT] = {[MOVE_POINTS_DEF] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_BONE_RUSH] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_LOCK_ON] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_OUTRAGE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_SANDSTORM] = {0},
+ [MOVE_GIGA_DRAIN] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_ENDURE] = {[MOVE_POINTS_DEF] = 1},
+ [MOVE_CHARM] = {[MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_ROLLOUT] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_FALSE_SWIPE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_SWAGGER] = {[MOVE_POINTS_EFFECT] = 1},
+ [MOVE_MILK_DRINK] = {[MOVE_POINTS_HEAL] = 1},
+ [MOVE_SPARK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_FURY_CUTTER] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_STEEL_WING] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_MEAN_LOOK] = {[MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_ATTRACT] = {[MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_SLEEP_TALK] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_LUCK] = 1},
+ [MOVE_HEAL_BELL] = {[MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_RETURN] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_PRESENT] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_LUCK] = 1},
+ [MOVE_FRUSTRATION] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_SAFEGUARD] = {[MOVE_POINTS_DEF] = 1},
+ [MOVE_PAIN_SPLIT] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_SACRED_FIRE] = {[MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_MAGNITUDE] = {[MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_DYNAMIC_PUNCH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_LUCK] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_MEGAHORN] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_STRONG] = 1},
+ [MOVE_DRAGON_BREATH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_BATON_PASS] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_RARE] = 1},
+ [MOVE_ENCORE] = {[MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_PURSUIT] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_RAPID_SPIN] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_SWEET_SCENT] = {[MOVE_POINTS_STAT_LOWER] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_IRON_TAIL] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_METAL_CLAW] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_VITAL_THROW] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_MORNING_SUN] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_SYNTHESIS] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_MOONLIGHT] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_HIDDEN_POWER] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_CROSS_CHOP] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_TWISTER] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_RAIN_DANCE] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_SUNNY_DAY] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_CRUNCH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_MIRROR_COAT] = {[MOVE_POINTS_DEF] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_PSYCH_UP] = {[MOVE_POINTS_STAT_RAISE] = 1},
+ [MOVE_EXTREME_SPEED] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_ANCIENT_POWER] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_SHADOW_BALL] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_FUTURE_SIGHT] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_DMG] = 1},
+ [MOVE_ROCK_SMASH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_WHIRLPOOL] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_BEAT_UP] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_FAKE_OUT] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_UPROAR] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_STOCKPILE] = {[MOVE_POINTS_COMBO] = 1},
+ [MOVE_SPIT_UP] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_STRONG] = 1},
+ [MOVE_SWALLOW] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_HEAL] = 1},
+ [MOVE_HEAT_WAVE] = {[MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_HAIL] = {0},
+ [MOVE_TORMENT] = {[MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_FLATTER] = {[MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_WILL_O_WISP] = {[MOVE_POINTS_STATUS] = 1},
+ [MOVE_MEMENTO] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_FACADE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_FOCUS_PUNCH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_STRONG] = 1},
+ [MOVE_SMELLING_SALT] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_FOLLOW_ME] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_NATURE_POWER] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_CHARGE] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_TAUNT] = {[MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_HELPING_HAND] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_TRICK] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_ROLE_PLAY] = {[MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_WISH] = {[MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_ASSIST] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LUCK] = 1},
+ [MOVE_INGRAIN] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_DEF] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_SUPERPOWER] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_MAGIC_COAT] = {[MOVE_POINTS_DEF] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LUCK] = 1},
+ [MOVE_RECYCLE] = {[MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_REVENGE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LUCK] = 1},
+ [MOVE_BRICK_BREAK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_YAWN] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_KNOCK_OFF] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_ENDEAVOR] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_ERUPTION] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_SKILL_SWAP] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_IMPRISON] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LUCK] = 1},
+ [MOVE_REFRESH] = {[MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_GRUDGE] = {[MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_SNATCH] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LUCK] = 1},
+ [MOVE_SECRET_POWER] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_DIVE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_ARM_THRUST] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_CAMOUFLAGE] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_TAIL_GLOW] = {[MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_LUSTER_PURGE] = {[MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_MIST_BALL] = {[MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_FEATHER_DANCE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_TEETER_DANCE] = {[MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_BLAZE_KICK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_MUD_SPORT] = {[MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_ICE_BALL] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_NEEDLE_ARM] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_SLACK_OFF] = {[MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_HYPER_VOICE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_STRONG] = 1},
+ [MOVE_POISON_FANG] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_CRUSH_CLAW] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_BLAST_BURN] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_HYDRO_CANNON] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_METEOR_MASH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_ASTONISH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_WEATHER_BALL] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_AROMATHERAPY] = {[MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_FAKE_TEARS] = {[MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_AIR_CUTTER] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_OVERHEAT] = {[MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_ODOR_SLEUTH] = {[MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_ROCK_TOMB] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_SILVER_WIND] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_METAL_SOUND] = {0},
+ [MOVE_GRASS_WHISTLE] = {0},
+ [MOVE_TICKLE] = {[MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_COSMIC_POWER] = {0},
+ [MOVE_WATER_SPOUT] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_SIGNAL_BEAM] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_SHADOW_PUNCH] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_EXTRASENSORY] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_SKY_UPPERCUT] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_SAND_TOMB] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_SHEER_COLD] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_LUCK] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_MUDDY_WATER] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_BULLET_SEED] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_AERIAL_ACE] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_ICICLE_SPEAR] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_IRON_DEFENSE] = {[MOVE_POINTS_DEF] = 1},
+ [MOVE_BLOCK] = {[MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_HOWL] = {0},
+ [MOVE_DRAGON_CLAW] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_FRENZY_PLANT] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_BULK_UP] = {[MOVE_POINTS_COMBO] = 1},
+ [MOVE_BOUNCE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_MUD_SHOT] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_POISON_TAIL] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_COVET] = {[MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_VOLT_TACKLE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1},
+ [MOVE_MAGICAL_LEAF] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_WATER_SPORT] = {[MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_CALM_MIND] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_STAT_RAISE] = 1},
+ [MOVE_LEAF_BLADE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1},
+ [MOVE_DRAGON_DANCE] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_STAT_RAISE] = 1},
+ [MOVE_ROCK_BLAST] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_SHOCK_WAVE] = {[MOVE_POINTS_DMG] = 1},
+ [MOVE_WATER_PULSE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1},
+ [MOVE_DOOM_DESIRE] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1},
+ [MOVE_PSYCHO_BOOST] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1},
};
-static const u8 gUnknown_0860C988[][DOME_TOURNAMENT_TRAINERS_COUNT] =
-{
- {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 2, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0},
- {1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0},
- {3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- {0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- {0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- {0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0},
- {0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0},
- {0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0},
- {0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0},
- {2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 4, 0, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+// This array is searched in-order to determine what battle style a tourney trainer uses.
+// If the sum of the points for the party's moves meets/exceeds all the point totals of an element, then they use that battle style
+static const u8 sBattleStyleThresholds[NUM_BATTLE_STYLES - 1][NUM_MOVE_POINT_TYPES] =
+{
+ [DOME_BATTLE_STYLE_RISKY] = {[MOVE_POINTS_RISKY] = 1},
+ [DOME_BATTLE_STYLE_STALL] = {[MOVE_POINTS_HEAL] = 2, [MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_DEF] = 2},
+ [DOME_BATTLE_STYLE_VARIED] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_STAT_LOWER] = 1, [MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_DEF] = 1},
+ [DOME_BATTLE_STYLE_COMBO_HIGH] = {[MOVE_POINTS_COMBO] = 3},
+ [DOME_BATTLE_STYLE_RARE_MOVES] = {[MOVE_POINTS_RARE] = 2},
+ [DOME_BATTLE_STYLE_RARE_MOVE] = {[MOVE_POINTS_RARE] = 1},
+ [DOME_BATTLE_STYLE_HP] = {[MOVE_POINTS_HEAL] = 3},
+ [DOME_BATTLE_STYLE_STORE_POWER] = {[MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_HEAL] = 1},
+ [DOME_BATTLE_STYLE_ENFEEBLE_LOW] = {[MOVE_POINTS_STAT_LOWER] = 1, [MOVE_POINTS_STATUS] = 1},
+ [DOME_BATTLE_STYLE_LUCK] = {[MOVE_POINTS_LUCK] = 2},
+ [DOME_BATTLE_STYLE_REGAL] = {[MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_DEF] = 1, [MOVE_POINTS_POPULAR] = 1, [MOVE_POINTS_STRONG] = 1},
+ [DOME_BATTLE_STYLE_LOW_PP] = {[MOVE_POINTS_LOW_PP] = 3},
+ [DOME_BATTLE_STYLE_STATUS_ATK] = {[MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_STATUS] = 1},
+ [DOME_BATTLE_STYLE_ENDURE] = {[MOVE_POINTS_HEAL] = 2, [MOVE_POINTS_DEF] = 2},
+ [DOME_BATTLE_STYLE_STATUS] = {[MOVE_POINTS_STATUS] = 2},
+ [DOME_BATTLE_STYLE_STRAIGHTFORWARD] = {[MOVE_POINTS_ACCURATE] = 3, [MOVE_POINTS_STRONG] = 3},
+ [DOME_BATTLE_STYLE_AGGRESSIVE] = {[MOVE_POINTS_STRONG] = 4},
+ [DOME_BATTLE_STYLE_DEF] = {[MOVE_POINTS_DEF] = 3},
+ [DOME_BATTLE_STYLE_ENFEEBLE_HIGH] = {[MOVE_POINTS_STAT_LOWER] = 2, [MOVE_POINTS_STATUS] = 2}, // BUG: This battle style is unobtainable; DOME_BATTLE_STYLE_ENFEEBLE_LOW will always succeed before it
+ [DOME_BATTLE_STYLE_POPULAR_POWER] = {[MOVE_POINTS_POWERFUL] = 3, [MOVE_POINTS_POPULAR] = 3},
+ [DOME_BATTLE_STYLE_COMBO_LOW] = {[MOVE_POINTS_COMBO] = 2},
+ [DOME_BATTLE_STYLE_ACCURATE] = {[MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_ACCURATE] = 3},
+ [DOME_BATTLE_STYLE_POWERFUL] = {[MOVE_POINTS_POWERFUL] = 4},
+ [DOME_BATTLE_STYLE_ATK_OVER_DEF] = {[MOVE_POINTS_DMG] = 7},
+ [DOME_BATTLE_STYLE_DEF_OVER_ATK] = {[MOVE_POINTS_DEF] = 4}, // BUG: This battle style is unobtainable; DOME_BATTLE_STYLE_DEF will always succeed before it
+ [DOME_BATTLE_STYLE_POPULAR_STRONG] = {[MOVE_POINTS_POPULAR] = 2, [MOVE_POINTS_STRONG] = 4},
+ [DOME_BATTLE_STYLE_EFFECTS] = {[MOVE_POINTS_EFFECT] = 4},
+ [DOME_BATTLE_STYLE_BALANCED] = {0}, // If no other thresholds are met, this battle style is used
+ [DOME_BATTLE_STYLE_UNUSED1] = {0}, // Here below is unreachable
+ [DOME_BATTLE_STYLE_UNUSED2] = {0},
+ [DOME_BATTLE_STYLE_UNUSED3] = {0},
+ //[DOME_BATTLE_STYLE_UNUSED4] = {0}, // Excluded here, presumably was meant to be a style just for Dome Ace Tucker
};
static const u8 sUnusedArray[] =
{
@@ -523,43 +548,47 @@ static const u8 sUnusedArray[] =
0, 0, 0, 254, 0, 0, 0, 0, 0,
};
-static const u8 sTourneyTreeCursorMovementMap[][5][4]=
-{
- {{0x07, 0x01, 0x08, 0x10}, {0x07, 0x01, 0x08, 0x10}, {0x07, 0x01, 0x08, 0x10}, {0x07, 0x01, 0x08, 0x10}, {0x07, 0x01, 0x08, 0x10}},
- {{0x00, 0x02, 0x09, 0x10}, {0x00, 0x02, 0x09, 0x10}, {0x00, 0x02, 0x09, 0x10}, {0x00, 0x02, 0x09, 0x10}, {0x00, 0x02, 0x09, 0x10}},
- {{0x01, 0x03, 0x0a, 0x11}, {0x01, 0x03, 0x0a, 0x11}, {0x01, 0x03, 0x0a, 0x11}, {0x01, 0x03, 0x0a, 0x11}, {0x01, 0x03, 0x0a, 0x11}},
- {{0x02, 0x04, 0x0b, 0x11}, {0x02, 0x04, 0x0b, 0x11}, {0x02, 0x04, 0x0b, 0x11}, {0x02, 0x04, 0x0b, 0x11}, {0x02, 0x04, 0x0b, 0x11}},
- {{0x03, 0x05, 0x0c, 0x12}, {0x03, 0x05, 0x0c, 0x12}, {0x03, 0x05, 0x0c, 0x12}, {0x03, 0x05, 0x0c, 0x12}, {0x03, 0x05, 0x0c, 0x12}},
- {{0x04, 0x06, 0x0d, 0x12}, {0x04, 0x06, 0x0d, 0x12}, {0x04, 0x06, 0x0d, 0x12}, {0x04, 0x06, 0x0d, 0x12}, {0x04, 0x06, 0x0d, 0x12}},
- {{0x05, 0x07, 0x0e, 0x13}, {0x05, 0x07, 0x0e, 0x13}, {0x05, 0x07, 0x0e, 0x13}, {0x05, 0x07, 0x0e, 0x13}, {0x05, 0x07, 0x0e, 0x13}},
- {{0x06, 0x00, 0x0f, 0x13}, {0x06, 0x00, 0x0f, 0x13}, {0x06, 0x00, 0x0f, 0x13}, {0x06, 0x00, 0x0f, 0x13}, {0x06, 0x00, 0x0f, 0x13}},
- {{0x1f, 0x09, 0x14, 0x1f}, {0x1f, 0x09, 0x14, 0x1f}, {0x1f, 0x09, 0x14, 0x1f}, {0x1f, 0x09, 0x14, 0x1f}, {0x1f, 0x09, 0x14, 0x1f}},
- {{0x08, 0x0a, 0x14, 0x01}, {0x08, 0x0a, 0x14, 0x01}, {0x08, 0x0a, 0x14, 0x01}, {0x08, 0x0a, 0x14, 0x01}, {0x08, 0x0a, 0x14, 0x01}},
- {{0x09, 0x0b, 0x15, 0x02}, {0x09, 0x0b, 0x15, 0x02}, {0x09, 0x0b, 0x15, 0x02}, {0x09, 0x0b, 0x15, 0x02}, {0x09, 0x0b, 0x15, 0x02}},
- {{0x0a, 0x0c, 0x15, 0x03}, {0x0a, 0x0c, 0x15, 0x03}, {0x0a, 0x0c, 0x15, 0x03}, {0x0a, 0x0c, 0x15, 0x03}, {0x0a, 0x0c, 0x15, 0x03}},
- {{0x0b, 0x0d, 0x16, 0x04}, {0x0b, 0x0d, 0x16, 0x04}, {0x0b, 0x0d, 0x16, 0x04}, {0x0b, 0x0d, 0x16, 0x04}, {0x0b, 0x0d, 0x16, 0x04}},
- {{0x0c, 0x0e, 0x16, 0x05}, {0x0c, 0x0e, 0x16, 0x05}, {0x0c, 0x0e, 0x16, 0x05}, {0x0c, 0x0e, 0x16, 0x05}, {0x0c, 0x0e, 0x16, 0x05}},
- {{0x0d, 0x0f, 0x17, 0x06}, {0x0d, 0x0f, 0x17, 0x06}, {0x0d, 0x0f, 0x17, 0x06}, {0x0d, 0x0f, 0x17, 0x06}, {0x0d, 0x0f, 0x17, 0x06}},
- {{0x0e, 0x1f, 0x17, 0x07}, {0x0e, 0x1f, 0x17, 0x07}, {0x0e, 0x1f, 0x17, 0x07}, {0x0e, 0x1f, 0x17, 0x07}, {0x0e, 0x1f, 0x17, 0x07}},
- {{0x13, 0x11, 0x00, 0x14}, {0x13, 0x11, 0x00, 0x18}, {0x13, 0x11, 0x00, 0x18}, {0x13, 0x11, 0x00, 0x18}, {0x13, 0x11, 0x00, 0x18}},
- {{0x10, 0x12, 0x02, 0x15}, {0x10, 0x12, 0x02, 0x18}, {0x10, 0x12, 0x02, 0x18}, {0x10, 0x12, 0x02, 0x18}, {0x10, 0x12, 0x02, 0x18}},
- {{0x11, 0x13, 0x04, 0x16}, {0x11, 0x13, 0x04, 0x19}, {0x11, 0x13, 0x04, 0x19}, {0x11, 0x13, 0x04, 0x19}, {0x11, 0x13, 0x04, 0x19}},
- {{0x12, 0x10, 0x06, 0x17}, {0x12, 0x10, 0x06, 0x19}, {0x12, 0x10, 0x06, 0x19}, {0x12, 0x10, 0x06, 0x19}, {0x12, 0x10, 0x06, 0x19}},
- {{0x17, 0x15, 0x10, 0x08}, {0x17, 0x15, 0x1a, 0x08}, {0x17, 0x15, 0x1a, 0x08}, {0x17, 0x15, 0x1a, 0x08}, {0x17, 0x15, 0x1a, 0x08}},
- {{0x14, 0x16, 0x11, 0x0a}, {0x14, 0x16, 0x1a, 0x0a}, {0x14, 0x16, 0x1a, 0x0a}, {0x14, 0x16, 0x1a, 0x0a}, {0x14, 0x16, 0x1a, 0x0a}},
- {{0x15, 0x17, 0x12, 0x0c}, {0x15, 0x17, 0x1b, 0x0c}, {0x15, 0x17, 0x1b, 0x0c}, {0x15, 0x17, 0x1b, 0x0c}, {0x15, 0x17, 0x1b, 0x0c}},
- {{0x16, 0x14, 0x13, 0x0e}, {0x16, 0x14, 0x1b, 0x0e}, {0x16, 0x14, 0x1b, 0x0e}, {0x16, 0x14, 0x1b, 0x0e}, {0x16, 0x14, 0x1b, 0x0e}},
- {{0xff, 0xff, 0xff, 0xff}, {0x19, 0x19, 0x10, 0x1a}, {0x19, 0x19, 0x10, 0x1c}, {0x19, 0x19, 0x10, 0x1c}, {0x19, 0x19, 0x10, 0x1c}},
- {{0xff, 0xff, 0xff, 0xff}, {0x18, 0x18, 0x12, 0x1b}, {0x18, 0x18, 0x12, 0x1c}, {0x18, 0x18, 0x12, 0x1c}, {0x18, 0x18, 0x12, 0x1c}},
- {{0xff, 0xff, 0xff, 0xff}, {0x1b, 0x1b, 0x18, 0x14}, {0x1b, 0x1b, 0x1d, 0x14}, {0x1b, 0x1b, 0x1d, 0x14}, {0x1b, 0x1b, 0x1d, 0x14}},
- {{0xff, 0xff, 0xff, 0xff}, {0x1a, 0x1a, 0x19, 0x16}, {0x1a, 0x1a, 0x1d, 0x16}, {0x1a, 0x1a, 0x1d, 0x16}, {0x1a, 0x1a, 0x1d, 0x16}},
- {{0xff, 0xff, 0xff, 0xff}, {0xff, 0xff, 0xff, 0xff}, {0xff, 0xff, 0x18, 0x1d}, {0xff, 0xff, 0x18, 0x1e}, {0xff, 0xff, 0x18, 0x1e}},
- {{0xff, 0xff, 0xff, 0xff}, {0xff, 0xff, 0xff, 0xff}, {0xff, 0xff, 0x1c, 0x1a}, {0xff, 0xff, 0x1e, 0x1a}, {0xff, 0xff, 0x1e, 0x1a}},
- {{0xff, 0xff, 0xff, 0xff}, {0xff, 0xff, 0xff, 0xff}, {0xff, 0xff, 0xff, 0xff}, {0xff, 0xff, 0x1c, 0x1d}, {0xff, 0xff, 0x1c, 0x1d}},
- {{0x0f, 0x08, 0x08, 0x00}, {0x0f, 0x08, 0x08, 0x00}, {0x0f, 0x08, 0x08, 0x00}, {0x0f, 0x08, 0x08, 0x00}, {0x0f, 0x08, 0x08, 0x00}},
+// 1st array is for cursor position (sprite id): cursor can be on a trainer info button, a match info button, or the exit/cancel button
+// 2nd array is for round count. For some reason this array contains an inaccessible Round 5 which is identical to Round 4
+// 3rd array is movement direction (see the MOVE_DIR_* constants in UpdateTourneyTreeCursor)
+// The values are sprite IDs for the cursor position to move to, with 0xFF being an invalid move
+static const u8 sTourneyTreeCursorMovementMap[DOME_TOURNAMENT_TRAINERS_COUNT + DOME_TOURNAMENT_MATCHES_COUNT + 1][DOME_ROUNDS_COUNT + 1][4]=
+{
+ [0] = {{ 7, 1, 8, 16}, { 7, 1, 8, 16}, { 7, 1, 8, 16}, { 7, 1, 8, 16}, { 7, 1, 8, 16}},
+ [1] = {{ 0, 2, 9, 16}, { 0, 2, 9, 16}, { 0, 2, 9, 16}, { 0, 2, 9, 16}, { 0, 2, 9, 16}},
+ [2] = {{ 1, 3, 10, 17}, { 1, 3, 10, 17}, { 1, 3, 10, 17}, { 1, 3, 10, 17}, { 1, 3, 10, 17}},
+ [3] = {{ 2, 4, 11, 17}, { 2, 4, 11, 17}, { 2, 4, 11, 17}, { 2, 4, 11, 17}, { 2, 4, 11, 17}},
+ [4] = {{ 3, 5, 12, 18}, { 3, 5, 12, 18}, { 3, 5, 12, 18}, { 3, 5, 12, 18}, { 3, 5, 12, 18}},
+ [5] = {{ 4, 6, 13, 18}, { 4, 6, 13, 18}, { 4, 6, 13, 18}, { 4, 6, 13, 18}, { 4, 6, 13, 18}},
+ [6] = {{ 5, 7, 14, 19}, { 5, 7, 14, 19}, { 5, 7, 14, 19}, { 5, 7, 14, 19}, { 5, 7, 14, 19}},
+ [7] = {{ 6, 0, 15, 19}, { 6, 0, 15, 19}, { 6, 0, 15, 19}, { 6, 0, 15, 19}, { 6, 0, 15, 19}},
+ [8] = {{ 31, 9, 20, 31}, { 31, 9, 20, 31}, { 31, 9, 20, 31}, { 31, 9, 20, 31}, { 31, 9, 20, 31}},
+ [9] = {{ 8, 10, 20, 1}, { 8, 10, 20, 1}, { 8, 10, 20, 1}, { 8, 10, 20, 1}, { 8, 10, 20, 1}},
+ [10] = {{ 9, 11, 21, 2}, { 9, 11, 21, 2}, { 9, 11, 21, 2}, { 9, 11, 21, 2}, { 9, 11, 21, 2}},
+ [11] = {{ 10, 12, 21, 3}, { 10, 12, 21, 3}, { 10, 12, 21, 3}, { 10, 12, 21, 3}, { 10, 12, 21, 3}},
+ [12] = {{ 11, 13, 22, 4}, { 11, 13, 22, 4}, { 11, 13, 22, 4}, { 11, 13, 22, 4}, { 11, 13, 22, 4}},
+ [13] = {{ 12, 14, 22, 5}, { 12, 14, 22, 5}, { 12, 14, 22, 5}, { 12, 14, 22, 5}, { 12, 14, 22, 5}},
+ [14] = {{ 13, 15, 23, 6}, { 13, 15, 23, 6}, { 13, 15, 23, 6}, { 13, 15, 23, 6}, { 13, 15, 23, 6}},
+ [15] = {{ 14, 31, 23, 7}, { 14, 31, 23, 7}, { 14, 31, 23, 7}, { 14, 31, 23, 7}, { 14, 31, 23, 7}},
+ [16] = {{ 19, 17, 0, 20}, { 19, 17, 0, 24}, { 19, 17, 0, 24}, { 19, 17, 0, 24}, { 19, 17, 0, 24}},
+ [17] = {{ 16, 18, 2, 21}, { 16, 18, 2, 24}, { 16, 18, 2, 24}, { 16, 18, 2, 24}, { 16, 18, 2, 24}},
+ [18] = {{ 17, 19, 4, 22}, { 17, 19, 4, 25}, { 17, 19, 4, 25}, { 17, 19, 4, 25}, { 17, 19, 4, 25}},
+ [19] = {{ 18, 16, 6, 23}, { 18, 16, 6, 25}, { 18, 16, 6, 25}, { 18, 16, 6, 25}, { 18, 16, 6, 25}},
+ [20] = {{ 23, 21, 16, 8}, { 23, 21, 26, 8}, { 23, 21, 26, 8}, { 23, 21, 26, 8}, { 23, 21, 26, 8}},
+ [21] = {{ 20, 22, 17, 10}, { 20, 22, 26, 10}, { 20, 22, 26, 10}, { 20, 22, 26, 10}, { 20, 22, 26, 10}},
+ [22] = {{ 21, 23, 18, 12}, { 21, 23, 27, 12}, { 21, 23, 27, 12}, { 21, 23, 27, 12}, { 21, 23, 27, 12}},
+ [23] = {{ 22, 20, 19, 14}, { 22, 20, 27, 14}, { 22, 20, 27, 14}, { 22, 20, 27, 14}, { 22, 20, 27, 14}},
+ [24] = {{0xFF, 0xFF, 0xFF, 0xFF}, { 25, 25, 16, 26}, { 25, 25, 16, 28}, { 25, 25, 16, 28}, { 25, 25, 16, 28}},
+ [25] = {{0xFF, 0xFF, 0xFF, 0xFF}, { 24, 24, 18, 27}, { 24, 24, 18, 28}, { 24, 24, 18, 28}, { 24, 24, 18, 28}},
+ [26] = {{0xFF, 0xFF, 0xFF, 0xFF}, { 27, 27, 24, 20}, { 27, 27, 29, 20}, { 27, 27, 29, 20}, { 27, 27, 29, 20}},
+ [27] = {{0xFF, 0xFF, 0xFF, 0xFF}, { 26, 26, 25, 22}, { 26, 26, 29, 22}, { 26, 26, 29, 22}, { 26, 26, 29, 22}},
+ [28] = {{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 24, 29}, {0xFF, 0xFF, 24, 30}, {0xFF, 0xFF, 24, 30}},
+ [29] = {{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 28, 26}, {0xFF, 0xFF, 30, 26}, {0xFF, 0xFF, 30, 26}},
+ [30] = {{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 28, 29}, {0xFF, 0xFF, 28, 29}},
+ [31] = {{ 15, 8, 8, 0}, { 15, 8, 8, 0}, { 15, 8, 8, 0}, { 15, 8, 8, 0}, { 15, 8, 8, 0}}, // TOURNEY_TREE_CLOSE_BUTTON
};
-static const struct BgTemplate gUnknown_0860CE74[4] =
+static const struct BgTemplate sTourneyTreeBgTemplates[4] =
{
{
.bg = 0,
@@ -599,7 +628,7 @@ static const struct BgTemplate gUnknown_0860CE74[4] =
},
};
-static const struct BgTemplate gUnknown_0860CE84[4] =
+static const struct BgTemplate sInfoCardBgTemplates[4] =
{
{
.bg = 0,
@@ -639,7 +668,7 @@ static const struct BgTemplate gUnknown_0860CE84[4] =
},
};
-static const struct WindowTemplate gUnknown_0860CE94[] =
+static const struct WindowTemplate sTourneyTreeWindowTemplates[] =
{
{
.bg = 0,
@@ -671,7 +700,7 @@ static const struct WindowTemplate gUnknown_0860CE94[] =
DUMMY_WIN_TEMPLATE,
};
-static const struct WindowTemplate gUnknown_0860CEB4[] =
+static const struct WindowTemplate sInfoCardWindowTemplates[] =
{
{
.bg = 0,
@@ -845,19 +874,20 @@ static const struct ScanlineEffectParams sTourneyTreeScanlineEffectParams =
.initState = 1,
};
-static const struct CompressedSpriteSheet sDomeOptionsSpriteSheet[] =
+static const struct CompressedSpriteSheet sTourneyTreeButtonsSpriteSheet[] =
{
- {gBattleFrontierGfx_DomeOptions, 0x0600, 0x0000},
+ {gDomeTourneyTreeButtons_Gfx, 0x0600, 0x0000},
{},
};
-static const struct CompressedSpritePalette gUnknown_0860CF60[] =
+// Unused
+static const struct CompressedSpritePalette sTourneyTreeButtonsSpritePal[] =
{
- {gUnknown_08D85444, 0x0000},
+ {gDomeTourneyTreeButtons_Pal, 0x0000},
{},
};
-static const struct OamData gUnknown_0860CF70 =
+static const struct OamData sOamData_TourneyTreePokeball =
{
.y = 0,
.affineMode = ST_OAM_AFFINE_OFF,
@@ -874,7 +904,8 @@ static const struct OamData gUnknown_0860CF70 =
.affineParam = 0,
};
-static const struct OamData gUnknown_0860CF78 =
+// For Exit/Cancel buttons
+static const struct OamData sOamData_TourneyTreeCloseButton =
{
.y = 0,
.affineMode = ST_OAM_AFFINE_OFF,
@@ -891,7 +922,7 @@ static const struct OamData gUnknown_0860CF78 =
.affineParam = 0,
};
-static const struct OamData gUnknown_0860CF80 =
+static const struct OamData sOamData_VerticalScrollArrow =
{
.y = 0,
.affineMode = ST_OAM_AFFINE_OFF,
@@ -908,7 +939,7 @@ static const struct OamData gUnknown_0860CF80 =
.affineParam = 0,
};
-static const struct OamData gUnknown_0860CF88 =
+static const struct OamData sOamData_HorizontalScrollArrow =
{
.y = 0,
.affineMode = ST_OAM_AFFINE_OFF,
@@ -925,151 +956,153 @@ static const struct OamData gUnknown_0860CF88 =
.affineParam = 0,
};
-static const union AnimCmd gUnknown_0860CF90[] =
+static const union AnimCmd sSpriteAnim_TourneyTreePokeballNormal[] =
{
ANIMCMD_FRAME(20, 1),
ANIMCMD_END,
};
-static const union AnimCmd gUnknown_0860CF98[] =
+static const union AnimCmd sSpriteAnim_TourneyTreePokeballSelected[] =
{
ANIMCMD_FRAME(24, 1),
ANIMCMD_END,
};
-static const union AnimCmd * const gUnknown_0860CFA0[] =
+static const union AnimCmd * const sSpriteAnimTable_TourneyTreePokeball[] =
{
- gUnknown_0860CF90,
- gUnknown_0860CF98,
+ sSpriteAnim_TourneyTreePokeballNormal,
+ sSpriteAnim_TourneyTreePokeballSelected,
};
-static const struct SpriteTemplate gUnknown_0860CFA8 =
+// Sprite template for the pokeballs on the tourney tree that act as buttons to view a trainer/match info card
+static const struct SpriteTemplate sTourneyTreePokeballSpriteTemplate =
{
.tileTag = 0x0000,
.paletteTag = 0xffff,
- .oam = &gUnknown_0860CF70,
- .anims = gUnknown_0860CFA0,
+ .oam = &sOamData_TourneyTreePokeball,
+ .anims = sSpriteAnimTable_TourneyTreePokeball,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = SpriteCallbackDummy
+ .callback = SpriteCallbackDummy
};
-static const union AnimCmd gUnknown_0860CFC0[] =
+static const union AnimCmd sSpriteAnim_TourneyTreeCancelButtonNormal[] =
{
ANIMCMD_FRAME(8, 1),
ANIMCMD_END,
};
-static const union AnimCmd gUnknown_0860CFC8[] =
+static const union AnimCmd sSpriteAnim_TourneyTreeCancelButtonSelected[] =
{
ANIMCMD_FRAME(0, 1),
ANIMCMD_END,
};
-static const union AnimCmd * const gUnknown_0860CFD0[] =
+static const union AnimCmd * const sSpriteAnimTable_TourneyTreeCancelButton[] =
{
- gUnknown_0860CFC0,
- gUnknown_0860CFC8,
+ sSpriteAnim_TourneyTreeCancelButtonNormal,
+ sSpriteAnim_TourneyTreeCancelButtonSelected,
};
-static const struct SpriteTemplate gUnknown_0860CFD8 =
+static const struct SpriteTemplate sCancelButtonSpriteTemplate =
{
.tileTag = 0x0000,
.paletteTag = 0xffff,
- .oam = &gUnknown_0860CF78,
- .anims = gUnknown_0860CFD0,
+ .oam = &sOamData_TourneyTreeCloseButton,
+ .anims = sSpriteAnimTable_TourneyTreeCancelButton,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy
};
-static const union AnimCmd gUnknown_0860CFF0[] =
+static const union AnimCmd sSpriteAnim_TourneyTreeExitButtonNormal[] =
{
ANIMCMD_FRAME(40, 1),
ANIMCMD_END,
};
-static const union AnimCmd gUnknown_0860CFF8[] =
+static const union AnimCmd sSpriteAnim_TourneyTreeExitButtonSelected[] =
{
ANIMCMD_FRAME(32, 1),
ANIMCMD_END,
};
-static const union AnimCmd * const gUnknown_0860D000[] =
+static const union AnimCmd * const sSpriteAnimTable_TourneyTreeExitButton[] =
{
- gUnknown_0860CFF0,
- gUnknown_0860CFF8,
+ sSpriteAnim_TourneyTreeExitButtonNormal,
+ sSpriteAnim_TourneyTreeExitButtonSelected,
};
-static const struct SpriteTemplate gUnknown_0860D008 =
+static const struct SpriteTemplate sExitButtonSpriteTemplate =
{
.tileTag = 0x0000,
.paletteTag = 0xffff,
- .oam = &gUnknown_0860CF78,
- .anims = gUnknown_0860D000,
+ .oam = &sOamData_TourneyTreeCloseButton,
+ .anims = sSpriteAnimTable_TourneyTreeExitButton,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy
};
-static const union AnimCmd gUnknown_0860D020[] =
+static const union AnimCmd sSpriteAnim_UpArrow[] =
{
ANIMCMD_FRAME(18, 1),
ANIMCMD_END,
};
-static const union AnimCmd gUnknown_0860D028[] =
+static const union AnimCmd sSpriteAnim_DownArrow[] =
{
ANIMCMD_FRAME(18, 1, .vFlip = TRUE),
ANIMCMD_END,
};
-static const union AnimCmd gUnknown_0860D030[] =
+static const union AnimCmd sSpriteAnim_LeftArrow[] =
{
ANIMCMD_FRAME(16, 1, .hFlip = TRUE),
ANIMCMD_END,
};
-static const union AnimCmd gUnknown_0860D038[] =
+static const union AnimCmd sSpriteAnim_RightArrow[] =
{
ANIMCMD_FRAME(16, 1),
ANIMCMD_END,
};
-static const union AnimCmd * const gUnknown_0860D040[] =
+static const union AnimCmd * const sSpriteAnimTable_VerticalScrollArrow[] =
{
- gUnknown_0860D020,
- gUnknown_0860D028,
+ sSpriteAnim_UpArrow,
+ sSpriteAnim_DownArrow,
};
-static const union AnimCmd * const gUnknown_0860D048[] =
+static const union AnimCmd * const sSpriteAnimTable_HorizontalScrollArrow[] =
{
- gUnknown_0860D030,
- gUnknown_0860D038,
+ sSpriteAnim_LeftArrow,
+ sSpriteAnim_RightArrow,
};
-static const struct SpriteTemplate gUnknown_0860D050 =
+static const struct SpriteTemplate sHorizontalScrollArrowSpriteTemplate =
{
.tileTag = 0x0000,
.paletteTag = 0xffff,
- .oam = &gUnknown_0860CF88,
- .anims = gUnknown_0860D048,
+ .oam = &sOamData_HorizontalScrollArrow,
+ .anims = sSpriteAnimTable_HorizontalScrollArrow,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_8190B40
+ .callback = SpriteCb_HorizontalScrollArrow
};
-static const struct SpriteTemplate gUnknown_0860D068 =
+static const struct SpriteTemplate sVerticalScrollArrowSpriteTemplate =
{
.tileTag = 0x0000,
.paletteTag = 0xffff,
- .oam = &gUnknown_0860CF80,
- .anims = gUnknown_0860D040,
+ .oam = &sOamData_VerticalScrollArrow,
+ .anims = sSpriteAnimTable_VerticalScrollArrow,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_8190C6C
+ .callback = SpriteCb_VerticalScrollArrow
};
-static const u8 sTourneyTreeTrainerIds[] = {0, 8, 12, 4, 7, 15, 11, 3, 2, 10, 14, 6, 5, 13, 9, 1};
+// Organized by seed starting position, i.e. seed 0 battles seed 8 first
+static const u8 sTourneyTreeTrainerIds[DOME_TOURNAMENT_TRAINERS_COUNT] = {0, 8, 12, 4, 7, 15, 11, 3, 2, 10, 14, 6, 5, 13, 9, 1};
static void (* const sBattleDomeFunctions[])(void) =
{
@@ -1081,20 +1114,20 @@ static void (* const sBattleDomeFunctions[])(void) =
[BATTLE_DOME_FUNC_INIT_OPPONENT_PARTY] = InitDomeOpponentParty,
[BATTLE_DOME_FUNC_SHOW_OPPONENT_INFO] = ShowDomeOpponentInfo,
[BATTLE_DOME_FUNC_SHOW_TOURNEY_TREE] = ShowDomeTourneyTree,
- [BATTLE_DOME_FUNC_SHOW_PREV_RESULTS_TREE] = ShowPreviousDomeResultsTourneyTree,
+ [BATTLE_DOME_FUNC_SHOW_PREV_TOURNEY_TREE] = ShowPreviousDomeTourneyTree,
[BATTLE_DOME_FUNC_SET_OPPONENT_ID] = SetDomeOpponentId,
[BATTLE_DOME_FUNC_SET_OPPONENT_GFX] = SetDomeOpponentGraphicsId,
[BATTLE_DOME_FUNC_SHOW_STATIC_TOURNEY_TREE] = ShowNonInteractiveDomeTourneyTree,
[BATTLE_DOME_FUNC_RESOLVE_WINNERS] = ResolveDomeRoundWinners,
[BATTLE_DOME_FUNC_SAVE] = SaveDomeChallenge,
[BATTLE_DOME_FUNC_INCREMENT_STREAK] = IncrementDomeStreaks,
- [BATTLE_DOME_FUNC_SET_TRAINERS] = InitDomeFacilityTrainersAndMons,
+ [BATTLE_DOME_FUNC_SET_TRAINERS] = SetFacilityTrainerAndMonPtrs,
[BATTLE_DOME_FUNC_RESET_SKETCH] = ResetSketchedMoves,
[BATTLE_DOME_FUNC_RESTORE_HELD_ITEMS] = RestoreDomePlayerPartyHeldItems,
- [BATTLE_DOME_FUNC_REDUCE_PARTY] = ReduceDomePlayerPartyTo3Mons,
+ [BATTLE_DOME_FUNC_REDUCE_PARTY] = ReduceDomePlayerPartyToSelectedMons,
[BATTLE_DOME_FUNC_COMPARE_SEEDS] = GetPlayerSeededBeforeOpponent,
[BATTLE_DOME_FUNC_GET_WINNER_NAME] = BufferLastDomeWinnerName,
- [BATTLE_DOME_FUNC_21] = sub_8194F58,
+ [BATTLE_DOME_FUNC_INIT_RESULTS_TREE] = InitRandomTourneyTreeResults,
[BATTLE_DOME_FUNC_INIT_TRAINERS] = InitDomeTrainers,
};
@@ -1110,1139 +1143,941 @@ static const u32 sWinStreakMasks[][2] =
{~(STREAK_DOME_DOUBLES_50), ~(STREAK_DOME_DOUBLES_OPEN)},
};
+// TODO: The below two arrays probably need better names. The one below for example is only true of sIdToOpponentId[i][0]
static const u8 sIdToOpponentId[DOME_TOURNAMENT_TRAINERS_COUNT][DOME_ROUNDS_COUNT] =
{
- [0] = {8, 0, 4, 8},
- [1] = {9, 12, 8, 0},
- [2] = {10, 8, 12, 0},
- [3] = {11, 4, 0, 8},
- [4] = {12, 0, 4, 8},
- [5] = {13, 12, 8, 0},
- [6] = {14, 8, 12, 0},
- [7] = {15, 4, 0, 8},
- [8] = {0, 0, 4, 8},
- [9] = {1, 12, 8, 0},
- [10] = {2, 8, 12, 0},
- [11] = {3, 4, 0, 8},
- [12] = {4, 0, 4, 8},
- [13] = {5, 12, 8, 0},
- [14] = {6, 8, 12, 0},
- [15] = {7, 4, 0, 8},
+ [0] = { 8, 0, 4, 8},
+ [1] = { 9, 12, 8, 0},
+ [2] = {10, 8, 12, 0},
+ [3] = {11, 4, 0, 8},
+ [4] = {12, 0, 4, 8},
+ [5] = {13, 12, 8, 0},
+ [6] = {14, 8, 12, 0},
+ [7] = {15, 4, 0, 8},
+ [8] = { 0, 0, 4, 8},
+ [9] = { 1, 12, 8, 0},
+ [10] = { 2, 8, 12, 0},
+ [11] = { 3, 4, 0, 8},
+ [12] = { 4, 0, 4, 8},
+ [13] = { 5, 12, 8, 0},
+ [14] = { 6, 8, 12, 0},
+ [15] = { 7, 4, 0, 8},
};
-static const u8 gUnknown_0860D14C[] = {0x00, 0x08, 0x04, 0x0c, 0x07, 0x0f, 0x03, 0x0b, 0x02, 0x0a, 0x06, 0x0e, 0x05, 0x0d, 0x01, 0x09};
-
-static const u8 gUnknown_0860D15C[][4] =
-{
- {0x00, 0x08, 0x0c, 0x0e},
- {0x00, 0x08, 0x0c, 0x0e},
- {0x01, 0x08, 0x0c, 0x0e},
- {0x01, 0x08, 0x0c, 0x0e},
- {0x02, 0x09, 0x0c, 0x0e},
- {0x02, 0x09, 0x0c, 0x0e},
- {0x03, 0x09, 0x0c, 0x0e},
- {0x03, 0x09, 0x0c, 0x0e},
- {0x04, 0x0a, 0x0d, 0x0e},
- {0x04, 0x0a, 0x0d, 0x0e},
- {0x05, 0x0a, 0x0d, 0x0e},
- {0x05, 0x0a, 0x0d, 0x0e},
- {0x06, 0x0b, 0x0d, 0x0e},
- {0x06, 0x0b, 0x0d, 0x0e},
- {0x07, 0x0b, 0x0d, 0x0e},
- {0x07, 0x0b, 0x0d, 0x0e},
+// sTourneyTreeTrainerIds with every other pair swapped
+static const u8 sTourneyTreeTrainerOpponentIds[DOME_TOURNAMENT_TRAINERS_COUNT] = { 0, 8, 4, 12, 7, 15, 3, 11, 2, 10, 6, 14, 5, 13, 1, 9 };
+
+// The match number - 1 that a given tournament trainer will participate in for a given round
+static const u8 sIdToMatchNumber[DOME_TOURNAMENT_TRAINERS_COUNT][DOME_ROUNDS_COUNT] =
+{
+ { 0, 8, 12, 14},
+ { 0, 8, 12, 14},
+ { 1, 8, 12, 14},
+ { 1, 8, 12, 14},
+ { 2, 9, 12, 14},
+ { 2, 9, 12, 14},
+ { 3, 9, 12, 14},
+ { 3, 9, 12, 14},
+ { 4, 10, 13, 14},
+ { 4, 10, 13, 14},
+ { 5, 10, 13, 14},
+ { 5, 10, 13, 14},
+ { 6, 11, 13, 14},
+ { 6, 11, 13, 14},
+ { 7, 11, 13, 14},
+ { 7, 11, 13, 14},
};
-static const u8 gUnknown_0860D19C[] = {0x17, 0x1b, 0x1d, 0x1e};
+static const u8 sLastMatchCardNum[DOME_ROUNDS_COUNT] =
+{
+ [DOME_ROUND1] = 23,
+ [DOME_ROUND2] = 27,
+ [DOME_SEMIFINAL] = 29,
+ [DOME_FINAL] = 30
+};
-static const u8 gUnknown_0860D1A0[][4] =
+static const u8 gUnknown_0860D1A0[DOME_TOURNAMENT_TRAINERS_COUNT / 2][DOME_ROUNDS_COUNT] =
{
- {0x10, 0x18, 0x1c, 0x1e},
- {0x11, 0x18, 0x1c, 0x1e},
- {0x12, 0x19, 0x1c, 0x1e},
- {0x13, 0x19, 0x1c, 0x1e},
- {0x14, 0x1a, 0x1d, 0x1e},
- {0x15, 0x1a, 0x1d, 0x1e},
- {0x16, 0x1b, 0x1d, 0x1e},
- {0x17, 0x1b, 0x1d, 0x1e},
+ {16, 24, 28, 30},
+ {17, 24, 28, 30},
+ {18, 25, 28, 30},
+ {19, 25, 28, 30},
+ {20, 26, 29, 30},
+ {21, 26, 29, 30},
+ {22, 27, 29, 30},
+ {23, 27, 29, 30},
};
-static const u8 gUnknown_0860D1C0[] = {0x00, 0x0f, 0x08, 0x07, 0x03, 0x0c, 0x0b, 0x04, 0x01, 0x0e, 0x09, 0x06, 0x02, 0x0d, 0x0a, 0x05};
-
-static const u8 *const sBattleDomePotentialTexts[] =
-{
- gBattleDomeOpponentPotentialText1,
- gBattleDomeOpponentPotentialText2,
- gBattleDomeOpponentPotentialText3,
- gBattleDomeOpponentPotentialText4,
- gBattleDomeOpponentPotentialText5,
- gBattleDomeOpponentPotentialText6,
- gBattleDomeOpponentPotentialText7,
- gBattleDomeOpponentPotentialText8,
- gBattleDomeOpponentPotentialText9,
- gBattleDomeOpponentPotentialText10,
- gBattleDomeOpponentPotentialText11,
- gBattleDomeOpponentPotentialText12,
- gBattleDomeOpponentPotentialText13,
- gBattleDomeOpponentPotentialText14,
- gBattleDomeOpponentPotentialText15,
- gBattleDomeOpponentPotentialText16,
- gBattleDomeOpponentPotentialText17,
+static const u8 gUnknown_0860D1C0[DOME_TOURNAMENT_TRAINERS_COUNT] = {0, 15, 8, 7, 3, 12, 11, 4, 1, 14, 9, 6, 2, 13, 10, 5};
+
+// Each tourney trainer has a text describing their potential to win, depending on their seed ranking for the current tourney
+// Dome Ace Tucker has their own separate potential text
+static const u8 *const sBattleDomePotentialTexts[DOME_TOURNAMENT_TRAINERS_COUNT + 1] =
+{
+ BattleDome_Text_Potential1, // Highest potential
+ BattleDome_Text_Potential2,
+ BattleDome_Text_Potential3,
+ BattleDome_Text_Potential4,
+ BattleDome_Text_Potential5,
+ BattleDome_Text_Potential6,
+ BattleDome_Text_Potential7,
+ BattleDome_Text_Potential8,
+ BattleDome_Text_Potential9,
+ BattleDome_Text_Potential10,
+ BattleDome_Text_Potential11,
+ BattleDome_Text_Potential12,
+ BattleDome_Text_Potential13,
+ BattleDome_Text_Potential14,
+ BattleDome_Text_Potential15,
+ BattleDome_Text_Potential16, // Lowest potential
+ BattleDome_Text_PotentialDomeAceTucker,
};
-static const u8 *const sBattleDomeOpponentStyleTexts[] =
-{
- gBattleDomeOpponentStyleText1,
- gBattleDomeOpponentStyleText2,
- gBattleDomeOpponentStyleText3,
- gBattleDomeOpponentStyleText4,
- gBattleDomeOpponentStyleText5,
- gBattleDomeOpponentStyleText6,
- gBattleDomeOpponentStyleText7,
- gBattleDomeOpponentStyleText8,
- gBattleDomeOpponentStyleText9,
- gBattleDomeOpponentStyleText10,
- gBattleDomeOpponentStyleText11,
- gBattleDomeOpponentStyleText12,
- gBattleDomeOpponentStyleText13,
- gBattleDomeOpponentStyleText14,
- gBattleDomeOpponentStyleText15,
- gBattleDomeOpponentStyleText16,
- gBattleDomeOpponentStyleText17,
- gBattleDomeOpponentStyleText18,
- gBattleDomeOpponentStyleText19,
- gBattleDomeOpponentStyleText20,
- gBattleDomeOpponentStyleText21,
- gBattleDomeOpponentStyleText22,
- gBattleDomeOpponentStyleText23,
- gBattleDomeOpponentStyleText24,
- gBattleDomeOpponentStyleText25,
- gBattleDomeOpponentStyleText26,
- gBattleDomeOpponentStyleText27,
- gBattleDomeOpponentStyleText28,
- gBattleDomeOpponentStyleTextUnused1,
- gBattleDomeOpponentStyleTextUnused2,
- gBattleDomeOpponentStyleTextUnused3,
- gBattleDomeOpponentStyleTextUnused4,
+// The first line of text on a trainers info card that gives information about their battle style (dependent on their party's moves)
+static const u8 *const sBattleDomeOpponentStyleTexts[NUM_BATTLE_STYLES] =
+{
+ [DOME_BATTLE_STYLE_RISKY] = BattleDome_Text_StyleRiskDisaster,
+ [DOME_BATTLE_STYLE_STALL] = BattleDome_Text_StyleEndureLongBattles,
+ [DOME_BATTLE_STYLE_VARIED] = BattleDome_Text_StyleVariesTactics,
+ [DOME_BATTLE_STYLE_COMBO_HIGH] = BattleDome_Text_StyleToughWinningPattern,
+ [DOME_BATTLE_STYLE_RARE_MOVES] = BattleDome_Text_StyleUsesVeryRareMove, // Seems like the text for these two was swapped
+ [DOME_BATTLE_STYLE_RARE_MOVE] = BattleDome_Text_StyleUsesStartlingMoves, //
+ [DOME_BATTLE_STYLE_HP] = BattleDome_Text_StyleConstantlyWatchesHP,
+ [DOME_BATTLE_STYLE_STORE_POWER] = BattleDome_Text_StyleStoresAndLoosesPower,
+ [DOME_BATTLE_STYLE_ENFEEBLE_LOW] = BattleDome_Text_StyleEnfeeblesFoes,
+ [DOME_BATTLE_STYLE_LUCK] = BattleDome_Text_StylePrefersLuckTactics,
+ [DOME_BATTLE_STYLE_REGAL] = BattleDome_Text_StyleRegalAtmosphere,
+ [DOME_BATTLE_STYLE_LOW_PP] = BattleDome_Text_StylePowerfulLowPPMoves,
+ [DOME_BATTLE_STYLE_STATUS_ATK] = BattleDome_Text_StyleEnfeebleThenAttack,
+ [DOME_BATTLE_STYLE_ENDURE] = BattleDome_Text_StyleBattlesWhileEnduring,
+ [DOME_BATTLE_STYLE_STATUS] = BattleDome_Text_StyleUpsetsFoesEmotionally,
+ [DOME_BATTLE_STYLE_STRAIGHTFORWARD] = BattleDome_Text_StyleStrongAndStraightforward,
+ [DOME_BATTLE_STYLE_AGGRESSIVE] = BattleDome_Text_StyleAggressivelyStrongMoves,
+ [DOME_BATTLE_STYLE_DEF] = BattleDome_Text_StyleCleverlyDodgesAttacks,
+ [DOME_BATTLE_STYLE_ENFEEBLE_HIGH] = BattleDome_Text_StyleUsesUpsettingMoves,
+ [DOME_BATTLE_STYLE_POPULAR_POWER] = BattleDome_Text_StyleUsesPopularMoves,
+ [DOME_BATTLE_STYLE_COMBO_LOW] = BattleDome_Text_StyleHasPowerfulComboMoves,
+ [DOME_BATTLE_STYLE_ACCURATE] = BattleDome_Text_StyleUsesHighProbabilityMoves,
+ [DOME_BATTLE_STYLE_POWERFUL] = BattleDome_Text_StyleAggressivelySpectacularMoves,
+ [DOME_BATTLE_STYLE_ATK_OVER_DEF] = BattleDome_Text_StyleEmphasizesOffenseOverDefense,
+ [DOME_BATTLE_STYLE_DEF_OVER_ATK] = BattleDome_Text_StyleEmphasizesDefenseOverOffense,
+ [DOME_BATTLE_STYLE_POPULAR_STRONG] = BattleDome_Text_StyleAttacksQuicklyStrongMoves,
+ [DOME_BATTLE_STYLE_EFFECTS] = BattleDome_Text_StyleUsesAddedEffectMoves,
+ [DOME_BATTLE_STYLE_BALANCED] = BattleDome_Text_StyleUsesBalancedMixOfMoves,
+ [DOME_BATTLE_STYLE_UNUSED1] = BattleDome_Text_StyleSampleMessage1,
+ [DOME_BATTLE_STYLE_UNUSED2] = BattleDome_Text_StyleSampleMessage2,
+ [DOME_BATTLE_STYLE_UNUSED3] = BattleDome_Text_StyleSampleMessage3,
+ [DOME_BATTLE_STYLE_UNUSED4] = BattleDome_Text_StyleSampleMessage4,
};
+// The second line of text on a trainers info card that gives information about their party's stat spread
static const u8 *const sBattleDomeOpponentStatsTexts[] =
{
- gBattleDomeOpponentStatsText1,
- gBattleDomeOpponentStatsText2,
- gBattleDomeOpponentStatsText3,
- gBattleDomeOpponentStatsText4,
- gBattleDomeOpponentStatsText5,
- gBattleDomeOpponentStatsText6,
- gBattleDomeOpponentStatsText7,
- gBattleDomeOpponentStatsText8,
- gBattleDomeOpponentStatsText9,
- gBattleDomeOpponentStatsText10,
- gBattleDomeOpponentStatsText11,
- gBattleDomeOpponentStatsText12,
- gBattleDomeOpponentStatsText13,
- gBattleDomeOpponentStatsText14,
- gBattleDomeOpponentStatsText15,
- gBattleDomeOpponentStatsText16,
- gBattleDomeOpponentStatsText17,
- gBattleDomeOpponentStatsText18,
- gBattleDomeOpponentStatsText19,
- gBattleDomeOpponentStatsText20,
- gBattleDomeOpponentStatsText21,
- gBattleDomeOpponentStatsText22,
- gBattleDomeOpponentStatsText23,
- gBattleDomeOpponentStatsText24,
- gBattleDomeOpponentStatsText25,
- gBattleDomeOpponentStatsText26,
- gBattleDomeOpponentStatsText27,
- gBattleDomeOpponentStatsText28,
- gBattleDomeOpponentStatsText29,
- gBattleDomeOpponentStatsText30,
- gBattleDomeOpponentStatsText31,
- gBattleDomeOpponentStatsText32,
- gBattleDomeOpponentStatsText33,
- gBattleDomeOpponentStatsText34,
- gBattleDomeOpponentStatsText35,
- gBattleDomeOpponentStatsText36,
- gBattleDomeOpponentStatsText37,
- gBattleDomeOpponentStatsText38,
- gBattleDomeOpponentStatsText39,
- gBattleDomeOpponentStatsText40,
- gBattleDomeOpponentStatsText41,
- gBattleDomeOpponentStatsText42,
- gBattleDomeOpponentStatsText43,
+ BattleDome_Text_EmphasizesHPAndAtk, // DOME_TEXT_TWO_GOOD_STATS and DOME_TEXT_HP start here
+ BattleDome_Text_EmphasizesHPAndDef,
+ BattleDome_Text_EmphasizesHPAndSpeed,
+ BattleDome_Text_EmphasizesHPAndSpAtk,
+ BattleDome_Text_EmphasizesHPAndSpDef,
+ BattleDome_Text_EmphasizesAtkAndDef, // DOME_TEXT_ATK starts here
+ BattleDome_Text_EmphasizesAtkAndSpeed,
+ BattleDome_Text_EmphasizesAtkAndSpAtk,
+ BattleDome_Text_EmphasizesAtkAndSpDef,
+ BattleDome_Text_EmphasizesDefAndSpeed, // DOME_TEXT_DEF starts here
+ BattleDome_Text_EmphasizesDefAndSpAtk,
+ BattleDome_Text_EmphasizesDefAndSpDef,
+ BattleDome_Text_EmphasizesSpeedAndSpAtk, // DOME_TEXT_SPEED starts here
+ BattleDome_Text_EmphasizesSpeedAndSpDef,
+ BattleDome_Text_EmphasizesSpAtkAndSpDef, // DOME_TEXT_SPATK starts here
+ BattleDome_Text_EmphasizesHP, // DOME_TEXT_ONE_GOOD_STAT starts here
+ BattleDome_Text_EmphasizesAtk,
+ BattleDome_Text_EmphasizesDef,
+ BattleDome_Text_EmphasizesSpeed,
+ BattleDome_Text_EmphasizesSpAtk,
+ BattleDome_Text_EmphasizesSpDef,
+ BattleDome_Text_NeglectsHPAndAtk, // DOME_TEXT_TWO_BAD_STATS starts here
+ BattleDome_Text_NeglectsHPAndDef,
+ BattleDome_Text_NeglectsHPAndSpeed,
+ BattleDome_Text_NeglectsHPAndSpAtk,
+ BattleDome_Text_NeglectsHPAndSpDef,
+ BattleDome_Text_NeglectsAtkAndDef,
+ BattleDome_Text_NeglectsAtkAndSpeed,
+ BattleDome_Text_NeglectsAtkAndSpAtk,
+ BattleDome_Text_NeglectsAtkAndSpDef,
+ BattleDome_Text_NeglectsDefAndSpeed,
+ BattleDome_Text_NeglectsDefAndSpAtk,
+ BattleDome_Text_NeglectsDefAndSpDef,
+ BattleDome_Text_NeglectsSpeedAndSpAtk,
+ BattleDome_Text_NeglectsSpeedAndSpDef,
+ BattleDome_Text_NeglectsSpAtkAndSpDef,
+ BattleDome_Text_NeglectsHP, // DOME_TEXT_ONE_BAD_STAT starts here
+ BattleDome_Text_NeglectsAtk,
+ BattleDome_Text_NeglectsDef,
+ BattleDome_Text_NeglectsSpeed,
+ BattleDome_Text_NeglectsSpAtk,
+ BattleDome_Text_NeglectsSpDef,
+ [DOME_TEXT_WELL_BALANCED] = BattleDome_Text_RaisesMonsWellBalanced,
+};
+
+static const u8 sInfoTrainerMonX[FRONTIER_PARTY_SIZE] = {104, 136, 104};
+static const u8 sInfoTrainerMonY[FRONTIER_PARTY_SIZE] = { 38, 62, 78};
+static const u8 sSpeciesNameTextYCoords[] = {0, 4, 0};
+
+// Offsets within sBattleDomeOpponentStatsTexts for stat combinations
+// SPDEF has no offset because by then all stat combinations have been reached, so it has no combination texts
+static const u8 sStatTextOffsets[NUM_STATS - 1] =
+{
+ DOME_TEXT_HP,
+ DOME_TEXT_ATK,
+ DOME_TEXT_DEF,
+ DOME_TEXT_SPEED,
+ DOME_TEXT_SPATK
};
-static const u8 sInfoTrainerMonX[] = {0x68, 0x88, 0x68};
-static const u8 sInfoTrainerMonY[] = {0x26, 0x3e, 0x4e};
-static const u8 gUnknown_0860D346[] = {0x00, 0x04, 0x00};
-
-static const u8 gUnknown_0860D349[] = {0x00, 0x05, 0x09, 0x0c, 0x0e, 0x00, 0x00};
-
-static const u8 *const sBattleDomeMatchNumberTexts[] =
-{
- gBattleDomeMatchNumberText1,
- gBattleDomeMatchNumberText2,
- gBattleDomeMatchNumberText3,
- gBattleDomeMatchNumberText4,
- gBattleDomeMatchNumberText5,
- gBattleDomeMatchNumberText6,
- gBattleDomeMatchNumberText7,
- gBattleDomeMatchNumberText8,
- gBattleDomeMatchNumberText9,
- gBattleDomeMatchNumberText10,
- gBattleDomeMatchNumberText11,
- gBattleDomeMatchNumberText12,
- gBattleDomeMatchNumberText13,
- gBattleDomeMatchNumberText14,
- gBattleDomeMatchNumberText15,
+static const u8 *const sBattleDomeMatchNumberTexts[DOME_TOURNAMENT_MATCHES_COUNT] =
+{
+ BattleDome_Text_Round1Match1,
+ BattleDome_Text_Round1Match2,
+ BattleDome_Text_Round1Match3,
+ BattleDome_Text_Round1Match4,
+ BattleDome_Text_Round1Match5,
+ BattleDome_Text_Round1Match6,
+ BattleDome_Text_Round1Match7,
+ BattleDome_Text_Round1Match8,
+ BattleDome_Text_Round2Match1,
+ BattleDome_Text_Round2Match2,
+ BattleDome_Text_Round2Match3,
+ BattleDome_Text_Round2Match4,
+ BattleDome_Text_SemifinalMatch1,
+ BattleDome_Text_SemifinalMatch2,
+ BattleDome_Text_FinalMatch,
};
static const u8 *const sBattleDomeWinTexts[] =
{
- gBattleDomeWinText1,
- gBattleDomeWinText2,
- gBattleDomeWinText3,
- gBattleDomeWinText4,
- gBattleDomeWinText5,
- gBattleDomeWinText6,
- gBattleDomeWinText7,
+ [DOME_TEXT_NO_WINNER_YET] = BattleDome_Text_LetTheBattleBegin,
+ [DOME_TEXT_WON_USING_MOVE] = BattleDome_Text_TrainerWonUsingMove,
+ [DOME_TEXT_CHAMP_USING_MOVE] = BattleDome_Text_TrainerBecameChamp,
+ [DOME_TEXT_WON_ON_FORFEIT] = BattleDome_Text_TrainerWonByDefault,
+ [DOME_TEXT_CHAMP_ON_FORFEIT] = BattleDome_Text_TrainerWonOutrightByDefault,
+ [DOME_TEXT_WON_NO_MOVES] = BattleDome_Text_TrainerWonNoMoves,
+ [DOME_TEXT_CHAMP_NO_MOVES] = BattleDome_Text_TrainerWonOutrightNoMoves,
};
-static const u8 sFirstTrainerMonX[] = {0x60, 0x60, 0x60};
-static const u8 sFirstTrainerMonY[] = {0x38, 0x50, 0x68};
-static const u8 sSecondTrainerMonX[] = {0x90, 0x90, 0x90};
-static const u8 sSecondTrainerMonY[] = {0x38, 0x50, 0x68};
-
-static const u8 gUnknown_0860D3B4[] = {0x00, 0x08, 0x0c, 0x04, 0x07, 0x0f, 0x0b, 0x03, 0x02, 0x0a, 0x0e, 0x06, 0x05, 0x0d, 0x09, 0x01};
-
-static const u8 gUnknown_0860D3C4[][3] =
-{
- {0x00, 0x02, 0x00},
- {0x02, 0x02, 0x00},
- {0x04, 0x02, 0x00},
- {0x06, 0x02, 0x00},
- {0x08, 0x02, 0x00},
- {0x0a, 0x02, 0x00},
- {0x0c, 0x02, 0x00},
- {0x0e, 0x02, 0x00},
- {0x00, 0x04, 0x01},
- {0x04, 0x04, 0x01},
- {0x08, 0x04, 0x01},
- {0x0c, 0x04, 0x01},
- {0x00, 0x08, 0x02},
- {0x08, 0x08, 0x02},
- {0x00, 0x10, 0x03},
+static const u8 sLeftTrainerMonX[FRONTIER_PARTY_SIZE] = { 96, 96, 96};
+static const u8 sLeftTrainerMonY[FRONTIER_PARTY_SIZE] = { 56, 80, 104};
+static const u8 sRightTrainerMonX[FRONTIER_PARTY_SIZE] = {144, 144, 144};
+static const u8 sRightTrainerMonY[FRONTIER_PARTY_SIZE] = { 56, 80, 104};
+
+// Duplicate of sTourneyTreeTrainerIds
+static const u8 sTourneyTreeTrainerIds2[DOME_TOURNAMENT_TRAINERS_COUNT] = {0, 8, 12, 4, 7, 15, 11, 3, 2, 10, 14, 6, 5, 13, 9, 1};
+
+// The number of possible trainers that could be competing in a given match
+#define NUM_POSSIBLE_MATCH_TRAINERS(round) (DOME_TOURNAMENT_TRAINERS_COUNT / (1 << (DOME_ROUNDS_COUNT - round - 1)))
+
+// The range of tournament trainers to check as possible participants in a given match
+// Given by the offset in sCompetitorRangeByMatch[][0], the number of trainers in sCompetitorRangeByMatch[][1], and the round
+static const u8 sCompetitorRangeByMatch[DOME_TOURNAMENT_MATCHES_COUNT][3] =
+{
+ { NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND1) * 0, NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND1), DOME_ROUND1},
+ { NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND1) * 1, NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND1), DOME_ROUND1},
+ { NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND1) * 2, NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND1), DOME_ROUND1},
+ { NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND1) * 3, NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND1), DOME_ROUND1},
+ { NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND1) * 4, NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND1), DOME_ROUND1},
+ { NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND1) * 5, NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND1), DOME_ROUND1},
+ { NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND1) * 6, NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND1), DOME_ROUND1},
+ { NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND1) * 7, NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND1), DOME_ROUND1},
+ { NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND2) * 0, NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND2), DOME_ROUND2},
+ { NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND2) * 1, NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND2), DOME_ROUND2},
+ { NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND2) * 2, NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND2), DOME_ROUND2},
+ { NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND2) * 3, NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND2), DOME_ROUND2},
+ { NUM_POSSIBLE_MATCH_TRAINERS(DOME_SEMIFINAL) * 0, NUM_POSSIBLE_MATCH_TRAINERS(DOME_SEMIFINAL), DOME_SEMIFINAL},
+ { NUM_POSSIBLE_MATCH_TRAINERS(DOME_SEMIFINAL) * 1, NUM_POSSIBLE_MATCH_TRAINERS(DOME_SEMIFINAL), DOME_SEMIFINAL},
+ { NUM_POSSIBLE_MATCH_TRAINERS(DOME_FINAL) * 0, NUM_POSSIBLE_MATCH_TRAINERS(DOME_FINAL), DOME_FINAL},
};
-static const u8 gUnknown_0860D3F1[][2] =
-{
- {0x00, 0x00},
- {0x01, 0x70},
- {0x01, 0x00},
- {0x00, 0x70},
- {0x00, 0x30},
- {0x01, 0x40},
- {0x01, 0x30},
- {0x00, 0x40},
- {0x00, 0x10},
- {0x01, 0x60},
- {0x01, 0x10},
- {0x00, 0x60},
- {0x00, 0x20},
- {0x01, 0x50},
- {0x01, 0x20},
- {0x00, 0x50},
+// 1st value is the windowId (0 for left column, 1 for right column)
+// 2nd value is the y coord
+static const u8 sTrainerNamePositions[DOME_TOURNAMENT_TRAINERS_COUNT][2] =
+{
+ { 0, 0},
+ { 1, 112},
+ { 1, 0},
+ { 0, 112},
+ { 0, 48},
+ { 1, 64},
+ { 1, 48},
+ { 0, 64},
+ { 0, 16},
+ { 1, 96},
+ { 1, 16},
+ { 0, 96},
+ { 0, 32},
+ { 1, 80},
+ { 1, 32},
+ { 0, 80},
};
-static const u8 gUnknown_0860D411[][2] =
-{
- {0x44, 0x21},
- {0x44, 0x31},
- {0x44, 0x41},
- {0x44, 0x51},
- {0x44, 0x61},
- {0x44, 0x71},
- {0x44, 0x81},
- {0x44, 0x91},
- {0xac, 0x21},
- {0xac, 0x31},
- {0xac, 0x41},
- {0xac, 0x51},
- {0xac, 0x61},
- {0xac, 0x71},
- {0xac, 0x81},
- {0xac, 0x91},
- {0x57, 0x29},
- {0x57, 0x49},
- {0x57, 0x69},
- {0x57, 0x89},
- {0x99, 0x29},
- {0x99, 0x49},
- {0x99, 0x69},
- {0x99, 0x89},
- {0x5f, 0x39},
- {0x5f, 0x79},
- {0x91, 0x39},
- {0x91, 0x79},
- {0x67, 0x59},
- {0x89, 0x59},
- {0x78, 0x59},
+// Coords for the pokeballs on the tourney tree that act as buttons to view trainer/match info
+static const u8 sTourneyTreePokeballCoords[DOME_TOURNAMENT_TRAINERS_COUNT + DOME_TOURNAMENT_MATCHES_COUNT][2] =
+{
+ { 68, 33}, // Left side trainers
+ { 68, 49},
+ { 68, 65},
+ { 68, 81},
+ { 68, 97},
+ { 68, 113},
+ { 68, 129},
+ { 68, 145},
+ {172, 33}, // Right side trainers
+ {172, 49},
+ {172, 65},
+ {172, 81},
+ {172, 97},
+ {172, 113},
+ {172, 129},
+ {172, 145},
+ { 87, 41}, // Left side Round 1 matches
+ { 87, 73},
+ { 87, 105},
+ { 87, 137},
+ {153, 41}, // Right side Round 1 matches
+ {153, 73},
+ {153, 105},
+ {153, 137},
+ { 95, 57}, // Left side Round 2 matches
+ { 95, 121},
+ {145, 57}, // Right side Round 2 matches
+ {145, 121},
+ {103, 89}, // Left side semifinal match
+ {137, 89}, // Right side semifinal match
+ {120, 89}, // Final match
};
-static const struct UnkStruct_860DD10 gUnknown_0860d450[] =
+// Each of these line sections define the position of the advancement line on the tourney tree for the victor of that round
+// The trainers here are numbered by tourney ID (rank/seed) and ordered according to where they start on the tourney tree
+#define LINESECTION_ROUND1_TRAINER1(lastSrc) \
+ {.src = 0x6021, .y = 0x04, .x = 0x09}, \
+ {.src = 0x6023, .y = 0x04, .x = 0x0a}, \
+ {.src = 0x6047, .y = 0x05, .x = 0x0a}, \
+ {.src = lastSrc, .y = 0x05, .x = 0x0b},
+
+#define LINESECTION_ROUND1_TRAINER9(lastSrc) \
+ {.src = 0x6021, .y = 0x06, .x = 0x09}, \
+ {.src = 0x6021, .y = 0x06, .x = 0x0a}, \
+ {.src = 0x6027, .y = 0x05, .x = 0x0a}, \
+ {.src = lastSrc, .y = 0x05, .x = 0x0b},
+
+#define LINESECTION_ROUND1_TRAINER13(lastSrc) \
+ {.src = 0x6021, .y = 0x08, .x = 0x09}, \
+ {.src = 0x6023, .y = 0x08, .x = 0x0a}, \
+ {.src = 0x6047, .y = 0x09, .x = 0x0a}, \
+ {.src = lastSrc, .y = 0x09, .x = 0x0b},
+
+#define LINESECTION_ROUND1_TRAINER5(lastSrc) \
+ {.src = 0x6021, .y = 0x0a, .x = 0x09}, \
+ {.src = 0x6021, .y = 0x0a, .x = 0x0a}, \
+ {.src = 0x6027, .y = 0x09, .x = 0x0a}, \
+ {.src = lastSrc, .y = 0x09, .x = 0x0b},
+
+#define LINESECTION_ROUND1_TRAINER8(lastSrc) \
+ {.src = 0x6021, .y = 0x0c, .x = 0x09}, \
+ {.src = 0x6023, .y = 0x0c, .x = 0x0a}, \
+ {.src = 0x6047, .y = 0x0d, .x = 0x0a}, \
+ {.src = lastSrc, .y = 0x0d, .x = 0x0b},
+
+#define LINESECTION_ROUND1_TRAINER16(lastSrc) \
+ {.src = 0x6021, .y = 0x0e, .x = 0x09}, \
+ {.src = 0x6021, .y = 0x0e, .x = 0x0a}, \
+ {.src = 0x6027, .y = 0x0d, .x = 0x0a}, \
+ {.src = lastSrc, .y = 0x0d, .x = 0x0b},
+
+#define LINESECTION_ROUND1_TRAINER12(lastSrc) \
+ {.src = 0x6021, .y = 0x10, .x = 0x09}, \
+ {.src = 0x6023, .y = 0x10, .x = 0x0a}, \
+ {.src = 0x6047, .y = 0x11, .x = 0x0a}, \
+ {.src = lastSrc, .y = 0x11, .x = 0x0b},
+
+#define LINESECTION_ROUND1_TRAINER4(lastSrc) \
+ {.src = 0x602b, .y = 0x12, .x = 0x09}, \
+ {.src = 0x602b, .y = 0x12, .x = 0x0a}, \
+ {.src = 0x6027, .y = 0x11, .x = 0x0a}, \
+ {.src = lastSrc, .y = 0x11, .x = 0x0b},
+
+#define LINESECTION_ROUND1_TRAINER3(lastSrc) \
+ {.src = 0x6021, .y = 0x04, .x = 0x14}, \
+ {.src = 0x6025, .y = 0x04, .x = 0x13}, \
+ {.src = 0x6049, .y = 0x05, .x = 0x13}, \
+ {.src = lastSrc, .y = 0x05, .x = 0x12},
+
+#define LINESECTION_ROUND1_TRAINER11(lastSrc) \
+ {.src = 0x6021, .y = 0x06, .x = 0x14}, \
+ {.src = 0x6021, .y = 0x06, .x = 0x13}, \
+ {.src = 0x6029, .y = 0x05, .x = 0x13}, \
+ {.src = lastSrc, .y = 0x05, .x = 0x12},
+
+#define LINESECTION_ROUND1_TRAINER15(lastSrc) \
+ {.src = 0x6021, .y = 0x08, .x = 0x14}, \
+ {.src = 0x6025, .y = 0x08, .x = 0x13}, \
+ {.src = 0x6049, .y = 0x09, .x = 0x13}, \
+ {.src = lastSrc, .y = 0x09, .x = 0x12},
+
+#define LINESECTION_ROUND1_TRAINER7(lastSrc) \
+ {.src = 0x6021, .y = 0x0a, .x = 0x14}, \
+ {.src = 0x6021, .y = 0x0a, .x = 0x13}, \
+ {.src = 0x6029, .y = 0x09, .x = 0x13}, \
+ {.src = lastSrc, .y = 0x09, .x = 0x12},
+
+#define LINESECTION_ROUND1_TRAINER6(lastSrc) \
+ {.src = 0x6021, .y = 0x0c, .x = 0x14}, \
+ {.src = 0x6025, .y = 0x0c, .x = 0x13}, \
+ {.src = 0x6049, .y = 0x0d, .x = 0x13}, \
+ {.src = lastSrc, .y = 0x0d, .x = 0x12},
+
+#define LINESECTION_ROUND1_TRAINER14(lastSrc) \
+ {.src = 0x6021, .y = 0x0e, .x = 0x14}, \
+ {.src = 0x6021, .y = 0x0e, .x = 0x13}, \
+ {.src = 0x6029, .y = 0x0d, .x = 0x13}, \
+ {.src = lastSrc, .y = 0x0d, .x = 0x12},
+
+#define LINESECTION_ROUND1_TRAINER10(lastSrc) \
+ {.src = 0x6021, .y = 0x10, .x = 0x14}, \
+ {.src = 0x6025, .y = 0x10, .x = 0x13}, \
+ {.src = 0x6049, .y = 0x11, .x = 0x13}, \
+ {.src = lastSrc, .y = 0x11, .x = 0x12},
+
+#define LINESECTION_ROUND1_TRAINER2(lastSrc) \
+ {.src = 0x602b, .y = 0x12, .x = 0x14}, \
+ {.src = 0x602b, .y = 0x12, .x = 0x13}, \
+ {.src = 0x6029, .y = 0x11, .x = 0x13}, \
+ {.src = lastSrc, .y = 0x11, .x = 0x12},
+
+#define LINESECTION_ROUND2_MATCH1(lastSrc) \
+ {.src = 0x6027, .y = 0x06, .x = 0x0b}, \
+ {.src = 0x6047, .y = 0x07, .x = 0x0b}, \
+ {.src = lastSrc, .y = 0x07, .x = 0x0c},
+
+#define LINESECTION_ROUND2_MATCH2(lastSrc) \
+ {.src = 0x6027, .y = 0x08, .x = 0x0b}, \
+ {.src = 0x6027, .y = 0x07, .x = 0x0b}, \
+ {.src = lastSrc, .y = 0x07, .x = 0x0c},
+
+#define LINESECTION_ROUND2_MATCH3(lastSrc) \
+ {.src = 0x6027, .y = 0x0e, .x = 0x0b}, \
+ {.src = 0x6047, .y = 0x0f, .x = 0x0b}, \
+ {.src = lastSrc, .y = 0x0f, .x = 0x0c},
+
+#define LINESECTION_ROUND2_MATCH4(lastSrc) \
+ {.src = 0x6027, .y = 0x10, .x = 0x0b}, \
+ {.src = 0x6027, .y = 0x0f, .x = 0x0b}, \
+ {.src = lastSrc, .y = 0x0f, .x = 0x0c},
+
+#define LINESECTION_ROUND2_MATCH5(lastSrc) \
+ {.src = 0x6029, .y = 0x06, .x = 0x12}, \
+ {.src = 0x6049, .y = 0x07, .x = 0x12}, \
+ {.src = lastSrc, .y = 0x07, .x = 0x11},
+
+#define LINESECTION_ROUND2_MATCH6(lastSrc) \
+ {.src = 0x6029, .y = 0x08, .x = 0x12}, \
+ {.src = 0x6029, .y = 0x07, .x = 0x12}, \
+ {.src = lastSrc, .y = 0x07, .x = 0x11},
+
+#define LINESECTION_ROUND2_MATCH7(lastSrc) \
+ {.src = 0x6029, .y = 0x0e, .x = 0x12}, \
+ {.src = 0x6049, .y = 0x0f, .x = 0x12}, \
+ {.src = lastSrc, .y = 0x0f, .x = 0x11},
+
+#define LINESECTION_ROUND2_MATCH8(lastSrc) \
+ {.src = 0x6029, .y = 0x10, .x = 0x12}, \
+ {.src = 0x6029, .y = 0x0f, .x = 0x12}, \
+ {.src = lastSrc, .y = 0x0f, .x = 0x11},
+
+#define LINESECTION_SEMIFINAL_TOP_LEFT \
+ {.src = 0x6027, .y = 0x08, .x = 0x0c}, \
+ {.src = 0x6027, .y = 0x09, .x = 0x0c}, \
+ {.src = 0x6027, .y = 0x0a, .x = 0x0c}, \
+ {.src = 0x603b, .y = 0x0b, .x = 0x0c},
+
+#define LINESECTION_SEMIFINAL_BOTTOM_LEFT \
+ {.src = 0x6033, .y = 0x0e, .x = 0x0c}, \
+ {.src = 0x6032, .y = 0x0d, .x = 0x0c}, \
+ {.src = 0x6031, .y = 0x0c, .x = 0x0c}, \
+ {.src = 0x6030, .y = 0x0b, .x = 0x0c},
+
+#define LINESECTION_SEMIFINAL_TOP_RIGHT \
+ {.src = 0x6029, .y = 0x08, .x = 0x11}, \
+ {.src = 0x6029, .y = 0x09, .x = 0x11}, \
+ {.src = 0x6029, .y = 0x0a, .x = 0x11}, \
+ {.src = 0x603c, .y = 0x0b, .x = 0x11},
+
+#define LINESECTION_SEMIFINAL_BOTTOM_RIGHT \
+ {.src = 0x6038, .y = 0x0e, .x = 0x11}, \
+ {.src = 0x6037, .y = 0x0d, .x = 0x11}, \
+ {.src = 0x6036, .y = 0x0c, .x = 0x11}, \
+ {.src = 0x6035, .y = 0x0b, .x = 0x11},
+
+#define LINESECTION_FINAL_LEFT \
+ {.src = 0x602c, .y = 0x0b, .x = 0x0d}, \
+ {.src = 0x602d, .y = 0x0b, .x = 0x0e},
+
+#define LINESECTION_FINAL_RIGHT \
+ {.src = 0x602f, .y = 0x0b, .x = 0x10}, \
+ {.src = 0x602e, .y = 0x0b, .x = 0x0f},
+
+
+static const struct TourneyTreeLineSection sLineSectionTrainer1Round1[] =
{
- {.src = 0x6021, .y = 0x04, .x = 0x09},
- {.src = 0x6023, .y = 0x04, .x = 0x0a},
- {.src = 0x6047, .y = 0x05, .x = 0x0a},
- {.src = 0x6043, .y = 0x05, .x = 0x0b},
+ LINESECTION_ROUND1_TRAINER1(0x6043)
};
-static const struct UnkStruct_860DD10 gUnknown_0860d460[] =
+static const struct TourneyTreeLineSection sLineSectionTrainer1Round2[] =
{
- {.src = 0x6021, .y = 0x04, .x = 0x09},
- {.src = 0x6023, .y = 0x04, .x = 0x0a},
- {.src = 0x6047, .y = 0x05, .x = 0x0a},
- {.src = 0x6023, .y = 0x05, .x = 0x0b},
- {.src = 0x6027, .y = 0x06, .x = 0x0b},
- {.src = 0x6047, .y = 0x07, .x = 0x0b},
- {.src = 0x6043, .y = 0x07, .x = 0x0c},
+ LINESECTION_ROUND1_TRAINER1(0x6023)
+ LINESECTION_ROUND2_MATCH1(0x6043)
};
-static const struct UnkStruct_860DD10 gUnknown_0860d47c[] =
-{
- {.src = 0x6021, .y = 0x04, .x = 0x09},
- {.src = 0x6023, .y = 0x04, .x = 0x0a},
- {.src = 0x6047, .y = 0x05, .x = 0x0a},
- {.src = 0x6023, .y = 0x05, .x = 0x0b},
- {.src = 0x6027, .y = 0x06, .x = 0x0b},
- {.src = 0x6047, .y = 0x07, .x = 0x0b},
- {.src = 0x6023, .y = 0x07, .x = 0x0c},
- {.src = 0x6027, .y = 0x08, .x = 0x0c},
- {.src = 0x6027, .y = 0x09, .x = 0x0c},
- {.src = 0x6027, .y = 0x0a, .x = 0x0c},
- {.src = 0x603b, .y = 0x0b, .x = 0x0c},
+static const struct TourneyTreeLineSection sLineSectionTrainer1Semifinal[] =
+{
+ LINESECTION_ROUND1_TRAINER1(0x6023)
+ LINESECTION_ROUND2_MATCH1(0x6023)
+ LINESECTION_SEMIFINAL_TOP_LEFT
};
-static const struct UnkStruct_860DD10 gUnknown_0860d4a8[] =
-{
- {.src = 0x6021, .y = 0x04, .x = 0x09},
- {.src = 0x6023, .y = 0x04, .x = 0x0a},
- {.src = 0x6047, .y = 0x05, .x = 0x0a},
- {.src = 0x6023, .y = 0x05, .x = 0x0b},
- {.src = 0x6027, .y = 0x06, .x = 0x0b},
- {.src = 0x6047, .y = 0x07, .x = 0x0b},
- {.src = 0x6023, .y = 0x07, .x = 0x0c},
- {.src = 0x6027, .y = 0x08, .x = 0x0c},
- {.src = 0x6027, .y = 0x09, .x = 0x0c},
- {.src = 0x6027, .y = 0x0a, .x = 0x0c},
- {.src = 0x603b, .y = 0x0b, .x = 0x0c},
- {.src = 0x602c, .y = 0x0b, .x = 0x0d},
- {.src = 0x602d, .y = 0x0b, .x = 0x0e},
+static const struct TourneyTreeLineSection sLineSectionTrainer1Final[] =
+{
+ LINESECTION_ROUND1_TRAINER1(0x6023)
+ LINESECTION_ROUND2_MATCH1(0x6023)
+ LINESECTION_SEMIFINAL_TOP_LEFT
+ LINESECTION_FINAL_LEFT
};
-static const struct UnkStruct_860DD10 gUnknown_0860d4dc[] =
+static const struct TourneyTreeLineSection sLineSectionTrainer9Round1[] =
{
- {.src = 0x6021, .y = 0x06, .x = 0x09},
- {.src = 0x6021, .y = 0x06, .x = 0x0a},
- {.src = 0x6027, .y = 0x05, .x = 0x0a},
- {.src = 0x6043, .y = 0x05, .x = 0x0b},
+ LINESECTION_ROUND1_TRAINER9(0x6043)
};
-static const struct UnkStruct_860DD10 gUnknown_0860d4ec[] =
+static const struct TourneyTreeLineSection sLineSectionTrainer9Round2[] =
{
- {.src = 0x6021, .y = 0x06, .x = 0x09},
- {.src = 0x6021, .y = 0x06, .x = 0x0a},
- {.src = 0x6027, .y = 0x05, .x = 0x0a},
- {.src = 0x6023, .y = 0x05, .x = 0x0b},
- {.src = 0x6027, .y = 0x06, .x = 0x0b},
- {.src = 0x6047, .y = 0x07, .x = 0x0b},
- {.src = 0x6043, .y = 0x07, .x = 0x0c},
+ LINESECTION_ROUND1_TRAINER9(0x6023)
+ LINESECTION_ROUND2_MATCH1(0x6043)
};
-static const struct UnkStruct_860DD10 gUnknown_0860d508[] =
-{
- {.src = 0x6021, .y = 0x06, .x = 0x09},
- {.src = 0x6021, .y = 0x06, .x = 0x0a},
- {.src = 0x6027, .y = 0x05, .x = 0x0a},
- {.src = 0x6023, .y = 0x05, .x = 0x0b},
- {.src = 0x6027, .y = 0x06, .x = 0x0b},
- {.src = 0x6047, .y = 0x07, .x = 0x0b},
- {.src = 0x6023, .y = 0x07, .x = 0x0c},
- {.src = 0x6027, .y = 0x08, .x = 0x0c},
- {.src = 0x6027, .y = 0x09, .x = 0x0c},
- {.src = 0x6027, .y = 0x0a, .x = 0x0c},
- {.src = 0x603b, .y = 0x0b, .x = 0x0c},
+static const struct TourneyTreeLineSection sLineSectionTrainer9Semifinal[] =
+{
+ LINESECTION_ROUND1_TRAINER9(0x6023)
+ LINESECTION_ROUND2_MATCH1(0x6023)
+ LINESECTION_SEMIFINAL_TOP_LEFT
};
-static const struct UnkStruct_860DD10 gUnknown_0860d534[] =
-{
- {.src = 0x6021, .y = 0x06, .x = 0x09},
- {.src = 0x6021, .y = 0x06, .x = 0x0a},
- {.src = 0x6027, .y = 0x05, .x = 0x0a},
- {.src = 0x6023, .y = 0x05, .x = 0x0b},
- {.src = 0x6027, .y = 0x06, .x = 0x0b},
- {.src = 0x6047, .y = 0x07, .x = 0x0b},
- {.src = 0x6023, .y = 0x07, .x = 0x0c},
- {.src = 0x6027, .y = 0x08, .x = 0x0c},
- {.src = 0x6027, .y = 0x09, .x = 0x0c},
- {.src = 0x6027, .y = 0x0a, .x = 0x0c},
- {.src = 0x603b, .y = 0x0b, .x = 0x0c},
- {.src = 0x602c, .y = 0x0b, .x = 0x0d},
- {.src = 0x602d, .y = 0x0b, .x = 0x0e},
+static const struct TourneyTreeLineSection sLineSectionTrainer9Final[] =
+{
+ LINESECTION_ROUND1_TRAINER9(0x6023)
+ LINESECTION_ROUND2_MATCH1(0x6023)
+ LINESECTION_SEMIFINAL_TOP_LEFT
+ LINESECTION_FINAL_LEFT
};
-static const struct UnkStruct_860DD10 gUnknown_0860d568[] =
+static const struct TourneyTreeLineSection sLineSectionTrainer13Round1[] =
{
- {.src = 0x6021, .y = 0x08, .x = 0x09},
- {.src = 0x6023, .y = 0x08, .x = 0x0a},
- {.src = 0x6047, .y = 0x09, .x = 0x0a},
- {.src = 0x6021, .y = 0x09, .x = 0x0b},
+ LINESECTION_ROUND1_TRAINER13(0x6021)
};
-static const struct UnkStruct_860DD10 gUnknown_0860d578[] =
+static const struct TourneyTreeLineSection sLineSectionTrainer13Round2[] =
{
- {.src = 0x6021, .y = 0x08, .x = 0x09},
- {.src = 0x6023, .y = 0x08, .x = 0x0a},
- {.src = 0x6047, .y = 0x09, .x = 0x0a},
- {.src = 0x6021, .y = 0x09, .x = 0x0b},
- {.src = 0x6027, .y = 0x08, .x = 0x0b},
- {.src = 0x6027, .y = 0x07, .x = 0x0b},
- {.src = 0x6043, .y = 0x07, .x = 0x0c},
+ LINESECTION_ROUND1_TRAINER13(0x6021)
+ LINESECTION_ROUND2_MATCH2(0x6043)
};
-static const struct UnkStruct_860DD10 gUnknown_0860d594[] =
-{
- {.src = 0x6021, .y = 0x08, .x = 0x09},
- {.src = 0x6023, .y = 0x08, .x = 0x0a},
- {.src = 0x6047, .y = 0x09, .x = 0x0a},
- {.src = 0x6021, .y = 0x09, .x = 0x0b},
- {.src = 0x6027, .y = 0x08, .x = 0x0b},
- {.src = 0x6027, .y = 0x07, .x = 0x0b},
- {.src = 0x6023, .y = 0x07, .x = 0x0c},
- {.src = 0x6027, .y = 0x08, .x = 0x0c},
- {.src = 0x6027, .y = 0x09, .x = 0x0c},
- {.src = 0x6027, .y = 0x0a, .x = 0x0c},
- {.src = 0x603b, .y = 0x0b, .x = 0x0c},
+static const struct TourneyTreeLineSection sLineSectionTrainer13Semifinal[] =
+{
+ LINESECTION_ROUND1_TRAINER13(0x6021)
+ LINESECTION_ROUND2_MATCH2(0x6023)
+ LINESECTION_SEMIFINAL_TOP_LEFT
};
-static const struct UnkStruct_860DD10 gUnknown_0860d5c0[] =
-{
- {.src = 0x6021, .y = 0x08, .x = 0x09},
- {.src = 0x6023, .y = 0x08, .x = 0x0a},
- {.src = 0x6047, .y = 0x09, .x = 0x0a},
- {.src = 0x6021, .y = 0x09, .x = 0x0b},
- {.src = 0x6027, .y = 0x08, .x = 0x0b},
- {.src = 0x6027, .y = 0x07, .x = 0x0b},
- {.src = 0x6023, .y = 0x07, .x = 0x0c},
- {.src = 0x6027, .y = 0x08, .x = 0x0c},
- {.src = 0x6027, .y = 0x09, .x = 0x0c},
- {.src = 0x6027, .y = 0x0a, .x = 0x0c},
- {.src = 0x603b, .y = 0x0b, .x = 0x0c},
- {.src = 0x602c, .y = 0x0b, .x = 0x0d},
- {.src = 0x602d, .y = 0x0b, .x = 0x0e},
+static const struct TourneyTreeLineSection sLineSectionTrainer13Final[] =
+{
+ LINESECTION_ROUND1_TRAINER13(0x6021)
+ LINESECTION_ROUND2_MATCH2(0x6023)
+ LINESECTION_SEMIFINAL_TOP_LEFT
+ LINESECTION_FINAL_LEFT
};
-static const struct UnkStruct_860DD10 gUnknown_0860d5f4[] =
+static const struct TourneyTreeLineSection sLineSectionTrainer5Round1[] =
{
- {.src = 0x6021, .y = 0x0a, .x = 0x09},
- {.src = 0x6021, .y = 0x0a, .x = 0x0a},
- {.src = 0x6027, .y = 0x09, .x = 0x0a},
- {.src = 0x6021, .y = 0x09, .x = 0x0b},
+ LINESECTION_ROUND1_TRAINER5(0x6021)
};
-static const struct UnkStruct_860DD10 gUnknown_0860d604[] =
+static const struct TourneyTreeLineSection sLineSectionTrainer5Round2[] =
{
- {.src = 0x6021, .y = 0x0a, .x = 0x09},
- {.src = 0x6021, .y = 0x0a, .x = 0x0a},
- {.src = 0x6027, .y = 0x09, .x = 0x0a},
- {.src = 0x6021, .y = 0x09, .x = 0x0b},
- {.src = 0x6027, .y = 0x08, .x = 0x0b},
- {.src = 0x6027, .y = 0x07, .x = 0x0b},
- {.src = 0x6043, .y = 0x07, .x = 0x0c},
+ LINESECTION_ROUND1_TRAINER5(0x6021)
+ LINESECTION_ROUND2_MATCH2(0x6043)
};
-static const struct UnkStruct_860DD10 gUnknown_0860d620[] =
-{
- {.src = 0x6021, .y = 0x0a, .x = 0x09},
- {.src = 0x6021, .y = 0x0a, .x = 0x0a},
- {.src = 0x6027, .y = 0x09, .x = 0x0a},
- {.src = 0x6021, .y = 0x09, .x = 0x0b},
- {.src = 0x6027, .y = 0x08, .x = 0x0b},
- {.src = 0x6027, .y = 0x07, .x = 0x0b},
- {.src = 0x6023, .y = 0x07, .x = 0x0c},
- {.src = 0x6027, .y = 0x08, .x = 0x0c},
- {.src = 0x6027, .y = 0x09, .x = 0x0c},
- {.src = 0x6027, .y = 0x0a, .x = 0x0c},
- {.src = 0x603b, .y = 0x0b, .x = 0x0c},
+static const struct TourneyTreeLineSection sLineSectionTrainer5Semifinal[] =
+{
+ LINESECTION_ROUND1_TRAINER5(0x6021)
+ LINESECTION_ROUND2_MATCH2(0x6023)
+ LINESECTION_SEMIFINAL_TOP_LEFT
};
-static const struct UnkStruct_860DD10 gUnknown_0860d64c[] =
-{
- {.src = 0x6021, .y = 0x0a, .x = 0x09},
- {.src = 0x6021, .y = 0x0a, .x = 0x0a},
- {.src = 0x6027, .y = 0x09, .x = 0x0a},
- {.src = 0x6021, .y = 0x09, .x = 0x0b},
- {.src = 0x6027, .y = 0x08, .x = 0x0b},
- {.src = 0x6027, .y = 0x07, .x = 0x0b},
- {.src = 0x6023, .y = 0x07, .x = 0x0c},
- {.src = 0x6027, .y = 0x08, .x = 0x0c},
- {.src = 0x6027, .y = 0x09, .x = 0x0c},
- {.src = 0x6027, .y = 0x0a, .x = 0x0c},
- {.src = 0x603b, .y = 0x0b, .x = 0x0c},
- {.src = 0x602c, .y = 0x0b, .x = 0x0d},
- {.src = 0x602d, .y = 0x0b, .x = 0x0e},
+static const struct TourneyTreeLineSection sLineSectionTrainer5Final[] =
+{
+ LINESECTION_ROUND1_TRAINER5(0x6021)
+ LINESECTION_ROUND2_MATCH2(0x6023)
+ LINESECTION_SEMIFINAL_TOP_LEFT
+ LINESECTION_FINAL_LEFT
};
-static const struct UnkStruct_860DD10 gUnknown_0860d680[] =
+static const struct TourneyTreeLineSection sLineSectionTrainer8Round1[] =
{
- {.src = 0x6021, .y = 0x0c, .x = 0x09},
- {.src = 0x6023, .y = 0x0c, .x = 0x0a},
- {.src = 0x6047, .y = 0x0d, .x = 0x0a},
- {.src = 0x6043, .y = 0x0d, .x = 0x0b},
+ LINESECTION_ROUND1_TRAINER8(0x6043)
};
-static const struct UnkStruct_860DD10 gUnknown_0860d690[] =
+static const struct TourneyTreeLineSection sLineSectionTrainer8Round2[] =
{
- {.src = 0x6021, .y = 0x0c, .x = 0x09},
- {.src = 0x6023, .y = 0x0c, .x = 0x0a},
- {.src = 0x6047, .y = 0x0d, .x = 0x0a},
- {.src = 0x6023, .y = 0x0d, .x = 0x0b},
- {.src = 0x6027, .y = 0x0e, .x = 0x0b},
- {.src = 0x6047, .y = 0x0f, .x = 0x0b},
- {.src = 0x6021, .y = 0x0f, .x = 0x0c},
+ LINESECTION_ROUND1_TRAINER8(0x6023)
+ LINESECTION_ROUND2_MATCH3(0x6021)
};
-static const struct UnkStruct_860DD10 gUnknown_0860d6ac[] =
-{
- {.src = 0x6021, .y = 0x0c, .x = 0x09},
- {.src = 0x6023, .y = 0x0c, .x = 0x0a},
- {.src = 0x6047, .y = 0x0d, .x = 0x0a},
- {.src = 0x6023, .y = 0x0d, .x = 0x0b},
- {.src = 0x6027, .y = 0x0e, .x = 0x0b},
- {.src = 0x6047, .y = 0x0f, .x = 0x0b},
- {.src = 0x6021, .y = 0x0f, .x = 0x0c},
- {.src = 0x6033, .y = 0x0e, .x = 0x0c},
- {.src = 0x6032, .y = 0x0d, .x = 0x0c},
- {.src = 0x6031, .y = 0x0c, .x = 0x0c},
- {.src = 0x6030, .y = 0x0b, .x = 0x0c},
+static const struct TourneyTreeLineSection sLineSectionTrainer8Semifinal[] =
+{
+ LINESECTION_ROUND1_TRAINER8(0x6023)
+ LINESECTION_ROUND2_MATCH3(0x6021)
+ LINESECTION_SEMIFINAL_BOTTOM_LEFT
};
-static const struct UnkStruct_860DD10 gUnknown_0860d6d8[] =
-{
- {.src = 0x6021, .y = 0x0c, .x = 0x09},
- {.src = 0x6023, .y = 0x0c, .x = 0x0a},
- {.src = 0x6047, .y = 0x0d, .x = 0x0a},
- {.src = 0x6023, .y = 0x0d, .x = 0x0b},
- {.src = 0x6027, .y = 0x0e, .x = 0x0b},
- {.src = 0x6047, .y = 0x0f, .x = 0x0b},
- {.src = 0x6021, .y = 0x0f, .x = 0x0c},
- {.src = 0x6033, .y = 0x0e, .x = 0x0c},
- {.src = 0x6032, .y = 0x0d, .x = 0x0c},
- {.src = 0x6031, .y = 0x0c, .x = 0x0c},
- {.src = 0x6030, .y = 0x0b, .x = 0x0c},
- {.src = 0x602c, .y = 0x0b, .x = 0x0d},
- {.src = 0x602d, .y = 0x0b, .x = 0x0e},
+static const struct TourneyTreeLineSection sLineSectionTrainer8Final[] =
+{
+ LINESECTION_ROUND1_TRAINER8(0x6023)
+ LINESECTION_ROUND2_MATCH3(0x6021)
+ LINESECTION_SEMIFINAL_BOTTOM_LEFT
+ LINESECTION_FINAL_LEFT
};
-static const struct UnkStruct_860DD10 gUnknown_0860d70c[] =
+static const struct TourneyTreeLineSection sLineSectionTrainer16Round1[] =
{
- {.src = 0x6021, .y = 0x0e, .x = 0x09},
- {.src = 0x6021, .y = 0x0e, .x = 0x0a},
- {.src = 0x6027, .y = 0x0d, .x = 0x0a},
- {.src = 0x6043, .y = 0x0d, .x = 0x0b},
+ LINESECTION_ROUND1_TRAINER16(0x6043)
};
-static const struct UnkStruct_860DD10 gUnknown_0860d71c[] =
+static const struct TourneyTreeLineSection sLineSectionTrainer16Round2[] =
{
- {.src = 0x6021, .y = 0x0e, .x = 0x09},
- {.src = 0x6021, .y = 0x0e, .x = 0x0a},
- {.src = 0x6027, .y = 0x0d, .x = 0x0a},
- {.src = 0x6023, .y = 0x0d, .x = 0x0b},
- {.src = 0x6027, .y = 0x0e, .x = 0x0b},
- {.src = 0x6047, .y = 0x0f, .x = 0x0b},
- {.src = 0x6021, .y = 0x0f, .x = 0x0c},
+ LINESECTION_ROUND1_TRAINER16(0x6023)
+ LINESECTION_ROUND2_MATCH3(0x6021)
};
-static const struct UnkStruct_860DD10 gUnknown_0860d738[] =
-{
- {.src = 0x6021, .y = 0x0e, .x = 0x09},
- {.src = 0x6021, .y = 0x0e, .x = 0x0a},
- {.src = 0x6027, .y = 0x0d, .x = 0x0a},
- {.src = 0x6023, .y = 0x0d, .x = 0x0b},
- {.src = 0x6027, .y = 0x0e, .x = 0x0b},
- {.src = 0x6047, .y = 0x0f, .x = 0x0b},
- {.src = 0x6021, .y = 0x0f, .x = 0x0c},
- {.src = 0x6033, .y = 0x0e, .x = 0x0c},
- {.src = 0x6032, .y = 0x0d, .x = 0x0c},
- {.src = 0x6031, .y = 0x0c, .x = 0x0c},
- {.src = 0x6030, .y = 0x0b, .x = 0x0c},
+static const struct TourneyTreeLineSection sLineSectionTrainer16Semifinal[] =
+{
+ LINESECTION_ROUND1_TRAINER16(0x6023)
+ LINESECTION_ROUND2_MATCH3(0x6021)
+ LINESECTION_SEMIFINAL_BOTTOM_LEFT
};
-static const struct UnkStruct_860DD10 gUnknown_0860d764[] =
-{
- {.src = 0x6021, .y = 0x0e, .x = 0x09},
- {.src = 0x6021, .y = 0x0e, .x = 0x0a},
- {.src = 0x6027, .y = 0x0d, .x = 0x0a},
- {.src = 0x6023, .y = 0x0d, .x = 0x0b},
- {.src = 0x6027, .y = 0x0e, .x = 0x0b},
- {.src = 0x6047, .y = 0x0f, .x = 0x0b},
- {.src = 0x6021, .y = 0x0f, .x = 0x0c},
- {.src = 0x6033, .y = 0x0e, .x = 0x0c},
- {.src = 0x6032, .y = 0x0d, .x = 0x0c},
- {.src = 0x6031, .y = 0x0c, .x = 0x0c},
- {.src = 0x6030, .y = 0x0b, .x = 0x0c},
- {.src = 0x602c, .y = 0x0b, .x = 0x0d},
- {.src = 0x602d, .y = 0x0b, .x = 0x0e},
+static const struct TourneyTreeLineSection sLineSectionTrainer16Final[] =
+{
+ LINESECTION_ROUND1_TRAINER16(0x6023)
+ LINESECTION_ROUND2_MATCH3(0x6021)
+ LINESECTION_SEMIFINAL_BOTTOM_LEFT
+ LINESECTION_FINAL_LEFT
};
-static const struct UnkStruct_860DD10 gUnknown_0860d798[] =
+static const struct TourneyTreeLineSection sLineSectionTrainer12Round1[] =
{
- {.src = 0x6021, .y = 0x10, .x = 0x09},
- {.src = 0x6023, .y = 0x10, .x = 0x0a},
- {.src = 0x6047, .y = 0x11, .x = 0x0a},
- {.src = 0x6021, .y = 0x11, .x = 0x0b},
+ LINESECTION_ROUND1_TRAINER12(0x6021)
};
-static const struct UnkStruct_860DD10 gUnknown_0860d7a8[] =
+static const struct TourneyTreeLineSection sLineSectionTrainer12Round2[] =
{
- {.src = 0x6021, .y = 0x10, .x = 0x09},
- {.src = 0x6023, .y = 0x10, .x = 0x0a},
- {.src = 0x6047, .y = 0x11, .x = 0x0a},
- {.src = 0x6021, .y = 0x11, .x = 0x0b},
- {.src = 0x6027, .y = 0x10, .x = 0x0b},
- {.src = 0x6027, .y = 0x0f, .x = 0x0b},
- {.src = 0x6021, .y = 0x0f, .x = 0x0c},
+ LINESECTION_ROUND1_TRAINER12(0x6021)
+ LINESECTION_ROUND2_MATCH4(0x6021)
};
-static const struct UnkStruct_860DD10 gUnknown_0860d7c4[] =
-{
- {.src = 0x6021, .y = 0x10, .x = 0x09},
- {.src = 0x6023, .y = 0x10, .x = 0x0a},
- {.src = 0x6047, .y = 0x11, .x = 0x0a},
- {.src = 0x6021, .y = 0x11, .x = 0x0b},
- {.src = 0x6027, .y = 0x10, .x = 0x0b},
- {.src = 0x6027, .y = 0x0f, .x = 0x0b},
- {.src = 0x6021, .y = 0x0f, .x = 0x0c},
- {.src = 0x6033, .y = 0x0e, .x = 0x0c},
- {.src = 0x6032, .y = 0x0d, .x = 0x0c},
- {.src = 0x6031, .y = 0x0c, .x = 0x0c},
- {.src = 0x6030, .y = 0x0b, .x = 0x0c},
+static const struct TourneyTreeLineSection sLineSectionTrainer12Semifinal[] =
+{
+ LINESECTION_ROUND1_TRAINER12(0x6021)
+ LINESECTION_ROUND2_MATCH4(0x6021)
+ LINESECTION_SEMIFINAL_BOTTOM_LEFT
};
-static const struct UnkStruct_860DD10 gUnknown_0860d7f0[] =
-{
- {.src = 0x6021, .y = 0x10, .x = 0x09},
- {.src = 0x6023, .y = 0x10, .x = 0x0a},
- {.src = 0x6047, .y = 0x11, .x = 0x0a},
- {.src = 0x6021, .y = 0x11, .x = 0x0b},
- {.src = 0x6027, .y = 0x10, .x = 0x0b},
- {.src = 0x6027, .y = 0x0f, .x = 0x0b},
- {.src = 0x6021, .y = 0x0f, .x = 0x0c},
- {.src = 0x6033, .y = 0x0e, .x = 0x0c},
- {.src = 0x6032, .y = 0x0d, .x = 0x0c},
- {.src = 0x6031, .y = 0x0c, .x = 0x0c},
- {.src = 0x6030, .y = 0x0b, .x = 0x0c},
- {.src = 0x602c, .y = 0x0b, .x = 0x0d},
- {.src = 0x602d, .y = 0x0b, .x = 0x0e},
+static const struct TourneyTreeLineSection sLineSectionTrainer12Final[] =
+{
+ LINESECTION_ROUND1_TRAINER12(0x6021)
+ LINESECTION_ROUND2_MATCH4(0x6021)
+ LINESECTION_SEMIFINAL_BOTTOM_LEFT
+ LINESECTION_FINAL_LEFT
};
-static const struct UnkStruct_860DD10 gUnknown_0860d824[] =
+static const struct TourneyTreeLineSection sLineSectionTrainer4Round1[] =
{
- {.src = 0x602b, .y = 0x12, .x = 0x09},
- {.src = 0x602b, .y = 0x12, .x = 0x0a},
- {.src = 0x6027, .y = 0x11, .x = 0x0a},
- {.src = 0x6021, .y = 0x11, .x = 0x0b},
+ LINESECTION_ROUND1_TRAINER4(0x6021)
};
-static const struct UnkStruct_860DD10 gUnknown_0860d834[] =
+static const struct TourneyTreeLineSection sLineSectionTrainer4Round2[] =
{
- {.src = 0x602b, .y = 0x12, .x = 0x09},
- {.src = 0x602b, .y = 0x12, .x = 0x0a},
- {.src = 0x6027, .y = 0x11, .x = 0x0a},
- {.src = 0x6021, .y = 0x11, .x = 0x0b},
- {.src = 0x6027, .y = 0x10, .x = 0x0b},
- {.src = 0x6027, .y = 0x0f, .x = 0x0b},
- {.src = 0x6021, .y = 0x0f, .x = 0x0c},
+ LINESECTION_ROUND1_TRAINER4(0x6021)
+ LINESECTION_ROUND2_MATCH4(0x6021)
};
-static const struct UnkStruct_860DD10 gUnknown_0860d850[] =
-{
- {.src = 0x602b, .y = 0x12, .x = 0x09},
- {.src = 0x602b, .y = 0x12, .x = 0x0a},
- {.src = 0x6027, .y = 0x11, .x = 0x0a},
- {.src = 0x6021, .y = 0x11, .x = 0x0b},
- {.src = 0x6027, .y = 0x10, .x = 0x0b},
- {.src = 0x6027, .y = 0x0f, .x = 0x0b},
- {.src = 0x6021, .y = 0x0f, .x = 0x0c},
- {.src = 0x6033, .y = 0x0e, .x = 0x0c},
- {.src = 0x6032, .y = 0x0d, .x = 0x0c},
- {.src = 0x6031, .y = 0x0c, .x = 0x0c},
- {.src = 0x6030, .y = 0x0b, .x = 0x0c},
+static const struct TourneyTreeLineSection sLineSectionTrainer4Semifinal[] =
+{
+ LINESECTION_ROUND1_TRAINER4(0x6021)
+ LINESECTION_ROUND2_MATCH4(0x6021)
+ LINESECTION_SEMIFINAL_BOTTOM_LEFT
};
-static const struct UnkStruct_860DD10 gUnknown_0860d87c[] =
-{
- {.src = 0x602b, .y = 0x12, .x = 0x09},
- {.src = 0x602b, .y = 0x12, .x = 0x0a},
- {.src = 0x6027, .y = 0x11, .x = 0x0a},
- {.src = 0x6021, .y = 0x11, .x = 0x0b},
- {.src = 0x6027, .y = 0x10, .x = 0x0b},
- {.src = 0x6027, .y = 0x0f, .x = 0x0b},
- {.src = 0x6021, .y = 0x0f, .x = 0x0c},
- {.src = 0x6033, .y = 0x0e, .x = 0x0c},
- {.src = 0x6032, .y = 0x0d, .x = 0x0c},
- {.src = 0x6031, .y = 0x0c, .x = 0x0c},
- {.src = 0x6030, .y = 0x0b, .x = 0x0c},
- {.src = 0x602c, .y = 0x0b, .x = 0x0d},
- {.src = 0x602d, .y = 0x0b, .x = 0x0e},
+static const struct TourneyTreeLineSection sLineSectionTrainer4Final[] =
+{
+ LINESECTION_ROUND1_TRAINER4(0x6021)
+ LINESECTION_ROUND2_MATCH4(0x6021)
+ LINESECTION_SEMIFINAL_BOTTOM_LEFT
+ LINESECTION_FINAL_LEFT
};
-static const struct UnkStruct_860DD10 gUnknown_0860d8b0[] =
+static const struct TourneyTreeLineSection sLineSectionTrainer3Round1[] =
{
- {.src = 0x6021, .y = 0x04, .x = 0x14},
- {.src = 0x6025, .y = 0x04, .x = 0x13},
- {.src = 0x6049, .y = 0x05, .x = 0x13},
- {.src = 0x6045, .y = 0x05, .x = 0x12},
+ LINESECTION_ROUND1_TRAINER3(0x6045)
};
-static const struct UnkStruct_860DD10 gUnknown_0860d8c0[] =
+static const struct TourneyTreeLineSection sLineSectionTrainer3Round2[] =
{
- {.src = 0x6021, .y = 0x04, .x = 0x14},
- {.src = 0x6025, .y = 0x04, .x = 0x13},
- {.src = 0x6049, .y = 0x05, .x = 0x13},
- {.src = 0x6025, .y = 0x05, .x = 0x12},
- {.src = 0x6029, .y = 0x06, .x = 0x12},
- {.src = 0x6049, .y = 0x07, .x = 0x12},
- {.src = 0x6045, .y = 0x07, .x = 0x11},
+ LINESECTION_ROUND1_TRAINER3(0x6025)
+ LINESECTION_ROUND2_MATCH5(0x6045)
};
-static const struct UnkStruct_860DD10 gUnknown_0860d8dc[] =
-{
- {.src = 0x6021, .y = 0x04, .x = 0x14},
- {.src = 0x6025, .y = 0x04, .x = 0x13},
- {.src = 0x6049, .y = 0x05, .x = 0x13},
- {.src = 0x6025, .y = 0x05, .x = 0x12},
- {.src = 0x6029, .y = 0x06, .x = 0x12},
- {.src = 0x6049, .y = 0x07, .x = 0x12},
- {.src = 0x6025, .y = 0x07, .x = 0x11},
- {.src = 0x6029, .y = 0x08, .x = 0x11},
- {.src = 0x6029, .y = 0x09, .x = 0x11},
- {.src = 0x6029, .y = 0x0a, .x = 0x11},
- {.src = 0x603c, .y = 0x0b, .x = 0x11},
+static const struct TourneyTreeLineSection sLineSectionTrainer3Semifinal[] =
+{
+ LINESECTION_ROUND1_TRAINER3(0x6025)
+ LINESECTION_ROUND2_MATCH5(0x6025)
+ LINESECTION_SEMIFINAL_TOP_RIGHT
};
-static const struct UnkStruct_860DD10 gUnknown_0860d908[] =
-{
- {.src = 0x6021, .y = 0x04, .x = 0x14},
- {.src = 0x6025, .y = 0x04, .x = 0x13},
- {.src = 0x6049, .y = 0x05, .x = 0x13},
- {.src = 0x6025, .y = 0x05, .x = 0x12},
- {.src = 0x6029, .y = 0x06, .x = 0x12},
- {.src = 0x6049, .y = 0x07, .x = 0x12},
- {.src = 0x6025, .y = 0x07, .x = 0x11},
- {.src = 0x6029, .y = 0x08, .x = 0x11},
- {.src = 0x6029, .y = 0x09, .x = 0x11},
- {.src = 0x6029, .y = 0x0a, .x = 0x11},
- {.src = 0x603c, .y = 0x0b, .x = 0x11},
- {.src = 0x602f, .y = 0x0b, .x = 0x10},
- {.src = 0x602e, .y = 0x0b, .x = 0x0f},
+static const struct TourneyTreeLineSection sLineSectionTrainer3Final[] =
+{
+ LINESECTION_ROUND1_TRAINER3(0x6025)
+ LINESECTION_ROUND2_MATCH5(0x6025)
+ LINESECTION_SEMIFINAL_TOP_RIGHT
+ LINESECTION_FINAL_RIGHT
};
-static const struct UnkStruct_860DD10 gUnknown_0860d93c[] =
+static const struct TourneyTreeLineSection sLineSectionTrainer11Round1[] =
{
- {.src = 0x6021, .y = 0x06, .x = 0x14},
- {.src = 0x6021, .y = 0x06, .x = 0x13},
- {.src = 0x6029, .y = 0x05, .x = 0x13},
- {.src = 0x6045, .y = 0x05, .x = 0x12},
+ LINESECTION_ROUND1_TRAINER11(0x6045)
};
-static const struct UnkStruct_860DD10 gUnknown_0860d94c[] =
+static const struct TourneyTreeLineSection sLineSectionTrainer11Round2[] =
{
- {.src = 0x6021, .y = 0x06, .x = 0x14},
- {.src = 0x6021, .y = 0x06, .x = 0x13},
- {.src = 0x6029, .y = 0x05, .x = 0x13},
- {.src = 0x6025, .y = 0x05, .x = 0x12},
- {.src = 0x6029, .y = 0x06, .x = 0x12},
- {.src = 0x6049, .y = 0x07, .x = 0x12},
- {.src = 0x6045, .y = 0x07, .x = 0x11},
+ LINESECTION_ROUND1_TRAINER11(0x6025)
+ LINESECTION_ROUND2_MATCH5(0x6045)
};
-static const struct UnkStruct_860DD10 gUnknown_0860d968[] =
-{
- {.src = 0x6021, .y = 0x06, .x = 0x14},
- {.src = 0x6021, .y = 0x06, .x = 0x13},
- {.src = 0x6029, .y = 0x05, .x = 0x13},
- {.src = 0x6025, .y = 0x05, .x = 0x12},
- {.src = 0x6029, .y = 0x06, .x = 0x12},
- {.src = 0x6049, .y = 0x07, .x = 0x12},
- {.src = 0x6025, .y = 0x07, .x = 0x11},
- {.src = 0x6029, .y = 0x08, .x = 0x11},
- {.src = 0x6029, .y = 0x09, .x = 0x11},
- {.src = 0x6029, .y = 0x0a, .x = 0x11},
- {.src = 0x603c, .y = 0x0b, .x = 0x11},
+static const struct TourneyTreeLineSection sLineSectionTrainer11Semifinal[] =
+{
+ LINESECTION_ROUND1_TRAINER11(0x6025)
+ LINESECTION_ROUND2_MATCH5(0x6025)
+ LINESECTION_SEMIFINAL_TOP_RIGHT
};
-static const struct UnkStruct_860DD10 gUnknown_0860d994[] =
-{
- {.src = 0x6021, .y = 0x06, .x = 0x14},
- {.src = 0x6021, .y = 0x06, .x = 0x13},
- {.src = 0x6029, .y = 0x05, .x = 0x13},
- {.src = 0x6025, .y = 0x05, .x = 0x12},
- {.src = 0x6029, .y = 0x06, .x = 0x12},
- {.src = 0x6049, .y = 0x07, .x = 0x12},
- {.src = 0x6025, .y = 0x07, .x = 0x11},
- {.src = 0x6029, .y = 0x08, .x = 0x11},
- {.src = 0x6029, .y = 0x09, .x = 0x11},
- {.src = 0x6029, .y = 0x0a, .x = 0x11},
- {.src = 0x603c, .y = 0x0b, .x = 0x11},
- {.src = 0x602f, .y = 0x0b, .x = 0x10},
- {.src = 0x602e, .y = 0x0b, .x = 0x0f},
+static const struct TourneyTreeLineSection sLineSectionTrainer11Final[] =
+{
+ LINESECTION_ROUND1_TRAINER11(0x6025)
+ LINESECTION_ROUND2_MATCH5(0x6025)
+ LINESECTION_SEMIFINAL_TOP_RIGHT
+ LINESECTION_FINAL_RIGHT
};
-static const struct UnkStruct_860DD10 gUnknown_0860d9c8[] =
+static const struct TourneyTreeLineSection sLineSectionTrainer15Round1[] =
{
- {.src = 0x6021, .y = 0x08, .x = 0x14},
- {.src = 0x6025, .y = 0x08, .x = 0x13},
- {.src = 0x6049, .y = 0x09, .x = 0x13},
- {.src = 0x6021, .y = 0x09, .x = 0x12},
+ LINESECTION_ROUND1_TRAINER15(0x6021)
};
-static const struct UnkStruct_860DD10 gUnknown_0860d9d8[] =
+static const struct TourneyTreeLineSection sLineSectionTrainer15Round2[] =
{
- {.src = 0x6021, .y = 0x08, .x = 0x14},
- {.src = 0x6025, .y = 0x08, .x = 0x13},
- {.src = 0x6049, .y = 0x09, .x = 0x13},
- {.src = 0x6021, .y = 0x09, .x = 0x12},
- {.src = 0x6029, .y = 0x08, .x = 0x12},
- {.src = 0x6029, .y = 0x07, .x = 0x12},
- {.src = 0x6045, .y = 0x07, .x = 0x11},
+ LINESECTION_ROUND1_TRAINER15(0x6021)
+ LINESECTION_ROUND2_MATCH6(0x6045)
};
-static const struct UnkStruct_860DD10 gUnknown_0860d9f4[] =
-{
- {.src = 0x6021, .y = 0x08, .x = 0x14},
- {.src = 0x6025, .y = 0x08, .x = 0x13},
- {.src = 0x6049, .y = 0x09, .x = 0x13},
- {.src = 0x6021, .y = 0x09, .x = 0x12},
- {.src = 0x6029, .y = 0x08, .x = 0x12},
- {.src = 0x6029, .y = 0x07, .x = 0x12},
- {.src = 0x6025, .y = 0x07, .x = 0x11},
- {.src = 0x6029, .y = 0x08, .x = 0x11},
- {.src = 0x6029, .y = 0x09, .x = 0x11},
- {.src = 0x6029, .y = 0x0a, .x = 0x11},
- {.src = 0x603c, .y = 0x0b, .x = 0x11},
+static const struct TourneyTreeLineSection sLineSectionTrainer15Semifinal[] =
+{
+ LINESECTION_ROUND1_TRAINER15(0x6021)
+ LINESECTION_ROUND2_MATCH6(0x6025)
+ LINESECTION_SEMIFINAL_TOP_RIGHT
};
-static const struct UnkStruct_860DD10 gUnknown_0860da20[] =
-{
- {.src = 0x6021, .y = 0x08, .x = 0x14},
- {.src = 0x6025, .y = 0x08, .x = 0x13},
- {.src = 0x6049, .y = 0x09, .x = 0x13},
- {.src = 0x6021, .y = 0x09, .x = 0x12},
- {.src = 0x6029, .y = 0x08, .x = 0x12},
- {.src = 0x6029, .y = 0x07, .x = 0x12},
- {.src = 0x6025, .y = 0x07, .x = 0x11},
- {.src = 0x6029, .y = 0x08, .x = 0x11},
- {.src = 0x6029, .y = 0x09, .x = 0x11},
- {.src = 0x6029, .y = 0x0a, .x = 0x11},
- {.src = 0x603c, .y = 0x0b, .x = 0x11},
- {.src = 0x602f, .y = 0x0b, .x = 0x10},
- {.src = 0x602e, .y = 0x0b, .x = 0x0f},
+static const struct TourneyTreeLineSection sLineSectionTrainer15Final[] =
+{
+ LINESECTION_ROUND1_TRAINER15(0x6021)
+ LINESECTION_ROUND2_MATCH6(0x6025)
+ LINESECTION_SEMIFINAL_TOP_RIGHT
+ LINESECTION_FINAL_RIGHT
};
-static const struct UnkStruct_860DD10 gUnknown_0860da54[] =
+static const struct TourneyTreeLineSection sLineSectionTrainer7Round1[] =
{
- {.src = 0x6021, .y = 0x0a, .x = 0x14},
- {.src = 0x6021, .y = 0x0a, .x = 0x13},
- {.src = 0x6029, .y = 0x09, .x = 0x13},
- {.src = 0x6021, .y = 0x09, .x = 0x12},
+ LINESECTION_ROUND1_TRAINER7(0x6021)
};
-static const struct UnkStruct_860DD10 gUnknown_0860da64[] =
+static const struct TourneyTreeLineSection sLineSectionTrainer7Round2[] =
{
- {.src = 0x6021, .y = 0x0a, .x = 0x14},
- {.src = 0x6021, .y = 0x0a, .x = 0x13},
- {.src = 0x6029, .y = 0x09, .x = 0x13},
- {.src = 0x6021, .y = 0x09, .x = 0x12},
- {.src = 0x6029, .y = 0x08, .x = 0x12},
- {.src = 0x6029, .y = 0x07, .x = 0x12},
- {.src = 0x6045, .y = 0x07, .x = 0x11},
+ LINESECTION_ROUND1_TRAINER7(0x6021)
+ LINESECTION_ROUND2_MATCH6(0x6045)
};
-static const struct UnkStruct_860DD10 gUnknown_0860da80[] =
-{
- {.src = 0x6021, .y = 0x0a, .x = 0x14},
- {.src = 0x6021, .y = 0x0a, .x = 0x13},
- {.src = 0x6029, .y = 0x09, .x = 0x13},
- {.src = 0x6021, .y = 0x09, .x = 0x12},
- {.src = 0x6029, .y = 0x08, .x = 0x12},
- {.src = 0x6029, .y = 0x07, .x = 0x12},
- {.src = 0x6025, .y = 0x07, .x = 0x11},
- {.src = 0x6029, .y = 0x08, .x = 0x11},
- {.src = 0x6029, .y = 0x09, .x = 0x11},
- {.src = 0x6029, .y = 0x0a, .x = 0x11},
- {.src = 0x603c, .y = 0x0b, .x = 0x11},
+static const struct TourneyTreeLineSection sLineSectionTrainer7Semifinal[] =
+{
+ LINESECTION_ROUND1_TRAINER7(0x6021)
+ LINESECTION_ROUND2_MATCH6(0x6025)
+ LINESECTION_SEMIFINAL_TOP_RIGHT
};
-static const struct UnkStruct_860DD10 gUnknown_0860daac[] =
-{
- {.src = 0x6021, .y = 0x0a, .x = 0x14},
- {.src = 0x6021, .y = 0x0a, .x = 0x13},
- {.src = 0x6029, .y = 0x09, .x = 0x13},
- {.src = 0x6021, .y = 0x09, .x = 0x12},
- {.src = 0x6029, .y = 0x08, .x = 0x12},
- {.src = 0x6029, .y = 0x07, .x = 0x12},
- {.src = 0x6025, .y = 0x07, .x = 0x11},
- {.src = 0x6029, .y = 0x08, .x = 0x11},
- {.src = 0x6029, .y = 0x09, .x = 0x11},
- {.src = 0x6029, .y = 0x0a, .x = 0x11},
- {.src = 0x603c, .y = 0x0b, .x = 0x11},
- {.src = 0x602f, .y = 0x0b, .x = 0x10},
- {.src = 0x602e, .y = 0x0b, .x = 0x0f},
+static const struct TourneyTreeLineSection sLineSectionTrainer7Final[] =
+{
+ LINESECTION_ROUND1_TRAINER7(0x6021)
+ LINESECTION_ROUND2_MATCH6(0x6025)
+ LINESECTION_SEMIFINAL_TOP_RIGHT
+ LINESECTION_FINAL_RIGHT
};
-static const struct UnkStruct_860DD10 gUnknown_0860dae0[] =
+static const struct TourneyTreeLineSection sLineSectionTrainer6Round1[] =
{
- {.src = 0x6021, .y = 0x0c, .x = 0x14},
- {.src = 0x6025, .y = 0x0c, .x = 0x13},
- {.src = 0x6049, .y = 0x0d, .x = 0x13},
- {.src = 0x6045, .y = 0x0d, .x = 0x12},
+ LINESECTION_ROUND1_TRAINER6(0x6045)
};
-static const struct UnkStruct_860DD10 gUnknown_0860daf0[] =
+static const struct TourneyTreeLineSection sLineSectionTrainer6Round2[] =
{
- {.src = 0x6021, .y = 0x0c, .x = 0x14},
- {.src = 0x6025, .y = 0x0c, .x = 0x13},
- {.src = 0x6049, .y = 0x0d, .x = 0x13},
- {.src = 0x6025, .y = 0x0d, .x = 0x12},
- {.src = 0x6029, .y = 0x0e, .x = 0x12},
- {.src = 0x6049, .y = 0x0f, .x = 0x12},
- {.src = 0x6021, .y = 0x0f, .x = 0x11},
+ LINESECTION_ROUND1_TRAINER6(0x6025)
+ LINESECTION_ROUND2_MATCH7(0x6021)
};
-static const struct UnkStruct_860DD10 gUnknown_0860db0c[] =
-{
- {.src = 0x6021, .y = 0x0c, .x = 0x14},
- {.src = 0x6025, .y = 0x0c, .x = 0x13},
- {.src = 0x6049, .y = 0x0d, .x = 0x13},
- {.src = 0x6025, .y = 0x0d, .x = 0x12},
- {.src = 0x6029, .y = 0x0e, .x = 0x12},
- {.src = 0x6049, .y = 0x0f, .x = 0x12},
- {.src = 0x6021, .y = 0x0f, .x = 0x11},
- {.src = 0x6038, .y = 0x0e, .x = 0x11},
- {.src = 0x6037, .y = 0x0d, .x = 0x11},
- {.src = 0x6036, .y = 0x0c, .x = 0x11},
- {.src = 0x6035, .y = 0x0b, .x = 0x11},
+static const struct TourneyTreeLineSection sLineSectionTrainer6Semifinal[] =
+{
+ LINESECTION_ROUND1_TRAINER6(0x6025)
+ LINESECTION_ROUND2_MATCH7(0x6021)
+ LINESECTION_SEMIFINAL_BOTTOM_RIGHT
};
-static const struct UnkStruct_860DD10 gUnknown_0860db38[] =
-{
- {.src = 0x6021, .y = 0x0c, .x = 0x14},
- {.src = 0x6025, .y = 0x0c, .x = 0x13},
- {.src = 0x6049, .y = 0x0d, .x = 0x13},
- {.src = 0x6025, .y = 0x0d, .x = 0x12},
- {.src = 0x6029, .y = 0x0e, .x = 0x12},
- {.src = 0x6049, .y = 0x0f, .x = 0x12},
- {.src = 0x6021, .y = 0x0f, .x = 0x11},
- {.src = 0x6038, .y = 0x0e, .x = 0x11},
- {.src = 0x6037, .y = 0x0d, .x = 0x11},
- {.src = 0x6036, .y = 0x0c, .x = 0x11},
- {.src = 0x6035, .y = 0x0b, .x = 0x11},
- {.src = 0x602f, .y = 0x0b, .x = 0x10},
- {.src = 0x602e, .y = 0x0b, .x = 0x0f},
+static const struct TourneyTreeLineSection sLineSectionTrainer6Final[] =
+{
+ LINESECTION_ROUND1_TRAINER6(0x6025)
+ LINESECTION_ROUND2_MATCH7(0x6021)
+ LINESECTION_SEMIFINAL_BOTTOM_RIGHT
+ LINESECTION_FINAL_RIGHT
};
-static const struct UnkStruct_860DD10 gUnknown_0860db6c[] =
+static const struct TourneyTreeLineSection sLineSectionTrainer14Round1[] =
{
- {.src = 0x6021, .y = 0x0e, .x = 0x14},
- {.src = 0x6021, .y = 0x0e, .x = 0x13},
- {.src = 0x6029, .y = 0x0d, .x = 0x13},
- {.src = 0x6045, .y = 0x0d, .x = 0x12},
+ LINESECTION_ROUND1_TRAINER14(0x6045)
};
-static const struct UnkStruct_860DD10 gUnknown_0860db7c[] =
+static const struct TourneyTreeLineSection sLineSectionTrainer14Round2[] =
{
- {.src = 0x6021, .y = 0x0e, .x = 0x14},
- {.src = 0x6021, .y = 0x0e, .x = 0x13},
- {.src = 0x6029, .y = 0x0d, .x = 0x13},
- {.src = 0x6025, .y = 0x0d, .x = 0x12},
- {.src = 0x6029, .y = 0x0e, .x = 0x12},
- {.src = 0x6049, .y = 0x0f, .x = 0x12},
- {.src = 0x6021, .y = 0x0f, .x = 0x11},
+ LINESECTION_ROUND1_TRAINER14(0x6025)
+ LINESECTION_ROUND2_MATCH7(0x6021)
};
-static const struct UnkStruct_860DD10 gUnknown_0860db98[] =
-{
- {.src = 0x6021, .y = 0x0e, .x = 0x14},
- {.src = 0x6021, .y = 0x0e, .x = 0x13},
- {.src = 0x6029, .y = 0x0d, .x = 0x13},
- {.src = 0x6025, .y = 0x0d, .x = 0x12},
- {.src = 0x6029, .y = 0x0e, .x = 0x12},
- {.src = 0x6049, .y = 0x0f, .x = 0x12},
- {.src = 0x6021, .y = 0x0f, .x = 0x11},
- {.src = 0x6038, .y = 0x0e, .x = 0x11},
- {.src = 0x6037, .y = 0x0d, .x = 0x11},
- {.src = 0x6036, .y = 0x0c, .x = 0x11},
- {.src = 0x6035, .y = 0x0b, .x = 0x11},
+static const struct TourneyTreeLineSection sLineSectionTrainer14Semifinal[] =
+{
+ LINESECTION_ROUND1_TRAINER14(0x6025)
+ LINESECTION_ROUND2_MATCH7(0x6021)
+ LINESECTION_SEMIFINAL_BOTTOM_RIGHT
};
-static const struct UnkStruct_860DD10 gUnknown_0860dbc4[] =
-{
- {.src = 0x6021, .y = 0x0e, .x = 0x14},
- {.src = 0x6021, .y = 0x0e, .x = 0x13},
- {.src = 0x6029, .y = 0x0d, .x = 0x13},
- {.src = 0x6025, .y = 0x0d, .x = 0x12},
- {.src = 0x6029, .y = 0x0e, .x = 0x12},
- {.src = 0x6049, .y = 0x0f, .x = 0x12},
- {.src = 0x6021, .y = 0x0f, .x = 0x11},
- {.src = 0x6038, .y = 0x0e, .x = 0x11},
- {.src = 0x6037, .y = 0x0d, .x = 0x11},
- {.src = 0x6036, .y = 0x0c, .x = 0x11},
- {.src = 0x6035, .y = 0x0b, .x = 0x11},
- {.src = 0x602f, .y = 0x0b, .x = 0x10},
- {.src = 0x602e, .y = 0x0b, .x = 0x0f},
+static const struct TourneyTreeLineSection sLineSectionTrainer14Final[] =
+{
+ LINESECTION_ROUND1_TRAINER14(0x6025)
+ LINESECTION_ROUND2_MATCH7(0x6021)
+ LINESECTION_SEMIFINAL_BOTTOM_RIGHT
+ LINESECTION_FINAL_RIGHT
};
-static const struct UnkStruct_860DD10 gUnknown_0860dbf8[] =
+static const struct TourneyTreeLineSection sLineSectionTrainer10Round1[] =
{
- {.src = 0x6021, .y = 0x10, .x = 0x14},
- {.src = 0x6025, .y = 0x10, .x = 0x13},
- {.src = 0x6049, .y = 0x11, .x = 0x13},
- {.src = 0x6021, .y = 0x11, .x = 0x12},
+ LINESECTION_ROUND1_TRAINER10(0x6021)
};
-static const struct UnkStruct_860DD10 gUnknown_0860dc08[] =
+static const struct TourneyTreeLineSection sLineSectionTrainer10Round2[] =
{
- {.src = 0x6021, .y = 0x10, .x = 0x14},
- {.src = 0x6025, .y = 0x10, .x = 0x13},
- {.src = 0x6049, .y = 0x11, .x = 0x13},
- {.src = 0x6021, .y = 0x11, .x = 0x12},
- {.src = 0x6029, .y = 0x10, .x = 0x12},
- {.src = 0x6029, .y = 0x0f, .x = 0x12},
- {.src = 0x6021, .y = 0x0f, .x = 0x11},
+ LINESECTION_ROUND1_TRAINER10(0x6021)
+ LINESECTION_ROUND2_MATCH8(0x6021)
};
-static const struct UnkStruct_860DD10 gUnknown_0860dc24[] =
-{
- {.src = 0x6021, .y = 0x10, .x = 0x14},
- {.src = 0x6025, .y = 0x10, .x = 0x13},
- {.src = 0x6049, .y = 0x11, .x = 0x13},
- {.src = 0x6021, .y = 0x11, .x = 0x12},
- {.src = 0x6029, .y = 0x10, .x = 0x12},
- {.src = 0x6029, .y = 0x0f, .x = 0x12},
- {.src = 0x6021, .y = 0x0f, .x = 0x11},
- {.src = 0x6038, .y = 0x0e, .x = 0x11},
- {.src = 0x6037, .y = 0x0d, .x = 0x11},
- {.src = 0x6036, .y = 0x0c, .x = 0x11},
- {.src = 0x6035, .y = 0x0b, .x = 0x11},
+static const struct TourneyTreeLineSection sLineSectionTrainer10Semifinal[] =
+{
+ LINESECTION_ROUND1_TRAINER10(0x6021)
+ LINESECTION_ROUND2_MATCH8(0x6021)
+ LINESECTION_SEMIFINAL_BOTTOM_RIGHT
};
-static const struct UnkStruct_860DD10 gUnknown_0860dc50[] =
-{
- {.src = 0x6021, .y = 0x10, .x = 0x14},
- {.src = 0x6025, .y = 0x10, .x = 0x13},
- {.src = 0x6049, .y = 0x11, .x = 0x13},
- {.src = 0x6021, .y = 0x11, .x = 0x12},
- {.src = 0x6029, .y = 0x10, .x = 0x12},
- {.src = 0x6029, .y = 0x0f, .x = 0x12},
- {.src = 0x6021, .y = 0x0f, .x = 0x11},
- {.src = 0x6038, .y = 0x0e, .x = 0x11},
- {.src = 0x6037, .y = 0x0d, .x = 0x11},
- {.src = 0x6036, .y = 0x0c, .x = 0x11},
- {.src = 0x6035, .y = 0x0b, .x = 0x11},
- {.src = 0x602f, .y = 0x0b, .x = 0x10},
- {.src = 0x602e, .y = 0x0b, .x = 0x0f},
+static const struct TourneyTreeLineSection sLineSectionTrainer10Final[] =
+{
+ LINESECTION_ROUND1_TRAINER10(0x6021)
+ LINESECTION_ROUND2_MATCH8(0x6021)
+ LINESECTION_SEMIFINAL_BOTTOM_RIGHT
+ LINESECTION_FINAL_RIGHT
};
-static const struct UnkStruct_860DD10 gUnknown_0860dc84[] =
+static const struct TourneyTreeLineSection sLineSectionTrainer2Round1[] =
{
- {.src = 0x602b, .y = 0x12, .x = 0x14},
- {.src = 0x602b, .y = 0x12, .x = 0x13},
- {.src = 0x6029, .y = 0x11, .x = 0x13},
- {.src = 0x6021, .y = 0x11, .x = 0x12},
+ LINESECTION_ROUND1_TRAINER2(0x6021)
};
-static const struct UnkStruct_860DD10 gUnknown_0860dc94[] =
+static const struct TourneyTreeLineSection sLineSectionTrainer2Round2[] =
{
- {.src = 0x602b, .y = 0x12, .x = 0x14},
- {.src = 0x602b, .y = 0x12, .x = 0x13},
- {.src = 0x6029, .y = 0x11, .x = 0x13},
- {.src = 0x6021, .y = 0x11, .x = 0x12},
- {.src = 0x6029, .y = 0x10, .x = 0x12},
- {.src = 0x6029, .y = 0x0f, .x = 0x12},
- {.src = 0x6021, .y = 0x0f, .x = 0x11},
+ LINESECTION_ROUND1_TRAINER2(0x6021)
+ LINESECTION_ROUND2_MATCH8(0x6021)
};
-static const struct UnkStruct_860DD10 gUnknown_0860dcb0[] =
-{
- {.src = 0x602b, .y = 0x12, .x = 0x14},
- {.src = 0x602b, .y = 0x12, .x = 0x13},
- {.src = 0x6029, .y = 0x11, .x = 0x13},
- {.src = 0x6021, .y = 0x11, .x = 0x12},
- {.src = 0x6029, .y = 0x10, .x = 0x12},
- {.src = 0x6029, .y = 0x0f, .x = 0x12},
- {.src = 0x6021, .y = 0x0f, .x = 0x11},
- {.src = 0x6038, .y = 0x0e, .x = 0x11},
- {.src = 0x6037, .y = 0x0d, .x = 0x11},
- {.src = 0x6036, .y = 0x0c, .x = 0x11},
- {.src = 0x6035, .y = 0x0b, .x = 0x11},
+static const struct TourneyTreeLineSection sLineSectionTrainer2Semifinal[] =
+{
+ LINESECTION_ROUND1_TRAINER2(0x6021)
+ LINESECTION_ROUND2_MATCH8(0x6021)
+ LINESECTION_SEMIFINAL_BOTTOM_RIGHT
};
-static const struct UnkStruct_860DD10 gUnknown_0860dcdc[] =
-{
- {.src = 0x602b, .y = 0x12, .x = 0x14},
- {.src = 0x602b, .y = 0x12, .x = 0x13},
- {.src = 0x6029, .y = 0x11, .x = 0x13},
- {.src = 0x6021, .y = 0x11, .x = 0x12},
- {.src = 0x6029, .y = 0x10, .x = 0x12},
- {.src = 0x6029, .y = 0x0f, .x = 0x12},
- {.src = 0x6021, .y = 0x0f, .x = 0x11},
- {.src = 0x6038, .y = 0x0e, .x = 0x11},
- {.src = 0x6037, .y = 0x0d, .x = 0x11},
- {.src = 0x6036, .y = 0x0c, .x = 0x11},
- {.src = 0x6035, .y = 0x0b, .x = 0x11},
- {.src = 0x602f, .y = 0x0b, .x = 0x10},
- {.src = 0x602e, .y = 0x0b, .x = 0x0f},
+static const struct TourneyTreeLineSection sLineSectionTrainer2Final[] =
+{
+ LINESECTION_ROUND1_TRAINER2(0x6021)
+ LINESECTION_ROUND2_MATCH8(0x6021)
+ LINESECTION_SEMIFINAL_BOTTOM_RIGHT
+ LINESECTION_FINAL_RIGHT
};
-static const struct UnkStruct_860DD10 * const gUnknown_0860DD10[DOME_TOURNAMENT_TRAINERS_COUNT][4] =
-{
- {gUnknown_0860d450, gUnknown_0860d460, gUnknown_0860d47c, gUnknown_0860d4a8},
- {gUnknown_0860dc84, gUnknown_0860dc94, gUnknown_0860dcb0, gUnknown_0860dcdc},
- {gUnknown_0860d8b0, gUnknown_0860d8c0, gUnknown_0860d8dc, gUnknown_0860d908},
- {gUnknown_0860d824, gUnknown_0860d834, gUnknown_0860d850, gUnknown_0860d87c},
- {gUnknown_0860d5f4, gUnknown_0860d604, gUnknown_0860d620, gUnknown_0860d64c},
- {gUnknown_0860dae0, gUnknown_0860daf0, gUnknown_0860db0c, gUnknown_0860db38},
- {gUnknown_0860da54, gUnknown_0860da64, gUnknown_0860da80, gUnknown_0860daac},
- {gUnknown_0860d680, gUnknown_0860d690, gUnknown_0860d6ac, gUnknown_0860d6d8},
- {gUnknown_0860d4dc, gUnknown_0860d4ec, gUnknown_0860d508, gUnknown_0860d534},
- {gUnknown_0860dbf8, gUnknown_0860dc08, gUnknown_0860dc24, gUnknown_0860dc50},
- {gUnknown_0860d93c, gUnknown_0860d94c, gUnknown_0860d968, gUnknown_0860d994},
- {gUnknown_0860d798, gUnknown_0860d7a8, gUnknown_0860d7c4, gUnknown_0860d7f0},
- {gUnknown_0860d568, gUnknown_0860d578, gUnknown_0860d594, gUnknown_0860d5c0},
- {gUnknown_0860db6c, gUnknown_0860db7c, gUnknown_0860db98, gUnknown_0860dbc4},
- {gUnknown_0860d9c8, gUnknown_0860d9d8, gUnknown_0860d9f4, gUnknown_0860da20},
- {gUnknown_0860d70c, gUnknown_0860d71c, gUnknown_0860d738, gUnknown_0860d764},
+static const struct TourneyTreeLineSection *const sTourneyTreeLineSections[DOME_TOURNAMENT_TRAINERS_COUNT][DOME_ROUNDS_COUNT] =
+{
+ {sLineSectionTrainer1Round1, sLineSectionTrainer1Round2, sLineSectionTrainer1Semifinal, sLineSectionTrainer1Final},
+ {sLineSectionTrainer2Round1, sLineSectionTrainer2Round2, sLineSectionTrainer2Semifinal, sLineSectionTrainer2Final},
+ {sLineSectionTrainer3Round1, sLineSectionTrainer3Round2, sLineSectionTrainer3Semifinal, sLineSectionTrainer3Final},
+ {sLineSectionTrainer4Round1, sLineSectionTrainer4Round2, sLineSectionTrainer4Semifinal, sLineSectionTrainer4Final},
+ {sLineSectionTrainer5Round1, sLineSectionTrainer5Round2, sLineSectionTrainer5Semifinal, sLineSectionTrainer5Final},
+ {sLineSectionTrainer6Round1, sLineSectionTrainer6Round2, sLineSectionTrainer6Semifinal, sLineSectionTrainer6Final},
+ {sLineSectionTrainer7Round1, sLineSectionTrainer7Round2, sLineSectionTrainer7Semifinal, sLineSectionTrainer7Final},
+ {sLineSectionTrainer8Round1, sLineSectionTrainer8Round2, sLineSectionTrainer8Semifinal, sLineSectionTrainer8Final},
+ {sLineSectionTrainer9Round1, sLineSectionTrainer9Round2, sLineSectionTrainer9Semifinal, sLineSectionTrainer9Final},
+ {sLineSectionTrainer10Round1, sLineSectionTrainer10Round2, sLineSectionTrainer10Semifinal, sLineSectionTrainer10Final},
+ {sLineSectionTrainer11Round1, sLineSectionTrainer11Round2, sLineSectionTrainer11Semifinal, sLineSectionTrainer11Final},
+ {sLineSectionTrainer12Round1, sLineSectionTrainer12Round2, sLineSectionTrainer12Semifinal, sLineSectionTrainer12Final},
+ {sLineSectionTrainer13Round1, sLineSectionTrainer13Round2, sLineSectionTrainer13Semifinal, sLineSectionTrainer13Final},
+ {sLineSectionTrainer14Round1, sLineSectionTrainer14Round2, sLineSectionTrainer14Semifinal, sLineSectionTrainer14Final},
+ {sLineSectionTrainer15Round1, sLineSectionTrainer15Round2, sLineSectionTrainer15Semifinal, sLineSectionTrainer15Final},
+ {sLineSectionTrainer16Round1, sLineSectionTrainer16Round2, sLineSectionTrainer16Semifinal, sLineSectionTrainer16Final},
};
-static const u8 gUnknown_0860DE10[DOME_TOURNAMENT_TRAINERS_COUNT][4] =
-{
- {0x04, 0x07, 0x0b, 0x0d},
- {0x04, 0x07, 0x0b, 0x0d},
- {0x04, 0x07, 0x0b, 0x0d},
- {0x04, 0x07, 0x0b, 0x0d},
- {0x04, 0x07, 0x0b, 0x0d},
- {0x04, 0x07, 0x0b, 0x0d},
- {0x04, 0x07, 0x0b, 0x0d},
- {0x04, 0x07, 0x0b, 0x0d},
- {0x04, 0x07, 0x0b, 0x0d},
- {0x04, 0x07, 0x0b, 0x0d},
- {0x04, 0x07, 0x0b, 0x0d},
- {0x04, 0x07, 0x0b, 0x0d},
- {0x04, 0x07, 0x0b, 0x0d},
- {0x04, 0x07, 0x0b, 0x0d},
- {0x04, 0x07, 0x0b, 0x0d},
- {0x04, 0x07, 0x0b, 0x0d},
+static const u8 sTourneyTreeLineSectionArrayCounts[DOME_TOURNAMENT_TRAINERS_COUNT][DOME_ROUNDS_COUNT] =
+{
+ {ARRAY_COUNT(sLineSectionTrainer1Round1), ARRAY_COUNT(sLineSectionTrainer1Round2), ARRAY_COUNT(sLineSectionTrainer1Semifinal), ARRAY_COUNT(sLineSectionTrainer1Final)},
+ {ARRAY_COUNT(sLineSectionTrainer2Round1), ARRAY_COUNT(sLineSectionTrainer2Round2), ARRAY_COUNT(sLineSectionTrainer2Semifinal), ARRAY_COUNT(sLineSectionTrainer2Final)},
+ {ARRAY_COUNT(sLineSectionTrainer3Round1), ARRAY_COUNT(sLineSectionTrainer3Round2), ARRAY_COUNT(sLineSectionTrainer3Semifinal), ARRAY_COUNT(sLineSectionTrainer3Final)},
+ {ARRAY_COUNT(sLineSectionTrainer4Round1), ARRAY_COUNT(sLineSectionTrainer4Round2), ARRAY_COUNT(sLineSectionTrainer4Semifinal), ARRAY_COUNT(sLineSectionTrainer4Final)},
+ {ARRAY_COUNT(sLineSectionTrainer5Round1), ARRAY_COUNT(sLineSectionTrainer5Round2), ARRAY_COUNT(sLineSectionTrainer5Semifinal), ARRAY_COUNT(sLineSectionTrainer5Final)},
+ {ARRAY_COUNT(sLineSectionTrainer6Round1), ARRAY_COUNT(sLineSectionTrainer6Round2), ARRAY_COUNT(sLineSectionTrainer6Semifinal), ARRAY_COUNT(sLineSectionTrainer6Final)},
+ {ARRAY_COUNT(sLineSectionTrainer7Round1), ARRAY_COUNT(sLineSectionTrainer7Round2), ARRAY_COUNT(sLineSectionTrainer7Semifinal), ARRAY_COUNT(sLineSectionTrainer7Final)},
+ {ARRAY_COUNT(sLineSectionTrainer8Round1), ARRAY_COUNT(sLineSectionTrainer8Round2), ARRAY_COUNT(sLineSectionTrainer8Semifinal), ARRAY_COUNT(sLineSectionTrainer8Final)},
+ {ARRAY_COUNT(sLineSectionTrainer9Round1), ARRAY_COUNT(sLineSectionTrainer9Round2), ARRAY_COUNT(sLineSectionTrainer9Semifinal), ARRAY_COUNT(sLineSectionTrainer9Final)},
+ {ARRAY_COUNT(sLineSectionTrainer10Round1), ARRAY_COUNT(sLineSectionTrainer10Round2), ARRAY_COUNT(sLineSectionTrainer10Semifinal), ARRAY_COUNT(sLineSectionTrainer10Final)},
+ {ARRAY_COUNT(sLineSectionTrainer11Round1), ARRAY_COUNT(sLineSectionTrainer11Round2), ARRAY_COUNT(sLineSectionTrainer11Semifinal), ARRAY_COUNT(sLineSectionTrainer11Final)},
+ {ARRAY_COUNT(sLineSectionTrainer12Round1), ARRAY_COUNT(sLineSectionTrainer12Round2), ARRAY_COUNT(sLineSectionTrainer12Semifinal), ARRAY_COUNT(sLineSectionTrainer12Final)},
+ {ARRAY_COUNT(sLineSectionTrainer13Round1), ARRAY_COUNT(sLineSectionTrainer13Round2), ARRAY_COUNT(sLineSectionTrainer13Semifinal), ARRAY_COUNT(sLineSectionTrainer13Final)},
+ {ARRAY_COUNT(sLineSectionTrainer14Round1), ARRAY_COUNT(sLineSectionTrainer14Round2), ARRAY_COUNT(sLineSectionTrainer14Semifinal), ARRAY_COUNT(sLineSectionTrainer14Final)},
+ {ARRAY_COUNT(sLineSectionTrainer15Round1), ARRAY_COUNT(sLineSectionTrainer15Round2), ARRAY_COUNT(sLineSectionTrainer15Semifinal), ARRAY_COUNT(sLineSectionTrainer15Final)},
+ {ARRAY_COUNT(sLineSectionTrainer16Round1), ARRAY_COUNT(sLineSectionTrainer16Round2), ARRAY_COUNT(sLineSectionTrainer16Semifinal), ARRAY_COUNT(sLineSectionTrainer16Final)},
};
// code
@@ -2280,57 +2115,57 @@ static void GetDomeData(void)
case DOME_DATA_WIN_STREAK_ACTIVE:
gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode]) != 0);
break;
- case DOME_DATA_2:
- gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_0;
+ case DOME_DATA_ATTEMPTED_SINGLES_50:
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeAttemptedSingles50;
break;
- case DOME_DATA_3:
- gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_1;
+ case DOME_DATA_ATTEMPTED_SINGLES_OPEN:
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeAttemptedSinglesOpen;
break;
- case DOME_DATA_4:
- gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_2;
+ case DOME_DATA_HAS_WON_SINGLES_50:
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeHasWonSingles50;
break;
- case DOME_DATA_5:
- gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_3;
+ case DOME_DATA_HAS_WON_SINGLES_OPEN:
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeHasWonSinglesOpen;
break;
- case DOME_DATA_6:
+ case DOME_DATA_ATTEMPTED_CHALLENGE:
if (VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES)
{
- if (lvlMode)
- gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_5;
+ if (lvlMode != FRONTIER_LVL_50)
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeAttemptedDoublesOpen;
else
- gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_4;
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeAttemptedDoubles50;
}
else
{
- if (lvlMode)
- gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_1;
+ if (lvlMode != FRONTIER_LVL_50)
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeAttemptedSinglesOpen;
else
- gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_0;
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeAttemptedSingles50;
}
break;
- case DOME_DATA_7:
+ case DOME_DATA_HAS_WON_CHALLENGE:
if (VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES)
{
- if (lvlMode)
- gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_7;
+ if (lvlMode != FRONTIER_LVL_50)
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeHasWonDoublesOpen;
else
- gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_6;
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeHasWonDoubles50;
}
else
{
- if (lvlMode)
- gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_3;
+ if (lvlMode != FRONTIER_LVL_50)
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeHasWonSinglesOpen;
else
- gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_2;
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeHasWonSingles50;
}
break;
- case DOME_DATA_8:
+ case DOME_DATA_SELECTED_MONS:
ClearSelectedPartyOrder();
gSelectedOrderFromParty[0] = gSaveBlock2Ptr->frontier.selectedPartyMons[3];
gSelectedOrderFromParty[1] = gSaveBlock2Ptr->frontier.selectedPartyMons[3] >> 8;
break;
- case DOME_DATA_9:
- gSpecialVar_Result = (gSaveBlock2Ptr->frontier.field_D0A * 2) - 3 + gSaveBlock2Ptr->frontier.field_D0B;
+ case DOME_DATA_PREV_TOURNEY_TYPE:
+ gSpecialVar_Result = (gSaveBlock2Ptr->frontier.domeLvlMode * 2) - 3 + gSaveBlock2Ptr->frontier.domeBattleMode;
break;
}
}
@@ -2351,51 +2186,51 @@ static void SetDomeData(void)
else
gSaveBlock2Ptr->frontier.winStreakActiveFlags &= sWinStreakMasks[battleMode][lvlMode];
break;
- case DOME_DATA_2:
- gSaveBlock2Ptr->frontier.field_D08_0 = gSpecialVar_0x8006;
+ case DOME_DATA_ATTEMPTED_SINGLES_50:
+ gSaveBlock2Ptr->frontier.domeAttemptedSingles50 = gSpecialVar_0x8006;
break;
- case DOME_DATA_3:
- gSaveBlock2Ptr->frontier.field_D08_1 = gSpecialVar_0x8006;
+ case DOME_DATA_ATTEMPTED_SINGLES_OPEN:
+ gSaveBlock2Ptr->frontier.domeAttemptedSinglesOpen = gSpecialVar_0x8006;
break;
- case DOME_DATA_4:
- gSaveBlock2Ptr->frontier.field_D08_2 = gSpecialVar_0x8006;
+ case DOME_DATA_HAS_WON_SINGLES_50:
+ gSaveBlock2Ptr->frontier.domeHasWonSingles50 = gSpecialVar_0x8006;
break;
- case DOME_DATA_5:
- gSaveBlock2Ptr->frontier.field_D08_3 = gSpecialVar_0x8006;
+ case DOME_DATA_HAS_WON_SINGLES_OPEN:
+ gSaveBlock2Ptr->frontier.domeHasWonSinglesOpen = gSpecialVar_0x8006;
break;
- case DOME_DATA_6:
+ case DOME_DATA_ATTEMPTED_CHALLENGE:
if (VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES)
{
- if (lvlMode)
- gSaveBlock2Ptr->frontier.field_D08_5 = gSpecialVar_0x8006;
+ if (lvlMode != FRONTIER_LVL_50)
+ gSaveBlock2Ptr->frontier.domeAttemptedDoublesOpen = gSpecialVar_0x8006;
else
- gSaveBlock2Ptr->frontier.field_D08_4 = gSpecialVar_0x8006;
+ gSaveBlock2Ptr->frontier.domeAttemptedDoubles50 = gSpecialVar_0x8006;
}
else
{
- if (lvlMode)
- gSaveBlock2Ptr->frontier.field_D08_1 = gSpecialVar_0x8006;
+ if (lvlMode != FRONTIER_LVL_50)
+ gSaveBlock2Ptr->frontier.domeAttemptedSinglesOpen = gSpecialVar_0x8006;
else
- gSaveBlock2Ptr->frontier.field_D08_0 = gSpecialVar_0x8006;
+ gSaveBlock2Ptr->frontier.domeAttemptedSingles50 = gSpecialVar_0x8006;
}
break;
- case DOME_DATA_7:
+ case DOME_DATA_HAS_WON_CHALLENGE:
if (VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES)
{
- if (lvlMode)
- gSaveBlock2Ptr->frontier.field_D08_7 = gSpecialVar_0x8006;
+ if (lvlMode != FRONTIER_LVL_50)
+ gSaveBlock2Ptr->frontier.domeHasWonDoublesOpen = gSpecialVar_0x8006;
else
- gSaveBlock2Ptr->frontier.field_D08_6 = gSpecialVar_0x8006;
+ gSaveBlock2Ptr->frontier.domeHasWonDoubles50 = gSpecialVar_0x8006;
}
else
{
- if (lvlMode)
- gSaveBlock2Ptr->frontier.field_D08_3 = gSpecialVar_0x8006;
+ if (lvlMode != FRONTIER_LVL_50)
+ gSaveBlock2Ptr->frontier.domeHasWonSinglesOpen = gSpecialVar_0x8006;
else
- gSaveBlock2Ptr->frontier.field_D08_2 = gSpecialVar_0x8006;
+ gSaveBlock2Ptr->frontier.domeHasWonSingles50 = gSpecialVar_0x8006;
}
break;
- case DOME_DATA_8:
+ case DOME_DATA_SELECTED_MONS:
gSaveBlock2Ptr->frontier.selectedPartyMons[3] = T1_READ_16(gSelectedOrderFromParty);
break;
}
@@ -2408,105 +2243,115 @@ static void InitDomeTrainers(void)
int species[FRONTIER_PARTY_SIZE];
int monTypesBits, monTypesCount;
int trainerId;
- int monSetId;
- u16 *statSums;
+ int monId;
+ u16 *rankingScores;
int *statValues;
u8 ivs = 0;
species[0] = 0;
species[1] = 0;
species[2] = 0;
- statSums = AllocZeroed(sizeof(u16) * DOME_TOURNAMENT_TRAINERS_COUNT);
- statValues = AllocZeroed(sizeof(int) * 6);
+ rankingScores = AllocZeroed(sizeof(u16) * DOME_TOURNAMENT_TRAINERS_COUNT);
+ statValues = AllocZeroed(sizeof(int) * NUM_STATS);
- gSaveBlock2Ptr->frontier.field_D0A = gSaveBlock2Ptr->frontier.lvlMode + 1;
- gSaveBlock2Ptr->frontier.field_D0B = VarGet(VAR_FRONTIER_BATTLE_MODE) + 1;
- gSaveBlock2Ptr->frontier.domeTrainers[0].trainerId = TRAINER_PLAYER;
- gSaveBlock2Ptr->frontier.domeTrainers[0].isEliminated = 0;
- gSaveBlock2Ptr->frontier.domeTrainers[0].eliminatedAt = 0;
- gSaveBlock2Ptr->frontier.domeTrainers[0].unk3 = 0;
+ gSaveBlock2Ptr->frontier.domeLvlMode = gSaveBlock2Ptr->frontier.lvlMode + 1;
+ gSaveBlock2Ptr->frontier.domeBattleMode = VarGet(VAR_FRONTIER_BATTLE_MODE) + 1;
+ DOME_TRAINERS[0].trainerId = TRAINER_PLAYER;
+ DOME_TRAINERS[0].isEliminated = FALSE;
+ DOME_TRAINERS[0].eliminatedAt = 0;
+ DOME_TRAINERS[0].forfeited = FALSE;
+ // Store the data used to display party information on the player's tourney page
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
{
- gSaveBlock2Ptr->frontier.domeMonIds[0][i] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_SPECIES, NULL);
+ DOME_MONS[0][i] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_SPECIES, NULL);
for (j = 0; j < MAX_MON_MOVES; j++)
- gSaveBlock2Ptr->frontier.field_EFC[i].moves[j] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_MOVE1 + j, NULL);
+ gSaveBlock2Ptr->frontier.domePlayerPartyData[i].moves[j] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_MOVE1 + j, NULL);
for (j = 0; j < NUM_STATS; j++)
- gSaveBlock2Ptr->frontier.field_EFC[i].evs[j] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_HP_EV + j, NULL);
+ gSaveBlock2Ptr->frontier.domePlayerPartyData[i].evs[j] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_HP_EV + j, NULL);
- gSaveBlock2Ptr->frontier.field_EFC[i].nature = GetNature(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1]);
+ gSaveBlock2Ptr->frontier.domePlayerPartyData[i].nature = GetNature(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1]);
}
+ // Populate the tourney roster with random frontier trainers (dependent on streak)
for (i = 1; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
{
+ // Choose trainer. First 5/16 trainers are easier than the rest
if (i > 5)
{
do
{
- trainerId = sub_8162548(GetCurrentFacilityWinStreak(), 0);
+ trainerId = GetRandomScaledFrontierTrainerId(GetCurrentFacilityWinStreak(), 0);
for (j = 1; j < i; j++)
{
- if (gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId == trainerId)
+ if (DOME_TRAINERS[j].trainerId == trainerId)
break;
}
} while (j != i);
- gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId = trainerId;
+ DOME_TRAINERS[i].trainerId = trainerId;
}
else
{
do
{
- trainerId = sub_8162548(GetCurrentFacilityWinStreak() + 1, 0);
+ trainerId = GetRandomScaledFrontierTrainerId(GetCurrentFacilityWinStreak() + 1, 0);
for (j = 1; j < i; j++)
{
- if (gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId == trainerId)
+ if (DOME_TRAINERS[j].trainerId == trainerId)
break;
}
} while (j != i);
- gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId = trainerId;
+ DOME_TRAINERS[i].trainerId = trainerId;
}
+ // Choose party
for (j = 0; j < FRONTIER_PARTY_SIZE; j++)
{
- // Make sure the mon is valid.
do
{
- monSetId = RandomizeFacilityTrainerMonSet(trainerId);
+ monId = GetRandomFrontierMonFromSet(trainerId);
for (k = 0; k < j; k++)
{
- int checkingMonSetId = gSaveBlock2Ptr->frontier.domeMonIds[i][k];
- if (checkingMonSetId == monSetId
- || species[0] == gFacilityTrainerMons[monSetId].species
- || species[1] == gFacilityTrainerMons[monSetId].species
- || gFacilityTrainerMons[checkingMonSetId].itemTableId == gFacilityTrainerMons[monSetId].itemTableId)
+ // Make sure the mon is valid.
+ int alreadySelectedMonId = DOME_MONS[i][k];
+ if (alreadySelectedMonId == monId
+ || species[0] == gFacilityTrainerMons[monId].species
+ || species[1] == gFacilityTrainerMons[monId].species
+ || gFacilityTrainerMons[alreadySelectedMonId].itemTableId == gFacilityTrainerMons[monId].itemTableId)
break;
}
} while (k != j);
- gSaveBlock2Ptr->frontier.domeMonIds[i][j] = monSetId;
- species[j] = gFacilityTrainerMons[monSetId].species;
+ DOME_MONS[i][j] = monId;
+ species[j] = gFacilityTrainerMons[monId].species;
}
- gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated = 0;
- gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt = 0;
- gSaveBlock2Ptr->frontier.domeTrainers[i].unk3 = 0;
+ DOME_TRAINERS[i].isEliminated = FALSE;
+ DOME_TRAINERS[i].eliminatedAt = 0;
+ DOME_TRAINERS[i].forfeited = FALSE;
}
+ // rankingScores is used to determine the seed (ranking) of the trainers
+ // rankingScores[0] is for the player, rankingScores[1-15] are for the opponent trainers
+
+ // Calculate player's ranking score
monTypesBits = 0;
- statSums[0] = 0;
+ rankingScores[0] = 0;
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
{
+ // trainerId var re-used here as index of selected mons
trainerId = gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1;
- statSums[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_ATK, NULL);
- statSums[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_DEF, NULL);
- statSums[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_SPATK, NULL);
- statSums[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_SPDEF, NULL);
- statSums[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_SPEED, NULL);
- statSums[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_MAX_HP, NULL);
+ rankingScores[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_ATK, NULL);
+ rankingScores[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_DEF, NULL);
+ rankingScores[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_SPATK, NULL);
+ rankingScores[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_SPDEF, NULL);
+ rankingScores[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_SPEED, NULL);
+ rankingScores[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_MAX_HP, NULL);
monTypesBits |= gBitTable[gBaseStats[GetMonData(&gPlayerParty[trainerId], MON_DATA_SPECIES, NULL)].type1];
monTypesBits |= gBitTable[gBaseStats[GetMonData(&gPlayerParty[trainerId], MON_DATA_SPECIES, NULL)].type2];
}
+ // Count the number of types in the players party, to factor into the ranking
for (monTypesCount = 0, j = 0; j < 32; j++)
{
if (monTypesBits & 1)
@@ -2515,29 +2360,30 @@ static void InitDomeTrainers(void)
}
monLevel = SetFacilityPtrsGetLevel();
- statSums[0] += (monTypesCount * monLevel) / 20;
+ rankingScores[0] += (monTypesCount * monLevel) / 20;
+ // Calculate rankingScores for the opponent trainers
for (i = 1; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
{
monTypesBits = 0;
- statSums[i] = 0;
- ivs = GetDomeTrainerMonIvs(gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId);
+ rankingScores[i] = 0;
+ ivs = GetDomeTrainerMonIvs(DOME_TRAINERS[i].trainerId);
for (j = 0; j < FRONTIER_PARTY_SIZE; j++)
{
- CalcDomeMonStats(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species,
+ CalcDomeMonStats(gFacilityTrainerMons[DOME_MONS[i][j]].species,
monLevel, ivs,
- gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].evSpread,
- gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].nature,
+ gFacilityTrainerMons[DOME_MONS[i][j]].evSpread,
+ gFacilityTrainerMons[DOME_MONS[i][j]].nature,
statValues);
- statSums[i] += statValues[STAT_ATK];
- statSums[i] += statValues[STAT_DEF];
- statSums[i] += statValues[STAT_SPATK];
- statSums[i] += statValues[STAT_SPDEF];
- statSums[i] += statValues[STAT_SPEED];
- statSums[i] += statValues[STAT_HP];
- monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species].type1];
- monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species].type2];
+ rankingScores[i] += statValues[STAT_ATK];
+ rankingScores[i] += statValues[STAT_DEF];
+ rankingScores[i] += statValues[STAT_SPATK];
+ rankingScores[i] += statValues[STAT_SPDEF];
+ rankingScores[i] += statValues[STAT_SPEED];
+ rankingScores[i] += statValues[STAT_HP];
+ monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[DOME_MONS[i][j]].species].type1];
+ monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[DOME_MONS[i][j]].species].type2];
}
for (monTypesCount = 0, j = 0; j < 32; j++)
@@ -2546,54 +2392,56 @@ static void InitDomeTrainers(void)
monTypesCount++;
monTypesBits >>= 1;
}
- statSums[i] += (monTypesCount * monLevel) / 20;
+ rankingScores[i] += (monTypesCount * monLevel) / 20;
}
+ // Seed tourney trainers according to their ranking
for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT - 1; i++)
{
for (j = i + 1; j < DOME_TOURNAMENT_TRAINERS_COUNT; j++)
{
- if (statSums[i] < statSums[j])
+ if (rankingScores[i] < rankingScores[j])
{
- SwapDomeTrainers(i, j, statSums);
+ SwapDomeTrainers(i, j, rankingScores);
}
else
{
- if (statSums[i] == statSums[j])
+ if (rankingScores[i] == rankingScores[j])
{
- if (gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId == TRAINER_PLAYER)
- SwapDomeTrainers(i, j, statSums);
- else if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId > gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId)
- SwapDomeTrainers(i, j, statSums);
+ if (DOME_TRAINERS[j].trainerId == TRAINER_PLAYER)
+ SwapDomeTrainers(i, j, rankingScores);
+ else if (DOME_TRAINERS[i].trainerId > DOME_TRAINERS[j].trainerId)
+ SwapDomeTrainers(i, j, rankingScores);
}
}
}
}
+ // Add Frontier Brain to the tourney if they should be fought at the end of it
if (GetFrontierBrainStatus() != FRONTIER_BRAIN_NOT_READY)
{
for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
{
- if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == TRAINER_PLAYER)
+ if (DOME_TRAINERS[i].trainerId == TRAINER_PLAYER)
break;
}
- if (gUnknown_0860D3F1[i][0] != 0)
+ if (sTrainerNamePositions[i][0] != 0)
{
j = 0;
- gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId = TRAINER_FRONTIER_BRAIN;
+ DOME_TRAINERS[j].trainerId = TRAINER_FRONTIER_BRAIN;
}
else
{
j = 1;
- gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId = TRAINER_FRONTIER_BRAIN;
+ DOME_TRAINERS[j].trainerId = TRAINER_FRONTIER_BRAIN;
}
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
- gSaveBlock2Ptr->frontier.domeMonIds[j][i] = GetFrontierBrainMonSpecies(i);
+ DOME_MONS[j][i] = GetFrontierBrainMonSpecies(i);
}
- Free(statSums);
+ Free(rankingScores);
Free(statValues);
}
@@ -2649,10 +2497,10 @@ static void SwapDomeTrainers(int id1, int id2, u16 *statsArray)
u16 temp;
SWAP(statsArray[id1], statsArray[id2], temp);
- SWAP(gSaveBlock2Ptr->frontier.domeTrainers[id1].trainerId, gSaveBlock2Ptr->frontier.domeTrainers[id2].trainerId, temp);
+ SWAP(DOME_TRAINERS[id1].trainerId, DOME_TRAINERS[id2].trainerId, temp);
- for (i = 0; i < 3; i++)
- SWAP(gSaveBlock2Ptr->frontier.domeMonIds[id1][i], gSaveBlock2Ptr->frontier.domeMonIds[id2][i], temp);
+ for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
+ SWAP(DOME_MONS[id1][i], DOME_MONS[id2][i], temp);
}
static void BufferDomeRoundText(void)
@@ -2668,9 +2516,9 @@ static void BufferDomeOpponentName(void)
static void InitDomeOpponentParty(void)
{
- gUnknown_0203CD70 = 0;
- gUnknown_0203CD74 = GetMonData(&gPlayerParty[0], MON_DATA_MAX_HP, NULL);
- gUnknown_0203CD74 += GetMonData(&gPlayerParty[1], MON_DATA_MAX_HP, NULL);
+ gPlayerPartyLostHP = 0;
+ sPlayerPartyMaxHP = GetMonData(&gPlayerParty[0], MON_DATA_MAX_HP, NULL);
+ sPlayerPartyMaxHP += GetMonData(&gPlayerParty[1], MON_DATA_MAX_HP, NULL);
CalculatePlayerPartyCount();
CreateDomeOpponentMons(TrainerIdToTournamentId(gTrainerBattleOpponent_A));
}
@@ -2678,160 +2526,168 @@ static void InitDomeOpponentParty(void)
static void CreateDomeOpponentMon(u8 monPartyId, u16 tournamentTrainerId, u8 tournamentMonId, u32 otId)
{
int i;
- u8 happiness = 0xFF;
- u8 fixedIv = GetDomeTrainerMonIvs(tournamentTrainerId); // BUG: Should be using trainerId instead of tournamentTrainerId. As a result, all Pokemon have ivs of 3.
+ u8 friendship = MAX_FRIENDSHIP;
+ u8 fixedIv = GetDomeTrainerMonIvs(tournamentTrainerId); // BUG: Should be using (DOME_TRAINERS[tournamentTrainerId].trainerId) instead of (tournamentTrainerId). As a result, all Pokemon have ivs of 3.
u8 level = SetFacilityPtrsGetLevel();
CreateMonWithEVSpreadNatureOTID(&gEnemyParty[monPartyId],
- gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][tournamentMonId]].species,
+ gFacilityTrainerMons[DOME_MONS[tournamentTrainerId][tournamentMonId]].species,
level,
- gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][tournamentMonId]].nature,
+ gFacilityTrainerMons[DOME_MONS[tournamentTrainerId][tournamentMonId]].nature,
fixedIv,
- gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][tournamentMonId]].evSpread, otId);
+ gFacilityTrainerMons[DOME_MONS[tournamentTrainerId][tournamentMonId]].evSpread, otId);
- happiness = 0xFF;
+ friendship = MAX_FRIENDSHIP;
for (i = 0; i < MAX_MON_MOVES; i++)
{
SetMonMoveSlot(&gEnemyParty[monPartyId],
- gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][tournamentMonId]].moves[i], i);
- if (gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][tournamentMonId]].moves[i] == MOVE_FRUSTRATION)
- happiness = 0;
+ gFacilityTrainerMons[DOME_MONS[tournamentTrainerId][tournamentMonId]].moves[i], i);
+ if (gFacilityTrainerMons[DOME_MONS[tournamentTrainerId][tournamentMonId]].moves[i] == MOVE_FRUSTRATION)
+ friendship = 0;
}
- SetMonData(&gEnemyParty[monPartyId], MON_DATA_FRIENDSHIP, &happiness);
+ SetMonData(&gEnemyParty[monPartyId], MON_DATA_FRIENDSHIP, &friendship);
SetMonData(&gEnemyParty[monPartyId], MON_DATA_HELD_ITEM,
- &gBattleFrontierHeldItems[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][tournamentMonId]].itemTableId]);
+ &gBattleFrontierHeldItems[gFacilityTrainerMons[DOME_MONS[tournamentTrainerId][tournamentMonId]].itemTableId]);
}
static void CreateDomeOpponentMons(u16 tournamentTrainerId)
{
u8 monsCount = 0;
u32 otId = 0;
- int i, bits;
+ int i, selectedMonBits;
ZeroEnemyPartyMons();
- bits = GetDomeTrainerMonCountInBits(tournamentTrainerId);
+ selectedMonBits = GetDomeTrainerSelectedMons(tournamentTrainerId);
otId = Random32();
+
if (Random() % 10 > 5)
{
- for (i = 0; i < 3; i++)
+ // Create mon if it was selected, starting from front
+ for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
{
- if (bits & 1)
+ if (selectedMonBits & 1)
{
CreateDomeOpponentMon(monsCount, tournamentTrainerId, i, otId);
monsCount++;
}
- bits >>= 1;
+ selectedMonBits >>= 1;
}
}
else
{
- for (i = 2; i >= 0; i--)
+ // Create mon if it was selected, starting from back
+ for (i = FRONTIER_PARTY_SIZE - 1; i >= 0; i--)
{
- if (bits & 4)
+ if (selectedMonBits & 4)
{
CreateDomeOpponentMon(monsCount, tournamentTrainerId, i, otId);
monsCount++;
}
- bits <<= 1;
+ selectedMonBits <<= 1;
}
}
}
-int GetDomeTrainerMonCountInBits(u16 tournamentTrainerId)
+int GetDomeTrainerSelectedMons(u16 tournamentTrainerId)
{
- int bits;
+ int selectedMonBits;
if (Random() & 1)
{
- bits = sub_818FCBC(tournamentTrainerId, FALSE);
- if (bits == 0)
- bits = sub_818FDB8(tournamentTrainerId, TRUE);
+ selectedMonBits = SelectOpponentMonsUsingPersonality(tournamentTrainerId, FALSE);
+ if (selectedMonBits == 0)
+ selectedMonBits = SelectOpponentMonsUsingOtId(tournamentTrainerId, TRUE);
}
else
{
- bits = sub_818FDB8(tournamentTrainerId, FALSE);
- if (bits == 0)
- bits = sub_818FCBC(tournamentTrainerId, TRUE);
+ selectedMonBits = SelectOpponentMonsUsingOtId(tournamentTrainerId, FALSE);
+ if (selectedMonBits == 0)
+ selectedMonBits = SelectOpponentMonsUsingPersonality(tournamentTrainerId, TRUE);
}
- return bits;
+ return selectedMonBits;
}
-static int sub_818FCBC(u16 tournamentTrainerId, bool8 arg1)
+// Could probably use a better name once GetTypeEffectivenessPoints is clarified
+// Personality seems to be used to select a different weighting system for type effectiveness points
+static int SelectOpponentMonsUsingPersonality(u16 tournamentTrainerId, bool8 allowRandom)
{
int i, moveId, playerMonId;
- int array[FRONTIER_PARTY_SIZE];
+ int partyMovePoints[FRONTIER_PARTY_SIZE];
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
{
- array[i] = 0;
+ partyMovePoints[i] = 0;
for (moveId = 0; moveId < MAX_MON_MOVES; moveId++)
{
for (playerMonId = 0; playerMonId < FRONTIER_PARTY_SIZE; playerMonId++)
{
- if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentTrainerId].trainerId == TRAINER_FRONTIER_BRAIN)
+ if (DOME_TRAINERS[tournamentTrainerId].trainerId == TRAINER_FRONTIER_BRAIN)
{
- array[i] += GetTypeEffectivenessPoints(GetFrontierBrainMonMove(i, moveId),
- GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), 0);
+ partyMovePoints[i] += GetTypeEffectivenessPoints(GetFrontierBrainMonMove(i, moveId),
+ GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), MON_DATA_PERSONALITY);
}
else
{
- array[i] += GetTypeEffectivenessPoints(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][i]].moves[moveId],
- GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), 0);
+ partyMovePoints[i] += GetTypeEffectivenessPoints(gFacilityTrainerMons[DOME_MONS[tournamentTrainerId][i]].moves[moveId],
+ GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), MON_DATA_PERSONALITY);
}
}
}
}
- return sub_818FEB4(array, arg1);
+ return SelectOpponentMonsFromParty(partyMovePoints, allowRandom);
}
-static int sub_818FDB8(u16 tournamentTrainerId, bool8 arg1)
+// See above function, identical but uses MON_DATA_OT_ID
+static int SelectOpponentMonsUsingOtId(u16 tournamentTrainerId, bool8 allowRandom)
{
int i, moveId, playerMonId;
- int array[FRONTIER_PARTY_SIZE];
+ int partyMovePoints[FRONTIER_PARTY_SIZE];
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
{
- array[i] = 0;
+ partyMovePoints[i] = 0;
for (moveId = 0; moveId < MAX_MON_MOVES; moveId++)
{
for (playerMonId = 0; playerMonId < FRONTIER_PARTY_SIZE; playerMonId++)
{
- if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentTrainerId].trainerId == TRAINER_FRONTIER_BRAIN)
+ if (DOME_TRAINERS[tournamentTrainerId].trainerId == TRAINER_FRONTIER_BRAIN)
{
- array[i] += GetTypeEffectivenessPoints(GetFrontierBrainMonMove(i, moveId),
- GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), 1);
+ partyMovePoints[i] += GetTypeEffectivenessPoints(GetFrontierBrainMonMove(i, moveId),
+ GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), MON_DATA_OT_ID);
}
else
{
- array[i] += GetTypeEffectivenessPoints(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][i]].moves[moveId],
- GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), 1);
+ partyMovePoints[i] += GetTypeEffectivenessPoints(gFacilityTrainerMons[DOME_MONS[tournamentTrainerId][i]].moves[moveId],
+ GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), MON_DATA_OT_ID);
}
}
}
}
- return sub_818FEB4(array, arg1);
+ return SelectOpponentMonsFromParty(partyMovePoints, allowRandom);
}
-static int sub_818FEB4(int *arr, bool8 arg1)
+static int SelectOpponentMonsFromParty(int *partyMovePoints, bool8 allowRandom)
{
int i, j;
- int bits = 0;
- int array[3];
+ int selectedMonBits = 0;
+ int partyPositions[FRONTIER_PARTY_SIZE];
- for (i = 0; i < 3; i++)
- array[i] = i;
+ for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
+ partyPositions[i] = i;
- if (arr[0] == arr[1] && arr[0] == arr[2])
+ // All party mons have equal move score totals, choose randomly
+ if (partyMovePoints[0] == partyMovePoints[1]
+ && partyMovePoints[0] == partyMovePoints[2])
{
- if (arg1)
+ if (allowRandom)
{
i = 0;
- while (i != 2)
+ while (i != DOME_BATTLE_PARTY_SIZE)
{
- u32 rand = Random() & 3;
- if (rand != 3 && !(bits & gBitTable[rand]))
+ u32 rand = Random() & FRONTIER_PARTY_SIZE;
+ if (rand != FRONTIER_PARTY_SIZE && !(selectedMonBits & gBitTable[rand]))
{
- bits |= gBitTable[rand];
+ selectedMonBits |= gBitTable[rand];
i++;
}
}
@@ -2839,43 +2695,33 @@ static int sub_818FEB4(int *arr, bool8 arg1)
}
else
{
- for (i = 0; i < 2; i++)
+ for (i = 0; i < DOME_BATTLE_PARTY_SIZE; i++)
{
- for (j = i + 1; j < 3; j++)
+ for (j = i + 1; j < FRONTIER_PARTY_SIZE; j++)
{
int temp;
- if (arr[i] < arr[j])
+ if (partyMovePoints[i] < partyMovePoints[j])
{
- temp = arr[i];
- arr[i] = arr[j];
- arr[j] = temp;
-
- temp = array[i];
- array[i] = array[j];
- array[j] = temp;
+ SWAP(partyMovePoints[i], partyMovePoints[j],temp)
+ SWAP(partyPositions[i], partyPositions[j], temp)
}
- if (arr[i] == arr[j] && (Random() & 1))
+ if (partyMovePoints[i] == partyMovePoints[j] && (Random() & 1))
{
- temp = arr[i];
- arr[i] = arr[j];
- arr[j] = temp;
-
- temp = array[i];
- array[i] = array[j];
- array[j] = temp;
+ SWAP(partyMovePoints[i], partyMovePoints[j],temp)
+ SWAP(partyPositions[i], partyPositions[j], temp)
}
}
}
- for (i = 0; i < 2; i++)
+ for (i = 0; i < DOME_BATTLE_PARTY_SIZE; i++)
{
- bits |= gBitTable[array[i]];
+ selectedMonBits |= gBitTable[partyPositions[i]];
}
}
- return bits;
+ return selectedMonBits;
}
#define TYPE_x0 0
@@ -2886,6 +2732,7 @@ static int sub_818FEB4(int *arr, bool8 arg1)
#define TYPE_x4 80
// Functionally equivalent, while loop is impossible to match.
+// arg2 is either 2, a personality, or an OTID
#ifdef NONMATCHING
static int GetTypeEffectivenessPoints(int move, int targetSpecies, int arg2)
{
@@ -2908,25 +2755,22 @@ static int GetTypeEffectivenessPoints(int move, int targetSpecies, int arg2)
}
else
{
- while (gTypeEffectiveness[i + 0] != TYPE_ENDTABLE)
+ while (TYPE_EFFECT_ATK_TYPE(i) != TYPE_ENDTABLE)
{
- if (gTypeEffectiveness[i + 0] == TYPE_FORESIGHT)
+ if (TYPE_EFFECT_ATK_TYPE(i) == TYPE_FORESIGHT)
{
i += 3;
+ continue;
}
- else
+ else if (TYPE_EFFECT_ATK_TYPE(i) == moveType)
{
- u8 val = gTypeEffectiveness[i + 0];
- if (val == moveType)
- {
- // BUG: * 2 is not necessary and makes the condition always false if the ability is wonder guard.
- if (gTypeEffectiveness[i + 1] == defType1 && (defAbility != ABILITY_WONDER_GUARD || gTypeEffectiveness[i + 2] == TYPE_MUL_SUPER_EFFECTIVE * 2))
- typePower = (gTypeEffectiveness[i + 2] * typePower) / 10;
- if (gTypeEffectiveness[i + 1] == defType2 && defType1 != defType2 && (defAbility != ABILITY_WONDER_GUARD || gTypeEffectiveness[i + 2] == TYPE_MUL_SUPER_EFFECTIVE * 2))
- typePower = (gTypeEffectiveness[i + 2] * typePower) / 10;
- }
- i += 3;
+ // BUG: * 2 is not necessary and makes the condition always false if the ability is wonder guard.
+ if (TYPE_EFFECT_DEF_TYPE(i) == defType1 && (defAbility != ABILITY_WONDER_GUARD || TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_SUPER_EFFECTIVE * 2))
+ typePower = (typePower * TYPE_EFFECT_MULTIPLIER(i)) / 10;
+ if (TYPE_EFFECT_DEF_TYPE(i) == defType2 && defType1 != defType2 && (defAbility != ABILITY_WONDER_GUARD || TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_SUPER_EFFECTIVE * 2))
+ typePower = (typePower * TYPE_EFFECT_MULTIPLIER(i)) / 10;
}
+ i += 3;
}
}
@@ -2935,19 +2779,19 @@ static int GetTypeEffectivenessPoints(int move, int targetSpecies, int arg2)
case 0:
switch (typePower)
{
- case 10:
- case 5:
- case 0:
+ case TYPE_x0_50:
+ case TYPE_x0_25:
+ case TYPE_x0:
default:
typePower = 0;
break;
- case 20:
+ case TYPE_x1:
typePower = 2;
break;
- case 40:
+ case TYPE_x2:
typePower = 4;
break;
- case 80:
+ case TYPE_x4:
typePower = 8;
break;
}
@@ -2956,22 +2800,22 @@ static int GetTypeEffectivenessPoints(int move, int targetSpecies, int arg2)
switch (typePower)
{
default:
- case 20:
+ case TYPE_x1:
typePower = 0;
break;
- case 5:
+ case TYPE_x0_25:
typePower = 4;
break;
- case 0:
+ case TYPE_x0:
typePower = 8;
break;
- case 10:
+ case TYPE_x0_50:
typePower = 2;
break;
- case 40:
+ case TYPE_x2:
typePower = -2;
break;
- case 80:
+ case TYPE_x4:
typePower = -4;
break;
}
@@ -3246,24 +3090,28 @@ _08190156:\n\
}
#endif // NONMATCHING
+// Duplicate of GetFrontierTrainerFixedIvs
+// NOTE: In CreateDomeOpponentMon a tournament trainer ID (0-15) is passed instead, resulting in all IVs of 3
+// To fix, see CreateDomeOpponentMon
static u8 GetDomeTrainerMonIvs(u16 trainerId)
{
u8 fixedIv;
- if (trainerId <= 99)
+
+ if (trainerId <= FRONTIER_TRAINER_JILL) // 0 - 99
fixedIv = 3;
- else if (trainerId <= 119)
+ else if (trainerId <= FRONTIER_TRAINER_CHLOE) // 100 - 119
fixedIv = 6;
- else if (trainerId <= 139)
+ else if (trainerId <= FRONTIER_TRAINER_SOFIA) // 120 - 139
fixedIv = 9;
- else if (trainerId <= 159)
+ else if (trainerId <= FRONTIER_TRAINER_JAZLYN) // 140 - 159
fixedIv = 12;
- else if (trainerId <= 179)
+ else if (trainerId <= FRONTIER_TRAINER_ALISON) // 160 - 179
fixedIv = 15;
- else if (trainerId <= 199)
+ else if (trainerId <= FRONTIER_TRAINER_LAMAR) // 180 - 199
fixedIv = 18;
- else if (trainerId <= 219)
+ else if (trainerId <= FRONTIER_TRAINER_TESS) // 200 - 219
fixedIv = 21;
- else
+ else // 220+ (- 299)
fixedIv = 31;
return fixedIv;
@@ -3271,38 +3119,41 @@ static u8 GetDomeTrainerMonIvs(u16 trainerId)
static int TournamentIdOfOpponent(int roundId, int trainerId)
{
- int i, j, val;
+ int i, j, opponentMax;
+ // Get trainer's tournament id
for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
{
- if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == trainerId)
+ if (DOME_TRAINERS[i].trainerId == trainerId)
break;
}
+ // Get trainer's opponent's tournament id
if (roundId != DOME_ROUND1)
{
if (roundId == DOME_FINAL)
- val = sIdToOpponentId[i][roundId] + 8;
+ opponentMax = sIdToOpponentId[i][roundId] + 8;
else
- val = sIdToOpponentId[i][roundId] + 4;
+ opponentMax = sIdToOpponentId[i][roundId] + 4;
- for (j = sIdToOpponentId[i][roundId]; j < val; j++)
+ // Get first non-eliminated trainer in range of possible opponents
+ for (j = sIdToOpponentId[i][roundId]; j < opponentMax; j++)
{
- if (gUnknown_0860D14C[j] != i && !gSaveBlock2Ptr->frontier.domeTrainers[gUnknown_0860D14C[j]].isEliminated)
+ if (sTourneyTreeTrainerOpponentIds[j] != i && !DOME_TRAINERS[sTourneyTreeTrainerOpponentIds[j]].isEliminated)
break;
}
- if (j != val)
- return gUnknown_0860D14C[j];
+ if (j != opponentMax)
+ return sTourneyTreeTrainerOpponentIds[j];
else
- return 0xFF;
+ return 0xFF; // Already eliminated
}
else
{
- if (!gSaveBlock2Ptr->frontier.domeTrainers[sIdToOpponentId[i][roundId]].isEliminated)
+ if (!DOME_TRAINERS[sIdToOpponentId[i][roundId]].isEliminated)
return sIdToOpponentId[i][roundId];
else
- return 0xFF;
+ return 0xFF; // Already eliminated
}
}
@@ -3311,9 +3162,10 @@ static void SetDomeOpponentId(void)
gTrainerBattleOpponent_A = TrainerIdOfPlayerOpponent();
}
+// While not an issue in-game, this will overflow if called after the player's opponent for the current round has been eliminated
static u16 TrainerIdOfPlayerOpponent(void)
{
- return gSaveBlock2Ptr->frontier.domeTrainers[TournamentIdOfOpponent(gSaveBlock2Ptr->frontier.curChallengeBattleNum, TRAINER_PLAYER)].trainerId;
+ return DOME_TRAINERS[TournamentIdOfOpponent(gSaveBlock2Ptr->frontier.curChallengeBattleNum, TRAINER_PLAYER)].trainerId;
}
static void SetDomeOpponentGraphicsId(void)
@@ -3343,25 +3195,27 @@ static void IncrementDomeStreaks(void)
gSaveBlock2Ptr->frontier.domeRecordWinStreaks[battleMode][lvlMode] = gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode];
}
+// For showing the opponent info card of the upcoming trainer
static void ShowDomeOpponentInfo(void)
{
- u8 taskId = CreateTask(Task_ShowOpponentInfo, 0);
- gTasks[taskId].data[0] = 0;
- gTasks[taskId].data[1] = TrainerIdToTournamentId(TrainerIdOfPlayerOpponent());
- gTasks[taskId].data[2] = 0;
- gTasks[taskId].data[3] = 0;
+ u8 taskId = CreateTask(Task_ShowTourneyInfoCard, 0);
+ gTasks[taskId].tState = 0;
+ gTasks[taskId].tTournamentId = TrainerIdToTournamentId(TrainerIdOfPlayerOpponent());
+ gTasks[taskId].tMode = INFOCARD_NEXT_OPPONENT;
+ gTasks[taskId].tPrevTaskId = 0;
- SetMainCallback2(CB2_BattleDome);
+ SetMainCallback2(CB2_TourneyTree);
}
-static void Task_ShowOpponentInfo(u8 taskId)
+// For showing the opponent info card or the match info card
+static void Task_ShowTourneyInfoCard(u8 taskId)
{
int i;
- int r5 = gTasks[taskId].data[1];
- int r9 = gTasks[taskId].data[2];
- int r7 = gTasks[taskId].data[3];
+ int tournamentId = gTasks[taskId].tTournamentId;
+ int mode = gTasks[taskId].tMode;
+ int id = gTasks[taskId].tPrevTaskId;
- switch (gTasks[taskId].data[0])
+ switch (gTasks[taskId].tState)
{
case 0:
SetHBlankCallback(NULL);
@@ -3369,8 +3223,8 @@ static void Task_ShowOpponentInfo(u8 taskId)
EnableInterrupts(INTR_FLAG_VBLANK);
CpuFill32(0, (void *)VRAM, VRAM_SIZE);
ResetBgsAndClearDma3BusyFlags(0);
- InitBgsFromTemplates(0, gUnknown_0860CE84, ARRAY_COUNT(gUnknown_0860CE84));
- InitWindows(gUnknown_0860CEB4);
+ InitBgsFromTemplates(0, sInfoCardBgTemplates, ARRAY_COUNT(sInfoCardBgTemplates));
+ InitWindows(sInfoCardWindowTemplates);
DeactivateAllTextPrinters();
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
@@ -3378,12 +3232,12 @@ static void Task_ShowOpponentInfo(u8 taskId)
gBattle_BG1_Y = 0;
gBattle_BG3_X = 0;
gBattle_BG3_Y = 0;
- if (r9 == 2)
+ if (mode == INFOCARD_MATCH)
gBattle_BG2_X = 0, gBattle_BG2_Y = 0;
else
gBattle_BG2_X = 0, gBattle_BG2_Y = 160;
- gTasks[taskId].data[0]++;
+ gTasks[taskId].tState++;
break;
case 1:
SetGpuReg(REG_OFFSET_BLDCNT, 0);
@@ -3395,72 +3249,76 @@ static void Task_ShowOpponentInfo(u8 taskId)
SetGpuReg(REG_OFFSET_WIN1H, 0);
SetGpuReg(REG_OFFSET_WIN1V, 0);
SetGpuReg(REG_OFFSET_WININ, 0);
- SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR);
+ SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR);
ResetPaletteFade();
ResetSpriteData();
FreeAllSpritePalettes();
gReservedSpritePaletteCount = 4;
- gTasks[taskId].data[0]++;
+ gTasks[taskId].tState++;
break;
case 2:
- DecompressAndLoadBgGfxUsingHeap(2, gUnknown_08D83D50, 0x2000, 0, 0);
- DecompressAndLoadBgGfxUsingHeap(2, gUnknown_08D84970, 0x2000, 0, 1);
- DecompressAndLoadBgGfxUsingHeap(3, gUnknown_08D84F00, 0x800, 0, 1);
- LoadCompressedSpriteSheet(sDomeOptionsSpriteSheet);
- LoadCompressedPalette(gUnknown_08D85358, 0, 0x200);
- LoadCompressedPalette(gUnknown_08D85444, 0x100, 0x200);
+ DecompressAndLoadBgGfxUsingHeap(2, gDomeTourneyInfoCard_Gfx, 0x2000, 0, 0);
+ DecompressAndLoadBgGfxUsingHeap(2, gDomeTourneyInfoCard_Tilemap, 0x2000, 0, 1);
+ DecompressAndLoadBgGfxUsingHeap(3, gDomeTourneyInfoCardBg_Tilemap, 0x800, 0, 1);
+ LoadCompressedSpriteSheet(sTourneyTreeButtonsSpriteSheet);
+ LoadCompressedPalette(gDomeTourneyTree_Pal, 0, 0x200);
+ LoadCompressedPalette(gDomeTourneyTreeButtons_Pal, 0x100, 0x200);
LoadCompressedPalette(gBattleWindowTextPalette, 0xF0, 0x20);
- if (r9 == 2)
- LoadCompressedPalette(gUnknown_08D854C8, 0x50, 0x20);
+ if (mode == INFOCARD_MATCH)
+ LoadCompressedPalette(gDomeTourneyMatchCardBg_Pal, 0x50, 0x20); // Changes the moving info card bg to orange when in match card mode
CpuFill32(0, gPlttBufferFaded, 0x400);
ShowBg(0);
ShowBg(1);
ShowBg(2);
ShowBg(3);
- gTasks[taskId].data[0]++;
+ gTasks[taskId].tState++;
break;
case 3:
- SetVBlankCallback(VblankCb0_BattleDome);
- sBattleDomeStruct = AllocZeroed(sizeof(*sBattleDomeStruct));
- for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
- sBattleDomeStruct->arr[i] = 0xFF;
+ SetVBlankCallback(VblankCb_TourneyInfoCard);
+ sInfoCard = AllocZeroed(sizeof(*sInfoCard));
+ for (i = 0; i < NUM_INFOCARD_SPRITES; i++)
+ sInfoCard->spriteIds[i] = 0xFF;
LoadMonIconPalettes();
- i = CreateTask(sub_8190CD4, 0);
+ i = CreateTask(Task_HandleInfoCardInput, 0);
gTasks[i].data[0] = 0;
gTasks[i].data[2] = 0;
- gTasks[i].data[3] = r9;
- gTasks[i].data[4] = r7;
- if (r9 == 2)
+ gTasks[i].data[3] = mode;
+ gTasks[i].data[4] = id;
+ if (mode == INFOCARD_MATCH)
{
- DisplayMatchInfoOnCard(0, r5);
- sBattleDomeStruct->unk_10 = 1;
+ DisplayMatchInfoOnCard(0, tournamentId);
+ sInfoCard->pos = 1;
}
else
{
- DisplayTrainerInfoOnCard(0, r5);
+ DisplayTrainerInfoOnCard(0, tournamentId);
}
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_1D_MAP);
- if (r9 != 0)
+ if (mode != INFOCARD_NEXT_OPPONENT)
{
- r7 = CreateSprite(&gUnknown_0860D068, 120, 4, 0);
- StartSpriteAnim(&gSprites[r7], 0);
- gSprites[r7].data[0] = i;
-
- r7 = CreateSprite(&gUnknown_0860D068, 120, 156, 0);
- StartSpriteAnim(&gSprites[r7], 1);
- gSprites[r7].data[0] = i;
-
- r7 = CreateSprite(&gUnknown_0860D050, 6, 80, 0);
- StartSpriteAnim(&gSprites[r7], 0);
- gSprites[r7].data[0] = i;
- gSprites[r7].data[1] = 0;
- if (r9 == 1)
- gSprites[r7].invisible = TRUE;
-
- r7 = CreateSprite(&gUnknown_0860D050, 234, 80, 0);
- StartSpriteAnim(&gSprites[r7], 1);
- gSprites[r7].data[0] = i;
- gSprites[r7].data[1] = 1;
+ // Scroll up arrow
+ id = CreateSprite(&sVerticalScrollArrowSpriteTemplate, 120, 4, 0);
+ StartSpriteAnim(&gSprites[id], 0);
+ gSprites[id].data[0] = i;
+
+ // Scroll down arrow
+ id = CreateSprite(&sVerticalScrollArrowSpriteTemplate, 120, 156, 0);
+ StartSpriteAnim(&gSprites[id], 1);
+ gSprites[id].data[0] = i;
+
+ // Scroll left arrow
+ id = CreateSprite(&sHorizontalScrollArrowSpriteTemplate, 6, 80, 0);
+ StartSpriteAnim(&gSprites[id], 0);
+ gSprites[id].data[0] = i;
+ gSprites[id].data[1] = 0;
+ if (mode == INFOCARD_TRAINER)
+ gSprites[id].invisible = TRUE;
+
+ // Scroll right arrow
+ id = CreateSprite(&sHorizontalScrollArrowSpriteTemplate, 234, 80, 0);
+ StartSpriteAnim(&gSprites[id], 1);
+ gSprites[id].data[0] = i;
+ gSprites[id].data[1] = 1;
}
DestroyTask(taskId);
break;
@@ -3470,7 +3328,6 @@ static void Task_ShowOpponentInfo(u8 taskId)
// Note: Card scrolling up means the current card goes down and another one appears from top.
// The same is true for scrolling left.
// That means that the sprite needs to move with the moving card in the opposite scrolling direction.
-
static void SpriteCb_TrainerIconCardScrollUp(struct Sprite *sprite)
{
sprite->pos1.y += 4;
@@ -3485,7 +3342,7 @@ static void SpriteCb_TrainerIconCardScrollUp(struct Sprite *sprite)
{
if (sprite->pos1.y >= 192)
{
- sBattleDomeStruct->arr[sprite->data[2]] = 0xFF;
+ sInfoCard->spriteIds[sprite->data[2]] = 0xFF;
FreeAndDestroyTrainerPicSprite(sprite->data[3]);
}
}
@@ -3505,7 +3362,7 @@ static void SpriteCb_TrainerIconCardScrollDown(struct Sprite *sprite)
{
if (sprite->pos1.y <= -32)
{
- sBattleDomeStruct->arr[sprite->data[2]] = 0xFF;
+ sInfoCard->spriteIds[sprite->data[2]] = 0xFF;
FreeAndDestroyTrainerPicSprite(sprite->data[3]);
}
}
@@ -3525,7 +3382,7 @@ static void SpriteCb_TrainerIconCardScrollLeft(struct Sprite *sprite)
{
if (sprite->pos1.x >= 272)
{
- sBattleDomeStruct->arr[sprite->data[2]] = 0xFF;
+ sInfoCard->spriteIds[sprite->data[2]] = 0xFF;
FreeAndDestroyTrainerPicSprite(sprite->data[3]);
}
}
@@ -3545,7 +3402,7 @@ static void SpriteCb_TrainerIconCardScrollRight(struct Sprite *sprite)
{
if (sprite->pos1.x <= -32)
{
- sBattleDomeStruct->arr[sprite->data[2]] = 0xFF;
+ sInfoCard->spriteIds[sprite->data[2]] = 0xFF;
FreeAndDestroyTrainerPicSprite(sprite->data[3]);
}
}
@@ -3575,8 +3432,8 @@ static void SpriteCb_MonIconCardScrollUp(struct Sprite *sprite)
{
if (sprite->pos1.y >= 176)
{
- sBattleDomeStruct->arr[sprite->data[2]] = 0xFF;
- sub_80D2EF8(sprite);
+ sInfoCard->spriteIds[sprite->data[2]] = 0xFF;
+ FreeAndDestroyMonIconSprite(sprite);
}
}
}
@@ -3597,8 +3454,8 @@ static void SpriteCb_MonIconCardScrollDown(struct Sprite *sprite)
{
if (sprite->pos1.y <= -16)
{
- sBattleDomeStruct->arr[sprite->data[2]] = 0xFF;
- sub_80D2EF8(sprite);
+ sInfoCard->spriteIds[sprite->data[2]] = 0xFF;
+ FreeAndDestroyMonIconSprite(sprite);
}
}
}
@@ -3619,8 +3476,8 @@ static void SpriteCb_MonIconCardScrollLeft(struct Sprite *sprite)
{
if (sprite->pos1.x >= 256)
{
- sBattleDomeStruct->arr[sprite->data[2]] = 0xFF;
- sub_80D2EF8(sprite);
+ sInfoCard->spriteIds[sprite->data[2]] = 0xFF;
+ FreeAndDestroyMonIconSprite(sprite);
}
}
}
@@ -3641,13 +3498,13 @@ static void SpriteCb_MonIconCardScrollRight(struct Sprite *sprite)
{
if (sprite->pos1.x <= -16)
{
- sBattleDomeStruct->arr[sprite->data[2]] = 0xFF;
- sub_80D2EF8(sprite);
+ sInfoCard->spriteIds[sprite->data[2]] = 0xFF;
+ FreeAndDestroyMonIconSprite(sprite);
}
}
}
-static void sub_8190B40(struct Sprite *sprite)
+static void SpriteCb_HorizontalScrollArrow(struct Sprite *sprite)
{
int taskId1 = sprite->data[0];
int arrId = gTasks[gTasks[taskId1].data[4]].data[1];
@@ -3658,13 +3515,13 @@ static void sub_8190B40(struct Sprite *sprite)
{
if (sprite->data[1])
{
- if ((gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].isEliminated
- && sBattleDomeStruct->unk_10 - 1 < gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].eliminatedAt))
+ if ((DOME_TRAINERS[tournmanetTrainerId].isEliminated
+ && sInfoCard->pos - 1 < DOME_TRAINERS[tournmanetTrainerId].eliminatedAt))
{
sprite->invisible = FALSE;
}
- else if (!gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].isEliminated
- && sBattleDomeStruct->unk_10 - 1 < roundId)
+ else if (!DOME_TRAINERS[tournmanetTrainerId].isEliminated
+ && sInfoCard->pos - 1 < roundId)
{
sprite->invisible = FALSE;
}
@@ -3676,7 +3533,7 @@ static void sub_8190B40(struct Sprite *sprite)
}
else
{
- if (sBattleDomeStruct->unk_10 != 0)
+ if (sInfoCard->pos != 0)
{
sprite->invisible = FALSE;
}
@@ -3691,7 +3548,7 @@ static void sub_8190B40(struct Sprite *sprite)
{
if (sprite->data[1])
{
- if (sBattleDomeStruct->unk_10 > 1)
+ if (sInfoCard->pos > 1)
{
if (gTasks[taskId1].data[0] == 2)
sprite->invisible = TRUE;
@@ -3703,7 +3560,7 @@ static void sub_8190B40(struct Sprite *sprite)
}
else
{
- if (sBattleDomeStruct->unk_10 != 0)
+ if (sInfoCard->pos != 0)
{
sprite->invisible = FALSE;
}
@@ -3716,13 +3573,13 @@ static void sub_8190B40(struct Sprite *sprite)
}
}
-static void sub_8190C6C(struct Sprite *sprite)
+static void SpriteCb_VerticalScrollArrow(struct Sprite *sprite)
{
int taskId1 = sprite->data[0];
if (gTasks[taskId1].data[3] == 1)
{
- if (sBattleDomeStruct->unk_10 != 0)
+ if (sInfoCard->pos != 0)
{
if (gTasks[taskId1].data[0] == 2)
sprite->invisible = TRUE;
@@ -3734,7 +3591,7 @@ static void sub_8190C6C(struct Sprite *sprite)
}
else
{
- if (sBattleDomeStruct->unk_10 != 1)
+ if (sInfoCard->pos != 1)
{
if (gTasks[taskId1].data[0] == 2)
sprite->invisible = TRUE;
@@ -3746,39 +3603,53 @@ static void sub_8190C6C(struct Sprite *sprite)
}
}
-static void sub_8190CD4(u8 taskId)
+// Task states for Task_HandleInfoCardInput
+#define STATE_FADE_IN 0
+#define STATE_WAIT_FADE 1
+#define STATE_GET_INPUT 2
+#define STATE_REACT_INPUT 3
+#define STATE_MOVE_UP 4
+#define STATE_MOVE_DOWN 5
+#define STATE_MOVE_LEFT 6
+#define STATE_MOVE_RIGHT 7
+#define STATE_CLOSE_CARD 8
+
+#define tUsingAlternateSlot data[2] // CARD_ALTERNATE_SLOT
+
+static void Task_HandleInfoCardInput(u8 taskId)
{
int i;
int windowId = 0;
- int r9 = gTasks[taskId].data[3];
+ int mode = gTasks[taskId].data[3];
int taskId2 = gTasks[taskId].data[4];
- int trainerTournamentId = 0;
+ int trainerTourneyId = 0;
int matchNo = 0;
- switch (gTasks[taskId].data[0])
+ switch (gTasks[taskId].tState)
{
- case 0:
+ case STATE_FADE_IN:
if (!gPaletteFade.active)
{
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK);
- gTasks[taskId].data[0] = 1;
+ gTasks[taskId].tState = STATE_WAIT_FADE;
}
break;
- case 1:
+ case STATE_WAIT_FADE:
if (!gPaletteFade.active)
- gTasks[taskId].data[0] = 2;
+ gTasks[taskId].tState = STATE_GET_INPUT;
break;
- case 2:
- i = sub_819221C(taskId);
+ case STATE_GET_INPUT:
+ i = Task_GetInfoCardInput(taskId);
switch (i)
{
- case 9:
+ case INFOCARD_INPUT_AB:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK);
- gTasks[taskId].data[0] = 8;
+ gTasks[taskId].tState = STATE_CLOSE_CARD;
break;
- case 1 ... 8:
+ case TRAINERCARD_INPUT_UP ... TRAINERCARD_INPUT_RIGHT:
+ case MATCHCARD_INPUT_UP ... MATCHCARD_INPUT_RIGHT:
gTasks[taskId].data[5] = i;
- if (gTasks[taskId].data[2] != 0)
+ if (gTasks[taskId].tUsingAlternateSlot)
windowId = 9;
else
windowId = 0;
@@ -3788,19 +3659,19 @@ static void sub_8190CD4(u8 taskId)
CopyWindowToVram(i, 2);
FillWindowPixelBuffer(i, PIXEL_FILL(0));
}
- gTasks[taskId].data[0] = 3;
+ gTasks[taskId].tState = STATE_REACT_INPUT;
break;
- case 0:
+ case INFOCARD_INPUT_NONE:
break;
}
break;
- case 3:
+ case STATE_REACT_INPUT:
i = gTasks[taskId].data[5];
switch (i)
{
- case 1:
- case 5:
- if (gTasks[taskId].data[2])
+ case TRAINERCARD_INPUT_UP:
+ case MATCHCARD_INPUT_UP:
+ if (gTasks[taskId].tUsingAlternateSlot)
{
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
@@ -3815,108 +3686,108 @@ static void sub_8190CD4(u8 taskId)
gBattle_BG1_Y = 0;
}
- if (i == 1)
+ if (i == TRAINERCARD_INPUT_UP)
{
- if (sBattleDomeStruct->unk_10 == 0)
+ if (sInfoCard->pos == 0)
{
gBattle_BG2_X = 0;
gBattle_BG2_Y = 320;
- trainerTournamentId = sTourneyTreeTrainerIds[gTasks[taskId2].data[1]];
- DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 0x10, trainerTournamentId);
+ trainerTourneyId = sTourneyTreeTrainerIds[gTasks[taskId2].data[1]];
+ DisplayTrainerInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_UP, trainerTourneyId);
}
else
{
gBattle_BG2_X = 256;
gBattle_BG2_Y = 0;
- trainerTournamentId = sTourneyTreeTrainerIds[gTasks[taskId2].data[1]];
- DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 0x10, trainerTournamentId);
- sBattleDomeStruct->unk_10 = 0;
+ trainerTourneyId = sTourneyTreeTrainerIds[gTasks[taskId2].data[1]];
+ DisplayTrainerInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_UP, trainerTourneyId);
+ sInfoCard->pos = 0;
}
}
- else
+ else // i == MATCHCARD_INPUT_UP
{
- if (sBattleDomeStruct->unk_10 == 0)
+ if (sInfoCard->pos == 0)
{
matchNo = gTasks[taskId2].data[1] - 16;
- sub_8192F08(matchNo, sBattleDomeStruct->unk_11);
+ BufferDomeWinString(matchNo, sInfoCard->tournamentIds);
gBattle_BG2_X = 0;
gBattle_BG2_Y = 320;
- trainerTournamentId = sBattleDomeStruct->unk_11[0];
- DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 0x10, trainerTournamentId);
+ trainerTourneyId = sInfoCard->tournamentIds[0];
+ DisplayTrainerInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_UP, trainerTourneyId);
}
- else if (sBattleDomeStruct->unk_10 == 2)
+ else if (sInfoCard->pos == 2)
{
matchNo = gTasks[taskId2].data[1] - 16;
- sub_8192F08(matchNo, sBattleDomeStruct->unk_11);
+ BufferDomeWinString(matchNo, sInfoCard->tournamentIds);
gBattle_BG2_X = 0;
gBattle_BG2_Y = 320;
- trainerTournamentId = sBattleDomeStruct->unk_11[1];
- DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 0x10, trainerTournamentId);
+ trainerTourneyId = sInfoCard->tournamentIds[1];
+ DisplayTrainerInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_UP, trainerTourneyId);
}
else
{
gBattle_BG2_X = 256;
gBattle_BG2_Y = 160;
matchNo = gTasks[taskId2].data[1] - 16;
- DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 0x10, matchNo);
+ DisplayMatchInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_UP, matchNo);
}
}
- for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++)
+ for (i = 0; i < NUM_INFOCARD_SPRITES / 2; i++)
{
if (i < 2)
{
- if (sBattleDomeStruct->arr[i] != 0xFF)
+ if (sInfoCard->spriteIds[i] != 0xFF)
{
- gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollUp;
- gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1;
- gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
- gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
- gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i];
+ gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollUp;
+ gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1;
+ gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
+ gSprites[sInfoCard->spriteIds[i]].data[2] = i;
+ gSprites[sInfoCard->spriteIds[i]].data[3] = sInfoCard->spriteIds[i];
}
}
else
{
- if (sBattleDomeStruct->arr[i] != 0xFF)
+ if (sInfoCard->spriteIds[i] != 0xFF)
{
- gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollUp;
- gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1;
- gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
- gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollUp;
+ gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1;
+ gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
+ gSprites[sInfoCard->spriteIds[i]].data[2] = i;
}
}
}
- for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
+ for (i = NUM_INFOCARD_SPRITES / 2; i < NUM_INFOCARD_SPRITES; i++)
{
if (i < 10)
{
- if (sBattleDomeStruct->arr[i] != 0xFF)
+ if (sInfoCard->spriteIds[i] != 0xFF)
{
- gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollUp;
- gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2];
- gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
- gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
- gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i];
+ gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollUp;
+ gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot;
+ gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
+ gSprites[sInfoCard->spriteIds[i]].data[2] = i;
+ gSprites[sInfoCard->spriteIds[i]].data[3] = sInfoCard->spriteIds[i];
}
}
else
{
- if (sBattleDomeStruct->arr[i] != 0xFF)
+ if (sInfoCard->spriteIds[i] != 0xFF)
{
- gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollUp;
- gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2];
- gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
- gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollUp;
+ gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot;
+ gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
+ gSprites[sInfoCard->spriteIds[i]].data[2] = i;
}
}
}
- gTasks[taskId].data[0] = 4;
+ gTasks[taskId].tState = STATE_MOVE_UP;
gTasks[taskId].data[5] = 0;
break;
- case 2:
- case 6:
- if (gTasks[taskId].data[2])
+ case TRAINERCARD_INPUT_DOWN:
+ case MATCHCARD_INPUT_DOWN:
+ if (gTasks[taskId].tUsingAlternateSlot)
{
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
@@ -3931,107 +3802,107 @@ static void sub_8190CD4(u8 taskId)
gBattle_BG1_Y = 0;
}
- if (i == 2)
+ if (i == TRAINERCARD_INPUT_DOWN)
{
- if (sBattleDomeStruct->unk_10 == 0)
+ if (sInfoCard->pos == 0)
{
gBattle_BG2_X = 0;
gBattle_BG2_Y = 160;
- trainerTournamentId = sTourneyTreeTrainerIds[gTasks[taskId2].data[1]];
- DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 4, trainerTournamentId);
+ trainerTourneyId = sTourneyTreeTrainerIds[gTasks[taskId2].data[1]];
+ DisplayTrainerInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_DOWN, trainerTourneyId);
}
else
{
gBattle_BG2_X = 0;
gBattle_BG2_Y = 0;
- trainerTournamentId = sTourneyTreeTrainerIds[gTasks[taskId2].data[1]];
- DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 4, trainerTournamentId);
- sBattleDomeStruct->unk_10 = 0;
+ trainerTourneyId = sTourneyTreeTrainerIds[gTasks[taskId2].data[1]];
+ DisplayTrainerInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_DOWN, trainerTourneyId);
+ sInfoCard->pos = 0;
}
}
- else
+ else // i == MATCHCARD_INPUT_DOWN
{
- if (sBattleDomeStruct->unk_10 == 0)
+ if (sInfoCard->pos == 0)
{
matchNo = gTasks[taskId2].data[1] - 16;
- sub_8192F08(matchNo, sBattleDomeStruct->unk_11);
+ BufferDomeWinString(matchNo, sInfoCard->tournamentIds);
gBattle_BG2_X = 0;
gBattle_BG2_Y = 160;
- trainerTournamentId = sBattleDomeStruct->unk_11[0];
- DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 4, trainerTournamentId);
+ trainerTourneyId = sInfoCard->tournamentIds[0];
+ DisplayTrainerInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_DOWN, trainerTourneyId);
}
- else if (sBattleDomeStruct->unk_10 == 2)
+ else if (sInfoCard->pos == 2)
{
matchNo = gTasks[taskId2].data[1] - 16;
- sub_8192F08(matchNo, sBattleDomeStruct->unk_11);
+ BufferDomeWinString(matchNo, sInfoCard->tournamentIds);
gBattle_BG2_X = 0;
gBattle_BG2_Y = 160;
- trainerTournamentId = sBattleDomeStruct->unk_11[1];
- DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 4, trainerTournamentId);
+ trainerTourneyId = sInfoCard->tournamentIds[1];
+ DisplayTrainerInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_DOWN, trainerTourneyId);
}
else
{
gBattle_BG2_X = 256;
gBattle_BG2_Y = 0;
matchNo = gTasks[taskId2].data[1] - 16;
- DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 4, matchNo);
+ DisplayMatchInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_DOWN, matchNo);
}
}
- for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++)
+ for (i = 0; i < NUM_INFOCARD_SPRITES / 2; i++)
{
if (i < 2)
{
- if (sBattleDomeStruct->arr[i] != 0xFF)
+ if (sInfoCard->spriteIds[i] != 0xFF)
{
- gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollDown;
- gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1;
- gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
- gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
- gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i];
+ gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollDown;
+ gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1;
+ gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
+ gSprites[sInfoCard->spriteIds[i]].data[2] = i;
+ gSprites[sInfoCard->spriteIds[i]].data[3] = sInfoCard->spriteIds[i];
}
}
else
{
- if (sBattleDomeStruct->arr[i] != 0xFF)
+ if (sInfoCard->spriteIds[i] != 0xFF)
{
- gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollDown;
- gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1;
- gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
- gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollDown;
+ gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1;
+ gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
+ gSprites[sInfoCard->spriteIds[i]].data[2] = i;
}
}
}
- for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
+ for (i = NUM_INFOCARD_SPRITES / 2; i < NUM_INFOCARD_SPRITES; i++)
{
if (i < 10)
{
- if (sBattleDomeStruct->arr[i] != 0xFF)
+ if (sInfoCard->spriteIds[i] != 0xFF)
{
- gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollDown;
- gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2];
- gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
- gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
- gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i];
+ gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollDown;
+ gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot;
+ gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
+ gSprites[sInfoCard->spriteIds[i]].data[2] = i;
+ gSprites[sInfoCard->spriteIds[i]].data[3] = sInfoCard->spriteIds[i];
}
}
else
{
- if (sBattleDomeStruct->arr[i] != 0xFF)
+ if (sInfoCard->spriteIds[i] != 0xFF)
{
- gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollDown;
- gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2];
- gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
- gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollDown;
+ gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot;
+ gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
+ gSprites[sInfoCard->spriteIds[i]].data[2] = i;
}
}
}
- gTasks[taskId].data[0] = 5;
+ gTasks[taskId].tState = STATE_MOVE_DOWN;
gTasks[taskId].data[5] = 0;
break;
- case 3:
- if (gTasks[taskId].data[2])
+ case TRAINERCARD_INPUT_LEFT:
+ if (gTasks[taskId].tUsingAlternateSlot)
{
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
@@ -4046,75 +3917,75 @@ static void sub_8190CD4(u8 taskId)
gBattle_BG1_Y = 0;
}
- if (sBattleDomeStruct->unk_10 == 0)
+ if (sInfoCard->pos == 0)
{
gBattle_BG2_X = 256;
gBattle_BG2_Y = 160;
- trainerTournamentId = sTourneyTreeTrainerIds[gTasks[taskId2].data[1]];
- DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 8, trainerTournamentId);
+ trainerTourneyId = sTourneyTreeTrainerIds[gTasks[taskId2].data[1]];
+ DisplayTrainerInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_LEFT, trainerTourneyId);
}
else
{
gBattle_BG2_X = 256;
gBattle_BG2_Y = 0;
- matchNo = gUnknown_0860D15C[gTasks[taskId2].data[1]][sBattleDomeStruct->unk_10 - 1];
- DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 8, matchNo);
+ matchNo = sIdToMatchNumber[gTasks[taskId2].data[1]][sInfoCard->pos - 1];
+ DisplayMatchInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_LEFT, matchNo);
}
- for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++)
+ for (i = 0; i < NUM_INFOCARD_SPRITES / 2; i++)
{
if (i < 2)
{
- if (sBattleDomeStruct->arr[i] != 0xFF)
+ if (sInfoCard->spriteIds[i] != 0xFF)
{
- gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollLeft;
- gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1;
- gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
- gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
- gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i];
+ gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollLeft;
+ gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1;
+ gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
+ gSprites[sInfoCard->spriteIds[i]].data[2] = i;
+ gSprites[sInfoCard->spriteIds[i]].data[3] = sInfoCard->spriteIds[i];
}
}
else
{
- if (sBattleDomeStruct->arr[i] != 0xFF)
+ if (sInfoCard->spriteIds[i] != 0xFF)
{
- gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollLeft;
- gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1;
- gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
- gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollLeft;
+ gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1;
+ gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
+ gSprites[sInfoCard->spriteIds[i]].data[2] = i;
}
}
}
- for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
+ for (i = NUM_INFOCARD_SPRITES / 2; i < NUM_INFOCARD_SPRITES; i++)
{
if (i < 10)
{
- if (sBattleDomeStruct->arr[i] != 0xFF)
+ if (sInfoCard->spriteIds[i] != 0xFF)
{
- gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollLeft;
- gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2];
- gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
- gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
- gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i];
+ gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollLeft;
+ gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot;
+ gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
+ gSprites[sInfoCard->spriteIds[i]].data[2] = i;
+ gSprites[sInfoCard->spriteIds[i]].data[3] = sInfoCard->spriteIds[i];
}
}
else
{
- if (sBattleDomeStruct->arr[i] != 0xFF)
+ if (sInfoCard->spriteIds[i] != 0xFF)
{
- gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollLeft;
- gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2];
- gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
- gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollLeft;
+ gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot;
+ gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
+ gSprites[sInfoCard->spriteIds[i]].data[2] = i;
}
}
}
- gTasks[taskId].data[0] = 6;
+ gTasks[taskId].tState = STATE_MOVE_LEFT;
gTasks[taskId].data[5] = 0;
break;
- case 7:
- if (gTasks[taskId].data[2])
+ case MATCHCARD_INPUT_LEFT:
+ if (gTasks[taskId].tUsingAlternateSlot)
{
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
@@ -4129,75 +4000,75 @@ static void sub_8190CD4(u8 taskId)
gBattle_BG1_Y = 0;
}
- if (sBattleDomeStruct->unk_10 == 0)
+ if (sInfoCard->pos == 0)
{
gBattle_BG2_X = 256;
gBattle_BG2_Y = 160;
- trainerTournamentId = sBattleDomeStruct->unk_11[0];
- DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 8, trainerTournamentId);
+ trainerTourneyId = sInfoCard->tournamentIds[0];
+ DisplayTrainerInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_LEFT, trainerTourneyId);
}
else
{
gBattle_BG2_X = 0;
gBattle_BG2_Y = 160;
matchNo = gTasks[taskId2].data[1] - 16;
- DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 8, matchNo);
+ DisplayMatchInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_LEFT, matchNo);
}
- for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++)
+ for (i = 0; i < NUM_INFOCARD_SPRITES / 2; i++)
{
if (i < 2)
{
- if (sBattleDomeStruct->arr[i] != 0xFF)
+ if (sInfoCard->spriteIds[i] != 0xFF)
{
- gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollLeft;
- gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1;
- gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
- gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
- gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i];
+ gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollLeft;
+ gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1;
+ gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
+ gSprites[sInfoCard->spriteIds[i]].data[2] = i;
+ gSprites[sInfoCard->spriteIds[i]].data[3] = sInfoCard->spriteIds[i];
}
}
else
{
- if (sBattleDomeStruct->arr[i] != 0xFF)
+ if (sInfoCard->spriteIds[i] != 0xFF)
{
- gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollLeft;
- gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1;
- gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
- gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollLeft;
+ gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1;
+ gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
+ gSprites[sInfoCard->spriteIds[i]].data[2] = i;
}
}
}
- for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
+ for (i = NUM_INFOCARD_SPRITES / 2; i < NUM_INFOCARD_SPRITES; i++)
{
if (i < 10)
{
- if (sBattleDomeStruct->arr[i] != 0xFF)
+ if (sInfoCard->spriteIds[i] != 0xFF)
{
- gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollLeft;
- gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2];
- gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
- gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
- gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i];
+ gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollLeft;
+ gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot;
+ gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
+ gSprites[sInfoCard->spriteIds[i]].data[2] = i;
+ gSprites[sInfoCard->spriteIds[i]].data[3] = sInfoCard->spriteIds[i];
}
}
else
{
- if (sBattleDomeStruct->arr[i] != 0xFF)
+ if (sInfoCard->spriteIds[i] != 0xFF)
{
- gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollLeft;
- gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2];
- gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
- gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollLeft;
+ gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot;
+ gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
+ gSprites[sInfoCard->spriteIds[i]].data[2] = i;
}
}
}
- gTasks[taskId].data[0] = 6;
+ gTasks[taskId].tState = STATE_MOVE_LEFT;
gTasks[taskId].data[5] = 0;
break;
- case 4:
- if (gTasks[taskId].data[2])
+ case TRAINERCARD_INPUT_RIGHT:
+ if (gTasks[taskId].tUsingAlternateSlot)
{
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
@@ -4212,7 +4083,7 @@ static void sub_8190CD4(u8 taskId)
gBattle_BG1_Y = 0;
}
- if (sBattleDomeStruct->unk_10 == 1)
+ if (sInfoCard->pos == 1)
{
gBattle_BG2_X = 0;
gBattle_BG2_Y = 160;
@@ -4222,63 +4093,63 @@ static void sub_8190CD4(u8 taskId)
gBattle_BG2_X = 0;
gBattle_BG2_Y = 0;
}
- matchNo = gUnknown_0860D15C[gTasks[taskId2].data[1]][sBattleDomeStruct->unk_10 - 1];
- DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 2, matchNo);
+ matchNo = sIdToMatchNumber[gTasks[taskId2].data[1]][sInfoCard->pos - 1];
+ DisplayMatchInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_RIGHT, matchNo);
- for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++)
+ for (i = 0; i < NUM_INFOCARD_SPRITES / 2; i++)
{
if (i < 2)
{
- if (sBattleDomeStruct->arr[i] != 0xFF)
+ if (sInfoCard->spriteIds[i] != 0xFF)
{
- gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollRight;
- gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1;
- gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
- gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
- gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i];
+ gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollRight;
+ gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1;
+ gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
+ gSprites[sInfoCard->spriteIds[i]].data[2] = i;
+ gSprites[sInfoCard->spriteIds[i]].data[3] = sInfoCard->spriteIds[i];
}
}
else
{
- if (sBattleDomeStruct->arr[i] != 0xFF)
+ if (sInfoCard->spriteIds[i] != 0xFF)
{
- gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollRight;
- gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1;
- gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
- gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollRight;
+ gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1;
+ gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
+ gSprites[sInfoCard->spriteIds[i]].data[2] = i;
}
}
}
- for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
+ for (i = NUM_INFOCARD_SPRITES / 2; i < NUM_INFOCARD_SPRITES; i++)
{
if (i < 10)
{
- if (sBattleDomeStruct->arr[i] != 0xFF)
+ if (sInfoCard->spriteIds[i] != 0xFF)
{
- gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollRight;
- gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2];
- gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
- gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
- gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i];
+ gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollRight;
+ gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot;
+ gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
+ gSprites[sInfoCard->spriteIds[i]].data[2] = i;
+ gSprites[sInfoCard->spriteIds[i]].data[3] = sInfoCard->spriteIds[i];
}
}
else
{
- if (sBattleDomeStruct->arr[i] != 0xFF)
+ if (sInfoCard->spriteIds[i] != 0xFF)
{
- gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollRight;
- gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2];
- gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
- gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollRight;
+ gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot;
+ gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
+ gSprites[sInfoCard->spriteIds[i]].data[2] = i;
}
}
}
- gTasks[taskId].data[0] = 7;
+ gTasks[taskId].tState = STATE_MOVE_RIGHT;
gTasks[taskId].data[5] = 0;
break;
- case 8:
- if (gTasks[taskId].data[2])
+ case MATCHCARD_INPUT_RIGHT:
+ if (gTasks[taskId].tUsingAlternateSlot)
{
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
@@ -4293,76 +4164,76 @@ static void sub_8190CD4(u8 taskId)
gBattle_BG1_Y = 0;
}
- if (sBattleDomeStruct->unk_10 == 2)
+ if (sInfoCard->pos == 2)
{
gBattle_BG2_X = 256;
gBattle_BG2_Y = 160;
- trainerTournamentId = sBattleDomeStruct->unk_11[1];
- DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 2, trainerTournamentId);
+ trainerTourneyId = sInfoCard->tournamentIds[1];
+ DisplayTrainerInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_RIGHT, trainerTourneyId);
}
else
{
gBattle_BG2_X = 0;
gBattle_BG2_Y = 160;
matchNo = gTasks[taskId2].data[1] - 16;
- DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 2, matchNo);
+ DisplayMatchInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_RIGHT, matchNo);
}
- for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++)
+ for (i = 0; i < NUM_INFOCARD_SPRITES / 2; i++)
{
if (i < 2)
{
- if (sBattleDomeStruct->arr[i] != 0xFF)
+ if (sInfoCard->spriteIds[i] != 0xFF)
{
- gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollRight;
- gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1;
- gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
- gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
- gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i];
+ gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollRight;
+ gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1;
+ gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
+ gSprites[sInfoCard->spriteIds[i]].data[2] = i;
+ gSprites[sInfoCard->spriteIds[i]].data[3] = sInfoCard->spriteIds[i];
}
}
else
{
- if (sBattleDomeStruct->arr[i] != 0xFF)
+ if (sInfoCard->spriteIds[i] != 0xFF)
{
- gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollRight;
- gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1;
- gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
- gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollRight;
+ gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1;
+ gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
+ gSprites[sInfoCard->spriteIds[i]].data[2] = i;
}
}
}
- for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
+ for (i = NUM_INFOCARD_SPRITES / 2; i < NUM_INFOCARD_SPRITES; i++)
{
if (i < 10)
{
- if (sBattleDomeStruct->arr[i] != 0xFF)
+ if (sInfoCard->spriteIds[i] != 0xFF)
{
- gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollRight;
- gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2];
- gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
- gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
- gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i];
+ gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollRight;
+ gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot;
+ gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
+ gSprites[sInfoCard->spriteIds[i]].data[2] = i;
+ gSprites[sInfoCard->spriteIds[i]].data[3] = sInfoCard->spriteIds[i];
}
}
else
{
- if (sBattleDomeStruct->arr[i] != 0xFF)
+ if (sInfoCard->spriteIds[i] != 0xFF)
{
- gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollRight;
- gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2];
- gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
- gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollRight;
+ gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot;
+ gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
+ gSprites[sInfoCard->spriteIds[i]].data[2] = i;
}
}
}
- gTasks[taskId].data[0] = 7;
+ gTasks[taskId].tState = STATE_MOVE_RIGHT;
gTasks[taskId].data[5] = 0;
break;
}
break;
- case 4:
+ case STATE_MOVE_UP:
if (++gTasks[taskId].data[5] != 41)
{
gBattle_BG0_Y -= 4;
@@ -4371,10 +4242,10 @@ static void sub_8190CD4(u8 taskId)
}
else
{
- gTasks[taskId].data[0] = 2;
+ gTasks[taskId].tState = STATE_GET_INPUT;
}
break;
- case 5:
+ case STATE_MOVE_DOWN:
if (++gTasks[taskId].data[5] != 41)
{
gBattle_BG0_Y += 4;
@@ -4383,10 +4254,10 @@ static void sub_8190CD4(u8 taskId)
}
else
{
- gTasks[taskId].data[0] = 2;
+ gTasks[taskId].tState = STATE_GET_INPUT;
}
break;
- case 6:
+ case STATE_MOVE_LEFT:
if (++gTasks[taskId].data[5] != 65)
{
gBattle_BG0_X -= 4;
@@ -4395,10 +4266,10 @@ static void sub_8190CD4(u8 taskId)
}
else
{
- gTasks[taskId].data[0] = 2;
+ gTasks[taskId].tState = STATE_GET_INPUT;
}
break;
- case 7:
+ case STATE_MOVE_RIGHT:
if (++gTasks[taskId].data[5] != 65)
{
gBattle_BG0_X += 4;
@@ -4407,43 +4278,44 @@ static void sub_8190CD4(u8 taskId)
}
else
{
- gTasks[taskId].data[0] = 2;
+ gTasks[taskId].tState = STATE_GET_INPUT;
}
break;
- case 8:
+ case STATE_CLOSE_CARD:
if (!gPaletteFade.active)
{
- for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++)
+ for (i = 0; i < NUM_INFOCARD_SPRITES / 2; i++)
{
if (i < 2)
{
- if (sBattleDomeStruct->arr[i] != 0xFF)
- FreeAndDestroyTrainerPicSprite(sBattleDomeStruct->arr[i]);
+ if (sInfoCard->spriteIds[i] != 0xFF)
+ FreeAndDestroyTrainerPicSprite(sInfoCard->spriteIds[i]);
}
else
{
- if (sBattleDomeStruct->arr[i] != 0xFF)
- sub_80D2EF8(&gSprites[sBattleDomeStruct->arr[i]]);
+ if (sInfoCard->spriteIds[i] != 0xFF)
+ FreeAndDestroyMonIconSprite(&gSprites[sInfoCard->spriteIds[i]]);
}
}
- for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
+ for (i = NUM_INFOCARD_SPRITES / 2; i < NUM_INFOCARD_SPRITES; i++)
{
if (i < 10)
{
- if (sBattleDomeStruct->arr[i] != 0xFF)
- FreeAndDestroyTrainerPicSprite(sBattleDomeStruct->arr[i]);
+ if (sInfoCard->spriteIds[i] != 0xFF)
+ FreeAndDestroyTrainerPicSprite(sInfoCard->spriteIds[i]);
}
else
{
- if (sBattleDomeStruct->arr[i] != 0xFF)
- sub_80D2EF8(&gSprites[sBattleDomeStruct->arr[i]]);
+ if (sInfoCard->spriteIds[i] != 0xFF)
+ FreeAndDestroyMonIconSprite(&gSprites[sInfoCard->spriteIds[i]]);
}
}
FreeMonIconPalettes();
- FREE_AND_SET_NULL(sBattleDomeStruct);
+ FREE_AND_SET_NULL(sInfoCard);
FreeAllWindowBuffers();
- if (r9 == 0)
+
+ if (mode == INFOCARD_NEXT_OPPONENT)
{
SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
}
@@ -4451,10 +4323,10 @@ static void sub_8190CD4(u8 taskId)
{
i = CreateTask(Task_ShowTourneyTree, 0);
gTasks[i].data[0] = 0;
- gTasks[i].data[1] = 0;
+ gTasks[i].tNotInteractive = FALSE;
gTasks[i].data[2] = 3;
gTasks[i].data[3] = gTasks[taskId].data[4];
- gTasks[i].data[4] = gTasks[taskId2].data[6];
+ gTasks[i].tIsPrevTourneyTree = gTasks[taskId2].data[6];
}
DestroyTask(taskId);
}
@@ -4462,116 +4334,142 @@ static void sub_8190CD4(u8 taskId)
}
}
-static u8 sub_819221C(u8 taskId)
+// undefine task states for Task_HandleInfoCardInput
+#undef STATE_FADE_IN
+#undef STATE_WAIT_FADE
+#undef STATE_GET_INPUT
+#undef STATE_REACT_INPUT
+#undef STATE_MOVE_UP
+#undef STATE_MOVE_DOWN
+#undef STATE_MOVE_LEFT
+#undef STATE_MOVE_RIGHT
+#undef STATE_CLOSE_CARD
+
+static u8 Task_GetInfoCardInput(u8 taskId)
{
- u8 retVal = 0;
+ u8 input = INFOCARD_INPUT_NONE;
int taskId2 = gTasks[taskId].data[4];
- int r5 = gTasks[taskId2].data[1];
- u8 r10 = sTourneyTreeTrainerIds[r5];
+ int position = gTasks[taskId2].data[1];
+ u8 tourneyId = sTourneyTreeTrainerIds[position];
u16 roundId = gSaveBlock2Ptr->frontier.curChallengeBattleNum;
if (gMain.newKeys & (A_BUTTON | B_BUTTON))
- retVal = 9;
+ input = INFOCARD_INPUT_AB;
- if (gTasks[taskId].data[3] == 0)
- return retVal;
+ // Next opponent card cant scroll
+ if (gTasks[taskId].data[3] == INFOCARD_NEXT_OPPONENT)
+ return input;
- if (gTasks[taskId].data[3] == 1)
+ if (gTasks[taskId].data[3] == INFOCARD_TRAINER)
{
- if (gMain.newKeys & DPAD_UP && sBattleDomeStruct->unk_10 == 0)
+ // For trainer info cards, pos is 0 when on a trainer info card (not viewing that trainer's match progression)
+ // Scrolling up/down from a trainer info card goes to other trainer info cards
+ if (gMain.newKeys & DPAD_UP && sInfoCard->pos == 0)
{
- if (r5 == 0)
- r5 = 15;
+ if (position == 0)
+ position = DOME_TOURNAMENT_TRAINERS_COUNT - 1;
else
- r5--;
- retVal = 1;
+ position--;
+ input = TRAINERCARD_INPUT_UP;
}
- else if (gMain.newKeys & DPAD_DOWN && sBattleDomeStruct->unk_10 == 0)
+ else if (gMain.newKeys & DPAD_DOWN && sInfoCard->pos == 0)
{
- if (r5 == 15)
- r5 = 0;
+ if (position == DOME_TOURNAMENT_TRAINERS_COUNT - 1)
+ position = 0;
else
- r5++;
- retVal = 2;
+ position++;
+ input = TRAINERCARD_INPUT_DOWN;
}
- else if (gMain.newKeys & DPAD_LEFT && sBattleDomeStruct->unk_10 != 0)
+ // Scrolling left can only be done after scrolling right
+ else if (gMain.newKeys & DPAD_LEFT && sInfoCard->pos != 0)
{
- sBattleDomeStruct->unk_10--;
- retVal = 3;
+ sInfoCard->pos--;
+ input = TRAINERCARD_INPUT_LEFT;
}
+ // Scrolling right from a trainer info card shows their match progression
else if (gMain.newKeys & DPAD_RIGHT)
{
- if (gSaveBlock2Ptr->frontier.domeTrainers[r10].isEliminated && sBattleDomeStruct->unk_10 - 1 < gSaveBlock2Ptr->frontier.domeTrainers[r10].eliminatedAt)
+ // Can only scroll right from a trainer card until the round they were eliminated
+ if (DOME_TRAINERS[tourneyId].isEliminated && sInfoCard->pos - 1 < DOME_TRAINERS[tourneyId].eliminatedAt)
{
- sBattleDomeStruct->unk_10++;
- retVal = 4;
+ sInfoCard->pos++;
+ input = TRAINERCARD_INPUT_RIGHT;
}
- if (!gSaveBlock2Ptr->frontier.domeTrainers[r10].isEliminated && sBattleDomeStruct->unk_10 - 1 < roundId)
+ // otherwise can scroll as far right as the current round allows
+ if (!DOME_TRAINERS[tourneyId].isEliminated && sInfoCard->pos - 1 < roundId)
{
- sBattleDomeStruct->unk_10++;
- retVal = 4;
+ sInfoCard->pos++;
+ input = TRAINERCARD_INPUT_RIGHT;
}
}
- if (retVal == 9)
+ if (input == INFOCARD_INPUT_AB)
{
- if (sBattleDomeStruct->unk_10 != 0)
- gTasks[taskId2].data[1] = gUnknown_0860D1A0[r5 / 2][sBattleDomeStruct->unk_10 - 1];
+ if (sInfoCard->pos != 0)
+ gTasks[taskId2].data[1] = gUnknown_0860D1A0[position / 2][sInfoCard->pos - 1];
else
- gTasks[taskId2].data[1] = r5;
+ gTasks[taskId2].data[1] = position;
}
}
- else
+ else // gTasks[taskId].data[3] == INFOCARD_MATCH
{
- if (gMain.newKeys & DPAD_UP && sBattleDomeStruct->unk_10 == 1)
+ // For match info cards, pos is 1 when on the match card, 0 when on the left trainer, and 1 when on the right trainer
+ // Scrolling up/down from a match info card goes to the next/previous match
+ if (gMain.newKeys & DPAD_UP && sInfoCard->pos == 1)
{
- if (r5 == 16)
- r5 = gUnknown_0860D19C[roundId];
+ if (position == DOME_TOURNAMENT_TRAINERS_COUNT)
+ position = sLastMatchCardNum[roundId];
else
- r5--;
- retVal = 5;
+ position--;
+ input = MATCHCARD_INPUT_UP;
}
- else if (gMain.newKeys & DPAD_DOWN && sBattleDomeStruct->unk_10 == 1)
+ else if (gMain.newKeys & DPAD_DOWN && sInfoCard->pos == 1)
{
- if (r5 == gUnknown_0860D19C[roundId])
- r5 = 16;
+ if (position == sLastMatchCardNum[roundId])
+ position = DOME_TOURNAMENT_TRAINERS_COUNT;
else
- r5++;
- retVal = 6;
+ position++;
+ input = MATCHCARD_INPUT_DOWN;
}
- else if (gMain.newKeys & DPAD_LEFT && sBattleDomeStruct->unk_10 != 0)
+ // Scrolling left/right from a match info card shows the trainer info card of the competitors for that match
+ else if (gMain.newKeys & DPAD_LEFT && sInfoCard->pos != 0)
{
- retVal = 7;
- sBattleDomeStruct->unk_10--;
+ input = MATCHCARD_INPUT_LEFT;
+ sInfoCard->pos--;
}
- else if (gMain.newKeys & DPAD_RIGHT && (sBattleDomeStruct->unk_10 == 0 || sBattleDomeStruct->unk_10 == 1))
+ else if (gMain.newKeys & DPAD_RIGHT && (sInfoCard->pos == 0 || sInfoCard->pos == 1))
{
- retVal = 8;
- sBattleDomeStruct->unk_10++;
+ input = MATCHCARD_INPUT_RIGHT;
+ sInfoCard->pos++;
}
- if (retVal == 9)
+ if (input == INFOCARD_INPUT_AB)
{
- if (sBattleDomeStruct->unk_10 == 0)
- gTasks[taskId2].data[1] = gUnknown_0860D1C0[sBattleDomeStruct->unk_11[0]];
- else if (sBattleDomeStruct->unk_10 == 2)
- gTasks[taskId2].data[1] = gUnknown_0860D1C0[sBattleDomeStruct->unk_11[1]];
- else
- gTasks[taskId2].data[1] = r5;
+ if (sInfoCard->pos == 0) // On left trainer info card
+ gTasks[taskId2].data[1] = gUnknown_0860D1C0[sInfoCard->tournamentIds[0]];
+ else if (sInfoCard->pos == 2) // On right trainer info card
+ gTasks[taskId2].data[1] = gUnknown_0860D1C0[sInfoCard->tournamentIds[1]];
+ else // On match info card
+ gTasks[taskId2].data[1] = position;
}
}
- if (retVal != 0 && retVal != 9)
+ if (input != INFOCARD_INPUT_NONE && input != INFOCARD_INPUT_AB)
{
PlaySE(SE_SELECT);
- gTasks[taskId2].data[1] = r5;
- gTasks[taskId].data[2] ^= 1;
+ gTasks[taskId2].data[1] = position;
+ gTasks[taskId].tUsingAlternateSlot ^= 1;
}
- return retVal;
+ return input;
}
-static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId)
+#undef tUsingAlternateSlot
+
+// allocatedArray below needs to be large enough to hold stat totals for each mon, or totals of each type of move points
+#define ALLOC_ARRAY_SIZE (NUM_STATS * FRONTIER_PARTY_SIZE >= NUM_MOVE_POINT_TYPES ? (NUM_STATS * FRONTIER_PARTY_SIZE) : NUM_MOVE_POINT_TYPES)
+
+static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTourneyId)
{
struct TextPrinterTemplate textPrinter;
int i, j, k;
@@ -4581,63 +4479,67 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId)
int windowId = 0;
int x = 0, y = 0;
u8 palSlot = 0;
- s16 *allocatedArray = AllocZeroed(sizeof(s16) * 18);
- trainerId = gSaveBlock2Ptr->frontier.domeTrainers[trainerTournamentId].trainerId;
+ s16 *allocatedArray = AllocZeroed(sizeof(s16) * ALLOC_ARRAY_SIZE);
+ trainerId = DOME_TRAINERS[trainerTourneyId].trainerId;
- if (flags & 1)
- arrId = 8, windowId = 9, palSlot = 2;
- if (flags & 2)
+ if (flags & CARD_ALTERNATE_SLOT)
+ arrId = 2 * (FRONTIER_PARTY_SIZE + 1), windowId = 9, palSlot = 2;
+ if (flags & MOVE_CARD_RIGHT)
x = 256;
- if (flags & 4)
+ if (flags & MOVE_CARD_DOWN)
y = 160;
- if (flags & 8)
+ if (flags & MOVE_CARD_LEFT)
x = -256;
- if (flags & 0x10)
+ if (flags & MOVE_CARD_UP)
y = -160;
+ // Create trainer pic sprite
if (trainerId == TRAINER_PLAYER)
- sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF);
+ sInfoCard->spriteIds[arrId] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF);
else if (trainerId == TRAINER_FRONTIER_BRAIN)
- sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(GetDomeBrainTrainerPicId(), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF);
+ sInfoCard->spriteIds[arrId] = CreateTrainerPicSprite(GetDomeBrainTrainerPicId(), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF);
else
- sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerId), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF);
+ sInfoCard->spriteIds[arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerId), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF);
- if (flags & 0x1E)
- gSprites[sBattleDomeStruct->arr[arrId]].invisible = TRUE;
+ if (flags & MOVE_CARD)
+ gSprites[sInfoCard->spriteIds[arrId]].invisible = TRUE;
- for (i = 0; i < 3; i++)
+ // Create party mon icons
+ for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
{
if (trainerId == TRAINER_PLAYER)
{
- sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i],
+ sInfoCard->spriteIds[2 + i + arrId] = CreateMonIcon(DOME_MONS[trainerTourneyId][i],
SpriteCb_MonIcon,
x | sInfoTrainerMonX[i],
y + sInfoTrainerMonY[i],
0, 0, TRUE);
- gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0;
+ gSprites[sInfoCard->spriteIds[2 + i + arrId]].oam.priority = 0;
}
else if (trainerId == TRAINER_FRONTIER_BRAIN)
{
- sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i],
+ sInfoCard->spriteIds[2 + i + arrId] = CreateMonIcon(DOME_MONS[trainerTourneyId][i],
SpriteCb_MonIcon,
x | sInfoTrainerMonX[i],
y + sInfoTrainerMonY[i],
0, 0, TRUE);
- gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0;
+ gSprites[sInfoCard->spriteIds[2 + i + arrId]].oam.priority = 0;
}
else
{
- sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]].species,
+ sInfoCard->spriteIds[2 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[DOME_MONS[trainerTourneyId][i]].species,
SpriteCb_MonIcon,
x | sInfoTrainerMonX[i],
y + sInfoTrainerMonY[i],
0, 0, TRUE);
- gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0;
+ gSprites[sInfoCard->spriteIds[2 + i + arrId]].oam.priority = 0;
}
- if (flags & 0x1E)
- gSprites[sBattleDomeStruct->arr[2 + i + arrId]].invisible = TRUE;
+ if (flags & MOVE_CARD)
+ gSprites[sInfoCard->spriteIds[2 + i + arrId]].invisible = TRUE;
}
+
+ // Initialize the text printer
textPrinter.fontId = 2;
textPrinter.x = 0;
textPrinter.y = 0;
@@ -4646,10 +4548,11 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId)
textPrinter.letterSpacing = 2;
textPrinter.lineSpacing = 0;
textPrinter.unk = 0;
- textPrinter.fgColor = 14;
- textPrinter.bgColor = 0;
- textPrinter.shadowColor = 13;
+ textPrinter.fgColor = TEXT_DYNAMIC_COLOR_5;
+ textPrinter.bgColor = TEXT_COLOR_TRANSPARENT;
+ textPrinter.shadowColor = TEXT_DYNAMIC_COLOR_4;
+ // Get class and trainer name
i = 0;
if (trainerId == TRAINER_PLAYER)
j = gFacilityClassToTrainerClass[FACILITY_CLASS_BRENDAN];
@@ -4678,6 +4581,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId)
StringAppend(gStringVar1, gStringVar2);
}
+ // Print class and trainer name
textPrinter.currentX = GetStringCenterAlignXOffsetWithLetterSpacing(textPrinter.fontId, gStringVar1, 0xD0, textPrinter.letterSpacing);
textPrinter.currentChar = gStringVar1;
textPrinter.windowId = windowId;
@@ -4686,15 +4590,16 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId)
AddTextPrinter(&textPrinter, 0, NULL);
textPrinter.letterSpacing = 0;
- for (i = 0; i < 3; i++)
+ // Print names of the party mons
+ for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
{
- textPrinter.currentY = gUnknown_0860D346[i];
+ textPrinter.currentY = sSpeciesNameTextYCoords[i];
if (trainerId == TRAINER_PLAYER)
- textPrinter.currentChar = gSpeciesNames[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]];
+ textPrinter.currentChar = gSpeciesNames[DOME_MONS[trainerTourneyId][i]];
else if (trainerId == TRAINER_FRONTIER_BRAIN)
- textPrinter.currentChar = gSpeciesNames[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]];
+ textPrinter.currentChar = gSpeciesNames[DOME_MONS[trainerTourneyId][i]];
else
- textPrinter.currentChar = gSpeciesNames[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]].species];
+ textPrinter.currentChar = gSpeciesNames[gFacilityTrainerMons[DOME_MONS[trainerTourneyId][i]].species];
textPrinter.windowId = 1 + i + windowId;
if (i == 1)
@@ -4709,10 +4614,12 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId)
PutWindowTilemap(windowId + 4);
CopyWindowToVram(windowId + 4, 3);
+
+ // Print text about trainers potential in the tourney
if (trainerId == TRAINER_FRONTIER_BRAIN)
- textPrinter.currentChar = sBattleDomePotentialTexts[16];
+ textPrinter.currentChar = sBattleDomePotentialTexts[DOME_TOURNAMENT_TRAINERS_COUNT];
else
- textPrinter.currentChar = sBattleDomePotentialTexts[trainerTournamentId];
+ textPrinter.currentChar = sBattleDomePotentialTexts[trainerTourneyId];
textPrinter.fontId = 1;
textPrinter.windowId = windowId + 4;
@@ -4721,91 +4628,103 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId)
textPrinter.currentY = 4;
AddTextPrinter(&textPrinter, 0, NULL);
- for (i = 0; i < 3; i++)
+ // Calculate move scores to determine the trainers battle style
+ for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
{
for (j = 0; j < MAX_MON_MOVES; j++)
{
- for (k = 0; k < DOME_TOURNAMENT_TRAINERS_COUNT; k++)
+ for (k = 0; k < NUM_MOVE_POINT_TYPES; k++)
{
if (trainerId == TRAINER_FRONTIER_BRAIN)
- allocatedArray[k] += sMovePointsForDomeTrainers[GetFrontierBrainMonMove(i, j)][k];
+ allocatedArray[k] += sBattleStyleMovePoints[GetFrontierBrainMonMove(i, j)][k];
else if (trainerId == TRAINER_PLAYER)
- allocatedArray[k] += sMovePointsForDomeTrainers[gSaveBlock2Ptr->frontier.field_EFC[i].moves[j]][k];
+ allocatedArray[k] += sBattleStyleMovePoints[gSaveBlock2Ptr->frontier.domePlayerPartyData[i].moves[j]][k];
else
- allocatedArray[k] += sMovePointsForDomeTrainers[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]].moves[j]][k];
+ allocatedArray[k] += sBattleStyleMovePoints[gFacilityTrainerMons[DOME_MONS[trainerTourneyId][i]].moves[j]][k];
}
}
}
- for (i = 0; i < ARRAY_COUNT(gUnknown_0860C988); i++)
+ // Get the battle style the trainer uses
+ // Each element of sBattleStyleThresholds is an array of point thresholds for particular move qualities
+ // If all the point thresholds in the array are satisfied, the player is considered to be using that battle style
+ for (i = 0; i < ARRAY_COUNT(sBattleStyleThresholds); i++)
{
- int r4 = 0;
+ int thresholdStatCount = 0;
- for (k = 0, j = 0; j < DOME_TOURNAMENT_TRAINERS_COUNT; j++)
+ for (k = 0, j = 0; j < NUM_MOVE_POINT_TYPES; j++)
{
- if (gUnknown_0860C988[i][j] != 0)
+ if (sBattleStyleThresholds[i][j] != 0)
{
- r4++;
- if (allocatedArray[j] != 0 && allocatedArray[j] >= gUnknown_0860C988[i][j])
- k++;
+ thresholdStatCount++;
+ if (allocatedArray[j] != 0 && allocatedArray[j] >= sBattleStyleThresholds[i][j])
+ k++; // number of point thresholds met/exceeded
}
}
- if (r4 == k)
- break;
+ if (thresholdStatCount == k)
+ break; // All thresholds for battle style met/exceeded, player uses this battle style
}
+ // Print the trainers battle style
textPrinter.currentChar = sBattleDomeOpponentStyleTexts[i];
textPrinter.y = 20;
textPrinter.currentY = 20;
AddTextPrinter(&textPrinter, 0, NULL);
- for (i = 0; i < 18; i++)
+ for (i = 0; i < ALLOC_ARRAY_SIZE; i++)
allocatedArray[i] = 0;
+ // Calculate EV/nature points for the stat portion of battle style
if (trainerId == TRAINER_FRONTIER_BRAIN || trainerId == TRAINER_PLAYER)
{
- for (i = 0; i < 3; i++)
+ for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
{
- for (j = 0; j < 6; j++)
+ // Add the EVs for this mon
+ for (j = 0; j < NUM_STATS; j++)
{
if (trainerId == TRAINER_FRONTIER_BRAIN)
allocatedArray[j] = GetFrontierBrainMonEvs(i, j);
else
- allocatedArray[j] = gSaveBlock2Ptr->frontier.field_EFC[i].evs[j];
+ allocatedArray[j] = gSaveBlock2Ptr->frontier.domePlayerPartyData[i].evs[j];
}
- allocatedArray[6] += allocatedArray[0];
- for (j = 0; j < 5; j++)
+
+ // HP doesnt have a nature modifier, so just add it here
+ allocatedArray[NUM_STATS] += allocatedArray[STAT_HP];
+
+ // Add the EVs with the nature modifier for this mon and and track number of negative natures
+ for (j = 0; j < NUM_EV_STATS; j++)
{
if (trainerId == TRAINER_FRONTIER_BRAIN)
nature = GetFrontierBrainMonNature(i);
else
- nature = gSaveBlock2Ptr->frontier.field_EFC[i].nature;
+ nature = gSaveBlock2Ptr->frontier.domePlayerPartyData[i].nature;
if (gNatureStatTable[nature][j] > 0)
{
- allocatedArray[j + 7] += (allocatedArray[j + 1] * 110) / 100;
+ allocatedArray[j + NUM_STATS + 1] += (allocatedArray[j + 1] * 110) / 100;
}
else if (gNatureStatTable[nature][j] < 0)
{
- allocatedArray[j + 7] += (allocatedArray[j + 1] * 90) / 100;
- allocatedArray[j + 13]++;
+ allocatedArray[j + NUM_STATS + 1] += (allocatedArray[j + 1] * 90) / 100;
+ allocatedArray[j + NUM_STATS + NUM_EV_STATS + 2]++;
}
else
{
- allocatedArray[j + 7] += allocatedArray[j + 1];
+ allocatedArray[j + NUM_STATS + 1] += allocatedArray[j + 1];
}
}
}
- for (j = 0, i = 0; i < 6; i++)
- j += allocatedArray[6 + i];
- for (i = 0; i < 6; i++)
- allocatedArray[i] = (allocatedArray[6 + i] * 100) / j;
+ for (j = 0, i = 0; i < NUM_STATS; i++)
+ j += allocatedArray[NUM_STATS + i];
+ for (i = 0; i < NUM_STATS; i++)
+ allocatedArray[i] = (allocatedArray[NUM_STATS + i] * 100) / j;
}
+ // Same as above but for regular trainers instead of the frontier brain or player
else
{
- for (i = 0; i < 3; i++)
+ for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
{
- int evBits = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]].evSpread;
+ int evBits = gFacilityTrainerMons[DOME_MONS[trainerTourneyId][i]].evSpread;
for (k = 0, j = 0; j < NUM_STATS; j++)
{
allocatedArray[j] = 0;
@@ -4814,7 +4733,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId)
evBits >>= 1;
}
k = MAX_TOTAL_EVS / k;
- evBits = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]].evSpread;
+ evBits = gFacilityTrainerMons[DOME_MONS[trainerTourneyId][i]].evSpread;
for (j = 0; j < NUM_STATS; j++)
{
if (evBits & 1)
@@ -4822,37 +4741,42 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId)
evBits >>= 1;
}
- allocatedArray[6] += allocatedArray[0];
- for (j = 0; j < 5; j++)
+ allocatedArray[NUM_STATS] += allocatedArray[STAT_HP];
+ for (j = 0; j < NUM_EV_STATS; j++)
{
- nature = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]].nature;
+ nature = gFacilityTrainerMons[DOME_MONS[trainerTourneyId][i]].nature;
if (gNatureStatTable[nature][j] > 0)
{
- allocatedArray[j + 7] += (allocatedArray[j + 1] * 110) / 100;
+ allocatedArray[j + NUM_STATS + 1] += (allocatedArray[j + 1] * 110) / 100;
}
else if (gNatureStatTable[nature][j] < 0)
{
- allocatedArray[j + 7] += (allocatedArray[j + 1] * 90) / 100;
- allocatedArray[j + 13]++;
+ allocatedArray[j + NUM_STATS + 1] += (allocatedArray[j + 1] * 90) / 100;
+ allocatedArray[j + NUM_STATS + NUM_EV_STATS + 2]++;
}
else
{
- allocatedArray[j + 7] += allocatedArray[j + 1];
+ allocatedArray[j + NUM_STATS + 1] += allocatedArray[j + 1];
}
}
}
- for (j = 0, i = 0; i < 6; i++)
- j += allocatedArray[i + 6];
- for (i = 0; i < 6; i++)
- allocatedArray[i] = (allocatedArray[6 + i] * 100) / j;
+ for (j = 0, i = 0; i < NUM_STATS; i++)
+ j += allocatedArray[i + NUM_STATS];
+ for (i = 0; i < NUM_STATS; i++)
+ allocatedArray[i] = (allocatedArray[NUM_STATS + i] * 100) / j;
}
- for (i = 0, j = 0, k = 0; k < 6; k++)
+ // Count the number of good/bad stats for the party
+ // i is the number of good stats, j is the number of bad stats
+ for (i = 0, j = 0, k = 0; k < NUM_STATS; k++)
{
+ // Any stat above 29 EVs is considered good
if (allocatedArray[k] > 29)
{
+ // If 2 good stats have been found already, choose which to use
if (i == 2)
{
+
if (allocatedArray[6] < allocatedArray[k])
{
if (allocatedArray[7] < allocatedArray[k])
@@ -4885,8 +4809,11 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId)
i++;
}
}
+
+ // Any stat with 0 EVs is considered bad
if (allocatedArray[k] == 0)
{
+ // If 2 bad stats have been found already, choose which to use
if (j == 2)
{
if (allocatedArray[k + 12] >= 2
@@ -4915,17 +4842,19 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId)
}
}
+ // Get the string ID to display which stats are good/bad
if (i == 2)
- i = gUnknown_0860D349[allocatedArray[6]] + (allocatedArray[7] - (allocatedArray[6] + 1));
+ i = sStatTextOffsets[allocatedArray[6]] + (allocatedArray[7] - (allocatedArray[6] + 1)) + DOME_TEXT_TWO_GOOD_STATS;
else if (i == 1)
- i = allocatedArray[6] + 15;
+ i = allocatedArray[6] + DOME_TEXT_ONE_GOOD_STAT;
else if (j == 2)
- i = gUnknown_0860D349[allocatedArray[8]] + (allocatedArray[9] - (allocatedArray[8] + 1)) + 21;
+ i = sStatTextOffsets[allocatedArray[8]] + (allocatedArray[9] - (allocatedArray[8] + 1)) + DOME_TEXT_TWO_BAD_STATS;
else if (j == 1)
- i = allocatedArray[8] + 36;
+ i = allocatedArray[8] + DOME_TEXT_ONE_BAD_STAT;
else
- i = 42;
+ i = DOME_TEXT_WELL_BALANCED;
+ // Print the stat text
textPrinter.currentChar = sBattleDomeOpponentStatsTexts[i];
textPrinter.y = 36;
textPrinter.currentY = 36;
@@ -4933,55 +4862,61 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId)
Free(allocatedArray);
}
-static int sub_8192F08(u8 arg0, u8 *arg1)
+static int BufferDomeWinString(u8 matchNum, u8 *tournamentIds)
{
int i;
u8 tournamentId;
- int retVal = 0;
+ int winStringId = 0;
int count = 0;
- for (i = gUnknown_0860D3C4[arg0][0]; i < gUnknown_0860D3C4[arg0][0] + gUnknown_0860D3C4[arg0][1]; i++)
+ // Get winners name
+ for (i = sCompetitorRangeByMatch[matchNum][0]; i < sCompetitorRangeByMatch[matchNum][0] + sCompetitorRangeByMatch[matchNum][1]; i++)
{
- tournamentId = gUnknown_0860D3B4[i];
- if (!gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].isEliminated)
+ tournamentId = sTourneyTreeTrainerIds2[i];
+ if (!DOME_TRAINERS[tournamentId].isEliminated)
{
- arg1[count] = tournamentId;
- if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId == TRAINER_PLAYER)
+ tournamentIds[count] = tournamentId;
+ if (DOME_TRAINERS[tournamentId].trainerId == TRAINER_PLAYER)
StringCopy(gStringVar1, gSaveBlock2Ptr->playerName);
- else if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId == TRAINER_FRONTIER_BRAIN)
+ else if (DOME_TRAINERS[tournamentId].trainerId == TRAINER_FRONTIER_BRAIN)
CopyDomeBrainTrainerName(gStringVar1);
else
- CopyDomeTrainerName(gStringVar1, gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId);
+ CopyDomeTrainerName(gStringVar1, DOME_TRAINERS[tournamentId].trainerId);
count++;
}
}
+ // Neither trainer has been eliminated, battle hasn't occurred yet
if (count == 2)
- return 0;
+ return DOME_TEXT_NO_WINNER_YET;
- for (i = gUnknown_0860D3C4[arg0][0]; i < gUnknown_0860D3C4[arg0][0] + gUnknown_0860D3C4[arg0][1]; i++)
+ for (i = sCompetitorRangeByMatch[matchNum][0]; i < sCompetitorRangeByMatch[matchNum][0] + sCompetitorRangeByMatch[matchNum][1]; i++)
{
- tournamentId = gUnknown_0860D3B4[i];
- if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].isEliminated
- && gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].eliminatedAt >= gUnknown_0860D3C4[arg0][2])
+ tournamentId = sTourneyTreeTrainerIds2[i];
+
+ if (DOME_TRAINERS[tournamentId].isEliminated
+ && DOME_TRAINERS[tournamentId].eliminatedAt >= sCompetitorRangeByMatch[matchNum][2])
{
- arg1[count] = tournamentId;
+ tournamentIds[count] = tournamentId;
count++;
- if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].eliminatedAt == gUnknown_0860D3C4[arg0][2])
+
+ if (DOME_TRAINERS[tournamentId].eliminatedAt == sCompetitorRangeByMatch[matchNum][2])
{
- StringCopy(gStringVar2, gMoveNames[gSaveBlock2Ptr->frontier.field_EC0[tournamentId]]);
- retVal = gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].unk3 * 2;
- if (gSaveBlock2Ptr->frontier.field_EC0[tournamentId] == 0 && gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].unk3 == 0)
- retVal = 4;
+ // Set initial winStringId offset
+ StringCopy(gStringVar2, gMoveNames[gSaveBlock2Ptr->frontier.domeWinningMoves[tournamentId]]);
+ winStringId = DOME_TRAINERS[tournamentId].forfeited * 2; // (DOME_TEXT_WON_USING_MOVE - 1) or (DOME_TEXT_WON_ON_FORFEIT - 1)
+
+ if (gSaveBlock2Ptr->frontier.domeWinningMoves[tournamentId] == MOVE_NONE && DOME_TRAINERS[tournamentId].forfeited == FALSE)
+ winStringId = DOME_TEXT_WON_NO_MOVES - 1;
}
else
{
- if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId == TRAINER_PLAYER)
+ if (DOME_TRAINERS[tournamentId].trainerId == TRAINER_PLAYER)
StringCopy(gStringVar1, gSaveBlock2Ptr->playerName);
- else if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId == TRAINER_FRONTIER_BRAIN)
+ else if (DOME_TRAINERS[tournamentId].trainerId == TRAINER_FRONTIER_BRAIN)
CopyDomeBrainTrainerName(gStringVar1);
else
- CopyDomeTrainerName(gStringVar1, gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId);
+ CopyDomeTrainerName(gStringVar1, DOME_TRAINERS[tournamentId].trainerId);
}
}
@@ -4989,10 +4924,10 @@ static int sub_8192F08(u8 arg0, u8 *arg1)
break;
}
- if (arg0 == 14)
- return retVal + 2;
+ if (matchNum == DOME_TOURNAMENT_MATCHES_COUNT - 1)
+ return winStringId + 2; // use DOME_TEXT_CHAMP_*
else
- return retVal + 1;
+ return winStringId + 1; // use DOME_TEXT_WON_*
}
static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo)
@@ -5008,137 +4943,137 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo)
int x = 0, y = 0;
u8 palSlot = 0;
- if (flags & 1)
- arrId = 8, windowId = 9, palSlot = 2;
- if (flags & 2)
+ if (flags & CARD_ALTERNATE_SLOT)
+ arrId = 2 * (FRONTIER_PARTY_SIZE + 1), windowId = 9, palSlot = 2;
+ if (flags & MOVE_CARD_RIGHT)
x = 256;
- if (flags & 4)
+ if (flags & MOVE_CARD_DOWN)
y = 160;
- if (flags & 8)
+ if (flags & MOVE_CARD_LEFT)
x = -256;
- if (flags & 0x10)
+ if (flags & MOVE_CARD_UP)
y = -160;
// Copy trainers information to handy arrays.
- winStringId = sub_8192F08(matchNo, sBattleDomeStruct->unk_11);
- for (i = 0; i < 2; i++)
+ winStringId = BufferDomeWinString(matchNo, sInfoCard->tournamentIds);
+ for (i = 0; i < NUM_INFOCARD_TRAINERS; i++)
{
- tournamentIds[i] = sBattleDomeStruct->unk_11[i];
- trainerIds[i] = gSaveBlock2Ptr->frontier.domeTrainers[tournamentIds[i]].trainerId;
- if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentIds[i]].eliminatedAt <= gUnknown_0860D3C4[matchNo][2]
- && gSaveBlock2Ptr->frontier.domeTrainers[tournamentIds[i]].isEliminated)
+ tournamentIds[i] = sInfoCard->tournamentIds[i];
+ trainerIds[i] = DOME_TRAINERS[tournamentIds[i]].trainerId;
+ if (DOME_TRAINERS[tournamentIds[i]].eliminatedAt <= sCompetitorRangeByMatch[matchNo][2]
+ && DOME_TRAINERS[tournamentIds[i]].isEliminated)
lost[i] = TRUE;
else
lost[i] = FALSE;
}
- // Draw first trainer sprite.
+ // Draw left trainer sprite.
if (trainerIds[0] == TRAINER_PLAYER)
- sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender), TRUE, x + 48, y + 88, palSlot + 12, 0xFFFF);
+ sInfoCard->spriteIds[arrId] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender), TRUE, x + 48, y + 88, palSlot + 12, 0xFFFF);
else if (trainerIds[0] == TRAINER_FRONTIER_BRAIN)
- sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(GetDomeBrainTrainerPicId(), TRUE, x + 48, y + 88, palSlot + 12, 0xFFFF);
+ sInfoCard->spriteIds[arrId] = CreateTrainerPicSprite(GetDomeBrainTrainerPicId(), TRUE, x + 48, y + 88, palSlot + 12, 0xFFFF);
else
- sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerIds[0]), TRUE, x + 48, y + 88, palSlot + 12, 0xFFFF);
+ sInfoCard->spriteIds[arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerIds[0]), TRUE, x + 48, y + 88, palSlot + 12, 0xFFFF);
- if (flags & 0x1E)
- gSprites[sBattleDomeStruct->arr[arrId]].invisible = TRUE;
+ if (flags & MOVE_CARD)
+ gSprites[sInfoCard->spriteIds[arrId]].invisible = TRUE;
if (lost[0])
- gSprites[sBattleDomeStruct->arr[arrId]].oam.paletteNum = 3;
+ gSprites[sInfoCard->spriteIds[arrId]].oam.paletteNum = 3;
- // Draw second trainer sprite.
+ // Draw right trainer sprite.
if (trainerIds[1] == TRAINER_PLAYER)
- sBattleDomeStruct->arr[1 + arrId] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender), TRUE, x + 192, y + 88, palSlot + 13, 0xFFFF);
+ sInfoCard->spriteIds[1 + arrId] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender), TRUE, x + 192, y + 88, palSlot + 13, 0xFFFF);
else if (trainerIds[1] == TRAINER_FRONTIER_BRAIN)
- sBattleDomeStruct->arr[1 + arrId] = CreateTrainerPicSprite(GetDomeBrainTrainerPicId(), TRUE, x + 192, y + 88, palSlot + 13, 0xFFFF);
+ sInfoCard->spriteIds[1 + arrId] = CreateTrainerPicSprite(GetDomeBrainTrainerPicId(), TRUE, x + 192, y + 88, palSlot + 13, 0xFFFF);
else
- sBattleDomeStruct->arr[1 + arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerIds[1]), TRUE, x + 192, y + 88, palSlot + 13, 0xFFFF);
+ sInfoCard->spriteIds[1 + arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerIds[1]), TRUE, x + 192, y + 88, palSlot + 13, 0xFFFF);
- if (flags & 0x1E)
- gSprites[sBattleDomeStruct->arr[1 + arrId]].invisible = TRUE;
+ if (flags & MOVE_CARD)
+ gSprites[sInfoCard->spriteIds[1 + arrId]].invisible = TRUE;
if (lost[1])
- gSprites[sBattleDomeStruct->arr[1 + arrId]].oam.paletteNum = 3;
+ gSprites[sInfoCard->spriteIds[1 + arrId]].oam.paletteNum = 3;
- // Draw first trainer's pokemon icons.
- for (i = 0; i < 3; i++)
+ // Draw left trainer's pokemon icons.
+ for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
{
if (trainerIds[0] == TRAINER_PLAYER)
{
- sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonIds[tournamentIds[0]][i],
+ sInfoCard->spriteIds[2 + i + arrId] = CreateMonIcon(DOME_MONS[tournamentIds[0]][i],
SpriteCb_MonIcon,
- x | sFirstTrainerMonX[i],
- y + sFirstTrainerMonY[i],
+ x | sLeftTrainerMonX[i],
+ y + sLeftTrainerMonY[i],
0, 0, TRUE);
- gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0;
+ gSprites[sInfoCard->spriteIds[2 + i + arrId]].oam.priority = 0;
}
else if (trainerIds[0] == TRAINER_FRONTIER_BRAIN)
{
- sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonIds[tournamentIds[0]][i],
+ sInfoCard->spriteIds[2 + i + arrId] = CreateMonIcon(DOME_MONS[tournamentIds[0]][i],
SpriteCb_MonIcon,
- x | sFirstTrainerMonX[i],
- y + sFirstTrainerMonY[i],
+ x | sLeftTrainerMonX[i],
+ y + sLeftTrainerMonY[i],
0, 0, TRUE);
- gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0;
+ gSprites[sInfoCard->spriteIds[2 + i + arrId]].oam.priority = 0;
}
else
{
- sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentIds[0]][i]].species,
+ sInfoCard->spriteIds[2 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[DOME_MONS[tournamentIds[0]][i]].species,
SpriteCb_MonIcon,
- x | sFirstTrainerMonX[i],
- y + sFirstTrainerMonY[i],
+ x | sLeftTrainerMonX[i],
+ y + sLeftTrainerMonY[i],
0, 0, TRUE);
- gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0;
+ gSprites[sInfoCard->spriteIds[2 + i + arrId]].oam.priority = 0;
}
- if (flags & 0x1E)
- gSprites[sBattleDomeStruct->arr[2 + i + arrId]].invisible = TRUE;
+ if (flags & MOVE_CARD)
+ gSprites[sInfoCard->spriteIds[2 + i + arrId]].invisible = TRUE;
if (lost[0])
{
- gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.paletteNum = 3;
- gSprites[sBattleDomeStruct->arr[2 + i + arrId]].sMonIconStill = TRUE;
+ gSprites[sInfoCard->spriteIds[2 + i + arrId]].oam.paletteNum = 3;
+ gSprites[sInfoCard->spriteIds[2 + i + arrId]].sMonIconStill = TRUE;
}
}
- // Draw second trainer's pokemon icons.
- for (i = 0; i < 3; i++)
+ // Draw right trainer's pokemon icons.
+ for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
{
if (trainerIds[1] == TRAINER_PLAYER)
{
- sBattleDomeStruct->arr[5 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonIds[tournamentIds[1]][i],
+ sInfoCard->spriteIds[5 + i + arrId] = CreateMonIcon(DOME_MONS[tournamentIds[1]][i],
SpriteCb_MonIcon,
- x | sSecondTrainerMonX[i],
- y + sSecondTrainerMonY[i],
+ x | sRightTrainerMonX[i],
+ y + sRightTrainerMonY[i],
0, 0, TRUE);
- gSprites[sBattleDomeStruct->arr[5 + i + arrId]].oam.priority = 0;
+ gSprites[sInfoCard->spriteIds[5 + i + arrId]].oam.priority = 0;
}
else if (trainerIds[1] == TRAINER_FRONTIER_BRAIN)
{
- sBattleDomeStruct->arr[5 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonIds[tournamentIds[1]][i],
+ sInfoCard->spriteIds[5 + i + arrId] = CreateMonIcon(DOME_MONS[tournamentIds[1]][i],
SpriteCb_MonIcon,
- x | sSecondTrainerMonX[i],
- y + sSecondTrainerMonY[i],
+ x | sRightTrainerMonX[i],
+ y + sRightTrainerMonY[i],
0, 0, TRUE);
- gSprites[sBattleDomeStruct->arr[5 + i + arrId]].oam.priority = 0;
+ gSprites[sInfoCard->spriteIds[5 + i + arrId]].oam.priority = 0;
}
else
{
- sBattleDomeStruct->arr[5 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentIds[1]][i]].species,
+ sInfoCard->spriteIds[5 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[DOME_MONS[tournamentIds[1]][i]].species,
SpriteCb_MonIcon,
- x | sSecondTrainerMonX[i],
- y + sSecondTrainerMonY[i],
+ x | sRightTrainerMonX[i],
+ y + sRightTrainerMonY[i],
0, 0, TRUE);
- gSprites[sBattleDomeStruct->arr[5 + i + arrId]].oam.priority = 0;
+ gSprites[sInfoCard->spriteIds[5 + i + arrId]].oam.priority = 0;
}
- if (flags & 0x1E)
- gSprites[sBattleDomeStruct->arr[5 + i + arrId]].invisible = TRUE;
+ if (flags & MOVE_CARD)
+ gSprites[sInfoCard->spriteIds[5 + i + arrId]].invisible = TRUE;
if (lost[1])
{
- gSprites[sBattleDomeStruct->arr[5 + i + arrId]].oam.paletteNum = 3;
- gSprites[sBattleDomeStruct->arr[5 + i + arrId]].sMonIconStill = TRUE;
+ gSprites[sInfoCard->spriteIds[5 + i + arrId]].oam.paletteNum = 3;
+ gSprites[sInfoCard->spriteIds[5 + i + arrId]].sMonIconStill = TRUE;
}
}
- // Print the win string (or 'Let the battle begin!' one).
+ // Print the win string (or 'Let the battle begin!').
textPrinter.x = 0;
textPrinter.y = 2;
textPrinter.currentX = textPrinter.x;
@@ -5146,9 +5081,9 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo)
textPrinter.letterSpacing = 0;
textPrinter.lineSpacing = 0;
textPrinter.unk = 0;
- textPrinter.fgColor = 14;
- textPrinter.bgColor = 0;
- textPrinter.shadowColor = 13;
+ textPrinter.fgColor = TEXT_DYNAMIC_COLOR_5;
+ textPrinter.bgColor = TEXT_COLOR_TRANSPARENT;
+ textPrinter.shadowColor = TEXT_DYNAMIC_COLOR_4;
StringExpandPlaceholders(gStringVar4, sBattleDomeWinTexts[winStringId]);
textPrinter.currentChar = gStringVar4;
textPrinter.windowId = windowId + 8;
@@ -5159,7 +5094,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo)
textPrinter.currentY = textPrinter.y = 0;
AddTextPrinter(&textPrinter, 0, NULL);
- // Print first trainer's name.
+ // Print left trainer's name.
if (trainerIds[0] == TRAINER_PLAYER)
StringCopy(gStringVar1, gSaveBlock2Ptr->playerName);
else if (trainerIds[0] == TRAINER_FRONTIER_BRAIN)
@@ -5177,7 +5112,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo)
CopyWindowToVram(windowId + 6, 3);
AddTextPrinter(&textPrinter, 0, NULL);
- // Print second trainer's name.
+ // Print right trainer's name.
if (trainerIds[1] == TRAINER_PLAYER)
StringCopy(gStringVar1, gSaveBlock2Ptr->playerName);
else if (trainerIds[1] == TRAINER_FRONTIER_BRAIN)
@@ -5207,103 +5142,112 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo)
static void ShowDomeTourneyTree(void)
{
u8 taskId = CreateTask(Task_ShowTourneyTree, 0);
- gTasks[taskId].data[0] = 0;
- gTasks[taskId].data[1] = 0;
+ gTasks[taskId].tState = 0;
+ gTasks[taskId].tNotInteractive = FALSE;
gTasks[taskId].data[2] = 2;
- gTasks[taskId].data[4] = 0;
- SetMainCallback2(CB2_BattleDome);
+ gTasks[taskId].tIsPrevTourneyTree = FALSE;
+ SetMainCallback2(CB2_TourneyTree);
}
-static void ShowPreviousDomeResultsTourneyTree(void)
+// To show the results of the last tourney on the computer in the lobby
+static void ShowPreviousDomeTourneyTree(void)
{
u8 taskId;
- InitDomeFacilityTrainersAndMons();
- gSaveBlock2Ptr->frontier.lvlMode = gSaveBlock2Ptr->frontier.field_D0A - 1;
- gSaveBlock2Ptr->frontier.curChallengeBattleNum = 3;
+ SetFacilityTrainerAndMonPtrs();
+ gSaveBlock2Ptr->frontier.lvlMode = gSaveBlock2Ptr->frontier.domeLvlMode - 1;
+ gSaveBlock2Ptr->frontier.curChallengeBattleNum = DOME_FINAL;
taskId = CreateTask(Task_ShowTourneyTree, 0);
- gTasks[taskId].data[0] = 0;
- gTasks[taskId].data[1] = 0;
+ gTasks[taskId].tState = 0;
+ gTasks[taskId].tNotInteractive = FALSE;
gTasks[taskId].data[2] = 2;
- gTasks[taskId].data[4] = 1;
- SetMainCallback2(CB2_BattleDome);
+ gTasks[taskId].tIsPrevTourneyTree = TRUE;
+ SetMainCallback2(CB2_TourneyTree);
}
-static void sub_819395C(u8 taskId)
+// Task states for Task_HandleTourneyTreeInput
+#define STATE_FADE_IN 0
+#define STATE_WAIT_FADE 1
+#define STATE_GET_INPUT 2
+#define STATE_SHOW_INFOCARD_TRAINER 3
+#define STATE_SHOW_INFOCARD_MATCH 5
+#define STATE_CLOSE_TOURNEY_TREE 7
+
+static void Task_HandleTourneyTreeInput(u8 taskId)
{
u8 newTaskId = 0;
int spriteId = gTasks[taskId].data[1];
- switch (gTasks[taskId].data[0])
+ switch (gTasks[taskId].tState)
{
- case 0:
+ case STATE_FADE_IN:
if (!gPaletteFade.active)
{
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK);
- gTasks[taskId].data[0] = 1;
+ gTasks[taskId].tState = STATE_WAIT_FADE;
StartSpriteAnim(&gSprites[spriteId], 1);
}
break;
- case 1:
+ case STATE_WAIT_FADE:
if (!gPaletteFade.active)
- gTasks[taskId].data[0] = 2;
+ gTasks[taskId].tState = STATE_GET_INPUT;
break;
- case 2:
+ case STATE_GET_INPUT:
switch (UpdateTourneyTreeCursor(taskId))
{
- case 0:
+ case TOURNEY_TREE_SELECTED_CLOSE:
default:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK);
- gTasks[taskId].data[0] = 7;
+ gTasks[taskId].tState = STATE_CLOSE_TOURNEY_TREE;
break;
- case 1:
+ case TOURNEY_TREE_NO_SELECTION:
break;
- case 2:
+ case TOURNEY_TREE_SELECTED_TRAINER:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK);
- gTasks[taskId].data[0] = 3;
+ gTasks[taskId].tState = STATE_SHOW_INFOCARD_TRAINER;
break;
- case 3:
+ case TOURNEY_TREE_SELECTED_MATCH:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK);
- gTasks[taskId].data[0] = 5;
+ gTasks[taskId].tState = STATE_SHOW_INFOCARD_MATCH;
break;
}
break;
- case 3:
+ case STATE_SHOW_INFOCARD_TRAINER:
if (!gPaletteFade.active)
{
FreeAllWindowBuffers();
ScanlineEffect_Stop();
FREE_AND_SET_NULL(sTilemapBuffer);
- newTaskId = CreateTask(Task_ShowOpponentInfo, 0);
- gTasks[newTaskId].data[0] = 0;
- gTasks[newTaskId].data[1] = sTourneyTreeTrainerIds[spriteId];
- gTasks[newTaskId].data[2] = 1;
- gTasks[newTaskId].data[3] = taskId;
-
- gTasks[taskId].data[0] = 4;
- sBattleDomeStruct->unk_10 = 0;
+ newTaskId = CreateTask(Task_ShowTourneyInfoCard, 0);
+ gTasks[newTaskId].tState = 0;
+ gTasks[newTaskId].tTournamentId = sTourneyTreeTrainerIds[spriteId];
+ gTasks[newTaskId].tMode = INFOCARD_TRAINER;
+ gTasks[newTaskId].tPrevTaskId = taskId;
+
+ gTasks[taskId].tState = STATE_SHOW_INFOCARD_TRAINER + 1;
+ sInfoCard->pos = 0;
}
break;
- case 4:
+ case STATE_SHOW_INFOCARD_TRAINER + 1:
break;
- case 5:
+ case STATE_SHOW_INFOCARD_MATCH:
if (!gPaletteFade.active)
{
FreeAllWindowBuffers();
ScanlineEffect_Stop();
FREE_AND_SET_NULL(sTilemapBuffer);
- newTaskId = CreateTask(Task_ShowOpponentInfo, 0);
- gTasks[newTaskId].data[0] = 0;
- gTasks[newTaskId].data[1] = spriteId - 16;
- gTasks[newTaskId].data[2] = 2;
- gTasks[newTaskId].data[3] = taskId;
+ newTaskId = CreateTask(Task_ShowTourneyInfoCard, 0);
+ gTasks[newTaskId].tState = 0;
+ gTasks[newTaskId].tTournamentId = spriteId - DOME_TOURNAMENT_TRAINERS_COUNT;
+ gTasks[newTaskId].tMode = INFOCARD_MATCH;
+ gTasks[newTaskId].tPrevTaskId = taskId;
- gTasks[taskId].data[0] = 6;
+ gTasks[taskId].tState = STATE_SHOW_INFOCARD_MATCH + 1;
}
break;
- case 6:
+ case STATE_SHOW_INFOCARD_MATCH + 1:
break;
- case 7:
+ case STATE_CLOSE_TOURNEY_TREE:
if (!gPaletteFade.active)
{
FreeAllWindowBuffers();
@@ -5317,157 +5261,188 @@ static void sub_819395C(u8 taskId)
}
}
+// undefine task states for Task_HandleTourneyTreeInput
+#undef STATE_FADE_IN
+#undef STATE_WAIT_FADE
+#undef STATE_GET_INPUT
+#undef STATE_SHOW_INFOCARD_TRAINER
+#undef STATE_SHOW_INFOCARD_MATCH
+#undef STATE_CLOSE_TOURNEY_TREE
+
+
+#define MOVE_DIR_UP 0
+#define MOVE_DIR_DOWN 1
+#define MOVE_DIR_LEFT 2
+#define MOVE_DIR_RIGHT 3
+#define MOVE_DIR_NONE 4
+
+// Move the tourney tree cursor
+// The 'cursor' is actually just which button sprite is currently doing the 'selected' animation
static u8 UpdateTourneyTreeCursor(u8 taskId)
{
- u8 retVal = 1;
- int direction = 4;
+ u8 selection = TOURNEY_TREE_NO_SELECTION;
+ int direction = MOVE_DIR_NONE;
int tourneyTreeCursorSpriteId = gTasks[taskId].data[1];
int roundId = gSaveBlock2Ptr->frontier.curChallengeBattleNum;
- if (gMain.newKeys == B_BUTTON || (gMain.newKeys & A_BUTTON && tourneyTreeCursorSpriteId == 31))
+ if (gMain.newKeys == B_BUTTON || (gMain.newKeys & A_BUTTON && tourneyTreeCursorSpriteId == TOURNEY_TREE_CLOSE_BUTTON))
{
PlaySE(SE_SELECT);
- retVal = 0;
+ selection = TOURNEY_TREE_SELECTED_CLOSE;
}
else if (gMain.newKeys & A_BUTTON)
{
- if (tourneyTreeCursorSpriteId < 16)
+ if (tourneyTreeCursorSpriteId < DOME_TOURNAMENT_TRAINERS_COUNT)
{
PlaySE(SE_SELECT);
- retVal = 2;
+ selection = TOURNEY_TREE_SELECTED_TRAINER;
}
else
{
PlaySE(SE_SELECT);
- retVal = 3;
+ selection = TOURNEY_TREE_SELECTED_MATCH;
}
}
else
{
if (gMain.newKeys == DPAD_UP && sTourneyTreeCursorMovementMap[tourneyTreeCursorSpriteId][roundId][0] != 0xFF)
- direction = 0;
+ direction = MOVE_DIR_UP;
else if (gMain.newKeys == DPAD_DOWN && sTourneyTreeCursorMovementMap[tourneyTreeCursorSpriteId][roundId][1] != 0xFF)
- direction = 1;
+ direction = MOVE_DIR_DOWN;
else if (gMain.newKeys == DPAD_LEFT && sTourneyTreeCursorMovementMap[tourneyTreeCursorSpriteId][roundId][2] != 0xFF)
- direction = 2;
+ direction = MOVE_DIR_LEFT;
else if (gMain.newKeys == DPAD_RIGHT && sTourneyTreeCursorMovementMap[tourneyTreeCursorSpriteId][roundId][3] != 0xFF)
- direction = 3;
+ direction = MOVE_DIR_RIGHT;
}
- if (direction != 4)
+ if (direction != MOVE_DIR_NONE)
{
PlaySE(SE_SELECT);
- StartSpriteAnim(&gSprites[tourneyTreeCursorSpriteId], 0);
+ StartSpriteAnim(&gSprites[tourneyTreeCursorSpriteId], 0); // Do unselected sprite anim
tourneyTreeCursorSpriteId = sTourneyTreeCursorMovementMap[tourneyTreeCursorSpriteId][roundId][direction];
- StartSpriteAnim(&gSprites[tourneyTreeCursorSpriteId], 1);
+ StartSpriteAnim(&gSprites[tourneyTreeCursorSpriteId], 1); // Do selected sprite anim
gTasks[taskId].data[1] = tourneyTreeCursorSpriteId;
}
- return retVal;
+ return selection;
}
+#undef MOVE_DIR_UP
+#undef MOVE_DIR_DOWN
+#undef MOVE_DIR_LEFT
+#undef MOVE_DIR_RIGHT
+#undef MOVE_DIR_NONE
+
+// Shows the results of the just-completed round for the current tourney
static void ShowNonInteractiveDomeTourneyTree(void)
{
u8 taskId = CreateTask(Task_ShowTourneyTree, 0);
- gTasks[taskId].data[0] = 0;
- gTasks[taskId].data[1] = 1;
+ gTasks[taskId].tState = 0;
+ gTasks[taskId].tNotInteractive = TRUE;
gTasks[taskId].data[2] = 2;
- gTasks[taskId].data[4] = 0;
- SetMainCallback2(CB2_BattleDome);
+ gTasks[taskId].tIsPrevTourneyTree = FALSE;
+ SetMainCallback2(CB2_TourneyTree);
}
static void ResolveDomeRoundWinners(void)
{
int i;
- if (gSpecialVar_0x8005 == 1)
+ if (gSpecialVar_0x8005 == DOME_PLAYER_WON_MATCH)
{
- gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(gTrainerBattleOpponent_A)].isEliminated = 1;
- gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(gTrainerBattleOpponent_A)].eliminatedAt = gSaveBlock2Ptr->frontier.curChallengeBattleNum;
- gSaveBlock2Ptr->frontier.field_EC0[TrainerIdToTournamentId(gTrainerBattleOpponent_A)] = gBattleResults.lastUsedMovePlayer;
+ DOME_TRAINERS[TrainerIdToTournamentId(gTrainerBattleOpponent_A)].isEliminated = TRUE;
+ DOME_TRAINERS[TrainerIdToTournamentId(gTrainerBattleOpponent_A)].eliminatedAt = gSaveBlock2Ptr->frontier.curChallengeBattleNum;
+ gSaveBlock2Ptr->frontier.domeWinningMoves[TrainerIdToTournamentId(gTrainerBattleOpponent_A)] = gBattleResults.lastUsedMovePlayer;
+
+ // If the player's match was the final one, no NPC vs NPC matches to decide
if (gSaveBlock2Ptr->frontier.curChallengeBattleNum < DOME_FINAL)
DecideRoundWinners(gSaveBlock2Ptr->frontier.curChallengeBattleNum);
}
- else
+ else // DOME_PLAYER_LOST_MATCH or DOME_PLAYER_RETIRED
{
- gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(TRAINER_PLAYER)].isEliminated = 1;
- gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(TRAINER_PLAYER)].eliminatedAt = gSaveBlock2Ptr->frontier.curChallengeBattleNum;
- gSaveBlock2Ptr->frontier.field_EC0[TrainerIdToTournamentId(TRAINER_PLAYER)] = gBattleResults.lastUsedMoveOpponent;
- if (gBattleOutcome == B_OUTCOME_FORFEITED || gSpecialVar_0x8005 == 9)
- gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(TRAINER_PLAYER)].unk3 = 1;
+ DOME_TRAINERS[TrainerIdToTournamentId(TRAINER_PLAYER)].isEliminated = TRUE;
+ DOME_TRAINERS[TrainerIdToTournamentId(TRAINER_PLAYER)].eliminatedAt = gSaveBlock2Ptr->frontier.curChallengeBattleNum;
+ gSaveBlock2Ptr->frontier.domeWinningMoves[TrainerIdToTournamentId(TRAINER_PLAYER)] = gBattleResults.lastUsedMoveOpponent;
+
+ if (gBattleOutcome == B_OUTCOME_FORFEITED || gSpecialVar_0x8005 == DOME_PLAYER_RETIRED)
+ DOME_TRAINERS[TrainerIdToTournamentId(TRAINER_PLAYER)].forfeited = TRUE;
+
+ // Player lost, decide remaining outcome of tournament
for (i = gSaveBlock2Ptr->frontier.curChallengeBattleNum; i < DOME_ROUNDS_COUNT; i++)
DecideRoundWinners(i);
}
}
+// Decides the winning move of an NPC vs NPC match
static u16 GetWinningMove(int winnerTournamentId, int loserTournamentId, u8 roundId)
{
int i, j, k;
- int moveScores[4 * 3];
- u16 moveIds[4 * 3];
+ int moveScores[MAX_MON_MOVES * FRONTIER_PARTY_SIZE];
+ u16 moveIds[MAX_MON_MOVES * FRONTIER_PARTY_SIZE];
u16 bestScore = 0;
u16 bestId = 0;
int movePower = 0;
SetFacilityPtrsGetLevel();
// Calc move points of all 4 moves for all 3 pokemon hitting all 3 target mons.
- for (i = 0; i < 3; i++)
+ for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
{
for (j = 0; j < MAX_MON_MOVES; j++)
{
- // TODO: Clean this up, looks like a different data structure
- moveScores[i * 4 + j] = 0;
- if (gSaveBlock2Ptr->frontier.domeTrainers[winnerTournamentId].trainerId == TRAINER_FRONTIER_BRAIN)
- moveIds[i * 4 + j] = GetFrontierBrainMonMove(i, j);
+ // TODO: Clean this up, looks like a different data structure (2D array)
+ moveScores[i * MAX_MON_MOVES + j] = 0;
+ if (DOME_TRAINERS[winnerTournamentId].trainerId == TRAINER_FRONTIER_BRAIN)
+ moveIds[i * MAX_MON_MOVES + j] = GetFrontierBrainMonMove(i, j);
else
- moveIds[i * 4 + j] = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[winnerTournamentId][i]].moves[j];
+ moveIds[i * MAX_MON_MOVES + j] = gFacilityTrainerMons[DOME_MONS[winnerTournamentId][i]].moves[j];
- movePower = gBattleMoves[moveIds[i * 4 + j]].power;
+ movePower = gBattleMoves[moveIds[i * MAX_MON_MOVES + j]].power;
if (movePower == 0)
movePower = 40;
else if (movePower == 1)
movePower = 60;
- else if (moveIds[i * 4 + j] == MOVE_SELF_DESTRUCT || moveIds[i * 4 + j] == MOVE_EXPLOSION)
+ else if (moveIds[i * MAX_MON_MOVES + j] == MOVE_SELF_DESTRUCT
+ || moveIds[i * MAX_MON_MOVES + j] == MOVE_EXPLOSION)
movePower /= 2;
- for (k = 0; k < 3; k++)
+ for (k = 0; k < FRONTIER_PARTY_SIZE; k++)
{
u32 var = 0;
- u32 targetSpecies = 0;
- u32 targetAbility = 0;
+ u16 targetSpecies = SPECIES_NONE;
+ u16 targetAbility = ABILITY_NONE;
do
{
var = Random32();
- } while (gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[loserTournamentId][k]].nature != GetNatureFromPersonality(var));
+ } while (gFacilityTrainerMons[DOME_MONS[loserTournamentId][k]].nature != GetNatureFromPersonality(var));
- targetSpecies = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[loserTournamentId][k]].species;
+ targetSpecies = gFacilityTrainerMons[DOME_MONS[loserTournamentId][k]].species;
if (var & 1)
targetAbility = gBaseStats[targetSpecies].abilities[1];
else
targetAbility = gBaseStats[targetSpecies].abilities[0];
- var = AI_TypeCalc(moveIds[i * 4 + j], targetSpecies, targetAbility);
+ var = AI_TypeCalc(moveIds[i * MAX_MON_MOVES + j], targetSpecies, targetAbility);
if (var & MOVE_RESULT_NOT_VERY_EFFECTIVE && var & MOVE_RESULT_SUPER_EFFECTIVE)
- moveScores[i * 4 + j] += movePower;
+ moveScores[i * MAX_MON_MOVES + j] += movePower;
else if (var & MOVE_RESULT_NO_EFFECT)
- moveScores[i * 4 + j] += 0;
+ moveScores[i * MAX_MON_MOVES + j] += 0;
else if (var & MOVE_RESULT_SUPER_EFFECTIVE)
- moveScores[i * 4 + j] += movePower * 2;
+ moveScores[i * MAX_MON_MOVES + j] += movePower * 2;
else if (var & MOVE_RESULT_NOT_VERY_EFFECTIVE)
- moveScores[i * 4 + j] += movePower / 2;
+ moveScores[i * MAX_MON_MOVES + j] += movePower / 2;
else
- moveScores[i * 4 + j] += movePower;
+ moveScores[i * MAX_MON_MOVES + j] += movePower;
}
- if (bestScore < moveScores[i * 4 + j])
+ if (bestScore < moveScores[i * MAX_MON_MOVES + j])
{
- bestId = i * 4 + j;
- bestScore = moveScores[i * 4 + j];
+ bestId = i * MAX_MON_MOVES + j;
+ bestScore = moveScores[i * MAX_MON_MOVES + j];
}
- else if (bestScore == moveScores[i * 4 + j])
+ else if (bestScore == moveScores[i * MAX_MON_MOVES + j])
{
- if (moveIds[bestId] < moveIds[i * 4 + j]) // Why not use (Random() & 1) instead of promoting moves with a higher id?
- bestId = i * 4 + j;
+ if (moveIds[bestId] < moveIds[i * MAX_MON_MOVES + j]) // Why not use (Random() & 1) instead of promoting moves with a higher id?
+ bestId = i * MAX_MON_MOVES + j;
}
}
}
@@ -5476,7 +5451,7 @@ static u16 GetWinningMove(int winnerTournamentId, int loserTournamentId, u8 roun
goto LABEL;
while (j != 0)
{
- for (j = 0, k = 0; k < MAX_MON_MOVES * 3; k++)
+ for (j = 0, k = 0; k < MAX_MON_MOVES * FRONTIER_PARTY_SIZE; k++)
{
if (bestScore < moveScores[k])
{
@@ -5494,7 +5469,7 @@ static u16 GetWinningMove(int winnerTournamentId, int loserTournamentId, u8 roun
{
for (i = 0; i < roundId - 1; i++)
{
- if (gSaveBlock2Ptr->frontier.field_EC0[sub_81953E8(winnerTournamentId, i)] == moveIds[j])
+ if (gSaveBlock2Ptr->frontier.domeWinningMoves[sub_81953E8(winnerTournamentId, i)] == moveIds[j])
break;
}
if (i == roundId - 1)
@@ -5503,7 +5478,7 @@ static u16 GetWinningMove(int winnerTournamentId, int loserTournamentId, u8 roun
moveScores[j] = 0;
bestScore = 0;
j = 0;
- for (k = 0; k < MAX_MON_MOVES * 3; k++)
+ for (k = 0; k < MAX_MON_MOVES * FRONTIER_PARTY_SIZE; k++)
j += moveScores[k];
}
}
@@ -5518,10 +5493,10 @@ static void Task_ShowTourneyTree(u8 taskId)
{
int i;
struct TextPrinterTemplate textPrinter;
- int r10 = gTasks[taskId].data[1];
+ int notInteractive = gTasks[taskId].tNotInteractive;
int r4 = gTasks[taskId].data[2];
- switch (gTasks[taskId].data[0])
+ switch (gTasks[taskId].tState)
{
case 0:
SetHBlankCallback(NULL);
@@ -5529,8 +5504,8 @@ static void Task_ShowTourneyTree(u8 taskId)
EnableInterrupts(INTR_FLAG_HBLANK | INTR_FLAG_VBLANK);
CpuFill32(0, (void *)VRAM, VRAM_SIZE);
ResetBgsAndClearDma3BusyFlags(0);
- InitBgsFromTemplates(0, gUnknown_0860CE74, ARRAY_COUNT(gUnknown_0860CE74));
- InitWindows(gUnknown_0860CE94);
+ InitBgsFromTemplates(0, sTourneyTreeBgTemplates, ARRAY_COUNT(sTourneyTreeBgTemplates));
+ InitWindows(sTourneyTreeWindowTemplates);
DeactivateAllTextPrinters();
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
@@ -5540,7 +5515,7 @@ static void Task_ShowTourneyTree(u8 taskId)
ChangeBgY(2, 0, 0);
ChangeBgX(3, 0, 0);
ChangeBgY(3, 0xB00, 0);
- gTasks[taskId].data[0]++;
+ gTasks[taskId].tState++;
break;
case 1:
SetGpuReg(REG_OFFSET_BLDCNT, 0);
@@ -5552,45 +5527,46 @@ static void Task_ShowTourneyTree(u8 taskId)
SetGpuReg(REG_OFFSET_WIN1H, 0x9098);
SetGpuReg(REG_OFFSET_WIN1V, 0x9F);
SetGpuReg(REG_OFFSET_WININ, 0);
- SetGpuReg(REG_OFFSET_WINOUT, 0x3F);
+ SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR);
ResetPaletteFade();
ResetSpriteData();
FreeAllSpritePalettes();
- gTasks[taskId].data[0]++;
+ gTasks[taskId].tState++;
break;
case 2:
sTilemapBuffer = AllocZeroed(0x800);
- LZDecompressWram(gUnknown_08D83900, sTilemapBuffer);
+ LZDecompressWram(gDomeTourneyLineMask_Tilemap, sTilemapBuffer);
SetBgTilemapBuffer(1, sTilemapBuffer);
CopyBgTilemapBufferToVram(1);
- DecompressAndLoadBgGfxUsingHeap(1, gUnknown_08D82F10, 0x2000, 0, 0);
- DecompressAndLoadBgGfxUsingHeap(2, gUnknown_08D834FC, 0x2000, 0, 0);
- DecompressAndLoadBgGfxUsingHeap(2, gUnknown_08D83B2C, 0x2000, 0, 1);
- DecompressAndLoadBgGfxUsingHeap(3, gUnknown_08D83C3C, 0x2000, 0, 1);
- LoadCompressedPalette(gUnknown_08D85358, 0, 0x200);
- LoadCompressedPalette(gUnknown_08D85444, 0x100, 0x200);
+ DecompressAndLoadBgGfxUsingHeap(1, gDomeTourneyBg_Gfx, 0x2000, 0, 0);
+ DecompressAndLoadBgGfxUsingHeap(2, gDomeTourneyLine_Gfx, 0x2000, 0, 0);
+ DecompressAndLoadBgGfxUsingHeap(2, gDomeTourneyLineDown_Tilemap, 0x2000, 0, 1);
+ DecompressAndLoadBgGfxUsingHeap(3, gDomeTourneyLineUp_Tilemap, 0x2000, 0, 1);
+ LoadCompressedPalette(gDomeTourneyTree_Pal, 0, 0x200);
+ LoadCompressedPalette(gDomeTourneyTreeButtons_Pal, 0x100, 0x200);
LoadCompressedPalette(gBattleWindowTextPalette, 0xF0, 0x20);
CpuFill32(0, gPlttBufferFaded, 0x400);
ShowBg(0);
ShowBg(1);
ShowBg(2);
ShowBg(3);
- gTasks[taskId].data[0]++;
+ gTasks[taskId].tState++;
break;
case 3:
- LoadCompressedSpriteSheet(sDomeOptionsSpriteSheet);
- if (r10 == 0)
+ LoadCompressedSpriteSheet(sTourneyTreeButtonsSpriteSheet);
+ if (notInteractive == FALSE)
{
- for (i = 0; i < (unsigned) 31; i++)
- CreateSprite(&gUnknown_0860CFA8, gUnknown_0860D411[i][0], gUnknown_0860D411[i][1], 0);
- if (gTasks[taskId].data[4])
- CreateSprite(&gUnknown_0860D008, 218, 12, 0);
+ for (i = 0; i < ARRAY_COUNT(sTourneyTreePokeballCoords); i++)
+ CreateSprite(&sTourneyTreePokeballSpriteTemplate, sTourneyTreePokeballCoords[i][0], sTourneyTreePokeballCoords[i][1], 0);
+
+ if (gTasks[taskId].tIsPrevTourneyTree)
+ CreateSprite(&sExitButtonSpriteTemplate, 218, 12, 0);
else
- CreateSprite(&gUnknown_0860CFD8, 218, 12, 0);
+ CreateSprite(&sCancelButtonSpriteTemplate, 218, 12, 0);
}
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON | DISPCNT_WIN1_ON | DISPCNT_OBJ_1D_MAP);
- gTasks[taskId].data[0]++;
+ gTasks[taskId].tState++;
break;
case 4:
textPrinter.fontId = 2;
@@ -5603,94 +5579,94 @@ static void Task_ShowTourneyTree(u8 taskId)
textPrinter.currentX = GetStringCenterAlignXOffsetWithLetterSpacing(textPrinter.fontId, textPrinter.currentChar, 0x70, textPrinter.letterSpacing);
textPrinter.currentY = 1;
textPrinter.unk = 0;
- textPrinter.fgColor = 14;
- textPrinter.bgColor = 0;
- textPrinter.shadowColor = 13;
+ textPrinter.fgColor = TEXT_DYNAMIC_COLOR_5;
+ textPrinter.bgColor = TEXT_COLOR_TRANSPARENT;
+ textPrinter.shadowColor = TEXT_DYNAMIC_COLOR_4;
AddTextPrinter(&textPrinter, 0, NULL);
for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
{
int roundId, var2;
- CopyDomeTrainerName(gDisplayedStringBattle, gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId);
- if (r10 == 1)
+ CopyDomeTrainerName(gDisplayedStringBattle, DOME_TRAINERS[i].trainerId);
+ if (notInteractive == TRUE)
{
- if (gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated)
+ if (DOME_TRAINERS[i].isEliminated)
{
- if (gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt != 0)
+ if (DOME_TRAINERS[i].eliminatedAt != DOME_ROUND1)
{
- var2 = gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt - 1;
- sub_81948EC(i, var2);
+ var2 = DOME_TRAINERS[i].eliminatedAt - 1;
+ DrawTourneyAdvancementLine(i, var2);
}
}
else if (gSaveBlock2Ptr->frontier.curChallengeBattleNum != DOME_ROUND2)
{
- sub_81948EC(i, gSaveBlock2Ptr->frontier.curChallengeBattleNum - 2);
+ DrawTourneyAdvancementLine(i, gSaveBlock2Ptr->frontier.curChallengeBattleNum - 2);
}
}
- else if (r10 == 0)
+ else if (notInteractive == FALSE)
{
- if (gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated)
+ if (DOME_TRAINERS[i].isEliminated)
{
- if (gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt != 0)
+ if (DOME_TRAINERS[i].eliminatedAt != DOME_ROUND1)
{
- var2 = gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt - 1;
- sub_81948EC(i, var2);
+ var2 = DOME_TRAINERS[i].eliminatedAt - 1;
+ DrawTourneyAdvancementLine(i, var2);
}
}
else if (gSaveBlock2Ptr->frontier.curChallengeBattleNum != DOME_ROUND1)
{
- if (gTasks[taskId].data[4])
+ if (gTasks[taskId].tIsPrevTourneyTree)
var2 = gSaveBlock2Ptr->frontier.curChallengeBattleNum;
else
var2 = gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1;
- sub_81948EC(i, var2);
+ DrawTourneyAdvancementLine(i, var2);
}
}
- if (gTasks[taskId].data[4])
+ if (gTasks[taskId].tIsPrevTourneyTree)
roundId = gSaveBlock2Ptr->frontier.curChallengeBattleNum;
else
roundId = gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1;
- if ( ((r10 == 1 && gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt < gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1)
- || (r10 == 0 && gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt <= roundId))
- && gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated)
+ if ( ((notInteractive == TRUE && DOME_TRAINERS[i].eliminatedAt < gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1)
+ || (notInteractive == FALSE && DOME_TRAINERS[i].eliminatedAt <= roundId))
+ && DOME_TRAINERS[i].isEliminated)
{
- if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == TRAINER_PLAYER)
+ if (DOME_TRAINERS[i].trainerId == TRAINER_PLAYER)
{
- textPrinter.fgColor = 3;
- textPrinter.shadowColor = 4;
+ textPrinter.fgColor = TEXT_COLOR_LIGHT_GREY;
+ textPrinter.shadowColor = TEXT_COLOR_RED;
}
else
{
- textPrinter.fgColor = 11;
- textPrinter.shadowColor = 13;
+ textPrinter.fgColor = TEXT_DYNAMIC_COLOR_2;
+ textPrinter.shadowColor = TEXT_DYNAMIC_COLOR_4;
}
}
else
{
- if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == TRAINER_PLAYER)
+ if (DOME_TRAINERS[i].trainerId == TRAINER_PLAYER)
{
- textPrinter.fgColor = 3;
- textPrinter.shadowColor = 4;
+ textPrinter.fgColor = TEXT_COLOR_LIGHT_GREY;
+ textPrinter.shadowColor = TEXT_COLOR_RED;
}
else
{
- textPrinter.fgColor = 14;
- textPrinter.shadowColor = 13;
+ textPrinter.fgColor = TEXT_DYNAMIC_COLOR_5;
+ textPrinter.shadowColor = TEXT_DYNAMIC_COLOR_4;
}
}
- if (gUnknown_0860D3F1[i][0] == 0)
+ if (sTrainerNamePositions[i][0] == 0)
textPrinter.currentX = GetStringWidthDifference(textPrinter.fontId, gDisplayedStringBattle, 0x3D, textPrinter.letterSpacing);
else
textPrinter.currentX = 3;
textPrinter.currentChar = gDisplayedStringBattle;
- textPrinter.windowId = gUnknown_0860D3F1[i][0];
- textPrinter.currentY = gUnknown_0860D3F1[i][1];
+ textPrinter.windowId = sTrainerNamePositions[i][0];
+ textPrinter.currentY = sTrainerNamePositions[i][1];
AddTextPrinter(&textPrinter, 0, NULL);
}
- gTasks[taskId].data[0]++;
+ gTasks[taskId].tState++;
break;
case 5:
PutWindowTilemap(0);
@@ -5699,27 +5675,27 @@ static void Task_ShowTourneyTree(u8 taskId)
CopyWindowToVram(0, 3);
CopyWindowToVram(1, 3);
CopyWindowToVram(2, 3);
- SetHBlankCallback(HblankCb_BattleDome);
- SetVBlankCallback(VblankCb1_BattleDome);
+ SetHBlankCallback(HblankCb_TourneyTree);
+ SetVBlankCallback(VblankCb_TourneyTree);
if (r4 == 2)
{
- if (r10 == 0)
+ if (notInteractive == FALSE)
{
- i = CreateTask(sub_819395C, 0);
- gTasks[i].data[0] = r10;
- gTasks[i].data[1] = r10;
- gTasks[i].data[6] = gTasks[taskId].data[4];
+ i = CreateTask(Task_HandleTourneyTreeInput, 0);
+ gTasks[i].data[0] = notInteractive;
+ gTasks[i].data[1] = notInteractive;
+ gTasks[i].data[6] = gTasks[taskId].tIsPrevTourneyTree;
}
else
{
- i = CreateTask(sub_8194950, 0);
+ i = CreateTask(Task_HandleStaticTourneyTreeInput, 0);
gTasks[i].data[0] = 0;
}
}
else
{
i = gTasks[taskId].data[3];
- gTasks[i].data[0] = 0;
+ gTasks[i].tState = 0;
}
ScanlineEffect_Clear();
@@ -5744,32 +5720,39 @@ static void Task_ShowTourneyTree(u8 taskId)
}
}
-static void sub_81948EC(u8 tournamentId, u8 arg1)
+static void DrawTourneyAdvancementLine(u8 tournamentId, u8 roundId)
{
int i;
- const struct UnkStruct_860DD10 *structPtr = gUnknown_0860DD10[tournamentId][arg1];
+ const struct TourneyTreeLineSection *lineSection = sTourneyTreeLineSections[tournamentId][roundId];
- for (i = 0; i < gUnknown_0860DE10[tournamentId][arg1]; i++)
- CopyToBgTilemapBufferRect_ChangePalette(1, &structPtr[i].src, structPtr[i].x, structPtr[i].y, 1, 1, 0x11);
+ for (i = 0; i < sTourneyTreeLineSectionArrayCounts[tournamentId][roundId]; i++)
+ CopyToBgTilemapBufferRect_ChangePalette(1, &lineSection[i].src, lineSection[i].x, lineSection[i].y, 1, 1, 17);
CopyBgTilemapBufferToVram(1);
}
-static void sub_8194950(u8 taskId)
+#define STATE_FADE_IN 0
+#define STATE_SHOW_RESULTS 1
+#define STATE_DELAY 2
+#define STATE_WAIT_FOR_INPUT 3
+#define STATE_CLOSE_TOURNEY_TREE 4
+
+// The non-interactive tourney tree that's shown when a round is completed
+static void Task_HandleStaticTourneyTreeInput(u8 taskId)
{
int i;
struct TextPrinterTemplate textPrinter;
- switch (gTasks[taskId].data[0])
+ switch (gTasks[taskId].tState)
{
- case 0:
+ case STATE_FADE_IN:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK);
- gTasks[taskId].data[0] = 1;
+ gTasks[taskId].tState = STATE_SHOW_RESULTS;
break;
- case 1:
+ case STATE_SHOW_RESULTS:
if (!gPaletteFade.active)
{
- gTasks[taskId].data[0] = 2;
+ gTasks[taskId].tState = STATE_DELAY;
gTasks[taskId].data[3] = 64;
textPrinter.fontId = 2;
textPrinter.x = 0;
@@ -5777,45 +5760,47 @@ static void sub_8194950(u8 taskId)
textPrinter.letterSpacing = 2;
textPrinter.lineSpacing = 0;
textPrinter.unk = 0;
- textPrinter.fgColor = 11;
- textPrinter.bgColor = 0;
- textPrinter.shadowColor = 13;
+ textPrinter.fgColor = TEXT_DYNAMIC_COLOR_2;
+ textPrinter.bgColor = TEXT_COLOR_TRANSPARENT;
+ textPrinter.shadowColor = TEXT_DYNAMIC_COLOR_4;
+
+ // Update the advancement lines and gray out eliminated trainer names
for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
{
- CopyDomeTrainerName(gDisplayedStringBattle, gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId);
- if (gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt == gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1
- && gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated)
+ CopyDomeTrainerName(gDisplayedStringBattle, DOME_TRAINERS[i].trainerId);
+ if (DOME_TRAINERS[i].eliminatedAt == gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1
+ && DOME_TRAINERS[i].isEliminated)
{
- if (gUnknown_0860D3F1[i][0] == 0)
+ if (sTrainerNamePositions[i][0] == 0)
textPrinter.currentX = GetStringWidthDifference(textPrinter.fontId, gDisplayedStringBattle, 0x3D, textPrinter.letterSpacing);
else
textPrinter.currentX = 3;
textPrinter.currentChar = gDisplayedStringBattle;
- textPrinter.windowId = gUnknown_0860D3F1[i][0];
- textPrinter.currentY = gUnknown_0860D3F1[i][1];
+ textPrinter.windowId = sTrainerNamePositions[i][0];
+ textPrinter.currentY = sTrainerNamePositions[i][1];
AddTextPrinter(&textPrinter, 0, NULL);
}
- if (!gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated)
+ if (!DOME_TRAINERS[i].isEliminated)
{
int roundId = gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1;
- sub_81948EC(i, roundId);
+ DrawTourneyAdvancementLine(i, roundId);
}
}
}
break;
- case 2:
+ case STATE_DELAY:
if (--gTasks[taskId].data[3] == 0)
- gTasks[taskId].data[0] = 3;
+ gTasks[taskId].tState = STATE_WAIT_FOR_INPUT;
break;
- case 3:
+ case STATE_WAIT_FOR_INPUT:
if (gMain.newKeys & (A_BUTTON | B_BUTTON))
{
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK);
- gTasks[taskId].data[0] = 4;
+ gTasks[taskId].tState = STATE_CLOSE_TOURNEY_TREE;
}
break;
- case 4:
+ case STATE_CLOSE_TOURNEY_TREE:
if (!gPaletteFade.active)
{
SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
@@ -5825,7 +5810,13 @@ static void sub_8194950(u8 taskId)
}
}
-static void CB2_BattleDome(void)
+#undef STATE_FADE_IN
+#undef STATE_SHOW_RESULTS
+#undef STATE_DELAY
+#undef STATE_WAIT_FOR_INPUT
+#undef STATE_CLOSE_TOURNEY_TREE
+
+static void CB2_TourneyTree(void)
{
AnimateSprites();
BuildOamBuffer();
@@ -5834,7 +5825,7 @@ static void CB2_BattleDome(void)
RunTasks();
}
-static void VblankCb0_BattleDome(void)
+static void VblankCb_TourneyInfoCard(void)
{
ChangeBgX(3, 0x80, 1);
ChangeBgY(3, 0x80, 2);
@@ -5854,7 +5845,7 @@ static void VblankCb0_BattleDome(void)
*(vu32*)(REG_ADDR_WIN0H) = ((win0H << 16) | (win1H)); \
}
-static void HblankCb_BattleDome(void)
+static void HblankCb_TourneyTree(void)
{
register u32 vCount asm("r0") = REG_VCOUNT;
register u32 vCount_ asm("r1") = vCount;
@@ -5862,7 +5853,8 @@ static void HblankCb_BattleDome(void)
{
if (vCount < 50)
{
- REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG3 | WININ_WIN1_OBJ | WININ_WIN1_CLR;
+ REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR
+ | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG3 | WININ_WIN1_OBJ | WININ_WIN1_CLR;
SET_WIN0H_WIN1H(WIN_RANGE(152, 155), WIN_RANGE(85, 88));
return;
}
@@ -5870,13 +5862,15 @@ static void HblankCb_BattleDome(void)
{
if (vCount < 75)
{
- REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG3 | WININ_WIN1_OBJ | WININ_WIN1_CLR;
+ REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR
+ | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG3 | WININ_WIN1_OBJ | WININ_WIN1_CLR;
SET_WIN0H_WIN1H(WIN_RANGE(144, 152), WIN_RANGE(88, 96));
return;
}
else if (vCount < 82)
{
- REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG3 | WININ_WIN1_OBJ | WININ_WIN1_CLR;
+ REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR
+ | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG3 | WININ_WIN1_OBJ | WININ_WIN1_CLR;
SET_WIN0H_WIN1H(WIN_RANGE(152, 155), WIN_RANGE(85, 88));
return;
}
@@ -5884,13 +5878,15 @@ static void HblankCb_BattleDome(void)
{
if (vCount < 103)
{
- REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_OBJ | WININ_WIN1_CLR;
+ REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_OBJ | WININ_WIN0_CLR
+ | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_OBJ | WININ_WIN1_CLR;
SET_WIN0H_WIN1H(WIN_RANGE(152, 155), WIN_RANGE(85, 88));
return;
}
else if (vCount < 119)
{
- REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_OBJ | WININ_WIN1_CLR;
+ REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_OBJ | WININ_WIN0_CLR
+ | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_OBJ | WININ_WIN1_CLR;
SET_WIN0H_WIN1H(WIN_RANGE(144, 152), WIN_RANGE(88, 96));
return;
}
@@ -5898,7 +5894,8 @@ static void HblankCb_BattleDome(void)
{
if (vCount_ < 135)
{
- REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_OBJ | WININ_WIN1_CLR;
+ REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_OBJ | WININ_WIN0_CLR
+ | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_OBJ | WININ_WIN1_CLR;
SET_WIN0H_WIN1H(WIN_RANGE(152, 155), WIN_RANGE(85, 88));
return;
}
@@ -5907,11 +5904,12 @@ static void HblankCb_BattleDome(void)
}
}
- REG_WININ = WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ | WININ_WIN1_BG_ALL | WININ_WIN1_CLR | WININ_WIN1_OBJ;
+ REG_WININ = WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ
+ | WININ_WIN1_BG_ALL | WININ_WIN1_CLR | WININ_WIN1_OBJ;
SET_WIN0H_WIN1H(0, 0);
}
-static void VblankCb1_BattleDome(void)
+static void VblankCb_TourneyTree(void)
{
SetGpuReg(REG_OFFSET_BG0HOFS, gBattle_BG0_X);
SetGpuReg(REG_OFFSET_BG0VOFS, gBattle_BG0_Y);
@@ -5925,7 +5923,7 @@ static void VblankCb1_BattleDome(void)
ScanlineEffect_InitHBlankDmaTransfer();
}
-static void InitDomeFacilityTrainersAndMons(void)
+static void SetFacilityTrainerAndMonPtrs(void)
{
gFacilityTrainerMons = gBattleFrontierMons;
gFacilityTrainers = gBattleFrontierTrainers;
@@ -5935,7 +5933,7 @@ static void ResetSketchedMoves(void)
{
int i, moveSlot;
- for (i = 0; i < 2; i++)
+ for (i = 0; i < DOME_BATTLE_PARTY_SIZE; i++)
{
int playerMonId = gSaveBlock2Ptr->frontier.selectedPartyMons[gSelectedOrderFromParty[i] - 1] - 1;
int count;
@@ -5961,7 +5959,7 @@ static void RestoreDomePlayerPartyHeldItems(void)
{
int i;
- for (i = 0; i < 2; i++)
+ for (i = 0; i < DOME_BATTLE_PARTY_SIZE; i++)
{
int playerMonId = gSaveBlock2Ptr->frontier.selectedPartyMons[gSelectedOrderFromParty[i] - 1] - 1;
u16 item = GetMonData(&gSaveBlock1Ptr->playerParty[playerMonId], MON_DATA_HELD_ITEM, NULL);
@@ -5969,13 +5967,14 @@ static void RestoreDomePlayerPartyHeldItems(void)
}
}
-static void ReduceDomePlayerPartyTo3Mons(void)
+static void ReduceDomePlayerPartyToSelectedMons(void)
{
ReducePlayerPartyToSelectedMons();
}
static void GetPlayerSeededBeforeOpponent(void)
{
+ // A higher tournament ID is a worse seed
if (TrainerIdToTournamentId(gTrainerBattleOpponent_A) > TrainerIdToTournamentId(TRAINER_PLAYER))
gSpecialVar_Result = 1;
else
@@ -5986,23 +5985,24 @@ static void BufferLastDomeWinnerName(void)
{
int i;
- InitDomeFacilityTrainersAndMons();
+ SetFacilityTrainerAndMonPtrs();
for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
{
- if (!gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated)
+ if (!DOME_TRAINERS[i].isEliminated)
break;
}
- CopyDomeTrainerName(gStringVar1, gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId);
+ CopyDomeTrainerName(gStringVar1, DOME_TRAINERS[i].trainerId);
}
-static void sub_8194F58(void)
+// For showing the previous tourney results before the player has entered a challenge
+static void InitRandomTourneyTreeResults(void)
{
int i, j, k;
int monLevel;
int species[FRONTIER_PARTY_SIZE];
int monTypesBits;
int trainerId;
- int monSetId;
+ int monId;
u8 lvlMode;
u16 *statSums;
int *statValues;
@@ -6011,18 +6011,18 @@ static void sub_8194F58(void)
species[0] = 0;
species[1] = 0;
species[2] = 0;
- if ((gSaveBlock2Ptr->frontier.field_D0A != -gSaveBlock2Ptr->frontier.field_D0B) && gSaveBlock2Ptr->frontier.challengeStatus != CHALLENGE_STATUS_SAVING)
+ if ((gSaveBlock2Ptr->frontier.domeLvlMode != -gSaveBlock2Ptr->frontier.domeBattleMode) && gSaveBlock2Ptr->frontier.challengeStatus != CHALLENGE_STATUS_SAVING)
return;
statSums = AllocZeroed(sizeof(u16) * DOME_TOURNAMENT_TRAINERS_COUNT);
statValues = AllocZeroed(sizeof(int) * NUM_STATS);
lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
- gSaveBlock2Ptr->frontier.lvlMode = 0;
+ gSaveBlock2Ptr->frontier.lvlMode = FRONTIER_LVL_50;
// This one, I'd like to call a 'C fakematching'.
{
u8 one;
- gSaveBlock2Ptr->frontier.field_D0A = (one = 1);
- gSaveBlock2Ptr->frontier.field_D0B = one;
+ gSaveBlock2Ptr->frontier.domeLvlMode = (one = 1);
+ gSaveBlock2Ptr->frontier.domeBattleMode = one;
}
for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
@@ -6038,35 +6038,35 @@ static void sub_8194F58(void)
for (j = 0; j < i; j++)
{
- if (gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId == trainerId)
+ if (DOME_TRAINERS[j].trainerId == trainerId)
break;
}
} while (j != i);
- gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId = trainerId;
+ DOME_TRAINERS[i].trainerId = trainerId;
for (j = 0; j < FRONTIER_PARTY_SIZE; j++)
{
- // Make sure the mon is valid.
do
{
- monSetId = RandomizeFacilityTrainerMonSet(trainerId);
+ monId = GetRandomFrontierMonFromSet(trainerId);
for (k = 0; k < j; k++)
{
- int checkingMonId = gSaveBlock2Ptr->frontier.domeMonIds[i][k];
- if (checkingMonId == monSetId
- || species[0] == gFacilityTrainerMons[monSetId].species
- || species[1] == gFacilityTrainerMons[monSetId].species
- || gFacilityTrainerMons[checkingMonId].itemTableId == gFacilityTrainerMons[monSetId].itemTableId)
+ // Make sure the mon is valid.
+ int alreadySelectedMonId = DOME_MONS[i][k];
+ if (alreadySelectedMonId == monId
+ || species[0] == gFacilityTrainerMons[monId].species
+ || species[1] == gFacilityTrainerMons[monId].species
+ || gFacilityTrainerMons[alreadySelectedMonId].itemTableId == gFacilityTrainerMons[monId].itemTableId)
break;
}
} while (k != j);
- gSaveBlock2Ptr->frontier.domeMonIds[i][j] = monSetId;
- species[j] = gFacilityTrainerMons[monSetId].species;
+ DOME_MONS[i][j] = monId;
+ species[j] = gFacilityTrainerMons[monId].species;
}
- gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated = 0;
- gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt = 0;
- gSaveBlock2Ptr->frontier.domeTrainers[i].unk3 = 0;
+ DOME_TRAINERS[i].isEliminated = FALSE;
+ DOME_TRAINERS[i].eliminatedAt = 0;
+ DOME_TRAINERS[i].forfeited = FALSE;
}
monLevel = 50;
@@ -6074,13 +6074,13 @@ static void sub_8194F58(void)
{
monTypesBits = 0;
statSums[i] = 0;
- ivs = GetDomeTrainerMonIvs(gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId);
+ ivs = GetDomeTrainerMonIvs(DOME_TRAINERS[i].trainerId);
for (j = 0; j < FRONTIER_PARTY_SIZE; j++)
{
- CalcDomeMonStats(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species,
+ CalcDomeMonStats(gFacilityTrainerMons[DOME_MONS[i][j]].species,
monLevel, ivs,
- gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].evSpread,
- gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].nature,
+ gFacilityTrainerMons[DOME_MONS[i][j]].evSpread,
+ gFacilityTrainerMons[DOME_MONS[i][j]].nature,
statValues);
statSums[i] += statValues[STAT_ATK];
@@ -6089,8 +6089,8 @@ static void sub_8194F58(void)
statSums[i] += statValues[STAT_SPDEF];
statSums[i] += statValues[STAT_SPEED];
statSums[i] += statValues[STAT_HP];
- monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species].type1];
- monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species].type2];
+ monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[DOME_MONS[i][j]].species].type1];
+ monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[DOME_MONS[i][j]].species].type2];
}
// Because GF hates temporary vars, trainerId acts like monTypesCount here.
@@ -6113,7 +6113,7 @@ static void sub_8194F58(void)
}
else if (statSums[i] == statSums[j])
{
- if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId > gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId)
+ if (DOME_TRAINERS[i].trainerId > DOME_TRAINERS[j].trainerId)
SwapDomeTrainers(i, j, statSums);
}
}
@@ -6122,7 +6122,7 @@ static void sub_8194F58(void)
Free(statSums);
Free(statValues);
- for (i = 0; i < 4; i++)
+ for (i = 0; i < DOME_ROUNDS_COUNT; i++)
DecideRoundWinners(i);
gSaveBlock2Ptr->frontier.lvlMode = lvlMode;
@@ -6134,7 +6134,7 @@ static int TrainerIdToTournamentId(u16 trainerId)
for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
{
- if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == trainerId)
+ if (DOME_TRAINERS[i].trainerId == trainerId)
break;
}
@@ -6148,7 +6148,7 @@ int TrainerIdToDomeTournamentId(u16 trainerId)
for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
{
- if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == trainerId)
+ if (DOME_TRAINERS[i].trainerId == trainerId)
break;
}
@@ -6157,14 +6157,15 @@ int TrainerIdToDomeTournamentId(u16 trainerId)
static u8 sub_81953E8(u8 tournamentId, u8 round)
{
- u8 arr[2];
- sub_8192F08(gUnknown_0860D1A0[gUnknown_0860D1C0[tournamentId] / 2][round] - 16, arr);
- if (tournamentId == arr[0])
- return arr[1];
+ u8 tournamentIds[2];
+ BufferDomeWinString(gUnknown_0860D1A0[gUnknown_0860D1C0[tournamentId] / 2][round] - 16, tournamentIds);
+ if (tournamentId == tournamentIds[0])
+ return tournamentIds[1];
else
- return arr[0];
+ return tournamentIds[0];
}
+// Determines which trainers won in the NPC vs NPC battles
static void DecideRoundWinners(u8 roundId)
{
int i;
@@ -6175,24 +6176,24 @@ static void DecideRoundWinners(u8 roundId)
for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
{
- if (gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated || gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == TRAINER_PLAYER)
+ if (DOME_TRAINERS[i].isEliminated || DOME_TRAINERS[i].trainerId == TRAINER_PLAYER)
continue;
tournamentId1 = i;
- tournamentId2 = TournamentIdOfOpponent(roundId, gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].trainerId);
+ tournamentId2 = TournamentIdOfOpponent(roundId, DOME_TRAINERS[tournamentId1].trainerId);
// Frontier Brain always wins, check tournamentId1.
- if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].trainerId == TRAINER_FRONTIER_BRAIN && tournamentId2 != 0xFF)
+ if (DOME_TRAINERS[tournamentId1].trainerId == TRAINER_FRONTIER_BRAIN && tournamentId2 != 0xFF)
{
- gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].isEliminated = 1;
- gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].eliminatedAt = roundId;
- gSaveBlock2Ptr->frontier.field_EC0[tournamentId2] = GetWinningMove(tournamentId1, tournamentId2, roundId);
+ DOME_TRAINERS[tournamentId2].isEliminated = TRUE;
+ DOME_TRAINERS[tournamentId2].eliminatedAt = roundId;
+ gSaveBlock2Ptr->frontier.domeWinningMoves[tournamentId2] = GetWinningMove(tournamentId1, tournamentId2, roundId);
}
// Frontier Brain always wins, check tournamentId2.
- else if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].trainerId == TRAINER_FRONTIER_BRAIN && tournamentId1 != 0xFF)
+ else if (DOME_TRAINERS[tournamentId2].trainerId == TRAINER_FRONTIER_BRAIN && tournamentId1 != 0xFF)
{
- gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].isEliminated = 1;
- gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].eliminatedAt = roundId;
- gSaveBlock2Ptr->frontier.field_EC0[tournamentId1] = GetWinningMove(tournamentId2, tournamentId1, roundId);
+ DOME_TRAINERS[tournamentId1].isEliminated = TRUE;
+ DOME_TRAINERS[tournamentId1].eliminatedAt = roundId;
+ gSaveBlock2Ptr->frontier.domeWinningMoves[tournamentId1] = GetWinningMove(tournamentId2, tournamentId1, roundId);
}
// Decide which one of two trainers wins!
else if (tournamentId2 != 0xFF)
@@ -6200,17 +6201,17 @@ static void DecideRoundWinners(u8 roundId)
// BUG: points1 and points2 are not cleared at the beginning of the loop resulting in not fair results.
// Calculate points for both trainers.
- for (monId1 = 0; monId1 < 3; monId1++)
+ for (monId1 = 0; monId1 < FRONTIER_PARTY_SIZE; monId1++)
{
for (moveSlot = 0; moveSlot < MAX_MON_MOVES; moveSlot++)
{
- for (monId2 = 0; monId2 < 3; monId2++)
+ for (monId2 = 0; monId2 < FRONTIER_PARTY_SIZE; monId2++)
{
- points1 += GetTypeEffectivenessPoints(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentId1][monId1]].moves[moveSlot],
- gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentId2][monId2]].species, 2);
+ points1 += GetTypeEffectivenessPoints(gFacilityTrainerMons[DOME_MONS[tournamentId1][monId1]].moves[moveSlot],
+ gFacilityTrainerMons[DOME_MONS[tournamentId2][monId2]].species, 2);
}
}
- species = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentId1][monId1]].species;
+ species = gFacilityTrainerMons[DOME_MONS[tournamentId1][monId1]].species;
points1 += ( gBaseStats[species].baseHP
+ gBaseStats[species].baseAttack
+ gBaseStats[species].baseDefense
@@ -6223,17 +6224,17 @@ static void DecideRoundWinners(u8 roundId)
// Favor trainers with higher id;
points1 += tournamentId1;
- for (monId1 = 0; monId1 < 3; monId1++)
+ for (monId1 = 0; monId1 < FRONTIER_PARTY_SIZE; monId1++)
{
for (moveSlot = 0; moveSlot < MAX_MON_MOVES; moveSlot++)
{
- for (monId2 = 0; monId2 < 3; monId2++)
+ for (monId2 = 0; monId2 < FRONTIER_PARTY_SIZE; monId2++)
{
- points2 += GetTypeEffectivenessPoints(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentId2][monId1]].moves[moveSlot],
- gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentId1][monId2]].species, 2);
+ points2 += GetTypeEffectivenessPoints(gFacilityTrainerMons[DOME_MONS[tournamentId2][monId1]].moves[moveSlot],
+ gFacilityTrainerMons[DOME_MONS[tournamentId1][monId2]].species, 2);
}
}
- species = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentId2][monId1]].species;
+ species = gFacilityTrainerMons[DOME_MONS[tournamentId2][monId1]].species;
points2 += ( gBaseStats[species].baseHP
+ gBaseStats[species].baseAttack
+ gBaseStats[species].baseDefense
@@ -6248,28 +6249,28 @@ static void DecideRoundWinners(u8 roundId)
if (points1 > points2)
{
- gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].isEliminated = 1;
- gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].eliminatedAt = roundId;
- gSaveBlock2Ptr->frontier.field_EC0[tournamentId2] = GetWinningMove(tournamentId1, tournamentId2, roundId);
+ DOME_TRAINERS[tournamentId2].isEliminated = TRUE;
+ DOME_TRAINERS[tournamentId2].eliminatedAt = roundId;
+ gSaveBlock2Ptr->frontier.domeWinningMoves[tournamentId2] = GetWinningMove(tournamentId1, tournamentId2, roundId);
}
else if (points1 < points2)
{
- gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].isEliminated = 1;
- gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].eliminatedAt = roundId;
- gSaveBlock2Ptr->frontier.field_EC0[tournamentId1] = GetWinningMove(tournamentId2, tournamentId1, roundId);
+ DOME_TRAINERS[tournamentId1].isEliminated = TRUE;
+ DOME_TRAINERS[tournamentId1].eliminatedAt = roundId;
+ gSaveBlock2Ptr->frontier.domeWinningMoves[tournamentId1] = GetWinningMove(tournamentId2, tournamentId1, roundId);
}
// Points are the same, so we favor the one with the higher id.
else if (tournamentId1 > tournamentId2)
{
- gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].isEliminated = 1;
- gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].eliminatedAt = roundId;
- gSaveBlock2Ptr->frontier.field_EC0[tournamentId2] = GetWinningMove(tournamentId1, tournamentId2, roundId);
+ DOME_TRAINERS[tournamentId2].isEliminated = TRUE;
+ DOME_TRAINERS[tournamentId2].eliminatedAt = roundId;
+ gSaveBlock2Ptr->frontier.domeWinningMoves[tournamentId2] = GetWinningMove(tournamentId1, tournamentId2, roundId);
}
else
{
- gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].isEliminated = 1;
- gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].eliminatedAt = roundId;
- gSaveBlock2Ptr->frontier.field_EC0[tournamentId1] = GetWinningMove(tournamentId2, tournamentId1, roundId);
+ DOME_TRAINERS[tournamentId1].isEliminated = TRUE;
+ DOME_TRAINERS[tournamentId1].eliminatedAt = roundId;
+ gSaveBlock2Ptr->frontier.domeWinningMoves[tournamentId1] = GetWinningMove(tournamentId2, tournamentId1, roundId);
}
}
}
@@ -6291,7 +6292,7 @@ static void CopyDomeTrainerName(u8 *str, u16 trainerId)
for (i = 0; i < PLAYER_NAME_LENGTH; i++)
str[i] = gSaveBlock2Ptr->playerName[i];
}
- else if (trainerId < 300)
+ else if (trainerId < FRONTIER_TRAINERS_COUNT)
{
for (i = 0; i < PLAYER_NAME_LENGTH; i++)
str[i] = gFacilityTrainers[trainerId].trainerName[i];
diff --git a/src/battle_factory.c b/src/battle_factory.c
index b7e43394e..913b1b1a0 100644
--- a/src/battle_factory.c
+++ b/src/battle_factory.c
@@ -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++)
diff --git a/src/battle_interface.c b/src/battle_interface.c
index cf9aa7f1b..12273addb 100644
--- a/src/battle_interface.c
+++ b/src/battle_interface.c
@@ -761,62 +761,52 @@ static s32 DummiedOutFunction(s16 unused1, s16 unused2, s32 unused3)
{
return 9;
}
-
-#ifdef NONMATCHING
-static void sub_8072308(s16 arg0, u16 *arg1, u8 arg2)
+void sub_8072308(s16 number, u16 *dest, bool8 unk)
{
s8 i, j;
- u8 array[4];
- u8 *arrayPtr;
- s32 r9, vaaa;
+ u8 buff[4];
for (i = 0; i < 4; i++)
- array[i] = 0;
+ {
+ buff[i] = 0;
+ }
- i = 3;
- r9 = -1;
- arrayPtr = array;
- while (1)
+ for (i = 3; ; i--)
{
- if (arg0 > 0)
+ if (number > 0)
{
- array[i] = arg0 % 10;
- arg0 = arg0 / 10;
- i--;
+ buff[i] = number % 10;
+ number /= 10;
}
else
{
+ for (; i > -1; i--)
+ {
+ buff[i] = 0xFF;
+ }
+ if (buff[3] == 0xFF)
+ buff[3] = 0;
break;
}
}
- for (; i > -1; i--)
- {
- array[i] = 0xFF;
- }
-
- if (arrayPtr[3] == 0xFF)
- arrayPtr[3] = 0;
-
- if (arg2 == 0)
+ if (!unk)
{
for (i = 0, j = 0; i < 4; i++)
{
- if (array[j] == 0xFF)
+ if (buff[j] == 0xFF)
{
- arg1[j] &= 0xFC00;
- arg1[j] |= 0x1E;
-
- arg1[i + 0x20] &= 0xFC00;
- arg1[i + 0x20] |= 0x1E;
+ dest[j + 0x00] &= 0xFC00;
+ dest[j + 0x00] |= 0x1E;
+ dest[i + 0x20] &= 0xFC00;
+ dest[i + 0x20] |= 0x1E;
}
else
{
- arg1[j] &= 0xFC00;
- arg1[j] |= array[j] + 0x14;
-
- arg1[i + 0x20] &= 0xFC00;
- arg1[i + 0x20] |= array[i] + 0x34;
+ dest[j + 0x00] &= 0xFC00;
+ dest[j + 0x00] |= 0x14 + buff[j];
+ dest[i + 0x20] &= 0xFC00;
+ dest[i + 0x20] |= 0x34 + buff[i];
}
j++;
}
@@ -825,254 +815,24 @@ static void sub_8072308(s16 arg0, u16 *arg1, u8 arg2)
{
for (i = 0; i < 4; i++)
{
- if (array[i] == 0xFF)
+ if (buff[i] == 0xFF)
{
- arg1[i] &= 0xFC00;
- arg1[i] |= 0x1E;
-
- arg1[i + 0x20] &= 0xFC00;
- arg1[i + 0x20] |= 0x1E;
+ dest[i + 0x00] &= 0xFC00;
+ dest[i + 0x00] |= 0x1E;
+ dest[i + 0x20] &= 0xFC00;
+ dest[i + 0x20] |= 0x1E;
}
else
{
- arg1[i] &= 0xFC00;
- arg1[i] |= array[i] + 0x14;
-
- arg1[i + 0x20] &= 0xFC00;
- arg1[i + 0x20] |= array[i] + 0x34;
+ dest[i + 0x00] &= 0xFC00;
+ dest[i + 0x00] |= 0x14 + buff[i];
+ dest[i + 0x20] &= 0xFC00;
+ dest[i + 0x20] |= 0x34 + buff[i];
}
}
}
}
-#else
-NAKED
-static void sub_8072308(s16 arg0, u16 *arg1, u8 arg2)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- sub sp, 0x4\n\
- adds r7, r1, 0\n\
- lsls r0, 16\n\
- lsrs r5, r0, 16\n\
- lsls r2, 24\n\
- lsrs r2, 24\n\
- mov r10, r2\n\
- movs r3, 0\n\
- movs r2, 0\n\
-_08072324:\n\
- lsls r0, r3, 24\n\
- asrs r0, 24\n\
- mov r3, sp\n\
- adds r1, r3, r0\n\
- strb r2, [r1]\n\
- adds r0, 0x1\n\
- lsls r0, 24\n\
- lsrs r3, r0, 24\n\
- asrs r0, 24\n\
- cmp r0, 0x3\n\
- ble _08072324\n\
- movs r3, 0x3\n\
- movs r0, 0x1\n\
- negs r0, r0\n\
- mov r9, r0\n\
- mov r8, sp\n\
-_08072344:\n\
- lsls r0, r5, 16\n\
- asrs r6, r0, 16\n\
- cmp r6, 0\n\
- ble _08072372\n\
- lsls r4, r3, 24\n\
- asrs r4, 24\n\
- mov r1, sp\n\
- adds r5, r1, r4\n\
- adds r0, r6, 0\n\
- movs r1, 0xA\n\
- bl __modsi3\n\
- strb r0, [r5]\n\
- adds r0, r6, 0\n\
- movs r1, 0xA\n\
- bl __divsi3\n\
- lsls r0, 16\n\
- lsrs r5, r0, 16\n\
- subs r4, 0x1\n\
- lsls r4, 24\n\
- lsrs r3, r4, 24\n\
- b _08072344\n\
-_08072372:\n\
- lsls r1, r3, 24\n\
- asrs r0, r1, 24\n\
- cmp r0, r9\n\
- ble _08072396\n\
- movs r4, 0xFF\n\
- movs r3, 0x1\n\
- negs r3, r3\n\
-_08072380:\n\
- asrs r2, r1, 24\n\
- mov r5, sp\n\
- adds r1, r5, r2\n\
- ldrb r0, [r1]\n\
- orrs r0, r4\n\
- strb r0, [r1]\n\
- subs r2, 0x1\n\
- lsls r1, r2, 24\n\
- asrs r0, r1, 24\n\
- cmp r0, r3\n\
- bgt _08072380\n\
-_08072396:\n\
- mov r1, r8\n\
- ldrb r0, [r1, 0x3]\n\
- cmp r0, 0xFF\n\
- bne _080723A2\n\
- movs r0, 0\n\
- strb r0, [r1, 0x3]\n\
-_080723A2:\n\
- mov r2, r10\n\
- cmp r2, 0\n\
- bne _08072432\n\
- movs r3, 0\n\
- movs r1, 0\n\
- movs r6, 0xFC\n\
- lsls r6, 8\n\
- movs r5, 0x1E\n\
- mov r12, r5\n\
-_080723B4:\n\
- lsls r1, 24\n\
- asrs r2, r1, 24\n\
- mov r0, sp\n\
- adds r5, r0, r2\n\
- ldrb r0, [r5]\n\
- mov r8, r1\n\
- cmp r0, 0xFF\n\
- bne _080723EA\n\
- lsls r1, r2, 1\n\
- adds r1, r7\n\
- ldrh r2, [r1]\n\
- adds r0, r6, 0\n\
- ands r0, r2\n\
- mov r2, r12\n\
- orrs r0, r2\n\
- strh r0, [r1]\n\
- lsls r3, 24\n\
- asrs r1, r3, 23\n\
- adds r1, r7\n\
- adds r1, 0x40\n\
- ldrh r2, [r1]\n\
- adds r0, r6, 0\n\
- ands r0, r2\n\
- mov r5, r12\n\
- orrs r0, r5\n\
- strh r0, [r1]\n\
- b _0807241A\n\
-_080723EA:\n\
- lsls r2, 1\n\
- adds r2, r7\n\
- ldrh r0, [r2]\n\
- adds r1, r6, 0\n\
- ands r1, r0\n\
- ldrb r0, [r5]\n\
- adds r0, 0x14\n\
- orrs r1, r0\n\
- strh r1, [r2]\n\
- lsls r4, r3, 24\n\
- asrs r3, r4, 24\n\
- lsls r2, r3, 1\n\
- adds r2, r7\n\
- adds r2, 0x40\n\
- ldrh r0, [r2]\n\
- adds r1, r6, 0\n\
- ands r1, r0\n\
- mov r5, sp\n\
- adds r0, r5, r3\n\
- ldrb r0, [r0]\n\
- adds r0, 0x34\n\
- orrs r1, r0\n\
- strh r1, [r2]\n\
- adds r3, r4, 0\n\
-_0807241A:\n\
- movs r0, 0x80\n\
- lsls r0, 17\n\
- add r0, r8\n\
- lsrs r1, r0, 24\n\
- movs r2, 0x80\n\
- lsls r2, 17\n\
- adds r0, r3, r2\n\
- lsrs r3, r0, 24\n\
- asrs r0, 24\n\
- cmp r0, 0x3\n\
- ble _080723B4\n\
- b _08072496\n\
-_08072432:\n\
- movs r3, 0\n\
- movs r4, 0xFC\n\
- lsls r4, 8\n\
- movs r6, 0x1E\n\
-_0807243A:\n\
- lsls r1, r3, 24\n\
- asrs r2, r1, 24\n\
- mov r3, sp\n\
- adds r5, r3, r2\n\
- ldrb r0, [r5]\n\
- adds r3, r1, 0\n\
- cmp r0, 0xFF\n\
- bne _08072466\n\
- lsls r1, r2, 1\n\
- adds r1, r7\n\
- ldrh r2, [r1]\n\
- adds r0, r4, 0\n\
- ands r0, r2\n\
- orrs r0, r6\n\
- strh r0, [r1]\n\
- adds r1, 0x40\n\
- ldrh r2, [r1]\n\
- adds r0, r4, 0\n\
- ands r0, r2\n\
- orrs r0, r6\n\
- strh r0, [r1]\n\
- b _08072488\n\
-_08072466:\n\
- lsls r2, 1\n\
- adds r2, r7\n\
- ldrh r0, [r2]\n\
- adds r1, r4, 0\n\
- ands r1, r0\n\
- ldrb r0, [r5]\n\
- adds r0, 0x14\n\
- orrs r1, r0\n\
- strh r1, [r2]\n\
- adds r2, 0x40\n\
- ldrh r0, [r2]\n\
- adds r1, r4, 0\n\
- ands r1, r0\n\
- ldrb r0, [r5]\n\
- adds r0, 0x34\n\
- orrs r1, r0\n\
- strh r1, [r2]\n\
-_08072488:\n\
- movs r5, 0x80\n\
- lsls r5, 17\n\
- adds r0, r3, r5\n\
- lsrs r3, r0, 24\n\
- asrs r0, 24\n\
- cmp r0, 0x3\n\
- ble _0807243A\n\
-_08072496:\n\
- add sp, 0x4\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .syntax divided");
-}
-
-#endif // NONMATCHING
void sub_80724A8(s16 arg0, s16 arg1, u16 *arg2)
{
diff --git a/src/battle_palace.c b/src/battle_palace.c
index 56fd04c68..633666254 100644
--- a/src/battle_palace.c
+++ b/src/battle_palace.c
@@ -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);
}
diff --git a/src/battle_pike.c b/src/battle_pike.c
index 81951ac98..9bc7254ec 100644
--- a/src/battle_pike.c
+++ b/src/battle_pike.c
@@ -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);
}
}
diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c
index 4038d2c6d..b015f3e0e 100644
--- a/src/battle_pyramid.c
+++ b/src/battle_pyramid.c
@@ -1493,7 +1493,7 @@ static u16 GetUniqueTrainerId(u8 objectEventId)
{
do
{
- trainerId = sub_8162548(challengeNum + 1, battleNum);
+ trainerId = GetRandomScaledFrontierTrainerId(challengeNum + 1, battleNum);
for (i = 0; i < objectEventId; i++)
{
if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId)
@@ -1505,7 +1505,7 @@ static u16 GetUniqueTrainerId(u8 objectEventId)
{
do
{
- trainerId = sub_8162548(challengeNum, battleNum);
+ trainerId = GetRandomScaledFrontierTrainerId(challengeNum, battleNum);
for (i = 0; i < objectEventId; i++)
{
if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId)
diff --git a/src/battle_setup.c b/src/battle_setup.c
index 0e98d7554..f6b386bf8 100644
--- a/src/battle_setup.c
+++ b/src/battle_setup.c
@@ -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)
diff --git a/src/battle_tent.c b/src/battle_tent.c
index 860c07a53..b2db0e39c 100644
--- a/src/battle_tent.c
+++ b/src/battle_tent.c
@@ -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)
diff --git a/src/battle_tower.c b/src/battle_tower.c
index 8d0a32d16..4890e7a05 100644
--- a/src/battle_tower.c
+++ b/src/battle_tower.c
@@ -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)
SetFrontierBrainObjEventGfx_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)
@@ -2908,13 +2923,13 @@ static void CopyEReaderTrainerFarewellMessage(void)
FrontierSpeechToString(gSaveBlock2Ptr->frontier.ereaderTrainer.farewellPlayerLost);
}
-void sub_81653CC(void)
+void TryHideBattleTowerReporter(void)
{
if (gSaveBlock2Ptr->frontier.challengeStatus == CHALLENGE_STATUS_SAVING)
- sub_80F01B8();
+ HideBattleTowerReporter();
if (FlagGet(FLAG_CANCEL_BATTLE_ROOM_CHALLENGE) == TRUE)
{
- sub_80F01B8();
+ HideBattleTowerReporter();
FlagClear(FLAG_CANCEL_BATTLE_ROOM_CHALLENGE);
}
}
@@ -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.
diff --git a/src/cable_club.c b/src/cable_club.c
index ab72ee3f2..11920bea9 100644
--- a/src/cable_club.c
+++ b/src/cable_club.c
@@ -592,7 +592,7 @@ void TryTradeLinkup(void)
sub_80B236C(2, 2);
}
-void sub_80B2E74(void)
+void TryRecordMixLinkup(void)
{
gSpecialVar_Result = 0;
gLinkType = LINKTYPE_0x3311;
@@ -784,7 +784,8 @@ static void sub_80B3220(u8 taskId)
}
}
-void sub_80B3254(void)
+// Unused
+void CableClubSaveGame(void)
{
SaveGame();
}
@@ -1298,10 +1299,10 @@ void sub_80B3AF8(u8 taskId)
}
}
-void sub_80B3BC4(void)
+void TrySetBattleTowerLinkType(void)
{
if (gWirelessCommType == 0)
{
- gLinkType = LINKTYPE_0x2288;
+ gLinkType = LINKTYPE_BATTLE_TOWER;
}
}
diff --git a/src/contest.c b/src/contest.c
index f1741d16a..58628e35d 100644
--- a/src/contest.c
+++ b/src/contest.c
@@ -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;
diff --git a/src/data/battle_frontier/battle_frontier_mons.h b/src/data/battle_frontier/battle_frontier_mons.h
index 44cfb8036..d94d6acaf 100644
--- a/src/data/battle_frontier/battle_frontier_mons.h
+++ b/src/data/battle_frontier/battle_frontier_mons.h
@@ -1,6173 +1,6173 @@
-const struct FacilityMon gBattleFrontierMons[] =
+const struct FacilityMon gBattleFrontierMons[NUM_FRONTIER_MONS] =
{
- [0] = {
+ [FRONTIER_MON_SUNKERN] = {
.species = SPECIES_SUNKERN,
.moves = {MOVE_MEGA_DRAIN, MOVE_HELPING_HAND, MOVE_SUNNY_DAY, MOVE_LIGHT_SCREEN},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [1] = {
+ [FRONTIER_MON_AZURILL] = {
.species = SPECIES_AZURILL,
.moves = {MOVE_WATER_PULSE, MOVE_ATTRACT, MOVE_SING, MOVE_CHARM},
.itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RASH
},
- [2] = {
+ [FRONTIER_MON_CATERPIE] = {
.species = SPECIES_CATERPIE,
.moves = {MOVE_TACKLE, MOVE_STRING_SHOT, MOVE_NONE, MOVE_NONE},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [3] = {
+ [FRONTIER_MON_WEEDLE] = {
.species = SPECIES_WEEDLE,
.moves = {MOVE_POISON_STING, MOVE_STRING_SHOT, MOVE_NONE, MOVE_NONE},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [4] = {
+ [FRONTIER_MON_WURMPLE] = {
.species = SPECIES_WURMPLE,
.moves = {MOVE_TACKLE, MOVE_STRING_SHOT, MOVE_POISON_STING, MOVE_NONE},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [5] = {
+ [FRONTIER_MON_RALTS] = {
.species = SPECIES_RALTS,
.moves = {MOVE_CONFUSION, MOVE_IMPRISON, MOVE_DOUBLE_TEAM, MOVE_LIGHT_SCREEN},
.itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [6] = {
+ [FRONTIER_MON_MAGIKARP] = {
.species = SPECIES_MAGIKARP,
.moves = {MOVE_FLAIL, MOVE_NONE, MOVE_NONE, MOVE_NONE},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [7] = {
+ [FRONTIER_MON_FEEBAS] = {
.species = SPECIES_FEEBAS,
.moves = {MOVE_FLAIL, MOVE_MIRROR_COAT, MOVE_NONE, MOVE_NONE},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_LONELY
},
- [8] = {
+ [FRONTIER_MON_METAPOD] = {
.species = SPECIES_METAPOD,
.moves = {MOVE_HARDEN, MOVE_NONE, MOVE_NONE, MOVE_NONE},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_BASHFUL
},
- [9] = {
+ [FRONTIER_MON_KAKUNA] = {
.species = SPECIES_KAKUNA,
.moves = {MOVE_HARDEN, MOVE_NONE, MOVE_NONE, MOVE_NONE},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_BASHFUL
},
- [10] = {
+ [FRONTIER_MON_PICHU] = {
.species = SPECIES_PICHU,
.moves = {MOVE_SWEET_KISS, MOVE_THUNDER_WAVE, MOVE_ATTRACT, MOVE_SHOCK_WAVE},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RASH
},
- [11] = {
+ [FRONTIER_MON_SILCOON] = {
.species = SPECIES_SILCOON,
.moves = {MOVE_HARDEN, MOVE_NONE, MOVE_NONE, MOVE_NONE},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_BASHFUL
},
- [12] = {
+ [FRONTIER_MON_CASCOON] = {
.species = SPECIES_CASCOON,
.moves = {MOVE_HARDEN, MOVE_NONE, MOVE_NONE, MOVE_NONE},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_BASHFUL
},
- [13] = {
+ [FRONTIER_MON_IGGLYBUFF] = {
.species = SPECIES_IGGLYBUFF,
.moves = {MOVE_SWEET_KISS, MOVE_SING, MOVE_ATTRACT, MOVE_SEISMIC_TOSS},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [14] = {
+ [FRONTIER_MON_WOOPER] = {
.species = SPECIES_WOOPER,
.moves = {MOVE_YAWN, MOVE_DIG, MOVE_WATER_PULSE, MOVE_RAIN_DANCE},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [15] = {
+ [FRONTIER_MON_TYROGUE] = {
.species = SPECIES_TYROGUE,
.moves = {MOVE_MACH_PUNCH, MOVE_PROTECT, MOVE_DOUBLE_TEAM, MOVE_FACADE},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [16] = {
+ [FRONTIER_MON_SENTRET] = {
.species = SPECIES_SENTRET,
.moves = {MOVE_QUICK_ATTACK, MOVE_FOLLOW_ME, MOVE_HELPING_HAND, MOVE_ASSIST},
.itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [17] = {
+ [FRONTIER_MON_CLEFFA] = {
.species = SPECIES_CLEFFA,
.moves = {MOVE_SWEET_KISS, MOVE_SING, MOVE_ATTRACT, MOVE_METRONOME},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_SERIOUS
},
- [18] = {
+ [FRONTIER_MON_SEEDOT] = {
.species = SPECIES_SEEDOT,
.moves = {MOVE_BULLET_SEED, MOVE_BIDE, MOVE_DEFENSE_CURL, MOVE_ROLLOUT},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [19] = {
+ [FRONTIER_MON_LOTAD] = {
.species = SPECIES_LOTAD,
.moves = {MOVE_RAIN_DANCE, MOVE_WATER_PULSE, MOVE_SUNNY_DAY, MOVE_MEGA_DRAIN},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [20] = {
+ [FRONTIER_MON_POOCHYENA] = {
.species = SPECIES_POOCHYENA,
.moves = {MOVE_CRUNCH, MOVE_SWAGGER, MOVE_ROAR, MOVE_SAND_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [21] = {
+ [FRONTIER_MON_SHEDINJA] = {
.species = SPECIES_SHEDINJA,
.moves = {MOVE_SHADOW_BALL, MOVE_CONFUSE_RAY, MOVE_SILVER_WIND, MOVE_GRUDGE},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_NAIVE
},
- [22] = {
+ [FRONTIER_MON_MAKUHITA] = {
.species = SPECIES_MAKUHITA,
.moves = {MOVE_FAKE_OUT, MOVE_SEISMIC_TOSS, MOVE_DETECT, MOVE_WHIRLWIND},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [23] = {
+ [FRONTIER_MON_WHISMUR] = {
.species = SPECIES_WHISMUR,
.moves = {MOVE_UPROAR, MOVE_SWAGGER, MOVE_BODY_SLAM, MOVE_SMELLING_SALT},
.itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [24] = {
+ [FRONTIER_MON_ZIGZAGOON] = {
.species = SPECIES_ZIGZAGOON,
.moves = {MOVE_HEADBUTT, MOVE_PIN_MISSILE, MOVE_SWIFT, MOVE_SAND_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_SILK_SCARF,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_TIMID
},
- [25] = {
+ [FRONTIER_MON_ZUBAT] = {
.species = SPECIES_ZUBAT,
.moves = {MOVE_POISON_FANG, MOVE_WHIRLWIND, MOVE_CONFUSE_RAY, MOVE_AERIAL_ACE},
.itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_SASSY
},
- [26] = {
+ [FRONTIER_MON_TOGEPI] = {
.species = SPECIES_TOGEPI,
.moves = {MOVE_RETURN, MOVE_YAWN, MOVE_WISH, MOVE_SWEET_KISS},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [27] = {
+ [FRONTIER_MON_SPINARAK] = {
.species = SPECIES_SPINARAK,
.moves = {MOVE_SIGNAL_BEAM, MOVE_NIGHT_SHADE, MOVE_SPIDER_WEB, MOVE_SCARY_FACE},
.itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [28] = {
+ [FRONTIER_MON_MARILL] = {
.species = SPECIES_MARILL,
.moves = {MOVE_WATER_PULSE, MOVE_RAIN_DANCE, MOVE_LIGHT_SCREEN, MOVE_RETURN},
.itemTableId = BATTLE_FRONTIER_ITEM_MYSTIC_WATER,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_GENTLE
},
- [29] = {
+ [FRONTIER_MON_HOPPIP] = {
.species = SPECIES_HOPPIP,
.moves = {MOVE_MEGA_DRAIN, MOVE_LEECH_SEED, MOVE_SLEEP_POWDER, MOVE_STUN_SPORE},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_LAX
},
- [30] = {
+ [FRONTIER_MON_SLUGMA] = {
.species = SPECIES_SLUGMA,
.moves = {MOVE_EMBER, MOVE_ROCK_SLIDE, MOVE_YAWN, MOVE_BODY_SLAM},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_SASSY
},
- [31] = {
+ [FRONTIER_MON_SWINUB] = {
.species = SPECIES_SWINUB,
.moves = {MOVE_ICY_WIND, MOVE_DIG, MOVE_ROCK_TOMB, MOVE_ENDURE},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_GENTLE
},
- [32] = {
+ [FRONTIER_MON_SMEARGLE] = {
.species = SPECIES_SMEARGLE,
.moves = {MOVE_EXTREME_SPEED, MOVE_FAKE_OUT, MOVE_QUICK_ATTACK, MOVE_MACH_PUNCH},
.itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [33] = {
+ [FRONTIER_MON_PIDGEY] = {
.species = SPECIES_PIDGEY,
.moves = {MOVE_GUST, MOVE_SAND_ATTACK, MOVE_WHIRLWIND, MOVE_QUICK_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_SHARP_BEAK,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_LONELY
},
- [34] = {
+ [FRONTIER_MON_RATTATA] = {
.species = SPECIES_RATTATA,
.moves = {MOVE_HYPER_FANG, MOVE_PURSUIT, MOVE_QUICK_ATTACK, MOVE_SWAGGER},
.itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [35] = {
+ [FRONTIER_MON_WYNAUT] = {
.species = SPECIES_WYNAUT,
.moves = {MOVE_ENCORE, MOVE_COUNTER, MOVE_MIRROR_COAT, MOVE_CHARM},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_JOLLY
},
- [36] = {
+ [FRONTIER_MON_SKITTY] = {
.species = SPECIES_SKITTY,
.moves = {MOVE_SING, MOVE_ATTRACT, MOVE_CHARM, MOVE_DOUBLE_SLAP},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [37] = {
+ [FRONTIER_MON_SPEAROW] = {
.species = SPECIES_SPEAROW,
.moves = {MOVE_FURY_ATTACK, MOVE_PURSUIT, MOVE_MIRROR_MOVE, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [38] = {
+ [FRONTIER_MON_HOOTHOOT] = {
.species = SPECIES_HOOTHOOT,
.moves = {MOVE_CONFUSION, MOVE_HYPNOSIS, MOVE_SUPERSONIC, MOVE_REFLECT},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [39] = {
+ [FRONTIER_MON_DIGLETT] = {
.species = SPECIES_DIGLETT,
.moves = {MOVE_MAGNITUDE, MOVE_SLASH, MOVE_ROCK_TOMB, MOVE_SAND_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_NAIVE
},
- [40] = {
+ [FRONTIER_MON_LEDYBA] = {
.species = SPECIES_LEDYBA,
.moves = {MOVE_PSYBEAM, MOVE_AGILITY, MOVE_BATON_PASS, MOVE_LIGHT_SCREEN},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_BASHFUL
},
- [41] = {
+ [FRONTIER_MON_NINCADA] = {
.species = SPECIES_NINCADA,
.moves = {MOVE_MUD_SLAP, MOVE_DIG, MOVE_TOXIC, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_PECHA_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_CALM
},
- [42] = {
+ [FRONTIER_MON_SURSKIT] = {
.species = SPECIES_SURSKIT,
.moves = {MOVE_BUBBLE_BEAM, MOVE_RAIN_DANCE, MOVE_SWEET_SCENT, MOVE_QUICK_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_MYSTIC_WATER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [43] = {
+ [FRONTIER_MON_JIGGLYPUFF] = {
.species = SPECIES_JIGGLYPUFF,
.moves = {MOVE_SING, MOVE_WISH, MOVE_MIMIC, MOVE_DOUBLE_SLAP},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [44] = {
+ [FRONTIER_MON_TAILLOW] = {
.species = SPECIES_TAILLOW,
.moves = {MOVE_FLY, MOVE_QUICK_ATTACK, MOVE_ENDEAVOR, MOVE_FOCUS_ENERGY},
.itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_GENTLE
},
- [45] = {
+ [FRONTIER_MON_WINGULL] = {
.species = SPECIES_WINGULL,
.moves = {MOVE_WATER_PULSE, MOVE_FLY, MOVE_QUICK_ATTACK, MOVE_STEEL_WING},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [46] = {
+ [FRONTIER_MON_NIDORAN_M] = {
.species = SPECIES_NIDORAN_M,
.moves = {MOVE_DOUBLE_KICK, MOVE_POISON_STING, MOVE_DISABLE, MOVE_HELPING_HAND},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [47] = {
+ [FRONTIER_MON_NIDORAN_F] = {
.species = SPECIES_NIDORAN_F,
.moves = {MOVE_CRUNCH, MOVE_DOUBLE_KICK, MOVE_FLATTER, MOVE_HELPING_HAND},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [48] = {
+ [FRONTIER_MON_KIRLIA] = {
.species = SPECIES_KIRLIA,
.moves = {MOVE_CONFUSION, MOVE_WILL_O_WISP, MOVE_FUTURE_SIGHT, MOVE_LIGHT_SCREEN},
.itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [49] = {
+ [FRONTIER_MON_MAREEP] = {
.species = SPECIES_MAREEP,
.moves = {MOVE_SHOCK_WAVE, MOVE_FLASH, MOVE_REFLECT, MOVE_COTTON_SPORE},
.itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [50] = {
+ [FRONTIER_MON_MEDITITE] = {
.species = SPECIES_MEDITITE,
.moves = {MOVE_HI_JUMP_KICK, MOVE_MEDITATE, MOVE_SWAGGER, MOVE_PSYCH_UP},
.itemTableId = BATTLE_FRONTIER_ITEM_MENTAL_HERB,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_NAUGHTY
},
- [51] = {
+ [FRONTIER_MON_SLAKOTH] = {
.species = SPECIES_SLAKOTH,
.moves = {MOVE_YAWN, MOVE_SCRATCH, MOVE_ENCORE, MOVE_COUNTER},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [52] = {
+ [FRONTIER_MON_PARAS] = {
.species = SPECIES_PARAS,
.moves = {MOVE_SPORE, MOVE_LEECH_LIFE, MOVE_SLASH, MOVE_LIGHT_SCREEN},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [53] = {
+ [FRONTIER_MON_EKANS] = {
.species = SPECIES_EKANS,
.moves = {MOVE_ACID, MOVE_DIG, MOVE_SCREECH, MOVE_TORMENT},
.itemTableId = BATTLE_FRONTIER_ITEM_POISON_BARB,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [54] = {
+ [FRONTIER_MON_DITTO] = {
.species = SPECIES_DITTO,
.moves = {MOVE_TRANSFORM, MOVE_NONE, MOVE_NONE, MOVE_NONE},
.itemTableId = BATTLE_FRONTIER_ITEM_METAL_POWDER,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [55] = {
+ [FRONTIER_MON_BARBOACH] = {
.species = SPECIES_BARBOACH,
.moves = {MOVE_MAGNITUDE, MOVE_WATER_PULSE, MOVE_SPARK, MOVE_FUTURE_SIGHT},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_BASHFUL
},
- [56] = {
+ [FRONTIER_MON_MEOWTH] = {
.species = SPECIES_MEOWTH,
.moves = {MOVE_SLASH, MOVE_BITE, MOVE_SCREECH, MOVE_FAKE_OUT},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [57] = {
+ [FRONTIER_MON_PINECO] = {
.species = SPECIES_PINECO,
.moves = {MOVE_SELF_DESTRUCT, MOVE_TAKE_DOWN, MOVE_REFLECT, MOVE_LIGHT_SCREEN},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [58] = {
+ [FRONTIER_MON_TRAPINCH] = {
.species = SPECIES_TRAPINCH,
.moves = {MOVE_TOXIC, MOVE_DIG, MOVE_SANDSTORM, MOVE_SAND_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_SERIOUS
},
- [59] = {
+ [FRONTIER_MON_SPHEAL] = {
.species = SPECIES_SPHEAL,
.moves = {MOVE_ICE_BALL, MOVE_WATER_PULSE, MOVE_HAIL, MOVE_MUD_SLAP},
.itemTableId = BATTLE_FRONTIER_ITEM_NEVER_MELT_ICE,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [60] = {
+ [FRONTIER_MON_HORSEA] = {
.species = SPECIES_HORSEA,
.moves = {MOVE_WATER_GUN, MOVE_AGILITY, MOVE_ICY_WIND, MOVE_TWISTER},
.itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [61] = {
+ [FRONTIER_MON_SHROOMISH] = {
.species = SPECIES_SHROOMISH,
.moves = {MOVE_SPORE, MOVE_BULLET_SEED, MOVE_LEECH_SEED, MOVE_HEADBUTT},
.itemTableId = BATTLE_FRONTIER_ITEM_MIRACLE_SEED,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [62] = {
+ [FRONTIER_MON_SHUPPET] = {
.species = SPECIES_SHUPPET,
.moves = {MOVE_WILL_O_WISP, MOVE_NIGHT_SHADE, MOVE_GRUDGE, MOVE_KNOCK_OFF},
.itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RASH
},
- [63] = {
+ [FRONTIER_MON_DUSKULL] = {
.species = SPECIES_DUSKULL,
.moves = {MOVE_SKILL_SWAP, MOVE_NIGHT_SHADE, MOVE_DISABLE, MOVE_CONFUSE_RAY},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [64] = {
+ [FRONTIER_MON_ELECTRIKE] = {
.species = SPECIES_ELECTRIKE,
.moves = {MOVE_SPARK, MOVE_THUNDER_WAVE, MOVE_ROAR, MOVE_QUICK_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [65] = {
+ [FRONTIER_MON_VULPIX] = {
.species = SPECIES_VULPIX,
.moves = {MOVE_WILL_O_WISP, MOVE_CONFUSE_RAY, MOVE_FIRE_SPIN, MOVE_QUICK_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [66] = {
+ [FRONTIER_MON_PIKACHU] = {
.species = SPECIES_PIKACHU,
.moves = {MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_DOUBLE_TEAM, MOVE_QUICK_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_LIGHT_BALL,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [67] = {
+ [FRONTIER_MON_SANDSHREW] = {
.species = SPECIES_SANDSHREW,
.moves = {MOVE_DIG, MOVE_ROCK_TOMB, MOVE_SANDSTORM, MOVE_SAND_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_SOFT_SAND,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [68] = {
+ [FRONTIER_MON_POLIWAG] = {
.species = SPECIES_POLIWAG,
.moves = {MOVE_HYPNOSIS, MOVE_ICY_WIND, MOVE_WATER_GUN, MOVE_RAIN_DANCE},
.itemTableId = BATTLE_FRONTIER_ITEM_MYSTIC_WATER,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [69] = {
+ [FRONTIER_MON_BELLSPROUT] = {
.species = SPECIES_BELLSPROUT,
.moves = {MOVE_RAZOR_LEAF, MOVE_ACID, MOVE_STUN_SPORE, MOVE_WRAP},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_LAX
},
- [70] = {
+ [FRONTIER_MON_GEODUDE] = {
.species = SPECIES_GEODUDE,
.moves = {MOVE_MAGNITUDE, MOVE_ROCK_BLAST, MOVE_STRENGTH, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_BRAVE
},
- [71] = {
+ [FRONTIER_MON_DRATINI] = {
.species = SPECIES_DRATINI,
.moves = {MOVE_OUTRAGE, MOVE_THUNDER_WAVE, MOVE_SUPERSONIC, MOVE_WATER_PULSE},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [72] = {
+ [FRONTIER_MON_SNUBBULL] = {
.species = SPECIES_SNUBBULL,
.moves = {MOVE_BITE, MOVE_CHARM, MOVE_SWAGGER, MOVE_SCARY_FACE},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [73] = {
+ [FRONTIER_MON_REMORAID] = {
.species = SPECIES_REMORAID,
.moves = {MOVE_BUBBLE_BEAM, MOVE_AURORA_BEAM, MOVE_PSYBEAM, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_QUIRKY
},
- [74] = {
+ [FRONTIER_MON_LARVITAR] = {
.species = SPECIES_LARVITAR,
.moves = {MOVE_THRASH, MOVE_ROCK_SLIDE, MOVE_DIG, MOVE_DRAGON_DANCE},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_NAUGHTY
},
- [75] = {
+ [FRONTIER_MON_BALTOY] = {
.species = SPECIES_BALTOY,
.moves = {MOVE_PSYBEAM, MOVE_ANCIENT_POWER, MOVE_LIGHT_SCREEN, MOVE_MUD_SLAP},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_NAUGHTY
},
- [76] = {
+ [FRONTIER_MON_SNORUNT] = {
.species = SPECIES_SNORUNT,
.moves = {MOVE_ICY_WIND, MOVE_HEADBUTT, MOVE_LEER, MOVE_BITE},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_BRAVE
},
- [77] = {
+ [FRONTIER_MON_BAGON] = {
.species = SPECIES_BAGON,
.moves = {MOVE_DRAGON_BREATH, MOVE_HEADBUTT, MOVE_BRICK_BREAK, MOVE_SCARY_FACE},
.itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_NAUGHTY
},
- [78] = {
+ [FRONTIER_MON_BELDUM] = {
.species = SPECIES_BELDUM,
.moves = {MOVE_TAKE_DOWN, MOVE_NONE, MOVE_NONE, MOVE_NONE},
.itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [79] = {
+ [FRONTIER_MON_GULPIN] = {
.species = SPECIES_GULPIN,
.moves = {MOVE_TOXIC, MOVE_YAWN, MOVE_PAIN_SPLIT, MOVE_ATTRACT},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_SERIOUS
},
- [80] = {
+ [FRONTIER_MON_VENONAT] = {
.species = SPECIES_VENONAT,
.moves = {MOVE_PSYBEAM, MOVE_SUPERSONIC, MOVE_STUN_SPORE, MOVE_SKILL_SWAP},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [81] = {
+ [FRONTIER_MON_MANKEY] = {
.species = SPECIES_MANKEY,
.moves = {MOVE_KARATE_CHOP, MOVE_LOW_KICK, MOVE_SCREECH, MOVE_SWAGGER},
.itemTableId = BATTLE_FRONTIER_ITEM_BLACK_BELT,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_NAUGHTY
},
- [82] = {
+ [FRONTIER_MON_MACHOP] = {
.species = SPECIES_MACHOP,
.moves = {MOVE_SEISMIC_TOSS, MOVE_REVENGE, MOVE_ROCK_TOMB, MOVE_SCARY_FACE},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [83] = {
+ [FRONTIER_MON_SHELLDER] = {
.species = SPECIES_SHELLDER,
.moves = {MOVE_ICICLE_SPEAR, MOVE_SUPERSONIC, MOVE_CLAMP, MOVE_WITHDRAW},
.itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [84] = {
+ [FRONTIER_MON_SMOOCHUM] = {
.species = SPECIES_SMOOCHUM,
.moves = {MOVE_SWEET_KISS, MOVE_SING, MOVE_MUD_SLAP, MOVE_FAKE_OUT},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [85] = {
+ [FRONTIER_MON_NUMEL] = {
.species = SPECIES_NUMEL,
.moves = {MOVE_EMBER, MOVE_MAGNITUDE, MOVE_ROCK_TOMB, MOVE_SANDSTORM},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [86] = {
+ [FRONTIER_MON_CARVANHA] = {
.species = SPECIES_CARVANHA,
.moves = {MOVE_BITE, MOVE_SCREECH, MOVE_SCARY_FACE, MOVE_SWAGGER},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIET
},
- [87] = {
+ [FRONTIER_MON_CORPHISH] = {
.species = SPECIES_CORPHISH,
.moves = {MOVE_CRABHAMMER, MOVE_WATER_PULSE, MOVE_MUD_SLAP, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_MYSTIC_WATER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_BRAVE
},
- [88] = {
+ [FRONTIER_MON_CHARMANDER] = {
.species = SPECIES_CHARMANDER,
.moves = {MOVE_FIRE_SPIN, MOVE_METAL_CLAW, MOVE_SMOKESCREEN, MOVE_SCARY_FACE},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [89] = {
+ [FRONTIER_MON_CYNDAQUIL] = {
.species = SPECIES_CYNDAQUIL,
.moves = {MOVE_EMBER, MOVE_SWIFT, MOVE_QUICK_ATTACK, MOVE_SMOKESCREEN},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [90] = {
+ [FRONTIER_MON_ABRA] = {
.species = SPECIES_ABRA,
.moves = {MOVE_MIMIC, MOVE_METRONOME, MOVE_FLASH, MOVE_SEISMIC_TOSS},
.itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_LONELY
},
- [91] = {
+ [FRONTIER_MON_DODUO] = {
.species = SPECIES_DODUO,
.moves = {MOVE_FURY_ATTACK, MOVE_UPROAR, MOVE_MUD_SLAP, MOVE_FAINT_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_LONELY
},
- [92] = {
+ [FRONTIER_MON_GASTLY] = {
.species = SPECIES_GASTLY,
.moves = {MOVE_DREAM_EATER, MOVE_HYPNOSIS, MOVE_NIGHT_SHADE, MOVE_CONFUSE_RAY},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_LONELY
},
- [93] = {
+ [FRONTIER_MON_SWABLU] = {
.species = SPECIES_SWABLU,
.moves = {MOVE_TAKE_DOWN, MOVE_DREAM_EATER, MOVE_SING, MOVE_ATTRACT},
.itemTableId = BATTLE_FRONTIER_ITEM_MENTAL_HERB,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_LONELY
},
- [94] = {
+ [FRONTIER_MON_TREECKO] = {
.species = SPECIES_TREECKO,
.moves = {MOVE_BULLET_SEED, MOVE_AERIAL_ACE, MOVE_QUICK_ATTACK, MOVE_DOUBLE_TEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_LONELY
},
- [95] = {
+ [FRONTIER_MON_TORCHIC] = {
.species = SPECIES_TORCHIC,
.moves = {MOVE_FIRE_SPIN, MOVE_QUICK_ATTACK, MOVE_SAND_ATTACK, MOVE_DOUBLE_TEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_LONELY
},
- [96] = {
+ [FRONTIER_MON_MUDKIP] = {
.species = SPECIES_MUDKIP,
.moves = {MOVE_WHIRLPOOL, MOVE_ENDEAVOR, MOVE_MUD_SPORT, MOVE_MUD_SLAP},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [97] = {
+ [FRONTIER_MON_SQUIRTLE] = {
.species = SPECIES_SQUIRTLE,
.moves = {MOVE_WATER_PULSE, MOVE_BITE, MOVE_WITHDRAW, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [98] = {
+ [FRONTIER_MON_TOTODILE] = {
.species = SPECIES_TOTODILE,
.moves = {MOVE_SLASH, MOVE_WATER_PULSE, MOVE_SCREECH, MOVE_ICY_WIND},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [99] = {
+ [FRONTIER_MON_SLOWPOKE] = {
.species = SPECIES_SLOWPOKE,
.moves = {MOVE_CONFUSION, MOVE_DISABLE, MOVE_WATER_PULSE, MOVE_YAWN},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_BRAVE
},
- [100] = {
+ [FRONTIER_MON_BULBASAUR] = {
.species = SPECIES_BULBASAUR,
.moves = {MOVE_RAZOR_LEAF, MOVE_SWEET_SCENT, MOVE_SLEEP_POWDER, MOVE_LIGHT_SCREEN},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [101] = {
+ [FRONTIER_MON_CHIKORITA] = {
.species = SPECIES_CHIKORITA,
.moves = {MOVE_SECRET_POWER, MOVE_BULLET_SEED, MOVE_MUD_SLAP, MOVE_LIGHT_SCREEN},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [102] = {
+ [FRONTIER_MON_ODDISH] = {
.species = SPECIES_ODDISH,
.moves = {MOVE_ACID, MOVE_STUN_SPORE, MOVE_SWEET_SCENT, MOVE_MOONLIGHT},
.itemTableId = BATTLE_FRONTIER_ITEM_PECHA_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [103] = {
+ [FRONTIER_MON_PSYDUCK] = {
.species = SPECIES_PSYDUCK,
.moves = {MOVE_CONFUSION, MOVE_FURY_SWIPES, MOVE_AERIAL_ACE, MOVE_DISABLE},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_HASTY
},
- [104] = {
+ [FRONTIER_MON_CUBONE] = {
.species = SPECIES_CUBONE,
.moves = {MOVE_BONE_CLUB, MOVE_HEADBUTT, MOVE_BRICK_BREAK, MOVE_AERIAL_ACE},
.itemTableId = BATTLE_FRONTIER_ITEM_SOFT_SAND,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [105] = {
+ [FRONTIER_MON_GOLDEEN] = {
.species = SPECIES_GOLDEEN,
.moves = {MOVE_WATERFALL, MOVE_FURY_ATTACK, MOVE_AGILITY, MOVE_PSYBEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [106] = {
+ [FRONTIER_MON_NATU] = {
.species = SPECIES_NATU,
.moves = {MOVE_NIGHT_SHADE, MOVE_FUTURE_SIGHT, MOVE_CONFUSE_RAY, MOVE_FLASH},
.itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [107] = {
+ [FRONTIER_MON_CLEFAIRY] = {
.species = SPECIES_CLEFAIRY,
.moves = {MOVE_FOLLOW_ME, MOVE_RETURN, MOVE_ENCORE, MOVE_SING},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_LONELY
},
- [108] = {
+ [FRONTIER_MON_MAGNEMITE] = {
.species = SPECIES_MAGNEMITE,
.moves = {MOVE_SHOCK_WAVE, MOVE_SUPERSONIC, MOVE_METAL_SOUND, MOVE_REFLECT},
.itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_GENTLE
},
- [109] = {
+ [FRONTIER_MON_SEEL] = {
.species = SPECIES_SEEL,
.moves = {MOVE_AURORA_BEAM, MOVE_DIVE, MOVE_BODY_SLAM, MOVE_FAKE_OUT},
.itemTableId = BATTLE_FRONTIER_ITEM_ASPEAR_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [110] = {
+ [FRONTIER_MON_GRIMER] = {
.species = SPECIES_GRIMER,
.moves = {MOVE_SLUDGE, MOVE_ROCK_TOMB, MOVE_ACID_ARMOR, MOVE_MINIMIZE},
.itemTableId = BATTLE_FRONTIER_ITEM_PECHA_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [111] = {
+ [FRONTIER_MON_KRABBY] = {
.species = SPECIES_KRABBY,
.moves = {MOVE_CRABHAMMER, MOVE_MUD_SHOT, MOVE_FLAIL, MOVE_KNOCK_OFF},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [112] = {
+ [FRONTIER_MON_EXEGGCUTE] = {
.species = SPECIES_EXEGGCUTE,
.moves = {MOVE_CONFUSION, MOVE_ANCIENT_POWER, MOVE_LEECH_SEED, MOVE_LIGHT_SCREEN},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_NAUGHTY
},
- [113] = {
+ [FRONTIER_MON_EEVEE] = {
.species = SPECIES_EEVEE,
.moves = {MOVE_CHARM, MOVE_ATTRACT, MOVE_FLAIL, MOVE_ENDURE},
.itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [114] = {
+ [FRONTIER_MON_DROWZEE] = {
.species = SPECIES_DROWZEE,
.moves = {MOVE_CONFUSION, MOVE_HEADBUTT, MOVE_DISABLE, MOVE_BARRIER},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [115] = {
+ [FRONTIER_MON_VOLTORB] = {
.species = SPECIES_VOLTORB,
.moves = {MOVE_SPARK, MOVE_SCREECH, MOVE_ROLLOUT, MOVE_LIGHT_SCREEN},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [116] = {
+ [FRONTIER_MON_CHINCHOU] = {
.species = SPECIES_CHINCHOU,
.moves = {MOVE_SPARK, MOVE_DIVE, MOVE_CONFUSE_RAY, MOVE_TAKE_DOWN},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [117] = {
+ [FRONTIER_MON_TEDDIURSA] = {
.species = SPECIES_TEDDIURSA,
.moves = {MOVE_SECRET_POWER, MOVE_FAKE_TEARS, MOVE_FAINT_ATTACK, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [118] = {
+ [FRONTIER_MON_DELIBIRD] = {
.species = SPECIES_DELIBIRD,
.moves = {MOVE_PRESENT, MOVE_ICE_BALL, MOVE_AERIAL_ACE, MOVE_HAIL},
.itemTableId = BATTLE_FRONTIER_ITEM_NEVER_MELT_ICE,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [119] = {
+ [FRONTIER_MON_HOUNDOUR] = {
.species = SPECIES_HOUNDOUR,
.moves = {MOVE_CRUNCH, MOVE_EMBER, MOVE_ROAR, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_CHARCOAL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [120] = {
+ [FRONTIER_MON_PHANPY] = {
.species = SPECIES_PHANPY,
.moves = {MOVE_ROLLOUT, MOVE_DEFENSE_CURL, MOVE_ROCK_TOMB, MOVE_SANDSTORM},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_NAUGHTY
},
- [121] = {
+ [FRONTIER_MON_SPOINK] = {
.species = SPECIES_SPOINK,
.moves = {MOVE_PSYWAVE, MOVE_BOUNCE, MOVE_MAGIC_COAT, MOVE_CONFUSE_RAY},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [122] = {
+ [FRONTIER_MON_ARON] = {
.species = SPECIES_ARON,
.moves = {MOVE_METAL_CLAW, MOVE_AERIAL_ACE, MOVE_METAL_SOUND, MOVE_ROAR},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [123] = {
+ [FRONTIER_MON_LUVDISC] = {
.species = SPECIES_LUVDISC,
.moves = {MOVE_SWEET_KISS, MOVE_ATTRACT, MOVE_DIVE, MOVE_RAIN_DANCE},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [124] = {
+ [FRONTIER_MON_TENTACOOL] = {
.species = SPECIES_TENTACOOL,
.moves = {MOVE_BUBBLE_BEAM, MOVE_ACID, MOVE_BARRIER, MOVE_WRAP},
.itemTableId = BATTLE_FRONTIER_ITEM_PECHA_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [125] = {
+ [FRONTIER_MON_CACNEA] = {
.species = SPECIES_CACNEA,
.moves = {MOVE_NEEDLE_ARM, MOVE_FAINT_ATTACK, MOVE_COTTON_SPORE, MOVE_SAND_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [126] = {
+ [FRONTIER_MON_UNOWN] = {
.species = SPECIES_UNOWN,
.moves = {MOVE_HIDDEN_POWER, MOVE_NONE, MOVE_NONE, MOVE_NONE},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [127] = {
+ [FRONTIER_MON_KOFFING] = {
.species = SPECIES_KOFFING,
.moves = {MOVE_SLUDGE, MOVE_SMOKESCREEN, MOVE_TORMENT, MOVE_HAZE},
.itemTableId = BATTLE_FRONTIER_ITEM_POISON_BARB,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [128] = {
+ [FRONTIER_MON_STARYU] = {
.species = SPECIES_STARYU,
.moves = {MOVE_BUBBLE_BEAM, MOVE_MINIMIZE, MOVE_SWIFT, MOVE_LIGHT_SCREEN},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [129] = {
+ [FRONTIER_MON_SKIPLOOM] = {
.species = SPECIES_SKIPLOOM,
.moves = {MOVE_MEGA_DRAIN, MOVE_CONFUSION, MOVE_COTTON_SPORE, MOVE_SYNTHESIS},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [130] = {
+ [FRONTIER_MON_NUZLEAF] = {
.species = SPECIES_NUZLEAF,
.moves = {MOVE_EXTRASENSORY, MOVE_FAKE_OUT, MOVE_RAZOR_WIND, MOVE_FAINT_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [131] = {
+ [FRONTIER_MON_LOMBRE] = {
.species = SPECIES_LOMBRE,
.moves = {MOVE_WATER_PULSE, MOVE_FAKE_OUT, MOVE_BRICK_BREAK, MOVE_ABSORB},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [132] = {
+ [FRONTIER_MON_VIBRAVA] = {
.species = SPECIES_VIBRAVA,
.moves = {MOVE_DRAGON_BREATH, MOVE_DIG, MOVE_SCREECH, MOVE_ROCK_TOMB},
.itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [133] = {
+ [FRONTIER_MON_RHYHORN] = {
.species = SPECIES_RHYHORN,
.moves = {MOVE_ROCK_BLAST, MOVE_DIG, MOVE_SCARY_FACE, MOVE_ROAR},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [134] = {
+ [FRONTIER_MON_CLAMPERL] = {
.species = SPECIES_CLAMPERL,
.moves = {MOVE_DIVE, MOVE_TOXIC, MOVE_IRON_DEFENSE, MOVE_DOUBLE_TEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_DEEP_SEA_SCALE,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [135] = {
+ [FRONTIER_MON_PIDGEOTTO] = {
.species = SPECIES_PIDGEOTTO,
.moves = {MOVE_AERIAL_ACE, MOVE_QUICK_ATTACK, MOVE_FEATHER_DANCE, MOVE_SAND_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [136] = {
+ [FRONTIER_MON_GROWLITHE] = {
.species = SPECIES_GROWLITHE,
.moves = {MOVE_FLAME_WHEEL, MOVE_BITE, MOVE_ROAR, MOVE_AGILITY},
.itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [137] = {
+ [FRONTIER_MON_FARFETCHD] = {
.species = SPECIES_FARFETCHD,
.moves = {MOVE_SLASH, MOVE_KNOCK_OFF, MOVE_SWORDS_DANCE, MOVE_AGILITY},
.itemTableId = BATTLE_FRONTIER_ITEM_STICK,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [138] = {
+ [FRONTIER_MON_OMANYTE] = {
.species = SPECIES_OMANYTE,
.moves = {MOVE_MUD_SHOT, MOVE_WATER_GUN, MOVE_ANCIENT_POWER, MOVE_TICKLE},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [139] = {
+ [FRONTIER_MON_KABUTO] = {
.species = SPECIES_KABUTO,
.moves = {MOVE_MEGA_DRAIN, MOVE_ANCIENT_POWER, MOVE_SAND_ATTACK, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [140] = {
+ [FRONTIER_MON_LILEEP] = {
.species = SPECIES_LILEEP,
.moves = {MOVE_ANCIENT_POWER, MOVE_ACID, MOVE_INGRAIN, MOVE_CONFUSE_RAY},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [141] = {
+ [FRONTIER_MON_ANORITH] = {
.species = SPECIES_ANORITH,
.moves = {MOVE_METAL_CLAW, MOVE_FURY_CUTTER, MOVE_ANCIENT_POWER, MOVE_WATER_GUN},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [142] = {
+ [FRONTIER_MON_AIPOM] = {
.species = SPECIES_AIPOM,
.moves = {MOVE_FURY_SWIPES, MOVE_SAND_ATTACK, MOVE_BATON_PASS, MOVE_AGILITY},
.itemTableId = BATTLE_FRONTIER_ITEM_SILK_SCARF,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [143] = {
+ [FRONTIER_MON_ELEKID] = {
.species = SPECIES_ELEKID,
.moves = {MOVE_THUNDER_PUNCH, MOVE_QUICK_ATTACK, MOVE_SWIFT, MOVE_LIGHT_SCREEN},
.itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_NAIVE
},
- [144] = {
+ [FRONTIER_MON_LOUDRED] = {
.species = SPECIES_LOUDRED,
.moves = {MOVE_STOMP, MOVE_HOWL, MOVE_ASTONISH, MOVE_SUPERSONIC},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [145] = {
+ [FRONTIER_MON_SPINDA] = {
.species = SPECIES_SPINDA,
.moves = {MOVE_DIZZY_PUNCH, MOVE_TEETER_DANCE, MOVE_PSYBEAM, MOVE_FAINT_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [146] = {
+ [FRONTIER_MON_NIDORINA] = {
.species = SPECIES_NIDORINA,
.moves = {MOVE_DOUBLE_KICK, MOVE_BITE, MOVE_AERIAL_ACE, MOVE_FLATTER},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [147] = {
+ [FRONTIER_MON_NIDORINO] = {
.species = SPECIES_NIDORINO,
.moves = {MOVE_DOUBLE_KICK, MOVE_WATER_PULSE, MOVE_MUD_SLAP, MOVE_FLATTER},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [148] = {
+ [FRONTIER_MON_FLAAFFY] = {
.species = SPECIES_FLAAFFY,
.moves = {MOVE_SHOCK_WAVE, MOVE_THUNDER_WAVE, MOVE_COTTON_SPORE, MOVE_LIGHT_SCREEN},
.itemTableId = BATTLE_FRONTIER_ITEM_MAGNET,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MILD
},
- [149] = {
+ [FRONTIER_MON_MAGBY] = {
.species = SPECIES_MAGBY,
.moves = {MOVE_FIRE_PUNCH, MOVE_SMOKESCREEN, MOVE_CONFUSE_RAY, MOVE_SMOG},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [150] = {
+ [FRONTIER_MON_NOSEPASS] = {
.species = SPECIES_NOSEPASS,
.moves = {MOVE_ROCK_SLIDE, MOVE_SHOCK_WAVE, MOVE_THUNDER_WAVE, MOVE_SANDSTORM},
.itemTableId = BATTLE_FRONTIER_ITEM_HARD_STONE,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_SASSY
},
- [151] = {
+ [FRONTIER_MON_CORSOLA] = {
.species = SPECIES_CORSOLA,
.moves = {MOVE_BUBBLE_BEAM, MOVE_MIRROR_COAT, MOVE_ATTRACT, MOVE_ANCIENT_POWER},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_IMPISH
},
- [152] = {
+ [FRONTIER_MON_MAWILE] = {
.species = SPECIES_MAWILE,
.moves = {MOVE_CRUNCH, MOVE_FAKE_TEARS, MOVE_IRON_DEFENSE, MOVE_BATON_PASS},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [153] = {
+ [FRONTIER_MON_BUTTERFREE] = {
.species = SPECIES_BUTTERFREE,
.moves = {MOVE_SILVER_WIND, MOVE_PSYBEAM, MOVE_TOXIC, MOVE_WHIRLWIND},
.itemTableId = BATTLE_FRONTIER_ITEM_PECHA_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [154] = {
+ [FRONTIER_MON_BEEDRILL] = {
.species = SPECIES_BEEDRILL,
.moves = {MOVE_TWINEEDLE, MOVE_PURSUIT, MOVE_ENDEAVOR, MOVE_AGILITY},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_NAUGHTY
},
- [155] = {
+ [FRONTIER_MON_POLIWHIRL] = {
.species = SPECIES_POLIWHIRL,
.moves = {MOVE_WATER_PULSE, MOVE_DOUBLE_SLAP, MOVE_ICY_WIND, MOVE_RAIN_DANCE},
.itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [156] = {
+ [FRONTIER_MON_ONIX] = {
.species = SPECIES_ONIX,
.moves = {MOVE_ROCK_SLIDE, MOVE_BIND, MOVE_DRAGON_BREATH, MOVE_SANDSTORM},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [157] = {
+ [FRONTIER_MON_BEAUTIFLY] = {
.species = SPECIES_BEAUTIFLY,
.moves = {MOVE_SILVER_WIND, MOVE_MEGA_DRAIN, MOVE_ATTRACT, MOVE_WHIRLWIND},
.itemTableId = BATTLE_FRONTIER_ITEM_MENTAL_HERB,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [158] = {
+ [FRONTIER_MON_DUSTOX] = {
.species = SPECIES_DUSTOX,
.moves = {MOVE_SILVER_WIND, MOVE_TOXIC, MOVE_PSYBEAM, MOVE_WHIRLWIND},
.itemTableId = BATTLE_FRONTIER_ITEM_SILVER_POWDER,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [159] = {
+ [FRONTIER_MON_LEDIAN] = {
.species = SPECIES_LEDIAN,
.moves = {MOVE_COMET_PUNCH, MOVE_BATON_PASS, MOVE_SWORDS_DANCE, MOVE_AGILITY},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_BASHFUL
},
- [160] = {
+ [FRONTIER_MON_ARIADOS] = {
.species = SPECIES_ARIADOS,
.moves = {MOVE_SIGNAL_BEAM, MOVE_SPIDER_WEB, MOVE_NIGHT_SHADE, MOVE_TOXIC},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_SERIOUS
},
- [161] = {
+ [FRONTIER_MON_YANMA] = {
.species = SPECIES_YANMA,
.moves = {MOVE_SIGNAL_BEAM, MOVE_AERIAL_ACE, MOVE_DOUBLE_TEAM, MOVE_DETECT},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_RELAXED
},
- [162] = {
+ [FRONTIER_MON_DELCATTY_1] = {
.species = SPECIES_DELCATTY,
.moves = {MOVE_SECRET_POWER, MOVE_FAINT_ATTACK, MOVE_DOUBLE_TEAM, MOVE_HEAL_BELL},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_LONELY
},
- [163] = {
+ [FRONTIER_MON_SABLEYE_1] = {
.species = SPECIES_SABLEYE,
.moves = {MOVE_FAINT_ATTACK, MOVE_CONFUSE_RAY, MOVE_KNOCK_OFF, MOVE_FAKE_OUT},
.itemTableId = BATTLE_FRONTIER_ITEM_BLACK_GLASSES,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_LONELY
},
- [164] = {
+ [FRONTIER_MON_LICKITUNG_1] = {
.species = SPECIES_LICKITUNG,
.moves = {MOVE_SLAM, MOVE_BRICK_BREAK, MOVE_LICK, MOVE_MUD_SLAP},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [165] = {
+ [FRONTIER_MON_WEEPINBELL_1] = {
.species = SPECIES_WEEPINBELL,
.moves = {MOVE_RAZOR_LEAF, MOVE_ACID, MOVE_WRAP, MOVE_SWEET_SCENT},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIET
},
- [166] = {
+ [FRONTIER_MON_GRAVELER_1] = {
.species = SPECIES_GRAVELER,
.moves = {MOVE_MAGNITUDE, MOVE_ROCK_THROW, MOVE_DEFENSE_CURL, MOVE_BRICK_BREAK},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [167] = {
+ [FRONTIER_MON_GLOOM_1] = {
.species = SPECIES_GLOOM,
.moves = {MOVE_PETAL_DANCE, MOVE_ACID, MOVE_STUN_SPORE, MOVE_MOONLIGHT},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [168] = {
+ [FRONTIER_MON_PORYGON_1] = {
.species = SPECIES_PORYGON,
.moves = {MOVE_PSYBEAM, MOVE_ICY_WIND, MOVE_RECYCLE, MOVE_AGILITY},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [169] = {
+ [FRONTIER_MON_KADABRA_1] = {
.species = SPECIES_KADABRA,
.moves = {MOVE_CONFUSION, MOVE_ROLE_PLAY, MOVE_FUTURE_SIGHT, MOVE_DISABLE},
.itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_IMPISH
},
- [170] = {
+ [FRONTIER_MON_WAILMER_1] = {
.species = SPECIES_WAILMER,
.moves = {MOVE_WHIRLPOOL, MOVE_ROAR, MOVE_DEFENSE_CURL, MOVE_ROLLOUT},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_DOCILE
},
- [171] = {
+ [FRONTIER_MON_ROSELIA_1] = {
.species = SPECIES_ROSELIA,
.moves = {MOVE_MAGICAL_LEAF, MOVE_TOXIC, MOVE_GRASS_WHISTLE, MOVE_COTTON_SPORE},
.itemTableId = BATTLE_FRONTIER_ITEM_PECHA_BERRY,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [172] = {
+ [FRONTIER_MON_VOLBEAT_1] = {
.species = SPECIES_VOLBEAT,
.moves = {MOVE_SILVER_WIND, MOVE_CONFUSE_RAY, MOVE_QUICK_ATTACK, MOVE_HELPING_HAND},
.itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIRKY
},
- [173] = {
+ [FRONTIER_MON_ILLUMISE_1] = {
.species = SPECIES_ILLUMISE,
.moves = {MOVE_SILVER_WIND, MOVE_WISH, MOVE_QUICK_ATTACK, MOVE_HELPING_HAND},
.itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [174] = {
+ [FRONTIER_MON_IVYSAUR_1] = {
.species = SPECIES_IVYSAUR,
.moves = {MOVE_PETAL_DANCE, MOVE_GROWTH, MOVE_SWEET_SCENT, MOVE_FURY_CUTTER},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_GENTLE
},
- [175] = {
+ [FRONTIER_MON_CHARMELEON_1] = {
.species = SPECIES_CHARMELEON,
.moves = {MOVE_SLASH, MOVE_FIRE_SPIN, MOVE_SWORDS_DANCE, MOVE_AERIAL_ACE},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_NAUGHTY
},
- [176] = {
+ [FRONTIER_MON_WARTORTLE_1] = {
.species = SPECIES_WARTORTLE,
.moves = {MOVE_WATER_PULSE, MOVE_BITE, MOVE_MUD_SLAP, MOVE_YAWN},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [177] = {
+ [FRONTIER_MON_PARASECT_1] = {
.species = SPECIES_PARASECT,
.moves = {MOVE_SLASH, MOVE_PSYBEAM, MOVE_STUN_SPORE, MOVE_FLASH},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_RASH
},
- [178] = {
+ [FRONTIER_MON_MACHOKE_1] = {
.species = SPECIES_MACHOKE,
.moves = {MOVE_LOW_KICK, MOVE_ROCK_TOMB, MOVE_FORESIGHT, MOVE_SCARY_FACE},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [179] = {
+ [FRONTIER_MON_HAUNTER_1] = {
.species = SPECIES_HAUNTER,
.moves = {MOVE_SHADOW_PUNCH, MOVE_CONFUSE_RAY, MOVE_SPITE, MOVE_GRUDGE},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RASH
},
- [180] = {
+ [FRONTIER_MON_BAYLEEF_1] = {
.species = SPECIES_BAYLEEF,
.moves = {MOVE_RAZOR_LEAF, MOVE_TOXIC, MOVE_SAFEGUARD, MOVE_LIGHT_SCREEN},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [181] = {
+ [FRONTIER_MON_QUILAVA_1] = {
.species = SPECIES_QUILAVA,
.moves = {MOVE_FLAME_WHEEL, MOVE_FURY_SWIPES, MOVE_SWIFT, MOVE_SMOKESCREEN},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [182] = {
+ [FRONTIER_MON_CROCONAW_1] = {
.species = SPECIES_CROCONAW,
.moves = {MOVE_SLASH, MOVE_WATER_PULSE, MOVE_BITE, MOVE_SCARY_FACE},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [183] = {
+ [FRONTIER_MON_TOGETIC_1] = {
.species = SPECIES_TOGETIC,
.moves = {MOVE_AERIAL_ACE, MOVE_MAGICAL_LEAF, MOVE_WISH, MOVE_FOLLOW_ME},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [184] = {
+ [FRONTIER_MON_MURKROW_1] = {
.species = SPECIES_MURKROW,
.moves = {MOVE_FAINT_ATTACK, MOVE_FLY, MOVE_TORMENT, MOVE_TAUNT},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [185] = {
+ [FRONTIER_MON_WOBBUFFET_1] = {
.species = SPECIES_WOBBUFFET,
.moves = {MOVE_COUNTER, MOVE_MIRROR_COAT, MOVE_CHARM, MOVE_SAFEGUARD},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_CAREFUL
},
- [186] = {
+ [FRONTIER_MON_PLUSLE_1] = {
.species = SPECIES_PLUSLE,
.moves = {MOVE_SPARK, MOVE_FAKE_TEARS, MOVE_QUICK_ATTACK, MOVE_HELPING_HAND},
.itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [187] = {
+ [FRONTIER_MON_MINUN_1] = {
.species = SPECIES_MINUN,
.moves = {MOVE_SPARK, MOVE_CHARM, MOVE_ENCORE, MOVE_HELPING_HAND},
.itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [188] = {
+ [FRONTIER_MON_GROVYLE_1] = {
.species = SPECIES_GROVYLE,
.moves = {MOVE_FURY_CUTTER, MOVE_ENDEAVOR, MOVE_BRICK_BREAK, MOVE_DOUBLE_TEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [189] = {
+ [FRONTIER_MON_COMBUSKEN_1] = {
.species = SPECIES_COMBUSKEN,
.moves = {MOVE_EMBER, MOVE_DOUBLE_KICK, MOVE_QUICK_ATTACK, MOVE_SAND_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [190] = {
+ [FRONTIER_MON_MARSHTOMP_1] = {
.species = SPECIES_MARSHTOMP,
.moves = {MOVE_MUD_SHOT, MOVE_WATER_GUN, MOVE_ROCK_TOMB, MOVE_MUD_SLAP},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [191] = {
+ [FRONTIER_MON_PONYTA_1] = {
.species = SPECIES_PONYTA,
.moves = {MOVE_FIRE_SPIN, MOVE_BOUNCE, MOVE_QUICK_ATTACK, MOVE_TAIL_WHIP},
.itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [192] = {
+ [FRONTIER_MON_AZUMARILL_1] = {
.species = SPECIES_AZUMARILL,
.moves = {MOVE_BUBBLE_BEAM, MOVE_FACADE, MOVE_DIG, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_DOCILE
},
- [193] = {
+ [FRONTIER_MON_SUDOWOODO_1] = {
.species = SPECIES_SUDOWOODO,
.moves = {MOVE_ROCK_SLIDE, MOVE_FAINT_ATTACK, MOVE_SANDSTORM, MOVE_BLOCK},
.itemTableId = BATTLE_FRONTIER_ITEM_HARD_STONE,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [194] = {
+ [FRONTIER_MON_MAGCARGO_1] = {
.species = SPECIES_MAGCARGO,
.moves = {MOVE_ROCK_SLIDE, MOVE_EMBER, MOVE_ACID_ARMOR, MOVE_SANDSTORM},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_GENTLE
},
- [195] = {
+ [FRONTIER_MON_PUPITAR_1] = {
.species = SPECIES_PUPITAR,
.moves = {MOVE_DIG, MOVE_BITE, MOVE_SCARY_FACE, MOVE_SANDSTORM},
.itemTableId = BATTLE_FRONTIER_ITEM_SOFT_SAND,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [196] = {
+ [FRONTIER_MON_SEALEO_1] = {
.species = SPECIES_SEALEO,
.moves = {MOVE_ICE_BALL, MOVE_HAIL, MOVE_SNORE, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [197] = {
+ [FRONTIER_MON_RATICATE_1] = {
.species = SPECIES_RATICATE,
.moves = {MOVE_ENDEAVOR, MOVE_PURSUIT, MOVE_SCARY_FACE, MOVE_QUICK_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_SILK_SCARF,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_NAIVE
},
- [198] = {
+ [FRONTIER_MON_MASQUERAIN_1] = {
.species = SPECIES_MASQUERAIN,
.moves = {MOVE_SILVER_WIND, MOVE_AERIAL_ACE, MOVE_ICY_WIND, MOVE_STUN_SPORE},
.itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_RELAXED
},
- [199] = {
+ [FRONTIER_MON_FURRET_1] = {
.species = SPECIES_FURRET,
.moves = {MOVE_SLAM, MOVE_PROTECT, MOVE_HELPING_HAND, MOVE_FOLLOW_ME},
.itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_SERIOUS
},
- [200] = {
+ [FRONTIER_MON_DUNSPARCE_1] = {
.species = SPECIES_DUNSPARCE,
.moves = {MOVE_HEADBUTT, MOVE_GLARE, MOVE_DEFENSE_CURL, MOVE_ROLLOUT},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [201] = {
+ [FRONTIER_MON_DRAGONAIR_1] = {
.species = SPECIES_DRAGONAIR,
.moves = {MOVE_DRAGON_BREATH, MOVE_LEER, MOVE_WRAP, MOVE_SAFEGUARD},
.itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [202] = {
+ [FRONTIER_MON_MIGHTYENA_1] = {
.species = SPECIES_MIGHTYENA,
.moves = {MOVE_BITE, MOVE_POISON_FANG, MOVE_TAUNT, MOVE_ROAR},
.itemTableId = BATTLE_FRONTIER_ITEM_MENTAL_HERB,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_TIMID
},
- [203] = {
+ [FRONTIER_MON_LINOONE_1] = {
.species = SPECIES_LINOONE,
.moves = {MOVE_SECRET_POWER, MOVE_SAND_ATTACK, MOVE_COVET, MOVE_TICKLE},
.itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [204] = {
+ [FRONTIER_MON_CASTFORM_1] = {
.species = SPECIES_CASTFORM,
.moves = {MOVE_EMBER, MOVE_WATER_PULSE, MOVE_SHOCK_WAVE, MOVE_ICY_WIND},
.itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_HASTY
},
- [205] = {
+ [FRONTIER_MON_SHELGON_1] = {
.species = SPECIES_SHELGON,
.moves = {MOVE_HEADBUTT, MOVE_DRAGON_BREATH, MOVE_PROTECT, MOVE_SCARY_FACE},
.itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [206] = {
+ [FRONTIER_MON_METANG_1] = {
.species = SPECIES_METANG,
.moves = {MOVE_METAL_CLAW, MOVE_CONFUSION, MOVE_PURSUIT, MOVE_SCARY_FACE},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [207] = {
+ [FRONTIER_MON_WIGGLYTUFF_1] = {
.species = SPECIES_WIGGLYTUFF,
.moves = {MOVE_SING, MOVE_DISABLE, MOVE_WISH, MOVE_SECRET_POWER},
.itemTableId = BATTLE_FRONTIER_ITEM_SILK_SCARF,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_RELAXED
},
- [208] = {
+ [FRONTIER_MON_SUNFLORA_1] = {
.species = SPECIES_SUNFLORA,
.moves = {MOVE_PETAL_DANCE, MOVE_INGRAIN, MOVE_LEECH_SEED, MOVE_LIGHT_SCREEN},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [209] = {
+ [FRONTIER_MON_CHIMECHO_1] = {
.species = SPECIES_CHIMECHO,
.moves = {MOVE_PSYWAVE, MOVE_TAKE_DOWN, MOVE_HEAL_BELL, MOVE_SAFEGUARD},
.itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_SASSY
},
- [210] = {
+ [FRONTIER_MON_GLIGAR_1] = {
.species = SPECIES_GLIGAR,
.moves = {MOVE_METAL_CLAW, MOVE_DIG, MOVE_AERIAL_ACE, MOVE_QUICK_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_HASTY
},
- [211] = {
+ [FRONTIER_MON_QWILFISH_1] = {
.species = SPECIES_QWILFISH,
.moves = {MOVE_BUBBLE_BEAM, MOVE_PIN_MISSILE, MOVE_SPIKES, MOVE_MINIMIZE},
.itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK,
.nature = NATURE_IMPISH
},
- [212] = {
+ [FRONTIER_MON_SNEASEL_1] = {
.species = SPECIES_SNEASEL,
.moves = {MOVE_FAINT_ATTACK, MOVE_FAKE_OUT, MOVE_ICY_WIND, MOVE_QUICK_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [213] = {
+ [FRONTIER_MON_PELIPPER_1] = {
.species = SPECIES_PELIPPER,
.moves = {MOVE_WATER_PULSE, MOVE_AERIAL_ACE, MOVE_STOCKPILE, MOVE_SWALLOW},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_QUIET
},
- [214] = {
+ [FRONTIER_MON_SWELLOW_1] = {
.species = SPECIES_SWELLOW,
.moves = {MOVE_FLY, MOVE_ENDEAVOR, MOVE_FACADE, MOVE_QUICK_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [215] = {
+ [FRONTIER_MON_LAIRON_1] = {
.species = SPECIES_LAIRON,
.moves = {MOVE_METAL_CLAW, MOVE_ROCK_TOMB, MOVE_IRON_DEFENSE, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_METAL_COAT,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_SASSY
},
- [216] = {
+ [FRONTIER_MON_TANGELA_1] = {
.species = SPECIES_TANGELA,
.moves = {MOVE_MEGA_DRAIN, MOVE_SLAM, MOVE_TOXIC, MOVE_BIND},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [217] = {
+ [FRONTIER_MON_ARBOK_1] = {
.species = SPECIES_ARBOK,
.moves = {MOVE_POISON_FANG, MOVE_DIG, MOVE_BITE, MOVE_GLARE},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [218] = {
+ [FRONTIER_MON_PERSIAN_1] = {
.species = SPECIES_PERSIAN,
.moves = {MOVE_FAKE_OUT, MOVE_SLASH, MOVE_TORMENT, MOVE_SWAGGER},
.itemTableId = BATTLE_FRONTIER_ITEM_SILK_SCARF,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [219] = {
+ [FRONTIER_MON_SEADRA_1] = {
.species = SPECIES_SEADRA,
.moves = {MOVE_AURORA_BEAM, MOVE_SMOKESCREEN, MOVE_WATER_GUN, MOVE_RAIN_DANCE},
.itemTableId = BATTLE_FRONTIER_ITEM_MYSTIC_WATER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_SASSY
},
- [220] = {
+ [FRONTIER_MON_KECLEON_1] = {
.species = SPECIES_KECLEON,
.moves = {MOVE_SECRET_POWER, MOVE_PSYBEAM, MOVE_MAGIC_COAT, MOVE_SEISMIC_TOSS},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_NAIVE
},
- [221] = {
+ [FRONTIER_MON_VIGOROTH_1] = {
.species = SPECIES_VIGOROTH,
.moves = {MOVE_SLASH, MOVE_COUNTER, MOVE_ENCORE, MOVE_UPROAR},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_LONELY
},
- [222] = {
+ [FRONTIER_MON_LUNATONE_1] = {
.species = SPECIES_LUNATONE,
.moves = {MOVE_CONFUSION, MOVE_COSMIC_POWER, MOVE_LIGHT_SCREEN, MOVE_SANDSTORM},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_QUIET
},
- [223] = {
+ [FRONTIER_MON_SOLROCK_1] = {
.species = SPECIES_SOLROCK,
.moves = {MOVE_CONFUSION, MOVE_FIRE_SPIN, MOVE_LIGHT_SCREEN, MOVE_SANDSTORM},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_QUIET
},
- [224] = {
+ [FRONTIER_MON_NOCTOWL_1] = {
.species = SPECIES_NOCTOWL,
.moves = {MOVE_CONFUSION, MOVE_AERIAL_ACE, MOVE_FAINT_ATTACK, MOVE_REFLECT},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [225] = {
+ [FRONTIER_MON_SANDSLASH_1] = {
.species = SPECIES_SANDSLASH,
.moves = {MOVE_CRUSH_CLAW, MOVE_ROCK_SLIDE, MOVE_SWIFT, MOVE_SANDSTORM},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [226] = {
+ [FRONTIER_MON_VENOMOTH_1] = {
.species = SPECIES_VENOMOTH,
.moves = {MOVE_SILVER_WIND, MOVE_PSYBEAM, MOVE_SLEEP_POWDER, MOVE_SKILL_SWAP},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [227] = {
+ [FRONTIER_MON_CHANSEY_1] = {
.species = SPECIES_CHANSEY,
.moves = {MOVE_METRONOME, MOVE_REFRESH, MOVE_DEFENSE_CURL, MOVE_MINIMIZE},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_RELAXED
},
- [228] = {
+ [FRONTIER_MON_SEAKING_1] = {
.species = SPECIES_SEAKING,
.moves = {MOVE_WATER_PULSE, MOVE_PSYBEAM, MOVE_SWIFT, MOVE_AGILITY},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [229] = {
+ [FRONTIER_MON_JUMPLUFF_1] = {
.species = SPECIES_JUMPLUFF,
.moves = {MOVE_AERIAL_ACE, MOVE_SWAGGER, MOVE_PSYCH_UP, MOVE_SYNTHESIS},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [230] = {
+ [FRONTIER_MON_PILOSWINE_1] = {
.species = SPECIES_PILOSWINE,
.moves = {MOVE_DIG, MOVE_ANCIENT_POWER, MOVE_HAIL, MOVE_LIGHT_SCREEN},
.itemTableId = BATTLE_FRONTIER_ITEM_SOFT_SAND,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [231] = {
+ [FRONTIER_MON_GOLBAT_1] = {
.species = SPECIES_GOLBAT,
.moves = {MOVE_AIR_CUTTER, MOVE_CONFUSE_RAY, MOVE_TOXIC, MOVE_STEEL_WING},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [232] = {
+ [FRONTIER_MON_PRIMEAPE_1] = {
.species = SPECIES_PRIMEAPE,
.moves = {MOVE_KARATE_CHOP, MOVE_COUNTER, MOVE_SWAGGER, MOVE_SCREECH},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [233] = {
+ [FRONTIER_MON_HITMONLEE_1] = {
.species = SPECIES_HITMONLEE,
.moves = {MOVE_ROLLING_KICK, MOVE_BRICK_BREAK, MOVE_FOCUS_ENERGY, MOVE_FACADE},
.itemTableId = BATTLE_FRONTIER_ITEM_BLACK_BELT,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [234] = {
+ [FRONTIER_MON_HITMONCHAN_1] = {
.species = SPECIES_HITMONCHAN,
.moves = {MOVE_MACH_PUNCH, MOVE_SKY_UPPERCUT, MOVE_DETECT, MOVE_COUNTER},
.itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [235] = {
+ [FRONTIER_MON_GIRAFARIG_1] = {
.species = SPECIES_GIRAFARIG,
.moves = {MOVE_PSYBEAM, MOVE_STOMP, MOVE_WISH, MOVE_SKILL_SWAP},
.itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIET
},
- [236] = {
+ [FRONTIER_MON_HITMONTOP_1] = {
.species = SPECIES_HITMONTOP,
.moves = {MOVE_TRIPLE_KICK, MOVE_DIG, MOVE_MACH_PUNCH, MOVE_QUICK_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [237] = {
+ [FRONTIER_MON_BANETTE_1] = {
.species = SPECIES_BANETTE,
.moves = {MOVE_NIGHT_SHADE, MOVE_WILL_O_WISP, MOVE_SPITE, MOVE_KNOCK_OFF},
.itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_SASSY
},
- [238] = {
+ [FRONTIER_MON_NINJASK_1] = {
.species = SPECIES_NINJASK,
.moves = {MOVE_BATON_PASS, MOVE_SWORDS_DANCE, MOVE_ENDURE, MOVE_DIG},
.itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_MILD
},
- [239] = {
+ [FRONTIER_MON_SEVIPER_1] = {
.species = SPECIES_SEVIPER,
.moves = {MOVE_POISON_TAIL, MOVE_BITE, MOVE_GLARE, MOVE_SCREECH},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [240] = {
+ [FRONTIER_MON_ZANGOOSE_1] = {
.species = SPECIES_ZANGOOSE,
.moves = {MOVE_SLASH, MOVE_DOUBLE_KICK, MOVE_ROAR, MOVE_QUICK_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [241] = {
+ [FRONTIER_MON_CAMERUPT_1] = {
.species = SPECIES_CAMERUPT,
.moves = {MOVE_MAGNITUDE, MOVE_PROTECT, MOVE_SANDSTORM, MOVE_ROCK_SLIDE},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [242] = {
+ [FRONTIER_MON_SHARPEDO_1] = {
.species = SPECIES_SHARPEDO,
.moves = {MOVE_SLASH, MOVE_BITE, MOVE_WATER_PULSE, MOVE_SCARY_FACE},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [243] = {
+ [FRONTIER_MON_TROPIUS_1] = {
.species = SPECIES_TROPIUS,
.moves = {MOVE_MAGICAL_LEAF, MOVE_WHIRLWIND, MOVE_AERIAL_ACE, MOVE_STEEL_WING},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [244] = {
+ [FRONTIER_MON_MAGNETON_1] = {
.species = SPECIES_MAGNETON,
.moves = {MOVE_SHOCK_WAVE, MOVE_SONIC_BOOM, MOVE_THUNDER_WAVE, MOVE_SUPERSONIC},
.itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_LONELY
},
- [245] = {
+ [FRONTIER_MON_MANTINE_1] = {
.species = SPECIES_MANTINE,
.moves = {MOVE_BUBBLE_BEAM, MOVE_AERIAL_ACE, MOVE_RAIN_DANCE, MOVE_ICY_WIND},
.itemTableId = BATTLE_FRONTIER_ITEM_MYSTIC_WATER,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [246] = {
+ [FRONTIER_MON_STANTLER_1] = {
.species = SPECIES_STANTLER,
.moves = {MOVE_EXTRASENSORY, MOVE_CONFUSE_RAY, MOVE_STOMP, MOVE_SAND_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_GENTLE
},
- [247] = {
+ [FRONTIER_MON_ABSOL_1] = {
.species = SPECIES_ABSOL,
.moves = {MOVE_BITE, MOVE_RAZOR_WIND, MOVE_FUTURE_SIGHT, MOVE_QUICK_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [248] = {
+ [FRONTIER_MON_SWALOT_1] = {
.species = SPECIES_SWALOT,
.moves = {MOVE_STOCKPILE, MOVE_SWALLOW, MOVE_SPIT_UP, MOVE_SLUDGE},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_QUIRKY
},
- [249] = {
+ [FRONTIER_MON_CRAWDAUNT_1] = {
.species = SPECIES_CRAWDAUNT,
.moves = {MOVE_BUBBLE_BEAM, MOVE_VICE_GRIP, MOVE_KNOCK_OFF, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [250] = {
+ [FRONTIER_MON_PIDGEOT_1] = {
.species = SPECIES_PIDGEOT,
.moves = {MOVE_AERIAL_ACE, MOVE_FEATHER_DANCE, MOVE_MUD_SLAP, MOVE_FAINT_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_SHARP_BEAK,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [251] = {
+ [FRONTIER_MON_GRUMPIG_1] = {
.species = SPECIES_GRUMPIG,
.moves = {MOVE_PSYBEAM, MOVE_CONFUSE_RAY, MOVE_FUTURE_SIGHT, MOVE_MAGIC_COAT},
.itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [252] = {
+ [FRONTIER_MON_TORKOAL_1] = {
.species = SPECIES_TORKOAL,
.moves = {MOVE_EMBER, MOVE_FIRE_SPIN, MOVE_SMOKESCREEN, MOVE_AMNESIA},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [253] = {
+ [FRONTIER_MON_KINGLER_1] = {
.species = SPECIES_KINGLER,
.moves = {MOVE_CRABHAMMER, MOVE_METAL_CLAW, MOVE_MUD_SHOT, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [254] = {
+ [FRONTIER_MON_CACTURNE_1] = {
.species = SPECIES_CACTURNE,
.moves = {MOVE_NEEDLE_ARM, MOVE_FAINT_ATTACK, MOVE_ACID, MOVE_MEGA_PUNCH},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_HASTY
},
- [255] = {
+ [FRONTIER_MON_BELLOSSOM_1] = {
.species = SPECIES_BELLOSSOM,
.moves = {MOVE_PETAL_DANCE, MOVE_SAFEGUARD, MOVE_SUNNY_DAY, MOVE_SYNTHESIS},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIET
},
- [256] = {
+ [FRONTIER_MON_OCTILLERY_1] = {
.species = SPECIES_OCTILLERY,
.moves = {MOVE_OCTAZOOKA, MOVE_AURORA_BEAM, MOVE_PSYBEAM, MOVE_ROCK_BLAST},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [257] = {
+ [FRONTIER_MON_HUNTAIL_1] = {
.species = SPECIES_HUNTAIL,
.moves = {MOVE_WHIRLPOOL, MOVE_SCARY_FACE, MOVE_MUD_SLAP, MOVE_BITE},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIET
},
- [258] = {
+ [FRONTIER_MON_GOREBYSS_1] = {
.species = SPECIES_GOREBYSS,
.moves = {MOVE_WHIRLPOOL, MOVE_AMNESIA, MOVE_ICY_WIND, MOVE_CONFUSION},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_BRAVE
},
- [259] = {
+ [FRONTIER_MON_RELICANTH_1] = {
.species = SPECIES_RELICANTH,
.moves = {MOVE_ANCIENT_POWER, MOVE_WATER_PULSE, MOVE_HARDEN, MOVE_AMNESIA},
.itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_SASSY
},
- [260] = {
+ [FRONTIER_MON_OMASTAR_1] = {
.species = SPECIES_OMASTAR,
.moves = {MOVE_BUBBLE_BEAM, MOVE_SPIKE_CANNON, MOVE_TICKLE, MOVE_ANCIENT_POWER},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [261] = {
+ [FRONTIER_MON_KABUTOPS_1] = {
.species = SPECIES_KABUTOPS,
.moves = {MOVE_SLASH, MOVE_DIG, MOVE_FURY_CUTTER, MOVE_KNOCK_OFF},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [262] = {
+ [FRONTIER_MON_POLIWRATH_1] = {
.species = SPECIES_POLIWRATH,
.moves = {MOVE_SUBMISSION, MOVE_DIG, MOVE_ROCK_TOMB, MOVE_BUBBLE_BEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_BLACK_BELT,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [263] = {
+ [FRONTIER_MON_SCYTHER_1] = {
.species = SPECIES_SCYTHER,
.moves = {MOVE_FURY_CUTTER, MOVE_AERIAL_ACE, MOVE_LIGHT_SCREEN, MOVE_DOUBLE_TEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [264] = {
+ [FRONTIER_MON_PINSIR_1] = {
.species = SPECIES_PINSIR,
.moves = {MOVE_SUBMISSION, MOVE_FOCUS_ENERGY, MOVE_SWORDS_DANCE, MOVE_REVENGE},
.itemTableId = BATTLE_FRONTIER_ITEM_BLACK_BELT,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_NAUGHTY
},
- [265] = {
+ [FRONTIER_MON_POLITOED_1] = {
.species = SPECIES_POLITOED,
.moves = {MOVE_DIVE, MOVE_DIG, MOVE_HYPNOSIS, MOVE_SWAGGER},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_RELAXED
},
- [266] = {
+ [FRONTIER_MON_CLOYSTER_1] = {
.species = SPECIES_CLOYSTER,
.moves = {MOVE_AURORA_BEAM, MOVE_SPIKE_CANNON, MOVE_SUPERSONIC, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_NEVER_MELT_ICE,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_SASSY
},
- [267] = {
+ [FRONTIER_MON_DELCATTY_2] = {
.species = SPECIES_DELCATTY,
.moves = {MOVE_FAKE_TEARS, MOVE_SING, MOVE_THUNDERBOLT, MOVE_ICE_BEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [268] = {
+ [FRONTIER_MON_SABLEYE_2] = {
.species = SPECIES_SABLEYE,
.moves = {MOVE_SHADOW_BALL, MOVE_FAINT_ATTACK, MOVE_CONFUSE_RAY, MOVE_RECOVER},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [269] = {
+ [FRONTIER_MON_LICKITUNG_2] = {
.species = SPECIES_LICKITUNG,
.moves = {MOVE_EARTHQUAKE, MOVE_BODY_SLAM, MOVE_SHADOW_BALL, MOVE_ROCK_SLIDE},
.itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [270] = {
+ [FRONTIER_MON_WEEPINBELL_2] = {
.species = SPECIES_WEEPINBELL,
.moves = {MOVE_SLUDGE_BOMB, MOVE_RAZOR_LEAF, MOVE_SLEEP_POWDER, MOVE_REFLECT},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_QUIRKY
},
- [271] = {
+ [FRONTIER_MON_GRAVELER_2] = {
.species = SPECIES_GRAVELER,
.moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_BRICK_BREAK, MOVE_COUNTER},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [272] = {
+ [FRONTIER_MON_GLOOM_2] = {
.species = SPECIES_GLOOM,
.moves = {MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_SLUDGE_BOMB, MOVE_MOONLIGHT},
.itemTableId = BATTLE_FRONTIER_ITEM_PECHA_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIRKY
},
- [273] = {
+ [FRONTIER_MON_PORYGON_2] = {
.species = SPECIES_PORYGON,
.moves = {MOVE_TRI_ATTACK, MOVE_PSYCHIC, MOVE_THUNDER_WAVE, MOVE_RECOVER},
.itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIET
},
- [274] = {
+ [FRONTIER_MON_KADABRA_2] = {
.species = SPECIES_KADABRA,
.moves = {MOVE_PSYCHIC, MOVE_THUNDER_WAVE, MOVE_REFLECT, MOVE_RECOVER},
.itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [275] = {
+ [FRONTIER_MON_WAILMER_2] = {
.species = SPECIES_WAILMER,
.moves = {MOVE_WATER_SPOUT, MOVE_EARTHQUAKE, MOVE_BODY_SLAM, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_DOCILE
},
- [276] = {
+ [FRONTIER_MON_ROSELIA_2] = {
.species = SPECIES_ROSELIA,
.moves = {MOVE_GIGA_DRAIN, MOVE_SLUDGE_BOMB, MOVE_GRASS_WHISTLE, MOVE_SYNTHESIS},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [277] = {
+ [FRONTIER_MON_VOLBEAT_2] = {
.species = SPECIES_VOLBEAT,
.moves = {MOVE_SIGNAL_BEAM, MOVE_THUNDERBOLT, MOVE_ICE_PUNCH, MOVE_TAIL_GLOW},
.itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_QUIRKY
},
- [278] = {
+ [FRONTIER_MON_ILLUMISE_2] = {
.species = SPECIES_ILLUMISE,
.moves = {MOVE_SILVER_WIND, MOVE_THUNDERBOLT, MOVE_ICE_PUNCH, MOVE_GIGA_DRAIN},
.itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_QUIRKY
},
- [279] = {
+ [FRONTIER_MON_IVYSAUR_2] = {
.species = SPECIES_IVYSAUR,
.moves = {MOVE_GIGA_DRAIN, MOVE_SLUDGE_BOMB, MOVE_SLEEP_POWDER, MOVE_LEECH_SEED},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIRKY
},
- [280] = {
+ [FRONTIER_MON_CHARMELEON_2] = {
.species = SPECIES_CHARMELEON,
.moves = {MOVE_FLAMETHROWER, MOVE_SLASH, MOVE_ANCIENT_POWER, MOVE_DRAGON_RAGE},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [281] = {
+ [FRONTIER_MON_WARTORTLE_2] = {
.species = SPECIES_WARTORTLE,
.moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_RAPID_SPIN, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [282] = {
+ [FRONTIER_MON_PARASECT_2] = {
.species = SPECIES_PARASECT,
.moves = {MOVE_SPORE, MOVE_GIGA_DRAIN, MOVE_DIG, MOVE_DOUBLE_TEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_CALM
},
- [283] = {
+ [FRONTIER_MON_MACHOKE_2] = {
.species = SPECIES_MACHOKE,
.moves = {MOVE_CROSS_CHOP, MOVE_ROCK_SLIDE, MOVE_FORESIGHT, MOVE_SCARY_FACE},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [284] = {
+ [FRONTIER_MON_HAUNTER_2] = {
.species = SPECIES_HAUNTER,
.moves = {MOVE_PSYCHIC, MOVE_HYPNOSIS, MOVE_NIGHTMARE, MOVE_CONFUSE_RAY},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [285] = {
+ [FRONTIER_MON_BAYLEEF_2] = {
.species = SPECIES_BAYLEEF,
.moves = {MOVE_GIGA_DRAIN, MOVE_BODY_SLAM, MOVE_GRASS_WHISTLE, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [286] = {
+ [FRONTIER_MON_QUILAVA_2] = {
.species = SPECIES_QUILAVA,
.moves = {MOVE_FLAMETHROWER, MOVE_CRUSH_CLAW, MOVE_BODY_SLAM, MOVE_SMOKESCREEN},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [287] = {
+ [FRONTIER_MON_CROCONAW_2] = {
.species = SPECIES_CROCONAW,
.moves = {MOVE_MEGA_KICK, MOVE_AERIAL_ACE, MOVE_ROCK_SLIDE, MOVE_DIG},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [288] = {
+ [FRONTIER_MON_TOGETIC_2] = {
.species = SPECIES_TOGETIC,
.moves = {MOVE_RETURN, MOVE_SWEET_KISS, MOVE_AERIAL_ACE, MOVE_YAWN},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [289] = {
+ [FRONTIER_MON_MURKROW_2] = {
.species = SPECIES_MURKROW,
.moves = {MOVE_PERISH_SONG, MOVE_MEAN_LOOK, MOVE_DOUBLE_TEAM, MOVE_THUNDER_WAVE},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [290] = {
+ [FRONTIER_MON_WOBBUFFET_2] = {
.species = SPECIES_WOBBUFFET,
.moves = {MOVE_COUNTER, MOVE_MIRROR_COAT, MOVE_ENCORE, MOVE_DESTINY_BOND},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_CAREFUL
},
- [291] = {
+ [FRONTIER_MON_PLUSLE_2] = {
.species = SPECIES_PLUSLE,
.moves = {MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_SEISMIC_TOSS, MOVE_WISH},
.itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_DOCILE
},
- [292] = {
+ [FRONTIER_MON_MINUN_2] = {
.species = SPECIES_MINUN,
.moves = {MOVE_THUNDERBOLT, MOVE_ATTRACT, MOVE_CHARM, MOVE_WISH},
.itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_DOCILE
},
- [293] = {
+ [FRONTIER_MON_GROVYLE_2] = {
.species = SPECIES_GROVYLE,
.moves = {MOVE_GIGA_DRAIN, MOVE_CRUSH_CLAW, MOVE_SCREECH, MOVE_ROCK_TOMB},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [294] = {
+ [FRONTIER_MON_COMBUSKEN_2] = {
.species = SPECIES_COMBUSKEN,
.moves = {MOVE_FLAMETHROWER, MOVE_SKY_UPPERCUT, MOVE_SLASH, MOVE_SAND_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [295] = {
+ [FRONTIER_MON_MARSHTOMP_2] = {
.species = SPECIES_MARSHTOMP,
.moves = {MOVE_MUDDY_WATER, MOVE_EARTHQUAKE, MOVE_MUD_SLAP, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [296] = {
+ [FRONTIER_MON_PONYTA_2] = {
.species = SPECIES_PONYTA,
.moves = {MOVE_FLAMETHROWER, MOVE_BODY_SLAM, MOVE_DOUBLE_KICK, MOVE_DOUBLE_TEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_QUIRKY
},
- [297] = {
+ [FRONTIER_MON_AZUMARILL_2] = {
.species = SPECIES_AZUMARILL,
.moves = {MOVE_MEGA_KICK, MOVE_BRICK_BREAK, MOVE_IRON_TAIL, MOVE_DIG},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [298] = {
+ [FRONTIER_MON_SUDOWOODO_2] = {
.species = SPECIES_SUDOWOODO,
.moves = {MOVE_MEGA_KICK, MOVE_EARTHQUAKE, MOVE_LOW_KICK, MOVE_SELF_DESTRUCT},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [299] = {
+ [FRONTIER_MON_MAGCARGO_2] = {
.species = SPECIES_MAGCARGO,
.moves = {MOVE_OVERHEAT, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_BODY_SLAM},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_QUIET
},
- [300] = {
+ [FRONTIER_MON_PUPITAR_2] = {
.species = SPECIES_PUPITAR,
.moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_CRUNCH, MOVE_SCARY_FACE},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [301] = {
+ [FRONTIER_MON_SEALEO_2] = {
.species = SPECIES_SEALEO,
.moves = {MOVE_ICE_BEAM, MOVE_SURF, MOVE_BODY_SLAM, MOVE_HAIL},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIET
},
- [302] = {
+ [FRONTIER_MON_RATICATE_2] = {
.species = SPECIES_RATICATE,
.moves = {MOVE_SUPER_FANG, MOVE_HYPER_FANG, MOVE_SHADOW_BALL, MOVE_SCARY_FACE},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [303] = {
+ [FRONTIER_MON_MASQUERAIN_2] = {
.species = SPECIES_MASQUERAIN,
.moves = {MOVE_HYDRO_PUMP, MOVE_ICE_BEAM, MOVE_GIGA_DRAIN, MOVE_STUN_SPORE},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
.nature = NATURE_QUIET
},
- [304] = {
+ [FRONTIER_MON_FURRET_2] = {
.species = SPECIES_FURRET,
.moves = {MOVE_TRICK, MOVE_FRUSTRATION, MOVE_SHADOW_BALL, MOVE_FOLLOW_ME},
.itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [305] = {
+ [FRONTIER_MON_DUNSPARCE_2] = {
.species = SPECIES_DUNSPARCE,
.moves = {MOVE_ICE_BEAM, MOVE_ROCK_TOMB, MOVE_BITE, MOVE_SHADOW_BALL},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_QUIET
},
- [306] = {
+ [FRONTIER_MON_DRAGONAIR_2] = {
.species = SPECIES_DRAGONAIR,
.moves = {MOVE_RETURN, MOVE_REST, MOVE_THUNDER_WAVE, MOVE_DRAGON_DANCE},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [307] = {
+ [FRONTIER_MON_MIGHTYENA_2] = {
.species = SPECIES_MIGHTYENA,
.moves = {MOVE_CRUNCH, MOVE_SHADOW_BALL, MOVE_FRUSTRATION, MOVE_SCARY_FACE},
.itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
.nature = NATURE_QUIRKY
},
- [308] = {
+ [FRONTIER_MON_LINOONE_2] = {
.species = SPECIES_LINOONE,
.moves = {MOVE_TRICK, MOVE_FRUSTRATION, MOVE_THUNDER_WAVE, MOVE_SAND_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_JOLLY
},
- [309] = {
+ [FRONTIER_MON_CASTFORM_2] = {
.species = SPECIES_CASTFORM,
.moves = {MOVE_THUNDERBOLT, MOVE_FLAMETHROWER, MOVE_ICE_BEAM, MOVE_WATER_PULSE},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [310] = {
+ [FRONTIER_MON_SHELGON_2] = {
.species = SPECIES_SHELGON,
.moves = {MOVE_FRUSTRATION, MOVE_DRAGON_DANCE, MOVE_CRUNCH, MOVE_SCARY_FACE},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [311] = {
+ [FRONTIER_MON_METANG_2] = {
.species = SPECIES_METANG,
.moves = {MOVE_METEOR_MASH, MOVE_PSYCHIC, MOVE_BODY_SLAM, MOVE_SCARY_FACE},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [312] = {
+ [FRONTIER_MON_WIGGLYTUFF_2] = {
.species = SPECIES_WIGGLYTUFF,
.moves = {MOVE_FAKE_TEARS, MOVE_SING, MOVE_DREAM_EATER, MOVE_BRICK_BREAK},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_DOCILE
},
- [313] = {
+ [FRONTIER_MON_SUNFLORA_2] = {
.species = SPECIES_SUNFLORA,
.moves = {MOVE_GIGA_DRAIN, MOVE_GRASS_WHISTLE, MOVE_GROWTH, MOVE_DOUBLE_TEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_QUIET
},
- [314] = {
+ [FRONTIER_MON_CHIMECHO_2] = {
.species = SPECIES_CHIMECHO,
.moves = {MOVE_PSYCHIC, MOVE_HYPNOSIS, MOVE_DREAM_EATER, MOVE_HEAL_BELL},
.itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_QUIET
},
- [315] = {
+ [FRONTIER_MON_GLIGAR_2] = {
.species = SPECIES_GLIGAR,
.moves = {MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_GUILLOTINE, MOVE_SCREECH},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [316] = {
+ [FRONTIER_MON_QWILFISH_2] = {
.species = SPECIES_QWILFISH,
.moves = {MOVE_REVENGE, MOVE_SLUDGE_BOMB, MOVE_SHADOW_BALL, MOVE_DESTINY_BOND},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [317] = {
+ [FRONTIER_MON_SNEASEL_2] = {
.species = SPECIES_SNEASEL,
.moves = {MOVE_CRUSH_CLAW, MOVE_BRICK_BREAK, MOVE_AERIAL_ACE, MOVE_SCREECH},
.itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_JOLLY
},
- [318] = {
+ [FRONTIER_MON_PELIPPER_2] = {
.species = SPECIES_PELIPPER,
.moves = {MOVE_SURF, MOVE_BLIZZARD, MOVE_AERIAL_ACE, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_QUIET
},
- [319] = {
+ [FRONTIER_MON_SWELLOW_2] = {
.species = SPECIES_SWELLOW,
.moves = {MOVE_FACADE, MOVE_AERIAL_ACE, MOVE_PURSUIT, MOVE_DOUBLE_TEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [320] = {
+ [FRONTIER_MON_LAIRON_2] = {
.species = SPECIES_LAIRON,
.moves = {MOVE_EARTHQUAKE, MOVE_IRON_TAIL, MOVE_ROAR, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_SASSY
},
- [321] = {
+ [FRONTIER_MON_TANGELA_2] = {
.species = SPECIES_TANGELA,
.moves = {MOVE_GIGA_DRAIN, MOVE_STUN_SPORE, MOVE_REST, MOVE_AMNESIA},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_CALM
},
- [322] = {
+ [FRONTIER_MON_ARBOK_2] = {
.species = SPECIES_ARBOK,
.moves = {MOVE_SLUDGE_BOMB, MOVE_EARTHQUAKE, MOVE_IRON_TAIL, MOVE_GLARE},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [323] = {
+ [FRONTIER_MON_PERSIAN_2] = {
.species = SPECIES_PERSIAN,
.moves = {MOVE_FRUSTRATION, MOVE_SHADOW_BALL, MOVE_ROAR, MOVE_FAKE_OUT},
.itemTableId = BATTLE_FRONTIER_ITEM_SILK_SCARF,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [324] = {
+ [FRONTIER_MON_SEADRA_2] = {
.species = SPECIES_SEADRA,
.moves = {MOVE_HYDRO_PUMP, MOVE_FRUSTRATION, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [325] = {
+ [FRONTIER_MON_KECLEON_2] = {
.species = SPECIES_KECLEON,
.moves = {MOVE_TRICK, MOVE_BRICK_BREAK, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP},
.itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [326] = {
+ [FRONTIER_MON_VIGOROTH_2] = {
.species = SPECIES_VIGOROTH,
.moves = {MOVE_CRUSH_CLAW, MOVE_REVERSAL, MOVE_ENDURE, MOVE_SHADOW_BALL},
.itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [327] = {
+ [FRONTIER_MON_LUNATONE_2] = {
.species = SPECIES_LUNATONE,
.moves = {MOVE_PSYCHIC, MOVE_ICE_BEAM, MOVE_COSMIC_POWER, MOVE_CALM_MIND},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_QUIET
},
- [328] = {
+ [FRONTIER_MON_SOLROCK_2] = {
.species = SPECIES_SOLROCK,
.moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_COSMIC_POWER, MOVE_OVERHEAT},
.itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [329] = {
+ [FRONTIER_MON_NOCTOWL_2] = {
.species = SPECIES_NOCTOWL,
.moves = {MOVE_PSYCHIC, MOVE_FAINT_ATTACK, MOVE_AERIAL_ACE, MOVE_REFLECT},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
.nature = NATURE_QUIET
},
- [330] = {
+ [FRONTIER_MON_SANDSLASH_2] = {
.species = SPECIES_SANDSLASH,
.moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_CRUSH_CLAW, MOVE_SANDSTORM},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [331] = {
+ [FRONTIER_MON_VENOMOTH_2] = {
.species = SPECIES_VENOMOTH,
.moves = {MOVE_SIGNAL_BEAM, MOVE_PSYCHIC, MOVE_SLUDGE_BOMB, MOVE_GIGA_DRAIN},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [332] = {
+ [FRONTIER_MON_CHANSEY_2] = {
.species = SPECIES_CHANSEY,
.moves = {MOVE_SEISMIC_TOSS, MOVE_SHADOW_BALL, MOVE_DOUBLE_TEAM, MOVE_SOFT_BOILED},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_RELAXED
},
- [333] = {
+ [FRONTIER_MON_SEAKING_2] = {
.species = SPECIES_SEAKING,
.moves = {MOVE_HORN_DRILL, MOVE_MEGAHORN, MOVE_SLEEP_TALK, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_IMPISH
},
- [334] = {
+ [FRONTIER_MON_JUMPLUFF_2] = {
.species = SPECIES_JUMPLUFF,
.moves = {MOVE_LEECH_SEED, MOVE_SLEEP_POWDER, MOVE_GIGA_DRAIN, MOVE_DOUBLE_TEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_BOLD
},
- [335] = {
+ [FRONTIER_MON_PILOSWINE_2] = {
.species = SPECIES_PILOSWINE,
.moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_BODY_SLAM, MOVE_ROAR},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_ADAMANT
},
- [336] = {
+ [FRONTIER_MON_GOLBAT_2] = {
.species = SPECIES_GOLBAT,
.moves = {MOVE_SLUDGE_BOMB, MOVE_SHADOW_BALL, MOVE_CONFUSE_RAY, MOVE_AIR_CUTTER},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [337] = {
+ [FRONTIER_MON_PRIMEAPE_2] = {
.species = SPECIES_PRIMEAPE,
.moves = {MOVE_CROSS_CHOP, MOVE_ROCK_TOMB, MOVE_OVERHEAT, MOVE_BULK_UP},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [338] = {
+ [FRONTIER_MON_HITMONLEE_2] = {
.species = SPECIES_HITMONLEE,
.moves = {MOVE_MEGA_KICK, MOVE_BRICK_BREAK, MOVE_FORESIGHT, MOVE_ROCK_TOMB},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [339] = {
+ [FRONTIER_MON_HITMONCHAN_2] = {
.species = SPECIES_HITMONCHAN,
.moves = {MOVE_DYNAMIC_PUNCH, MOVE_MACH_PUNCH, MOVE_DETECT, MOVE_COUNTER},
.itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [340] = {
+ [FRONTIER_MON_GIRAFARIG_2] = {
.species = SPECIES_GIRAFARIG,
.moves = {MOVE_PSYCHIC, MOVE_CRUNCH, MOVE_BATON_PASS, MOVE_AGILITY},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_MODEST
},
- [341] = {
+ [FRONTIER_MON_HITMONTOP_2] = {
.species = SPECIES_HITMONTOP,
.moves = {MOVE_DOUBLE_EDGE, MOVE_SEISMIC_TOSS, MOVE_ROCK_SLIDE, MOVE_COUNTER},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [342] = {
+ [FRONTIER_MON_BANETTE_2] = {
.species = SPECIES_BANETTE,
.moves = {MOVE_SHADOW_BALL, MOVE_FRUSTRATION, MOVE_SCREECH, MOVE_WILL_O_WISP},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_ADAMANT
},
- [343] = {
+ [FRONTIER_MON_NINJASK_2] = {
.species = SPECIES_NINJASK,
.moves = {MOVE_SLASH, MOVE_SHADOW_BALL, MOVE_SWORDS_DANCE, MOVE_BATON_PASS},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [344] = {
+ [FRONTIER_MON_SEVIPER_2] = {
.species = SPECIES_SEVIPER,
.moves = {MOVE_SLUDGE_BOMB, MOVE_EARTHQUAKE, MOVE_CRUNCH, MOVE_GIGA_DRAIN},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [345] = {
+ [FRONTIER_MON_ZANGOOSE_2] = {
.species = SPECIES_ZANGOOSE,
.moves = {MOVE_CRUSH_CLAW, MOVE_SHADOW_BALL, MOVE_BRICK_BREAK, MOVE_AERIAL_ACE},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [346] = {
+ [FRONTIER_MON_CAMERUPT_2] = {
.species = SPECIES_CAMERUPT,
.moves = {MOVE_EARTHQUAKE, MOVE_ERUPTION, MOVE_BODY_SLAM, MOVE_SCARY_FACE},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIRKY
},
- [347] = {
+ [FRONTIER_MON_SHARPEDO_2] = {
.species = SPECIES_SHARPEDO,
.moves = {MOVE_DOUBLE_EDGE, MOVE_CRUNCH, MOVE_EARTHQUAKE, MOVE_SURF},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIRKY
},
- [348] = {
+ [FRONTIER_MON_TROPIUS_2] = {
.species = SPECIES_TROPIUS,
.moves = {MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_SYNTHESIS, MOVE_BODY_SLAM},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIET
},
- [349] = {
+ [FRONTIER_MON_MAGNETON_2] = {
.species = SPECIES_MAGNETON,
.moves = {MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_THUNDER_WAVE, MOVE_METAL_SOUND},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [350] = {
+ [FRONTIER_MON_MANTINE_2] = {
.species = SPECIES_MANTINE,
.moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_RAIN_DANCE, MOVE_CONFUSE_RAY},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [351] = {
+ [FRONTIER_MON_STANTLER_2] = {
.species = SPECIES_STANTLER,
.moves = {MOVE_FRUSTRATION, MOVE_SHADOW_BALL, MOVE_THUNDER_WAVE, MOVE_CONFUSE_RAY},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [352] = {
+ [FRONTIER_MON_ABSOL_2] = {
.species = SPECIES_ABSOL,
.moves = {MOVE_DOUBLE_EDGE, MOVE_SHADOW_BALL, MOVE_AERIAL_ACE, MOVE_IRON_TAIL},
.itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [353] = {
+ [FRONTIER_MON_SWALOT_2] = {
.species = SPECIES_SWALOT,
.moves = {MOVE_SLUDGE_BOMB, MOVE_SHADOW_BALL, MOVE_BODY_SLAM, MOVE_COUNTER},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [354] = {
+ [FRONTIER_MON_CRAWDAUNT_2] = {
.species = SPECIES_CRAWDAUNT,
.moves = {MOVE_GUILLOTINE, MOVE_FRUSTRATION, MOVE_ANCIENT_POWER, MOVE_AERIAL_ACE},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [355] = {
+ [FRONTIER_MON_PIDGEOT_2] = {
.species = SPECIES_PIDGEOT,
.moves = {MOVE_RETURN, MOVE_AERIAL_ACE, MOVE_STEEL_WING, MOVE_MUD_SLAP},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [356] = {
+ [FRONTIER_MON_GRUMPIG_2] = {
.species = SPECIES_GRUMPIG,
.moves = {MOVE_PSYCHIC, MOVE_ICE_PUNCH, MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
.nature = NATURE_MODEST
},
- [357] = {
+ [FRONTIER_MON_TORKOAL_2] = {
.species = SPECIES_TORKOAL,
.moves = {MOVE_OVERHEAT, MOVE_BODY_SLAM, MOVE_SMOKESCREEN, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_SASSY
},
- [358] = {
+ [FRONTIER_MON_KINGLER_2] = {
.species = SPECIES_KINGLER,
.moves = {MOVE_GUILLOTINE, MOVE_ROCK_TOMB, MOVE_FLAIL, MOVE_ENDURE},
.itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [359] = {
+ [FRONTIER_MON_CACTURNE_2] = {
.species = SPECIES_CACTURNE,
.moves = {MOVE_MEGA_KICK, MOVE_TEETER_DANCE, MOVE_FAINT_ATTACK, MOVE_SANDSTORM},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_HARDY
},
- [360] = {
+ [FRONTIER_MON_BELLOSSOM_2] = {
.species = SPECIES_BELLOSSOM,
.moves = {MOVE_SOLAR_BEAM, MOVE_ATTRACT, MOVE_SUNNY_DAY, MOVE_SYNTHESIS},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
.nature = NATURE_MODEST
},
- [361] = {
+ [FRONTIER_MON_OCTILLERY_2] = {
.species = SPECIES_OCTILLERY,
.moves = {MOVE_OCTAZOOKA, MOVE_FIRE_BLAST, MOVE_THUNDER_WAVE, MOVE_MUD_SLAP},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [362] = {
+ [FRONTIER_MON_HUNTAIL_2] = {
.species = SPECIES_HUNTAIL,
.moves = {MOVE_SURF, MOVE_RAIN_DANCE, MOVE_CRUNCH, MOVE_BODY_SLAM},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_QUIET
},
- [363] = {
+ [FRONTIER_MON_GOREBYSS_2] = {
.species = SPECIES_GOREBYSS,
.moves = {MOVE_SURF, MOVE_RAIN_DANCE, MOVE_PSYCHIC, MOVE_BODY_SLAM},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_QUIET
},
- [364] = {
+ [FRONTIER_MON_RELICANTH_2] = {
.species = SPECIES_RELICANTH,
.moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_AMNESIA, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_SASSY
},
- [365] = {
+ [FRONTIER_MON_OMASTAR_2] = {
.species = SPECIES_OMASTAR,
.moves = {MOVE_HYDRO_PUMP, MOVE_RAIN_DANCE, MOVE_ICE_BEAM, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [366] = {
+ [FRONTIER_MON_KABUTOPS_2] = {
.species = SPECIES_KABUTOPS,
.moves = {MOVE_SLASH, MOVE_ROCK_SLIDE, MOVE_FLAIL, MOVE_ENDURE},
.itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [367] = {
+ [FRONTIER_MON_POLIWRATH_2] = {
.species = SPECIES_POLIWRATH,
.moves = {MOVE_BRICK_BREAK, MOVE_HYPNOSIS, MOVE_REST, MOVE_BELLY_DRUM},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [368] = {
+ [FRONTIER_MON_SCYTHER_2] = {
.species = SPECIES_SCYTHER,
.moves = {MOVE_SILVER_WIND, MOVE_AERIAL_ACE, MOVE_SWORDS_DANCE, MOVE_DOUBLE_TEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [369] = {
+ [FRONTIER_MON_PINSIR_2] = {
.species = SPECIES_PINSIR,
.moves = {MOVE_GUILLOTINE, MOVE_SWORDS_DANCE, MOVE_FLAIL, MOVE_ENDURE},
.itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_JOLLY
},
- [370] = {
+ [FRONTIER_MON_POLITOED_2] = {
.species = SPECIES_POLITOED,
.moves = {MOVE_SURF, MOVE_PSYCHIC, MOVE_MUD_SLAP, MOVE_SWAGGER},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
.nature = NATURE_MODEST
},
- [371] = {
+ [FRONTIER_MON_CLOYSTER_2] = {
.species = SPECIES_CLOYSTER,
.moves = {MOVE_DIVE, MOVE_TOXIC, MOVE_DOUBLE_TEAM, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_CAREFUL
},
- [372] = {
+ [FRONTIER_MON_DUGTRIO_1] = {
.species = SPECIES_DUGTRIO,
.moves = {MOVE_EARTHQUAKE, MOVE_TRI_ATTACK, MOVE_SLASH, MOVE_SAND_TOMB},
.itemTableId = BATTLE_FRONTIER_ITEM_SOFT_SAND,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [373] = {
+ [FRONTIER_MON_MEDICHAM_1] = {
.species = SPECIES_MEDICHAM,
.moves = {MOVE_PSYCHIC, MOVE_HI_JUMP_KICK, MOVE_CALM_MIND, MOVE_BATON_PASS},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [374] = {
+ [FRONTIER_MON_MISDREAVUS_1] = {
.species = SPECIES_MISDREAVUS,
.moves = {MOVE_PAIN_SPLIT, MOVE_SHADOW_BALL, MOVE_CONFUSE_RAY, MOVE_THUNDER_WAVE},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_IMPISH
},
- [375] = {
+ [FRONTIER_MON_FEAROW_1] = {
.species = SPECIES_FEAROW,
.moves = {MOVE_DRILL_PECK, MOVE_TRI_ATTACK, MOVE_FACADE, MOVE_MUD_SLAP},
.itemTableId = BATTLE_FRONTIER_ITEM_SHARP_BEAK,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [376] = {
+ [FRONTIER_MON_GRANBULL_1] = {
.species = SPECIES_GRANBULL,
.moves = {MOVE_MEGA_KICK, MOVE_SMELLING_SALT, MOVE_THUNDER_WAVE, MOVE_ROAR},
.itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [377] = {
+ [FRONTIER_MON_JYNX_1] = {
.species = SPECIES_JYNX,
.moves = {MOVE_ICE_BEAM, MOVE_FAKE_OUT, MOVE_LOVELY_KISS, MOVE_ATTRACT},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [378] = {
+ [FRONTIER_MON_DUSCLOPS_1] = {
.species = SPECIES_DUSCLOPS,
.moves = {MOVE_WILL_O_WISP, MOVE_SEISMIC_TOSS, MOVE_PAIN_SPLIT, MOVE_CONFUSE_RAY},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_IMPISH
},
- [379] = {
+ [FRONTIER_MON_DODRIO_1] = {
.species = SPECIES_DODRIO,
.moves = {MOVE_DRILL_PECK, MOVE_TRI_ATTACK, MOVE_SLEEP_TALK, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [380] = {
+ [FRONTIER_MON_MR_MIME_1] = {
.species = SPECIES_MR_MIME,
.moves = {MOVE_PSYCHIC, MOVE_MAGICAL_LEAF, MOVE_FAKE_OUT, MOVE_REFLECT},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [381] = {
+ [FRONTIER_MON_LANTURN_1] = {
.species = SPECIES_LANTURN,
.moves = {MOVE_SURF, MOVE_CONFUSE_RAY, MOVE_ATTRACT, MOVE_THUNDER_WAVE},
.itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
.nature = NATURE_QUIET
},
- [382] = {
+ [FRONTIER_MON_BRELOOM_1] = {
.species = SPECIES_BRELOOM,
.moves = {MOVE_SKY_UPPERCUT, MOVE_MACH_PUNCH, MOVE_HEADBUTT, MOVE_COUNTER},
.itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_JOLLY
},
- [383] = {
+ [FRONTIER_MON_FORRETRESS_1] = {
.species = SPECIES_FORRETRESS,
.moves = {MOVE_DOUBLE_EDGE, MOVE_ROCK_SLIDE, MOVE_LIGHT_SCREEN, MOVE_SPIKES},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [384] = {
+ [FRONTIER_MON_WHISCASH_1] = {
.species = SPECIES_WHISCASH,
.moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_AMNESIA, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [385] = {
+ [FRONTIER_MON_XATU_1] = {
.species = SPECIES_XATU,
.moves = {MOVE_DRILL_PECK, MOVE_NIGHT_SHADE, MOVE_WISH, MOVE_FUTURE_SIGHT},
.itemTableId = BATTLE_FRONTIER_ITEM_SHARP_BEAK,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [386] = {
+ [FRONTIER_MON_SKARMORY_1] = {
.species = SPECIES_SKARMORY,
.moves = {MOVE_STEEL_WING, MOVE_AIR_CUTTER, MOVE_COUNTER, MOVE_AGILITY},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [387] = {
+ [FRONTIER_MON_MAROWAK_1] = {
.species = SPECIES_MAROWAK,
.moves = {MOVE_BONEMERANG, MOVE_ROCK_SLIDE, MOVE_ICY_WIND, MOVE_HEADBUTT},
.itemTableId = BATTLE_FRONTIER_ITEM_THICK_CLUB,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [388] = {
+ [FRONTIER_MON_QUAGSIRE_1] = {
.species = SPECIES_QUAGSIRE,
.moves = {MOVE_EARTHQUAKE, MOVE_BRICK_BREAK, MOVE_COUNTER, MOVE_MUD_SLAP},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [389] = {
+ [FRONTIER_MON_CLEFABLE_1] = {
.species = SPECIES_CLEFABLE,
.moves = {MOVE_METRONOME, MOVE_DOUBLE_TEAM, MOVE_REFLECT, MOVE_FOLLOW_ME},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_BRAVE
},
- [390] = {
+ [FRONTIER_MON_HARIYAMA_1] = {
.species = SPECIES_HARIYAMA,
.moves = {MOVE_CROSS_CHOP, MOVE_ROCK_SLIDE, MOVE_COUNTER, MOVE_FAKE_OUT},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [391] = {
+ [FRONTIER_MON_RAICHU_1] = {
.species = SPECIES_RAICHU,
.moves = {MOVE_THUNDERBOLT, MOVE_QUICK_ATTACK, MOVE_LIGHT_SCREEN, MOVE_DOUBLE_TEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
.nature = NATURE_MODEST
},
- [392] = {
+ [FRONTIER_MON_DEWGONG_1] = {
.species = SPECIES_DEWGONG,
.moves = {MOVE_ICE_BEAM, MOVE_ICY_WIND, MOVE_HEADBUTT, MOVE_FAKE_OUT},
.itemTableId = BATTLE_FRONTIER_ITEM_NEVER_MELT_ICE,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIET
},
- [393] = {
+ [FRONTIER_MON_MANECTRIC_1] = {
.species = SPECIES_MANECTRIC,
.moves = {MOVE_THUNDERBOLT, MOVE_FLASH, MOVE_QUICK_ATTACK, MOVE_ROAR},
.itemTableId = BATTLE_FRONTIER_ITEM_MAGNET,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [394] = {
+ [FRONTIER_MON_VILEPLUME_1] = {
.species = SPECIES_VILEPLUME,
.moves = {MOVE_SLUDGE_BOMB, MOVE_PETAL_DANCE, MOVE_MOONLIGHT, MOVE_AROMATHERAPY},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_IMPISH
},
- [395] = {
+ [FRONTIER_MON_VICTREEBEL_1] = {
.species = SPECIES_VICTREEBEL,
.moves = {MOVE_GIGA_DRAIN, MOVE_SLEEP_POWDER, MOVE_SWEET_SCENT, MOVE_SYNTHESIS},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_QUIET
},
- [396] = {
+ [FRONTIER_MON_ELECTRODE_1] = {
.species = SPECIES_ELECTRODE,
.moves = {MOVE_THUNDERBOLT, MOVE_SWIFT, MOVE_LIGHT_SCREEN, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIET
},
- [397] = {
+ [FRONTIER_MON_EXPLOUD_1] = {
.species = SPECIES_EXPLOUD,
.moves = {MOVE_HYPER_VOICE, MOVE_SHADOW_BALL, MOVE_SLEEP_TALK, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_IMPISH
},
- [398] = {
+ [FRONTIER_MON_SHIFTRY_1] = {
.species = SPECIES_SHIFTRY,
.moves = {MOVE_GIGA_DRAIN, MOVE_FAINT_ATTACK, MOVE_QUICK_ATTACK, MOVE_FAKE_OUT},
.itemTableId = BATTLE_FRONTIER_ITEM_MIRACLE_SEED,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
.nature = NATURE_QUIET
},
- [399] = {
+ [FRONTIER_MON_GLALIE_1] = {
.species = SPECIES_GLALIE,
.moves = {MOVE_ICE_BEAM, MOVE_CRUNCH, MOVE_HAIL, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [400] = {
+ [FRONTIER_MON_LUDICOLO_1] = {
.species = SPECIES_LUDICOLO,
.moves = {MOVE_SURF, MOVE_RAIN_DANCE, MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_QUIET
},
- [401] = {
+ [FRONTIER_MON_HYPNO_1] = {
.species = SPECIES_HYPNO,
.moves = {MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_HYPNOSIS},
.itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
.nature = NATURE_QUIET
},
- [402] = {
+ [FRONTIER_MON_GOLEM_1] = {
.species = SPECIES_GOLEM,
.moves = {MOVE_EARTHQUAKE, MOVE_BODY_SLAM, MOVE_COUNTER, MOVE_ROCK_TOMB},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [403] = {
+ [FRONTIER_MON_RHYDON_1] = {
.species = SPECIES_RHYDON,
.moves = {MOVE_EARTHQUAKE, MOVE_ROCK_TOMB, MOVE_SCARY_FACE, MOVE_BRICK_BREAK},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [404] = {
+ [FRONTIER_MON_ALAKAZAM_1] = {
.species = SPECIES_ALAKAZAM,
.moves = {MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_THUNDER_WAVE},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
.nature = NATURE_MODEST
},
- [405] = {
+ [FRONTIER_MON_WEEZING_1] = {
.species = SPECIES_WEEZING,
.moves = {MOVE_SLUDGE_BOMB, MOVE_WILL_O_WISP, MOVE_SHADOW_BALL, MOVE_SMOKESCREEN},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [406] = {
+ [FRONTIER_MON_KANGASKHAN_1] = {
.species = SPECIES_KANGASKHAN,
.moves = {MOVE_DIZZY_PUNCH, MOVE_BRICK_BREAK, MOVE_COUNTER, MOVE_FAKE_OUT},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [407] = {
+ [FRONTIER_MON_ELECTABUZZ_1] = {
.species = SPECIES_ELECTABUZZ,
.moves = {MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_BRICK_BREAK, MOVE_LIGHT_SCREEN},
.itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [408] = {
+ [FRONTIER_MON_TAUROS_1] = {
.species = SPECIES_TAUROS,
.moves = {MOVE_EARTHQUAKE, MOVE_THRASH, MOVE_SWAGGER, MOVE_FACADE},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [409] = {
+ [FRONTIER_MON_SLOWBRO_1] = {
.species = SPECIES_SLOWBRO,
.moves = {MOVE_SURF, MOVE_RAIN_DANCE, MOVE_HEADBUTT, MOVE_ICE_PUNCH},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_QUIET
},
- [410] = {
+ [FRONTIER_MON_SLOWKING_1] = {
.species = SPECIES_SLOWKING,
.moves = {MOVE_PSYCHIC, MOVE_BRICK_BREAK, MOVE_AMNESIA, MOVE_ATTRACT},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_QUIET
},
- [411] = {
+ [FRONTIER_MON_MILTANK_1] = {
.species = SPECIES_MILTANK,
.moves = {MOVE_FACADE, MOVE_SHADOW_BALL, MOVE_COUNTER, MOVE_MILK_DRINK},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_CAREFUL
},
- [412] = {
+ [FRONTIER_MON_ALTARIA_1] = {
.species = SPECIES_ALTARIA,
.moves = {MOVE_DRAGON_CLAW, MOVE_AERIAL_ACE, MOVE_REFRESH, MOVE_BODY_SLAM},
.itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [413] = {
+ [FRONTIER_MON_NIDOQUEEN_1] = {
.species = SPECIES_NIDOQUEEN,
.moves = {MOVE_SLUDGE_BOMB, MOVE_DOUBLE_KICK, MOVE_BODY_SLAM, MOVE_COUNTER},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [414] = {
+ [FRONTIER_MON_NIDOKING_1] = {
.species = SPECIES_NIDOKING,
.moves = {MOVE_HORN_DRILL, MOVE_DOUBLE_KICK, MOVE_BODY_SLAM, MOVE_COUNTER},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [415] = {
+ [FRONTIER_MON_MAGMAR_1] = {
.species = SPECIES_MAGMAR,
.moves = {MOVE_FLAMETHROWER, MOVE_SMOKESCREEN, MOVE_BRICK_BREAK, MOVE_BARRIER},
.itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [416] = {
+ [FRONTIER_MON_CRADILY_1] = {
.species = SPECIES_CRADILY,
.moves = {MOVE_GIGA_DRAIN, MOVE_ROCK_SLIDE, MOVE_BARRIER, MOVE_CONFUSE_RAY},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [417] = {
+ [FRONTIER_MON_ARMALDO_1] = {
.species = SPECIES_ARMALDO,
.moves = {MOVE_SLASH, MOVE_AERIAL_ACE, MOVE_ANCIENT_POWER, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [418] = {
+ [FRONTIER_MON_GOLDUCK_1] = {
.species = SPECIES_GOLDUCK,
.moves = {MOVE_HYDRO_PUMP, MOVE_DIG, MOVE_BRICK_BREAK, MOVE_LIGHT_SCREEN},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIET
},
- [419] = {
+ [FRONTIER_MON_RAPIDASH_1] = {
.species = SPECIES_RAPIDASH,
.moves = {MOVE_FLAMETHROWER, MOVE_DOUBLE_KICK, MOVE_QUICK_ATTACK, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_CHARCOAL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_QUIET
},
- [420] = {
+ [FRONTIER_MON_MUK_1] = {
.species = SPECIES_MUK,
.moves = {MOVE_SLUDGE_BOMB, MOVE_BODY_SLAM, MOVE_SCREECH, MOVE_MINIMIZE},
.itemTableId = BATTLE_FRONTIER_ITEM_POISON_BARB,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [421] = {
+ [FRONTIER_MON_GENGAR_1] = {
.species = SPECIES_GENGAR,
.moves = {MOVE_DREAM_EATER, MOVE_HYPNOSIS, MOVE_CONFUSE_RAY, MOVE_ATTRACT},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_TIMID
},
- [422] = {
+ [FRONTIER_MON_AMPHAROS_1] = {
.species = SPECIES_AMPHAROS,
.moves = {MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_THUNDER_WAVE, MOVE_ATTRACT},
.itemTableId = BATTLE_FRONTIER_ITEM_MAGNET,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [423] = {
+ [FRONTIER_MON_SCIZOR_1] = {
.species = SPECIES_SCIZOR,
.moves = {MOVE_METAL_CLAW, MOVE_AERIAL_ACE, MOVE_COUNTER, MOVE_QUICK_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [424] = {
+ [FRONTIER_MON_HERACROSS_1] = {
.species = SPECIES_HERACROSS,
.moves = {MOVE_MEGAHORN, MOVE_BRICK_BREAK, MOVE_ROCK_TOMB, MOVE_COUNTER},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [425] = {
+ [FRONTIER_MON_URSARING_1] = {
.species = SPECIES_URSARING,
.moves = {MOVE_MEGA_KICK, MOVE_CRUNCH, MOVE_AERIAL_ACE, MOVE_COUNTER},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [426] = {
+ [FRONTIER_MON_HOUNDOOM_1] = {
.species = SPECIES_HOUNDOOM,
.moves = {MOVE_FLAMETHROWER, MOVE_SHADOW_BALL, MOVE_COUNTER, MOVE_WILL_O_WISP},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIRKY
},
- [427] = {
+ [FRONTIER_MON_DONPHAN_1] = {
.species = SPECIES_DONPHAN,
.moves = {MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER, MOVE_SWAGGER, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [428] = {
+ [FRONTIER_MON_CLAYDOL_1] = {
.species = SPECIES_CLAYDOL,
.moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_SWAGGER, MOVE_PSYCH_UP},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [429] = {
+ [FRONTIER_MON_WAILORD_1] = {
.species = SPECIES_WAILORD,
.moves = {MOVE_SURF, MOVE_ICY_WIND, MOVE_BODY_SLAM, MOVE_ROAR},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_SASSY
},
- [430] = {
+ [FRONTIER_MON_NINETALES_1] = {
.species = SPECIES_NINETALES,
.moves = {MOVE_FLAMETHROWER, MOVE_ROAR, MOVE_CONFUSE_RAY, MOVE_WILL_O_WISP},
.itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [431] = {
+ [FRONTIER_MON_MACHAMP_1] = {
.species = SPECIES_MACHAMP,
.moves = {MOVE_CROSS_CHOP, MOVE_ROCK_SLIDE, MOVE_COUNTER, MOVE_SCARY_FACE},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [432] = {
+ [FRONTIER_MON_SHUCKLE_1] = {
.species = SPECIES_SHUCKLE,
.moves = {MOVE_ROLLOUT, MOVE_DEFENSE_CURL, MOVE_SLEEP_TALK, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_BRAVE
},
- [433] = {
+ [FRONTIER_MON_STEELIX_1] = {
.species = SPECIES_STEELIX,
.moves = {MOVE_EARTHQUAKE, MOVE_DRAGON_BREATH, MOVE_ROCK_TOMB, MOVE_ROAR},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [434] = {
+ [FRONTIER_MON_TENTACRUEL_1] = {
.species = SPECIES_TENTACRUEL,
.moves = {MOVE_SLUDGE_BOMB, MOVE_ICY_WIND, MOVE_BARRIER, MOVE_CONFUSE_RAY},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_IMPISH
},
- [435] = {
+ [FRONTIER_MON_AERODACTYL_1] = {
.species = SPECIES_AERODACTYL,
.moves = {MOVE_ANCIENT_POWER, MOVE_DRAGON_BREATH, MOVE_AERIAL_ACE, MOVE_ROAR},
.itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [436] = {
+ [FRONTIER_MON_PORYGON2_1] = {
.species = SPECIES_PORYGON2,
.moves = {MOVE_TRI_ATTACK, MOVE_AERIAL_ACE, MOVE_SHADOW_BALL, MOVE_RECOVER},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [437] = {
+ [FRONTIER_MON_GARDEVOIR_1] = {
.species = SPECIES_GARDEVOIR,
.moves = {MOVE_DREAM_EATER, MOVE_HYPNOSIS, MOVE_MAGICAL_LEAF, MOVE_REFLECT},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_TIMID
},
- [438] = {
+ [FRONTIER_MON_EXEGGUTOR_1] = {
.species = SPECIES_EXEGGUTOR,
.moves = {MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_SYNTHESIS, MOVE_LIGHT_SCREEN},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_QUIET
},
- [439] = {
+ [FRONTIER_MON_STARMIE_1] = {
.species = SPECIES_STARMIE,
.moves = {MOVE_PSYCHIC, MOVE_CONFUSE_RAY, MOVE_THUNDER_WAVE, MOVE_RECOVER},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [440] = {
+ [FRONTIER_MON_FLYGON_1] = {
.species = SPECIES_FLYGON,
.moves = {MOVE_EARTHQUAKE, MOVE_STEEL_WING, MOVE_FAINT_ATTACK, MOVE_FACADE},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [441] = {
+ [FRONTIER_MON_VENUSAUR_1] = {
.species = SPECIES_VENUSAUR,
.moves = {MOVE_GIGA_DRAIN, MOVE_SUNNY_DAY, MOVE_SYNTHESIS, MOVE_SLEEP_POWDER},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIET
},
- [442] = {
+ [FRONTIER_MON_VAPOREON_1] = {
.species = SPECIES_VAPOREON,
.moves = {MOVE_SURF, MOVE_ROAR, MOVE_BITE, MOVE_QUICK_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_MYSTIC_WATER,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
.nature = NATURE_MODEST
},
- [443] = {
+ [FRONTIER_MON_JOLTEON_1] = {
.species = SPECIES_JOLTEON,
.moves = {MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_ATTRACT, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [444] = {
+ [FRONTIER_MON_FLAREON_1] = {
.species = SPECIES_FLAREON,
.moves = {MOVE_FLAMETHROWER, MOVE_ROAR, MOVE_BITE, MOVE_SAND_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
.nature = NATURE_MODEST
},
- [445] = {
+ [FRONTIER_MON_MEGANIUM_1] = {
.species = SPECIES_MEGANIUM,
.moves = {MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_LIGHT_SCREEN, MOVE_SYNTHESIS},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [446] = {
+ [FRONTIER_MON_ESPEON_1] = {
.species = SPECIES_ESPEON,
.moves = {MOVE_PSYCHIC, MOVE_CHARM, MOVE_CALM_MIND, MOVE_BATON_PASS},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
.nature = NATURE_MODEST
},
- [447] = {
+ [FRONTIER_MON_UMBREON_1] = {
.species = SPECIES_UMBREON,
.moves = {MOVE_CONFUSE_RAY, MOVE_FAINT_ATTACK, MOVE_DOUBLE_TEAM, MOVE_BATON_PASS},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_BOLD
},
- [448] = {
+ [FRONTIER_MON_BLASTOISE_1] = {
.species = SPECIES_BLASTOISE,
.moves = {MOVE_HYDRO_PUMP, MOVE_RAIN_DANCE, MOVE_BITE, MOVE_SEISMIC_TOSS},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [449] = {
+ [FRONTIER_MON_FERALIGATR_1] = {
.species = SPECIES_FERALIGATR,
.moves = {MOVE_SURF, MOVE_RAIN_DANCE, MOVE_AERIAL_ACE, MOVE_ROAR},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIET
},
- [450] = {
+ [FRONTIER_MON_AGGRON_1] = {
.species = SPECIES_AGGRON,
.moves = {MOVE_IRON_TAIL, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_ROAR},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [451] = {
+ [FRONTIER_MON_BLAZIKEN_1] = {
.species = SPECIES_BLAZIKEN,
.moves = {MOVE_FLAMETHROWER, MOVE_SUNNY_DAY, MOVE_DOUBLE_KICK, MOVE_ROAR},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [452] = {
+ [FRONTIER_MON_WALREIN_1] = {
.species = SPECIES_WALREIN,
.moves = {MOVE_BLIZZARD, MOVE_HAIL, MOVE_YAWN, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_QUIET
},
- [453] = {
+ [FRONTIER_MON_SCEPTILE_1] = {
.species = SPECIES_SCEPTILE,
.moves = {MOVE_LEAF_BLADE, MOVE_LEECH_SEED, MOVE_AERIAL_ACE, MOVE_DETECT},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [454] = {
+ [FRONTIER_MON_CHARIZARD_1] = {
.species = SPECIES_CHARIZARD,
.moves = {MOVE_FIRE_BLAST, MOVE_SUNNY_DAY, MOVE_ROAR, MOVE_SCARY_FACE},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [455] = {
+ [FRONTIER_MON_TYPHLOSION_1] = {
.species = SPECIES_TYPHLOSION,
.moves = {MOVE_FIRE_BLAST, MOVE_SUNNY_DAY, MOVE_SMOKESCREEN, MOVE_ROAR},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [456] = {
+ [FRONTIER_MON_LAPRAS_1] = {
.species = SPECIES_LAPRAS,
.moves = {MOVE_SURF, MOVE_ATTRACT, MOVE_CONFUSE_RAY, MOVE_SING},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_BOLD
},
- [457] = {
+ [FRONTIER_MON_CROBAT_1] = {
.species = SPECIES_CROBAT,
.moves = {MOVE_SLUDGE_BOMB, MOVE_BITE, MOVE_ASTONISH, MOVE_SCREECH},
.itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [458] = {
+ [FRONTIER_MON_SWAMPERT_1] = {
.species = SPECIES_SWAMPERT,
.moves = {MOVE_EARTHQUAKE, MOVE_COUNTER, MOVE_REST, MOVE_CURSE},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [459] = {
+ [FRONTIER_MON_GYARADOS_1] = {
.species = SPECIES_GYARADOS,
.moves = {MOVE_RETURN, MOVE_BITE, MOVE_THUNDER_WAVE, MOVE_DRAGON_DANCE},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_CAREFUL
},
- [460] = {
+ [FRONTIER_MON_SNORLAX_1] = {
.species = SPECIES_SNORLAX,
.moves = {MOVE_FACADE, MOVE_SHADOW_BALL, MOVE_ATTRACT, MOVE_DOUBLE_TEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [461] = {
+ [FRONTIER_MON_KINGDRA_1] = {
.species = SPECIES_KINGDRA,
.moves = {MOVE_HYDRO_PUMP, MOVE_DRAGON_BREATH, MOVE_ICY_WIND, MOVE_ATTRACT},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [462] = {
+ [FRONTIER_MON_BLISSEY_1] = {
.species = SPECIES_BLISSEY,
.moves = {MOVE_TOXIC, MOVE_DOUBLE_TEAM, MOVE_SING, MOVE_SOFT_BOILED},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_BOLD
},
- [463] = {
+ [FRONTIER_MON_MILOTIC_1] = {
.species = SPECIES_MILOTIC,
.moves = {MOVE_HYDRO_PUMP, MOVE_ICY_WIND, MOVE_RECOVER, MOVE_MIRROR_COAT},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [464] = {
+ [FRONTIER_MON_ARCANINE_1] = {
.species = SPECIES_ARCANINE,
.moves = {MOVE_FLAMETHROWER, MOVE_EXTREME_SPEED, MOVE_CRUNCH, MOVE_BODY_SLAM},
.itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [465] = {
+ [FRONTIER_MON_SALAMENCE_1] = {
.species = SPECIES_SALAMENCE,
.moves = {MOVE_DRAGON_CLAW, MOVE_AERIAL_ACE, MOVE_HEADBUTT, MOVE_ROCK_SLIDE},
.itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [466] = {
+ [FRONTIER_MON_METAGROSS_1] = {
.species = SPECIES_METAGROSS,
.moves = {MOVE_METEOR_MASH, MOVE_AERIAL_ACE, MOVE_FACADE, MOVE_LIGHT_SCREEN},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [467] = {
+ [FRONTIER_MON_SLAKING_1] = {
.species = SPECIES_SLAKING,
.moves = {MOVE_YAWN, MOVE_BULK_UP, MOVE_SWAGGER, MOVE_AERIAL_ACE},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [468] = {
+ [FRONTIER_MON_DUGTRIO_2] = {
.species = SPECIES_DUGTRIO,
.moves = {MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER, MOVE_AERIAL_ACE, MOVE_TRI_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [469] = {
+ [FRONTIER_MON_MEDICHAM_2] = {
.species = SPECIES_MEDICHAM,
.moves = {MOVE_REVERSAL, MOVE_ENDURE, MOVE_PSYCHIC, MOVE_FAKE_OUT},
.itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [470] = {
+ [FRONTIER_MON_MAROWAK_2] = {
.species = SPECIES_MAROWAK,
.moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_SWORDS_DANCE, MOVE_ICY_WIND},
.itemTableId = BATTLE_FRONTIER_ITEM_THICK_CLUB,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [471] = {
+ [FRONTIER_MON_QUAGSIRE_2] = {
.species = SPECIES_QUAGSIRE,
.moves = {MOVE_CURSE, MOVE_ATTRACT, MOVE_YAWN, MOVE_ANCIENT_POWER},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_SASSY
},
- [472] = {
+ [FRONTIER_MON_MISDREAVUS_2] = {
.species = SPECIES_MISDREAVUS,
.moves = {MOVE_PSYCHIC, MOVE_ATTRACT, MOVE_THUNDER_WAVE, MOVE_CONFUSE_RAY},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
.nature = NATURE_BOLD
},
- [473] = {
+ [FRONTIER_MON_FEAROW_2] = {
.species = SPECIES_FEAROW,
.moves = {MOVE_DRILL_PECK, MOVE_TRI_ATTACK, MOVE_ATTRACT, MOVE_PURSUIT},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [474] = {
+ [FRONTIER_MON_GRANBULL_2] = {
.species = SPECIES_GRANBULL,
.moves = {MOVE_OVERHEAT, MOVE_THUNDERBOLT, MOVE_ICE_PUNCH, MOVE_FACADE},
.itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK,
.nature = NATURE_QUIET
},
- [475] = {
+ [FRONTIER_MON_JYNX_2] = {
.species = SPECIES_JYNX,
.moves = {MOVE_PERISH_SONG, MOVE_MEAN_LOOK, MOVE_LOVELY_KISS, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_IMPISH
},
- [476] = {
+ [FRONTIER_MON_DUSCLOPS_2] = {
.species = SPECIES_DUSCLOPS,
.moves = {MOVE_TOXIC, MOVE_CONFUSE_RAY, MOVE_DOUBLE_TEAM, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_IMPISH
},
- [477] = {
+ [FRONTIER_MON_DODRIO_2] = {
.species = SPECIES_DODRIO,
.moves = {MOVE_DRILL_PECK, MOVE_DOUBLE_EDGE, MOVE_FAINT_ATTACK, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [478] = {
+ [FRONTIER_MON_MR_MIME_2] = {
.species = SPECIES_MR_MIME,
.moves = {MOVE_BATON_PASS, MOVE_SWAGGER, MOVE_PSYCH_UP, MOVE_PSYCHIC},
.itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [479] = {
+ [FRONTIER_MON_LANTURN_2] = {
.species = SPECIES_LANTURN,
.moves = {MOVE_FLAIL, MOVE_ENDURE, MOVE_THUNDERBOLT, MOVE_SURF},
.itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [480] = {
+ [FRONTIER_MON_BRELOOM_2] = {
.species = SPECIES_BRELOOM,
.moves = {MOVE_GIGA_DRAIN, MOVE_LEECH_SEED, MOVE_FOCUS_PUNCH, MOVE_SPORE},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_DOCILE
},
- [481] = {
+ [FRONTIER_MON_FORRETRESS_2] = {
.species = SPECIES_FORRETRESS,
.moves = {MOVE_EARTHQUAKE, MOVE_DOUBLE_EDGE, MOVE_COUNTER, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [482] = {
+ [FRONTIER_MON_SKARMORY_2] = {
.species = SPECIES_SKARMORY,
.moves = {MOVE_SPIKES, MOVE_ROAR, MOVE_DRILL_PECK, MOVE_TOXIC},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_CAREFUL
},
- [483] = {
+ [FRONTIER_MON_WHISCASH_2] = {
.species = SPECIES_WHISCASH,
.moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_SPARK, MOVE_FUTURE_SIGHT},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [484] = {
+ [FRONTIER_MON_XATU_2] = {
.species = SPECIES_XATU,
.moves = {MOVE_FLY, MOVE_TOXIC, MOVE_CONFUSE_RAY, MOVE_ATTRACT},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_IMPISH
},
- [485] = {
+ [FRONTIER_MON_CLEFABLE_2] = {
.species = SPECIES_CLEFABLE,
.moves = {MOVE_METEOR_MASH, MOVE_COSMIC_POWER, MOVE_DOUBLE_TEAM, MOVE_FOLLOW_ME},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [486] = {
+ [FRONTIER_MON_HARIYAMA_2] = {
.species = SPECIES_HARIYAMA,
.moves = {MOVE_CROSS_CHOP, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_THUNDER_PUNCH},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIET
},
- [487] = {
+ [FRONTIER_MON_RAICHU_2] = {
.species = SPECIES_RAICHU,
.moves = {MOVE_THUNDERBOLT, MOVE_REVERSAL, MOVE_ENDURE, MOVE_AGILITY},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [488] = {
+ [FRONTIER_MON_DEWGONG_2] = {
.species = SPECIES_DEWGONG,
.moves = {MOVE_BLIZZARD, MOVE_DOUBLE_EDGE, MOVE_ENCORE, MOVE_DISABLE},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [489] = {
+ [FRONTIER_MON_MANECTRIC_2] = {
.species = SPECIES_MANECTRIC,
.moves = {MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_CRUNCH, MOVE_ROAR},
.itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [490] = {
+ [FRONTIER_MON_VILEPLUME_2] = {
.species = SPECIES_VILEPLUME,
.moves = {MOVE_INGRAIN, MOVE_DOUBLE_TEAM, MOVE_TOXIC, MOVE_GIGA_DRAIN},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_BOLD
},
- [491] = {
+ [FRONTIER_MON_VICTREEBEL_2] = {
.species = SPECIES_VICTREEBEL,
.moves = {MOVE_GIGA_DRAIN, MOVE_SLUDGE_BOMB, MOVE_SLEEP_POWDER, MOVE_ATTRACT},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_SERIOUS
},
- [492] = {
+ [FRONTIER_MON_ELECTRODE_2] = {
.species = SPECIES_ELECTRODE,
.moves = {MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_DOUBLE_TEAM, MOVE_SWAGGER},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [493] = {
+ [FRONTIER_MON_EXPLOUD_2] = {
.species = SPECIES_EXPLOUD,
.moves = {MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_EARTHQUAKE, MOVE_COUNTER},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIRKY
},
- [494] = {
+ [FRONTIER_MON_SHIFTRY_2] = {
.species = SPECIES_SHIFTRY,
.moves = {MOVE_LEECH_SEED, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_IMPISH
},
- [495] = {
+ [FRONTIER_MON_GLALIE_2] = {
.species = SPECIES_GLALIE,
.moves = {MOVE_EXPLOSION, MOVE_ENDURE, MOVE_BODY_SLAM, MOVE_ICY_WIND},
.itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIRKY
},
- [496] = {
+ [FRONTIER_MON_LUDICOLO_2] = {
.species = SPECIES_LUDICOLO,
.moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [497] = {
+ [FRONTIER_MON_HYPNO_2] = {
.species = SPECIES_HYPNO,
.moves = {MOVE_HYPNOSIS, MOVE_NIGHTMARE, MOVE_DREAM_EATER, MOVE_PSYCHIC},
.itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_MODEST
},
- [498] = {
+ [FRONTIER_MON_GOLEM_2] = {
.species = SPECIES_GOLEM,
.moves = {MOVE_FOCUS_PUNCH, MOVE_SUBSTITUTE, MOVE_DOUBLE_TEAM, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [499] = {
+ [FRONTIER_MON_RHYDON_2] = {
.species = SPECIES_RHYDON,
.moves = {MOVE_EARTHQUAKE, MOVE_HORN_DRILL, MOVE_ROCK_SLIDE, MOVE_BRICK_BREAK},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [500] = {
+ [FRONTIER_MON_ALAKAZAM_2] = {
.species = SPECIES_ALAKAZAM,
.moves = {MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_THUNDER_WAVE, MOVE_RECOVER},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
.nature = NATURE_MODEST
},
- [501] = {
+ [FRONTIER_MON_WEEZING_2] = {
.species = SPECIES_WEEZING,
.moves = {MOVE_MEMENTO, MOVE_SLUDGE_BOMB, MOVE_FACADE, MOVE_DESTINY_BOND},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [502] = {
+ [FRONTIER_MON_KANGASKHAN_2] = {
.species = SPECIES_KANGASKHAN,
.moves = {MOVE_CRUSH_CLAW, MOVE_SHADOW_BALL, MOVE_ATTRACT, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [503] = {
+ [FRONTIER_MON_ELECTABUZZ_2] = {
.species = SPECIES_ELECTABUZZ,
.moves = {MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_ATTRACT, MOVE_FOCUS_PUNCH},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIRKY
},
- [504] = {
+ [FRONTIER_MON_TAUROS_2] = {
.species = SPECIES_TAUROS,
.moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_DOUBLE_TEAM, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [505] = {
+ [FRONTIER_MON_SLOWBRO_2] = {
.species = SPECIES_SLOWBRO,
.moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_CALM_MIND, MOVE_YAWN},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_MODEST
},
- [506] = {
+ [FRONTIER_MON_SLOWKING_2] = {
.species = SPECIES_SLOWKING,
.moves = {MOVE_YAWN, MOVE_THUNDER_WAVE, MOVE_SURF, MOVE_PSYCHIC},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
.nature = NATURE_MODEST
},
- [507] = {
+ [FRONTIER_MON_MILTANK_2] = {
.species = SPECIES_MILTANK,
.moves = {MOVE_FOCUS_PUNCH, MOVE_SHADOW_BALL, MOVE_ATTRACT, MOVE_THUNDER_WAVE},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_CAREFUL
},
- [508] = {
+ [FRONTIER_MON_ALTARIA_2] = {
.species = SPECIES_ALTARIA,
.moves = {MOVE_PERISH_SONG, MOVE_DRAGON_BREATH, MOVE_PURSUIT, MOVE_ATTRACT},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_BOLD
},
- [509] = {
+ [FRONTIER_MON_NIDOQUEEN_2] = {
.species = SPECIES_NIDOQUEEN,
.moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_ROCK_SLIDE},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [510] = {
+ [FRONTIER_MON_NIDOKING_2] = {
.species = SPECIES_NIDOKING,
.moves = {MOVE_MEGA_KICK, MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_BRICK_BREAK},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [511] = {
+ [FRONTIER_MON_MAGMAR_2] = {
.species = SPECIES_MAGMAR,
.moves = {MOVE_FIRE_BLAST, MOVE_SMOKESCREEN, MOVE_THUNDER_PUNCH, MOVE_CONFUSE_RAY},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [512] = {
+ [FRONTIER_MON_CRADILY_2] = {
.species = SPECIES_CRADILY,
.moves = {MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER, MOVE_SWAGGER, MOVE_PSYCH_UP},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [513] = {
+ [FRONTIER_MON_ARMALDO_2] = {
.species = SPECIES_ARMALDO,
.moves = {MOVE_IRON_TAIL, MOVE_ANCIENT_POWER, MOVE_BRICK_BREAK, MOVE_KNOCK_OFF},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [514] = {
+ [FRONTIER_MON_GOLDUCK_2] = {
.species = SPECIES_GOLDUCK,
.moves = {MOVE_CROSS_CHOP, MOVE_SURF, MOVE_SWAGGER, MOVE_PSYCH_UP},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIRKY
},
- [515] = {
+ [FRONTIER_MON_RAPIDASH_2] = {
.species = SPECIES_RAPIDASH,
.moves = {MOVE_FIRE_BLAST, MOVE_BOUNCE, MOVE_DOUBLE_TEAM, MOVE_ATTRACT},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [516] = {
+ [FRONTIER_MON_MUK_2] = {
.species = SPECIES_MUK,
.moves = {MOVE_CURSE, MOVE_REST, MOVE_SLUDGE_BOMB, MOVE_DYNAMIC_PUNCH},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [517] = {
+ [FRONTIER_MON_GENGAR_2] = {
.species = SPECIES_GENGAR,
.moves = {MOVE_SLUDGE_BOMB, MOVE_SHADOW_BALL, MOVE_CONFUSE_RAY, MOVE_WILL_O_WISP},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [518] = {
+ [FRONTIER_MON_AMPHAROS_2] = {
.species = SPECIES_AMPHAROS,
.moves = {MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH, MOVE_FOCUS_PUNCH, MOVE_THUNDER_WAVE},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [519] = {
+ [FRONTIER_MON_SCIZOR_2] = {
.species = SPECIES_SCIZOR,
.moves = {MOVE_SILVER_WIND, MOVE_STEEL_WING, MOVE_SWORDS_DANCE, MOVE_LIGHT_SCREEN},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [520] = {
+ [FRONTIER_MON_HERACROSS_2] = {
.species = SPECIES_HERACROSS,
.moves = {MOVE_MEGAHORN, MOVE_EARTHQUAKE, MOVE_ATTRACT, MOVE_BULK_UP},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_JOLLY
},
- [521] = {
+ [FRONTIER_MON_URSARING_2] = {
.species = SPECIES_URSARING,
.moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_BRICK_BREAK, MOVE_COUNTER},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [522] = {
+ [FRONTIER_MON_HOUNDOOM_2] = {
.species = SPECIES_HOUNDOOM,
.moves = {MOVE_FIRE_BLAST, MOVE_CRUNCH, MOVE_ROAR, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [523] = {
+ [FRONTIER_MON_DONPHAN_2] = {
.species = SPECIES_DONPHAN,
.moves = {MOVE_FLAIL, MOVE_ENDURE, MOVE_EARTHQUAKE, MOVE_ROCK_TOMB},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_JOLLY
},
- [524] = {
+ [FRONTIER_MON_CLAYDOL_2] = {
.species = SPECIES_CLAYDOL,
.moves = {MOVE_PSYCHIC, MOVE_EARTHQUAKE, MOVE_DOUBLE_TEAM, MOVE_COSMIC_POWER},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_CALM
},
- [525] = {
+ [FRONTIER_MON_WAILORD_2] = {
.species = SPECIES_WAILORD,
.moves = {MOVE_DOUBLE_EDGE, MOVE_REST, MOVE_CURSE, MOVE_AMNESIA},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [526] = {
+ [FRONTIER_MON_NINETALES_2] = {
.species = SPECIES_NINETALES,
.moves = {MOVE_HEAT_WAVE, MOVE_BODY_SLAM, MOVE_GRUDGE, MOVE_SUNNY_DAY},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_QUIRKY
},
- [527] = {
+ [FRONTIER_MON_MACHAMP_2] = {
.species = SPECIES_MACHAMP,
.moves = {MOVE_CROSS_CHOP, MOVE_EARTHQUAKE, MOVE_BULK_UP, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [528] = {
+ [FRONTIER_MON_SHUCKLE_2] = {
.species = SPECIES_SHUCKLE,
.moves = {MOVE_SANDSTORM, MOVE_DIG, MOVE_FLASH, MOVE_DOUBLE_TEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_CAREFUL
},
- [529] = {
+ [FRONTIER_MON_STEELIX_2] = {
.species = SPECIES_STEELIX,
.moves = {MOVE_EARTHQUAKE, MOVE_DRAGON_BREATH, MOVE_SANDSTORM, MOVE_BLOCK},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [530] = {
+ [FRONTIER_MON_TENTACRUEL_2] = {
.species = SPECIES_TENTACRUEL,
.moves = {MOVE_TOXIC, MOVE_GIGA_DRAIN, MOVE_CONFUSE_RAY, MOVE_SURF},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [531] = {
+ [FRONTIER_MON_AERODACTYL_2] = {
.species = SPECIES_AERODACTYL,
.moves = {MOVE_HYPER_BEAM, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_ANCIENT_POWER},
.itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [532] = {
+ [FRONTIER_MON_PORYGON2_2] = {
.species = SPECIES_PORYGON2,
.moves = {MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_THUNDER_WAVE, MOVE_RECOVER},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [533] = {
+ [FRONTIER_MON_GARDEVOIR_2] = {
.species = SPECIES_GARDEVOIR,
.moves = {MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [534] = {
+ [FRONTIER_MON_EXEGGUTOR_2] = {
.species = SPECIES_EXEGGUTOR,
.moves = {MOVE_RETURN, MOVE_CURSE, MOVE_SLEEP_POWDER, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [535] = {
+ [FRONTIER_MON_STARMIE_2] = {
.species = SPECIES_STARMIE,
.moves = {MOVE_HYDRO_PUMP, MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_RECOVER},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [536] = {
+ [FRONTIER_MON_FLYGON_2] = {
.species = SPECIES_FLYGON,
.moves = {MOVE_SOLAR_BEAM, MOVE_FIRE_BLAST, MOVE_CRUNCH, MOVE_SUNNY_DAY},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [537] = {
+ [FRONTIER_MON_VENUSAUR_2] = {
.species = SPECIES_VENUSAUR,
.moves = {MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_DOUBLE_TEAM, MOVE_LIGHT_SCREEN},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_BOLD
},
- [538] = {
+ [FRONTIER_MON_VAPOREON_2] = {
.species = SPECIES_VAPOREON,
.moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_BODY_SLAM, MOVE_SHADOW_BALL},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [539] = {
+ [FRONTIER_MON_JOLTEON_2] = {
.species = SPECIES_JOLTEON,
.moves = {MOVE_THUNDERBOLT, MOVE_DIG, MOVE_DOUBLE_KICK, MOVE_ROAR},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [540] = {
+ [FRONTIER_MON_FLAREON_2] = {
.species = SPECIES_FLAREON,
.moves = {MOVE_CURSE, MOVE_ATTRACT, MOVE_DOUBLE_EDGE, MOVE_SHADOW_BALL},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [541] = {
+ [FRONTIER_MON_MEGANIUM_2] = {
.species = SPECIES_MEGANIUM,
.moves = {MOVE_LEECH_SEED, MOVE_SUBSTITUTE, MOVE_DOUBLE_TEAM, MOVE_GRASS_WHISTLE},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_CALM
},
- [542] = {
+ [FRONTIER_MON_ESPEON_2] = {
.species = SPECIES_ESPEON,
.moves = {MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_CALM_MIND, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [543] = {
+ [FRONTIER_MON_UMBREON_2] = {
.species = SPECIES_UMBREON,
.moves = {MOVE_CURSE, MOVE_SCREECH, MOVE_DOUBLE_TEAM, MOVE_DOUBLE_EDGE},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [544] = {
+ [FRONTIER_MON_BLASTOISE_2] = {
.species = SPECIES_BLASTOISE,
.moves = {MOVE_HYDRO_PUMP, MOVE_MEGA_KICK, MOVE_BRICK_BREAK, MOVE_MIRROR_COAT},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_BRAVE
},
- [545] = {
+ [FRONTIER_MON_FERALIGATR_2] = {
.species = SPECIES_FERALIGATR,
.moves = {MOVE_SURF, MOVE_DRAGON_CLAW, MOVE_BRICK_BREAK, MOVE_SCARY_FACE},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_SASSY
},
- [546] = {
+ [FRONTIER_MON_AGGRON_2] = {
.species = SPECIES_AGGRON,
.moves = {MOVE_FOCUS_PUNCH, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_THUNDER_WAVE},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [547] = {
+ [FRONTIER_MON_BLAZIKEN_2] = {
.species = SPECIES_BLAZIKEN,
.moves = {MOVE_BLAZE_KICK, MOVE_MEGA_KICK, MOVE_THUNDER_PUNCH, MOVE_BRICK_BREAK},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [548] = {
+ [FRONTIER_MON_WALREIN_2] = {
.species = SPECIES_WALREIN,
.moves = {MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_CURSE, MOVE_DOUBLE_TEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [549] = {
+ [FRONTIER_MON_SCEPTILE_2] = {
.species = SPECIES_SCEPTILE,
.moves = {MOVE_LEAF_BLADE, MOVE_THUNDER_PUNCH, MOVE_ATTRACT, MOVE_DOUBLE_TEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [550] = {
+ [FRONTIER_MON_CHARIZARD_2] = {
.species = SPECIES_CHARIZARD,
.moves = {MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_DRAGON_DANCE, MOVE_SMOKESCREEN},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [551] = {
+ [FRONTIER_MON_TYPHLOSION_2] = {
.species = SPECIES_TYPHLOSION,
.moves = {MOVE_FLAMETHROWER, MOVE_THUNDER_PUNCH, MOVE_AERIAL_ACE, MOVE_ROCK_SLIDE},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [552] = {
+ [FRONTIER_MON_LAPRAS_2] = {
.species = SPECIES_LAPRAS,
.moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_BODY_SLAM, MOVE_ROAR},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_TIMID
},
- [553] = {
+ [FRONTIER_MON_CROBAT_2] = {
.species = SPECIES_CROBAT,
.moves = {MOVE_TOXIC, MOVE_GIGA_DRAIN, MOVE_CONFUSE_RAY, MOVE_DOUBLE_TEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_CALM
},
- [554] = {
+ [FRONTIER_MON_SWAMPERT_2] = {
.species = SPECIES_SWAMPERT,
.moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_COUNTER, MOVE_MIRROR_COAT},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [555] = {
+ [FRONTIER_MON_GYARADOS_2] = {
.species = SPECIES_GYARADOS,
.moves = {MOVE_HYDRO_PUMP, MOVE_THUNDERBOLT, MOVE_FIRE_BLAST, MOVE_BLIZZARD},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [556] = {
+ [FRONTIER_MON_SNORLAX_2] = {
.species = SPECIES_SNORLAX,
.moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_CURSE, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [557] = {
+ [FRONTIER_MON_KINGDRA_2] = {
.species = SPECIES_KINGDRA,
.moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_DRAGON_BREATH, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [558] = {
+ [FRONTIER_MON_BLISSEY_2] = {
.species = SPECIES_BLISSEY,
.moves = {MOVE_SEISMIC_TOSS, MOVE_SING, MOVE_ATTRACT, MOVE_SUBSTITUTE},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_BOLD
},
- [559] = {
+ [FRONTIER_MON_MILOTIC_2] = {
.species = SPECIES_MILOTIC,
.moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_SAFEGUARD, MOVE_MIRROR_COAT},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [560] = {
+ [FRONTIER_MON_ARCANINE_2] = {
.species = SPECIES_ARCANINE,
.moves = {MOVE_FIRE_BLAST, MOVE_SUNNY_DAY, MOVE_CRUNCH, MOVE_ROAR},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_DOCILE
},
- [561] = {
+ [FRONTIER_MON_SALAMENCE_2] = {
.species = SPECIES_SALAMENCE,
.moves = {MOVE_DOUBLE_EDGE, MOVE_CRUNCH, MOVE_SWAGGER, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [562] = {
+ [FRONTIER_MON_METAGROSS_2] = {
.species = SPECIES_METAGROSS,
.moves = {MOVE_EARTHQUAKE, MOVE_METEOR_MASH, MOVE_PSYCH_UP, MOVE_SWAGGER},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [563] = {
+ [FRONTIER_MON_SLAKING_2] = {
.species = SPECIES_SLAKING,
.moves = {MOVE_MEGA_KICK, MOVE_SHADOW_BALL, MOVE_YAWN, MOVE_AMNESIA},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_ADAMANT
},
- [564] = {
+ [FRONTIER_MON_DUGTRIO_3] = {
.species = SPECIES_DUGTRIO,
.moves = {MOVE_EARTHQUAKE, MOVE_DOUBLE_EDGE, MOVE_SLUDGE_BOMB, MOVE_FISSURE},
.itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [565] = {
+ [FRONTIER_MON_MEDICHAM_3] = {
.species = SPECIES_MEDICHAM,
.moves = {MOVE_DYNAMIC_PUNCH, MOVE_THUNDER_PUNCH, MOVE_ICE_PUNCH, MOVE_FIRE_PUNCH},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_HARDY
},
- [566] = {
+ [FRONTIER_MON_MISDREAVUS_3] = {
.species = SPECIES_MISDREAVUS,
.moves = {MOVE_PERISH_SONG, MOVE_MEAN_LOOK, MOVE_THUNDER_WAVE, MOVE_CONFUSE_RAY},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_BOLD
},
- [567] = {
+ [FRONTIER_MON_FEAROW_3] = {
.species = SPECIES_FEAROW,
.moves = {MOVE_DRILL_PECK, MOVE_RETURN, MOVE_STEEL_WING, MOVE_FAINT_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [568] = {
+ [FRONTIER_MON_GRANBULL_3] = {
.species = SPECIES_GRANBULL,
.moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_SLUDGE_BOMB, MOVE_ROCK_SLIDE},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [569] = {
+ [FRONTIER_MON_JYNX_3] = {
.species = SPECIES_JYNX,
.moves = {MOVE_DREAM_EATER, MOVE_LOVELY_KISS, MOVE_ATTRACT, MOVE_SUBSTITUTE},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [570] = {
+ [FRONTIER_MON_DUSCLOPS_3] = {
.species = SPECIES_DUSCLOPS,
.moves = {MOVE_PSYCH_UP, MOVE_SWAGGER, MOVE_SHADOW_BALL, MOVE_EARTHQUAKE},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [571] = {
+ [FRONTIER_MON_DODRIO_3] = {
.species = SPECIES_DODRIO,
.moves = {MOVE_DOUBLE_EDGE, MOVE_DRILL_PECK, MOVE_STEEL_WING, MOVE_FAINT_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [572] = {
+ [FRONTIER_MON_MR_MIME_3] = {
.species = SPECIES_MR_MIME,
.moves = {MOVE_TRICK, MOVE_TORMENT, MOVE_PSYCHIC, MOVE_THUNDERBOLT},
.itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [573] = {
+ [FRONTIER_MON_LANTURN_3] = {
.species = SPECIES_LANTURN,
.moves = {MOVE_HYDRO_PUMP, MOVE_THUNDER, MOVE_CONFUSE_RAY, MOVE_RAIN_DANCE},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [574] = {
+ [FRONTIER_MON_BRELOOM_3] = {
.species = SPECIES_BRELOOM,
.moves = {MOVE_IRON_TAIL, MOVE_FOCUS_PUNCH, MOVE_ATTRACT, MOVE_SPORE},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [575] = {
+ [FRONTIER_MON_FORRETRESS_3] = {
.species = SPECIES_FORRETRESS,
.moves = {MOVE_EXPLOSION, MOVE_EARTHQUAKE, MOVE_GIGA_DRAIN, MOVE_ZAP_CANNON},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIET
},
- [576] = {
+ [FRONTIER_MON_WHISCASH_3] = {
.species = SPECIES_WHISCASH,
.moves = {MOVE_SLEEP_TALK, MOVE_REST, MOVE_SURF, MOVE_FISSURE},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_HARDY
},
- [577] = {
+ [FRONTIER_MON_XATU_3] = {
.species = SPECIES_XATU,
.moves = {MOVE_DRILL_PECK, MOVE_PSYCHIC, MOVE_GIGA_DRAIN, MOVE_STEEL_WING},
.itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_JOLLY
},
- [578] = {
+ [FRONTIER_MON_SKARMORY_3] = {
.species = SPECIES_SKARMORY,
.moves = {MOVE_TOXIC, MOVE_CURSE, MOVE_REST, MOVE_FLY},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_CAREFUL
},
- [579] = {
+ [FRONTIER_MON_MAROWAK_3] = {
.species = SPECIES_MAROWAK,
.moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_SWORDS_DANCE, MOVE_BRICK_BREAK},
.itemTableId = BATTLE_FRONTIER_ITEM_THICK_CLUB,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [580] = {
+ [FRONTIER_MON_QUAGSIRE_3] = {
.species = SPECIES_QUAGSIRE,
.moves = {MOVE_EARTHQUAKE, MOVE_SLUDGE_BOMB, MOVE_DOUBLE_EDGE, MOVE_CURSE},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [581] = {
+ [FRONTIER_MON_CLEFABLE_3] = {
.species = SPECIES_CLEFABLE,
.moves = {MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_FLAMETHROWER, MOVE_MAGICAL_LEAF},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
.nature = NATURE_MODEST
},
- [582] = {
+ [FRONTIER_MON_HARIYAMA_3] = {
.species = SPECIES_HARIYAMA,
.moves = {MOVE_CROSS_CHOP, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_FACADE},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [583] = {
+ [FRONTIER_MON_RAICHU_3] = {
.species = SPECIES_RAICHU,
.moves = {MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_IRON_TAIL, MOVE_ATTRACT},
.itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_DOCILE
},
- [584] = {
+ [FRONTIER_MON_DEWGONG_3] = {
.species = SPECIES_DEWGONG,
.moves = {MOVE_HORN_DRILL, MOVE_SHEER_COLD, MOVE_SLEEP_TALK, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_BOLD
},
- [585] = {
+ [FRONTIER_MON_MANECTRIC_3] = {
.species = SPECIES_MANECTRIC,
.moves = {MOVE_THUNDERBOLT, MOVE_IRON_TAIL, MOVE_THUNDER_WAVE, MOVE_ROAR},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_QUIRKY
},
- [586] = {
+ [FRONTIER_MON_VILEPLUME_3] = {
.species = SPECIES_VILEPLUME,
.moves = {MOVE_ATTRACT, MOVE_STUN_SPORE, MOVE_SLUDGE_BOMB, MOVE_GIGA_DRAIN},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIRKY
},
- [587] = {
+ [FRONTIER_MON_VICTREEBEL_3] = {
.species = SPECIES_VICTREEBEL,
.moves = {MOVE_STUN_SPORE, MOVE_INGRAIN, MOVE_GIGA_DRAIN, MOVE_SLUDGE_BOMB},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIRKY
},
- [588] = {
+ [FRONTIER_MON_ELECTRODE_3] = {
.species = SPECIES_ELECTRODE,
.moves = {MOVE_EXPLOSION, MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_ENDURE},
.itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_NAUGHTY
},
- [589] = {
+ [FRONTIER_MON_EXPLOUD_3] = {
.species = SPECIES_EXPLOUD,
.moves = {MOVE_OVERHEAT, MOVE_ICE_BEAM, MOVE_THUNDER_PUNCH, MOVE_EXTRASENSORY},
.itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [590] = {
+ [FRONTIER_MON_SHIFTRY_3] = {
.species = SPECIES_SHIFTRY,
.moves = {MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_EXPLOSION, MOVE_SYNTHESIS},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIRKY
},
- [591] = {
+ [FRONTIER_MON_GLALIE_3] = {
.species = SPECIES_GLALIE,
.moves = {MOVE_BLIZZARD, MOVE_EARTHQUAKE, MOVE_DOUBLE_EDGE, MOVE_SHADOW_BALL},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [592] = {
+ [FRONTIER_MON_LUDICOLO_3] = {
.species = SPECIES_LUDICOLO,
.moves = {MOVE_LEECH_SEED, MOVE_RAIN_DANCE, MOVE_DOUBLE_TEAM, MOVE_GIGA_DRAIN},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_BOLD
},
- [593] = {
+ [FRONTIER_MON_HYPNO_3] = {
.species = SPECIES_HYPNO,
.moves = {MOVE_PSYCH_UP, MOVE_SWAGGER, MOVE_MEGA_KICK, MOVE_SHADOW_BALL},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [594] = {
+ [FRONTIER_MON_GOLEM_3] = {
.species = SPECIES_GOLEM,
.moves = {MOVE_EXPLOSION, MOVE_EARTHQUAKE, MOVE_FLAMETHROWER, MOVE_BRICK_BREAK},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [595] = {
+ [FRONTIER_MON_RHYDON_3] = {
.species = SPECIES_RHYDON,
.moves = {MOVE_MEGAHORN, MOVE_CRUSH_CLAW, MOVE_EARTHQUAKE, MOVE_HORN_DRILL},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [596] = {
+ [FRONTIER_MON_ALAKAZAM_3] = {
.species = SPECIES_ALAKAZAM,
.moves = {MOVE_TRICK, MOVE_DISABLE, MOVE_PSYCHIC, MOVE_SKILL_SWAP},
.itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
.nature = NATURE_MODEST
},
- [597] = {
+ [FRONTIER_MON_WEEZING_3] = {
.species = SPECIES_WEEZING,
.moves = {MOVE_EXPLOSION, MOVE_SLUDGE_BOMB, MOVE_FLAMETHROWER, MOVE_THUNDERBOLT},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIRKY
},
- [598] = {
+ [FRONTIER_MON_KANGASKHAN_3] = {
.species = SPECIES_KANGASKHAN,
.moves = {MOVE_REVERSAL, MOVE_ENDURE, MOVE_THUNDERBOLT, MOVE_EARTHQUAKE},
.itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_JOLLY
},
- [599] = {
+ [FRONTIER_MON_ELECTABUZZ_3] = {
.species = SPECIES_ELECTABUZZ,
.moves = {MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_THUNDERBOLT, MOVE_CROSS_CHOP},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_QUIRKY
},
- [600] = {
+ [FRONTIER_MON_TAUROS_3] = {
.species = SPECIES_TAUROS,
.moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_FLAMETHROWER, MOVE_ICE_BEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [601] = {
+ [FRONTIER_MON_SLOWBRO_3] = {
.species = SPECIES_SLOWBRO,
.moves = {MOVE_SURF, MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_ATTRACT},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK,
.nature = NATURE_QUIET
},
- [602] = {
+ [FRONTIER_MON_SLOWKING_3] = {
.species = SPECIES_SLOWKING,
.moves = {MOVE_PSYCHIC, MOVE_SURF, MOVE_ICE_BEAM, MOVE_EARTHQUAKE},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIET
},
- [603] = {
+ [FRONTIER_MON_MILTANK_3] = {
.species = SPECIES_MILTANK,
.moves = {MOVE_REVERSAL, MOVE_ENDURE, MOVE_EARTHQUAKE, MOVE_SHADOW_BALL},
.itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [604] = {
+ [FRONTIER_MON_ALTARIA_3] = {
.species = SPECIES_ALTARIA,
.moves = {MOVE_SING, MOVE_DRAGON_DANCE, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [605] = {
+ [FRONTIER_MON_NIDOQUEEN_3] = {
.species = SPECIES_NIDOQUEEN,
.moves = {MOVE_THUNDERBOLT, MOVE_FLAMETHROWER, MOVE_ICE_BEAM, MOVE_CRUNCH},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [606] = {
+ [FRONTIER_MON_NIDOKING_3] = {
.species = SPECIES_NIDOKING,
.moves = {MOVE_HORN_DRILL, MOVE_FIRE_BLAST, MOVE_BLIZZARD, MOVE_SURF},
.itemTableId = BATTLE_FRONTIER_ITEM_LEPPA_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [607] = {
+ [FRONTIER_MON_MAGMAR_3] = {
.species = SPECIES_MAGMAR,
.moves = {MOVE_MEGA_KICK, MOVE_CROSS_CHOP, MOVE_IRON_TAIL, MOVE_COUNTER},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_IMPISH
},
- [608] = {
+ [FRONTIER_MON_CRADILY_3] = {
.species = SPECIES_CRADILY,
.moves = {MOVE_SUBSTITUTE, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_RECOVER},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
.nature = NATURE_MODEST
},
- [609] = {
+ [FRONTIER_MON_ARMALDO_3] = {
.species = SPECIES_ARMALDO,
.moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_BRICK_BREAK, MOVE_SWORDS_DANCE},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [610] = {
+ [FRONTIER_MON_GOLDUCK_3] = {
.species = SPECIES_GOLDUCK,
.moves = {MOVE_HYDRO_PUMP, MOVE_CROSS_CHOP, MOVE_BLIZZARD, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [611] = {
+ [FRONTIER_MON_RAPIDASH_3] = {
.species = SPECIES_RAPIDASH,
.moves = {MOVE_OVERHEAT, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_HYPNOSIS},
.itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [612] = {
+ [FRONTIER_MON_MUK_3] = {
.species = SPECIES_MUK,
.moves = {MOVE_SLUDGE_BOMB, MOVE_THUNDERBOLT, MOVE_FLAMETHROWER, MOVE_ICE_PUNCH},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
.nature = NATURE_QUIET
},
- [613] = {
+ [FRONTIER_MON_GENGAR_3] = {
.species = SPECIES_GENGAR,
.moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_GIGA_DRAIN, MOVE_SKILL_SWAP},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [614] = {
+ [FRONTIER_MON_AMPHAROS_3] = {
.species = SPECIES_AMPHAROS,
.moves = {MOVE_THUNDERBOLT, MOVE_MEGA_KICK, MOVE_IRON_TAIL, MOVE_BRICK_BREAK},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [615] = {
+ [FRONTIER_MON_SCIZOR_3] = {
.species = SPECIES_SCIZOR,
.moves = {MOVE_REVERSAL, MOVE_ENDURE, MOVE_AGILITY, MOVE_SLASH},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_CAREFUL
},
- [616] = {
+ [FRONTIER_MON_HERACROSS_3] = {
.species = SPECIES_HERACROSS,
.moves = {MOVE_MEGAHORN, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_BRICK_BREAK},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [617] = {
+ [FRONTIER_MON_URSARING_3] = {
.species = SPECIES_URSARING,
.moves = {MOVE_FIRE_PUNCH, MOVE_THUNDER_PUNCH, MOVE_ICE_PUNCH, MOVE_CRUNCH},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [618] = {
+ [FRONTIER_MON_HOUNDOOM_3] = {
.species = SPECIES_HOUNDOOM,
.moves = {MOVE_OVERHEAT, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_DOUBLE_EDGE},
.itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIRKY
},
- [619] = {
+ [FRONTIER_MON_DONPHAN_3] = {
.species = SPECIES_DONPHAN,
.moves = {MOVE_FISSURE, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_SECRET_POWER},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [620] = {
+ [FRONTIER_MON_CLAYDOL_3] = {
.species = SPECIES_CLAYDOL,
.moves = {MOVE_PSYCHIC, MOVE_ICE_BEAM, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [621] = {
+ [FRONTIER_MON_WAILORD_3] = {
.species = SPECIES_WAILORD,
.moves = {MOVE_HYDRO_PUMP, MOVE_FISSURE, MOVE_DOUBLE_TEAM, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [622] = {
+ [FRONTIER_MON_NINETALES_3] = {
.species = SPECIES_NINETALES,
.moves = {MOVE_FIRE_BLAST, MOVE_IRON_TAIL, MOVE_CONFUSE_RAY, MOVE_ATTRACT},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_QUIRKY
},
- [623] = {
+ [FRONTIER_MON_MACHAMP_3] = {
.species = SPECIES_MACHAMP,
.moves = {MOVE_CROSS_CHOP, MOVE_FIRE_BLAST, MOVE_THUNDER_PUNCH, MOVE_ICE_PUNCH},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [624] = {
+ [FRONTIER_MON_SHUCKLE_3] = {
.species = SPECIES_SHUCKLE,
.moves = {MOVE_SUBSTITUTE, MOVE_ATTRACT, MOVE_TOXIC, MOVE_DOUBLE_TEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_CAREFUL
},
- [625] = {
+ [FRONTIER_MON_STEELIX_3] = {
.species = SPECIES_STEELIX,
.moves = {MOVE_EARTHQUAKE, MOVE_BODY_SLAM, MOVE_ROCK_SLIDE, MOVE_EXPLOSION},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [626] = {
+ [FRONTIER_MON_TENTACRUEL_3] = {
.species = SPECIES_TENTACRUEL,
.moves = {MOVE_SURF, MOVE_GIGA_DRAIN, MOVE_ICE_BEAM, MOVE_MIRROR_COAT},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
.nature = NATURE_MODEST
},
- [627] = {
+ [FRONTIER_MON_AERODACTYL_3] = {
.species = SPECIES_AERODACTYL,
.moves = {MOVE_DOUBLE_EDGE, MOVE_ROCK_SLIDE, MOVE_FIRE_BLAST, MOVE_DRAGON_CLAW},
.itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [628] = {
+ [FRONTIER_MON_PORYGON2_3] = {
.species = SPECIES_PORYGON2,
.moves = {MOVE_PSYCHIC, MOVE_TRI_ATTACK, MOVE_THUNDER_WAVE, MOVE_RECOVER},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [629] = {
+ [FRONTIER_MON_GARDEVOIR_3] = {
.species = SPECIES_GARDEVOIR,
.moves = {MOVE_PSYCHIC, MOVE_ICE_PUNCH, MOVE_FIRE_PUNCH, MOVE_MAGICAL_LEAF},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [630] = {
+ [FRONTIER_MON_EXEGGUTOR_3] = {
.species = SPECIES_EXEGGUTOR,
.moves = {MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_TOXIC, MOVE_EXPLOSION},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [631] = {
+ [FRONTIER_MON_STARMIE_3] = {
.species = SPECIES_STARMIE,
.moves = {MOVE_SURF, MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ICE_BEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [632] = {
+ [FRONTIER_MON_FLYGON_3] = {
.species = SPECIES_FLYGON,
.moves = {MOVE_EARTHQUAKE, MOVE_DRAGON_CLAW, MOVE_FLAMETHROWER, MOVE_GIGA_DRAIN},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [633] = {
+ [FRONTIER_MON_VENUSAUR_3] = {
.species = SPECIES_VENUSAUR,
.moves = {MOVE_DOUBLE_EDGE, MOVE_SLUDGE_BOMB, MOVE_EARTHQUAKE, MOVE_SLEEP_POWDER},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [634] = {
+ [FRONTIER_MON_VAPOREON_3] = {
.species = SPECIES_VAPOREON,
.moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_ACID_ARMOR, MOVE_BATON_PASS},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_CALM
},
- [635] = {
+ [FRONTIER_MON_JOLTEON_3] = {
.species = SPECIES_JOLTEON,
.moves = {MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_AGILITY, MOVE_BATON_PASS},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_BOLD
},
- [636] = {
+ [FRONTIER_MON_FLAREON_3] = {
.species = SPECIES_FLAREON,
.moves = {MOVE_SHADOW_BALL, MOVE_FLAIL, MOVE_ENDURE, MOVE_OVERHEAT},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_JOLLY
},
- [637] = {
+ [FRONTIER_MON_MEGANIUM_3] = {
.species = SPECIES_MEGANIUM,
.moves = {MOVE_EARTHQUAKE, MOVE_FLAIL, MOVE_ENDURE, MOVE_GIGA_DRAIN},
.itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_JOLLY
},
- [638] = {
+ [FRONTIER_MON_ESPEON_3] = {
.species = SPECIES_ESPEON,
.moves = {MOVE_PSYCHIC, MOVE_BITE, MOVE_WISH, MOVE_REFLECT},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [639] = {
+ [FRONTIER_MON_UMBREON_3] = {
.species = SPECIES_UMBREON,
.moves = {MOVE_SWAGGER, MOVE_PSYCH_UP, MOVE_ATTRACT, MOVE_SHADOW_BALL},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_BOLD
},
- [640] = {
+ [FRONTIER_MON_BLASTOISE_3] = {
.species = SPECIES_BLASTOISE,
.moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_COUNTER},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [641] = {
+ [FRONTIER_MON_FERALIGATR_3] = {
.species = SPECIES_FERALIGATR,
.moves = {MOVE_HYDRO_PUMP, MOVE_CRUNCH, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [642] = {
+ [FRONTIER_MON_AGGRON_3] = {
.species = SPECIES_AGGRON,
.moves = {MOVE_SURF, MOVE_THUNDER, MOVE_FIRE_BLAST, MOVE_BLIZZARD},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [643] = {
+ [FRONTIER_MON_BLAZIKEN_3] = {
.species = SPECIES_BLAZIKEN,
.moves = {MOVE_OVERHEAT, MOVE_EARTHQUAKE, MOVE_ENDURE, MOVE_REVERSAL},
.itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [644] = {
+ [FRONTIER_MON_WALREIN_3] = {
.species = SPECIES_WALREIN,
.moves = {MOVE_SHEER_COLD, MOVE_FISSURE, MOVE_SURF, MOVE_ATTRACT},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [645] = {
+ [FRONTIER_MON_SCEPTILE_3] = {
.species = SPECIES_SCEPTILE,
.moves = {MOVE_LEAF_BLADE, MOVE_EARTHQUAKE, MOVE_CRUSH_CLAW, MOVE_AERIAL_ACE},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [646] = {
+ [FRONTIER_MON_CHARIZARD_3] = {
.species = SPECIES_CHARIZARD,
.moves = {MOVE_FLAMETHROWER, MOVE_DRAGON_CLAW, MOVE_BITE, MOVE_BRICK_BREAK},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [647] = {
+ [FRONTIER_MON_TYPHLOSION_3] = {
.species = SPECIES_TYPHLOSION,
.moves = {MOVE_EARTHQUAKE, MOVE_OVERHEAT, MOVE_ENDURE, MOVE_REVERSAL},
.itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [648] = {
+ [FRONTIER_MON_LAPRAS_3] = {
.species = SPECIES_LAPRAS,
.moves = {MOVE_DOUBLE_EDGE, MOVE_PSYCHIC, MOVE_CONFUSE_RAY, MOVE_DRAGON_DANCE},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [649] = {
+ [FRONTIER_MON_CROBAT_3] = {
.species = SPECIES_CROBAT,
.moves = {MOVE_AIR_CUTTER, MOVE_DOUBLE_EDGE, MOVE_SHADOW_BALL, MOVE_SCREECH},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [650] = {
+ [FRONTIER_MON_SWAMPERT_3] = {
.species = SPECIES_SWAMPERT,
.moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_COUNTER},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_BRAVE
},
- [651] = {
+ [FRONTIER_MON_GYARADOS_3] = {
.species = SPECIES_GYARADOS,
.moves = {MOVE_SURF, MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_EARTHQUAKE},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIRKY
},
- [652] = {
+ [FRONTIER_MON_SNORLAX_3] = {
.species = SPECIES_SNORLAX,
.moves = {MOVE_MEGA_KICK, MOVE_SHADOW_BALL, MOVE_SWAGGER, MOVE_PSYCH_UP},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_ADAMANT
},
- [653] = {
+ [FRONTIER_MON_KINGDRA_3] = {
.species = SPECIES_KINGDRA,
.moves = {MOVE_FLAIL, MOVE_HYDRO_PUMP, MOVE_DRAGON_DANCE, MOVE_ENDURE},
.itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [654] = {
+ [FRONTIER_MON_BLISSEY_3] = {
.species = SPECIES_BLISSEY,
.moves = {MOVE_FIRE_BLAST, MOVE_BLIZZARD, MOVE_CALM_MIND, MOVE_SOFT_BOILED},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_BOLD
},
- [655] = {
+ [FRONTIER_MON_MILOTIC_3] = {
.species = SPECIES_MILOTIC,
.moves = {MOVE_SURF, MOVE_BLIZZARD, MOVE_ATTRACT, MOVE_RECOVER},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_BOLD
},
- [656] = {
+ [FRONTIER_MON_ARCANINE_3] = {
.species = SPECIES_ARCANINE,
.moves = {MOVE_OVERHEAT, MOVE_EXTREME_SPEED, MOVE_CRUNCH, MOVE_AERIAL_ACE},
.itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [657] = {
+ [FRONTIER_MON_SALAMENCE_3] = {
.species = SPECIES_SALAMENCE,
.moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_CRUNCH, MOVE_ENDURE},
.itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [658] = {
+ [FRONTIER_MON_METAGROSS_3] = {
.species = SPECIES_METAGROSS,
.moves = {MOVE_EARTHQUAKE, MOVE_METEOR_MASH, MOVE_DOUBLE_TEAM, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [659] = {
+ [FRONTIER_MON_SLAKING_3] = {
.species = SPECIES_SLAKING,
.moves = {MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_AERIAL_ACE, MOVE_BRICK_BREAK},
.itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_ADAMANT
},
- [660] = {
+ [FRONTIER_MON_DUGTRIO_4] = {
.species = SPECIES_DUGTRIO,
.moves = {MOVE_EARTHQUAKE, MOVE_DOUBLE_EDGE, MOVE_ROCK_SLIDE, MOVE_FISSURE},
.itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [661] = {
+ [FRONTIER_MON_MEDICHAM_4] = {
.species = SPECIES_MEDICHAM,
.moves = {MOVE_MEGA_KICK, MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_ROCK_SLIDE},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [662] = {
+ [FRONTIER_MON_MISDREAVUS_4] = {
.species = SPECIES_MISDREAVUS,
.moves = {MOVE_DESTINY_BOND, MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_THUNDERBOLT},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_TIMID
},
- [663] = {
+ [FRONTIER_MON_FEAROW_4] = {
.species = SPECIES_FEAROW,
.moves = {MOVE_DRILL_PECK, MOVE_DOUBLE_EDGE, MOVE_STEEL_WING, MOVE_SKY_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [664] = {
+ [FRONTIER_MON_GRANBULL_4] = {
.species = SPECIES_GRANBULL,
.moves = {MOVE_MEGA_KICK, MOVE_EARTHQUAKE, MOVE_CRUNCH, MOVE_SHADOW_BALL},
.itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_BRAVE
},
- [665] = {
+ [FRONTIER_MON_JYNX_4] = {
.species = SPECIES_JYNX,
.moves = {MOVE_PSYCHIC, MOVE_ICE_BEAM, MOVE_LOVELY_KISS, MOVE_FAKE_TEARS},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [666] = {
+ [FRONTIER_MON_DUSCLOPS_4] = {
.species = SPECIES_DUSCLOPS,
.moves = {MOVE_DOUBLE_EDGE, MOVE_SHADOW_BALL, MOVE_CURSE, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [667] = {
+ [FRONTIER_MON_DODRIO_4] = {
.species = SPECIES_DODRIO,
.moves = {MOVE_FLAIL, MOVE_ENDURE, MOVE_DRILL_PECK, MOVE_FACADE},
.itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [668] = {
+ [FRONTIER_MON_MR_MIME_4] = {
.species = SPECIES_MR_MIME,
.moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ICE_PUNCH, MOVE_FIRE_PUNCH},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [669] = {
+ [FRONTIER_MON_LANTURN_4] = {
.species = SPECIES_LANTURN,
.moves = {MOVE_SURF, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_CONFUSE_RAY},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [670] = {
+ [FRONTIER_MON_BRELOOM_4] = {
.species = SPECIES_BRELOOM,
.moves = {MOVE_FOCUS_PUNCH, MOVE_SLUDGE_BOMB, MOVE_SPORE, MOVE_DOUBLE_TEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [671] = {
+ [FRONTIER_MON_FORRETRESS_4] = {
.species = SPECIES_FORRETRESS,
.moves = {MOVE_EXPLOSION, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_DOUBLE_EDGE},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [672] = {
+ [FRONTIER_MON_WHISCASH_4] = {
.species = SPECIES_WHISCASH,
.moves = {MOVE_FISSURE, MOVE_SURF, MOVE_EARTHQUAKE, MOVE_ICE_BEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIET
},
- [673] = {
+ [FRONTIER_MON_XATU_4] = {
.species = SPECIES_XATU,
.moves = {MOVE_PSYCHIC, MOVE_DRILL_PECK, MOVE_SHADOW_BALL, MOVE_CONFUSE_RAY},
.itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [674] = {
+ [FRONTIER_MON_SKARMORY_4] = {
.species = SPECIES_SKARMORY,
.moves = {MOVE_DRILL_PECK, MOVE_STEEL_WING, MOVE_COUNTER, MOVE_ROCK_SLIDE},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [675] = {
+ [FRONTIER_MON_MAROWAK_4] = {
.species = SPECIES_MAROWAK,
.moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_SWORDS_DANCE, MOVE_MEGA_KICK},
.itemTableId = BATTLE_FRONTIER_ITEM_THICK_CLUB,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [676] = {
+ [FRONTIER_MON_QUAGSIRE_4] = {
.species = SPECIES_QUAGSIRE,
.moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_AMNESIA},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_SASSY
},
- [677] = {
+ [FRONTIER_MON_CLEFABLE_4] = {
.species = SPECIES_CLEFABLE,
.moves = {MOVE_MEGA_KICK, MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_SOFT_BOILED},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [678] = {
+ [FRONTIER_MON_HARIYAMA_4] = {
.species = SPECIES_HARIYAMA,
.moves = {MOVE_CROSS_CHOP, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_FAKE_OUT},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [679] = {
+ [FRONTIER_MON_RAICHU_4] = {
.species = SPECIES_RAICHU,
.moves = {MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_PROTECT, MOVE_MEGA_KICK},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [680] = {
+ [FRONTIER_MON_DEWGONG_4] = {
.species = SPECIES_DEWGONG,
.moves = {MOVE_SHEER_COLD, MOVE_ICE_BEAM, MOVE_SURF, MOVE_SIGNAL_BEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [681] = {
+ [FRONTIER_MON_MANECTRIC_4] = {
.species = SPECIES_MANECTRIC,
.moves = {MOVE_THUNDERBOLT, MOVE_CRUNCH, MOVE_THUNDER_WAVE, MOVE_ROAR},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [682] = {
+ [FRONTIER_MON_VILEPLUME_4] = {
.species = SPECIES_VILEPLUME,
.moves = {MOVE_SOLAR_BEAM, MOVE_SLUDGE_BOMB, MOVE_SUNNY_DAY, MOVE_SYNTHESIS},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIET
},
- [683] = {
+ [FRONTIER_MON_VICTREEBEL_4] = {
.species = SPECIES_VICTREEBEL,
.moves = {MOVE_GIGA_DRAIN, MOVE_DOUBLE_EDGE, MOVE_SLUDGE_BOMB, MOVE_SYNTHESIS},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIRKY
},
- [684] = {
+ [FRONTIER_MON_ELECTRODE_4] = {
.species = SPECIES_ELECTRODE,
.moves = {MOVE_EXPLOSION, MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_MIRROR_COAT},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_NAUGHTY
},
- [685] = {
+ [FRONTIER_MON_EXPLOUD_4] = {
.species = SPECIES_EXPLOUD,
.moves = {MOVE_MEGA_KICK, MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_OVERHEAT},
.itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [686] = {
+ [FRONTIER_MON_SHIFTRY_4] = {
.species = SPECIES_SHIFTRY,
.moves = {MOVE_EXPLOSION, MOVE_GIGA_DRAIN, MOVE_MEGA_KICK, MOVE_FAKE_OUT},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [687] = {
+ [FRONTIER_MON_GLALIE_4] = {
.species = SPECIES_GLALIE,
.moves = {MOVE_ICE_BEAM, MOVE_EARTHQUAKE, MOVE_CRUNCH, MOVE_SHADOW_BALL},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [688] = {
+ [FRONTIER_MON_LUDICOLO_4] = {
.species = SPECIES_LUDICOLO,
.moves = {MOVE_LEECH_SEED, MOVE_RAIN_DANCE, MOVE_DOUBLE_TEAM, MOVE_TOXIC},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_BOLD
},
- [689] = {
+ [FRONTIER_MON_HYPNO_4] = {
.species = SPECIES_HYPNO,
.moves = {MOVE_PSYCHIC, MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [690] = {
+ [FRONTIER_MON_GOLEM_4] = {
.species = SPECIES_GOLEM,
.moves = {MOVE_EXPLOSION, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_DOUBLE_EDGE},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [691] = {
+ [FRONTIER_MON_RHYDON_4] = {
.species = SPECIES_RHYDON,
.moves = {MOVE_MEGAHORN, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_HORN_DRILL},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [692] = {
+ [FRONTIER_MON_ALAKAZAM_4] = {
.species = SPECIES_ALAKAZAM,
.moves = {MOVE_PSYCHIC, MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
.nature = NATURE_MODEST
},
- [693] = {
+ [FRONTIER_MON_WEEZING_4] = {
.species = SPECIES_WEEZING,
.moves = {MOVE_EXPLOSION, MOVE_SLUDGE_BOMB, MOVE_FRUSTRATION, MOVE_SHADOW_BALL},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [694] = {
+ [FRONTIER_MON_KANGASKHAN_4] = {
.species = SPECIES_KANGASKHAN,
.moves = {MOVE_MEGA_KICK, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_SHADOW_BALL},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [695] = {
+ [FRONTIER_MON_ELECTABUZZ_4] = {
.species = SPECIES_ELECTABUZZ,
.moves = {MOVE_THUNDERBOLT, MOVE_PSYCHIC, MOVE_MEGA_KICK, MOVE_CROSS_CHOP},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [696] = {
+ [FRONTIER_MON_TAUROS_4] = {
.species = SPECIES_TAUROS,
.moves = {MOVE_DOUBLE_EDGE, MOVE_ROCK_TOMB, MOVE_THUNDERBOLT, MOVE_SURF},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [697] = {
+ [FRONTIER_MON_SLOWBRO_4] = {
.species = SPECIES_SLOWBRO,
.moves = {MOVE_PSYCHIC, MOVE_SURF, MOVE_EARTHQUAKE, MOVE_ICE_BEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK,
.nature = NATURE_SASSY
},
- [698] = {
+ [FRONTIER_MON_SLOWKING_4] = {
.species = SPECIES_SLOWKING,
.moves = {MOVE_PSYCHIC, MOVE_SURF, MOVE_ICE_BEAM, MOVE_FLAMETHROWER},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
.nature = NATURE_MODEST
},
- [699] = {
+ [FRONTIER_MON_MILTANK_4] = {
.species = SPECIES_MILTANK,
.moves = {MOVE_DOUBLE_EDGE, MOVE_CURSE, MOVE_DOUBLE_TEAM, MOVE_MILK_DRINK},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [700] = {
+ [FRONTIER_MON_ALTARIA_4] = {
.species = SPECIES_ALTARIA,
.moves = {MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_FLAMETHROWER, MOVE_ICE_BEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [701] = {
+ [FRONTIER_MON_NIDOQUEEN_4] = {
.species = SPECIES_NIDOQUEEN,
.moves = {MOVE_SUPERPOWER, MOVE_SLUDGE_BOMB, MOVE_EARTHQUAKE, MOVE_SHADOW_BALL},
.itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [702] = {
+ [FRONTIER_MON_NIDOKING_4] = {
.species = SPECIES_NIDOKING,
.moves = {MOVE_MEGAHORN, MOVE_SLUDGE_BOMB, MOVE_EARTHQUAKE, MOVE_THUNDER},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [703] = {
+ [FRONTIER_MON_MAGMAR_4] = {
.species = SPECIES_MAGMAR,
.moves = {MOVE_FLAMETHROWER, MOVE_PSYCHIC, MOVE_CROSS_CHOP, MOVE_CONFUSE_RAY},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [704] = {
+ [FRONTIER_MON_CRADILY_4] = {
.species = SPECIES_CRADILY,
.moves = {MOVE_TOXIC, MOVE_INGRAIN, MOVE_MIRROR_COAT, MOVE_GIGA_DRAIN},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_BOLD
},
- [705] = {
+ [FRONTIER_MON_ARMALDO_4] = {
.species = SPECIES_ARMALDO,
.moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_ROCK_SLIDE},
.itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [706] = {
+ [FRONTIER_MON_GOLDUCK_4] = {
.species = SPECIES_GOLDUCK,
.moves = {MOVE_SURF, MOVE_CROSS_CHOP, MOVE_ICE_BEAM, MOVE_AERIAL_ACE},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [707] = {
+ [FRONTIER_MON_RAPIDASH_4] = {
.species = SPECIES_RAPIDASH,
.moves = {MOVE_OVERHEAT, MOVE_DOUBLE_EDGE, MOVE_IRON_TAIL, MOVE_DOUBLE_KICK},
.itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [708] = {
+ [FRONTIER_MON_MUK_4] = {
.species = SPECIES_MUK,
.moves = {MOVE_SLUDGE_BOMB, MOVE_BRICK_BREAK, MOVE_GIGA_DRAIN, MOVE_EXPLOSION},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_BRAVE
},
- [709] = {
+ [FRONTIER_MON_GENGAR_4] = {
.species = SPECIES_GENGAR,
.moves = {MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_DESTINY_BOND},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [710] = {
+ [FRONTIER_MON_AMPHAROS_4] = {
.species = SPECIES_AMPHAROS,
.moves = {MOVE_THUNDERBOLT, MOVE_FIRE_PUNCH, MOVE_THUNDER_WAVE, MOVE_REFLECT},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
.nature = NATURE_MODEST
},
- [711] = {
+ [FRONTIER_MON_SCIZOR_4] = {
.species = SPECIES_SCIZOR,
.moves = {MOVE_SILVER_WIND, MOVE_SWORDS_DANCE, MOVE_AGILITY, MOVE_BATON_PASS},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_CAREFUL
},
- [712] = {
+ [FRONTIER_MON_HERACROSS_4] = {
.species = SPECIES_HERACROSS,
.moves = {MOVE_MEGAHORN, MOVE_EARTHQUAKE, MOVE_REVERSAL, MOVE_ENDURE},
.itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [713] = {
+ [FRONTIER_MON_URSARING_4] = {
.species = SPECIES_URSARING,
.moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_AERIAL_ACE},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [714] = {
+ [FRONTIER_MON_HOUNDOOM_4] = {
.species = SPECIES_HOUNDOOM,
.moves = {MOVE_OVERHEAT, MOVE_SOLAR_BEAM, MOVE_CRUNCH, MOVE_SUNNY_DAY},
.itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [715] = {
+ [FRONTIER_MON_DONPHAN_4] = {
.species = SPECIES_DONPHAN,
.moves = {MOVE_FISSURE, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_IRON_TAIL},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [716] = {
+ [FRONTIER_MON_CLAYDOL_4] = {
.species = SPECIES_CLAYDOL,
.moves = {MOVE_PSYCHIC, MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_EXPLOSION},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [717] = {
+ [FRONTIER_MON_WAILORD_4] = {
.species = SPECIES_WAILORD,
.moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_EARTHQUAKE, MOVE_FISSURE},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [718] = {
+ [FRONTIER_MON_NINETALES_4] = {
.species = SPECIES_NINETALES,
.moves = {MOVE_OVERHEAT, MOVE_DOUBLE_EDGE, MOVE_CONFUSE_RAY, MOVE_WILL_O_WISP},
.itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_QUIRKY
},
- [719] = {
+ [FRONTIER_MON_MACHAMP_4] = {
.species = SPECIES_MACHAMP,
.moves = {MOVE_CROSS_CHOP, MOVE_EARTHQUAKE, MOVE_FLAMETHROWER, MOVE_ROCK_SLIDE},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [720] = {
+ [FRONTIER_MON_SHUCKLE_4] = {
.species = SPECIES_SHUCKLE,
.moves = {MOVE_TOXIC, MOVE_DOUBLE_TEAM, MOVE_WRAP, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_CAREFUL
},
- [721] = {
+ [FRONTIER_MON_STEELIX_4] = {
.species = SPECIES_STEELIX,
.moves = {MOVE_EARTHQUAKE, MOVE_IRON_TAIL, MOVE_DOUBLE_EDGE, MOVE_EXPLOSION},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [722] = {
+ [FRONTIER_MON_TENTACRUEL_4] = {
.species = SPECIES_TENTACRUEL,
.moves = {MOVE_HYDRO_PUMP, MOVE_SLUDGE_BOMB, MOVE_ICE_BEAM, MOVE_MIRROR_COAT},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIRKY
},
- [723] = {
+ [FRONTIER_MON_AERODACTYL_4] = {
.species = SPECIES_AERODACTYL,
.moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_FIRE_BLAST, MOVE_BITE},
.itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [724] = {
+ [FRONTIER_MON_PORYGON2_4] = {
.species = SPECIES_PORYGON2,
.moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_RECOVER},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [725] = {
+ [FRONTIER_MON_GARDEVOIR_4] = {
.species = SPECIES_GARDEVOIR,
.moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ICE_PUNCH, MOVE_FIRE_PUNCH},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [726] = {
+ [FRONTIER_MON_EXEGGUTOR_4] = {
.species = SPECIES_EXEGGUTOR,
.moves = {MOVE_PSYCHIC, MOVE_GIGA_DRAIN, MOVE_SLUDGE_BOMB, MOVE_EXPLOSION},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [727] = {
+ [FRONTIER_MON_STARMIE_4] = {
.species = SPECIES_STARMIE,
.moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_RECOVER},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [728] = {
+ [FRONTIER_MON_FLYGON_4] = {
.species = SPECIES_FLYGON,
.moves = {MOVE_EARTHQUAKE, MOVE_DRAGON_CLAW, MOVE_DOUBLE_EDGE, MOVE_CRUNCH},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [729] = {
+ [FRONTIER_MON_VENUSAUR_4] = {
.species = SPECIES_VENUSAUR,
.moves = {MOVE_SOLAR_BEAM, MOVE_SLUDGE_BOMB, MOVE_SUNNY_DAY, MOVE_EARTHQUAKE},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [730] = {
+ [FRONTIER_MON_VAPOREON_4] = {
.species = SPECIES_VAPOREON,
.moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_ACID_ARMOR, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_CALM
},
- [731] = {
+ [FRONTIER_MON_JOLTEON_4] = {
.species = SPECIES_JOLTEON,
.moves = {MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_BITE, MOVE_SHADOW_BALL},
.itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_TIMID
},
- [732] = {
+ [FRONTIER_MON_FLAREON_4] = {
.species = SPECIES_FLAREON,
.moves = {MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_DOUBLE_EDGE, MOVE_SHADOW_BALL},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIET
},
- [733] = {
+ [FRONTIER_MON_MEGANIUM_4] = {
.species = SPECIES_MEGANIUM,
.moves = {MOVE_GIGA_DRAIN, MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER, MOVE_BODY_SLAM},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [734] = {
+ [FRONTIER_MON_ESPEON_4] = {
.species = SPECIES_ESPEON,
.moves = {MOVE_PSYCHIC, MOVE_BITE, MOVE_ATTRACT, MOVE_CALM_MIND},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [735] = {
+ [FRONTIER_MON_UMBREON_4] = {
.species = SPECIES_UMBREON,
.moves = {MOVE_CONFUSE_RAY, MOVE_TOXIC, MOVE_FAINT_ATTACK, MOVE_DOUBLE_TEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_BOLD
},
- [736] = {
+ [FRONTIER_MON_BLASTOISE_4] = {
.species = SPECIES_BLASTOISE,
.moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_MIRROR_COAT},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [737] = {
+ [FRONTIER_MON_FERALIGATR_4] = {
.species = SPECIES_FERALIGATR,
.moves = {MOVE_HYDRO_PUMP, MOVE_ICE_BEAM, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [738] = {
+ [FRONTIER_MON_AGGRON_4] = {
.species = SPECIES_AGGRON,
.moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_AERIAL_ACE},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [739] = {
+ [FRONTIER_MON_BLAZIKEN_4] = {
.species = SPECIES_BLAZIKEN,
.moves = {MOVE_OVERHEAT, MOVE_EARTHQUAKE, MOVE_THUNDER_PUNCH, MOVE_ROCK_SLIDE},
.itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [740] = {
+ [FRONTIER_MON_WALREIN_4] = {
.species = SPECIES_WALREIN,
.moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_EARTHQUAKE, MOVE_SHEER_COLD},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIET
},
- [741] = {
+ [FRONTIER_MON_SCEPTILE_4] = {
.species = SPECIES_SCEPTILE,
.moves = {MOVE_LEAF_BLADE, MOVE_DRAGON_CLAW, MOVE_CRUNCH, MOVE_THUNDER_PUNCH},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [742] = {
+ [FRONTIER_MON_CHARIZARD_4] = {
.species = SPECIES_CHARIZARD,
.moves = {MOVE_OVERHEAT, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_ROCK_SLIDE},
.itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [743] = {
+ [FRONTIER_MON_TYPHLOSION_4] = {
.species = SPECIES_TYPHLOSION,
.moves = {MOVE_OVERHEAT, MOVE_THUNDER_PUNCH, MOVE_EARTHQUAKE, MOVE_CRUSH_CLAW},
.itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [744] = {
+ [FRONTIER_MON_LAPRAS_4] = {
.species = SPECIES_LAPRAS,
.moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_THUNDERBOLT, MOVE_PSYCHIC},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [745] = {
+ [FRONTIER_MON_CROBAT_4] = {
.species = SPECIES_CROBAT,
.moves = {MOVE_SLUDGE_BOMB, MOVE_AERIAL_ACE, MOVE_SHADOW_BALL, MOVE_CONFUSE_RAY},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [746] = {
+ [FRONTIER_MON_SWAMPERT_4] = {
.species = SPECIES_SWAMPERT,
.moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_MIRROR_COAT},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIET
},
- [747] = {
+ [FRONTIER_MON_GYARADOS_4] = {
.species = SPECIES_GYARADOS,
.moves = {MOVE_RETURN, MOVE_EARTHQUAKE, MOVE_DRAGON_DANCE, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [748] = {
+ [FRONTIER_MON_SNORLAX_4] = {
.species = SPECIES_SNORLAX,
.moves = {MOVE_DOUBLE_EDGE, MOVE_SHADOW_BALL, MOVE_BRICK_BREAK, MOVE_CURSE},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [749] = {
+ [FRONTIER_MON_KINGDRA_4] = {
.species = SPECIES_KINGDRA,
.moves = {MOVE_DOUBLE_EDGE, MOVE_ICE_BEAM, MOVE_DRAGON_DANCE, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [750] = {
+ [FRONTIER_MON_BLISSEY_4] = {
.species = SPECIES_BLISSEY,
.moves = {MOVE_ICE_BEAM, MOVE_CALM_MIND, MOVE_COUNTER, MOVE_SOFT_BOILED},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_BOLD
},
- [751] = {
+ [FRONTIER_MON_MILOTIC_4] = {
.species = SPECIES_MILOTIC,
.moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_RECOVER, MOVE_MIRROR_COAT},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
.nature = NATURE_MODEST
},
- [752] = {
+ [FRONTIER_MON_ARCANINE_4] = {
.species = SPECIES_ARCANINE,
.moves = {MOVE_OVERHEAT, MOVE_EXTREME_SPEED, MOVE_CRUNCH, MOVE_DOUBLE_EDGE},
.itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_DOCILE
},
- [753] = {
+ [FRONTIER_MON_SALAMENCE_4] = {
.species = SPECIES_SALAMENCE,
.moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_DRAGON_DANCE},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [754] = {
+ [FRONTIER_MON_METAGROSS_4] = {
.species = SPECIES_METAGROSS,
.moves = {MOVE_METEOR_MASH, MOVE_PSYCHIC, MOVE_EARTHQUAKE, MOVE_SHADOW_BALL},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [755] = {
+ [FRONTIER_MON_SLAKING_4] = {
.species = SPECIES_SLAKING,
.moves = {MOVE_THUNDERBOLT, MOVE_FLAMETHROWER, MOVE_ICE_BEAM, MOVE_YAWN},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK,
.nature = NATURE_MODEST
},
- [756] = {
+ [FRONTIER_MON_ARTICUNO_1] = {
.species = SPECIES_ARTICUNO,
.moves = {MOVE_ICE_BEAM, MOVE_WATER_PULSE, MOVE_ICY_WIND, MOVE_ROAR},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [757] = {
+ [FRONTIER_MON_ZAPDOS_1] = {
.species = SPECIES_ZAPDOS,
.moves = {MOVE_THUNDERBOLT, MOVE_DRILL_PECK, MOVE_THUNDER_WAVE, MOVE_ROAR},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_DOCILE
},
- [758] = {
+ [FRONTIER_MON_MOLTRES_1] = {
.species = SPECIES_MOLTRES,
.moves = {MOVE_FLAMETHROWER, MOVE_AERIAL_ACE, MOVE_MUD_SLAP, MOVE_ROAR},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [759] = {
+ [FRONTIER_MON_RAIKOU_1] = {
.species = SPECIES_RAIKOU,
.moves = {MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_CALM_MIND, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [760] = {
+ [FRONTIER_MON_ENTEI_1] = {
.species = SPECIES_ENTEI,
.moves = {MOVE_FLAMETHROWER, MOVE_DOUBLE_TEAM, MOVE_CALM_MIND, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [761] = {
+ [FRONTIER_MON_SUICUNE_1] = {
.species = SPECIES_SUICUNE,
.moves = {MOVE_SURF, MOVE_DOUBLE_TEAM, MOVE_CALM_MIND, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [762] = {
+ [FRONTIER_MON_REGIROCK_1] = {
.species = SPECIES_REGIROCK,
.moves = {MOVE_SUPERPOWER, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_EXPLOSION},
.itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [763] = {
+ [FRONTIER_MON_REGICE_1] = {
.species = SPECIES_REGICE,
.moves = {MOVE_ICE_BEAM, MOVE_THUNDERBOLT, MOVE_AMNESIA, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [764] = {
+ [FRONTIER_MON_REGISTEEL_1] = {
.species = SPECIES_REGISTEEL,
.moves = {MOVE_METAL_CLAW, MOVE_CURSE, MOVE_AMNESIA, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [765] = {
+ [FRONTIER_MON_LATIAS_1] = {
.species = SPECIES_LATIAS,
.moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_DRAGON_CLAW},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [766] = {
+ [FRONTIER_MON_LATIOS_1] = {
.species = SPECIES_LATIOS,
.moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_DRAGON_CLAW},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [767] = {
+ [FRONTIER_MON_ARTICUNO_2] = {
.species = SPECIES_ARTICUNO,
.moves = {MOVE_SUBSTITUTE, MOVE_TOXIC, MOVE_BLIZZARD, MOVE_DOUBLE_TEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_IMPISH
},
- [768] = {
+ [FRONTIER_MON_ZAPDOS_2] = {
.species = SPECIES_ZAPDOS,
.moves = {MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_DRILL_PECK, MOVE_DOUBLE_TEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [769] = {
+ [FRONTIER_MON_MOLTRES_2] = {
.species = SPECIES_MOLTRES,
.moves = {MOVE_OVERHEAT, MOVE_AERIAL_ACE, MOVE_DOUBLE_TEAM, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [770] = {
+ [FRONTIER_MON_RAIKOU_2] = {
.species = SPECIES_RAIKOU,
.moves = {MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_DOUBLE_TEAM, MOVE_REFLECT},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [771] = {
+ [FRONTIER_MON_ENTEI_2] = {
.species = SPECIES_ENTEI,
.moves = {MOVE_FIRE_BLAST, MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_REFLECT},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [772] = {
+ [FRONTIER_MON_SUICUNE_2] = {
.species = SPECIES_SUICUNE,
.moves = {MOVE_TOXIC, MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_CALM
},
- [773] = {
+ [FRONTIER_MON_REGIROCK_2] = {
.species = SPECIES_REGIROCK,
.moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_COUNTER, MOVE_EXPLOSION},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [774] = {
+ [FRONTIER_MON_REGICE_2] = {
.species = SPECIES_REGICE,
.moves = {MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_BLIZZARD, MOVE_BRICK_BREAK},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIET
},
- [775] = {
+ [FRONTIER_MON_REGISTEEL_2] = {
.species = SPECIES_REGISTEEL,
.moves = {MOVE_THUNDERBOLT, MOVE_ICE_PUNCH, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIET
},
- [776] = {
+ [FRONTIER_MON_LATIAS_2] = {
.species = SPECIES_LATIAS,
.moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_EARTHQUAKE},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [777] = {
+ [FRONTIER_MON_LATIOS_2] = {
.species = SPECIES_LATIOS,
.moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_EARTHQUAKE},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [778] = {
+ [FRONTIER_MON_ARTICUNO_3] = {
.species = SPECIES_ARTICUNO,
.moves = {MOVE_ICE_BEAM, MOVE_FACADE, MOVE_AERIAL_ACE, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [779] = {
+ [FRONTIER_MON_ZAPDOS_3] = {
.species = SPECIES_ZAPDOS,
.moves = {MOVE_THUNDERBOLT, MOVE_DRILL_PECK, MOVE_THUNDER_WAVE, MOVE_SUBSTITUTE},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [780] = {
+ [FRONTIER_MON_MOLTRES_3] = {
.species = SPECIES_MOLTRES,
.moves = {MOVE_FIRE_BLAST, MOVE_SUNNY_DAY, MOVE_DOUBLE_TEAM, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [781] = {
+ [FRONTIER_MON_RAIKOU_3] = {
.species = SPECIES_RAIKOU,
.moves = {MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_QUICK_ATTACK, MOVE_ROAR},
.itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [782] = {
+ [FRONTIER_MON_ENTEI_3] = {
.species = SPECIES_ENTEI,
.moves = {MOVE_FLAMETHROWER, MOVE_DOUBLE_EDGE, MOVE_SWAGGER, MOVE_PSYCH_UP},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [783] = {
+ [FRONTIER_MON_SUICUNE_3] = {
.species = SPECIES_SUICUNE,
.moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_RAIN_DANCE, MOVE_ROAR},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [784] = {
+ [FRONTIER_MON_REGIROCK_3] = {
.species = SPECIES_REGIROCK,
.moves = {MOVE_ROCK_SLIDE, MOVE_EARTHQUAKE, MOVE_CURSE, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [785] = {
+ [FRONTIER_MON_REGICE_3] = {
.species = SPECIES_REGICE,
.moves = {MOVE_ICE_BEAM, MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_EXPLOSION},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIET
},
- [786] = {
+ [FRONTIER_MON_REGISTEEL_3] = {
.species = SPECIES_REGISTEEL,
.moves = {MOVE_ANCIENT_POWER, MOVE_AMNESIA, MOVE_COUNTER, MOVE_EXPLOSION},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [787] = {
+ [FRONTIER_MON_LATIAS_3] = {
.species = SPECIES_LATIAS,
.moves = {MOVE_DRAGON_CLAW, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_EARTHQUAKE},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [788] = {
+ [FRONTIER_MON_LATIOS_3] = {
.species = SPECIES_LATIOS,
.moves = {MOVE_DRAGON_CLAW, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_EARTHQUAKE},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [789] = {
+ [FRONTIER_MON_ARTICUNO_4] = {
.species = SPECIES_ARTICUNO,
.moves = {MOVE_BLIZZARD, MOVE_DOUBLE_EDGE, MOVE_REST, MOVE_REFLECT},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [790] = {
+ [FRONTIER_MON_ZAPDOS_4] = {
.species = SPECIES_ZAPDOS,
.moves = {MOVE_THUNDERBOLT, MOVE_DRILL_PECK, MOVE_THUNDER_WAVE, MOVE_LIGHT_SCREEN},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [791] = {
+ [FRONTIER_MON_MOLTRES_4] = {
.species = SPECIES_MOLTRES,
.moves = {MOVE_OVERHEAT, MOVE_DOUBLE_EDGE, MOVE_STEEL_WING, MOVE_SAFEGUARD},
.itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIET
},
- [792] = {
+ [FRONTIER_MON_RAIKOU_4] = {
.species = SPECIES_RAIKOU,
.moves = {MOVE_THUNDERBOLT, MOVE_BITE, MOVE_THUNDER_WAVE, MOVE_REFLECT},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [793] = {
+ [FRONTIER_MON_ENTEI_4] = {
.species = SPECIES_ENTEI,
.moves = {MOVE_FLAMETHROWER, MOVE_BITE, MOVE_DOUBLE_TEAM, MOVE_REFLECT},
.itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [794] = {
+ [FRONTIER_MON_SUICUNE_4] = {
.species = SPECIES_SUICUNE,
.moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_BITE, MOVE_REFLECT},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [795] = {
+ [FRONTIER_MON_REGIROCK_4] = {
.species = SPECIES_REGIROCK,
.moves = {MOVE_ROCK_SLIDE, MOVE_BRICK_BREAK, MOVE_DOUBLE_TEAM, MOVE_THUNDER_WAVE},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_CAREFUL
},
- [796] = {
+ [FRONTIER_MON_REGICE_4] = {
.species = SPECIES_REGICE,
.moves = {MOVE_ICE_BEAM, MOVE_HAIL, MOVE_DOUBLE_TEAM, MOVE_THUNDER_WAVE},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_BOLD
},
- [797] = {
+ [FRONTIER_MON_REGISTEEL_4] = {
.species = SPECIES_REGISTEEL,
.moves = {MOVE_ANCIENT_POWER, MOVE_EARTHQUAKE, MOVE_DOUBLE_TEAM, MOVE_THUNDER_WAVE},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_IMPISH
},
- [798] = {
+ [FRONTIER_MON_LATIAS_4] = {
.species = SPECIES_LATIAS,
.moves = {MOVE_MIST_BALL, MOVE_SHADOW_BALL, MOVE_CHARM, MOVE_REFLECT},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [799] = {
+ [FRONTIER_MON_LATIOS_4] = {
.species = SPECIES_LATIOS,
.moves = {MOVE_LUSTER_PURGE, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_DRAGON_CLAW},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [800] = {
+ [FRONTIER_MON_GENGAR_5] = {
.species = SPECIES_GENGAR,
.moves = {MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_THUNDERBOLT, MOVE_FIRE_PUNCH},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [801] = {
+ [FRONTIER_MON_GENGAR_6] = {
.species = SPECIES_GENGAR,
.moves = {MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_THUNDERBOLT, MOVE_ICE_PUNCH},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [802] = {
+ [FRONTIER_MON_GENGAR_7] = {
.species = SPECIES_GENGAR,
.moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_FIRE_PUNCH, MOVE_DESTINY_BOND},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [803] = {
+ [FRONTIER_MON_GENGAR_8] = {
.species = SPECIES_GENGAR,
.moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ICE_PUNCH, MOVE_DESTINY_BOND},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [804] = {
+ [FRONTIER_MON_URSARING_5] = {
.species = SPECIES_URSARING,
.moves = {MOVE_MEGA_KICK, MOVE_AERIAL_ACE, MOVE_ROCK_SLIDE, MOVE_BRICK_BREAK},
.itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [805] = {
+ [FRONTIER_MON_URSARING_6] = {
.species = SPECIES_URSARING,
.moves = {MOVE_HYPER_BEAM, MOVE_YAWN, MOVE_SWORDS_DANCE, MOVE_DOUBLE_TEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [806] = {
+ [FRONTIER_MON_URSARING_7] = {
.species = SPECIES_URSARING,
.moves = {MOVE_FACADE, MOVE_EARTHQUAKE, MOVE_CRUNCH, MOVE_BULK_UP},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [807] = {
+ [FRONTIER_MON_URSARING_8] = {
.species = SPECIES_URSARING,
.moves = {MOVE_FACADE, MOVE_EARTHQUAKE, MOVE_CRUNCH, MOVE_BRICK_BREAK},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [808] = {
+ [FRONTIER_MON_MACHAMP_5] = {
.species = SPECIES_MACHAMP,
.moves = {MOVE_CROSS_CHOP, MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [809] = {
+ [FRONTIER_MON_MACHAMP_6] = {
.species = SPECIES_MACHAMP,
.moves = {MOVE_CROSS_CHOP, MOVE_EARTHQUAKE, MOVE_COUNTER, MOVE_ROCK_TOMB},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [810] = {
+ [FRONTIER_MON_MACHAMP_7] = {
.species = SPECIES_MACHAMP,
.moves = {MOVE_FOCUS_PUNCH, MOVE_SUBSTITUTE, MOVE_ATTRACT, MOVE_DOUBLE_TEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [811] = {
+ [FRONTIER_MON_MACHAMP_8] = {
.species = SPECIES_MACHAMP,
.moves = {MOVE_REVENGE, MOVE_ROCK_SLIDE, MOVE_FACADE, MOVE_COUNTER},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [812] = {
+ [FRONTIER_MON_GARDEVOIR_5] = {
.species = SPECIES_GARDEVOIR,
.moves = {MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_ENDURE, MOVE_DESTINY_BOND},
.itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [813] = {
+ [FRONTIER_MON_GARDEVOIR_6] = {
.species = SPECIES_GARDEVOIR,
.moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_WILL_O_WISP, MOVE_DESTINY_BOND},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_TIMID
},
- [814] = {
+ [FRONTIER_MON_GARDEVOIR_7] = {
.species = SPECIES_GARDEVOIR,
.moves = {MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_WILL_O_WISP, MOVE_DESTINY_BOND},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_BOLD
},
- [815] = {
+ [FRONTIER_MON_GARDEVOIR_8] = {
.species = SPECIES_GARDEVOIR,
.moves = {MOVE_PSYCHIC, MOVE_MAGICAL_LEAF, MOVE_ATTRACT, MOVE_DOUBLE_TEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [816] = {
+ [FRONTIER_MON_STARMIE_5] = {
.species = SPECIES_STARMIE,
.moves = {MOVE_SURF, MOVE_PSYCHIC, MOVE_RECOVER, MOVE_LIGHT_SCREEN},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [817] = {
+ [FRONTIER_MON_STARMIE_6] = {
.species = SPECIES_STARMIE,
.moves = {MOVE_SURF, MOVE_CONFUSE_RAY, MOVE_THUNDER_WAVE, MOVE_RECOVER},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_CALM
},
- [818] = {
+ [FRONTIER_MON_STARMIE_7] = {
.species = SPECIES_STARMIE,
.moves = {MOVE_PSYCHIC, MOVE_ICE_BEAM, MOVE_COSMIC_POWER, MOVE_RECOVER},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [819] = {
+ [FRONTIER_MON_STARMIE_8] = {
.species = SPECIES_STARMIE,
.moves = {MOVE_SURF, MOVE_THUNDERBOLT, MOVE_COSMIC_POWER, MOVE_RECOVER},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [820] = {
+ [FRONTIER_MON_LAPRAS_5] = {
.species = SPECIES_LAPRAS,
.moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_IRON_TAIL, MOVE_DOUBLE_EDGE},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [821] = {
+ [FRONTIER_MON_LAPRAS_6] = {
.species = SPECIES_LAPRAS,
.moves = {MOVE_HYDRO_PUMP, MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_BLIZZARD},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [822] = {
+ [FRONTIER_MON_LAPRAS_7] = {
.species = SPECIES_LAPRAS,
.moves = {MOVE_SHEER_COLD, MOVE_HORN_DRILL, MOVE_REST, MOVE_SLEEP_TALK},
.itemTableId = BATTLE_FRONTIER_ITEM_LEPPA_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_CALM
},
- [823] = {
+ [FRONTIER_MON_LAPRAS_8] = {
.species = SPECIES_LAPRAS,
.moves = {MOVE_SHEER_COLD, MOVE_HORN_DRILL, MOVE_SING, MOVE_ATTRACT},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_CALM
},
- [824] = {
+ [FRONTIER_MON_SNORLAX_5] = {
.species = SPECIES_SNORLAX,
.moves = {MOVE_MEGA_KICK, MOVE_SHADOW_BALL, MOVE_BRICK_BREAK, MOVE_COUNTER},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [825] = {
+ [FRONTIER_MON_SNORLAX_6] = {
.species = SPECIES_SNORLAX,
.moves = {MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_BRICK_BREAK, MOVE_COUNTER},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [826] = {
+ [FRONTIER_MON_SNORLAX_7] = {
.species = SPECIES_SNORLAX,
.moves = {MOVE_HYPER_BEAM, MOVE_SHADOW_BALL, MOVE_EARTHQUAKE, MOVE_CURSE},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [827] = {
+ [FRONTIER_MON_SNORLAX_8] = {
.species = SPECIES_SNORLAX,
.moves = {MOVE_RETURN, MOVE_SHADOW_BALL, MOVE_BELLY_DRUM, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [828] = {
+ [FRONTIER_MON_SALAMENCE_5] = {
.species = SPECIES_SALAMENCE,
.moves = {MOVE_FACADE, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_DRAGON_DANCE},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [829] = {
+ [FRONTIER_MON_SALAMENCE_6] = {
.species = SPECIES_SALAMENCE,
.moves = {MOVE_HEADBUTT, MOVE_AERIAL_ACE, MOVE_CRUNCH, MOVE_DRAGON_DANCE},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [830] = {
+ [FRONTIER_MON_SALAMENCE_7] = {
.species = SPECIES_SALAMENCE,
.moves = {MOVE_FLAMETHROWER, MOVE_DRAGON_CLAW, MOVE_CRUNCH, MOVE_BRICK_BREAK},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [831] = {
+ [FRONTIER_MON_SALAMENCE_8] = {
.species = SPECIES_SALAMENCE,
.moves = {MOVE_FLAMETHROWER, MOVE_DRAGON_CLAW, MOVE_CRUNCH, MOVE_ATTRACT},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [832] = {
+ [FRONTIER_MON_METAGROSS_5] = {
.species = SPECIES_METAGROSS,
.moves = {MOVE_EXPLOSION, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_BRICK_BREAK},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_JOLLY
},
- [833] = {
+ [FRONTIER_MON_METAGROSS_6] = {
.species = SPECIES_METAGROSS,
.moves = {MOVE_METEOR_MASH, MOVE_PSYCHIC, MOVE_ICE_PUNCH, MOVE_THUNDER_PUNCH},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [834] = {
+ [FRONTIER_MON_METAGROSS_7] = {
.species = SPECIES_METAGROSS,
.moves = {MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_ICE_PUNCH, MOVE_THUNDER_PUNCH},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [835] = {
+ [FRONTIER_MON_METAGROSS_8] = {
.species = SPECIES_METAGROSS,
.moves = {MOVE_METEOR_MASH, MOVE_EARTHQUAKE, MOVE_BRICK_BREAK, MOVE_EXPLOSION},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [836] = {
+ [FRONTIER_MON_REGIROCK_5] = {
.species = SPECIES_REGIROCK,
.moves = {MOVE_HYPER_BEAM, MOVE_FOCUS_PUNCH, MOVE_ROCK_SLIDE, MOVE_DOUBLE_TEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [837] = {
+ [FRONTIER_MON_REGIROCK_6] = {
.species = SPECIES_REGIROCK,
.moves = {MOVE_SWAGGER, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_EXPLOSION},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [838] = {
+ [FRONTIER_MON_REGICE_5] = {
.species = SPECIES_REGICE,
.moves = {MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_CURSE, MOVE_COUNTER},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_BRAVE
},
- [839] = {
+ [FRONTIER_MON_REGICE_6] = {
.species = SPECIES_REGICE,
.moves = {MOVE_ICE_BEAM, MOVE_THUNDERBOLT, MOVE_SLEEP_TALK, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [840] = {
+ [FRONTIER_MON_REGISTEEL_5] = {
.species = SPECIES_REGISTEEL,
.moves = {MOVE_FOCUS_PUNCH, MOVE_SUBSTITUTE, MOVE_TOXIC, MOVE_DOUBLE_TEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [841] = {
+ [FRONTIER_MON_REGISTEEL_6] = {
.species = SPECIES_REGISTEEL,
.moves = {MOVE_SUPERPOWER, MOVE_AERIAL_ACE, MOVE_SWAGGER, MOVE_PSYCH_UP},
.itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [842] = {
+ [FRONTIER_MON_LATIAS_5] = {
.species = SPECIES_LATIAS,
.moves = {MOVE_DRAGON_CLAW, MOVE_THUNDER_WAVE, MOVE_CALM_MIND, MOVE_RECOVER},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [843] = {
+ [FRONTIER_MON_LATIAS_6] = {
.species = SPECIES_LATIAS,
.moves = {MOVE_MIST_BALL, MOVE_DRAGON_CLAW, MOVE_ATTRACT, MOVE_THUNDER_WAVE},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [844] = {
+ [FRONTIER_MON_LATIAS_7] = {
.species = SPECIES_LATIAS,
.moves = {MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_SWAGGER, MOVE_PSYCH_UP},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [845] = {
+ [FRONTIER_MON_LATIAS_8] = {
.species = SPECIES_LATIAS,
.moves = {MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE},
.itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [846] = {
+ [FRONTIER_MON_LATIOS_5] = {
.species = SPECIES_LATIOS,
.moves = {MOVE_DRAGON_CLAW, MOVE_THUNDER_WAVE, MOVE_CALM_MIND, MOVE_RECOVER},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [847] = {
+ [FRONTIER_MON_LATIOS_6] = {
.species = SPECIES_LATIOS,
.moves = {MOVE_LUSTER_PURGE, MOVE_SHADOW_BALL, MOVE_DRAGON_CLAW, MOVE_THUNDER_WAVE},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [848] = {
+ [FRONTIER_MON_LATIOS_7] = {
.species = SPECIES_LATIOS,
.moves = {MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_DRAGON_DANCE, MOVE_RECOVER},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [849] = {
+ [FRONTIER_MON_LATIOS_8] = {
.species = SPECIES_LATIOS,
.moves = {MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE},
.itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [850] = {
+ [FRONTIER_MON_DRAGONITE_1] = {
.species = SPECIES_DRAGONITE,
.moves = {MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_BRICK_BREAK, MOVE_DRAGON_DANCE},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [851] = {
+ [FRONTIER_MON_DRAGONITE_2] = {
.species = SPECIES_DRAGONITE,
.moves = {MOVE_EARTHQUAKE, MOVE_DOUBLE_EDGE, MOVE_AERIAL_ACE, MOVE_DRAGON_DANCE},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [852] = {
+ [FRONTIER_MON_DRAGONITE_3] = {
.species = SPECIES_DRAGONITE,
.moves = {MOVE_HYPER_BEAM, MOVE_ATTRACT, MOVE_DOUBLE_TEAM, MOVE_THUNDER_WAVE},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [853] = {
+ [FRONTIER_MON_DRAGONITE_4] = {
.species = SPECIES_DRAGONITE,
.moves = {MOVE_HYPER_BEAM, MOVE_THUNDER_WAVE, MOVE_DRAGON_DANCE, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [854] = {
+ [FRONTIER_MON_DRAGONITE_5] = {
.species = SPECIES_DRAGONITE,
.moves = {MOVE_OUTRAGE, MOVE_DOUBLE_EDGE, MOVE_THUNDER_WAVE, MOVE_ROAR},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [855] = {
+ [FRONTIER_MON_DRAGONITE_6] = {
.species = SPECIES_DRAGONITE,
.moves = {MOVE_DRAGON_CLAW, MOVE_THUNDERBOLT, MOVE_SURF, MOVE_FLAMETHROWER},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [856] = {
+ [FRONTIER_MON_DRAGONITE_7] = {
.species = SPECIES_DRAGONITE,
.moves = {MOVE_DRAGON_CLAW, MOVE_THUNDERBOLT, MOVE_SURF, MOVE_ICE_BEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [857] = {
+ [FRONTIER_MON_DRAGONITE_8] = {
.species = SPECIES_DRAGONITE,
.moves = {MOVE_DRAGON_CLAW, MOVE_FLAMETHROWER, MOVE_ICE_BEAM, MOVE_BRICK_BREAK},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [858] = {
+ [FRONTIER_MON_DRAGONITE_9] = {
.species = SPECIES_DRAGONITE,
.moves = {MOVE_THUNDER, MOVE_SURF, MOVE_RAIN_DANCE, MOVE_EARTHQUAKE},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [859] = {
+ [FRONTIER_MON_DRAGONITE_10] = {
.species = SPECIES_DRAGONITE,
.moves = {MOVE_FIRE_BLAST, MOVE_BLIZZARD, MOVE_SUNNY_DAY, MOVE_EARTHQUAKE},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [860] = {
+ [FRONTIER_MON_TYRANITAR_1] = {
.species = SPECIES_TYRANITAR,
.moves = {MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_THUNDERBOLT, MOVE_SURF},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [861] = {
+ [FRONTIER_MON_TYRANITAR_2] = {
.species = SPECIES_TYRANITAR,
.moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_CRUNCH, MOVE_THUNDERBOLT},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [862] = {
+ [FRONTIER_MON_TYRANITAR_3] = {
.species = SPECIES_TYRANITAR,
.moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_COUNTER, MOVE_DRAGON_DANCE},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [863] = {
+ [FRONTIER_MON_TYRANITAR_4] = {
.species = SPECIES_TYRANITAR,
.moves = {MOVE_CRUNCH, MOVE_ICE_BEAM, MOVE_THUNDERBOLT, MOVE_FLAMETHROWER},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [864] = {
+ [FRONTIER_MON_TYRANITAR_5] = {
.species = SPECIES_TYRANITAR,
.moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_DRAGON_DANCE, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [865] = {
+ [FRONTIER_MON_TYRANITAR_6] = {
.species = SPECIES_TYRANITAR,
.moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_CURSE, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [866] = {
+ [FRONTIER_MON_TYRANITAR_7] = {
.species = SPECIES_TYRANITAR,
.moves = {MOVE_ROCK_SLIDE, MOVE_AERIAL_ACE, MOVE_BRICK_BREAK, MOVE_CURSE},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [867] = {
+ [FRONTIER_MON_TYRANITAR_8] = {
.species = SPECIES_TYRANITAR,
.moves = {MOVE_ROCK_SLIDE, MOVE_THUNDER_WAVE, MOVE_DRAGON_DANCE, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [868] = {
+ [FRONTIER_MON_TYRANITAR_9] = {
.species = SPECIES_TYRANITAR,
.moves = {MOVE_CRUNCH, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_ATTRACT},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [869] = {
+ [FRONTIER_MON_TYRANITAR_10] = {
.species = SPECIES_TYRANITAR,
.moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_DRAGON_DANCE},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [870] = {
+ [FRONTIER_MON_ARTICUNO_5] = {
.species = SPECIES_ARTICUNO,
.moves = {MOVE_BLIZZARD, MOVE_DOUBLE_EDGE, MOVE_AGILITY, MOVE_SWAGGER},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [871] = {
+ [FRONTIER_MON_ARTICUNO_6] = {
.species = SPECIES_ARTICUNO,
.moves = {MOVE_ICE_BEAM, MOVE_AERIAL_ACE, MOVE_REFLECT, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [872] = {
+ [FRONTIER_MON_ZAPDOS_5] = {
.species = SPECIES_ZAPDOS,
.moves = {MOVE_THUNDERBOLT, MOVE_DRILL_PECK, MOVE_DOUBLE_EDGE, MOVE_THUNDER_WAVE},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [873] = {
+ [FRONTIER_MON_ZAPDOS_6] = {
.species = SPECIES_ZAPDOS,
.moves = {MOVE_THUNDER, MOVE_DRILL_PECK, MOVE_RAIN_DANCE, MOVE_DOUBLE_EDGE},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [874] = {
+ [FRONTIER_MON_MOLTRES_5] = {
.species = SPECIES_MOLTRES,
.moves = {MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_SWAGGER, MOVE_FACADE},
.itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_DOCILE
},
- [875] = {
+ [FRONTIER_MON_MOLTRES_6] = {
.species = SPECIES_MOLTRES,
.moves = {MOVE_OVERHEAT, MOVE_DOUBLE_EDGE, MOVE_AERIAL_ACE, MOVE_STEEL_WING},
.itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_DOCILE
},
- [876] = {
+ [FRONTIER_MON_RAIKOU_5] = {
.species = SPECIES_RAIKOU,
.moves = {MOVE_THUNDERBOLT, MOVE_DOUBLE_EDGE, MOVE_ROAR, MOVE_REFLECT},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [877] = {
+ [FRONTIER_MON_RAIKOU_6] = {
.species = SPECIES_RAIKOU,
.moves = {MOVE_THUNDERBOLT, MOVE_CALM_MIND, MOVE_SUBSTITUTE, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [878] = {
+ [FRONTIER_MON_ENTEI_5] = {
.species = SPECIES_ENTEI,
.moves = {MOVE_FIRE_BLAST, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_REFLECT},
.itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_DOCILE
},
- [879] = {
+ [FRONTIER_MON_ENTEI_6] = {
.species = SPECIES_ENTEI,
.moves = {MOVE_FLAMETHROWER, MOVE_CALM_MIND, MOVE_ROAR, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_MODEST
},
- [880] = {
+ [FRONTIER_MON_SUICUNE_5] = {
.species = SPECIES_SUICUNE,
.moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_CALM_MIND, MOVE_ICY_WIND},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [881] = {
+ [FRONTIER_MON_SUICUNE_6] = {
.species = SPECIES_SUICUNE,
.moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_CALM_MIND, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
diff --git a/src/data/battle_frontier/battle_frontier_trainer_mons.h b/src/data/battle_frontier/battle_frontier_trainer_mons.h
index d0e21172b..183964f2d 100644
--- a/src/data/battle_frontier/battle_frontier_trainer_mons.h
+++ b/src/data/battle_frontier/battle_frontier_trainer_mons.h
@@ -1,15229 +1,7369 @@
+// Also used by early Pkmn Breeder, Collector, and Beauty trainers
+#define FRONTIER_MONS_YOUNGSTER_LASS_1 \
+ FRONTIER_MON_SUNKERN, \
+ FRONTIER_MON_AZURILL, \
+ FRONTIER_MON_CATERPIE, \
+ FRONTIER_MON_WEEDLE, \
+ FRONTIER_MON_WURMPLE, \
+ FRONTIER_MON_RALTS, \
+ FRONTIER_MON_MAGIKARP, \
+ FRONTIER_MON_FEEBAS, \
+ FRONTIER_MON_PICHU, \
+ FRONTIER_MON_IGGLYBUFF, \
+ FRONTIER_MON_WOOPER, \
+ FRONTIER_MON_TYROGUE, \
+ FRONTIER_MON_SENTRET, \
+ FRONTIER_MON_CLEFFA, \
+ FRONTIER_MON_SEEDOT, \
+ FRONTIER_MON_LOTAD, \
+ FRONTIER_MON_POOCHYENA, \
+ FRONTIER_MON_SHEDINJA, \
+ FRONTIER_MON_MAKUHITA, \
+ FRONTIER_MON_WHISMUR, \
+ FRONTIER_MON_ZIGZAGOON, \
+ FRONTIER_MON_ZUBAT, \
+ FRONTIER_MON_TOGEPI, \
+ FRONTIER_MON_SPINARAK, \
+ FRONTIER_MON_MARILL, \
+ FRONTIER_MON_HOPPIP, \
+ FRONTIER_MON_SLUGMA, \
+ FRONTIER_MON_SWINUB, \
+ FRONTIER_MON_SMEARGLE, \
+ FRONTIER_MON_PIDGEY, \
+ FRONTIER_MON_RATTATA, \
+ FRONTIER_MON_WYNAUT, \
+ FRONTIER_MON_SKITTY, \
+ FRONTIER_MON_SPEAROW, \
+ FRONTIER_MON_HOOTHOOT, \
+ FRONTIER_MON_DIGLETT, \
+ FRONTIER_MON_LEDYBA, \
+ FRONTIER_MON_NINCADA, \
+ FRONTIER_MON_SURSKIT, \
+ FRONTIER_MON_JIGGLYPUFF, \
+ FRONTIER_MON_TAILLOW, \
+ FRONTIER_MON_WINGULL, \
+ FRONTIER_MON_NIDORAN_M, \
+ FRONTIER_MON_NIDORAN_F, \
+ FRONTIER_MON_KIRLIA, \
+ FRONTIER_MON_MAREEP, \
+ FRONTIER_MON_MEDITITE, \
+ FRONTIER_MON_SLAKOTH, \
+ FRONTIER_MON_PARAS, \
+ FRONTIER_MON_EKANS, \
+ FRONTIER_MON_DITTO, \
+ FRONTIER_MON_BARBOACH, \
+ FRONTIER_MON_MEOWTH, \
+ FRONTIER_MON_PINECO, \
+ FRONTIER_MON_TRAPINCH, \
+ FRONTIER_MON_SPHEAL, \
+ FRONTIER_MON_HORSEA, \
+ FRONTIER_MON_SHROOMISH, \
+ FRONTIER_MON_SHUPPET, \
+ FRONTIER_MON_DUSKULL, \
+ FRONTIER_MON_ELECTRIKE, \
+ FRONTIER_MON_VULPIX, \
+ -1
+
+// Also used by early Pkmn Breeder, Collector, and Beauty trainers
+#define FRONTIER_MONS_SCHOOL_KID_1 \
+ FRONTIER_MON_PIKACHU, \
+ FRONTIER_MON_SANDSHREW, \
+ FRONTIER_MON_POLIWAG, \
+ FRONTIER_MON_BELLSPROUT, \
+ FRONTIER_MON_GEODUDE, \
+ FRONTIER_MON_DRATINI, \
+ FRONTIER_MON_SNUBBULL, \
+ FRONTIER_MON_REMORAID, \
+ FRONTIER_MON_LARVITAR, \
+ FRONTIER_MON_BALTOY, \
+ FRONTIER_MON_SNORUNT, \
+ FRONTIER_MON_BAGON, \
+ FRONTIER_MON_BELDUM, \
+ FRONTIER_MON_GULPIN, \
+ FRONTIER_MON_VENONAT, \
+ FRONTIER_MON_MANKEY, \
+ FRONTIER_MON_MACHOP, \
+ FRONTIER_MON_SHELLDER, \
+ FRONTIER_MON_SMOOCHUM, \
+ FRONTIER_MON_NUMEL, \
+ FRONTIER_MON_CARVANHA, \
+ FRONTIER_MON_CORPHISH, \
+ FRONTIER_MON_CHARMANDER, \
+ FRONTIER_MON_CYNDAQUIL, \
+ FRONTIER_MON_ABRA, \
+ FRONTIER_MON_DODUO, \
+ FRONTIER_MON_GASTLY, \
+ FRONTIER_MON_SWABLU, \
+ FRONTIER_MON_TREECKO, \
+ FRONTIER_MON_TORCHIC, \
+ FRONTIER_MON_MUDKIP, \
+ FRONTIER_MON_SQUIRTLE, \
+ FRONTIER_MON_TOTODILE, \
+ FRONTIER_MON_SLOWPOKE, \
+ FRONTIER_MON_BULBASAUR, \
+ FRONTIER_MON_CHIKORITA, \
+ FRONTIER_MON_ODDISH, \
+ FRONTIER_MON_PSYDUCK, \
+ FRONTIER_MON_CUBONE, \
+ FRONTIER_MON_GOLDEEN, \
+ FRONTIER_MON_NATU, \
+ FRONTIER_MON_CLEFAIRY, \
+ FRONTIER_MON_MAGNEMITE, \
+ FRONTIER_MON_SEEL, \
+ -1
+
+#define FRONTIER_MONS_RICH_BOY_LADY_1 \
+ FRONTIER_MON_RALTS, \
+ FRONTIER_MON_POOCHYENA, \
+ FRONTIER_MON_SHEDINJA, \
+ FRONTIER_MON_ZUBAT, \
+ FRONTIER_MON_SPINARAK, \
+ FRONTIER_MON_WYNAUT, \
+ FRONTIER_MON_NIDORAN_M, \
+ FRONTIER_MON_NIDORAN_F, \
+ FRONTIER_MON_KIRLIA, \
+ FRONTIER_MON_MEDITITE, \
+ FRONTIER_MON_EKANS, \
+ FRONTIER_MON_SHUPPET, \
+ FRONTIER_MON_DUSKULL, \
+ FRONTIER_MON_BELLSPROUT, \
+ FRONTIER_MON_BALTOY, \
+ FRONTIER_MON_BELDUM, \
+ FRONTIER_MON_GULPIN, \
+ FRONTIER_MON_VENONAT, \
+ FRONTIER_MON_SMOOCHUM, \
+ FRONTIER_MON_ABRA, \
+ FRONTIER_MON_GASTLY, \
+ FRONTIER_MON_SLOWPOKE, \
+ FRONTIER_MON_BULBASAUR, \
+ FRONTIER_MON_ODDISH, \
+ FRONTIER_MON_NATU, \
+ FRONTIER_MON_GRIMER, \
+ FRONTIER_MON_EXEGGCUTE, \
+ FRONTIER_MON_DROWZEE, \
+ FRONTIER_MON_HOUNDOUR, \
+ FRONTIER_MON_SPOINK, \
+ FRONTIER_MON_TENTACOOL, \
+ FRONTIER_MON_KOFFING, \
+ FRONTIER_MON_NIDORINA, \
+ FRONTIER_MON_NIDORINO, \
+ FRONTIER_MON_BEEDRILL, \
+ FRONTIER_MON_DUSTOX, \
+ FRONTIER_MON_ARIADOS, \
+ -1
+
+// Also used by early Pkmn Breeder, Collector, and Beauty trainers
+#define FRONTIER_MONS_CAMPER_PICNICKER_1 \
+ FRONTIER_MON_GRIMER, \
+ FRONTIER_MON_KRABBY, \
+ FRONTIER_MON_EXEGGCUTE, \
+ FRONTIER_MON_EEVEE, \
+ FRONTIER_MON_DROWZEE, \
+ FRONTIER_MON_VOLTORB, \
+ FRONTIER_MON_CHINCHOU, \
+ FRONTIER_MON_TEDDIURSA, \
+ FRONTIER_MON_DELIBIRD, \
+ FRONTIER_MON_HOUNDOUR, \
+ FRONTIER_MON_PHANPY, \
+ FRONTIER_MON_SPOINK, \
+ FRONTIER_MON_ARON, \
+ FRONTIER_MON_LUVDISC, \
+ FRONTIER_MON_TENTACOOL, \
+ FRONTIER_MON_CACNEA, \
+ FRONTIER_MON_KOFFING, \
+ FRONTIER_MON_STARYU, \
+ FRONTIER_MON_SKIPLOOM, \
+ FRONTIER_MON_NUZLEAF, \
+ FRONTIER_MON_LOMBRE, \
+ FRONTIER_MON_VIBRAVA, \
+ FRONTIER_MON_RHYHORN, \
+ FRONTIER_MON_CLAMPERL, \
+ FRONTIER_MON_PIDGEOTTO, \
+ FRONTIER_MON_GROWLITHE, \
+ FRONTIER_MON_FARFETCHD, \
+ FRONTIER_MON_OMANYTE, \
+ FRONTIER_MON_KABUTO, \
+ FRONTIER_MON_LILEEP, \
+ FRONTIER_MON_ANORITH, \
+ FRONTIER_MON_AIPOM, \
+ FRONTIER_MON_ELEKID, \
+ FRONTIER_MON_LOUDRED, \
+ FRONTIER_MON_SPINDA, \
+ FRONTIER_MON_NIDORINA, \
+ FRONTIER_MON_NIDORINO, \
+ FRONTIER_MON_FLAAFFY, \
+ FRONTIER_MON_MAGBY, \
+ FRONTIER_MON_NOSEPASS, \
+ FRONTIER_MON_CORSOLA, \
+ FRONTIER_MON_MAWILE, \
+ FRONTIER_MON_BUTTERFREE, \
+ FRONTIER_MON_BEEDRILL, \
+ FRONTIER_MON_POLIWHIRL, \
+ FRONTIER_MON_ONIX, \
+ FRONTIER_MON_BEAUTIFLY, \
+ FRONTIER_MON_DUSTOX, \
+ FRONTIER_MON_LEDIAN, \
+ FRONTIER_MON_ARIADOS, \
+ FRONTIER_MON_YANMA, \
+ -1
+
+#define FRONTIER_MONS_TUBER_1 \
+ FRONTIER_MON_RALTS, \
+ FRONTIER_MON_MAGIKARP, \
+ FRONTIER_MON_FEEBAS, \
+ FRONTIER_MON_WOOPER, \
+ FRONTIER_MON_LOTAD, \
+ FRONTIER_MON_MARILL, \
+ FRONTIER_MON_WYNAUT, \
+ FRONTIER_MON_SURSKIT, \
+ FRONTIER_MON_WINGULL, \
+ FRONTIER_MON_KIRLIA, \
+ FRONTIER_MON_MEDITITE, \
+ FRONTIER_MON_BARBOACH, \
+ FRONTIER_MON_SPHEAL, \
+ FRONTIER_MON_HORSEA, \
+ FRONTIER_MON_POLIWAG, \
+ FRONTIER_MON_REMORAID, \
+ FRONTIER_MON_SHELLDER, \
+ FRONTIER_MON_SMOOCHUM, \
+ FRONTIER_MON_CARVANHA, \
+ FRONTIER_MON_CORPHISH, \
+ FRONTIER_MON_ABRA, \
+ FRONTIER_MON_MUDKIP, \
+ FRONTIER_MON_SQUIRTLE, \
+ FRONTIER_MON_TOTODILE, \
+ FRONTIER_MON_SLOWPOKE, \
+ FRONTIER_MON_PSYDUCK, \
+ FRONTIER_MON_GOLDEEN, \
+ FRONTIER_MON_NATU, \
+ FRONTIER_MON_SEEL, \
+ FRONTIER_MON_EXEGGCUTE, \
+ FRONTIER_MON_DROWZEE, \
+ FRONTIER_MON_SPOINK, \
+ -1
+
+#define FRONTIER_MONS_SWIMMER_M_1 \
+ FRONTIER_MON_AZURILL, \
+ FRONTIER_MON_IGGLYBUFF, \
+ FRONTIER_MON_TYROGUE, \
+ FRONTIER_MON_SENTRET, \
+ FRONTIER_MON_CLEFFA, \
+ FRONTIER_MON_MAKUHITA, \
+ FRONTIER_MON_WHISMUR, \
+ FRONTIER_MON_ZIGZAGOON, \
+ FRONTIER_MON_TOGEPI, \
+ FRONTIER_MON_SMEARGLE, \
+ FRONTIER_MON_RATTATA, \
+ FRONTIER_MON_SKITTY, \
+ FRONTIER_MON_JIGGLYPUFF, \
+ FRONTIER_MON_MEDITITE, \
+ FRONTIER_MON_SLAKOTH, \
+ FRONTIER_MON_DITTO, \
+ FRONTIER_MON_MEOWTH, \
+ FRONTIER_MON_POLIWAG, \
+ FRONTIER_MON_SNUBBULL, \
+ FRONTIER_MON_REMORAID, \
+ FRONTIER_MON_MANKEY, \
+ FRONTIER_MON_MACHOP, \
+ FRONTIER_MON_SHELLDER, \
+ FRONTIER_MON_CARVANHA, \
+ FRONTIER_MON_CORPHISH, \
+ FRONTIER_MON_MUDKIP, \
+ FRONTIER_MON_SQUIRTLE, \
+ FRONTIER_MON_TOTODILE, \
+ FRONTIER_MON_SLOWPOKE, \
+ FRONTIER_MON_PSYDUCK, \
+ FRONTIER_MON_GOLDEEN, \
+ FRONTIER_MON_CLEFAIRY, \
+ FRONTIER_MON_SEEL, \
+ FRONTIER_MON_KRABBY, \
+ FRONTIER_MON_EEVEE, \
+ FRONTIER_MON_CHINCHOU, \
+ FRONTIER_MON_TEDDIURSA, \
+ FRONTIER_MON_LUVDISC, \
+ FRONTIER_MON_TENTACOOL, \
+ FRONTIER_MON_STARYU, \
+ FRONTIER_MON_LOMBRE, \
+ FRONTIER_MON_CLAMPERL, \
+ FRONTIER_MON_OMANYTE, \
+ FRONTIER_MON_KABUTO, \
+ FRONTIER_MON_AIPOM, \
+ FRONTIER_MON_LOUDRED, \
+ FRONTIER_MON_SPINDA, \
+ FRONTIER_MON_CORSOLA, \
+ FRONTIER_MON_MAWILE, \
+ FRONTIER_MON_POLIWHIRL, \
+ -1
+
+#define FRONTIER_MONS_SWIMMER_F_1 \
+ FRONTIER_MON_AZURILL, \
+ FRONTIER_MON_IGGLYBUFF, \
+ FRONTIER_MON_SENTRET, \
+ FRONTIER_MON_CLEFFA, \
+ FRONTIER_MON_WHISMUR, \
+ FRONTIER_MON_ZIGZAGOON, \
+ FRONTIER_MON_TOGEPI, \
+ FRONTIER_MON_SMEARGLE, \
+ FRONTIER_MON_RATTATA, \
+ FRONTIER_MON_SKITTY, \
+ FRONTIER_MON_JIGGLYPUFF, \
+ FRONTIER_MON_SLAKOTH, \
+ FRONTIER_MON_DITTO, \
+ FRONTIER_MON_MEOWTH, \
+ FRONTIER_MON_POLIWAG, \
+ FRONTIER_MON_SNUBBULL, \
+ FRONTIER_MON_REMORAID, \
+ FRONTIER_MON_SNORUNT, \
+ FRONTIER_MON_SHELLDER, \
+ FRONTIER_MON_SMOOCHUM, \
+ FRONTIER_MON_CARVANHA, \
+ FRONTIER_MON_CORPHISH, \
+ FRONTIER_MON_MUDKIP, \
+ FRONTIER_MON_SQUIRTLE, \
+ FRONTIER_MON_TOTODILE, \
+ FRONTIER_MON_SLOWPOKE, \
+ FRONTIER_MON_PSYDUCK, \
+ FRONTIER_MON_GOLDEEN, \
+ FRONTIER_MON_CLEFAIRY, \
+ FRONTIER_MON_SEEL, \
+ FRONTIER_MON_KRABBY, \
+ FRONTIER_MON_EEVEE, \
+ FRONTIER_MON_CHINCHOU, \
+ FRONTIER_MON_TEDDIURSA, \
+ FRONTIER_MON_DELIBIRD, \
+ FRONTIER_MON_LUVDISC, \
+ FRONTIER_MON_TENTACOOL, \
+ FRONTIER_MON_STARYU, \
+ FRONTIER_MON_LOMBRE, \
+ FRONTIER_MON_CLAMPERL, \
+ FRONTIER_MON_OMANYTE, \
+ FRONTIER_MON_KABUTO, \
+ FRONTIER_MON_AIPOM, \
+ FRONTIER_MON_LOUDRED, \
+ FRONTIER_MON_SPINDA, \
+ FRONTIER_MON_CORSOLA, \
+ FRONTIER_MON_POLIWHIRL, \
+ -1
+
+#define FRONTIER_MONS_POKEFAN_M_1 \
+ FRONTIER_MON_SMOOCHUM, \
+ FRONTIER_MON_NUMEL, \
+ FRONTIER_MON_CORPHISH, \
+ FRONTIER_MON_CHARMANDER, \
+ FRONTIER_MON_CYNDAQUIL, \
+ FRONTIER_MON_SWABLU, \
+ FRONTIER_MON_TREECKO, \
+ FRONTIER_MON_TORCHIC, \
+ FRONTIER_MON_MUDKIP, \
+ FRONTIER_MON_SQUIRTLE, \
+ FRONTIER_MON_TOTODILE, \
+ FRONTIER_MON_SLOWPOKE, \
+ FRONTIER_MON_BULBASAUR, \
+ FRONTIER_MON_CHIKORITA, \
+ FRONTIER_MON_ODDISH, \
+ FRONTIER_MON_PSYDUCK, \
+ FRONTIER_MON_GOLDEEN, \
+ FRONTIER_MON_NATU, \
+ FRONTIER_MON_CLEFAIRY, \
+ FRONTIER_MON_SEEL, \
+ FRONTIER_MON_EXEGGCUTE, \
+ FRONTIER_MON_EEVEE, \
+ FRONTIER_MON_TEDDIURSA, \
+ FRONTIER_MON_PHANPY, \
+ FRONTIER_MON_SPOINK, \
+ FRONTIER_MON_LUVDISC, \
+ FRONTIER_MON_SKIPLOOM, \
+ FRONTIER_MON_CLAMPERL, \
+ FRONTIER_MON_AIPOM, \
+ FRONTIER_MON_ELEKID, \
+ FRONTIER_MON_SPINDA, \
+ FRONTIER_MON_FLAAFFY, \
+ FRONTIER_MON_MAGBY, \
+ FRONTIER_MON_CORSOLA, \
+ FRONTIER_MON_MAWILE, \
+ FRONTIER_MON_POLIWHIRL, \
+ -1
+
+#define FRONTIER_MONS_POKEFAN_F_1 \
+ FRONTIER_MON_AZURILL, \
+ FRONTIER_MON_RALTS, \
+ FRONTIER_MON_MAGIKARP, \
+ FRONTIER_MON_PICHU, \
+ FRONTIER_MON_IGGLYBUFF, \
+ FRONTIER_MON_WOOPER, \
+ FRONTIER_MON_SENTRET, \
+ FRONTIER_MON_CLEFFA, \
+ FRONTIER_MON_SEEDOT, \
+ FRONTIER_MON_LOTAD, \
+ FRONTIER_MON_POOCHYENA, \
+ FRONTIER_MON_WHISMUR, \
+ FRONTIER_MON_ZIGZAGOON, \
+ FRONTIER_MON_TOGEPI, \
+ FRONTIER_MON_MARILL, \
+ FRONTIER_MON_HOPPIP, \
+ FRONTIER_MON_SWINUB, \
+ FRONTIER_MON_SMEARGLE, \
+ FRONTIER_MON_PIDGEY, \
+ FRONTIER_MON_RATTATA, \
+ FRONTIER_MON_WYNAUT, \
+ FRONTIER_MON_SKITTY, \
+ FRONTIER_MON_SURSKIT, \
+ FRONTIER_MON_JIGGLYPUFF, \
+ FRONTIER_MON_TAILLOW, \
+ FRONTIER_MON_WINGULL, \
+ FRONTIER_MON_NIDORAN_M, \
+ FRONTIER_MON_NIDORAN_F, \
+ FRONTIER_MON_KIRLIA, \
+ FRONTIER_MON_MAREEP, \
+ FRONTIER_MON_DITTO, \
+ FRONTIER_MON_MEOWTH, \
+ FRONTIER_MON_SPHEAL, \
+ FRONTIER_MON_SHROOMISH, \
+ FRONTIER_MON_VULPIX, \
+ FRONTIER_MON_PIKACHU, \
+ FRONTIER_MON_SANDSHREW, \
+ FRONTIER_MON_POLIWAG, \
+ FRONTIER_MON_DRATINI, \
+ FRONTIER_MON_SNUBBULL, \
+ FRONTIER_MON_GULPIN, \
+ -1
+
+#define FRONTIER_MONS_BUG_CATCHER_1 \
+ FRONTIER_MON_CATERPIE, \
+ FRONTIER_MON_WEEDLE, \
+ FRONTIER_MON_WURMPLE, \
+ FRONTIER_MON_SHEDINJA, \
+ FRONTIER_MON_SPINARAK, \
+ FRONTIER_MON_DIGLETT, \
+ FRONTIER_MON_LEDYBA, \
+ FRONTIER_MON_NINCADA, \
+ FRONTIER_MON_SURSKIT, \
+ FRONTIER_MON_PARAS, \
+ FRONTIER_MON_PINECO, \
+ FRONTIER_MON_TRAPINCH, \
+ FRONTIER_MON_VENONAT, \
+ FRONTIER_MON_EXEGGCUTE, \
+ FRONTIER_MON_VIBRAVA, \
+ FRONTIER_MON_ANORITH, \
+ FRONTIER_MON_BUTTERFREE, \
+ FRONTIER_MON_BEEDRILL, \
+ FRONTIER_MON_BEAUTIFLY, \
+ FRONTIER_MON_DUSTOX, \
+ FRONTIER_MON_LEDIAN, \
+ FRONTIER_MON_ARIADOS, \
+ FRONTIER_MON_YANMA, \
+ -1
+
+// Identical to above with 2 additions. Might be possible to merge the two
+#define FRONTIER_MONS_BUG_CATCHER_1_EXTRA(species1, species2) \
+ FRONTIER_MON_CATERPIE, \
+ FRONTIER_MON_WEEDLE, \
+ FRONTIER_MON_WURMPLE, \
+ FRONTIER_MON_##species1, \
+ FRONTIER_MON_##species2, \
+ FRONTIER_MON_SHEDINJA, \
+ FRONTIER_MON_SPINARAK, \
+ FRONTIER_MON_DIGLETT, \
+ FRONTIER_MON_LEDYBA, \
+ FRONTIER_MON_NINCADA, \
+ FRONTIER_MON_SURSKIT, \
+ FRONTIER_MON_PARAS, \
+ FRONTIER_MON_PINECO, \
+ FRONTIER_MON_TRAPINCH, \
+ FRONTIER_MON_VENONAT, \
+ FRONTIER_MON_EXEGGCUTE, \
+ FRONTIER_MON_VIBRAVA, \
+ FRONTIER_MON_ANORITH, \
+ FRONTIER_MON_BUTTERFREE, \
+ FRONTIER_MON_BEEDRILL, \
+ FRONTIER_MON_BEAUTIFLY, \
+ FRONTIER_MON_DUSTOX, \
+ FRONTIER_MON_LEDIAN, \
+ FRONTIER_MON_ARIADOS, \
+ FRONTIER_MON_YANMA, \
+ -1
+
+#define FRONTIER_MONS_NINJA_BOY_1 \
+ FRONTIER_MON_RALTS, \
+ FRONTIER_MON_SHEDINJA, \
+ FRONTIER_MON_ZUBAT, \
+ FRONTIER_MON_SPINARAK, \
+ FRONTIER_MON_WYNAUT, \
+ FRONTIER_MON_DIGLETT, \
+ FRONTIER_MON_LEDYBA, \
+ FRONTIER_MON_NINCADA, \
+ FRONTIER_MON_SURSKIT, \
+ FRONTIER_MON_NIDORAN_M, \
+ FRONTIER_MON_NIDORAN_F, \
+ FRONTIER_MON_KIRLIA, \
+ FRONTIER_MON_MEDITITE, \
+ FRONTIER_MON_PARAS, \
+ FRONTIER_MON_EKANS, \
+ FRONTIER_MON_PINECO, \
+ FRONTIER_MON_TRAPINCH, \
+ FRONTIER_MON_SHUPPET, \
+ FRONTIER_MON_DUSKULL, \
+ FRONTIER_MON_BELLSPROUT, \
+ FRONTIER_MON_BALTOY, \
+ FRONTIER_MON_BELDUM, \
+ FRONTIER_MON_GULPIN, \
+ FRONTIER_MON_VENONAT, \
+ FRONTIER_MON_SMOOCHUM, \
+ FRONTIER_MON_ABRA, \
+ FRONTIER_MON_GASTLY, \
+ FRONTIER_MON_SLOWPOKE, \
+ FRONTIER_MON_BULBASAUR, \
+ FRONTIER_MON_ODDISH, \
+ FRONTIER_MON_NATU, \
+ FRONTIER_MON_GRIMER, \
+ FRONTIER_MON_EXEGGCUTE, \
+ FRONTIER_MON_DROWZEE, \
+ FRONTIER_MON_SPOINK, \
+ FRONTIER_MON_TENTACOOL, \
+ FRONTIER_MON_KOFFING, \
+ FRONTIER_MON_VIBRAVA, \
+ FRONTIER_MON_ANORITH, \
+ FRONTIER_MON_NIDORINA, \
+ FRONTIER_MON_NIDORINO, \
+ FRONTIER_MON_BUTTERFREE, \
+ FRONTIER_MON_BEEDRILL, \
+ FRONTIER_MON_BEAUTIFLY, \
+ FRONTIER_MON_DUSTOX, \
+ FRONTIER_MON_LEDIAN, \
+ FRONTIER_MON_ARIADOS, \
+ FRONTIER_MON_YANMA, \
+ -1
+
+#define FRONTIER_MONS_BUG_MANIAC_1 \
+ FRONTIER_MON_SHEDINJA, \
+ FRONTIER_MON_SPINARAK, \
+ FRONTIER_MON_HOPPIP, \
+ FRONTIER_MON_DIGLETT, \
+ FRONTIER_MON_LEDYBA, \
+ FRONTIER_MON_NINCADA, \
+ FRONTIER_MON_SURSKIT, \
+ FRONTIER_MON_PARAS, \
+ FRONTIER_MON_PINECO, \
+ FRONTIER_MON_TRAPINCH, \
+ FRONTIER_MON_SHROOMISH, \
+ FRONTIER_MON_SHUPPET, \
+ FRONTIER_MON_DUSKULL, \
+ FRONTIER_MON_BELLSPROUT, \
+ FRONTIER_MON_VENONAT, \
+ FRONTIER_MON_GASTLY, \
+ FRONTIER_MON_ODDISH, \
+ FRONTIER_MON_EXEGGCUTE, \
+ FRONTIER_MON_CACNEA, \
+ FRONTIER_MON_SKIPLOOM, \
+ FRONTIER_MON_VIBRAVA, \
+ FRONTIER_MON_LILEEP, \
+ FRONTIER_MON_ANORITH, \
+ FRONTIER_MON_BUTTERFREE, \
+ FRONTIER_MON_BEEDRILL, \
+ FRONTIER_MON_BEAUTIFLY, \
+ FRONTIER_MON_DUSTOX, \
+ FRONTIER_MON_LEDIAN, \
+ FRONTIER_MON_ARIADOS, \
+ FRONTIER_MON_YANMA, \
+ -1
+
+#define FRONTIER_MONS_FISHERMAN_1 \
+ FRONTIER_MON_MAGIKARP, \
+ FRONTIER_MON_FEEBAS, \
+ FRONTIER_MON_BARBOACH, \
+ FRONTIER_MON_HORSEA, \
+ FRONTIER_MON_POLIWAG, \
+ FRONTIER_MON_REMORAID, \
+ FRONTIER_MON_SHELLDER, \
+ FRONTIER_MON_CARVANHA, \
+ FRONTIER_MON_CORPHISH, \
+ FRONTIER_MON_GOLDEEN, \
+ FRONTIER_MON_KRABBY, \
+ FRONTIER_MON_CHINCHOU, \
+ FRONTIER_MON_LUVDISC, \
+ FRONTIER_MON_TENTACOOL, \
+ FRONTIER_MON_STARYU, \
+ FRONTIER_MON_CLAMPERL, \
+ FRONTIER_MON_OMANYTE, \
+ FRONTIER_MON_KABUTO, \
+ FRONTIER_MON_CORSOLA, \
+ -1
+
+#define FRONTIER_MONS_RUIN_MANIAC_1 \
+ FRONTIER_MON_SWINUB, \
+ FRONTIER_MON_DIGLETT, \
+ FRONTIER_MON_TRAPINCH, \
+ FRONTIER_MON_SANDSHREW, \
+ FRONTIER_MON_GEODUDE, \
+ FRONTIER_MON_LARVITAR, \
+ FRONTIER_MON_BALTOY, \
+ FRONTIER_MON_BELDUM, \
+ FRONTIER_MON_NUMEL, \
+ FRONTIER_MON_CUBONE, \
+ FRONTIER_MON_MAGNEMITE, \
+ FRONTIER_MON_PHANPY, \
+ FRONTIER_MON_ARON, \
+ FRONTIER_MON_RHYHORN, \
+ FRONTIER_MON_OMANYTE, \
+ FRONTIER_MON_KABUTO, \
+ FRONTIER_MON_LILEEP, \
+ FRONTIER_MON_ANORITH, \
+ FRONTIER_MON_NOSEPASS, \
+ FRONTIER_MON_CORSOLA, \
+ FRONTIER_MON_MAWILE, \
+ FRONTIER_MON_ONIX, \
+ -1
+
+#define FRONTIER_MONS_PARASOL_LADY_1 \
+ FRONTIER_MON_SUNKERN, \
+ FRONTIER_MON_WOOPER, \
+ FRONTIER_MON_LOTAD, \
+ FRONTIER_MON_MARILL, \
+ FRONTIER_MON_SURSKIT, \
+ FRONTIER_MON_TRAPINCH, \
+ FRONTIER_MON_SPHEAL, \
+ FRONTIER_MON_SANDSHREW, \
+ FRONTIER_MON_POLIWAG, \
+ FRONTIER_MON_NUMEL, \
+ FRONTIER_MON_DELIBIRD, \
+ FRONTIER_MON_PHANPY, \
+ FRONTIER_MON_LUVDISC, \
+ FRONTIER_MON_POLIWHIRL, \
+ FRONTIER_MON_ONIX, \
+ FRONTIER_MON_SUDOWOODO_1, \
+ -1
+
+#define FRONTIER_MONS_AROMA_LADY_1 \
+ FRONTIER_MON_SUNKERN, \
+ FRONTIER_MON_RALTS, \
+ FRONTIER_MON_SEEDOT, \
+ FRONTIER_MON_LOTAD, \
+ FRONTIER_MON_HOPPIP, \
+ FRONTIER_MON_WYNAUT, \
+ FRONTIER_MON_KIRLIA, \
+ FRONTIER_MON_MEDITITE, \
+ FRONTIER_MON_PARAS, \
+ FRONTIER_MON_SHROOMISH, \
+ FRONTIER_MON_BELLSPROUT, \
+ FRONTIER_MON_BALTOY, \
+ FRONTIER_MON_BELDUM, \
+ FRONTIER_MON_SMOOCHUM, \
+ FRONTIER_MON_ABRA, \
+ FRONTIER_MON_TREECKO, \
+ FRONTIER_MON_SLOWPOKE, \
+ FRONTIER_MON_BULBASAUR, \
+ FRONTIER_MON_CHIKORITA, \
+ FRONTIER_MON_ODDISH, \
+ FRONTIER_MON_NATU, \
+ FRONTIER_MON_EXEGGCUTE, \
+ FRONTIER_MON_DROWZEE, \
+ FRONTIER_MON_SPOINK, \
+ FRONTIER_MON_CACNEA, \
+ FRONTIER_MON_SKIPLOOM, \
+ FRONTIER_MON_NUZLEAF, \
+ FRONTIER_MON_LOMBRE, \
+ FRONTIER_MON_LILEEP, \
+ -1
+
+#define FRONTIER_MONS_GUITARIST_1 \
+ FRONTIER_MON_RALTS, \
+ FRONTIER_MON_PICHU, \
+ FRONTIER_MON_POOCHYENA, \
+ FRONTIER_MON_WYNAUT, \
+ FRONTIER_MON_KIRLIA, \
+ FRONTIER_MON_MAREEP, \
+ FRONTIER_MON_MEDITITE, \
+ FRONTIER_MON_SHUPPET, \
+ FRONTIER_MON_DUSKULL, \
+ FRONTIER_MON_ELECTRIKE, \
+ FRONTIER_MON_PIKACHU, \
+ FRONTIER_MON_DRATINI, \
+ FRONTIER_MON_BALTOY, \
+ FRONTIER_MON_BAGON, \
+ FRONTIER_MON_BELDUM, \
+ FRONTIER_MON_SMOOCHUM, \
+ FRONTIER_MON_ABRA, \
+ FRONTIER_MON_GASTLY, \
+ FRONTIER_MON_SLOWPOKE, \
+ FRONTIER_MON_NATU, \
+ FRONTIER_MON_MAGNEMITE, \
+ FRONTIER_MON_EXEGGCUTE, \
+ FRONTIER_MON_DROWZEE, \
+ FRONTIER_MON_VOLTORB, \
+ FRONTIER_MON_CHINCHOU, \
+ FRONTIER_MON_HOUNDOUR, \
+ FRONTIER_MON_SPOINK, \
+ FRONTIER_MON_ARON, \
+ FRONTIER_MON_ELEKID, \
+ FRONTIER_MON_FLAAFFY, \
+ FRONTIER_MON_MAWILE, \
+ -1
+
+#define FRONTIER_MONS_BIRD_KEEPER_1 \
+ FRONTIER_MON_AZURILL, \
+ FRONTIER_MON_IGGLYBUFF, \
+ FRONTIER_MON_SENTRET, \
+ FRONTIER_MON_CLEFFA, \
+ FRONTIER_MON_WHISMUR, \
+ FRONTIER_MON_ZIGZAGOON, \
+ FRONTIER_MON_ZUBAT, \
+ FRONTIER_MON_TOGEPI, \
+ FRONTIER_MON_SMEARGLE, \
+ FRONTIER_MON_PIDGEY, \
+ FRONTIER_MON_RATTATA, \
+ FRONTIER_MON_SKITTY, \
+ FRONTIER_MON_SPEAROW, \
+ FRONTIER_MON_HOOTHOOT, \
+ FRONTIER_MON_JIGGLYPUFF, \
+ FRONTIER_MON_TAILLOW, \
+ FRONTIER_MON_WINGULL, \
+ FRONTIER_MON_SLAKOTH, \
+ FRONTIER_MON_DITTO, \
+ FRONTIER_MON_MEOWTH, \
+ FRONTIER_MON_SNUBBULL, \
+ FRONTIER_MON_DODUO, \
+ FRONTIER_MON_SWABLU, \
+ FRONTIER_MON_TORCHIC, \
+ FRONTIER_MON_NATU, \
+ FRONTIER_MON_CLEFAIRY, \
+ FRONTIER_MON_EEVEE, \
+ FRONTIER_MON_TEDDIURSA, \
+ FRONTIER_MON_DELIBIRD, \
+ FRONTIER_MON_PIDGEOTTO, \
+ FRONTIER_MON_FARFETCHD, \
+ FRONTIER_MON_AIPOM, \
+ FRONTIER_MON_LOUDRED, \
+ FRONTIER_MON_SPINDA, \
+ -1
+
+#define FRONTIER_MONS_SAILOR_1 \
+ FRONTIER_MON_TYROGUE, \
+ FRONTIER_MON_MAKUHITA, \
+ FRONTIER_MON_MEDITITE, \
+ FRONTIER_MON_SANDSHREW, \
+ FRONTIER_MON_GEODUDE, \
+ FRONTIER_MON_DRATINI, \
+ FRONTIER_MON_LARVITAR, \
+ FRONTIER_MON_BAGON, \
+ FRONTIER_MON_MANKEY, \
+ FRONTIER_MON_MACHOP, \
+ FRONTIER_MON_SHELLDER, \
+ FRONTIER_MON_CARVANHA, \
+ FRONTIER_MON_CORPHISH, \
+ FRONTIER_MON_MUDKIP, \
+ FRONTIER_MON_SQUIRTLE, \
+ FRONTIER_MON_TOTODILE, \
+ FRONTIER_MON_SLOWPOKE, \
+ FRONTIER_MON_PSYDUCK, \
+ FRONTIER_MON_CUBONE, \
+ FRONTIER_MON_SEEL, \
+ FRONTIER_MON_KRABBY, \
+ FRONTIER_MON_PHANPY, \
+ FRONTIER_MON_TENTACOOL, \
+ FRONTIER_MON_STARYU, \
+ FRONTIER_MON_LOMBRE, \
+ FRONTIER_MON_RHYHORN, \
+ FRONTIER_MON_CLAMPERL, \
+ FRONTIER_MON_OMANYTE, \
+ FRONTIER_MON_KABUTO, \
+ FRONTIER_MON_CORSOLA, \
+ FRONTIER_MON_POLIWHIRL, \
+ FRONTIER_MON_ONIX, \
+ -1
+
+#define FRONTIER_MONS_HIKER_1 \
+ FRONTIER_MON_TYROGUE, \
+ FRONTIER_MON_MAKUHITA, \
+ FRONTIER_MON_SWINUB, \
+ FRONTIER_MON_DIGLETT, \
+ FRONTIER_MON_MEDITITE, \
+ FRONTIER_MON_SLAKOTH, \
+ FRONTIER_MON_TRAPINCH, \
+ FRONTIER_MON_SANDSHREW, \
+ FRONTIER_MON_GEODUDE, \
+ FRONTIER_MON_LARVITAR, \
+ FRONTIER_MON_BALTOY, \
+ FRONTIER_MON_MANKEY, \
+ FRONTIER_MON_MACHOP, \
+ FRONTIER_MON_NUMEL, \
+ FRONTIER_MON_CUBONE, \
+ FRONTIER_MON_PHANPY, \
+ FRONTIER_MON_ARON, \
+ FRONTIER_MON_VIBRAVA, \
+ FRONTIER_MON_RHYHORN, \
+ FRONTIER_MON_OMANYTE, \
+ FRONTIER_MON_KABUTO, \
+ FRONTIER_MON_LILEEP, \
+ FRONTIER_MON_ANORITH, \
+ FRONTIER_MON_AIPOM, \
+ FRONTIER_MON_LOUDRED, \
+ FRONTIER_MON_NOSEPASS, \
+ FRONTIER_MON_ONIX, \
+ -1
+
+#define FRONTIER_MONS_KINDLER_1 \
+ FRONTIER_MON_SLUGMA, \
+ FRONTIER_MON_SHUPPET, \
+ FRONTIER_MON_DUSKULL, \
+ FRONTIER_MON_VULPIX, \
+ FRONTIER_MON_GEODUDE, \
+ FRONTIER_MON_LARVITAR, \
+ FRONTIER_MON_BAGON, \
+ FRONTIER_MON_BELDUM, \
+ FRONTIER_MON_NUMEL, \
+ FRONTIER_MON_CHARMANDER, \
+ FRONTIER_MON_CYNDAQUIL, \
+ FRONTIER_MON_TORCHIC, \
+ FRONTIER_MON_MAGNEMITE, \
+ FRONTIER_MON_HOUNDOUR, \
+ FRONTIER_MON_ARON, \
+ FRONTIER_MON_RHYHORN, \
+ FRONTIER_MON_GROWLITHE, \
+ FRONTIER_MON_MAGBY, \
+ FRONTIER_MON_NOSEPASS, \
+ FRONTIER_MON_MAWILE, \
+ FRONTIER_MON_ONIX, \
+ -1
+
+#define FRONTIER_MONS_RUNNING_TRIATHLETE_1 \
+ FRONTIER_MON_AZURILL, \
+ FRONTIER_MON_IGGLYBUFF, \
+ FRONTIER_MON_TYROGUE, \
+ FRONTIER_MON_SENTRET, \
+ FRONTIER_MON_CLEFFA, \
+ FRONTIER_MON_MAKUHITA, \
+ FRONTIER_MON_WHISMUR, \
+ FRONTIER_MON_ZIGZAGOON, \
+ FRONTIER_MON_TOGEPI, \
+ FRONTIER_MON_SMEARGLE, \
+ FRONTIER_MON_PIDGEY, \
+ FRONTIER_MON_RATTATA, \
+ FRONTIER_MON_SKITTY, \
+ FRONTIER_MON_SPEAROW, \
+ FRONTIER_MON_HOOTHOOT, \
+ FRONTIER_MON_JIGGLYPUFF, \
+ FRONTIER_MON_TAILLOW, \
+ FRONTIER_MON_MEDITITE, \
+ FRONTIER_MON_SLAKOTH, \
+ FRONTIER_MON_DITTO, \
+ FRONTIER_MON_MEOWTH, \
+ FRONTIER_MON_SANDSHREW, \
+ FRONTIER_MON_GEODUDE, \
+ FRONTIER_MON_SNUBBULL, \
+ FRONTIER_MON_LARVITAR, \
+ FRONTIER_MON_BALTOY, \
+ FRONTIER_MON_MANKEY, \
+ FRONTIER_MON_MACHOP, \
+ FRONTIER_MON_NUMEL, \
+ FRONTIER_MON_DODUO, \
+ FRONTIER_MON_SWABLU, \
+ FRONTIER_MON_CUBONE, \
+ FRONTIER_MON_CLEFAIRY, \
+ FRONTIER_MON_EEVEE, \
+ FRONTIER_MON_TEDDIURSA, \
+ FRONTIER_MON_PHANPY, \
+ FRONTIER_MON_VIBRAVA, \
+ FRONTIER_MON_RHYHORN, \
+ FRONTIER_MON_PIDGEOTTO, \
+ FRONTIER_MON_FARFETCHD, \
+ FRONTIER_MON_AIPOM, \
+ FRONTIER_MON_LOUDRED, \
+ FRONTIER_MON_SPINDA, \
+ FRONTIER_MON_ONIX, \
+ -1
+
+#define FRONTIER_MONS_SWIMMING_TRIATHLETE_1 \
+ FRONTIER_MON_TYROGUE, \
+ FRONTIER_MON_MAKUHITA, \
+ FRONTIER_MON_MEDITITE, \
+ FRONTIER_MON_DRATINI, \
+ FRONTIER_MON_SNUBBULL, \
+ FRONTIER_MON_SNORUNT, \
+ FRONTIER_MON_BAGON, \
+ FRONTIER_MON_MANKEY, \
+ FRONTIER_MON_MACHOP, \
+ FRONTIER_MON_SHELLDER, \
+ FRONTIER_MON_SMOOCHUM, \
+ FRONTIER_MON_CORPHISH, \
+ FRONTIER_MON_MUDKIP, \
+ FRONTIER_MON_SQUIRTLE, \
+ FRONTIER_MON_TOTODILE, \
+ FRONTIER_MON_SLOWPOKE, \
+ FRONTIER_MON_PSYDUCK, \
+ FRONTIER_MON_CLEFAIRY, \
+ FRONTIER_MON_SEEL, \
+ FRONTIER_MON_KRABBY, \
+ FRONTIER_MON_EEVEE, \
+ FRONTIER_MON_TEDDIURSA, \
+ FRONTIER_MON_DELIBIRD, \
+ FRONTIER_MON_LOMBRE, \
+ FRONTIER_MON_CLAMPERL, \
+ FRONTIER_MON_OMANYTE, \
+ FRONTIER_MON_KABUTO, \
+ FRONTIER_MON_AIPOM, \
+ FRONTIER_MON_LOUDRED, \
+ FRONTIER_MON_SPINDA, \
+ FRONTIER_MON_CORSOLA, \
+ FRONTIER_MON_POLIWHIRL, \
+ -1
+
+#define FRONTIER_MONS_CYCLING_TRIATHLETE_1 \
+ FRONTIER_MON_PICHU, \
+ FRONTIER_MON_TYROGUE, \
+ FRONTIER_MON_MAKUHITA, \
+ FRONTIER_MON_MAREEP, \
+ FRONTIER_MON_MEDITITE, \
+ FRONTIER_MON_ELECTRIKE, \
+ FRONTIER_MON_PIKACHU, \
+ FRONTIER_MON_DRATINI, \
+ FRONTIER_MON_SNUBBULL, \
+ FRONTIER_MON_BAGON, \
+ FRONTIER_MON_BELDUM, \
+ FRONTIER_MON_MANKEY, \
+ FRONTIER_MON_MACHOP, \
+ FRONTIER_MON_DODUO, \
+ FRONTIER_MON_SWABLU, \
+ FRONTIER_MON_CLEFAIRY, \
+ FRONTIER_MON_MAGNEMITE, \
+ FRONTIER_MON_EEVEE, \
+ FRONTIER_MON_VOLTORB, \
+ FRONTIER_MON_TEDDIURSA, \
+ FRONTIER_MON_ARON, \
+ FRONTIER_MON_PIDGEOTTO, \
+ FRONTIER_MON_FARFETCHD, \
+ FRONTIER_MON_AIPOM, \
+ FRONTIER_MON_ELEKID, \
+ FRONTIER_MON_LOUDRED, \
+ FRONTIER_MON_SPINDA, \
+ FRONTIER_MON_FLAAFFY, \
+ FRONTIER_MON_MAWILE, \
+ -1
+
+#define FRONTIER_MONS_RUNNING_TRIATHLETE_2 \
+ FRONTIER_MON_DELCATTY_1, \
+ FRONTIER_MON_LICKITUNG_1, \
+ FRONTIER_MON_PORYGON_1, \
+ FRONTIER_MON_MACHOKE_1, \
+ FRONTIER_MON_TOGETIC_1, \
+ FRONTIER_MON_MURKROW_1, \
+ FRONTIER_MON_COMBUSKEN_1, \
+ FRONTIER_MON_RATICATE_1, \
+ FRONTIER_MON_FURRET_1, \
+ FRONTIER_MON_DUNSPARCE_1, \
+ FRONTIER_MON_LINOONE_1, \
+ FRONTIER_MON_CASTFORM_1, \
+ FRONTIER_MON_WIGGLYTUFF_1, \
+ FRONTIER_MON_GLIGAR_1, \
+ FRONTIER_MON_PELIPPER_1, \
+ FRONTIER_MON_SWELLOW_1, \
+ FRONTIER_MON_PERSIAN_1, \
+ FRONTIER_MON_KECLEON_1, \
+ FRONTIER_MON_VIGOROTH_1, \
+ FRONTIER_MON_NOCTOWL_1, \
+ FRONTIER_MON_CHANSEY_1, \
+ FRONTIER_MON_GOLBAT_1, \
+ FRONTIER_MON_PRIMEAPE_1, \
+ FRONTIER_MON_HITMONLEE_1, \
+ FRONTIER_MON_HITMONCHAN_1, \
+ FRONTIER_MON_GIRAFARIG_1, \
+ FRONTIER_MON_HITMONTOP_1, \
+ FRONTIER_MON_NINJASK_1, \
+ FRONTIER_MON_ZANGOOSE_1, \
+ FRONTIER_MON_TROPIUS_1, \
+ FRONTIER_MON_MANTINE_1, \
+ FRONTIER_MON_STANTLER_1, \
+ FRONTIER_MON_PIDGEOT_1, \
+ FRONTIER_MON_SCYTHER_1, \
+ -1
+
+#define FRONTIER_MONS_SWIMMING_TRIATHLETE_2 \
+ FRONTIER_MON_WAILMER_1, \
+ FRONTIER_MON_WARTORTLE_1, \
+ FRONTIER_MON_MACHOKE_1, \
+ FRONTIER_MON_CROCONAW_1, \
+ FRONTIER_MON_COMBUSKEN_1, \
+ FRONTIER_MON_MARSHTOMP_1, \
+ FRONTIER_MON_AZUMARILL_1, \
+ FRONTIER_MON_SEALEO_1, \
+ FRONTIER_MON_QWILFISH_1, \
+ FRONTIER_MON_SNEASEL_1, \
+ FRONTIER_MON_PELIPPER_1, \
+ FRONTIER_MON_SEADRA_1, \
+ FRONTIER_MON_SEAKING_1, \
+ FRONTIER_MON_PILOSWINE_1, \
+ FRONTIER_MON_PRIMEAPE_1, \
+ FRONTIER_MON_HITMONLEE_1, \
+ FRONTIER_MON_HITMONCHAN_1, \
+ FRONTIER_MON_HITMONTOP_1, \
+ FRONTIER_MON_SHARPEDO_1, \
+ FRONTIER_MON_MANTINE_1, \
+ FRONTIER_MON_CRAWDAUNT_1, \
+ FRONTIER_MON_KINGLER_1, \
+ FRONTIER_MON_OCTILLERY_1, \
+ FRONTIER_MON_HUNTAIL_1, \
+ FRONTIER_MON_GOREBYSS_1, \
+ FRONTIER_MON_RELICANTH_1, \
+ FRONTIER_MON_OMASTAR_1, \
+ FRONTIER_MON_KABUTOPS_1, \
+ FRONTIER_MON_POLIWRATH_1, \
+ FRONTIER_MON_POLITOED_1, \
+ FRONTIER_MON_CLOYSTER_1, \
+ -1
+
+#define FRONTIER_MONS_CYCLING_TRIATHLETE_2 \
+ FRONTIER_MON_DELCATTY_1, \
+ FRONTIER_MON_LICKITUNG_1, \
+ FRONTIER_MON_PORYGON_1, \
+ FRONTIER_MON_MACHOKE_1, \
+ FRONTIER_MON_TOGETIC_1, \
+ FRONTIER_MON_PLUSLE_1, \
+ FRONTIER_MON_MINUN_1, \
+ FRONTIER_MON_COMBUSKEN_1, \
+ FRONTIER_MON_RATICATE_1, \
+ FRONTIER_MON_FURRET_1, \
+ FRONTIER_MON_DUNSPARCE_1, \
+ FRONTIER_MON_LINOONE_1, \
+ FRONTIER_MON_CASTFORM_1, \
+ FRONTIER_MON_METANG_1, \
+ FRONTIER_MON_WIGGLYTUFF_1, \
+ FRONTIER_MON_SWELLOW_1, \
+ FRONTIER_MON_LAIRON_1, \
+ FRONTIER_MON_PERSIAN_1, \
+ FRONTIER_MON_KECLEON_1, \
+ FRONTIER_MON_VIGOROTH_1, \
+ FRONTIER_MON_NOCTOWL_1, \
+ FRONTIER_MON_CHANSEY_1, \
+ FRONTIER_MON_PRIMEAPE_1, \
+ FRONTIER_MON_HITMONLEE_1, \
+ FRONTIER_MON_HITMONCHAN_1, \
+ FRONTIER_MON_GIRAFARIG_1, \
+ FRONTIER_MON_HITMONTOP_1, \
+ FRONTIER_MON_ZANGOOSE_1, \
+ FRONTIER_MON_MAGNETON_1, \
+ FRONTIER_MON_STANTLER_1, \
+ FRONTIER_MON_PIDGEOT_1, \
+ -1
+
+#define FRONTIER_MONS_BLACK_BELT_BATTLE_GIRL_1 \
+ FRONTIER_MON_LICKITUNG_1, \
+ FRONTIER_MON_GRAVELER_1, \
+ FRONTIER_MON_CHARMELEON_1, \
+ FRONTIER_MON_MACHOKE_1, \
+ FRONTIER_MON_QUILAVA_1, \
+ FRONTIER_MON_COMBUSKEN_1, \
+ FRONTIER_MON_PONYTA_1, \
+ FRONTIER_MON_SUDOWOODO_1, \
+ FRONTIER_MON_MAGCARGO_1, \
+ FRONTIER_MON_PUPITAR_1, \
+ FRONTIER_MON_RATICATE_1, \
+ FRONTIER_MON_FURRET_1, \
+ FRONTIER_MON_DUNSPARCE_1, \
+ FRONTIER_MON_MIGHTYENA_1, \
+ FRONTIER_MON_LINOONE_1, \
+ FRONTIER_MON_SHELGON_1, \
+ FRONTIER_MON_METANG_1, \
+ FRONTIER_MON_WIGGLYTUFF_1, \
+ FRONTIER_MON_GLIGAR_1, \
+ FRONTIER_MON_LAIRON_1, \
+ FRONTIER_MON_PERSIAN_1, \
+ FRONTIER_MON_KECLEON_1, \
+ FRONTIER_MON_VIGOROTH_1, \
+ FRONTIER_MON_LUNATONE_1, \
+ FRONTIER_MON_SOLROCK_1, \
+ FRONTIER_MON_SANDSLASH_1, \
+ FRONTIER_MON_CHANSEY_1, \
+ FRONTIER_MON_PILOSWINE_1, \
+ FRONTIER_MON_PRIMEAPE_1, \
+ FRONTIER_MON_HITMONLEE_1, \
+ FRONTIER_MON_HITMONCHAN_1, \
+ FRONTIER_MON_GIRAFARIG_1, \
+ FRONTIER_MON_HITMONTOP_1, \
+ FRONTIER_MON_ZANGOOSE_1, \
+ FRONTIER_MON_CAMERUPT_1, \
+ FRONTIER_MON_STANTLER_1, \
+ FRONTIER_MON_ABSOL_1, \
+ FRONTIER_MON_TORKOAL_1, \
+ FRONTIER_MON_CACTURNE_1, \
+ FRONTIER_MON_POLIWRATH_1, \
+ -1
+
+#define FRONTIER_MONS_EXPERT_1A \
+ FRONTIER_MON_DELCATTY_1, \
+ FRONTIER_MON_SABLEYE_1, \
+ FRONTIER_MON_LICKITUNG_1, \
+ FRONTIER_MON_WEEPINBELL_1, \
+ FRONTIER_MON_GRAVELER_1, \
+ FRONTIER_MON_GLOOM_1, \
+ FRONTIER_MON_PORYGON_1, \
+ FRONTIER_MON_KADABRA_1, \
+ FRONTIER_MON_WAILMER_1, \
+ FRONTIER_MON_ROSELIA_1, \
+ FRONTIER_MON_VOLBEAT_1, \
+ FRONTIER_MON_ILLUMISE_1, \
+ FRONTIER_MON_IVYSAUR_1, \
+ FRONTIER_MON_CHARMELEON_1, \
+ FRONTIER_MON_WARTORTLE_1, \
+ FRONTIER_MON_PARASECT_1, \
+ FRONTIER_MON_MACHOKE_1, \
+ FRONTIER_MON_HAUNTER_1, \
+ FRONTIER_MON_BAYLEEF_1, \
+ FRONTIER_MON_QUILAVA_1, \
+ FRONTIER_MON_CROCONAW_1, \
+ FRONTIER_MON_TOGETIC_1, \
+ FRONTIER_MON_MURKROW_1, \
+ FRONTIER_MON_WOBBUFFET_1, \
+ FRONTIER_MON_PLUSLE_1, \
+ FRONTIER_MON_MINUN_1, \
+ FRONTIER_MON_GROVYLE_1, \
+ FRONTIER_MON_COMBUSKEN_1, \
+ FRONTIER_MON_MARSHTOMP_1, \
+ FRONTIER_MON_PONYTA_1, \
+ FRONTIER_MON_AZUMARILL_1, \
+ FRONTIER_MON_SUDOWOODO_1, \
+ FRONTIER_MON_MAGCARGO_1, \
+ FRONTIER_MON_PUPITAR_1, \
+ FRONTIER_MON_SEALEO_1, \
+ FRONTIER_MON_RATICATE_1, \
+ FRONTIER_MON_MASQUERAIN_1, \
+ FRONTIER_MON_FURRET_1, \
+ -1
+
+#define FRONTIER_MONS_EXPERT_1B \
+ FRONTIER_MON_DUNSPARCE_1, \
+ FRONTIER_MON_DRAGONAIR_1, \
+ FRONTIER_MON_MIGHTYENA_1, \
+ FRONTIER_MON_LINOONE_1, \
+ FRONTIER_MON_CASTFORM_1, \
+ FRONTIER_MON_SHELGON_1, \
+ FRONTIER_MON_METANG_1, \
+ FRONTIER_MON_WIGGLYTUFF_1, \
+ FRONTIER_MON_SUNFLORA_1, \
+ FRONTIER_MON_CHIMECHO_1, \
+ FRONTIER_MON_GLIGAR_1, \
+ FRONTIER_MON_QWILFISH_1, \
+ FRONTIER_MON_SNEASEL_1, \
+ FRONTIER_MON_PELIPPER_1, \
+ FRONTIER_MON_SWELLOW_1, \
+ FRONTIER_MON_LAIRON_1, \
+ FRONTIER_MON_TANGELA_1, \
+ FRONTIER_MON_ARBOK_1, \
+ FRONTIER_MON_PERSIAN_1, \
+ FRONTIER_MON_SEADRA_1, \
+ FRONTIER_MON_KECLEON_1, \
+ FRONTIER_MON_VIGOROTH_1, \
+ FRONTIER_MON_LUNATONE_1, \
+ FRONTIER_MON_SOLROCK_1, \
+ FRONTIER_MON_NOCTOWL_1, \
+ FRONTIER_MON_SANDSLASH_1, \
+ FRONTIER_MON_VENOMOTH_1, \
+ FRONTIER_MON_CHANSEY_1, \
+ FRONTIER_MON_SEAKING_1, \
+ FRONTIER_MON_JUMPLUFF_1, \
+ FRONTIER_MON_PILOSWINE_1, \
+ FRONTIER_MON_GOLBAT_1, \
+ FRONTIER_MON_PRIMEAPE_1, \
+ FRONTIER_MON_HITMONLEE_1, \
+ FRONTIER_MON_HITMONCHAN_1, \
+ FRONTIER_MON_GIRAFARIG_1, \
+ FRONTIER_MON_HITMONTOP_1, \
+ -1
+
+#define FRONTIER_MONS_EXPERT_1C \
+ FRONTIER_MON_BANETTE_1, \
+ FRONTIER_MON_NINJASK_1, \
+ FRONTIER_MON_SEVIPER_1, \
+ FRONTIER_MON_ZANGOOSE_1, \
+ FRONTIER_MON_CAMERUPT_1, \
+ FRONTIER_MON_SHARPEDO_1, \
+ FRONTIER_MON_TROPIUS_1, \
+ FRONTIER_MON_MAGNETON_1, \
+ FRONTIER_MON_MANTINE_1, \
+ FRONTIER_MON_STANTLER_1, \
+ FRONTIER_MON_ABSOL_1, \
+ FRONTIER_MON_SWALOT_1, \
+ FRONTIER_MON_CRAWDAUNT_1, \
+ FRONTIER_MON_PIDGEOT_1, \
+ FRONTIER_MON_GRUMPIG_1, \
+ FRONTIER_MON_TORKOAL_1, \
+ FRONTIER_MON_KINGLER_1, \
+ FRONTIER_MON_CACTURNE_1, \
+ FRONTIER_MON_BELLOSSOM_1, \
+ FRONTIER_MON_OCTILLERY_1, \
+ FRONTIER_MON_HUNTAIL_1, \
+ FRONTIER_MON_GOREBYSS_1, \
+ FRONTIER_MON_RELICANTH_1, \
+ FRONTIER_MON_OMASTAR_1, \
+ FRONTIER_MON_KABUTOPS_1, \
+ FRONTIER_MON_POLIWRATH_1, \
+ FRONTIER_MON_SCYTHER_1, \
+ FRONTIER_MON_PINSIR_1, \
+ FRONTIER_MON_POLITOED_1, \
+ FRONTIER_MON_CLOYSTER_1, \
+ -1
+
+#define FRONTIER_MONS_PSYCHIC_1 \
+ FRONTIER_MON_DELCATTY_2, \
+ FRONTIER_MON_SABLEYE_2, \
+ FRONTIER_MON_PORYGON_2, \
+ FRONTIER_MON_KADABRA_2, \
+ FRONTIER_MON_ROSELIA_2, \
+ FRONTIER_MON_HAUNTER_2, \
+ FRONTIER_MON_MURKROW_2, \
+ FRONTIER_MON_WOBBUFFET_2, \
+ FRONTIER_MON_PLUSLE_2, \
+ FRONTIER_MON_MINUN_2, \
+ FRONTIER_MON_MIGHTYENA_2, \
+ FRONTIER_MON_LINOONE_2, \
+ FRONTIER_MON_METANG_2, \
+ FRONTIER_MON_WIGGLYTUFF_2, \
+ FRONTIER_MON_CHIMECHO_2, \
+ FRONTIER_MON_SNEASEL_2, \
+ FRONTIER_MON_KECLEON_2, \
+ FRONTIER_MON_LUNATONE_2, \
+ FRONTIER_MON_SOLROCK_2, \
+ FRONTIER_MON_NOCTOWL_2, \
+ FRONTIER_MON_VENOMOTH_2, \
+ FRONTIER_MON_CHANSEY_2, \
+ FRONTIER_MON_GIRAFARIG_2, \
+ FRONTIER_MON_BANETTE_2, \
+ FRONTIER_MON_SHARPEDO_2, \
+ FRONTIER_MON_MAGNETON_2, \
+ FRONTIER_MON_STANTLER_2, \
+ FRONTIER_MON_ABSOL_2, \
+ FRONTIER_MON_CRAWDAUNT_2, \
+ FRONTIER_MON_GRUMPIG_2, \
+ FRONTIER_MON_CACTURNE_2, \
+ FRONTIER_MON_GOREBYSS_2, \
+ FRONTIER_MON_POLITOED_2, \
+ -1
+
+#define FRONTIER_MONS_HEX_MANIAC_1 \
+ FRONTIER_MON_SABLEYE_2, \
+ FRONTIER_MON_WEEPINBELL_2, \
+ FRONTIER_MON_GLOOM_2, \
+ FRONTIER_MON_KADABRA_2, \
+ FRONTIER_MON_PARASECT_2, \
+ FRONTIER_MON_HAUNTER_2, \
+ FRONTIER_MON_MURKROW_2, \
+ FRONTIER_MON_WOBBUFFET_2, \
+ FRONTIER_MON_MASQUERAIN_2, \
+ FRONTIER_MON_MIGHTYENA_2, \
+ FRONTIER_MON_METANG_2, \
+ FRONTIER_MON_CHIMECHO_2, \
+ FRONTIER_MON_SNEASEL_2, \
+ FRONTIER_MON_ARBOK_2, \
+ FRONTIER_MON_LUNATONE_2, \
+ FRONTIER_MON_SOLROCK_2, \
+ FRONTIER_MON_VENOMOTH_2, \
+ FRONTIER_MON_GOLBAT_2, \
+ FRONTIER_MON_GIRAFARIG_2, \
+ FRONTIER_MON_BANETTE_2, \
+ FRONTIER_MON_SEVIPER_2, \
+ FRONTIER_MON_SHARPEDO_2, \
+ FRONTIER_MON_ABSOL_2, \
+ FRONTIER_MON_SWALOT_2, \
+ FRONTIER_MON_CRAWDAUNT_2, \
+ FRONTIER_MON_GRUMPIG_2, \
+ FRONTIER_MON_CACTURNE_2, \
+ -1
+
+#define FRONTIER_MONS_POKEMANIAC_1 \
+ FRONTIER_MON_LICKITUNG_2, \
+ FRONTIER_MON_GRAVELER_2, \
+ FRONTIER_MON_WAILMER_2, \
+ FRONTIER_MON_IVYSAUR_2, \
+ FRONTIER_MON_CHARMELEON_2, \
+ FRONTIER_MON_WARTORTLE_2, \
+ FRONTIER_MON_MACHOKE_2, \
+ FRONTIER_MON_BAYLEEF_2, \
+ FRONTIER_MON_QUILAVA_2, \
+ FRONTIER_MON_CROCONAW_2, \
+ FRONTIER_MON_GROVYLE_2, \
+ FRONTIER_MON_COMBUSKEN_2, \
+ FRONTIER_MON_MARSHTOMP_2, \
+ FRONTIER_MON_PUPITAR_2, \
+ FRONTIER_MON_RATICATE_2, \
+ FRONTIER_MON_MIGHTYENA_2, \
+ FRONTIER_MON_SHELGON_2, \
+ FRONTIER_MON_METANG_2, \
+ FRONTIER_MON_LAIRON_2, \
+ FRONTIER_MON_ARBOK_2, \
+ FRONTIER_MON_VIGOROTH_2, \
+ FRONTIER_MON_SANDSLASH_2, \
+ FRONTIER_MON_CHANSEY_2, \
+ FRONTIER_MON_PILOSWINE_2, \
+ FRONTIER_MON_SEVIPER_2, \
+ FRONTIER_MON_ZANGOOSE_2, \
+ FRONTIER_MON_CAMERUPT_2, \
+ FRONTIER_MON_TROPIUS_2, \
+ FRONTIER_MON_MANTINE_2, \
+ FRONTIER_MON_SWALOT_2, \
+ FRONTIER_MON_TORKOAL_2, \
+ -1
+
+#define FRONTIER_MONS_GENTLEMAN_1A \
+ FRONTIER_MON_DELCATTY_2, \
+ FRONTIER_MON_SABLEYE_2, \
+ FRONTIER_MON_LICKITUNG_2, \
+ FRONTIER_MON_WEEPINBELL_2, \
+ FRONTIER_MON_GRAVELER_2, \
+ FRONTIER_MON_GLOOM_2, \
+ FRONTIER_MON_PORYGON_2, \
+ FRONTIER_MON_KADABRA_2, \
+ FRONTIER_MON_WAILMER_2, \
+ FRONTIER_MON_ROSELIA_2, \
+ FRONTIER_MON_VOLBEAT_2, \
+ FRONTIER_MON_ILLUMISE_2, \
+ FRONTIER_MON_IVYSAUR_2, \
+ FRONTIER_MON_CHARMELEON_2, \
+ FRONTIER_MON_WARTORTLE_2, \
+ FRONTIER_MON_PARASECT_2, \
+ FRONTIER_MON_MACHOKE_2, \
+ FRONTIER_MON_HAUNTER_2, \
+ FRONTIER_MON_BAYLEEF_2, \
+ FRONTIER_MON_QUILAVA_2, \
+ FRONTIER_MON_CROCONAW_2, \
+ FRONTIER_MON_TOGETIC_2, \
+ FRONTIER_MON_MURKROW_2, \
+ FRONTIER_MON_WOBBUFFET_2, \
+ FRONTIER_MON_PLUSLE_2, \
+ FRONTIER_MON_MINUN_2, \
+ FRONTIER_MON_GROVYLE_2, \
+ FRONTIER_MON_COMBUSKEN_2, \
+ FRONTIER_MON_MARSHTOMP_2, \
+ FRONTIER_MON_PONYTA_2, \
+ FRONTIER_MON_AZUMARILL_2, \
+ FRONTIER_MON_SUDOWOODO_2, \
+ FRONTIER_MON_MAGCARGO_2, \
+ FRONTIER_MON_PUPITAR_2, \
+ FRONTIER_MON_SEALEO_2, \
+ FRONTIER_MON_RATICATE_2, \
+ FRONTIER_MON_MASQUERAIN_2, \
+ FRONTIER_MON_FURRET_2, \
+ -1
+
+#define FRONTIER_MONS_GENTLEMAN_1B \
+ FRONTIER_MON_DUNSPARCE_2, \
+ FRONTIER_MON_DRAGONAIR_2, \
+ FRONTIER_MON_MIGHTYENA_2, \
+ FRONTIER_MON_LINOONE_2, \
+ FRONTIER_MON_CASTFORM_2, \
+ FRONTIER_MON_SHELGON_2, \
+ FRONTIER_MON_METANG_2, \
+ FRONTIER_MON_WIGGLYTUFF_2, \
+ FRONTIER_MON_SUNFLORA_2, \
+ FRONTIER_MON_CHIMECHO_2, \
+ FRONTIER_MON_GLIGAR_2, \
+ FRONTIER_MON_QWILFISH_2, \
+ FRONTIER_MON_SNEASEL_2, \
+ FRONTIER_MON_PELIPPER_2, \
+ FRONTIER_MON_SWELLOW_2, \
+ FRONTIER_MON_LAIRON_2, \
+ FRONTIER_MON_TANGELA_2, \
+ FRONTIER_MON_ARBOK_2, \
+ FRONTIER_MON_PERSIAN_2, \
+ FRONTIER_MON_SEADRA_2, \
+ FRONTIER_MON_KECLEON_2, \
+ FRONTIER_MON_VIGOROTH_2, \
+ FRONTIER_MON_LUNATONE_2, \
+ FRONTIER_MON_SOLROCK_2, \
+ FRONTIER_MON_NOCTOWL_2, \
+ FRONTIER_MON_SANDSLASH_2, \
+ FRONTIER_MON_VENOMOTH_2, \
+ FRONTIER_MON_CHANSEY_2, \
+ FRONTIER_MON_SEAKING_2, \
+ FRONTIER_MON_JUMPLUFF_2, \
+ FRONTIER_MON_PILOSWINE_2, \
+ FRONTIER_MON_GOLBAT_2, \
+ FRONTIER_MON_PRIMEAPE_2, \
+ FRONTIER_MON_HITMONLEE_2, \
+ FRONTIER_MON_HITMONCHAN_2, \
+ FRONTIER_MON_GIRAFARIG_2, \
+ FRONTIER_MON_HITMONTOP_2, \
+ -1
+
+#define FRONTIER_MONS_BUG_MANIAC_2 \
+ FRONTIER_MON_LEDIAN, \
+ FRONTIER_MON_ARIADOS, \
+ FRONTIER_MON_YANMA, \
+ FRONTIER_MON_VOLBEAT_1, \
+ FRONTIER_MON_ILLUMISE_1, \
+ FRONTIER_MON_PARASECT_1, \
+ FRONTIER_MON_MASQUERAIN_1, \
+ FRONTIER_MON_VENOMOTH_1, \
+ FRONTIER_MON_NINJASK_1, \
+ FRONTIER_MON_SCYTHER_1, \
+ FRONTIER_MON_PINSIR_1, \
+ FRONTIER_MON_VOLBEAT_2, \
+ FRONTIER_MON_ILLUMISE_2, \
+ FRONTIER_MON_PARASECT_2, \
+ FRONTIER_MON_MASQUERAIN_2, \
+ FRONTIER_MON_VENOMOTH_2, \
+ FRONTIER_MON_NINJASK_2, \
+ FRONTIER_MON_SCYTHER_2, \
+ FRONTIER_MON_PINSIR_2, \
+ -1
+
+#define FRONTIER_MONS_RUIN_MANIAC_2 \
+ FRONTIER_MON_GRAVELER_2, \
+ FRONTIER_MON_MACHOKE_2, \
+ FRONTIER_MON_COMBUSKEN_2, \
+ FRONTIER_MON_MARSHTOMP_2, \
+ FRONTIER_MON_SUDOWOODO_2, \
+ FRONTIER_MON_MAGCARGO_2, \
+ FRONTIER_MON_PUPITAR_2, \
+ FRONTIER_MON_METANG_2, \
+ FRONTIER_MON_GLIGAR_2, \
+ FRONTIER_MON_LAIRON_2, \
+ FRONTIER_MON_LUNATONE_2, \
+ FRONTIER_MON_SOLROCK_2, \
+ FRONTIER_MON_SANDSLASH_2, \
+ FRONTIER_MON_PILOSWINE_2, \
+ FRONTIER_MON_PRIMEAPE_2, \
+ FRONTIER_MON_HITMONLEE_2, \
+ FRONTIER_MON_HITMONCHAN_2, \
+ FRONTIER_MON_HITMONTOP_2, \
+ FRONTIER_MON_CAMERUPT_2, \
+ FRONTIER_MON_RELICANTH_2, \
+ FRONTIER_MON_OMASTAR_2, \
+ FRONTIER_MON_KABUTOPS_2, \
+ -1
+
+#define FRONTIER_MONS_COLLECTOR_1 \
+ FRONTIER_MON_BANETTE_2, \
+ FRONTIER_MON_NINJASK_2, \
+ FRONTIER_MON_SEVIPER_2, \
+ FRONTIER_MON_ZANGOOSE_2, \
+ FRONTIER_MON_CAMERUPT_2, \
+ FRONTIER_MON_SHARPEDO_2, \
+ FRONTIER_MON_TROPIUS_2, \
+ FRONTIER_MON_MAGNETON_2, \
+ FRONTIER_MON_MANTINE_2, \
+ FRONTIER_MON_STANTLER_2, \
+ FRONTIER_MON_ABSOL_2, \
+ FRONTIER_MON_SWALOT_2, \
+ FRONTIER_MON_CRAWDAUNT_2, \
+ FRONTIER_MON_PIDGEOT_2, \
+ FRONTIER_MON_GRUMPIG_2, \
+ FRONTIER_MON_TORKOAL_2, \
+ FRONTIER_MON_KINGLER_2, \
+ FRONTIER_MON_CACTURNE_2, \
+ FRONTIER_MON_BELLOSSOM_2, \
+ FRONTIER_MON_OCTILLERY_2, \
+ FRONTIER_MON_HUNTAIL_2, \
+ FRONTIER_MON_GOREBYSS_2, \
+ FRONTIER_MON_RELICANTH_2, \
+ FRONTIER_MON_OMASTAR_2, \
+ FRONTIER_MON_KABUTOPS_2, \
+ FRONTIER_MON_POLIWRATH_2, \
+ FRONTIER_MON_SCYTHER_2, \
+ FRONTIER_MON_PINSIR_2, \
+ FRONTIER_MON_POLITOED_2, \
+ FRONTIER_MON_CLOYSTER_2, \
+ -1
+
+#define FRONTIER_MONS_PARASOL_LADY_2 \
+ FRONTIER_MON_GLOOM_2, \
+ FRONTIER_MON_SEALEO_2, \
+ FRONTIER_MON_CASTFORM_2, \
+ FRONTIER_MON_SANDSLASH_2, \
+ FRONTIER_MON_TROPIUS_2, \
+ FRONTIER_MON_MAGNETON_2, \
+ FRONTIER_MON_MANTINE_2, \
+ FRONTIER_MON_CACTURNE_2, \
+ FRONTIER_MON_BELLOSSOM_2, \
+ FRONTIER_MON_HUNTAIL_2, \
+ FRONTIER_MON_GOREBYSS_2, \
+ FRONTIER_MON_OMASTAR_2, \
+ -1
+
+#define FRONTIER_MONS_BEAUTY_1 \
+ FRONTIER_MON_DELCATTY_2, \
+ FRONTIER_MON_LICKITUNG_2, \
+ FRONTIER_MON_WEEPINBELL_2, \
+ FRONTIER_MON_GLOOM_2, \
+ FRONTIER_MON_PORYGON_2, \
+ FRONTIER_MON_ROSELIA_2, \
+ FRONTIER_MON_IVYSAUR_2, \
+ FRONTIER_MON_HAUNTER_2, \
+ FRONTIER_MON_TOGETIC_2, \
+ FRONTIER_MON_RATICATE_2, \
+ FRONTIER_MON_FURRET_2, \
+ FRONTIER_MON_DUNSPARCE_2, \
+ FRONTIER_MON_LINOONE_2, \
+ FRONTIER_MON_CASTFORM_2, \
+ FRONTIER_MON_WIGGLYTUFF_2, \
+ FRONTIER_MON_QWILFISH_2, \
+ FRONTIER_MON_SWELLOW_2, \
+ FRONTIER_MON_ARBOK_2, \
+ FRONTIER_MON_PERSIAN_2, \
+ FRONTIER_MON_KECLEON_2, \
+ FRONTIER_MON_VIGOROTH_2, \
+ FRONTIER_MON_NOCTOWL_2, \
+ FRONTIER_MON_VENOMOTH_2, \
+ FRONTIER_MON_CHANSEY_2, \
+ FRONTIER_MON_GOLBAT_2, \
+ FRONTIER_MON_GIRAFARIG_2, \
+ FRONTIER_MON_SEVIPER_2, \
+ FRONTIER_MON_ZANGOOSE_2, \
+ FRONTIER_MON_STANTLER_2, \
+ FRONTIER_MON_SWALOT_2, \
+ FRONTIER_MON_PIDGEOT_2, \
+ -1
+
+#define FRONTIER_MONS_AROMA_LADY_2 \
+ FRONTIER_MON_WEEPINBELL_2, \
+ FRONTIER_MON_GLOOM_2, \
+ FRONTIER_MON_KADABRA_2, \
+ FRONTIER_MON_ROSELIA_2, \
+ FRONTIER_MON_IVYSAUR_2, \
+ FRONTIER_MON_PARASECT_2, \
+ FRONTIER_MON_BAYLEEF_2, \
+ FRONTIER_MON_WOBBUFFET_2, \
+ FRONTIER_MON_GROVYLE_2, \
+ FRONTIER_MON_SUNFLORA_2, \
+ FRONTIER_MON_CHIMECHO_2, \
+ FRONTIER_MON_TANGELA_2, \
+ FRONTIER_MON_JUMPLUFF_2, \
+ FRONTIER_MON_GIRAFARIG_2, \
+ FRONTIER_MON_TROPIUS_2, \
+ FRONTIER_MON_GRUMPIG_2, \
+ FRONTIER_MON_CACTURNE_2, \
+ FRONTIER_MON_BELLOSSOM_2, \
+ -1
+
+#define FRONTIER_MONS_COOLTRAINER_1A \
+ FRONTIER_MON_DUGTRIO_1, \
+ FRONTIER_MON_MEDICHAM_1, \
+ FRONTIER_MON_MISDREAVUS_1, \
+ FRONTIER_MON_FEAROW_1, \
+ FRONTIER_MON_GRANBULL_1, \
+ FRONTIER_MON_JYNX_1, \
+ FRONTIER_MON_DUSCLOPS_1, \
+ FRONTIER_MON_DODRIO_1, \
+ FRONTIER_MON_MR_MIME_1, \
+ FRONTIER_MON_LANTURN_1, \
+ FRONTIER_MON_BRELOOM_1, \
+ FRONTIER_MON_FORRETRESS_1, \
+ FRONTIER_MON_WHISCASH_1, \
+ FRONTIER_MON_XATU_1, \
+ FRONTIER_MON_SKARMORY_1, \
+ FRONTIER_MON_MAROWAK_1, \
+ FRONTIER_MON_QUAGSIRE_1, \
+ FRONTIER_MON_CLEFABLE_1, \
+ FRONTIER_MON_HARIYAMA_1, \
+ FRONTIER_MON_RAICHU_1, \
+ FRONTIER_MON_DEWGONG_1, \
+ FRONTIER_MON_MANECTRIC_1, \
+ FRONTIER_MON_VILEPLUME_1, \
+ FRONTIER_MON_VICTREEBEL_1, \
+ FRONTIER_MON_ELECTRODE_1, \
+ FRONTIER_MON_EXPLOUD_1, \
+ FRONTIER_MON_SHIFTRY_1, \
+ FRONTIER_MON_GLALIE_1, \
+ FRONTIER_MON_LUDICOLO_1, \
+ FRONTIER_MON_HYPNO_1, \
+ FRONTIER_MON_GOLEM_1, \
+ FRONTIER_MON_RHYDON_1, \
+ FRONTIER_MON_ALAKAZAM_1, \
+ -1
+
+#define FRONTIER_MONS_COOLTRAINER_1B \
+ FRONTIER_MON_WEEZING_1, \
+ FRONTIER_MON_KANGASKHAN_1, \
+ FRONTIER_MON_ELECTABUZZ_1, \
+ FRONTIER_MON_TAUROS_1, \
+ FRONTIER_MON_SLOWBRO_1, \
+ FRONTIER_MON_SLOWKING_1, \
+ FRONTIER_MON_MILTANK_1, \
+ FRONTIER_MON_ALTARIA_1, \
+ FRONTIER_MON_NIDOQUEEN_1, \
+ FRONTIER_MON_NIDOKING_1, \
+ FRONTIER_MON_MAGMAR_1, \
+ FRONTIER_MON_CRADILY_1, \
+ FRONTIER_MON_ARMALDO_1, \
+ FRONTIER_MON_GOLDUCK_1, \
+ FRONTIER_MON_RAPIDASH_1, \
+ FRONTIER_MON_MUK_1, \
+ FRONTIER_MON_GENGAR_1, \
+ FRONTIER_MON_AMPHAROS_1, \
+ FRONTIER_MON_SCIZOR_1, \
+ FRONTIER_MON_HERACROSS_1, \
+ FRONTIER_MON_URSARING_1, \
+ FRONTIER_MON_HOUNDOOM_1, \
+ FRONTIER_MON_DONPHAN_1, \
+ FRONTIER_MON_CLAYDOL_1, \
+ FRONTIER_MON_WAILORD_1, \
+ FRONTIER_MON_NINETALES_1, \
+ FRONTIER_MON_MACHAMP_1, \
+ FRONTIER_MON_SHUCKLE_1, \
+ FRONTIER_MON_STEELIX_1, \
+ FRONTIER_MON_TENTACRUEL_1, \
+ FRONTIER_MON_AERODACTYL_1, \
+ FRONTIER_MON_PORYGON2_1, \
+ FRONTIER_MON_GARDEVOIR_1, \
+ -1
+
+#define FRONTIER_MONS_COOLTRAINER_1C \
+ FRONTIER_MON_EXEGGUTOR_1, \
+ FRONTIER_MON_STARMIE_1, \
+ FRONTIER_MON_FLYGON_1, \
+ FRONTIER_MON_VENUSAUR_1, \
+ FRONTIER_MON_VAPOREON_1, \
+ FRONTIER_MON_JOLTEON_1, \
+ FRONTIER_MON_FLAREON_1, \
+ FRONTIER_MON_MEGANIUM_1, \
+ FRONTIER_MON_ESPEON_1, \
+ FRONTIER_MON_UMBREON_1, \
+ FRONTIER_MON_BLASTOISE_1, \
+ FRONTIER_MON_FERALIGATR_1, \
+ FRONTIER_MON_AGGRON_1, \
+ FRONTIER_MON_BLAZIKEN_1, \
+ FRONTIER_MON_WALREIN_1, \
+ FRONTIER_MON_SCEPTILE_1, \
+ FRONTIER_MON_CHARIZARD_1, \
+ FRONTIER_MON_TYPHLOSION_1, \
+ FRONTIER_MON_LAPRAS_1, \
+ FRONTIER_MON_CROBAT_1, \
+ FRONTIER_MON_SWAMPERT_1, \
+ FRONTIER_MON_GYARADOS_1, \
+ FRONTIER_MON_SNORLAX_1, \
+ FRONTIER_MON_KINGDRA_1, \
+ FRONTIER_MON_BLISSEY_1, \
+ FRONTIER_MON_MILOTIC_1, \
+ FRONTIER_MON_ARCANINE_1, \
+ FRONTIER_MON_SALAMENCE_1, \
+ FRONTIER_MON_METAGROSS_1, \
+ FRONTIER_MON_SLAKING_1, \
+ -1
+
+#define FRONTIER_MONS_PKMN_RANGER_1 \
+ FRONTIER_MON_NINJASK_1, \
+ FRONTIER_MON_VENOMOTH_2, \
+ FRONTIER_MON_NINJASK_2, \
+ FRONTIER_MON_SCYTHER_2, \
+ FRONTIER_MON_PINSIR_2, \
+ FRONTIER_MON_FEAROW_1, \
+ FRONTIER_MON_GRANBULL_1, \
+ FRONTIER_MON_DODRIO_1, \
+ FRONTIER_MON_BRELOOM_1, \
+ FRONTIER_MON_FORRETRESS_1, \
+ FRONTIER_MON_CLEFABLE_1, \
+ FRONTIER_MON_VILEPLUME_1, \
+ FRONTIER_MON_VICTREEBEL_1, \
+ FRONTIER_MON_EXPLOUD_1, \
+ FRONTIER_MON_SHIFTRY_1, \
+ FRONTIER_MON_LUDICOLO_1, \
+ FRONTIER_MON_KANGASKHAN_1, \
+ FRONTIER_MON_TAUROS_1, \
+ FRONTIER_MON_MILTANK_1, \
+ FRONTIER_MON_CRADILY_1, \
+ FRONTIER_MON_ARMALDO_1, \
+ FRONTIER_MON_SCIZOR_1, \
+ FRONTIER_MON_HERACROSS_1, \
+ FRONTIER_MON_URSARING_1, \
+ FRONTIER_MON_SHUCKLE_1, \
+ FRONTIER_MON_PORYGON2_1, \
+ FRONTIER_MON_EXEGGUTOR_1, \
+ FRONTIER_MON_VENUSAUR_1, \
+ FRONTIER_MON_MEGANIUM_1, \
+ FRONTIER_MON_SCEPTILE_1, \
+ FRONTIER_MON_SNORLAX_1, \
+ FRONTIER_MON_BLISSEY_1, \
+ FRONTIER_MON_SLAKING_1, \
+ -1
+
+#define FRONTIER_MONS_DRAGON_TAMER_1 \
+ FRONTIER_MON_SKARMORY_1, \
+ FRONTIER_MON_RHYDON_1, \
+ FRONTIER_MON_ALTARIA_1, \
+ FRONTIER_MON_NIDOQUEEN_1, \
+ FRONTIER_MON_NIDOKING_1, \
+ FRONTIER_MON_STEELIX_1, \
+ FRONTIER_MON_AERODACTYL_1, \
+ FRONTIER_MON_FLYGON_1, \
+ FRONTIER_MON_AGGRON_1, \
+ FRONTIER_MON_SCEPTILE_1, \
+ FRONTIER_MON_CHARIZARD_1, \
+ FRONTIER_MON_LAPRAS_1, \
+ FRONTIER_MON_GYARADOS_1, \
+ FRONTIER_MON_KINGDRA_1, \
+ FRONTIER_MON_MILOTIC_1, \
+ FRONTIER_MON_ARCANINE_1, \
+ FRONTIER_MON_SALAMENCE_1, \
+ -1
+
+#define FRONTIER_MONS_POKEFAN_2 \
+ FRONTIER_MON_MISDREAVUS_1, \
+ FRONTIER_MON_LANTURN_1, \
+ FRONTIER_MON_BRELOOM_1, \
+ FRONTIER_MON_XATU_1, \
+ FRONTIER_MON_QUAGSIRE_1, \
+ FRONTIER_MON_CLEFABLE_1, \
+ FRONTIER_MON_RAICHU_1, \
+ FRONTIER_MON_DEWGONG_1, \
+ FRONTIER_MON_VILEPLUME_1, \
+ FRONTIER_MON_SLOWBRO_1, \
+ FRONTIER_MON_MILTANK_1, \
+ FRONTIER_MON_ALTARIA_1, \
+ FRONTIER_MON_RAPIDASH_1, \
+ FRONTIER_MON_NINETALES_1, \
+ FRONTIER_MON_SHUCKLE_1, \
+ FRONTIER_MON_PORYGON2_1, \
+ FRONTIER_MON_FLYGON_1, \
+ FRONTIER_MON_LAPRAS_1, \
+ FRONTIER_MON_SNORLAX_1, \
+ FRONTIER_MON_BLISSEY_1, \
+ FRONTIER_MON_MILOTIC_1, \
+ FRONTIER_MON_SLAKING_1, \
+ -1
+
+#define FRONTIER_MONS_PKMN_BREEDER_M_1 \
+ FRONTIER_MON_MUK_1, \
+ FRONTIER_MON_GENGAR_1, \
+ FRONTIER_MON_AMPHAROS_1, \
+ FRONTIER_MON_SCIZOR_1, \
+ FRONTIER_MON_HERACROSS_1, \
+ FRONTIER_MON_URSARING_1, \
+ FRONTIER_MON_HOUNDOOM_1, \
+ FRONTIER_MON_DONPHAN_1, \
+ FRONTIER_MON_CLAYDOL_1, \
+ FRONTIER_MON_WAILORD_1, \
+ FRONTIER_MON_NINETALES_1, \
+ FRONTIER_MON_MACHAMP_1, \
+ FRONTIER_MON_SHUCKLE_1, \
+ FRONTIER_MON_STEELIX_1, \
+ FRONTIER_MON_TENTACRUEL_1, \
+ FRONTIER_MON_AERODACTYL_1, \
+ FRONTIER_MON_PORYGON2_1, \
+ FRONTIER_MON_GARDEVOIR_1, \
+ FRONTIER_MON_EXEGGUTOR_1, \
+ FRONTIER_MON_STARMIE_1, \
+ FRONTIER_MON_FLYGON_1, \
+ FRONTIER_MON_VENUSAUR_1, \
+ FRONTIER_MON_VAPOREON_1, \
+ FRONTIER_MON_JOLTEON_1, \
+ FRONTIER_MON_FLAREON_1, \
+ FRONTIER_MON_MEGANIUM_1, \
+ FRONTIER_MON_ESPEON_1, \
+ FRONTIER_MON_UMBREON_1, \
+ FRONTIER_MON_BLASTOISE_1, \
+ FRONTIER_MON_FERALIGATR_1, \
+ FRONTIER_MON_AGGRON_1, \
+ FRONTIER_MON_BLAZIKEN_1, \
+ FRONTIER_MON_WALREIN_1, \
+ FRONTIER_MON_SCEPTILE_1, \
+ FRONTIER_MON_CHARIZARD_1, \
+ FRONTIER_MON_TYPHLOSION_1, \
+ FRONTIER_MON_LAPRAS_1, \
+ FRONTIER_MON_CROBAT_1, \
+ FRONTIER_MON_SWAMPERT_1, \
+ FRONTIER_MON_GYARADOS_1, \
+ FRONTIER_MON_SNORLAX_1, \
+ FRONTIER_MON_KINGDRA_1, \
+ FRONTIER_MON_BLISSEY_1, \
+ FRONTIER_MON_MILOTIC_1, \
+ FRONTIER_MON_ARCANINE_1, \
+ FRONTIER_MON_SALAMENCE_1, \
+ FRONTIER_MON_METAGROSS_1, \
+ FRONTIER_MON_SLAKING_1, \
+ -1
+
+#define FRONTIER_MONS_PKMN_BREEDER_F_1 \
+ FRONTIER_MON_DUGTRIO_1, \
+ FRONTIER_MON_MEDICHAM_1, \
+ FRONTIER_MON_MISDREAVUS_1, \
+ FRONTIER_MON_FEAROW_1, \
+ FRONTIER_MON_GRANBULL_1, \
+ FRONTIER_MON_JYNX_1, \
+ FRONTIER_MON_DUSCLOPS_1, \
+ FRONTIER_MON_DODRIO_1, \
+ FRONTIER_MON_MR_MIME_1, \
+ FRONTIER_MON_LANTURN_1, \
+ FRONTIER_MON_BRELOOM_1, \
+ FRONTIER_MON_FORRETRESS_1, \
+ FRONTIER_MON_WHISCASH_1, \
+ FRONTIER_MON_XATU_1, \
+ FRONTIER_MON_SKARMORY_1, \
+ FRONTIER_MON_MAROWAK_1, \
+ FRONTIER_MON_QUAGSIRE_1, \
+ FRONTIER_MON_CLEFABLE_1, \
+ FRONTIER_MON_HARIYAMA_1, \
+ FRONTIER_MON_RAICHU_1, \
+ FRONTIER_MON_DEWGONG_1, \
+ FRONTIER_MON_MANECTRIC_1, \
+ FRONTIER_MON_VILEPLUME_1, \
+ FRONTIER_MON_VICTREEBEL_1, \
+ FRONTIER_MON_ELECTRODE_1, \
+ FRONTIER_MON_EXPLOUD_1, \
+ FRONTIER_MON_SHIFTRY_1, \
+ FRONTIER_MON_GLALIE_1, \
+ FRONTIER_MON_LUDICOLO_1, \
+ FRONTIER_MON_HYPNO_1, \
+ FRONTIER_MON_GOLEM_1, \
+ FRONTIER_MON_RHYDON_1, \
+ FRONTIER_MON_ALAKAZAM_1, \
+ FRONTIER_MON_WEEZING_1, \
+ FRONTIER_MON_KANGASKHAN_1, \
+ FRONTIER_MON_ELECTABUZZ_1, \
+ FRONTIER_MON_TAUROS_1, \
+ FRONTIER_MON_SLOWBRO_1, \
+ FRONTIER_MON_SLOWKING_1, \
+ FRONTIER_MON_MILTANK_1, \
+ FRONTIER_MON_ALTARIA_1, \
+ FRONTIER_MON_NIDOQUEEN_1, \
+ FRONTIER_MON_NIDOKING_1, \
+ FRONTIER_MON_MAGMAR_1, \
+ FRONTIER_MON_CRADILY_1, \
+ FRONTIER_MON_ARMALDO_1, \
+ FRONTIER_MON_GOLDUCK_1, \
+ FRONTIER_MON_RAPIDASH_1, \
+ -1
+
+// Odd, all the other Youngster/Lass trainers of this group have Dugtrio, but one does not
+#define FRONTIER_MONS_YOUNGSTER_LASS_2_NO_DUGTRIO \
+ FRONTIER_MON_MEDICHAM_2, \
+ FRONTIER_MON_MAROWAK_2, \
+ FRONTIER_MON_QUAGSIRE_2, \
+ FRONTIER_MON_MISDREAVUS_2, \
+ FRONTIER_MON_FEAROW_2, \
+ FRONTIER_MON_GRANBULL_2, \
+ FRONTIER_MON_JYNX_2, \
+ FRONTIER_MON_DUSCLOPS_2, \
+ FRONTIER_MON_DODRIO_2, \
+ FRONTIER_MON_MR_MIME_2, \
+ FRONTIER_MON_LANTURN_2, \
+ FRONTIER_MON_BRELOOM_2, \
+ FRONTIER_MON_FORRETRESS_2, \
+ FRONTIER_MON_SKARMORY_2, \
+ FRONTIER_MON_WHISCASH_2, \
+ FRONTIER_MON_XATU_2, \
+ FRONTIER_MON_CLEFABLE_2, \
+ FRONTIER_MON_HARIYAMA_2, \
+ FRONTIER_MON_RAICHU_2, \
+ FRONTIER_MON_DEWGONG_2, \
+ FRONTIER_MON_MANECTRIC_2, \
+ FRONTIER_MON_VILEPLUME_2, \
+ FRONTIER_MON_VICTREEBEL_2, \
+ FRONTIER_MON_ELECTRODE_2, \
+ FRONTIER_MON_EXPLOUD_2, \
+ FRONTIER_MON_SHIFTRY_2, \
+ FRONTIER_MON_GLALIE_2, \
+ FRONTIER_MON_LUDICOLO_2, \
+ FRONTIER_MON_HYPNO_2, \
+ FRONTIER_MON_GOLEM_2, \
+ FRONTIER_MON_RHYDON_2, \
+ FRONTIER_MON_ALAKAZAM_2, \
+ -1
+
+#define FRONTIER_MONS_YOUNGSTER_LASS_2 \
+ FRONTIER_MON_DUGTRIO_2, \
+ FRONTIER_MONS_YOUNGSTER_LASS_2_NO_DUGTRIO
+
+#define FRONTIER_MONS_SCHOOL_KID_2 \
+ FRONTIER_MON_WEEZING_2, \
+ FRONTIER_MON_KANGASKHAN_2, \
+ FRONTIER_MON_ELECTABUZZ_2, \
+ FRONTIER_MON_TAUROS_2, \
+ FRONTIER_MON_SLOWBRO_2, \
+ FRONTIER_MON_SLOWKING_2, \
+ FRONTIER_MON_MILTANK_2, \
+ FRONTIER_MON_ALTARIA_2, \
+ FRONTIER_MON_NIDOQUEEN_2, \
+ FRONTIER_MON_NIDOKING_2, \
+ FRONTIER_MON_MAGMAR_2, \
+ FRONTIER_MON_CRADILY_2, \
+ FRONTIER_MON_ARMALDO_2, \
+ FRONTIER_MON_GOLDUCK_2, \
+ FRONTIER_MON_RAPIDASH_2, \
+ FRONTIER_MON_MUK_2, \
+ FRONTIER_MON_GENGAR_2, \
+ FRONTIER_MON_AMPHAROS_2, \
+ FRONTIER_MON_SCIZOR_2, \
+ FRONTIER_MON_HERACROSS_2, \
+ FRONTIER_MON_URSARING_2, \
+ FRONTIER_MON_HOUNDOOM_2, \
+ FRONTIER_MON_DONPHAN_2, \
+ FRONTIER_MON_CLAYDOL_2, \
+ FRONTIER_MON_WAILORD_2, \
+ FRONTIER_MON_NINETALES_2, \
+ FRONTIER_MON_MACHAMP_2, \
+ FRONTIER_MON_SHUCKLE_2, \
+ FRONTIER_MON_STEELIX_2, \
+ FRONTIER_MON_TENTACRUEL_2, \
+ FRONTIER_MON_AERODACTYL_2, \
+ FRONTIER_MON_PORYGON2_2, \
+ FRONTIER_MON_GARDEVOIR_2, \
+ -1
+
+#define FRONTIER_MONS_RICH_BOY_LADY_2 \
+ FRONTIER_MON_EXEGGUTOR_2, \
+ FRONTIER_MON_STARMIE_2, \
+ FRONTIER_MON_FLYGON_2, \
+ FRONTIER_MON_VENUSAUR_2, \
+ FRONTIER_MON_VAPOREON_2, \
+ FRONTIER_MON_JOLTEON_2, \
+ FRONTIER_MON_FLAREON_2, \
+ FRONTIER_MON_MEGANIUM_2, \
+ FRONTIER_MON_ESPEON_2, \
+ FRONTIER_MON_UMBREON_2, \
+ FRONTIER_MON_BLASTOISE_2, \
+ FRONTIER_MON_FERALIGATR_2, \
+ FRONTIER_MON_AGGRON_2, \
+ FRONTIER_MON_BLAZIKEN_2, \
+ FRONTIER_MON_WALREIN_2, \
+ FRONTIER_MON_SCEPTILE_2, \
+ FRONTIER_MON_CHARIZARD_2, \
+ FRONTIER_MON_TYPHLOSION_2, \
+ FRONTIER_MON_LAPRAS_2, \
+ FRONTIER_MON_CROBAT_2, \
+ FRONTIER_MON_SWAMPERT_2, \
+ FRONTIER_MON_GYARADOS_2, \
+ FRONTIER_MON_SNORLAX_2, \
+ FRONTIER_MON_KINGDRA_2, \
+ FRONTIER_MON_BLISSEY_2, \
+ FRONTIER_MON_MILOTIC_2, \
+ FRONTIER_MON_ARCANINE_2, \
+ FRONTIER_MON_SALAMENCE_2, \
+ FRONTIER_MON_METAGROSS_2, \
+ FRONTIER_MON_SLAKING_2, \
+ -1
+
+#define FRONTIER_MONS_BUG_CATCHER_2 \
+ FRONTIER_MON_NINJASK_2, \
+ FRONTIER_MON_SCYTHER_2, \
+ FRONTIER_MON_PINSIR_2, \
+ FRONTIER_MON_FORRETRESS_1, \
+ FRONTIER_MON_ARMALDO_1, \
+ FRONTIER_MON_SCIZOR_1, \
+ FRONTIER_MON_HERACROSS_1, \
+ FRONTIER_MON_SHUCKLE_1, \
+ FRONTIER_MON_BRELOOM_2, \
+ FRONTIER_MON_FORRETRESS_2, \
+ FRONTIER_MON_VILEPLUME_2, \
+ FRONTIER_MON_VICTREEBEL_2, \
+ FRONTIER_MON_SHIFTRY_2, \
+ FRONTIER_MON_LUDICOLO_2, \
+ FRONTIER_MON_CRADILY_2, \
+ FRONTIER_MON_ARMALDO_2, \
+ FRONTIER_MON_SCIZOR_2, \
+ FRONTIER_MON_HERACROSS_2, \
+ FRONTIER_MON_SHUCKLE_2, \
+ FRONTIER_MON_EXEGGUTOR_2, \
+ FRONTIER_MON_VENUSAUR_2, \
+ FRONTIER_MON_MEGANIUM_2, \
+ FRONTIER_MON_SCEPTILE_2, \
+ -1
+
+#define FRONTIER_MONS_NINJA_BOY_2 \
+ FRONTIER_MON_PARASECT_2, \
+ FRONTIER_MON_VENOMOTH_2, \
+ FRONTIER_MON_NINJASK_2, \
+ FRONTIER_MON_SCYTHER_2, \
+ FRONTIER_MON_PINSIR_2, \
+ FRONTIER_MON_MEDICHAM_2, \
+ FRONTIER_MON_MISDREAVUS_2, \
+ FRONTIER_MON_JYNX_2, \
+ FRONTIER_MON_DUSCLOPS_2, \
+ FRONTIER_MON_MR_MIME_2, \
+ FRONTIER_MON_FORRETRESS_2, \
+ FRONTIER_MON_XATU_2, \
+ FRONTIER_MON_VILEPLUME_2, \
+ FRONTIER_MON_VICTREEBEL_2, \
+ FRONTIER_MON_HYPNO_2, \
+ FRONTIER_MON_ALAKAZAM_2, \
+ FRONTIER_MON_WEEZING_2, \
+ FRONTIER_MON_NIDOQUEEN_2, \
+ FRONTIER_MON_NIDOKING_2, \
+ FRONTIER_MON_ARMALDO_2, \
+ FRONTIER_MON_MUK_2, \
+ FRONTIER_MON_GENGAR_2, \
+ FRONTIER_MON_SCIZOR_2, \
+ FRONTIER_MON_HERACROSS_2, \
+ FRONTIER_MON_CLAYDOL_2, \
+ FRONTIER_MON_SHUCKLE_2, \
+ FRONTIER_MON_TENTACRUEL_2, \
+ FRONTIER_MON_GARDEVOIR_2, \
+ FRONTIER_MON_EXEGGUTOR_2, \
+ FRONTIER_MON_VENUSAUR_2, \
+ FRONTIER_MON_ESPEON_2, \
+ FRONTIER_MON_CROBAT_2, \
+ -1
+
+#define FRONTIER_MONS_TUBER_2 \
+ FRONTIER_MON_QUAGSIRE_2, \
+ FRONTIER_MON_GRANBULL_2, \
+ FRONTIER_MON_JYNX_2, \
+ FRONTIER_MON_LANTURN_2, \
+ FRONTIER_MON_WHISCASH_2, \
+ FRONTIER_MON_CLEFABLE_2, \
+ FRONTIER_MON_DEWGONG_2, \
+ FRONTIER_MON_EXPLOUD_2, \
+ FRONTIER_MON_GLALIE_2, \
+ FRONTIER_MON_LUDICOLO_2, \
+ FRONTIER_MON_KANGASKHAN_2, \
+ FRONTIER_MON_TAUROS_2, \
+ FRONTIER_MON_SLOWBRO_2, \
+ FRONTIER_MON_SLOWKING_2, \
+ FRONTIER_MON_MILTANK_2, \
+ FRONTIER_MON_GOLDUCK_2, \
+ FRONTIER_MON_URSARING_2, \
+ FRONTIER_MON_WAILORD_2, \
+ FRONTIER_MON_TENTACRUEL_2, \
+ FRONTIER_MON_PORYGON2_2, \
+ FRONTIER_MON_STARMIE_2, \
+ FRONTIER_MON_VAPOREON_2, \
+ FRONTIER_MON_BLASTOISE_2, \
+ FRONTIER_MON_FERALIGATR_2, \
+ FRONTIER_MON_WALREIN_2, \
+ FRONTIER_MON_LAPRAS_2, \
+ FRONTIER_MON_SWAMPERT_2, \
+ FRONTIER_MON_GYARADOS_2, \
+ FRONTIER_MON_SNORLAX_2, \
+ FRONTIER_MON_KINGDRA_2, \
+ FRONTIER_MON_BLISSEY_2, \
+ FRONTIER_MON_MILOTIC_2, \
+ FRONTIER_MON_SLAKING_2, \
+ -1
+
+#define FRONTIER_MONS_BUG_MANIAC_3 \
+ FRONTIER_MON_VOLBEAT_2, \
+ FRONTIER_MON_ILLUMISE_2, \
+ FRONTIER_MON_PARASECT_2, \
+ FRONTIER_MON_MASQUERAIN_2, \
+ FRONTIER_MON_VENOMOTH_2, \
+ FRONTIER_MON_NINJASK_2, \
+ FRONTIER_MON_SCYTHER_2, \
+ FRONTIER_MON_PINSIR_2, \
+ FRONTIER_MON_FORRETRESS_1, \
+ FRONTIER_MON_ARMALDO_1, \
+ FRONTIER_MON_SCIZOR_1, \
+ FRONTIER_MON_HERACROSS_1, \
+ FRONTIER_MON_SHUCKLE_1, \
+ FRONTIER_MON_FORRETRESS_2, \
+ FRONTIER_MON_ARMALDO_2, \
+ FRONTIER_MON_SCIZOR_2, \
+ FRONTIER_MON_HERACROSS_2, \
+ FRONTIER_MON_SHUCKLE_2, \
+ FRONTIER_MON_FORRETRESS_3, \
+ FRONTIER_MON_ARMALDO_3, \
+ FRONTIER_MON_SCIZOR_3, \
+ FRONTIER_MON_HERACROSS_3, \
+ FRONTIER_MON_SHUCKLE_3, \
+ -1
+
+#define FRONTIER_MONS_FISHERMAN_2 \
+ FRONTIER_MON_QWILFISH_2, \
+ FRONTIER_MON_SEAKING_2, \
+ FRONTIER_MON_SHARPEDO_2, \
+ FRONTIER_MON_MANTINE_2, \
+ FRONTIER_MON_CRAWDAUNT_2, \
+ FRONTIER_MON_KINGLER_2, \
+ FRONTIER_MON_OCTILLERY_2, \
+ FRONTIER_MON_HUNTAIL_2, \
+ FRONTIER_MON_GOREBYSS_2, \
+ FRONTIER_MON_RELICANTH_2, \
+ FRONTIER_MON_LANTURN_3, \
+ FRONTIER_MON_WHISCASH_3, \
+ FRONTIER_MON_WAILORD_3, \
+ FRONTIER_MON_TENTACRUEL_3, \
+ FRONTIER_MON_STARMIE_3, \
+ -1
+
+#define FRONTIER_MONS_RUIN_MANIAC_3 \
+ FRONTIER_MON_DUGTRIO_3, \
+ FRONTIER_MON_FORRETRESS_3, \
+ FRONTIER_MON_WHISCASH_3, \
+ FRONTIER_MON_SKARMORY_3, \
+ FRONTIER_MON_MAROWAK_3, \
+ FRONTIER_MON_QUAGSIRE_3, \
+ FRONTIER_MON_GOLEM_3, \
+ FRONTIER_MON_RHYDON_3, \
+ FRONTIER_MON_NIDOQUEEN_3, \
+ FRONTIER_MON_NIDOKING_3, \
+ FRONTIER_MON_CRADILY_3, \
+ FRONTIER_MON_ARMALDO_3, \
+ FRONTIER_MON_SCIZOR_3, \
+ FRONTIER_MON_DONPHAN_3, \
+ FRONTIER_MON_CLAYDOL_3, \
+ FRONTIER_MON_SHUCKLE_3, \
+ FRONTIER_MON_STEELIX_3, \
+ FRONTIER_MON_AERODACTYL_3, \
+ FRONTIER_MON_FLYGON_3, \
+ FRONTIER_MON_AGGRON_3, \
+ FRONTIER_MON_SWAMPERT_3, \
+ FRONTIER_MON_METAGROSS_3, \
+ -1
+
+#define FRONTIER_MONS_COLLECTOR_2 \
+ FRONTIER_MON_DUGTRIO_3, \
+ FRONTIER_MON_MEDICHAM_3, \
+ FRONTIER_MON_MISDREAVUS_3, \
+ FRONTIER_MON_FEAROW_3, \
+ FRONTIER_MON_GRANBULL_3, \
+ FRONTIER_MON_JYNX_3, \
+ FRONTIER_MON_DUSCLOPS_3, \
+ FRONTIER_MON_DODRIO_3, \
+ FRONTIER_MON_MR_MIME_3, \
+ FRONTIER_MON_LANTURN_3, \
+ FRONTIER_MON_BRELOOM_3, \
+ FRONTIER_MON_FORRETRESS_3, \
+ FRONTIER_MON_WHISCASH_3, \
+ FRONTIER_MON_XATU_3, \
+ FRONTIER_MON_SKARMORY_3, \
+ FRONTIER_MON_MAROWAK_3, \
+ FRONTIER_MON_QUAGSIRE_3, \
+ FRONTIER_MON_CLEFABLE_3, \
+ FRONTIER_MON_HARIYAMA_3, \
+ FRONTIER_MON_RAICHU_3, \
+ FRONTIER_MON_DEWGONG_3, \
+ FRONTIER_MON_MANECTRIC_3, \
+ FRONTIER_MON_VILEPLUME_3, \
+ FRONTIER_MON_VICTREEBEL_3, \
+ FRONTIER_MON_ELECTRODE_3, \
+ FRONTIER_MON_EXPLOUD_3, \
+ FRONTIER_MON_SHIFTRY_3, \
+ FRONTIER_MON_GLALIE_3, \
+ FRONTIER_MON_LUDICOLO_3, \
+ FRONTIER_MON_HYPNO_3, \
+ FRONTIER_MON_GOLEM_3, \
+ FRONTIER_MON_RHYDON_3, \
+ FRONTIER_MON_ALAKAZAM_3, \
+ FRONTIER_MON_WEEZING_3, \
+ FRONTIER_MON_KANGASKHAN_3, \
+ FRONTIER_MON_ELECTABUZZ_3, \
+ FRONTIER_MON_TAUROS_3, \
+ FRONTIER_MON_SLOWBRO_3, \
+ FRONTIER_MON_SLOWKING_3, \
+ FRONTIER_MON_MILTANK_3, \
+ FRONTIER_MON_ALTARIA_3, \
+ FRONTIER_MON_NIDOQUEEN_3, \
+ FRONTIER_MON_NIDOKING_3, \
+ FRONTIER_MON_MAGMAR_3, \
+ FRONTIER_MON_CRADILY_3, \
+ FRONTIER_MON_ARMALDO_3, \
+ FRONTIER_MON_GOLDUCK_3, \
+ FRONTIER_MON_RAPIDASH_3, \
+ -1
+
+#define FRONTIER_MONS_GUITARIST_2 \
+ FRONTIER_MON_SABLEYE_2, \
+ FRONTIER_MON_MIGHTYENA_2, \
+ FRONTIER_MON_SNEASEL_2, \
+ FRONTIER_MON_MAGNETON_2, \
+ FRONTIER_MON_ABSOL_2, \
+ FRONTIER_MON_LANTURN_3, \
+ FRONTIER_MON_RAICHU_3, \
+ FRONTIER_MON_MANECTRIC_3, \
+ FRONTIER_MON_ELECTRODE_3, \
+ FRONTIER_MON_SHIFTRY_3, \
+ FRONTIER_MON_ELECTABUZZ_3, \
+ FRONTIER_MON_AMPHAROS_3, \
+ FRONTIER_MON_HOUNDOOM_3, \
+ FRONTIER_MON_JOLTEON_3, \
+ FRONTIER_MON_UMBREON_3, \
+ -1
+
+#define FRONTIER_MONS_BIRD_KEEPER_2 \
+ FRONTIER_MON_MURKROW_2, \
+ FRONTIER_MON_PELIPPER_2, \
+ FRONTIER_MON_SWELLOW_2, \
+ FRONTIER_MON_NOCTOWL_2, \
+ FRONTIER_MON_PIDGEOT_2, \
+ FRONTIER_MON_FEAROW_1, \
+ FRONTIER_MON_DODRIO_1, \
+ FRONTIER_MON_XATU_1, \
+ FRONTIER_MON_SKARMORY_1, \
+ FRONTIER_MON_CROBAT_1, \
+ FRONTIER_MON_FEAROW_2, \
+ FRONTIER_MON_DODRIO_2, \
+ FRONTIER_MON_SKARMORY_2, \
+ FRONTIER_MON_XATU_2, \
+ FRONTIER_MON_CROBAT_2, \
+ FRONTIER_MON_FEAROW_3, \
+ FRONTIER_MON_DODRIO_3, \
+ FRONTIER_MON_XATU_3, \
+ FRONTIER_MON_SKARMORY_3, \
+ FRONTIER_MON_CROBAT_3, \
+ -1
+
+#define FRONTIER_MONS_SAILOR_2 \
+ FRONTIER_MON_MEDICHAM_3, \
+ FRONTIER_MON_LANTURN_3, \
+ FRONTIER_MON_WHISCASH_3, \
+ FRONTIER_MON_QUAGSIRE_3, \
+ FRONTIER_MON_HARIYAMA_3, \
+ FRONTIER_MON_DEWGONG_3, \
+ FRONTIER_MON_LUDICOLO_3, \
+ FRONTIER_MON_SLOWBRO_3, \
+ FRONTIER_MON_SLOWKING_3, \
+ FRONTIER_MON_GOLDUCK_3, \
+ FRONTIER_MON_WAILORD_3, \
+ FRONTIER_MON_MACHAMP_3, \
+ FRONTIER_MON_TENTACRUEL_3, \
+ FRONTIER_MON_STARMIE_3, \
+ FRONTIER_MON_VAPOREON_3, \
+ FRONTIER_MON_BLASTOISE_3, \
+ FRONTIER_MON_FERALIGATR_3, \
+ FRONTIER_MON_WALREIN_3, \
+ FRONTIER_MON_LAPRAS_3, \
+ FRONTIER_MON_SWAMPERT_3, \
+ FRONTIER_MON_GYARADOS_3, \
+ FRONTIER_MON_KINGDRA_3, \
+ FRONTIER_MON_MILOTIC_3, \
+ -1
+
+#define FRONTIER_MONS_HIKER_2 \
+ FRONTIER_MON_DUGTRIO_3, \
+ FRONTIER_MON_MEDICHAM_3, \
+ FRONTIER_MON_BRELOOM_3, \
+ FRONTIER_MON_MAROWAK_3, \
+ FRONTIER_MON_HARIYAMA_3, \
+ FRONTIER_MON_GOLEM_3, \
+ FRONTIER_MON_RHYDON_3, \
+ FRONTIER_MON_NIDOQUEEN_3, \
+ FRONTIER_MON_NIDOKING_3, \
+ FRONTIER_MON_CRADILY_3, \
+ FRONTIER_MON_ARMALDO_3, \
+ FRONTIER_MON_HERACROSS_3, \
+ FRONTIER_MON_DONPHAN_3, \
+ FRONTIER_MON_CLAYDOL_3, \
+ FRONTIER_MON_MACHAMP_3, \
+ FRONTIER_MON_SHUCKLE_3, \
+ FRONTIER_MON_STEELIX_3, \
+ FRONTIER_MON_AERODACTYL_3, \
+ FRONTIER_MON_AGGRON_3, \
+ FRONTIER_MON_BLAZIKEN_3, \
+ -1
+
+#define FRONTIER_MONS_KINDLER_2 \
+ FRONTIER_MON_GRANBULL_3, \
+ FRONTIER_MON_CLEFABLE_3, \
+ FRONTIER_MON_EXPLOUD_3, \
+ FRONTIER_MON_KANGASKHAN_3, \
+ FRONTIER_MON_TAUROS_3, \
+ FRONTIER_MON_MILTANK_3, \
+ FRONTIER_MON_MAGMAR_3, \
+ FRONTIER_MON_RAPIDASH_3, \
+ FRONTIER_MON_URSARING_3, \
+ FRONTIER_MON_HOUNDOOM_3, \
+ FRONTIER_MON_NINETALES_3, \
+ FRONTIER_MON_FLAREON_3, \
+ FRONTIER_MON_BLAZIKEN_3, \
+ FRONTIER_MON_CHARIZARD_3, \
+ FRONTIER_MON_TYPHLOSION_3, \
+ FRONTIER_MON_SNORLAX_3, \
+ FRONTIER_MON_BLISSEY_3, \
+ FRONTIER_MON_ARCANINE_3, \
+ FRONTIER_MON_SLAKING_3, \
+ -1
+
+#define FRONTIER_MONS_GENTLEMAN_2 \
+ FRONTIER_MON_MUK_3, \
+ FRONTIER_MON_GENGAR_3, \
+ FRONTIER_MON_AMPHAROS_3, \
+ FRONTIER_MON_SCIZOR_3, \
+ FRONTIER_MON_HERACROSS_3, \
+ FRONTIER_MON_URSARING_3, \
+ FRONTIER_MON_HOUNDOOM_3, \
+ FRONTIER_MON_DONPHAN_3, \
+ FRONTIER_MON_CLAYDOL_3, \
+ FRONTIER_MON_WAILORD_3, \
+ FRONTIER_MON_NINETALES_3, \
+ FRONTIER_MON_MACHAMP_3, \
+ FRONTIER_MON_SHUCKLE_3, \
+ FRONTIER_MON_STEELIX_3, \
+ FRONTIER_MON_TENTACRUEL_3, \
+ FRONTIER_MON_AERODACTYL_3, \
+ FRONTIER_MON_PORYGON2_3, \
+ FRONTIER_MON_GARDEVOIR_3, \
+ FRONTIER_MON_EXEGGUTOR_3, \
+ FRONTIER_MON_STARMIE_3, \
+ FRONTIER_MON_FLYGON_3, \
+ FRONTIER_MON_VENUSAUR_3, \
+ FRONTIER_MON_VAPOREON_3, \
+ FRONTIER_MON_JOLTEON_3, \
+ FRONTIER_MON_FLAREON_3, \
+ FRONTIER_MON_MEGANIUM_3, \
+ FRONTIER_MON_ESPEON_3, \
+ FRONTIER_MON_UMBREON_3, \
+ FRONTIER_MON_BLASTOISE_3, \
+ FRONTIER_MON_FERALIGATR_3, \
+ FRONTIER_MON_AGGRON_3, \
+ FRONTIER_MON_BLAZIKEN_3, \
+ FRONTIER_MON_WALREIN_3, \
+ FRONTIER_MON_SCEPTILE_3, \
+ FRONTIER_MON_CHARIZARD_3, \
+ FRONTIER_MON_TYPHLOSION_3, \
+ FRONTIER_MON_LAPRAS_3, \
+ FRONTIER_MON_CROBAT_3, \
+ FRONTIER_MON_SWAMPERT_3, \
+ FRONTIER_MON_GYARADOS_3, \
+ FRONTIER_MON_SNORLAX_3, \
+ FRONTIER_MON_KINGDRA_3, \
+ FRONTIER_MON_BLISSEY_3, \
+ FRONTIER_MON_MILOTIC_3, \
+ FRONTIER_MON_ARCANINE_3, \
+ FRONTIER_MON_SALAMENCE_3, \
+ FRONTIER_MON_METAGROSS_3, \
+ FRONTIER_MON_SLAKING_3, \
+ -1
+
+#define FRONTIER_MONS_YOUNGSTER_LASS_3 \
+ FRONTIER_MON_DUGTRIO_4, \
+ FRONTIER_MON_MEDICHAM_4, \
+ FRONTIER_MON_MISDREAVUS_4, \
+ FRONTIER_MON_FEAROW_4, \
+ FRONTIER_MON_GRANBULL_4, \
+ FRONTIER_MON_JYNX_4, \
+ FRONTIER_MON_DUSCLOPS_4, \
+ FRONTIER_MON_DODRIO_4, \
+ FRONTIER_MON_MR_MIME_4, \
+ FRONTIER_MON_LANTURN_4, \
+ FRONTIER_MON_BRELOOM_4, \
+ FRONTIER_MON_FORRETRESS_4, \
+ FRONTIER_MON_WHISCASH_4, \
+ FRONTIER_MON_XATU_4, \
+ FRONTIER_MON_SKARMORY_4, \
+ FRONTIER_MON_MAROWAK_4, \
+ FRONTIER_MON_QUAGSIRE_4, \
+ FRONTIER_MON_CLEFABLE_4, \
+ FRONTIER_MON_HARIYAMA_4, \
+ FRONTIER_MON_RAICHU_4, \
+ FRONTIER_MON_DEWGONG_4, \
+ FRONTIER_MON_MANECTRIC_4, \
+ FRONTIER_MON_VILEPLUME_4, \
+ FRONTIER_MON_VICTREEBEL_4, \
+ FRONTIER_MON_ELECTRODE_4, \
+ FRONTIER_MON_EXPLOUD_4, \
+ FRONTIER_MON_SHIFTRY_4, \
+ FRONTIER_MON_GLALIE_4, \
+ FRONTIER_MON_LUDICOLO_4, \
+ FRONTIER_MON_HYPNO_4, \
+ FRONTIER_MON_GOLEM_4, \
+ FRONTIER_MON_RHYDON_4, \
+ FRONTIER_MON_ALAKAZAM_4, \
+ -1
+
+#define FRONTIER_MONS_CAMPER_PICNICKER_2 \
+ FRONTIER_MON_WEEZING_4, \
+ FRONTIER_MON_KANGASKHAN_4, \
+ FRONTIER_MON_ELECTABUZZ_4, \
+ FRONTIER_MON_TAUROS_4, \
+ FRONTIER_MON_SLOWBRO_4, \
+ FRONTIER_MON_SLOWKING_4, \
+ FRONTIER_MON_MILTANK_4, \
+ FRONTIER_MON_ALTARIA_4, \
+ FRONTIER_MON_NIDOQUEEN_4, \
+ FRONTIER_MON_NIDOKING_4, \
+ FRONTIER_MON_MAGMAR_4, \
+ FRONTIER_MON_CRADILY_4, \
+ FRONTIER_MON_ARMALDO_4, \
+ FRONTIER_MON_GOLDUCK_4, \
+ FRONTIER_MON_RAPIDASH_4, \
+ FRONTIER_MON_MUK_4, \
+ FRONTIER_MON_GENGAR_4, \
+ FRONTIER_MON_AMPHAROS_4, \
+ FRONTIER_MON_SCIZOR_4, \
+ FRONTIER_MON_HERACROSS_4, \
+ FRONTIER_MON_URSARING_4, \
+ FRONTIER_MON_HOUNDOOM_4, \
+ FRONTIER_MON_DONPHAN_4, \
+ FRONTIER_MON_CLAYDOL_4, \
+ FRONTIER_MON_WAILORD_4, \
+ FRONTIER_MON_NINETALES_4, \
+ FRONTIER_MON_MACHAMP_4, \
+ FRONTIER_MON_SHUCKLE_4, \
+ FRONTIER_MON_STEELIX_4, \
+ FRONTIER_MON_TENTACRUEL_4, \
+ FRONTIER_MON_AERODACTYL_4, \
+ FRONTIER_MON_PORYGON2_4, \
+ FRONTIER_MON_GARDEVOIR_4, \
+ -1
+
+#define FRONTIER_MONS_SWIMMER_M_2 \
+ FRONTIER_MON_SHARPEDO_2, \
+ FRONTIER_MON_MEDICHAM_4, \
+ FRONTIER_MON_GRANBULL_4, \
+ FRONTIER_MON_LANTURN_4, \
+ FRONTIER_MON_WHISCASH_4, \
+ FRONTIER_MON_QUAGSIRE_4, \
+ FRONTIER_MON_CLEFABLE_4, \
+ FRONTIER_MON_HARIYAMA_4, \
+ FRONTIER_MON_DEWGONG_4, \
+ FRONTIER_MON_EXPLOUD_4, \
+ FRONTIER_MON_LUDICOLO_4, \
+ FRONTIER_MON_KANGASKHAN_4, \
+ FRONTIER_MON_TAUROS_4, \
+ FRONTIER_MON_SLOWBRO_4, \
+ FRONTIER_MON_SLOWKING_4, \
+ FRONTIER_MON_MILTANK_4, \
+ FRONTIER_MON_GOLDUCK_4, \
+ FRONTIER_MON_URSARING_4, \
+ FRONTIER_MON_WAILORD_4, \
+ FRONTIER_MON_MACHAMP_4, \
+ FRONTIER_MON_TENTACRUEL_4, \
+ FRONTIER_MON_PORYGON2_4, \
+ FRONTIER_MON_STARMIE_4, \
+ FRONTIER_MON_VAPOREON_4, \
+ FRONTIER_MON_BLASTOISE_4, \
+ FRONTIER_MON_FERALIGATR_4, \
+ FRONTIER_MON_WALREIN_4, \
+ FRONTIER_MON_LAPRAS_4, \
+ FRONTIER_MON_SWAMPERT_4, \
+ FRONTIER_MON_GYARADOS_4, \
+ FRONTIER_MON_SNORLAX_4, \
+ FRONTIER_MON_KINGDRA_4, \
+ FRONTIER_MON_BLISSEY_4, \
+ FRONTIER_MON_MILOTIC_4, \
+ FRONTIER_MON_SLAKING_4, \
+ -1
+
+#define FRONTIER_MONS_SWIMMER_F_2 \
+ FRONTIER_MON_GRANBULL_4, \
+ FRONTIER_MON_JYNX_4, \
+ FRONTIER_MON_LANTURN_4, \
+ FRONTIER_MON_WHISCASH_4, \
+ FRONTIER_MON_QUAGSIRE_4, \
+ FRONTIER_MON_CLEFABLE_4, \
+ FRONTIER_MON_DEWGONG_4, \
+ FRONTIER_MON_EXPLOUD_4, \
+ FRONTIER_MON_GLALIE_4, \
+ FRONTIER_MON_LUDICOLO_4, \
+ FRONTIER_MON_KANGASKHAN_4, \
+ FRONTIER_MON_TAUROS_4, \
+ FRONTIER_MON_SLOWBRO_4, \
+ FRONTIER_MON_SLOWKING_4, \
+ FRONTIER_MON_MILTANK_4, \
+ FRONTIER_MON_GOLDUCK_4, \
+ FRONTIER_MON_URSARING_4, \
+ FRONTIER_MON_WAILORD_4, \
+ FRONTIER_MON_TENTACRUEL_4, \
+ FRONTIER_MON_PORYGON2_4, \
+ FRONTIER_MON_STARMIE_4, \
+ FRONTIER_MON_VAPOREON_4, \
+ FRONTIER_MON_BLASTOISE_4, \
+ FRONTIER_MON_FERALIGATR_4, \
+ FRONTIER_MON_WALREIN_4, \
+ FRONTIER_MON_LAPRAS_4, \
+ FRONTIER_MON_SWAMPERT_4, \
+ FRONTIER_MON_GYARADOS_4, \
+ FRONTIER_MON_SNORLAX_4, \
+ FRONTIER_MON_KINGDRA_4, \
+ FRONTIER_MON_BLISSEY_4, \
+ FRONTIER_MON_MILOTIC_4, \
+ FRONTIER_MON_SLAKING_4, \
+ -1
+
+#define FRONTIER_MONS_POKEFAN_3 \
+ FRONTIER_MON_DELCATTY_2, \
+ FRONTIER_MON_PORYGON_2, \
+ FRONTIER_MON_DUNSPARCE_2, \
+ FRONTIER_MON_WIGGLYTUFF_2, \
+ FRONTIER_MON_KECLEON_2, \
+ FRONTIER_MON_CHANSEY_2, \
+ FRONTIER_MON_ABSOL_2, \
+ FRONTIER_MON_MISDREAVUS_4, \
+ FRONTIER_MON_JYNX_4, \
+ FRONTIER_MON_MR_MIME_4, \
+ FRONTIER_MON_LANTURN_4, \
+ FRONTIER_MON_BRELOOM_4, \
+ FRONTIER_MON_WHISCASH_4, \
+ FRONTIER_MON_XATU_4, \
+ FRONTIER_MON_QUAGSIRE_4, \
+ FRONTIER_MON_CLEFABLE_4, \
+ FRONTIER_MON_RAICHU_4, \
+ FRONTIER_MON_DEWGONG_4, \
+ FRONTIER_MON_VILEPLUME_4, \
+ FRONTIER_MON_LUDICOLO_4, \
+ FRONTIER_MON_SLOWBRO_4, \
+ FRONTIER_MON_SLOWKING_4, \
+ FRONTIER_MON_MILTANK_4, \
+ FRONTIER_MON_ALTARIA_4, \
+ FRONTIER_MON_RAPIDASH_4, \
+ FRONTIER_MON_AMPHAROS_4, \
+ FRONTIER_MON_NINETALES_4, \
+ FRONTIER_MON_SHUCKLE_4, \
+ FRONTIER_MON_PORYGON2_4, \
+ FRONTIER_MON_GARDEVOIR_4, \
+ FRONTIER_MON_FLYGON_4, \
+ FRONTIER_MON_VAPOREON_4, \
+ FRONTIER_MON_JOLTEON_4, \
+ FRONTIER_MON_FLAREON_4, \
+ FRONTIER_MON_ESPEON_4, \
+ FRONTIER_MON_UMBREON_4, \
+ FRONTIER_MON_LAPRAS_4, \
+ FRONTIER_MON_SNORLAX_4, \
+ FRONTIER_MON_BLISSEY_4, \
+ FRONTIER_MON_MILOTIC_4, \
+ -1
+
+#define FRONTIER_MONS_PKMN_BREEDER_2 \
+ FRONTIER_MON_EXEGGUTOR_4, \
+ FRONTIER_MON_STARMIE_4, \
+ FRONTIER_MON_FLYGON_4, \
+ FRONTIER_MON_VENUSAUR_4, \
+ FRONTIER_MON_VAPOREON_4, \
+ FRONTIER_MON_JOLTEON_4, \
+ FRONTIER_MON_FLAREON_4, \
+ FRONTIER_MON_MEGANIUM_4, \
+ FRONTIER_MON_ESPEON_4, \
+ FRONTIER_MON_UMBREON_4, \
+ FRONTIER_MON_BLASTOISE_4, \
+ FRONTIER_MON_FERALIGATR_4, \
+ FRONTIER_MON_AGGRON_4, \
+ FRONTIER_MON_BLAZIKEN_4, \
+ FRONTIER_MON_WALREIN_4, \
+ FRONTIER_MON_SCEPTILE_4, \
+ FRONTIER_MON_CHARIZARD_4, \
+ FRONTIER_MON_TYPHLOSION_4, \
+ FRONTIER_MON_LAPRAS_4, \
+ FRONTIER_MON_CROBAT_4, \
+ FRONTIER_MON_SWAMPERT_4, \
+ FRONTIER_MON_GYARADOS_4, \
+ FRONTIER_MON_SNORLAX_4, \
+ FRONTIER_MON_KINGDRA_4, \
+ FRONTIER_MON_BLISSEY_4, \
+ FRONTIER_MON_MILOTIC_4, \
+ FRONTIER_MON_ARCANINE_4, \
+ FRONTIER_MON_SALAMENCE_4, \
+ FRONTIER_MON_METAGROSS_4, \
+ FRONTIER_MON_SLAKING_4, \
+ -1
+
+#define FRONTIER_MONS_COOLTRAINER_M_2A \
+ FRONTIER_MON_MUK_1, \
+ FRONTIER_MON_GENGAR_1, \
+ FRONTIER_MON_AMPHAROS_1, \
+ FRONTIER_MON_SCIZOR_1, \
+ FRONTIER_MON_HERACROSS_1, \
+ FRONTIER_MON_URSARING_1, \
+ FRONTIER_MON_HOUNDOOM_1, \
+ FRONTIER_MON_DONPHAN_1, \
+ FRONTIER_MON_CLAYDOL_1, \
+ FRONTIER_MON_WAILORD_1, \
+ FRONTIER_MON_NINETALES_1, \
+ FRONTIER_MON_MACHAMP_1, \
+ FRONTIER_MON_SHUCKLE_1, \
+ FRONTIER_MON_STEELIX_1, \
+ FRONTIER_MON_TENTACRUEL_1, \
+ FRONTIER_MON_AERODACTYL_1, \
+ FRONTIER_MON_PORYGON2_1, \
+ FRONTIER_MON_GARDEVOIR_1, \
+ FRONTIER_MON_EXEGGUTOR_1, \
+ FRONTIER_MON_STARMIE_1, \
+ FRONTIER_MON_FLYGON_1, \
+ FRONTIER_MON_VENUSAUR_1, \
+ FRONTIER_MON_VAPOREON_1, \
+ FRONTIER_MON_JOLTEON_1, \
+ FRONTIER_MON_MUK_2, \
+ FRONTIER_MON_GENGAR_2, \
+ FRONTIER_MON_AMPHAROS_2, \
+ FRONTIER_MON_SCIZOR_2, \
+ FRONTIER_MON_HERACROSS_2, \
+ FRONTIER_MON_URSARING_2, \
+ FRONTIER_MON_HOUNDOOM_2, \
+ FRONTIER_MON_DONPHAN_2, \
+ FRONTIER_MON_CLAYDOL_2, \
+ FRONTIER_MON_WAILORD_2, \
+ FRONTIER_MON_NINETALES_2, \
+ FRONTIER_MON_MACHAMP_2, \
+ FRONTIER_MON_SHUCKLE_2, \
+ FRONTIER_MON_STEELIX_2, \
+ FRONTIER_MON_TENTACRUEL_2, \
+ FRONTIER_MON_AERODACTYL_2, \
+ FRONTIER_MON_PORYGON2_2, \
+ FRONTIER_MON_GARDEVOIR_2, \
+ FRONTIER_MON_EXEGGUTOR_2, \
+ FRONTIER_MON_STARMIE_2, \
+ FRONTIER_MON_FLYGON_2, \
+ FRONTIER_MON_VENUSAUR_2, \
+ FRONTIER_MON_VAPOREON_2, \
+ FRONTIER_MON_JOLTEON_2, \
+ FRONTIER_MON_MUK_3, \
+ FRONTIER_MON_GENGAR_3, \
+ FRONTIER_MON_AMPHAROS_3, \
+ FRONTIER_MON_SCIZOR_3, \
+ FRONTIER_MON_HERACROSS_3, \
+ FRONTIER_MON_URSARING_3, \
+ FRONTIER_MON_HOUNDOOM_3, \
+ FRONTIER_MON_DONPHAN_3, \
+ FRONTIER_MON_CLAYDOL_3, \
+ FRONTIER_MON_WAILORD_3, \
+ FRONTIER_MON_NINETALES_3, \
+ FRONTIER_MON_MACHAMP_3, \
+ FRONTIER_MON_SHUCKLE_3, \
+ FRONTIER_MON_STEELIX_3, \
+ FRONTIER_MON_TENTACRUEL_3, \
+ FRONTIER_MON_AERODACTYL_3, \
+ FRONTIER_MON_PORYGON2_3, \
+ FRONTIER_MON_GARDEVOIR_3, \
+ FRONTIER_MON_EXEGGUTOR_3, \
+ FRONTIER_MON_STARMIE_3, \
+ FRONTIER_MON_FLYGON_3, \
+ FRONTIER_MON_VENUSAUR_3, \
+ FRONTIER_MON_VAPOREON_3, \
+ FRONTIER_MON_JOLTEON_3, \
+ FRONTIER_MON_MUK_4, \
+ FRONTIER_MON_GENGAR_4, \
+ FRONTIER_MON_AMPHAROS_4, \
+ FRONTIER_MON_SCIZOR_4, \
+ FRONTIER_MON_HERACROSS_4, \
+ FRONTIER_MON_URSARING_4, \
+ FRONTIER_MON_HOUNDOOM_4, \
+ FRONTIER_MON_DONPHAN_4, \
+ FRONTIER_MON_CLAYDOL_4, \
+ FRONTIER_MON_WAILORD_4, \
+ FRONTIER_MON_NINETALES_4, \
+ FRONTIER_MON_MACHAMP_4, \
+ FRONTIER_MON_SHUCKLE_4, \
+ FRONTIER_MON_STEELIX_4, \
+ FRONTIER_MON_TENTACRUEL_4, \
+ FRONTIER_MON_AERODACTYL_4, \
+ FRONTIER_MON_PORYGON2_4, \
+ FRONTIER_MON_GARDEVOIR_4, \
+ FRONTIER_MON_EXEGGUTOR_4, \
+ FRONTIER_MON_STARMIE_4, \
+ FRONTIER_MON_FLYGON_4, \
+ FRONTIER_MON_VENUSAUR_4, \
+ FRONTIER_MON_VAPOREON_4, \
+ FRONTIER_MON_JOLTEON_4, \
+ -1
+
+#define FRONTIER_MONS_COOLTRAINER_M_2B \
+ FRONTIER_MON_FLAREON_1, \
+ FRONTIER_MON_MEGANIUM_1, \
+ FRONTIER_MON_ESPEON_1, \
+ FRONTIER_MON_UMBREON_1, \
+ FRONTIER_MON_BLASTOISE_1, \
+ FRONTIER_MON_FERALIGATR_1, \
+ FRONTIER_MON_AGGRON_1, \
+ FRONTIER_MON_BLAZIKEN_1, \
+ FRONTIER_MON_WALREIN_1, \
+ FRONTIER_MON_SCEPTILE_1, \
+ FRONTIER_MON_CHARIZARD_1, \
+ FRONTIER_MON_TYPHLOSION_1, \
+ FRONTIER_MON_LAPRAS_1, \
+ FRONTIER_MON_CROBAT_1, \
+ FRONTIER_MON_SWAMPERT_1, \
+ FRONTIER_MON_GYARADOS_1, \
+ FRONTIER_MON_SNORLAX_1, \
+ FRONTIER_MON_KINGDRA_1, \
+ FRONTIER_MON_BLISSEY_1, \
+ FRONTIER_MON_MILOTIC_1, \
+ FRONTIER_MON_ARCANINE_1, \
+ FRONTIER_MON_SALAMENCE_1, \
+ FRONTIER_MON_METAGROSS_1, \
+ FRONTIER_MON_SLAKING_1, \
+ FRONTIER_MON_FLAREON_2, \
+ FRONTIER_MON_MEGANIUM_2, \
+ FRONTIER_MON_ESPEON_2, \
+ FRONTIER_MON_UMBREON_2, \
+ FRONTIER_MON_BLASTOISE_2, \
+ FRONTIER_MON_FERALIGATR_2, \
+ FRONTIER_MON_AGGRON_2, \
+ FRONTIER_MON_BLAZIKEN_2, \
+ FRONTIER_MON_WALREIN_2, \
+ FRONTIER_MON_SCEPTILE_2, \
+ FRONTIER_MON_CHARIZARD_2, \
+ FRONTIER_MON_TYPHLOSION_2, \
+ FRONTIER_MON_LAPRAS_2, \
+ FRONTIER_MON_CROBAT_2, \
+ FRONTIER_MON_SWAMPERT_2, \
+ FRONTIER_MON_GYARADOS_2, \
+ FRONTIER_MON_SNORLAX_2, \
+ FRONTIER_MON_KINGDRA_2, \
+ FRONTIER_MON_BLISSEY_2, \
+ FRONTIER_MON_MILOTIC_2, \
+ FRONTIER_MON_ARCANINE_2, \
+ FRONTIER_MON_SALAMENCE_2, \
+ FRONTIER_MON_METAGROSS_2, \
+ FRONTIER_MON_SLAKING_2, \
+ FRONTIER_MON_FLAREON_3, \
+ FRONTIER_MON_MEGANIUM_3, \
+ FRONTIER_MON_ESPEON_3, \
+ FRONTIER_MON_UMBREON_3, \
+ FRONTIER_MON_BLASTOISE_3, \
+ FRONTIER_MON_FERALIGATR_3, \
+ FRONTIER_MON_AGGRON_3, \
+ FRONTIER_MON_BLAZIKEN_3, \
+ FRONTIER_MON_WALREIN_3, \
+ FRONTIER_MON_SCEPTILE_3, \
+ FRONTIER_MON_CHARIZARD_3, \
+ FRONTIER_MON_TYPHLOSION_3, \
+ FRONTIER_MON_LAPRAS_3, \
+ FRONTIER_MON_CROBAT_3, \
+ FRONTIER_MON_SWAMPERT_3, \
+ FRONTIER_MON_GYARADOS_3, \
+ FRONTIER_MON_SNORLAX_3, \
+ FRONTIER_MON_KINGDRA_3, \
+ FRONTIER_MON_BLISSEY_3, \
+ FRONTIER_MON_MILOTIC_3, \
+ FRONTIER_MON_ARCANINE_3, \
+ FRONTIER_MON_SALAMENCE_3, \
+ FRONTIER_MON_METAGROSS_3, \
+ FRONTIER_MON_SLAKING_3, \
+ FRONTIER_MON_FLAREON_4, \
+ FRONTIER_MON_MEGANIUM_4, \
+ FRONTIER_MON_ESPEON_4, \
+ FRONTIER_MON_UMBREON_4, \
+ FRONTIER_MON_BLASTOISE_4, \
+ FRONTIER_MON_FERALIGATR_4, \
+ FRONTIER_MON_AGGRON_4, \
+ FRONTIER_MON_BLAZIKEN_4, \
+ FRONTIER_MON_WALREIN_4, \
+ FRONTIER_MON_SCEPTILE_4, \
+ FRONTIER_MON_CHARIZARD_4, \
+ FRONTIER_MON_TYPHLOSION_4, \
+ FRONTIER_MON_LAPRAS_4, \
+ FRONTIER_MON_CROBAT_4, \
+ FRONTIER_MON_SWAMPERT_4, \
+ FRONTIER_MON_GYARADOS_4, \
+ FRONTIER_MON_SNORLAX_4, \
+ FRONTIER_MON_KINGDRA_4, \
+ FRONTIER_MON_BLISSEY_4, \
+ FRONTIER_MON_MILOTIC_4, \
+ FRONTIER_MON_ARCANINE_4, \
+ FRONTIER_MON_SALAMENCE_4, \
+ FRONTIER_MON_METAGROSS_4, \
+ FRONTIER_MON_SLAKING_4, \
+ -1
+
+// Cooltrainer M uses Latios, Cooltrainer F uses Latias
+#define FRONTIER_MONS_COOLTRAINER_2C(lati) \
+ FRONTIER_MON_GENGAR_1, \
+ FRONTIER_MON_URSARING_1, \
+ FRONTIER_MON_MACHAMP_1, \
+ FRONTIER_MON_GARDEVOIR_1, \
+ FRONTIER_MON_STARMIE_1, \
+ FRONTIER_MON_LAPRAS_1, \
+ FRONTIER_MON_SNORLAX_1, \
+ FRONTIER_MON_SALAMENCE_1, \
+ FRONTIER_MON_METAGROSS_1, \
+ FRONTIER_MON_GENGAR_2, \
+ FRONTIER_MON_URSARING_2, \
+ FRONTIER_MON_MACHAMP_2, \
+ FRONTIER_MON_GARDEVOIR_2, \
+ FRONTIER_MON_STARMIE_2, \
+ FRONTIER_MON_LAPRAS_2, \
+ FRONTIER_MON_SNORLAX_2, \
+ FRONTIER_MON_SALAMENCE_2, \
+ FRONTIER_MON_METAGROSS_2, \
+ FRONTIER_MON_GENGAR_3, \
+ FRONTIER_MON_URSARING_3, \
+ FRONTIER_MON_MACHAMP_3, \
+ FRONTIER_MON_GARDEVOIR_3, \
+ FRONTIER_MON_STARMIE_3, \
+ FRONTIER_MON_LAPRAS_3, \
+ FRONTIER_MON_SNORLAX_3, \
+ FRONTIER_MON_SALAMENCE_3, \
+ FRONTIER_MON_METAGROSS_3, \
+ FRONTIER_MON_GENGAR_4, \
+ FRONTIER_MON_URSARING_4, \
+ FRONTIER_MON_MACHAMP_4, \
+ FRONTIER_MON_GARDEVOIR_4, \
+ FRONTIER_MON_STARMIE_4, \
+ FRONTIER_MON_LAPRAS_4, \
+ FRONTIER_MON_SNORLAX_4, \
+ FRONTIER_MON_SALAMENCE_4, \
+ FRONTIER_MON_METAGROSS_4, \
+ FRONTIER_MON_##lati##_1, \
+ FRONTIER_MON_##lati##_2, \
+ FRONTIER_MON_##lati##_3, \
+ FRONTIER_MON_##lati##_4, \
+ FRONTIER_MON_GENGAR_5, \
+ FRONTIER_MON_GENGAR_6, \
+ FRONTIER_MON_GENGAR_7, \
+ FRONTIER_MON_GENGAR_8, \
+ FRONTIER_MON_URSARING_5, \
+ FRONTIER_MON_URSARING_6, \
+ FRONTIER_MON_URSARING_7, \
+ FRONTIER_MON_URSARING_8, \
+ FRONTIER_MON_MACHAMP_5, \
+ FRONTIER_MON_MACHAMP_6, \
+ FRONTIER_MON_MACHAMP_7, \
+ FRONTIER_MON_MACHAMP_8, \
+ FRONTIER_MON_GARDEVOIR_5, \
+ FRONTIER_MON_GARDEVOIR_6, \
+ FRONTIER_MON_GARDEVOIR_7, \
+ FRONTIER_MON_GARDEVOIR_8, \
+ FRONTIER_MON_STARMIE_5, \
+ FRONTIER_MON_STARMIE_6, \
+ FRONTIER_MON_STARMIE_7, \
+ FRONTIER_MON_STARMIE_8, \
+ FRONTIER_MON_LAPRAS_5, \
+ FRONTIER_MON_LAPRAS_6, \
+ FRONTIER_MON_LAPRAS_7, \
+ FRONTIER_MON_LAPRAS_8, \
+ FRONTIER_MON_SNORLAX_5, \
+ FRONTIER_MON_SNORLAX_6, \
+ FRONTIER_MON_SNORLAX_7, \
+ FRONTIER_MON_SNORLAX_8, \
+ FRONTIER_MON_SALAMENCE_5, \
+ FRONTIER_MON_SALAMENCE_6, \
+ FRONTIER_MON_SALAMENCE_7, \
+ FRONTIER_MON_SALAMENCE_8, \
+ FRONTIER_MON_METAGROSS_5, \
+ FRONTIER_MON_METAGROSS_6, \
+ FRONTIER_MON_METAGROSS_7, \
+ FRONTIER_MON_METAGROSS_8, \
+ FRONTIER_MON_##lati##_5, \
+ FRONTIER_MON_##lati##_6, \
+ FRONTIER_MON_##lati##_7, \
+ FRONTIER_MON_##lati##_8, \
+ FRONTIER_MON_DRAGONITE_1, \
+ FRONTIER_MON_DRAGONITE_2, \
+ FRONTIER_MON_DRAGONITE_3, \
+ FRONTIER_MON_DRAGONITE_4, \
+ FRONTIER_MON_DRAGONITE_5, \
+ FRONTIER_MON_DRAGONITE_6, \
+ FRONTIER_MON_DRAGONITE_7, \
+ FRONTIER_MON_DRAGONITE_8, \
+ FRONTIER_MON_DRAGONITE_9, \
+ FRONTIER_MON_DRAGONITE_10, \
+ FRONTIER_MON_TYRANITAR_1, \
+ FRONTIER_MON_TYRANITAR_2, \
+ FRONTIER_MON_TYRANITAR_3, \
+ FRONTIER_MON_TYRANITAR_4, \
+ FRONTIER_MON_TYRANITAR_5, \
+ FRONTIER_MON_TYRANITAR_6, \
+ FRONTIER_MON_TYRANITAR_7, \
+ FRONTIER_MON_TYRANITAR_8, \
+ FRONTIER_MON_TYRANITAR_9, \
+ FRONTIER_MON_TYRANITAR_10, \
+ -1
+
+// Also used by Pkmn Ranger M/F
+// For both classes, M uses Latios and F uses Latias
+#define FRONTIER_MONS_COOLTRAINER_2D(lati) \
+ FRONTIER_MON_ARTICUNO_1, \
+ FRONTIER_MON_ZAPDOS_1, \
+ FRONTIER_MON_MOLTRES_1, \
+ FRONTIER_MON_RAIKOU_1, \
+ FRONTIER_MON_ENTEI_1, \
+ FRONTIER_MON_SUICUNE_1, \
+ FRONTIER_MON_REGIROCK_1, \
+ FRONTIER_MON_REGICE_1, \
+ FRONTIER_MON_REGISTEEL_1, \
+ FRONTIER_MON_##lati##_1, \
+ FRONTIER_MON_ARTICUNO_2, \
+ FRONTIER_MON_ZAPDOS_2, \
+ FRONTIER_MON_MOLTRES_2, \
+ FRONTIER_MON_RAIKOU_2, \
+ FRONTIER_MON_ENTEI_2, \
+ FRONTIER_MON_SUICUNE_2, \
+ FRONTIER_MON_REGIROCK_2, \
+ FRONTIER_MON_REGICE_2, \
+ FRONTIER_MON_REGISTEEL_2, \
+ FRONTIER_MON_##lati##_2, \
+ FRONTIER_MON_ARTICUNO_3, \
+ FRONTIER_MON_ZAPDOS_3, \
+ FRONTIER_MON_MOLTRES_3, \
+ FRONTIER_MON_RAIKOU_3, \
+ FRONTIER_MON_ENTEI_3, \
+ FRONTIER_MON_SUICUNE_3, \
+ FRONTIER_MON_REGIROCK_3, \
+ FRONTIER_MON_REGICE_3, \
+ FRONTIER_MON_REGISTEEL_3, \
+ FRONTIER_MON_##lati##_3, \
+ FRONTIER_MON_ARTICUNO_4, \
+ FRONTIER_MON_ZAPDOS_4, \
+ FRONTIER_MON_MOLTRES_4, \
+ FRONTIER_MON_RAIKOU_4, \
+ FRONTIER_MON_ENTEI_4, \
+ FRONTIER_MON_SUICUNE_4, \
+ FRONTIER_MON_REGIROCK_4, \
+ FRONTIER_MON_REGICE_4, \
+ FRONTIER_MON_REGISTEEL_4, \
+ FRONTIER_MON_##lati##_4, \
+ FRONTIER_MON_REGIROCK_5, \
+ FRONTIER_MON_REGIROCK_6, \
+ FRONTIER_MON_REGICE_5, \
+ FRONTIER_MON_REGICE_6, \
+ FRONTIER_MON_REGISTEEL_5, \
+ FRONTIER_MON_REGISTEEL_6, \
+ FRONTIER_MON_##lati##_5, \
+ FRONTIER_MON_##lati##_6, \
+ FRONTIER_MON_##lati##_7, \
+ FRONTIER_MON_##lati##_8, \
+ FRONTIER_MON_DRAGONITE_1, \
+ FRONTIER_MON_DRAGONITE_2, \
+ FRONTIER_MON_DRAGONITE_3, \
+ FRONTIER_MON_DRAGONITE_4, \
+ FRONTIER_MON_DRAGONITE_5, \
+ FRONTIER_MON_DRAGONITE_6, \
+ FRONTIER_MON_DRAGONITE_7, \
+ FRONTIER_MON_DRAGONITE_8, \
+ FRONTIER_MON_DRAGONITE_9, \
+ FRONTIER_MON_DRAGONITE_10, \
+ FRONTIER_MON_TYRANITAR_1, \
+ FRONTIER_MON_TYRANITAR_2, \
+ FRONTIER_MON_TYRANITAR_3, \
+ FRONTIER_MON_TYRANITAR_4, \
+ FRONTIER_MON_TYRANITAR_5, \
+ FRONTIER_MON_TYRANITAR_6, \
+ FRONTIER_MON_TYRANITAR_7, \
+ FRONTIER_MON_TYRANITAR_8, \
+ FRONTIER_MON_TYRANITAR_9, \
+ FRONTIER_MON_TYRANITAR_10, \
+ FRONTIER_MON_ARTICUNO_5, \
+ FRONTIER_MON_ARTICUNO_6, \
+ FRONTIER_MON_ZAPDOS_5, \
+ FRONTIER_MON_ZAPDOS_6, \
+ FRONTIER_MON_MOLTRES_5, \
+ FRONTIER_MON_MOLTRES_6, \
+ FRONTIER_MON_RAIKOU_5, \
+ FRONTIER_MON_RAIKOU_6, \
+ FRONTIER_MON_ENTEI_5, \
+ FRONTIER_MON_ENTEI_6, \
+ FRONTIER_MON_SUICUNE_5, \
+ FRONTIER_MON_SUICUNE_6, \
+ -1
+
+#define FRONTIER_MONS_COOLTRAINER_F_2A \
+ FRONTIER_MON_DUGTRIO_1, \
+ FRONTIER_MON_MEDICHAM_1, \
+ FRONTIER_MON_MISDREAVUS_1, \
+ FRONTIER_MON_FEAROW_1, \
+ FRONTIER_MON_GRANBULL_1, \
+ FRONTIER_MON_JYNX_1, \
+ FRONTIER_MON_DUSCLOPS_1, \
+ FRONTIER_MON_DODRIO_1, \
+ FRONTIER_MON_MR_MIME_1, \
+ FRONTIER_MON_LANTURN_1, \
+ FRONTIER_MON_BRELOOM_1, \
+ FRONTIER_MON_FORRETRESS_1, \
+ FRONTIER_MON_WHISCASH_1, \
+ FRONTIER_MON_XATU_1, \
+ FRONTIER_MON_SKARMORY_1, \
+ FRONTIER_MON_MAROWAK_1, \
+ FRONTIER_MON_QUAGSIRE_1, \
+ FRONTIER_MON_CLEFABLE_1, \
+ FRONTIER_MON_HARIYAMA_1, \
+ FRONTIER_MON_RAICHU_1, \
+ FRONTIER_MON_DEWGONG_1, \
+ FRONTIER_MON_MANECTRIC_1, \
+ FRONTIER_MON_VILEPLUME_1, \
+ FRONTIER_MON_VICTREEBEL_1, \
+ FRONTIER_MON_DUGTRIO_2, \
+ FRONTIER_MON_MEDICHAM_2, \
+ FRONTIER_MON_MAROWAK_2, \
+ FRONTIER_MON_QUAGSIRE_2, \
+ FRONTIER_MON_MISDREAVUS_2, \
+ FRONTIER_MON_FEAROW_2, \
+ FRONTIER_MON_GRANBULL_2, \
+ FRONTIER_MON_JYNX_2, \
+ FRONTIER_MON_DUSCLOPS_2, \
+ FRONTIER_MON_DODRIO_2, \
+ FRONTIER_MON_MR_MIME_2, \
+ FRONTIER_MON_LANTURN_2, \
+ FRONTIER_MON_BRELOOM_2, \
+ FRONTIER_MON_FORRETRESS_2, \
+ FRONTIER_MON_SKARMORY_2, \
+ FRONTIER_MON_WHISCASH_2, \
+ FRONTIER_MON_XATU_2, \
+ FRONTIER_MON_CLEFABLE_2, \
+ FRONTIER_MON_HARIYAMA_2, \
+ FRONTIER_MON_RAICHU_2, \
+ FRONTIER_MON_DEWGONG_2, \
+ FRONTIER_MON_MANECTRIC_2, \
+ FRONTIER_MON_VILEPLUME_2, \
+ FRONTIER_MON_VICTREEBEL_2, \
+ FRONTIER_MON_DUGTRIO_3, \
+ FRONTIER_MON_MEDICHAM_3, \
+ FRONTIER_MON_MISDREAVUS_3, \
+ FRONTIER_MON_FEAROW_3, \
+ FRONTIER_MON_GRANBULL_3, \
+ FRONTIER_MON_JYNX_3, \
+ FRONTIER_MON_DUSCLOPS_3, \
+ FRONTIER_MON_DODRIO_3, \
+ FRONTIER_MON_MR_MIME_3, \
+ FRONTIER_MON_LANTURN_3, \
+ FRONTIER_MON_BRELOOM_3, \
+ FRONTIER_MON_FORRETRESS_3, \
+ FRONTIER_MON_WHISCASH_3, \
+ FRONTIER_MON_XATU_3, \
+ FRONTIER_MON_SKARMORY_3, \
+ FRONTIER_MON_MAROWAK_3, \
+ FRONTIER_MON_QUAGSIRE_3, \
+ FRONTIER_MON_CLEFABLE_3, \
+ FRONTIER_MON_HARIYAMA_3, \
+ FRONTIER_MON_RAICHU_3, \
+ FRONTIER_MON_DEWGONG_3, \
+ FRONTIER_MON_MANECTRIC_3, \
+ FRONTIER_MON_VILEPLUME_3, \
+ FRONTIER_MON_VICTREEBEL_3, \
+ FRONTIER_MON_DUGTRIO_4, \
+ FRONTIER_MON_MEDICHAM_4, \
+ FRONTIER_MON_MISDREAVUS_4, \
+ FRONTIER_MON_FEAROW_4, \
+ FRONTIER_MON_GRANBULL_4, \
+ FRONTIER_MON_JYNX_4, \
+ FRONTIER_MON_DUSCLOPS_4, \
+ FRONTIER_MON_DODRIO_4, \
+ FRONTIER_MON_MR_MIME_4, \
+ FRONTIER_MON_LANTURN_4, \
+ FRONTIER_MON_BRELOOM_4, \
+ FRONTIER_MON_FORRETRESS_4, \
+ FRONTIER_MON_WHISCASH_4, \
+ FRONTIER_MON_XATU_4, \
+ FRONTIER_MON_SKARMORY_4, \
+ FRONTIER_MON_MAROWAK_4, \
+ FRONTIER_MON_QUAGSIRE_4, \
+ FRONTIER_MON_CLEFABLE_4, \
+ FRONTIER_MON_HARIYAMA_4, \
+ FRONTIER_MON_RAICHU_4, \
+ FRONTIER_MON_DEWGONG_4, \
+ FRONTIER_MON_MANECTRIC_4, \
+ FRONTIER_MON_VILEPLUME_4, \
+ FRONTIER_MON_VICTREEBEL_4, \
+ -1
+
+#define FRONTIER_MONS_COOLTRAINER_F_2B \
+ FRONTIER_MON_ELECTRODE_1, \
+ FRONTIER_MON_EXPLOUD_1, \
+ FRONTIER_MON_SHIFTRY_1, \
+ FRONTIER_MON_GLALIE_1, \
+ FRONTIER_MON_LUDICOLO_1, \
+ FRONTIER_MON_HYPNO_1, \
+ FRONTIER_MON_GOLEM_1, \
+ FRONTIER_MON_RHYDON_1, \
+ FRONTIER_MON_ALAKAZAM_1, \
+ FRONTIER_MON_WEEZING_1, \
+ FRONTIER_MON_KANGASKHAN_1, \
+ FRONTIER_MON_ELECTABUZZ_1, \
+ FRONTIER_MON_TAUROS_1, \
+ FRONTIER_MON_SLOWBRO_1, \
+ FRONTIER_MON_SLOWKING_1, \
+ FRONTIER_MON_MILTANK_1, \
+ FRONTIER_MON_ALTARIA_1, \
+ FRONTIER_MON_NIDOQUEEN_1, \
+ FRONTIER_MON_NIDOKING_1, \
+ FRONTIER_MON_MAGMAR_1, \
+ FRONTIER_MON_CRADILY_1, \
+ FRONTIER_MON_ARMALDO_1, \
+ FRONTIER_MON_GOLDUCK_1, \
+ FRONTIER_MON_RAPIDASH_1, \
+ FRONTIER_MON_ELECTRODE_2, \
+ FRONTIER_MON_EXPLOUD_2, \
+ FRONTIER_MON_SHIFTRY_2, \
+ FRONTIER_MON_GLALIE_2, \
+ FRONTIER_MON_LUDICOLO_2, \
+ FRONTIER_MON_HYPNO_2, \
+ FRONTIER_MON_GOLEM_2, \
+ FRONTIER_MON_RHYDON_2, \
+ FRONTIER_MON_ALAKAZAM_2, \
+ FRONTIER_MON_WEEZING_2, \
+ FRONTIER_MON_KANGASKHAN_2, \
+ FRONTIER_MON_ELECTABUZZ_2, \
+ FRONTIER_MON_TAUROS_2, \
+ FRONTIER_MON_SLOWBRO_2, \
+ FRONTIER_MON_SLOWKING_2, \
+ FRONTIER_MON_MILTANK_2, \
+ FRONTIER_MON_ALTARIA_2, \
+ FRONTIER_MON_NIDOQUEEN_2, \
+ FRONTIER_MON_NIDOKING_2, \
+ FRONTIER_MON_MAGMAR_2, \
+ FRONTIER_MON_CRADILY_2, \
+ FRONTIER_MON_ARMALDO_2, \
+ FRONTIER_MON_GOLDUCK_2, \
+ FRONTIER_MON_RAPIDASH_2, \
+ FRONTIER_MON_ELECTRODE_3, \
+ FRONTIER_MON_EXPLOUD_3, \
+ FRONTIER_MON_SHIFTRY_3, \
+ FRONTIER_MON_GLALIE_3, \
+ FRONTIER_MON_LUDICOLO_3, \
+ FRONTIER_MON_HYPNO_3, \
+ FRONTIER_MON_GOLEM_3, \
+ FRONTIER_MON_RHYDON_3, \
+ FRONTIER_MON_ALAKAZAM_3, \
+ FRONTIER_MON_WEEZING_3, \
+ FRONTIER_MON_KANGASKHAN_3, \
+ FRONTIER_MON_ELECTABUZZ_3, \
+ FRONTIER_MON_TAUROS_3, \
+ FRONTIER_MON_SLOWBRO_3, \
+ FRONTIER_MON_SLOWKING_3, \
+ FRONTIER_MON_MILTANK_3, \
+ FRONTIER_MON_ALTARIA_3, \
+ FRONTIER_MON_NIDOQUEEN_3, \
+ FRONTIER_MON_NIDOKING_3, \
+ FRONTIER_MON_MAGMAR_3, \
+ FRONTIER_MON_CRADILY_3, \
+ FRONTIER_MON_ARMALDO_3, \
+ FRONTIER_MON_GOLDUCK_3, \
+ FRONTIER_MON_RAPIDASH_3, \
+ FRONTIER_MON_ELECTRODE_4, \
+ FRONTIER_MON_EXPLOUD_4, \
+ FRONTIER_MON_SHIFTRY_4, \
+ FRONTIER_MON_GLALIE_4, \
+ FRONTIER_MON_LUDICOLO_4, \
+ FRONTIER_MON_HYPNO_4, \
+ FRONTIER_MON_GOLEM_4, \
+ FRONTIER_MON_RHYDON_4, \
+ FRONTIER_MON_ALAKAZAM_4, \
+ FRONTIER_MON_WEEZING_4, \
+ FRONTIER_MON_KANGASKHAN_4, \
+ FRONTIER_MON_ELECTABUZZ_4, \
+ FRONTIER_MON_TAUROS_4, \
+ FRONTIER_MON_SLOWBRO_4, \
+ FRONTIER_MON_SLOWKING_4, \
+ FRONTIER_MON_MILTANK_4, \
+ FRONTIER_MON_ALTARIA_4, \
+ FRONTIER_MON_NIDOQUEEN_4, \
+ FRONTIER_MON_NIDOKING_4, \
+ FRONTIER_MON_MAGMAR_4, \
+ FRONTIER_MON_CRADILY_4, \
+ FRONTIER_MON_ARMALDO_4, \
+ FRONTIER_MON_GOLDUCK_4, \
+ FRONTIER_MON_RAPIDASH_4, \
+ -1
+
+// Used by Pkmn Ranger M, Gentleman, Running Triathlete, and Cycling Triathlete
+#define FRONTIER_MONS_GENERAL_A \
+ FRONTIER_MON_DUGTRIO_4, \
+ FRONTIER_MON_MEDICHAM_4, \
+ FRONTIER_MON_MISDREAVUS_4, \
+ FRONTIER_MON_FEAROW_4, \
+ FRONTIER_MON_GRANBULL_4, \
+ FRONTIER_MON_JYNX_4, \
+ FRONTIER_MON_DUSCLOPS_4, \
+ FRONTIER_MON_DODRIO_4, \
+ FRONTIER_MON_MR_MIME_4, \
+ FRONTIER_MON_LANTURN_4, \
+ FRONTIER_MON_BRELOOM_4, \
+ FRONTIER_MON_FORRETRESS_4, \
+ FRONTIER_MON_WHISCASH_4, \
+ FRONTIER_MON_XATU_4, \
+ FRONTIER_MON_SKARMORY_4, \
+ FRONTIER_MON_MAROWAK_4, \
+ FRONTIER_MON_QUAGSIRE_4, \
+ FRONTIER_MON_CLEFABLE_4, \
+ FRONTIER_MON_HARIYAMA_4, \
+ FRONTIER_MON_RAICHU_4, \
+ FRONTIER_MON_DEWGONG_4, \
+ FRONTIER_MON_MANECTRIC_4, \
+ FRONTIER_MON_VILEPLUME_4, \
+ FRONTIER_MON_VICTREEBEL_4, \
+ FRONTIER_MON_ELECTRODE_4, \
+ FRONTIER_MON_EXPLOUD_4, \
+ FRONTIER_MON_SHIFTRY_4, \
+ FRONTIER_MON_GLALIE_4, \
+ FRONTIER_MON_LUDICOLO_4, \
+ FRONTIER_MON_HYPNO_4, \
+ FRONTIER_MON_GOLEM_4, \
+ FRONTIER_MON_RHYDON_4, \
+ FRONTIER_MON_ALAKAZAM_4, \
+ FRONTIER_MON_WEEZING_4, \
+ FRONTIER_MON_KANGASKHAN_4, \
+ FRONTIER_MON_ELECTABUZZ_4, \
+ FRONTIER_MON_TAUROS_4, \
+ FRONTIER_MON_SLOWBRO_4, \
+ FRONTIER_MON_SLOWKING_4, \
+ FRONTIER_MON_MILTANK_4, \
+ FRONTIER_MON_ALTARIA_4, \
+ FRONTIER_MON_NIDOQUEEN_4, \
+ FRONTIER_MON_NIDOKING_4, \
+ FRONTIER_MON_MAGMAR_4, \
+ FRONTIER_MON_CRADILY_4, \
+ FRONTIER_MON_ARMALDO_4, \
+ FRONTIER_MON_GOLDUCK_4, \
+ FRONTIER_MON_RAPIDASH_4, \
+ FRONTIER_MON_MUK_4, \
+ FRONTIER_MON_GENGAR_4, \
+ FRONTIER_MON_AMPHAROS_4, \
+ FRONTIER_MON_SCIZOR_4, \
+ FRONTIER_MON_HERACROSS_4, \
+ FRONTIER_MON_URSARING_4, \
+ FRONTIER_MON_HOUNDOOM_4, \
+ FRONTIER_MON_DONPHAN_4, \
+ FRONTIER_MON_CLAYDOL_4, \
+ FRONTIER_MON_WAILORD_4, \
+ FRONTIER_MON_NINETALES_4, \
+ FRONTIER_MON_MACHAMP_4, \
+ FRONTIER_MON_SHUCKLE_4, \
+ FRONTIER_MON_STEELIX_4, \
+ FRONTIER_MON_TENTACRUEL_4, \
+ FRONTIER_MON_AERODACTYL_4, \
+ FRONTIER_MON_PORYGON2_4, \
+ FRONTIER_MON_GARDEVOIR_4, \
+ FRONTIER_MON_EXEGGUTOR_4, \
+ FRONTIER_MON_STARMIE_4, \
+ FRONTIER_MON_FLYGON_4, \
+ FRONTIER_MON_VENUSAUR_4, \
+ FRONTIER_MON_VAPOREON_4, \
+ FRONTIER_MON_JOLTEON_4, \
+ FRONTIER_MON_FLAREON_4, \
+ FRONTIER_MON_MEGANIUM_4, \
+ FRONTIER_MON_ESPEON_4, \
+ FRONTIER_MON_UMBREON_4, \
+ FRONTIER_MON_BLASTOISE_4, \
+ FRONTIER_MON_FERALIGATR_4, \
+ FRONTIER_MON_AGGRON_4, \
+ FRONTIER_MON_BLAZIKEN_4, \
+ FRONTIER_MON_WALREIN_4, \
+ FRONTIER_MON_SCEPTILE_4, \
+ FRONTIER_MON_CHARIZARD_4, \
+ FRONTIER_MON_TYPHLOSION_4, \
+ FRONTIER_MON_LAPRAS_4, \
+ FRONTIER_MON_CROBAT_4, \
+ FRONTIER_MON_SWAMPERT_4, \
+ FRONTIER_MON_GYARADOS_4, \
+ FRONTIER_MON_SNORLAX_4, \
+ FRONTIER_MON_KINGDRA_4, \
+ FRONTIER_MON_BLISSEY_4, \
+ FRONTIER_MON_MILOTIC_4, \
+ FRONTIER_MON_ARCANINE_4, \
+ FRONTIER_MON_SALAMENCE_4, \
+ FRONTIER_MON_METAGROSS_4, \
+ FRONTIER_MON_SLAKING_4, \
+ -1
+
+// Identical to FRONTIER_MONS_GENERAL_A but _3
+// Used by Pkmn Ranger, Running Triathlete, and Cycling Triathlete
+#define FRONTIER_MONS_GENERAL_B \
+ FRONTIER_MON_DUGTRIO_3, \
+ FRONTIER_MON_MEDICHAM_3, \
+ FRONTIER_MON_MISDREAVUS_3, \
+ FRONTIER_MON_FEAROW_3, \
+ FRONTIER_MON_GRANBULL_3, \
+ FRONTIER_MON_JYNX_3, \
+ FRONTIER_MON_DUSCLOPS_3, \
+ FRONTIER_MON_DODRIO_3, \
+ FRONTIER_MON_MR_MIME_3, \
+ FRONTIER_MON_LANTURN_3, \
+ FRONTIER_MON_BRELOOM_3, \
+ FRONTIER_MON_FORRETRESS_3, \
+ FRONTIER_MON_WHISCASH_3, \
+ FRONTIER_MON_XATU_3, \
+ FRONTIER_MON_SKARMORY_3, \
+ FRONTIER_MON_MAROWAK_3, \
+ FRONTIER_MON_QUAGSIRE_3, \
+ FRONTIER_MON_CLEFABLE_3, \
+ FRONTIER_MON_HARIYAMA_3, \
+ FRONTIER_MON_RAICHU_3, \
+ FRONTIER_MON_DEWGONG_3, \
+ FRONTIER_MON_MANECTRIC_3, \
+ FRONTIER_MON_VILEPLUME_3, \
+ FRONTIER_MON_VICTREEBEL_3, \
+ FRONTIER_MON_ELECTRODE_3, \
+ FRONTIER_MON_EXPLOUD_3, \
+ FRONTIER_MON_SHIFTRY_3, \
+ FRONTIER_MON_GLALIE_3, \
+ FRONTIER_MON_LUDICOLO_3, \
+ FRONTIER_MON_HYPNO_3, \
+ FRONTIER_MON_GOLEM_3, \
+ FRONTIER_MON_RHYDON_3, \
+ FRONTIER_MON_ALAKAZAM_3, \
+ FRONTIER_MON_WEEZING_3, \
+ FRONTIER_MON_KANGASKHAN_3, \
+ FRONTIER_MON_ELECTABUZZ_3, \
+ FRONTIER_MON_TAUROS_3, \
+ FRONTIER_MON_SLOWBRO_3, \
+ FRONTIER_MON_SLOWKING_3, \
+ FRONTIER_MON_MILTANK_3, \
+ FRONTIER_MON_ALTARIA_3, \
+ FRONTIER_MON_NIDOQUEEN_3, \
+ FRONTIER_MON_NIDOKING_3, \
+ FRONTIER_MON_MAGMAR_3, \
+ FRONTIER_MON_CRADILY_3, \
+ FRONTIER_MON_ARMALDO_3, \
+ FRONTIER_MON_GOLDUCK_3, \
+ FRONTIER_MON_RAPIDASH_3, \
+ FRONTIER_MON_MUK_3, \
+ FRONTIER_MON_GENGAR_3, \
+ FRONTIER_MON_AMPHAROS_3, \
+ FRONTIER_MON_SCIZOR_3, \
+ FRONTIER_MON_HERACROSS_3, \
+ FRONTIER_MON_URSARING_3, \
+ FRONTIER_MON_HOUNDOOM_3, \
+ FRONTIER_MON_DONPHAN_3, \
+ FRONTIER_MON_CLAYDOL_3, \
+ FRONTIER_MON_WAILORD_3, \
+ FRONTIER_MON_NINETALES_3, \
+ FRONTIER_MON_MACHAMP_3, \
+ FRONTIER_MON_SHUCKLE_3, \
+ FRONTIER_MON_STEELIX_3, \
+ FRONTIER_MON_TENTACRUEL_3, \
+ FRONTIER_MON_AERODACTYL_3, \
+ FRONTIER_MON_PORYGON2_3, \
+ FRONTIER_MON_GARDEVOIR_3, \
+ FRONTIER_MON_EXEGGUTOR_3, \
+ FRONTIER_MON_STARMIE_3, \
+ FRONTIER_MON_FLYGON_3, \
+ FRONTIER_MON_VENUSAUR_3, \
+ FRONTIER_MON_VAPOREON_3, \
+ FRONTIER_MON_JOLTEON_3, \
+ FRONTIER_MON_FLAREON_3, \
+ FRONTIER_MON_MEGANIUM_3, \
+ FRONTIER_MON_ESPEON_3, \
+ FRONTIER_MON_UMBREON_3, \
+ FRONTIER_MON_BLASTOISE_3, \
+ FRONTIER_MON_FERALIGATR_3, \
+ FRONTIER_MON_AGGRON_3, \
+ FRONTIER_MON_BLAZIKEN_3, \
+ FRONTIER_MON_WALREIN_3, \
+ FRONTIER_MON_SCEPTILE_3, \
+ FRONTIER_MON_CHARIZARD_3, \
+ FRONTIER_MON_TYPHLOSION_3, \
+ FRONTIER_MON_LAPRAS_3, \
+ FRONTIER_MON_CROBAT_3, \
+ FRONTIER_MON_SWAMPERT_3, \
+ FRONTIER_MON_GYARADOS_3, \
+ FRONTIER_MON_SNORLAX_3, \
+ FRONTIER_MON_KINGDRA_3, \
+ FRONTIER_MON_BLISSEY_3, \
+ FRONTIER_MON_MILOTIC_3, \
+ FRONTIER_MON_ARCANINE_3, \
+ FRONTIER_MON_SALAMENCE_3, \
+ FRONTIER_MON_METAGROSS_3, \
+ FRONTIER_MON_SLAKING_3, \
+ -1
+
+// Similar to FRONTIER_MONS_GENERAL_A/B but _2
+// Used by Pkmn Ranger, Running Triathlete, and Cycling Triathlete
+#define FRONTIER_MONS_GENERAL_C \
+ FRONTIER_MON_DUGTRIO_2, \
+ FRONTIER_MON_MEDICHAM_2, \
+ FRONTIER_MON_MAROWAK_2, \
+ FRONTIER_MON_QUAGSIRE_2, \
+ FRONTIER_MON_MISDREAVUS_2, \
+ FRONTIER_MON_FEAROW_2, \
+ FRONTIER_MON_GRANBULL_2, \
+ FRONTIER_MON_JYNX_2, \
+ FRONTIER_MON_DUSCLOPS_2, \
+ FRONTIER_MON_DODRIO_2, \
+ FRONTIER_MON_MR_MIME_2, \
+ FRONTIER_MON_LANTURN_2, \
+ FRONTIER_MON_BRELOOM_2, \
+ FRONTIER_MON_FORRETRESS_2, \
+ FRONTIER_MON_SKARMORY_2, \
+ FRONTIER_MON_WHISCASH_2, \
+ FRONTIER_MON_XATU_2, \
+ FRONTIER_MON_CLEFABLE_2, \
+ FRONTIER_MON_HARIYAMA_2, \
+ FRONTIER_MON_RAICHU_2, \
+ FRONTIER_MON_DEWGONG_2, \
+ FRONTIER_MON_MANECTRIC_2, \
+ FRONTIER_MON_VILEPLUME_2, \
+ FRONTIER_MON_VICTREEBEL_2, \
+ FRONTIER_MON_ELECTRODE_2, \
+ FRONTIER_MON_EXPLOUD_2, \
+ FRONTIER_MON_SHIFTRY_2, \
+ FRONTIER_MON_GLALIE_2, \
+ FRONTIER_MON_LUDICOLO_2, \
+ FRONTIER_MON_HYPNO_2, \
+ FRONTIER_MON_GOLEM_2, \
+ FRONTIER_MON_RHYDON_2, \
+ FRONTIER_MON_ALAKAZAM_2, \
+ FRONTIER_MON_WEEZING_2, \
+ FRONTIER_MON_KANGASKHAN_2, \
+ FRONTIER_MON_ELECTABUZZ_2, \
+ FRONTIER_MON_TAUROS_2, \
+ FRONTIER_MON_SLOWBRO_2, \
+ FRONTIER_MON_SLOWKING_2, \
+ FRONTIER_MON_MILTANK_2, \
+ FRONTIER_MON_ALTARIA_2, \
+ FRONTIER_MON_NIDOQUEEN_2, \
+ FRONTIER_MON_NIDOKING_2, \
+ FRONTIER_MON_MAGMAR_2, \
+ FRONTIER_MON_CRADILY_2, \
+ FRONTIER_MON_ARMALDO_2, \
+ FRONTIER_MON_GOLDUCK_2, \
+ FRONTIER_MON_RAPIDASH_2, \
+ FRONTIER_MON_MUK_2, \
+ FRONTIER_MON_GENGAR_2, \
+ FRONTIER_MON_AMPHAROS_2, \
+ FRONTIER_MON_SCIZOR_2, \
+ FRONTIER_MON_HERACROSS_2, \
+ FRONTIER_MON_URSARING_2, \
+ FRONTIER_MON_HOUNDOOM_2, \
+ FRONTIER_MON_DONPHAN_2, \
+ FRONTIER_MON_CLAYDOL_2, \
+ FRONTIER_MON_WAILORD_2, \
+ FRONTIER_MON_NINETALES_2, \
+ FRONTIER_MON_MACHAMP_2, \
+ FRONTIER_MON_SHUCKLE_2, \
+ FRONTIER_MON_STEELIX_2, \
+ FRONTIER_MON_TENTACRUEL_2, \
+ FRONTIER_MON_AERODACTYL_2, \
+ FRONTIER_MON_PORYGON2_2, \
+ FRONTIER_MON_GARDEVOIR_2, \
+ FRONTIER_MON_EXEGGUTOR_2, \
+ FRONTIER_MON_STARMIE_2, \
+ FRONTIER_MON_FLYGON_2, \
+ FRONTIER_MON_VENUSAUR_2, \
+ FRONTIER_MON_VAPOREON_2, \
+ FRONTIER_MON_JOLTEON_2, \
+ FRONTIER_MON_FLAREON_2, \
+ FRONTIER_MON_MEGANIUM_2, \
+ FRONTIER_MON_ESPEON_2, \
+ FRONTIER_MON_UMBREON_2, \
+ FRONTIER_MON_BLASTOISE_2, \
+ FRONTIER_MON_FERALIGATR_2, \
+ FRONTIER_MON_AGGRON_2, \
+ FRONTIER_MON_BLAZIKEN_2, \
+ FRONTIER_MON_WALREIN_2, \
+ FRONTIER_MON_SCEPTILE_2, \
+ FRONTIER_MON_CHARIZARD_2, \
+ FRONTIER_MON_TYPHLOSION_2, \
+ FRONTIER_MON_LAPRAS_2, \
+ FRONTIER_MON_CROBAT_2, \
+ FRONTIER_MON_SWAMPERT_2, \
+ FRONTIER_MON_GYARADOS_2, \
+ FRONTIER_MON_SNORLAX_2, \
+ FRONTIER_MON_KINGDRA_2, \
+ FRONTIER_MON_BLISSEY_2, \
+ FRONTIER_MON_MILOTIC_2, \
+ FRONTIER_MON_ARCANINE_2, \
+ FRONTIER_MON_SALAMENCE_2, \
+ FRONTIER_MON_METAGROSS_2, \
+ FRONTIER_MON_SLAKING_2, \
+ -1
+
+// Similar to FRONTIER_MONS_GENERAL_C but _1 (would be identical if not for re-ordering)
+// Used by Pkmn Ranger, Running Triathlete, Cycling Triathlete
+#define FRONTIER_MONS_GENERAL_D \
+ FRONTIER_MON_DUGTRIO_1, \
+ FRONTIER_MON_MEDICHAM_1, \
+ FRONTIER_MON_MISDREAVUS_1, \
+ FRONTIER_MON_FEAROW_1, \
+ FRONTIER_MON_GRANBULL_1, \
+ FRONTIER_MON_JYNX_1, \
+ FRONTIER_MON_DUSCLOPS_1, \
+ FRONTIER_MON_DODRIO_1, \
+ FRONTIER_MON_MR_MIME_1, \
+ FRONTIER_MON_LANTURN_1, \
+ FRONTIER_MON_BRELOOM_1, \
+ FRONTIER_MON_FORRETRESS_1, \
+ FRONTIER_MON_WHISCASH_1, \
+ FRONTIER_MON_XATU_1, \
+ FRONTIER_MON_SKARMORY_1, \
+ FRONTIER_MON_MAROWAK_1, \
+ FRONTIER_MON_QUAGSIRE_1, \
+ FRONTIER_MON_CLEFABLE_1, \
+ FRONTIER_MON_HARIYAMA_1, \
+ FRONTIER_MON_RAICHU_1, \
+ FRONTIER_MON_DEWGONG_1, \
+ FRONTIER_MON_MANECTRIC_1, \
+ FRONTIER_MON_VILEPLUME_1, \
+ FRONTIER_MON_VICTREEBEL_1, \
+ FRONTIER_MON_ELECTRODE_1, \
+ FRONTIER_MON_EXPLOUD_1, \
+ FRONTIER_MON_SHIFTRY_1, \
+ FRONTIER_MON_GLALIE_1, \
+ FRONTIER_MON_LUDICOLO_1, \
+ FRONTIER_MON_HYPNO_1, \
+ FRONTIER_MON_GOLEM_1, \
+ FRONTIER_MON_RHYDON_1, \
+ FRONTIER_MON_ALAKAZAM_1, \
+ FRONTIER_MON_WEEZING_1, \
+ FRONTIER_MON_KANGASKHAN_1, \
+ FRONTIER_MON_ELECTABUZZ_1, \
+ FRONTIER_MON_TAUROS_1, \
+ FRONTIER_MON_SLOWBRO_1, \
+ FRONTIER_MON_SLOWKING_1, \
+ FRONTIER_MON_MILTANK_1, \
+ FRONTIER_MON_ALTARIA_1, \
+ FRONTIER_MON_NIDOQUEEN_1, \
+ FRONTIER_MON_NIDOKING_1, \
+ FRONTIER_MON_MAGMAR_1, \
+ FRONTIER_MON_CRADILY_1, \
+ FRONTIER_MON_ARMALDO_1, \
+ FRONTIER_MON_GOLDUCK_1, \
+ FRONTIER_MON_RAPIDASH_1, \
+ FRONTIER_MON_MUK_1, \
+ FRONTIER_MON_GENGAR_1, \
+ FRONTIER_MON_AMPHAROS_1, \
+ FRONTIER_MON_SCIZOR_1, \
+ FRONTIER_MON_HERACROSS_1, \
+ FRONTIER_MON_URSARING_1, \
+ FRONTIER_MON_HOUNDOOM_1, \
+ FRONTIER_MON_DONPHAN_1, \
+ FRONTIER_MON_CLAYDOL_1, \
+ FRONTIER_MON_WAILORD_1, \
+ FRONTIER_MON_NINETALES_1, \
+ FRONTIER_MON_MACHAMP_1, \
+ FRONTIER_MON_SHUCKLE_1, \
+ FRONTIER_MON_STEELIX_1, \
+ FRONTIER_MON_TENTACRUEL_1, \
+ FRONTIER_MON_AERODACTYL_1, \
+ FRONTIER_MON_PORYGON2_1, \
+ FRONTIER_MON_GARDEVOIR_1, \
+ FRONTIER_MON_EXEGGUTOR_1, \
+ FRONTIER_MON_STARMIE_1, \
+ FRONTIER_MON_FLYGON_1, \
+ FRONTIER_MON_VENUSAUR_1, \
+ FRONTIER_MON_VAPOREON_1, \
+ FRONTIER_MON_JOLTEON_1, \
+ FRONTIER_MON_FLAREON_1, \
+ FRONTIER_MON_MEGANIUM_1, \
+ FRONTIER_MON_ESPEON_1, \
+ FRONTIER_MON_UMBREON_1, \
+ FRONTIER_MON_BLASTOISE_1, \
+ FRONTIER_MON_FERALIGATR_1, \
+ FRONTIER_MON_AGGRON_1, \
+ FRONTIER_MON_BLAZIKEN_1, \
+ FRONTIER_MON_WALREIN_1, \
+ FRONTIER_MON_SCEPTILE_1, \
+ FRONTIER_MON_CHARIZARD_1, \
+ FRONTIER_MON_TYPHLOSION_1, \
+ FRONTIER_MON_LAPRAS_1, \
+ FRONTIER_MON_CROBAT_1, \
+ FRONTIER_MON_SWAMPERT_1, \
+ FRONTIER_MON_GYARADOS_1, \
+ FRONTIER_MON_SNORLAX_1, \
+ FRONTIER_MON_KINGDRA_1, \
+ FRONTIER_MON_BLISSEY_1, \
+ FRONTIER_MON_MILOTIC_1, \
+ FRONTIER_MON_ARCANINE_1, \
+ FRONTIER_MON_SALAMENCE_1, \
+ FRONTIER_MON_METAGROSS_1, \
+ FRONTIER_MON_SLAKING_1, \
+ -1
+
+#define FRONTIER_MONS_DRAGON_TAMER_2 \
+ FRONTIER_MON_RHYDON_1, \
+ FRONTIER_MON_ALTARIA_1, \
+ FRONTIER_MON_NIDOQUEEN_1, \
+ FRONTIER_MON_NIDOKING_1, \
+ FRONTIER_MON_STEELIX_1, \
+ FRONTIER_MON_AERODACTYL_1, \
+ FRONTIER_MON_FLYGON_1, \
+ FRONTIER_MON_AGGRON_1, \
+ FRONTIER_MON_CHARIZARD_1, \
+ FRONTIER_MON_LAPRAS_1, \
+ FRONTIER_MON_GYARADOS_1, \
+ FRONTIER_MON_KINGDRA_1, \
+ FRONTIER_MON_MILOTIC_1, \
+ FRONTIER_MON_SALAMENCE_1, \
+ FRONTIER_MON_RHYDON_2, \
+ FRONTIER_MON_ALTARIA_2, \
+ FRONTIER_MON_NIDOQUEEN_2, \
+ FRONTIER_MON_NIDOKING_2, \
+ FRONTIER_MON_STEELIX_2, \
+ FRONTIER_MON_AERODACTYL_2, \
+ FRONTIER_MON_FLYGON_2, \
+ FRONTIER_MON_AGGRON_2, \
+ FRONTIER_MON_CHARIZARD_2, \
+ FRONTIER_MON_LAPRAS_2, \
+ FRONTIER_MON_GYARADOS_2, \
+ FRONTIER_MON_KINGDRA_2, \
+ FRONTIER_MON_MILOTIC_2, \
+ FRONTIER_MON_SALAMENCE_2, \
+ FRONTIER_MON_RHYDON_3, \
+ FRONTIER_MON_ALTARIA_3, \
+ FRONTIER_MON_NIDOQUEEN_3, \
+ FRONTIER_MON_NIDOKING_3, \
+ FRONTIER_MON_STEELIX_3, \
+ FRONTIER_MON_AERODACTYL_3, \
+ FRONTIER_MON_FLYGON_3, \
+ FRONTIER_MON_AGGRON_3, \
+ FRONTIER_MON_CHARIZARD_3, \
+ FRONTIER_MON_LAPRAS_3, \
+ FRONTIER_MON_GYARADOS_3, \
+ FRONTIER_MON_KINGDRA_3, \
+ FRONTIER_MON_MILOTIC_3, \
+ FRONTIER_MON_SALAMENCE_3, \
+ FRONTIER_MON_RHYDON_4, \
+ FRONTIER_MON_ALTARIA_4, \
+ FRONTIER_MON_NIDOQUEEN_4, \
+ FRONTIER_MON_NIDOKING_4, \
+ FRONTIER_MON_STEELIX_4, \
+ FRONTIER_MON_AERODACTYL_4, \
+ FRONTIER_MON_FLYGON_4, \
+ FRONTIER_MON_AGGRON_4, \
+ FRONTIER_MON_CHARIZARD_4, \
+ FRONTIER_MON_LAPRAS_4, \
+ FRONTIER_MON_GYARADOS_4, \
+ FRONTIER_MON_KINGDRA_4, \
+ FRONTIER_MON_MILOTIC_4, \
+ FRONTIER_MON_SALAMENCE_4, \
+ FRONTIER_MON_LATIAS_1, \
+ FRONTIER_MON_LATIOS_1, \
+ FRONTIER_MON_LATIAS_2, \
+ FRONTIER_MON_LATIOS_2, \
+ FRONTIER_MON_LATIAS_3, \
+ FRONTIER_MON_LATIOS_3, \
+ FRONTIER_MON_LATIAS_4, \
+ FRONTIER_MON_LATIOS_4, \
+ FRONTIER_MON_SALAMENCE_5, \
+ FRONTIER_MON_SALAMENCE_6, \
+ FRONTIER_MON_SALAMENCE_7, \
+ FRONTIER_MON_SALAMENCE_8, \
+ FRONTIER_MON_LATIAS_5, \
+ FRONTIER_MON_LATIAS_6, \
+ FRONTIER_MON_LATIAS_7, \
+ FRONTIER_MON_LATIAS_8, \
+ FRONTIER_MON_LATIOS_5, \
+ FRONTIER_MON_LATIOS_6, \
+ FRONTIER_MON_LATIOS_7, \
+ FRONTIER_MON_LATIOS_8, \
+ FRONTIER_MON_DRAGONITE_1, \
+ FRONTIER_MON_DRAGONITE_2, \
+ FRONTIER_MON_DRAGONITE_3, \
+ FRONTIER_MON_DRAGONITE_4, \
+ FRONTIER_MON_DRAGONITE_5, \
+ FRONTIER_MON_DRAGONITE_6, \
+ FRONTIER_MON_DRAGONITE_7, \
+ FRONTIER_MON_DRAGONITE_8, \
+ FRONTIER_MON_DRAGONITE_9, \
+ FRONTIER_MON_DRAGONITE_10, \
+ FRONTIER_MON_TYRANITAR_1, \
+ FRONTIER_MON_TYRANITAR_2, \
+ FRONTIER_MON_TYRANITAR_3, \
+ FRONTIER_MON_TYRANITAR_4, \
+ FRONTIER_MON_TYRANITAR_5, \
+ FRONTIER_MON_TYRANITAR_6, \
+ FRONTIER_MON_TYRANITAR_7, \
+ FRONTIER_MON_TYRANITAR_8, \
+ FRONTIER_MON_TYRANITAR_9, \
+ FRONTIER_MON_TYRANITAR_10, \
+ -1
+
+#define FRONTIER_MONS_BLACK_BELT_2A \
+ FRONTIER_MON_MEDICHAM_1, \
+ FRONTIER_MON_BRELOOM_1, \
+ FRONTIER_MON_HARIYAMA_1, \
+ FRONTIER_MON_GOLEM_1, \
+ FRONTIER_MON_RHYDON_1, \
+ FRONTIER_MON_CRADILY_1, \
+ FRONTIER_MON_ARMALDO_1, \
+ FRONTIER_MON_HERACROSS_1, \
+ FRONTIER_MON_MACHAMP_1, \
+ FRONTIER_MON_SHUCKLE_1, \
+ FRONTIER_MON_AERODACTYL_1, \
+ FRONTIER_MON_AGGRON_1, \
+ FRONTIER_MON_BLAZIKEN_1, \
+ FRONTIER_MON_MEDICHAM_2, \
+ FRONTIER_MON_BRELOOM_2, \
+ FRONTIER_MON_HARIYAMA_2, \
+ FRONTIER_MON_GOLEM_2, \
+ FRONTIER_MON_RHYDON_2, \
+ FRONTIER_MON_CRADILY_2, \
+ FRONTIER_MON_ARMALDO_2, \
+ FRONTIER_MON_HERACROSS_2, \
+ FRONTIER_MON_MACHAMP_2, \
+ FRONTIER_MON_SHUCKLE_2, \
+ FRONTIER_MON_AERODACTYL_2, \
+ FRONTIER_MON_AGGRON_2, \
+ FRONTIER_MON_BLAZIKEN_2, \
+ FRONTIER_MON_MEDICHAM_3, \
+ FRONTIER_MON_BRELOOM_3, \
+ FRONTIER_MON_HARIYAMA_3, \
+ FRONTIER_MON_GOLEM_3, \
+ FRONTIER_MON_RHYDON_3, \
+ FRONTIER_MON_CRADILY_3, \
+ FRONTIER_MON_ARMALDO_3, \
+ FRONTIER_MON_HERACROSS_3, \
+ FRONTIER_MON_MACHAMP_3, \
+ FRONTIER_MON_SHUCKLE_3, \
+ FRONTIER_MON_AERODACTYL_3, \
+ FRONTIER_MON_AGGRON_3, \
+ FRONTIER_MON_BLAZIKEN_3, \
+ FRONTIER_MON_MEDICHAM_4, \
+ FRONTIER_MON_BRELOOM_4, \
+ FRONTIER_MON_HARIYAMA_4, \
+ FRONTIER_MON_GOLEM_4, \
+ FRONTIER_MON_RHYDON_4, \
+ FRONTIER_MON_CRADILY_4, \
+ FRONTIER_MON_ARMALDO_4, \
+ FRONTIER_MON_HERACROSS_4, \
+ FRONTIER_MON_MACHAMP_4, \
+ FRONTIER_MON_SHUCKLE_4, \
+ FRONTIER_MON_AERODACTYL_4, \
+ FRONTIER_MON_AGGRON_4, \
+ FRONTIER_MON_BLAZIKEN_4, \
+ FRONTIER_MON_MACHAMP_5, \
+ FRONTIER_MON_MACHAMP_6, \
+ FRONTIER_MON_MACHAMP_7, \
+ FRONTIER_MON_MACHAMP_8, \
+ -1
+
+#define FRONTIER_MONS_BATTLE_GIRL_2A \
+ FRONTIER_MON_MEDICHAM_1, \
+ FRONTIER_MON_BRELOOM_1, \
+ FRONTIER_MON_MAROWAK_1, \
+ FRONTIER_MON_HARIYAMA_1, \
+ FRONTIER_MON_GOLEM_1, \
+ FRONTIER_MON_RHYDON_1, \
+ FRONTIER_MON_NIDOQUEEN_1, \
+ FRONTIER_MON_NIDOKING_1, \
+ FRONTIER_MON_HERACROSS_1, \
+ FRONTIER_MON_DONPHAN_1, \
+ FRONTIER_MON_MACHAMP_1, \
+ FRONTIER_MON_STEELIX_1, \
+ FRONTIER_MON_BLAZIKEN_1, \
+ FRONTIER_MON_MEDICHAM_2, \
+ FRONTIER_MON_MAROWAK_2, \
+ FRONTIER_MON_BRELOOM_2, \
+ FRONTIER_MON_HARIYAMA_2, \
+ FRONTIER_MON_GOLEM_2, \
+ FRONTIER_MON_RHYDON_2, \
+ FRONTIER_MON_NIDOQUEEN_2, \
+ FRONTIER_MON_NIDOKING_2, \
+ FRONTIER_MON_HERACROSS_2, \
+ FRONTIER_MON_DONPHAN_2, \
+ FRONTIER_MON_MACHAMP_2, \
+ FRONTIER_MON_STEELIX_2, \
+ FRONTIER_MON_BLAZIKEN_2, \
+ FRONTIER_MON_MEDICHAM_3, \
+ FRONTIER_MON_BRELOOM_3, \
+ FRONTIER_MON_MAROWAK_3, \
+ FRONTIER_MON_HARIYAMA_3, \
+ FRONTIER_MON_GOLEM_3, \
+ FRONTIER_MON_RHYDON_3, \
+ FRONTIER_MON_NIDOQUEEN_3, \
+ FRONTIER_MON_NIDOKING_3, \
+ FRONTIER_MON_HERACROSS_3, \
+ FRONTIER_MON_DONPHAN_3, \
+ FRONTIER_MON_MACHAMP_3, \
+ FRONTIER_MON_STEELIX_3, \
+ FRONTIER_MON_BLAZIKEN_3, \
+ FRONTIER_MON_MEDICHAM_4, \
+ FRONTIER_MON_BRELOOM_4, \
+ FRONTIER_MON_MAROWAK_4, \
+ FRONTIER_MON_HARIYAMA_4, \
+ FRONTIER_MON_GOLEM_4, \
+ FRONTIER_MON_RHYDON_4, \
+ FRONTIER_MON_NIDOQUEEN_4, \
+ FRONTIER_MON_NIDOKING_4, \
+ FRONTIER_MON_HERACROSS_4, \
+ FRONTIER_MON_DONPHAN_4, \
+ FRONTIER_MON_MACHAMP_4, \
+ FRONTIER_MON_STEELIX_4, \
+ FRONTIER_MON_BLAZIKEN_4, \
+ FRONTIER_MON_MACHAMP_5, \
+ FRONTIER_MON_MACHAMP_6, \
+ FRONTIER_MON_MACHAMP_7, \
+ FRONTIER_MON_MACHAMP_8, \
+ -1
+
+#define FRONTIER_MONS_BLACK_BELT_BATTLE_GIRL_2B \
+ FRONTIER_MON_MEDICHAM_1, \
+ FRONTIER_MON_BRELOOM_1, \
+ FRONTIER_MON_HARIYAMA_1, \
+ FRONTIER_MON_MAGMAR_1, \
+ FRONTIER_MON_RAPIDASH_1, \
+ FRONTIER_MON_HERACROSS_1, \
+ FRONTIER_MON_HOUNDOOM_1, \
+ FRONTIER_MON_NINETALES_1, \
+ FRONTIER_MON_MACHAMP_1, \
+ FRONTIER_MON_FLAREON_1, \
+ FRONTIER_MON_BLAZIKEN_1, \
+ FRONTIER_MON_CHARIZARD_1, \
+ FRONTIER_MON_TYPHLOSION_1, \
+ FRONTIER_MON_ARCANINE_1, \
+ FRONTIER_MON_MEDICHAM_2, \
+ FRONTIER_MON_BRELOOM_2, \
+ FRONTIER_MON_HARIYAMA_2, \
+ FRONTIER_MON_MAGMAR_2, \
+ FRONTIER_MON_RAPIDASH_2, \
+ FRONTIER_MON_HERACROSS_2, \
+ FRONTIER_MON_HOUNDOOM_2, \
+ FRONTIER_MON_NINETALES_2, \
+ FRONTIER_MON_MACHAMP_2, \
+ FRONTIER_MON_FLAREON_2, \
+ FRONTIER_MON_BLAZIKEN_2, \
+ FRONTIER_MON_CHARIZARD_2, \
+ FRONTIER_MON_TYPHLOSION_2, \
+ FRONTIER_MON_ARCANINE_2, \
+ FRONTIER_MON_MEDICHAM_3, \
+ FRONTIER_MON_BRELOOM_3, \
+ FRONTIER_MON_HARIYAMA_3, \
+ FRONTIER_MON_MAGMAR_3, \
+ FRONTIER_MON_RAPIDASH_3, \
+ FRONTIER_MON_HERACROSS_3, \
+ FRONTIER_MON_HOUNDOOM_3, \
+ FRONTIER_MON_NINETALES_3, \
+ FRONTIER_MON_MACHAMP_3, \
+ FRONTIER_MON_FLAREON_3, \
+ FRONTIER_MON_BLAZIKEN_3, \
+ FRONTIER_MON_CHARIZARD_3, \
+ FRONTIER_MON_TYPHLOSION_3, \
+ FRONTIER_MON_ARCANINE_3, \
+ FRONTIER_MON_MEDICHAM_4, \
+ FRONTIER_MON_BRELOOM_4, \
+ FRONTIER_MON_HARIYAMA_4, \
+ FRONTIER_MON_MAGMAR_4, \
+ FRONTIER_MON_RAPIDASH_4, \
+ FRONTIER_MON_HERACROSS_4, \
+ FRONTIER_MON_HOUNDOOM_4, \
+ FRONTIER_MON_NINETALES_4, \
+ FRONTIER_MON_MACHAMP_4, \
+ FRONTIER_MON_FLAREON_4, \
+ FRONTIER_MON_BLAZIKEN_4, \
+ FRONTIER_MON_CHARIZARD_4, \
+ FRONTIER_MON_TYPHLOSION_4, \
+ FRONTIER_MON_ARCANINE_4, \
+ FRONTIER_MON_MACHAMP_5, \
+ FRONTIER_MON_MACHAMP_6, \
+ FRONTIER_MON_MACHAMP_7, \
+ FRONTIER_MON_MACHAMP_8, \
+ -1
+
+#define FRONTIER_MONS_BLACK_BELT_BATTLE_GIRL_2C \
+ FRONTIER_MON_MEDICHAM_1, \
+ FRONTIER_MON_BRELOOM_1, \
+ FRONTIER_MON_FORRETRESS_1, \
+ FRONTIER_MON_SKARMORY_1, \
+ FRONTIER_MON_HARIYAMA_1, \
+ FRONTIER_MON_SCIZOR_1, \
+ FRONTIER_MON_HERACROSS_1, \
+ FRONTIER_MON_MACHAMP_1, \
+ FRONTIER_MON_STEELIX_1, \
+ FRONTIER_MON_AGGRON_1, \
+ FRONTIER_MON_BLAZIKEN_1, \
+ FRONTIER_MON_METAGROSS_1, \
+ FRONTIER_MON_MEDICHAM_2, \
+ FRONTIER_MON_BRELOOM_2, \
+ FRONTIER_MON_FORRETRESS_2, \
+ FRONTIER_MON_SKARMORY_2, \
+ FRONTIER_MON_HARIYAMA_2, \
+ FRONTIER_MON_SCIZOR_2, \
+ FRONTIER_MON_HERACROSS_2, \
+ FRONTIER_MON_MACHAMP_2, \
+ FRONTIER_MON_STEELIX_2, \
+ FRONTIER_MON_AGGRON_2, \
+ FRONTIER_MON_BLAZIKEN_2, \
+ FRONTIER_MON_METAGROSS_2, \
+ FRONTIER_MON_MEDICHAM_3, \
+ FRONTIER_MON_BRELOOM_3, \
+ FRONTIER_MON_FORRETRESS_3, \
+ FRONTIER_MON_SKARMORY_3, \
+ FRONTIER_MON_HARIYAMA_3, \
+ FRONTIER_MON_SCIZOR_3, \
+ FRONTIER_MON_HERACROSS_3, \
+ FRONTIER_MON_MACHAMP_3, \
+ FRONTIER_MON_STEELIX_3, \
+ FRONTIER_MON_AGGRON_3, \
+ FRONTIER_MON_BLAZIKEN_3, \
+ FRONTIER_MON_METAGROSS_3, \
+ FRONTIER_MON_MEDICHAM_4, \
+ FRONTIER_MON_BRELOOM_4, \
+ FRONTIER_MON_FORRETRESS_4, \
+ FRONTIER_MON_SKARMORY_4, \
+ FRONTIER_MON_HARIYAMA_4, \
+ FRONTIER_MON_SCIZOR_4, \
+ FRONTIER_MON_HERACROSS_4, \
+ FRONTIER_MON_MACHAMP_4, \
+ FRONTIER_MON_STEELIX_4, \
+ FRONTIER_MON_AGGRON_4, \
+ FRONTIER_MON_BLAZIKEN_4, \
+ FRONTIER_MON_METAGROSS_4, \
+ FRONTIER_MON_MACHAMP_5, \
+ FRONTIER_MON_MACHAMP_6, \
+ FRONTIER_MON_MACHAMP_7, \
+ FRONTIER_MON_MACHAMP_8, \
+ FRONTIER_MON_METAGROSS_5, \
+ FRONTIER_MON_METAGROSS_6, \
+ FRONTIER_MON_METAGROSS_7, \
+ FRONTIER_MON_METAGROSS_8, \
+ -1
+
+// For this group, Expert M uses Tyranitar, Expert F uses Dragonite
+#define FRONTIER_MONS_EXPERT_2A(lastmon) \
+ FRONTIER_MON_BRELOOM_1, \
+ FRONTIER_MON_MAROWAK_1, \
+ FRONTIER_MON_RHYDON_1, \
+ FRONTIER_MON_SCIZOR_1, \
+ FRONTIER_MON_HERACROSS_1, \
+ FRONTIER_MON_URSARING_1, \
+ FRONTIER_MON_MACHAMP_1, \
+ FRONTIER_MON_STEELIX_1, \
+ FRONTIER_MON_AERODACTYL_1, \
+ FRONTIER_MON_AGGRON_1, \
+ FRONTIER_MON_GYARADOS_1, \
+ FRONTIER_MON_KINGDRA_1, \
+ FRONTIER_MON_SALAMENCE_1, \
+ FRONTIER_MON_METAGROSS_1, \
+ FRONTIER_MON_MAROWAK_2, \
+ FRONTIER_MON_BRELOOM_2, \
+ FRONTIER_MON_RHYDON_2, \
+ FRONTIER_MON_SCIZOR_2, \
+ FRONTIER_MON_HERACROSS_2, \
+ FRONTIER_MON_URSARING_2, \
+ FRONTIER_MON_MACHAMP_2, \
+ FRONTIER_MON_STEELIX_2, \
+ FRONTIER_MON_AERODACTYL_2, \
+ FRONTIER_MON_AGGRON_2, \
+ FRONTIER_MON_GYARADOS_2, \
+ FRONTIER_MON_KINGDRA_2, \
+ FRONTIER_MON_SALAMENCE_2, \
+ FRONTIER_MON_METAGROSS_2, \
+ FRONTIER_MON_BRELOOM_3, \
+ FRONTIER_MON_MAROWAK_3, \
+ FRONTIER_MON_RHYDON_3, \
+ FRONTIER_MON_SCIZOR_3, \
+ FRONTIER_MON_HERACROSS_3, \
+ FRONTIER_MON_URSARING_3, \
+ FRONTIER_MON_MACHAMP_3, \
+ FRONTIER_MON_STEELIX_3, \
+ FRONTIER_MON_AERODACTYL_3, \
+ FRONTIER_MON_AGGRON_3, \
+ FRONTIER_MON_GYARADOS_3, \
+ FRONTIER_MON_KINGDRA_3, \
+ FRONTIER_MON_SALAMENCE_3, \
+ FRONTIER_MON_METAGROSS_3, \
+ FRONTIER_MON_BRELOOM_4, \
+ FRONTIER_MON_MAROWAK_4, \
+ FRONTIER_MON_RHYDON_4, \
+ FRONTIER_MON_SCIZOR_4, \
+ FRONTIER_MON_HERACROSS_4, \
+ FRONTIER_MON_URSARING_4, \
+ FRONTIER_MON_MACHAMP_4, \
+ FRONTIER_MON_STEELIX_4, \
+ FRONTIER_MON_AERODACTYL_4, \
+ FRONTIER_MON_AGGRON_4, \
+ FRONTIER_MON_GYARADOS_4, \
+ FRONTIER_MON_KINGDRA_4, \
+ FRONTIER_MON_SALAMENCE_4, \
+ FRONTIER_MON_METAGROSS_4, \
+ FRONTIER_MON_REGIROCK_1, \
+ FRONTIER_MON_REGICE_1, \
+ FRONTIER_MON_REGISTEEL_1, \
+ FRONTIER_MON_REGIROCK_2, \
+ FRONTIER_MON_REGICE_2, \
+ FRONTIER_MON_REGISTEEL_2, \
+ FRONTIER_MON_REGIROCK_3, \
+ FRONTIER_MON_REGICE_3, \
+ FRONTIER_MON_REGISTEEL_3, \
+ FRONTIER_MON_REGIROCK_4, \
+ FRONTIER_MON_REGICE_4, \
+ FRONTIER_MON_REGISTEEL_4, \
+ FRONTIER_MON_URSARING_5, \
+ FRONTIER_MON_URSARING_6, \
+ FRONTIER_MON_URSARING_7, \
+ FRONTIER_MON_URSARING_8, \
+ FRONTIER_MON_MACHAMP_5, \
+ FRONTIER_MON_MACHAMP_6, \
+ FRONTIER_MON_MACHAMP_7, \
+ FRONTIER_MON_MACHAMP_8, \
+ FRONTIER_MON_SALAMENCE_5, \
+ FRONTIER_MON_SALAMENCE_6, \
+ FRONTIER_MON_SALAMENCE_7, \
+ FRONTIER_MON_SALAMENCE_8, \
+ FRONTIER_MON_METAGROSS_5, \
+ FRONTIER_MON_METAGROSS_6, \
+ FRONTIER_MON_METAGROSS_7, \
+ FRONTIER_MON_METAGROSS_8, \
+ FRONTIER_MON_REGIROCK_5, \
+ FRONTIER_MON_REGIROCK_6, \
+ FRONTIER_MON_REGICE_5, \
+ FRONTIER_MON_REGICE_6, \
+ FRONTIER_MON_REGISTEEL_5, \
+ FRONTIER_MON_REGISTEEL_6, \
+ FRONTIER_MON_##lastmon##_1, \
+ FRONTIER_MON_##lastmon##_2, \
+ FRONTIER_MON_##lastmon##_3, \
+ FRONTIER_MON_##lastmon##_4, \
+ FRONTIER_MON_##lastmon##_5, \
+ FRONTIER_MON_##lastmon##_6, \
+ FRONTIER_MON_##lastmon##_7, \
+ FRONTIER_MON_##lastmon##_8, \
+ FRONTIER_MON_##lastmon##_9, \
+ FRONTIER_MON_##lastmon##_10,\
+ -1
+
+// For this group, Expert M uses Latios, Expert F uses Latias
+#define FRONTIER_MONS_EXPERT_2B(lati) \
+ FRONTIER_MON_MISDREAVUS_1, \
+ FRONTIER_MON_JYNX_1, \
+ FRONTIER_MON_ALAKAZAM_1, \
+ FRONTIER_MON_GENGAR_1, \
+ FRONTIER_MON_AMPHAROS_1, \
+ FRONTIER_MON_HOUNDOOM_1, \
+ FRONTIER_MON_GARDEVOIR_1, \
+ FRONTIER_MON_STARMIE_1, \
+ FRONTIER_MON_ESPEON_1, \
+ FRONTIER_MON_BLAZIKEN_1, \
+ FRONTIER_MON_SCEPTILE_1, \
+ FRONTIER_MON_CROBAT_1, \
+ FRONTIER_MON_SWAMPERT_1, \
+ FRONTIER_MON_MISDREAVUS_2, \
+ FRONTIER_MON_JYNX_2, \
+ FRONTIER_MON_ALAKAZAM_2, \
+ FRONTIER_MON_GENGAR_2, \
+ FRONTIER_MON_AMPHAROS_2, \
+ FRONTIER_MON_HOUNDOOM_2, \
+ FRONTIER_MON_GARDEVOIR_2, \
+ FRONTIER_MON_STARMIE_2, \
+ FRONTIER_MON_ESPEON_2, \
+ FRONTIER_MON_BLAZIKEN_2, \
+ FRONTIER_MON_SCEPTILE_2, \
+ FRONTIER_MON_CROBAT_2, \
+ FRONTIER_MON_SWAMPERT_2, \
+ FRONTIER_MON_MISDREAVUS_3, \
+ FRONTIER_MON_JYNX_3, \
+ FRONTIER_MON_ALAKAZAM_3, \
+ FRONTIER_MON_GENGAR_3, \
+ FRONTIER_MON_AMPHAROS_3, \
+ FRONTIER_MON_HOUNDOOM_3, \
+ FRONTIER_MON_GARDEVOIR_3, \
+ FRONTIER_MON_STARMIE_3, \
+ FRONTIER_MON_ESPEON_3, \
+ FRONTIER_MON_BLAZIKEN_3, \
+ FRONTIER_MON_SCEPTILE_3, \
+ FRONTIER_MON_CROBAT_3, \
+ FRONTIER_MON_SWAMPERT_3, \
+ FRONTIER_MON_MISDREAVUS_4, \
+ FRONTIER_MON_JYNX_4, \
+ FRONTIER_MON_ALAKAZAM_4, \
+ FRONTIER_MON_GENGAR_4, \
+ FRONTIER_MON_AMPHAROS_4, \
+ FRONTIER_MON_HOUNDOOM_4, \
+ FRONTIER_MON_GARDEVOIR_4, \
+ FRONTIER_MON_STARMIE_4, \
+ FRONTIER_MON_ESPEON_4, \
+ FRONTIER_MON_BLAZIKEN_4, \
+ FRONTIER_MON_SCEPTILE_4, \
+ FRONTIER_MON_CROBAT_4, \
+ FRONTIER_MON_SWAMPERT_4, \
+ FRONTIER_MON_REGIROCK_1, \
+ FRONTIER_MON_REGICE_1, \
+ FRONTIER_MON_REGISTEEL_1, \
+ FRONTIER_MON_##lati##_1, \
+ FRONTIER_MON_REGIROCK_2, \
+ FRONTIER_MON_REGICE_2, \
+ FRONTIER_MON_REGISTEEL_2, \
+ FRONTIER_MON_##lati##_2, \
+ FRONTIER_MON_REGIROCK_3, \
+ FRONTIER_MON_REGICE_3, \
+ FRONTIER_MON_REGISTEEL_3, \
+ FRONTIER_MON_##lati##_3, \
+ FRONTIER_MON_REGIROCK_4, \
+ FRONTIER_MON_REGICE_4, \
+ FRONTIER_MON_REGISTEEL_4, \
+ FRONTIER_MON_##lati##_4, \
+ FRONTIER_MON_GENGAR_5, \
+ FRONTIER_MON_GENGAR_6, \
+ FRONTIER_MON_GENGAR_7, \
+ FRONTIER_MON_GENGAR_8, \
+ FRONTIER_MON_GARDEVOIR_5, \
+ FRONTIER_MON_GARDEVOIR_6, \
+ FRONTIER_MON_GARDEVOIR_7, \
+ FRONTIER_MON_GARDEVOIR_8, \
+ FRONTIER_MON_STARMIE_5, \
+ FRONTIER_MON_STARMIE_6, \
+ FRONTIER_MON_STARMIE_7, \
+ FRONTIER_MON_STARMIE_8, \
+ FRONTIER_MON_REGIROCK_5, \
+ FRONTIER_MON_REGIROCK_6, \
+ FRONTIER_MON_REGICE_5, \
+ FRONTIER_MON_REGICE_6, \
+ FRONTIER_MON_REGISTEEL_5, \
+ FRONTIER_MON_REGISTEEL_6, \
+ FRONTIER_MON_##lati##_5, \
+ FRONTIER_MON_##lati##_6, \
+ FRONTIER_MON_##lati##_7, \
+ FRONTIER_MON_##lati##_8, \
+ FRONTIER_MON_TYRANITAR_1, \
+ FRONTIER_MON_TYRANITAR_2, \
+ FRONTIER_MON_TYRANITAR_3, \
+ FRONTIER_MON_TYRANITAR_4, \
+ FRONTIER_MON_TYRANITAR_5, \
+ FRONTIER_MON_TYRANITAR_6, \
+ FRONTIER_MON_TYRANITAR_7, \
+ FRONTIER_MON_TYRANITAR_8, \
+ FRONTIER_MON_TYRANITAR_9, \
+ FRONTIER_MON_TYRANITAR_10, \
+ -1
+
+// For this group, Expert M uses Tyranitar, Expert F uses Dragonite
+#define FRONTIER_MONS_EXPERT_2C(lastmon) \
+ FRONTIER_MON_DUSCLOPS_1, \
+ FRONTIER_MON_QUAGSIRE_1, \
+ FRONTIER_MON_LUDICOLO_1, \
+ FRONTIER_MON_SLOWBRO_1, \
+ FRONTIER_MON_SLOWKING_1, \
+ FRONTIER_MON_MILTANK_1, \
+ FRONTIER_MON_CRADILY_1, \
+ FRONTIER_MON_WAILORD_1, \
+ FRONTIER_MON_SHUCKLE_1, \
+ FRONTIER_MON_EXEGGUTOR_1, \
+ FRONTIER_MON_UMBREON_1, \
+ FRONTIER_MON_WALREIN_1, \
+ FRONTIER_MON_LAPRAS_1, \
+ FRONTIER_MON_SNORLAX_1, \
+ FRONTIER_MON_BLISSEY_1, \
+ FRONTIER_MON_MILOTIC_1, \
+ FRONTIER_MON_QUAGSIRE_2, \
+ FRONTIER_MON_DUSCLOPS_2, \
+ FRONTIER_MON_LUDICOLO_2, \
+ FRONTIER_MON_SLOWBRO_2, \
+ FRONTIER_MON_SLOWKING_2, \
+ FRONTIER_MON_MILTANK_2, \
+ FRONTIER_MON_CRADILY_2, \
+ FRONTIER_MON_WAILORD_2, \
+ FRONTIER_MON_SHUCKLE_2, \
+ FRONTIER_MON_EXEGGUTOR_2, \
+ FRONTIER_MON_UMBREON_2, \
+ FRONTIER_MON_WALREIN_2, \
+ FRONTIER_MON_LAPRAS_2, \
+ FRONTIER_MON_SNORLAX_2, \
+ FRONTIER_MON_BLISSEY_2, \
+ FRONTIER_MON_MILOTIC_2, \
+ FRONTIER_MON_DUSCLOPS_3, \
+ FRONTIER_MON_QUAGSIRE_3, \
+ FRONTIER_MON_LUDICOLO_3, \
+ FRONTIER_MON_SLOWBRO_3, \
+ FRONTIER_MON_SLOWKING_3, \
+ FRONTIER_MON_MILTANK_3, \
+ FRONTIER_MON_CRADILY_3, \
+ FRONTIER_MON_WAILORD_3, \
+ FRONTIER_MON_SHUCKLE_3, \
+ FRONTIER_MON_EXEGGUTOR_3, \
+ FRONTIER_MON_UMBREON_3, \
+ FRONTIER_MON_WALREIN_3, \
+ FRONTIER_MON_LAPRAS_3, \
+ FRONTIER_MON_SNORLAX_3, \
+ FRONTIER_MON_BLISSEY_3, \
+ FRONTIER_MON_MILOTIC_3, \
+ FRONTIER_MON_DUSCLOPS_4, \
+ FRONTIER_MON_QUAGSIRE_4, \
+ FRONTIER_MON_LUDICOLO_4, \
+ FRONTIER_MON_SLOWBRO_4, \
+ FRONTIER_MON_SLOWKING_4, \
+ FRONTIER_MON_MILTANK_4, \
+ FRONTIER_MON_CRADILY_4, \
+ FRONTIER_MON_WAILORD_4, \
+ FRONTIER_MON_SHUCKLE_4, \
+ FRONTIER_MON_EXEGGUTOR_4, \
+ FRONTIER_MON_UMBREON_4, \
+ FRONTIER_MON_WALREIN_4, \
+ FRONTIER_MON_LAPRAS_4, \
+ FRONTIER_MON_SNORLAX_4, \
+ FRONTIER_MON_BLISSEY_4, \
+ FRONTIER_MON_MILOTIC_4, \
+ FRONTIER_MON_REGIROCK_1, \
+ FRONTIER_MON_REGICE_1, \
+ FRONTIER_MON_REGISTEEL_1, \
+ FRONTIER_MON_REGIROCK_2, \
+ FRONTIER_MON_REGICE_2, \
+ FRONTIER_MON_REGISTEEL_2, \
+ FRONTIER_MON_REGIROCK_3, \
+ FRONTIER_MON_REGICE_3, \
+ FRONTIER_MON_REGISTEEL_3, \
+ FRONTIER_MON_REGIROCK_4, \
+ FRONTIER_MON_REGICE_4, \
+ FRONTIER_MON_REGISTEEL_4, \
+ FRONTIER_MON_LAPRAS_5, \
+ FRONTIER_MON_LAPRAS_6, \
+ FRONTIER_MON_LAPRAS_7, \
+ FRONTIER_MON_LAPRAS_8, \
+ FRONTIER_MON_SNORLAX_5, \
+ FRONTIER_MON_SNORLAX_6, \
+ FRONTIER_MON_SNORLAX_7, \
+ FRONTIER_MON_SNORLAX_8, \
+ FRONTIER_MON_REGIROCK_5, \
+ FRONTIER_MON_REGIROCK_6, \
+ FRONTIER_MON_REGICE_5, \
+ FRONTIER_MON_REGICE_6, \
+ FRONTIER_MON_REGISTEEL_5, \
+ FRONTIER_MON_REGISTEEL_6, \
+ FRONTIER_MON_##lastmon##_1, \
+ FRONTIER_MON_##lastmon##_2, \
+ FRONTIER_MON_##lastmon##_3, \
+ FRONTIER_MON_##lastmon##_4, \
+ FRONTIER_MON_##lastmon##_5, \
+ FRONTIER_MON_##lastmon##_6, \
+ FRONTIER_MON_##lastmon##_7, \
+ FRONTIER_MON_##lastmon##_8, \
+ FRONTIER_MON_##lastmon##_9, \
+ FRONTIER_MON_##lastmon##_10,\
+ -1
+
+// The strong Psychic M/F trainers all use the below pokemon
+// Additionally they use 1 of 3 legendary trios, and Latios or Latias depending on gender
+#define FRONTIER_MONS_PSYCHIC_2(lati, legend1, legend2, legend3) \
+ FRONTIER_MON_WOBBUFFET_1, \
+ FRONTIER_MON_WOBBUFFET_2, \
+ FRONTIER_MON_JYNX_1, \
+ FRONTIER_MON_MR_MIME_1, \
+ FRONTIER_MON_XATU_1, \
+ FRONTIER_MON_HYPNO_1, \
+ FRONTIER_MON_ALAKAZAM_1, \
+ FRONTIER_MON_SLOWBRO_1, \
+ FRONTIER_MON_SLOWKING_1, \
+ FRONTIER_MON_CLAYDOL_1, \
+ FRONTIER_MON_GARDEVOIR_1, \
+ FRONTIER_MON_EXEGGUTOR_1, \
+ FRONTIER_MON_STARMIE_1, \
+ FRONTIER_MON_ESPEON_1, \
+ FRONTIER_MON_METAGROSS_1, \
+ FRONTIER_MON_JYNX_2, \
+ FRONTIER_MON_MR_MIME_2, \
+ FRONTIER_MON_XATU_2, \
+ FRONTIER_MON_HYPNO_2, \
+ FRONTIER_MON_ALAKAZAM_2, \
+ FRONTIER_MON_SLOWBRO_2, \
+ FRONTIER_MON_SLOWKING_2, \
+ FRONTIER_MON_CLAYDOL_2, \
+ FRONTIER_MON_GARDEVOIR_2, \
+ FRONTIER_MON_EXEGGUTOR_2, \
+ FRONTIER_MON_STARMIE_2, \
+ FRONTIER_MON_ESPEON_2, \
+ FRONTIER_MON_METAGROSS_2, \
+ FRONTIER_MON_JYNX_3, \
+ FRONTIER_MON_MR_MIME_3, \
+ FRONTIER_MON_XATU_3, \
+ FRONTIER_MON_HYPNO_3, \
+ FRONTIER_MON_ALAKAZAM_3, \
+ FRONTIER_MON_SLOWBRO_3, \
+ FRONTIER_MON_SLOWKING_3, \
+ FRONTIER_MON_CLAYDOL_3, \
+ FRONTIER_MON_GARDEVOIR_3, \
+ FRONTIER_MON_EXEGGUTOR_3, \
+ FRONTIER_MON_STARMIE_3, \
+ FRONTIER_MON_ESPEON_3, \
+ FRONTIER_MON_METAGROSS_3, \
+ FRONTIER_MON_JYNX_4, \
+ FRONTIER_MON_MR_MIME_4, \
+ FRONTIER_MON_XATU_4, \
+ FRONTIER_MON_HYPNO_4, \
+ FRONTIER_MON_ALAKAZAM_4, \
+ FRONTIER_MON_SLOWBRO_4, \
+ FRONTIER_MON_SLOWKING_4, \
+ FRONTIER_MON_CLAYDOL_4, \
+ FRONTIER_MON_GARDEVOIR_4, \
+ FRONTIER_MON_EXEGGUTOR_4, \
+ FRONTIER_MON_STARMIE_4, \
+ FRONTIER_MON_ESPEON_4, \
+ FRONTIER_MON_METAGROSS_4, \
+ FRONTIER_MON_##legend1##_1, \
+ FRONTIER_MON_##legend2##_1, \
+ FRONTIER_MON_##legend3##_1, \
+ FRONTIER_MON_##lati##_1, \
+ FRONTIER_MON_##legend1##_2, \
+ FRONTIER_MON_##legend2##_2, \
+ FRONTIER_MON_##legend3##_2, \
+ FRONTIER_MON_##lati##_2, \
+ FRONTIER_MON_##legend1##_3, \
+ FRONTIER_MON_##legend2##_3, \
+ FRONTIER_MON_##legend3##_3, \
+ FRONTIER_MON_##lati##_3, \
+ FRONTIER_MON_##legend1##_4, \
+ FRONTIER_MON_##legend2##_4, \
+ FRONTIER_MON_##legend3##_4, \
+ FRONTIER_MON_##lati##_4, \
+ FRONTIER_MON_GARDEVOIR_5, \
+ FRONTIER_MON_GARDEVOIR_6, \
+ FRONTIER_MON_GARDEVOIR_7, \
+ FRONTIER_MON_GARDEVOIR_8, \
+ FRONTIER_MON_STARMIE_5, \
+ FRONTIER_MON_STARMIE_6, \
+ FRONTIER_MON_STARMIE_7, \
+ FRONTIER_MON_STARMIE_8, \
+ FRONTIER_MON_METAGROSS_5, \
+ FRONTIER_MON_METAGROSS_6, \
+ FRONTIER_MON_METAGROSS_7, \
+ FRONTIER_MON_METAGROSS_8,
+
+#define FRONTIER_MONS_PSYCHIC_2A(lati) \
+ FRONTIER_MONS_PSYCHIC_2(lati, ARTICUNO, ZAPDOS, MOLTRES) \
+ FRONTIER_MON_##lati##_5, \
+ FRONTIER_MON_##lati##_6, \
+ FRONTIER_MON_##lati##_7, \
+ FRONTIER_MON_##lati##_8, \
+ FRONTIER_MON_ARTICUNO_5, \
+ FRONTIER_MON_ARTICUNO_6, \
+ FRONTIER_MON_ZAPDOS_5, \
+ FRONTIER_MON_ZAPDOS_6, \
+ FRONTIER_MON_MOLTRES_5, \
+ FRONTIER_MON_MOLTRES_6, \
+ -1
+
+#define FRONTIER_MONS_PSYCHIC_2B(lati) \
+ FRONTIER_MONS_PSYCHIC_2(lati, RAIKOU, ENTEI, SUICUNE) \
+ FRONTIER_MON_##lati##_5, \
+ FRONTIER_MON_##lati##_6, \
+ FRONTIER_MON_##lati##_7, \
+ FRONTIER_MON_##lati##_8, \
+ FRONTIER_MON_RAIKOU_5, \
+ FRONTIER_MON_RAIKOU_6, \
+ FRONTIER_MON_ENTEI_5, \
+ FRONTIER_MON_ENTEI_6, \
+ FRONTIER_MON_SUICUNE_5, \
+ FRONTIER_MON_SUICUNE_6, \
+ -1
+
+// Because the regis/latis are swapped here they cant all be merged into the same macro and match
+#define FRONTIER_MONS_PSYCHIC_2C(lati) \
+ FRONTIER_MONS_PSYCHIC_2(lati, REGIROCK, REGICE, REGISTEEL) \
+ FRONTIER_MON_REGIROCK_5, \
+ FRONTIER_MON_REGIROCK_6, \
+ FRONTIER_MON_REGICE_5, \
+ FRONTIER_MON_REGICE_6, \
+ FRONTIER_MON_REGISTEEL_5, \
+ FRONTIER_MON_REGISTEEL_6, \
+ FRONTIER_MON_##lati##_5, \
+ FRONTIER_MON_##lati##_6, \
+ FRONTIER_MON_##lati##_7, \
+ FRONTIER_MON_##lati##_8, \
+ -1
+
+#define FRONTIER_MONS_HEX_MANIAC_2A \
+ FRONTIER_MON_SHARPEDO_2, \
+ FRONTIER_MON_ABSOL_2, \
+ FRONTIER_MON_MISDREAVUS_1, \
+ FRONTIER_MON_DUSCLOPS_1, \
+ FRONTIER_MON_SHIFTRY_1, \
+ FRONTIER_MON_GENGAR_1, \
+ FRONTIER_MON_HOUNDOOM_1, \
+ FRONTIER_MON_UMBREON_1, \
+ FRONTIER_MON_MISDREAVUS_2, \
+ FRONTIER_MON_DUSCLOPS_2, \
+ FRONTIER_MON_SHIFTRY_2, \
+ FRONTIER_MON_GENGAR_2, \
+ FRONTIER_MON_HOUNDOOM_2, \
+ FRONTIER_MON_UMBREON_2, \
+ FRONTIER_MON_MISDREAVUS_3, \
+ FRONTIER_MON_DUSCLOPS_3, \
+ FRONTIER_MON_SHIFTRY_3, \
+ FRONTIER_MON_GENGAR_3, \
+ FRONTIER_MON_HOUNDOOM_3, \
+ FRONTIER_MON_UMBREON_3, \
+ FRONTIER_MON_MISDREAVUS_4, \
+ FRONTIER_MON_DUSCLOPS_4, \
+ FRONTIER_MON_SHIFTRY_4, \
+ FRONTIER_MON_GENGAR_4, \
+ FRONTIER_MON_HOUNDOOM_4, \
+ FRONTIER_MON_UMBREON_4, \
+ FRONTIER_MON_GENGAR_5, \
+ FRONTIER_MON_GENGAR_6, \
+ FRONTIER_MON_GENGAR_7, \
+ FRONTIER_MON_GENGAR_8, \
+ -1
+
+#define FRONTIER_MONS_HEX_MANIAC_2B \
+ FRONTIER_MON_SEVIPER_2, \
+ FRONTIER_MON_MISDREAVUS_1, \
+ FRONTIER_MON_DUSCLOPS_1, \
+ FRONTIER_MON_VILEPLUME_1, \
+ FRONTIER_MON_VICTREEBEL_1, \
+ FRONTIER_MON_WEEZING_1, \
+ FRONTIER_MON_NIDOQUEEN_1, \
+ FRONTIER_MON_NIDOKING_1, \
+ FRONTIER_MON_MUK_1, \
+ FRONTIER_MON_GENGAR_1, \
+ FRONTIER_MON_TENTACRUEL_1, \
+ FRONTIER_MON_VENUSAUR_1, \
+ FRONTIER_MON_CROBAT_1, \
+ FRONTIER_MON_MISDREAVUS_2, \
+ FRONTIER_MON_DUSCLOPS_2, \
+ FRONTIER_MON_VILEPLUME_2, \
+ FRONTIER_MON_VICTREEBEL_2, \
+ FRONTIER_MON_WEEZING_2, \
+ FRONTIER_MON_NIDOQUEEN_2, \
+ FRONTIER_MON_NIDOKING_2, \
+ FRONTIER_MON_MUK_2, \
+ FRONTIER_MON_GENGAR_2, \
+ FRONTIER_MON_TENTACRUEL_2, \
+ FRONTIER_MON_VENUSAUR_2, \
+ FRONTIER_MON_CROBAT_2, \
+ FRONTIER_MON_MISDREAVUS_3, \
+ FRONTIER_MON_DUSCLOPS_3, \
+ FRONTIER_MON_VILEPLUME_3, \
+ FRONTIER_MON_VICTREEBEL_3, \
+ FRONTIER_MON_WEEZING_3, \
+ FRONTIER_MON_NIDOQUEEN_3, \
+ FRONTIER_MON_NIDOKING_3, \
+ FRONTIER_MON_MUK_3, \
+ FRONTIER_MON_GENGAR_3, \
+ FRONTIER_MON_TENTACRUEL_3, \
+ FRONTIER_MON_VENUSAUR_3, \
+ FRONTIER_MON_CROBAT_3, \
+ FRONTIER_MON_MISDREAVUS_4, \
+ FRONTIER_MON_DUSCLOPS_4, \
+ FRONTIER_MON_VILEPLUME_4, \
+ FRONTIER_MON_VICTREEBEL_4, \
+ FRONTIER_MON_WEEZING_4, \
+ FRONTIER_MON_NIDOQUEEN_4, \
+ FRONTIER_MON_NIDOKING_4, \
+ FRONTIER_MON_MUK_4, \
+ FRONTIER_MON_GENGAR_4, \
+ FRONTIER_MON_TENTACRUEL_4, \
+ FRONTIER_MON_VENUSAUR_4, \
+ FRONTIER_MON_CROBAT_4, \
+ FRONTIER_MON_GENGAR_5, \
+ FRONTIER_MON_GENGAR_6, \
+ FRONTIER_MON_GENGAR_7, \
+ FRONTIER_MON_GENGAR_8, \
+ -1
+
+#define FRONTIER_MONS_HEX_MANIAC_2C \
+ FRONTIER_MON_SEVIPER_2, \
+ FRONTIER_MON_SHARPEDO_2, \
+ FRONTIER_MON_ABSOL_2, \
+ FRONTIER_MON_VILEPLUME_1, \
+ FRONTIER_MON_VICTREEBEL_1, \
+ FRONTIER_MON_SHIFTRY_1, \
+ FRONTIER_MON_WEEZING_1, \
+ FRONTIER_MON_NIDOQUEEN_1, \
+ FRONTIER_MON_NIDOKING_1, \
+ FRONTIER_MON_MUK_1, \
+ FRONTIER_MON_GENGAR_1, \
+ FRONTIER_MON_HOUNDOOM_1, \
+ FRONTIER_MON_TENTACRUEL_1, \
+ FRONTIER_MON_VENUSAUR_1, \
+ FRONTIER_MON_UMBREON_1, \
+ FRONTIER_MON_CROBAT_1, \
+ FRONTIER_MON_VILEPLUME_2, \
+ FRONTIER_MON_VICTREEBEL_2, \
+ FRONTIER_MON_SHIFTRY_2, \
+ FRONTIER_MON_WEEZING_2, \
+ FRONTIER_MON_NIDOQUEEN_2, \
+ FRONTIER_MON_NIDOKING_2, \
+ FRONTIER_MON_MUK_2, \
+ FRONTIER_MON_GENGAR_2, \
+ FRONTIER_MON_HOUNDOOM_2, \
+ FRONTIER_MON_TENTACRUEL_2, \
+ FRONTIER_MON_VENUSAUR_2, \
+ FRONTIER_MON_UMBREON_2, \
+ FRONTIER_MON_CROBAT_2, \
+ FRONTIER_MON_VILEPLUME_3, \
+ FRONTIER_MON_VICTREEBEL_3, \
+ FRONTIER_MON_SHIFTRY_3, \
+ FRONTIER_MON_WEEZING_3, \
+ FRONTIER_MON_NIDOQUEEN_3, \
+ FRONTIER_MON_NIDOKING_3, \
+ FRONTIER_MON_MUK_3, \
+ FRONTIER_MON_GENGAR_3, \
+ FRONTIER_MON_HOUNDOOM_3, \
+ FRONTIER_MON_TENTACRUEL_3, \
+ FRONTIER_MON_VENUSAUR_3, \
+ FRONTIER_MON_UMBREON_3, \
+ FRONTIER_MON_CROBAT_3, \
+ FRONTIER_MON_VILEPLUME_4, \
+ FRONTIER_MON_VICTREEBEL_4, \
+ FRONTIER_MON_SHIFTRY_4, \
+ FRONTIER_MON_WEEZING_4, \
+ FRONTIER_MON_NIDOQUEEN_4, \
+ FRONTIER_MON_NIDOKING_4, \
+ FRONTIER_MON_MUK_4, \
+ FRONTIER_MON_GENGAR_4, \
+ FRONTIER_MON_HOUNDOOM_4, \
+ FRONTIER_MON_TENTACRUEL_4, \
+ FRONTIER_MON_VENUSAUR_4, \
+ FRONTIER_MON_UMBREON_4, \
+ FRONTIER_MON_CROBAT_4, \
+ FRONTIER_MON_GENGAR_5, \
+ FRONTIER_MON_GENGAR_6, \
+ FRONTIER_MON_GENGAR_7, \
+ FRONTIER_MON_GENGAR_8, \
+ -1
+
+// For whatever reason FRONTIER_MON_MAROWAK_2 is in a different order than _1 _3 and _4
+// This order change is the only difference btween FRONITER_MONS_POKEMANIAC_2A and FRONTIER_MONS_POKEMANIAC_2B other than the numbered suffixes
+#define FRONTIER_MONS_POKEMANIAC_2A \
+ FRONTIER_MON_ZANGOOSE_2, \
+ FRONTIER_MON_GRANBULL_1, \
+ FRONTIER_MON_SKARMORY_1, \
+ FRONTIER_MON_MAROWAK_1, \
+ FRONTIER_MON_EXPLOUD_1, \
+ FRONTIER_MON_GLALIE_1, \
+ FRONTIER_MON_GOLEM_1, \
+ FRONTIER_MON_RHYDON_1, \
+ FRONTIER_MON_KANGASKHAN_1, \
+ FRONTIER_MON_TAUROS_1, \
+ FRONTIER_MON_MILTANK_1, \
+ FRONTIER_MON_NIDOQUEEN_1, \
+ FRONTIER_MON_NIDOKING_1, \
+ FRONTIER_MON_URSARING_1, \
+ FRONTIER_MON_DONPHAN_1, \
+ FRONTIER_MON_WAILORD_1, \
+ FRONTIER_MON_STEELIX_1, \
+ FRONTIER_MON_AERODACTYL_1, \
+ FRONTIER_MON_FLYGON_1, \
+ FRONTIER_MON_VENUSAUR_1, \
+ FRONTIER_MON_MEGANIUM_1, \
+ FRONTIER_MON_BLASTOISE_1, \
+ FRONTIER_MON_FERALIGATR_1, \
+ FRONTIER_MON_AGGRON_1, \
+ FRONTIER_MON_WALREIN_1, \
+ FRONTIER_MON_CHARIZARD_1, \
+ FRONTIER_MON_LAPRAS_1, \
+ FRONTIER_MON_SWAMPERT_1, \
+ FRONTIER_MON_GYARADOS_1, \
+ FRONTIER_MON_SNORLAX_1, \
+ FRONTIER_MON_BLISSEY_1, \
+ FRONTIER_MON_SALAMENCE_1, \
+ FRONTIER_MON_METAGROSS_1, \
+ FRONTIER_MON_SLAKING_1, \
+ FRONTIER_MON_MAROWAK_2, \
+ FRONTIER_MON_GRANBULL_2, \
+ FRONTIER_MON_SKARMORY_2, \
+ FRONTIER_MON_EXPLOUD_2, \
+ FRONTIER_MON_GLALIE_2, \
+ FRONTIER_MON_GOLEM_2, \
+ FRONTIER_MON_RHYDON_2, \
+ FRONTIER_MON_KANGASKHAN_2, \
+ FRONTIER_MON_TAUROS_2, \
+ FRONTIER_MON_MILTANK_2, \
+ FRONTIER_MON_NIDOQUEEN_2, \
+ FRONTIER_MON_NIDOKING_2, \
+ FRONTIER_MON_URSARING_2, \
+ FRONTIER_MON_DONPHAN_2, \
+ FRONTIER_MON_WAILORD_2, \
+ FRONTIER_MON_STEELIX_2, \
+ FRONTIER_MON_AERODACTYL_2, \
+ FRONTIER_MON_FLYGON_2, \
+ FRONTIER_MON_VENUSAUR_2, \
+ FRONTIER_MON_MEGANIUM_2, \
+ FRONTIER_MON_BLASTOISE_2, \
+ FRONTIER_MON_FERALIGATR_2, \
+ FRONTIER_MON_AGGRON_2, \
+ FRONTIER_MON_WALREIN_2, \
+ FRONTIER_MON_CHARIZARD_2, \
+ FRONTIER_MON_LAPRAS_2, \
+ FRONTIER_MON_SWAMPERT_2, \
+ FRONTIER_MON_GYARADOS_2, \
+ FRONTIER_MON_SNORLAX_2, \
+ FRONTIER_MON_BLISSEY_2, \
+ FRONTIER_MON_SALAMENCE_2, \
+ FRONTIER_MON_METAGROSS_2, \
+ FRONTIER_MON_SLAKING_2, \
+ FRONTIER_MON_DRAGONITE_1, \
+ FRONTIER_MON_DRAGONITE_2, \
+ FRONTIER_MON_DRAGONITE_3, \
+ FRONTIER_MON_DRAGONITE_4, \
+ FRONTIER_MON_DRAGONITE_5, \
+ FRONTIER_MON_DRAGONITE_6, \
+ FRONTIER_MON_DRAGONITE_7, \
+ FRONTIER_MON_DRAGONITE_8, \
+ FRONTIER_MON_DRAGONITE_9, \
+ FRONTIER_MON_DRAGONITE_10, \
+ FRONTIER_MON_TYRANITAR_1, \
+ FRONTIER_MON_TYRANITAR_2, \
+ FRONTIER_MON_TYRANITAR_3, \
+ FRONTIER_MON_TYRANITAR_4, \
+ FRONTIER_MON_TYRANITAR_5, \
+ FRONTIER_MON_TYRANITAR_6, \
+ FRONTIER_MON_TYRANITAR_7, \
+ FRONTIER_MON_TYRANITAR_8, \
+ FRONTIER_MON_TYRANITAR_9, \
+ FRONTIER_MON_TYRANITAR_10, \
+ -1
+
+#define FRONTIER_MONS_POKEMANIAC_2B \
+ FRONTIER_MON_ZANGOOSE_2, \
+ FRONTIER_MON_GRANBULL_3, \
+ FRONTIER_MON_SKARMORY_3, \
+ FRONTIER_MON_MAROWAK_3, \
+ FRONTIER_MON_EXPLOUD_3, \
+ FRONTIER_MON_GLALIE_3, \
+ FRONTIER_MON_GOLEM_3, \
+ FRONTIER_MON_RHYDON_3, \
+ FRONTIER_MON_KANGASKHAN_3, \
+ FRONTIER_MON_TAUROS_3, \
+ FRONTIER_MON_MILTANK_3, \
+ FRONTIER_MON_NIDOQUEEN_3, \
+ FRONTIER_MON_NIDOKING_3, \
+ FRONTIER_MON_URSARING_3, \
+ FRONTIER_MON_DONPHAN_3, \
+ FRONTIER_MON_WAILORD_3, \
+ FRONTIER_MON_STEELIX_3, \
+ FRONTIER_MON_AERODACTYL_3, \
+ FRONTIER_MON_FLYGON_3, \
+ FRONTIER_MON_VENUSAUR_3, \
+ FRONTIER_MON_MEGANIUM_3, \
+ FRONTIER_MON_BLASTOISE_3, \
+ FRONTIER_MON_FERALIGATR_3, \
+ FRONTIER_MON_AGGRON_3, \
+ FRONTIER_MON_WALREIN_3, \
+ FRONTIER_MON_CHARIZARD_3, \
+ FRONTIER_MON_LAPRAS_3, \
+ FRONTIER_MON_SWAMPERT_3, \
+ FRONTIER_MON_GYARADOS_3, \
+ FRONTIER_MON_SNORLAX_3, \
+ FRONTIER_MON_BLISSEY_3, \
+ FRONTIER_MON_SALAMENCE_3, \
+ FRONTIER_MON_METAGROSS_3, \
+ FRONTIER_MON_SLAKING_3, \
+ FRONTIER_MON_GRANBULL_4, \
+ FRONTIER_MON_SKARMORY_4, \
+ FRONTIER_MON_MAROWAK_4, \
+ FRONTIER_MON_EXPLOUD_4, \
+ FRONTIER_MON_GLALIE_4, \
+ FRONTIER_MON_GOLEM_4, \
+ FRONTIER_MON_RHYDON_4, \
+ FRONTIER_MON_KANGASKHAN_4, \
+ FRONTIER_MON_TAUROS_4, \
+ FRONTIER_MON_MILTANK_4, \
+ FRONTIER_MON_NIDOQUEEN_4, \
+ FRONTIER_MON_NIDOKING_4, \
+ FRONTIER_MON_URSARING_4, \
+ FRONTIER_MON_DONPHAN_4, \
+ FRONTIER_MON_WAILORD_4, \
+ FRONTIER_MON_STEELIX_4, \
+ FRONTIER_MON_AERODACTYL_4, \
+ FRONTIER_MON_FLYGON_4, \
+ FRONTIER_MON_VENUSAUR_4, \
+ FRONTIER_MON_MEGANIUM_4, \
+ FRONTIER_MON_BLASTOISE_4, \
+ FRONTIER_MON_FERALIGATR_4, \
+ FRONTIER_MON_AGGRON_4, \
+ FRONTIER_MON_WALREIN_4, \
+ FRONTIER_MON_CHARIZARD_4, \
+ FRONTIER_MON_LAPRAS_4, \
+ FRONTIER_MON_SWAMPERT_4, \
+ FRONTIER_MON_GYARADOS_4, \
+ FRONTIER_MON_SNORLAX_4, \
+ FRONTIER_MON_BLISSEY_4, \
+ FRONTIER_MON_SALAMENCE_4, \
+ FRONTIER_MON_METAGROSS_4, \
+ FRONTIER_MON_SLAKING_4, \
+ FRONTIER_MON_DRAGONITE_1, \
+ FRONTIER_MON_DRAGONITE_2, \
+ FRONTIER_MON_DRAGONITE_3, \
+ FRONTIER_MON_DRAGONITE_4, \
+ FRONTIER_MON_DRAGONITE_5, \
+ FRONTIER_MON_DRAGONITE_6, \
+ FRONTIER_MON_DRAGONITE_7, \
+ FRONTIER_MON_DRAGONITE_8, \
+ FRONTIER_MON_DRAGONITE_9, \
+ FRONTIER_MON_DRAGONITE_10, \
+ FRONTIER_MON_TYRANITAR_1, \
+ FRONTIER_MON_TYRANITAR_2, \
+ FRONTIER_MON_TYRANITAR_3, \
+ FRONTIER_MON_TYRANITAR_4, \
+ FRONTIER_MON_TYRANITAR_5, \
+ FRONTIER_MON_TYRANITAR_6, \
+ FRONTIER_MON_TYRANITAR_7, \
+ FRONTIER_MON_TYRANITAR_8, \
+ FRONTIER_MON_TYRANITAR_9, \
+ FRONTIER_MON_TYRANITAR_10, \
+ -1
+
+#define FRONTIER_MONS_POKEMANIAC_2C \
+ FRONTIER_MON_ZANGOOSE_2, \
+ FRONTIER_MON_URSARING_1, \
+ FRONTIER_MON_STEELIX_1, \
+ FRONTIER_MON_AERODACTYL_1, \
+ FRONTIER_MON_MEGANIUM_1, \
+ FRONTIER_MON_AGGRON_1, \
+ FRONTIER_MON_CHARIZARD_1, \
+ FRONTIER_MON_LAPRAS_1, \
+ FRONTIER_MON_SWAMPERT_1, \
+ FRONTIER_MON_GYARADOS_1, \
+ FRONTIER_MON_SNORLAX_1, \
+ FRONTIER_MON_SALAMENCE_1, \
+ FRONTIER_MON_METAGROSS_1, \
+ FRONTIER_MON_URSARING_2, \
+ FRONTIER_MON_STEELIX_2, \
+ FRONTIER_MON_AERODACTYL_2, \
+ FRONTIER_MON_MEGANIUM_2, \
+ FRONTIER_MON_AGGRON_2, \
+ FRONTIER_MON_CHARIZARD_2, \
+ FRONTIER_MON_LAPRAS_2, \
+ FRONTIER_MON_SWAMPERT_2, \
+ FRONTIER_MON_GYARADOS_2, \
+ FRONTIER_MON_SNORLAX_2, \
+ FRONTIER_MON_SALAMENCE_2, \
+ FRONTIER_MON_METAGROSS_2, \
+ FRONTIER_MON_URSARING_3, \
+ FRONTIER_MON_STEELIX_3, \
+ FRONTIER_MON_AERODACTYL_3, \
+ FRONTIER_MON_MEGANIUM_3, \
+ FRONTIER_MON_AGGRON_3, \
+ FRONTIER_MON_CHARIZARD_3, \
+ FRONTIER_MON_LAPRAS_3, \
+ FRONTIER_MON_SWAMPERT_3, \
+ FRONTIER_MON_GYARADOS_3, \
+ FRONTIER_MON_SNORLAX_3, \
+ FRONTIER_MON_SALAMENCE_3, \
+ FRONTIER_MON_METAGROSS_3, \
+ FRONTIER_MON_URSARING_4, \
+ FRONTIER_MON_STEELIX_4, \
+ FRONTIER_MON_AERODACTYL_4, \
+ FRONTIER_MON_MEGANIUM_4, \
+ FRONTIER_MON_AGGRON_4, \
+ FRONTIER_MON_CHARIZARD_4, \
+ FRONTIER_MON_LAPRAS_4, \
+ FRONTIER_MON_SWAMPERT_4, \
+ FRONTIER_MON_GYARADOS_4, \
+ FRONTIER_MON_SNORLAX_4, \
+ FRONTIER_MON_SALAMENCE_4, \
+ FRONTIER_MON_METAGROSS_4, \
+ FRONTIER_MON_URSARING_5, \
+ FRONTIER_MON_URSARING_6, \
+ FRONTIER_MON_URSARING_7, \
+ FRONTIER_MON_URSARING_8, \
+ FRONTIER_MON_LAPRAS_5, \
+ FRONTIER_MON_LAPRAS_6, \
+ FRONTIER_MON_LAPRAS_7, \
+ FRONTIER_MON_LAPRAS_8, \
+ FRONTIER_MON_SNORLAX_5, \
+ FRONTIER_MON_SNORLAX_6, \
+ FRONTIER_MON_SNORLAX_7, \
+ FRONTIER_MON_SNORLAX_8, \
+ FRONTIER_MON_SALAMENCE_5, \
+ FRONTIER_MON_SALAMENCE_6, \
+ FRONTIER_MON_SALAMENCE_7, \
+ FRONTIER_MON_SALAMENCE_8, \
+ FRONTIER_MON_METAGROSS_5, \
+ FRONTIER_MON_METAGROSS_6, \
+ FRONTIER_MON_METAGROSS_7, \
+ FRONTIER_MON_METAGROSS_8, \
+ FRONTIER_MON_DRAGONITE_1, \
+ FRONTIER_MON_DRAGONITE_2, \
+ FRONTIER_MON_DRAGONITE_3, \
+ FRONTIER_MON_DRAGONITE_4, \
+ FRONTIER_MON_DRAGONITE_5, \
+ FRONTIER_MON_DRAGONITE_6, \
+ FRONTIER_MON_DRAGONITE_7, \
+ FRONTIER_MON_DRAGONITE_8, \
+ FRONTIER_MON_DRAGONITE_9, \
+ FRONTIER_MON_DRAGONITE_10, \
+ FRONTIER_MON_TYRANITAR_1, \
+ FRONTIER_MON_TYRANITAR_2, \
+ FRONTIER_MON_TYRANITAR_3, \
+ FRONTIER_MON_TYRANITAR_4, \
+ FRONTIER_MON_TYRANITAR_5, \
+ FRONTIER_MON_TYRANITAR_6, \
+ FRONTIER_MON_TYRANITAR_7, \
+ FRONTIER_MON_TYRANITAR_8, \
+ FRONTIER_MON_TYRANITAR_9, \
+ FRONTIER_MON_TYRANITAR_10, \
+ -1
+
+// Identical to FRONTIER_MONS_COOLTRAINER_2C but with both latias and latios
+#define FRONTIER_MONS_GENTLEMAN_3A \
+ FRONTIER_MON_GENGAR_1, \
+ FRONTIER_MON_URSARING_1, \
+ FRONTIER_MON_MACHAMP_1, \
+ FRONTIER_MON_GARDEVOIR_1, \
+ FRONTIER_MON_STARMIE_1, \
+ FRONTIER_MON_LAPRAS_1, \
+ FRONTIER_MON_SNORLAX_1, \
+ FRONTIER_MON_SALAMENCE_1, \
+ FRONTIER_MON_METAGROSS_1, \
+ FRONTIER_MON_GENGAR_2, \
+ FRONTIER_MON_URSARING_2, \
+ FRONTIER_MON_MACHAMP_2, \
+ FRONTIER_MON_GARDEVOIR_2, \
+ FRONTIER_MON_STARMIE_2, \
+ FRONTIER_MON_LAPRAS_2, \
+ FRONTIER_MON_SNORLAX_2, \
+ FRONTIER_MON_SALAMENCE_2, \
+ FRONTIER_MON_METAGROSS_2, \
+ FRONTIER_MON_GENGAR_3, \
+ FRONTIER_MON_URSARING_3, \
+ FRONTIER_MON_MACHAMP_3, \
+ FRONTIER_MON_GARDEVOIR_3, \
+ FRONTIER_MON_STARMIE_3, \
+ FRONTIER_MON_LAPRAS_3, \
+ FRONTIER_MON_SNORLAX_3, \
+ FRONTIER_MON_SALAMENCE_3, \
+ FRONTIER_MON_METAGROSS_3, \
+ FRONTIER_MON_GENGAR_4, \
+ FRONTIER_MON_URSARING_4, \
+ FRONTIER_MON_MACHAMP_4, \
+ FRONTIER_MON_GARDEVOIR_4, \
+ FRONTIER_MON_STARMIE_4, \
+ FRONTIER_MON_LAPRAS_4, \
+ FRONTIER_MON_SNORLAX_4, \
+ FRONTIER_MON_SALAMENCE_4, \
+ FRONTIER_MON_METAGROSS_4, \
+ FRONTIER_MON_LATIAS_1, \
+ FRONTIER_MON_LATIOS_1, \
+ FRONTIER_MON_LATIAS_2, \
+ FRONTIER_MON_LATIOS_2, \
+ FRONTIER_MON_LATIAS_3, \
+ FRONTIER_MON_LATIOS_3, \
+ FRONTIER_MON_LATIAS_4, \
+ FRONTIER_MON_LATIOS_4, \
+ FRONTIER_MON_GENGAR_5, \
+ FRONTIER_MON_GENGAR_6, \
+ FRONTIER_MON_GENGAR_7, \
+ FRONTIER_MON_GENGAR_8, \
+ FRONTIER_MON_URSARING_5, \
+ FRONTIER_MON_URSARING_6, \
+ FRONTIER_MON_URSARING_7, \
+ FRONTIER_MON_URSARING_8, \
+ FRONTIER_MON_MACHAMP_5, \
+ FRONTIER_MON_MACHAMP_6, \
+ FRONTIER_MON_MACHAMP_7, \
+ FRONTIER_MON_MACHAMP_8, \
+ FRONTIER_MON_GARDEVOIR_5, \
+ FRONTIER_MON_GARDEVOIR_6, \
+ FRONTIER_MON_GARDEVOIR_7, \
+ FRONTIER_MON_GARDEVOIR_8, \
+ FRONTIER_MON_STARMIE_5, \
+ FRONTIER_MON_STARMIE_6, \
+ FRONTIER_MON_STARMIE_7, \
+ FRONTIER_MON_STARMIE_8, \
+ FRONTIER_MON_LAPRAS_5, \
+ FRONTIER_MON_LAPRAS_6, \
+ FRONTIER_MON_LAPRAS_7, \
+ FRONTIER_MON_LAPRAS_8, \
+ FRONTIER_MON_SNORLAX_5, \
+ FRONTIER_MON_SNORLAX_6, \
+ FRONTIER_MON_SNORLAX_7, \
+ FRONTIER_MON_SNORLAX_8, \
+ FRONTIER_MON_SALAMENCE_5, \
+ FRONTIER_MON_SALAMENCE_6, \
+ FRONTIER_MON_SALAMENCE_7, \
+ FRONTIER_MON_SALAMENCE_8, \
+ FRONTIER_MON_METAGROSS_5, \
+ FRONTIER_MON_METAGROSS_6, \
+ FRONTIER_MON_METAGROSS_7, \
+ FRONTIER_MON_METAGROSS_8, \
+ FRONTIER_MON_DRAGONITE_1, \
+ FRONTIER_MON_DRAGONITE_2, \
+ FRONTIER_MON_DRAGONITE_3, \
+ FRONTIER_MON_DRAGONITE_4, \
+ FRONTIER_MON_DRAGONITE_5, \
+ FRONTIER_MON_DRAGONITE_6, \
+ FRONTIER_MON_DRAGONITE_7, \
+ FRONTIER_MON_DRAGONITE_8, \
+ FRONTIER_MON_DRAGONITE_9, \
+ FRONTIER_MON_DRAGONITE_10, \
+ FRONTIER_MON_TYRANITAR_1, \
+ FRONTIER_MON_TYRANITAR_2, \
+ FRONTIER_MON_TYRANITAR_3, \
+ FRONTIER_MON_TYRANITAR_4, \
+ FRONTIER_MON_TYRANITAR_5, \
+ FRONTIER_MON_TYRANITAR_6, \
+ FRONTIER_MON_TYRANITAR_7, \
+ FRONTIER_MON_TYRANITAR_8, \
+ FRONTIER_MON_TYRANITAR_9, \
+ FRONTIER_MON_TYRANITAR_10, \
+ -1
+
+// Identical to FRONTIER_MONS_COOLTRAINER_2D but with both latias and latios
+#define FRONTIER_MONS_GENTLEMAN_3B \
+ FRONTIER_MON_ARTICUNO_1, \
+ FRONTIER_MON_ZAPDOS_1, \
+ FRONTIER_MON_MOLTRES_1, \
+ FRONTIER_MON_RAIKOU_1, \
+ FRONTIER_MON_ENTEI_1, \
+ FRONTIER_MON_SUICUNE_1, \
+ FRONTIER_MON_REGIROCK_1, \
+ FRONTIER_MON_REGICE_1, \
+ FRONTIER_MON_REGISTEEL_1, \
+ FRONTIER_MON_LATIAS_1, \
+ FRONTIER_MON_LATIOS_1, \
+ FRONTIER_MON_ARTICUNO_2, \
+ FRONTIER_MON_ZAPDOS_2, \
+ FRONTIER_MON_MOLTRES_2, \
+ FRONTIER_MON_RAIKOU_2, \
+ FRONTIER_MON_ENTEI_2, \
+ FRONTIER_MON_SUICUNE_2, \
+ FRONTIER_MON_REGIROCK_2, \
+ FRONTIER_MON_REGICE_2, \
+ FRONTIER_MON_REGISTEEL_2, \
+ FRONTIER_MON_LATIAS_2, \
+ FRONTIER_MON_LATIOS_2, \
+ FRONTIER_MON_ARTICUNO_3, \
+ FRONTIER_MON_ZAPDOS_3, \
+ FRONTIER_MON_MOLTRES_3, \
+ FRONTIER_MON_RAIKOU_3, \
+ FRONTIER_MON_ENTEI_3, \
+ FRONTIER_MON_SUICUNE_3, \
+ FRONTIER_MON_REGIROCK_3, \
+ FRONTIER_MON_REGICE_3, \
+ FRONTIER_MON_REGISTEEL_3, \
+ FRONTIER_MON_LATIAS_3, \
+ FRONTIER_MON_LATIOS_3, \
+ FRONTIER_MON_ARTICUNO_4, \
+ FRONTIER_MON_ZAPDOS_4, \
+ FRONTIER_MON_MOLTRES_4, \
+ FRONTIER_MON_RAIKOU_4, \
+ FRONTIER_MON_ENTEI_4, \
+ FRONTIER_MON_SUICUNE_4, \
+ FRONTIER_MON_REGIROCK_4, \
+ FRONTIER_MON_REGICE_4, \
+ FRONTIER_MON_REGISTEEL_4, \
+ FRONTIER_MON_LATIAS_4, \
+ FRONTIER_MON_LATIOS_4, \
+ FRONTIER_MON_REGIROCK_5, \
+ FRONTIER_MON_REGIROCK_6, \
+ FRONTIER_MON_REGICE_5, \
+ FRONTIER_MON_REGICE_6, \
+ FRONTIER_MON_REGISTEEL_5, \
+ FRONTIER_MON_REGISTEEL_6, \
+ FRONTIER_MON_LATIAS_5, \
+ FRONTIER_MON_LATIAS_6, \
+ FRONTIER_MON_LATIAS_7, \
+ FRONTIER_MON_LATIAS_8, \
+ FRONTIER_MON_LATIOS_5, \
+ FRONTIER_MON_LATIOS_6, \
+ FRONTIER_MON_LATIOS_7, \
+ FRONTIER_MON_LATIOS_8, \
+ FRONTIER_MON_DRAGONITE_1, \
+ FRONTIER_MON_DRAGONITE_2, \
+ FRONTIER_MON_DRAGONITE_3, \
+ FRONTIER_MON_DRAGONITE_4, \
+ FRONTIER_MON_DRAGONITE_5, \
+ FRONTIER_MON_DRAGONITE_6, \
+ FRONTIER_MON_DRAGONITE_7, \
+ FRONTIER_MON_DRAGONITE_8, \
+ FRONTIER_MON_DRAGONITE_9, \
+ FRONTIER_MON_DRAGONITE_10, \
+ FRONTIER_MON_TYRANITAR_1, \
+ FRONTIER_MON_TYRANITAR_2, \
+ FRONTIER_MON_TYRANITAR_3, \
+ FRONTIER_MON_TYRANITAR_4, \
+ FRONTIER_MON_TYRANITAR_5, \
+ FRONTIER_MON_TYRANITAR_6, \
+ FRONTIER_MON_TYRANITAR_7, \
+ FRONTIER_MON_TYRANITAR_8, \
+ FRONTIER_MON_TYRANITAR_9, \
+ FRONTIER_MON_TYRANITAR_10, \
+ FRONTIER_MON_ARTICUNO_5, \
+ FRONTIER_MON_ARTICUNO_6, \
+ FRONTIER_MON_ZAPDOS_5, \
+ FRONTIER_MON_ZAPDOS_6, \
+ FRONTIER_MON_MOLTRES_5, \
+ FRONTIER_MON_MOLTRES_6, \
+ FRONTIER_MON_RAIKOU_5, \
+ FRONTIER_MON_RAIKOU_6, \
+ FRONTIER_MON_ENTEI_5, \
+ FRONTIER_MON_ENTEI_6, \
+ FRONTIER_MON_SUICUNE_5, \
+ FRONTIER_MON_SUICUNE_6, \
+ -1
+
+#define FRONTIER_MONS_SWIMMING_TRIATHLETE_M_3 \
+ FRONTIER_MON_SNEASEL_2, \
+ FRONTIER_MON_CLOYSTER_2, \
+ FRONTIER_MON_MEDICHAM_1, \
+ FRONTIER_MON_JYNX_1, \
+ FRONTIER_MON_HARIYAMA_1, \
+ FRONTIER_MON_DEWGONG_1, \
+ FRONTIER_MON_GLALIE_1, \
+ FRONTIER_MON_MACHAMP_1, \
+ FRONTIER_MON_WALREIN_1, \
+ FRONTIER_MON_LAPRAS_1, \
+ FRONTIER_MON_MEDICHAM_2, \
+ FRONTIER_MON_JYNX_2, \
+ FRONTIER_MON_HARIYAMA_2, \
+ FRONTIER_MON_DEWGONG_2, \
+ FRONTIER_MON_GLALIE_2, \
+ FRONTIER_MON_MACHAMP_2, \
+ FRONTIER_MON_WALREIN_2, \
+ FRONTIER_MON_LAPRAS_2, \
+ FRONTIER_MON_MEDICHAM_3, \
+ FRONTIER_MON_JYNX_3, \
+ FRONTIER_MON_LANTURN_3, \
+ FRONTIER_MON_WHISCASH_3, \
+ FRONTIER_MON_QUAGSIRE_3, \
+ FRONTIER_MON_HARIYAMA_3, \
+ FRONTIER_MON_DEWGONG_3, \
+ FRONTIER_MON_GLALIE_3, \
+ FRONTIER_MON_LUDICOLO_3, \
+ FRONTIER_MON_SLOWBRO_3, \
+ FRONTIER_MON_SLOWKING_3, \
+ FRONTIER_MON_GOLDUCK_3, \
+ FRONTIER_MON_WAILORD_3, \
+ FRONTIER_MON_MACHAMP_3, \
+ FRONTIER_MON_TENTACRUEL_3, \
+ FRONTIER_MON_STARMIE_3, \
+ FRONTIER_MON_VAPOREON_3, \
+ FRONTIER_MON_BLASTOISE_3, \
+ FRONTIER_MON_FERALIGATR_3, \
+ FRONTIER_MON_WALREIN_3, \
+ FRONTIER_MON_LAPRAS_3, \
+ FRONTIER_MON_SWAMPERT_3, \
+ FRONTIER_MON_GYARADOS_3, \
+ FRONTIER_MON_KINGDRA_3, \
+ FRONTIER_MON_MILOTIC_3, \
+ FRONTIER_MON_MEDICHAM_4, \
+ FRONTIER_MON_JYNX_4, \
+ FRONTIER_MON_LANTURN_4, \
+ FRONTIER_MON_WHISCASH_4, \
+ FRONTIER_MON_QUAGSIRE_4, \
+ FRONTIER_MON_HARIYAMA_4, \
+ FRONTIER_MON_DEWGONG_4, \
+ FRONTIER_MON_GLALIE_4, \
+ FRONTIER_MON_LUDICOLO_4, \
+ FRONTIER_MON_SLOWBRO_4, \
+ FRONTIER_MON_SLOWKING_4, \
+ FRONTIER_MON_GOLDUCK_4, \
+ FRONTIER_MON_WAILORD_4, \
+ FRONTIER_MON_MACHAMP_4, \
+ FRONTIER_MON_TENTACRUEL_4, \
+ FRONTIER_MON_STARMIE_4, \
+ FRONTIER_MON_VAPOREON_4, \
+ FRONTIER_MON_BLASTOISE_4, \
+ FRONTIER_MON_FERALIGATR_4, \
+ FRONTIER_MON_WALREIN_4, \
+ FRONTIER_MON_LAPRAS_4, \
+ FRONTIER_MON_SWAMPERT_4, \
+ FRONTIER_MON_GYARADOS_4, \
+ FRONTIER_MON_KINGDRA_4, \
+ FRONTIER_MON_MILOTIC_4, \
+ FRONTIER_MON_MACHAMP_5, \
+ FRONTIER_MON_MACHAMP_6, \
+ FRONTIER_MON_MACHAMP_7, \
+ FRONTIER_MON_MACHAMP_8, \
+ FRONTIER_MON_STARMIE_5, \
+ FRONTIER_MON_STARMIE_6, \
+ FRONTIER_MON_STARMIE_7, \
+ FRONTIER_MON_STARMIE_8, \
+ FRONTIER_MON_LAPRAS_5, \
+ FRONTIER_MON_LAPRAS_6, \
+ FRONTIER_MON_LAPRAS_7, \
+ FRONTIER_MON_LAPRAS_8, \
+ -1
+
+#define FRONTIER_MONS_SWIMMING_TRIATHLETE_F_3 \
+ FRONTIER_MON_SNEASEL_2, \
+ FRONTIER_MON_CLOYSTER_2, \
+ FRONTIER_MON_MEDICHAM_1, \
+ FRONTIER_MON_JYNX_1, \
+ FRONTIER_MON_LANTURN_1, \
+ FRONTIER_MON_WHISCASH_1, \
+ FRONTIER_MON_QUAGSIRE_1, \
+ FRONTIER_MON_HARIYAMA_1, \
+ FRONTIER_MON_DEWGONG_1, \
+ FRONTIER_MON_GLALIE_1, \
+ FRONTIER_MON_LUDICOLO_1, \
+ FRONTIER_MON_SLOWBRO_1, \
+ FRONTIER_MON_SLOWKING_1, \
+ FRONTIER_MON_GOLDUCK_1, \
+ FRONTIER_MON_WAILORD_1, \
+ FRONTIER_MON_MACHAMP_1, \
+ FRONTIER_MON_TENTACRUEL_1, \
+ FRONTIER_MON_STARMIE_1, \
+ FRONTIER_MON_VAPOREON_1, \
+ FRONTIER_MON_BLASTOISE_1, \
+ FRONTIER_MON_FERALIGATR_1, \
+ FRONTIER_MON_WALREIN_1, \
+ FRONTIER_MON_LAPRAS_1, \
+ FRONTIER_MON_SWAMPERT_1, \
+ FRONTIER_MON_GYARADOS_1, \
+ FRONTIER_MON_KINGDRA_1, \
+ FRONTIER_MON_MILOTIC_1, \
+ FRONTIER_MON_MEDICHAM_2, \
+ FRONTIER_MON_QUAGSIRE_2, \
+ FRONTIER_MON_JYNX_2, \
+ FRONTIER_MON_LANTURN_2, \
+ FRONTIER_MON_WHISCASH_2, \
+ FRONTIER_MON_HARIYAMA_2, \
+ FRONTIER_MON_DEWGONG_2, \
+ FRONTIER_MON_GLALIE_2, \
+ FRONTIER_MON_LUDICOLO_2, \
+ FRONTIER_MON_SLOWBRO_2, \
+ FRONTIER_MON_SLOWKING_2, \
+ FRONTIER_MON_GOLDUCK_2, \
+ FRONTIER_MON_WAILORD_2, \
+ FRONTIER_MON_MACHAMP_2, \
+ FRONTIER_MON_TENTACRUEL_2, \
+ FRONTIER_MON_STARMIE_2, \
+ FRONTIER_MON_VAPOREON_2, \
+ FRONTIER_MON_BLASTOISE_2, \
+ FRONTIER_MON_FERALIGATR_2, \
+ FRONTIER_MON_WALREIN_2, \
+ FRONTIER_MON_LAPRAS_2, \
+ FRONTIER_MON_SWAMPERT_2, \
+ FRONTIER_MON_GYARADOS_2, \
+ FRONTIER_MON_KINGDRA_2, \
+ FRONTIER_MON_MILOTIC_2, \
+ FRONTIER_MON_MEDICHAM_3, \
+ FRONTIER_MON_JYNX_3, \
+ FRONTIER_MON_HARIYAMA_3, \
+ FRONTIER_MON_DEWGONG_3, \
+ FRONTIER_MON_GLALIE_3, \
+ FRONTIER_MON_MACHAMP_3, \
+ FRONTIER_MON_WALREIN_3, \
+ FRONTIER_MON_LAPRAS_3, \
+ FRONTIER_MON_MEDICHAM_4, \
+ FRONTIER_MON_JYNX_4, \
+ FRONTIER_MON_HARIYAMA_4, \
+ FRONTIER_MON_DEWGONG_4, \
+ FRONTIER_MON_GLALIE_4, \
+ FRONTIER_MON_MACHAMP_4, \
+ FRONTIER_MON_WALREIN_4, \
+ FRONTIER_MON_LAPRAS_4, \
+ FRONTIER_MON_MACHAMP_5, \
+ FRONTIER_MON_MACHAMP_6, \
+ FRONTIER_MON_MACHAMP_7, \
+ FRONTIER_MON_MACHAMP_8, \
+ FRONTIER_MON_STARMIE_5, \
+ FRONTIER_MON_STARMIE_6, \
+ FRONTIER_MON_STARMIE_7, \
+ FRONTIER_MON_STARMIE_8, \
+ FRONTIER_MON_LAPRAS_5, \
+ FRONTIER_MON_LAPRAS_6, \
+ FRONTIER_MON_LAPRAS_7, \
+ FRONTIER_MON_LAPRAS_8, \
+ -1
+
+#define FRONTIER_MONS_BUG_MANIAC_4 \
+ FRONTIER_MON_SHEDINJA, \
+ FRONTIER_MON_NINJASK_1, \
+ FRONTIER_MON_PARASECT_2, \
+ FRONTIER_MON_MASQUERAIN_2, \
+ FRONTIER_MON_VENOMOTH_2, \
+ FRONTIER_MON_NINJASK_2, \
+ FRONTIER_MON_SCYTHER_2, \
+ FRONTIER_MON_PINSIR_2, \
+ FRONTIER_MON_FORRETRESS_1, \
+ FRONTIER_MON_ARMALDO_1, \
+ FRONTIER_MON_SCIZOR_1, \
+ FRONTIER_MON_HERACROSS_1, \
+ FRONTIER_MON_SHUCKLE_1, \
+ FRONTIER_MON_FORRETRESS_2, \
+ FRONTIER_MON_ARMALDO_2, \
+ FRONTIER_MON_SCIZOR_2, \
+ FRONTIER_MON_HERACROSS_2, \
+ FRONTIER_MON_SHUCKLE_2, \
+ FRONTIER_MON_FORRETRESS_3, \
+ FRONTIER_MON_ARMALDO_3, \
+ FRONTIER_MON_SCIZOR_3, \
+ FRONTIER_MON_HERACROSS_3, \
+ FRONTIER_MON_SHUCKLE_3, \
+ FRONTIER_MON_FORRETRESS_4, \
+ FRONTIER_MON_ARMALDO_4, \
+ FRONTIER_MON_SCIZOR_4, \
+ FRONTIER_MON_HERACROSS_4, \
+ FRONTIER_MON_SHUCKLE_4, \
+ -1
+
+#define FRONTIER_MONS_FISHERMAN_3 \
+ FRONTIER_MON_SEAKING_2, \
+ FRONTIER_MON_SHARPEDO_2, \
+ FRONTIER_MON_MANTINE_2, \
+ FRONTIER_MON_CRAWDAUNT_2, \
+ FRONTIER_MON_KINGLER_2, \
+ FRONTIER_MON_OCTILLERY_2, \
+ FRONTIER_MON_HUNTAIL_2, \
+ FRONTIER_MON_GOREBYSS_2, \
+ FRONTIER_MON_RELICANTH_2, \
+ FRONTIER_MON_CLOYSTER_2, \
+ FRONTIER_MON_LANTURN_1, \
+ FRONTIER_MON_WHISCASH_1, \
+ FRONTIER_MON_WAILORD_1, \
+ FRONTIER_MON_TENTACRUEL_1, \
+ FRONTIER_MON_STARMIE_1, \
+ FRONTIER_MON_LANTURN_2, \
+ FRONTIER_MON_WHISCASH_2, \
+ FRONTIER_MON_WAILORD_2, \
+ FRONTIER_MON_TENTACRUEL_2, \
+ FRONTIER_MON_STARMIE_2, \
+ FRONTIER_MON_LANTURN_3, \
+ FRONTIER_MON_WHISCASH_3, \
+ FRONTIER_MON_WAILORD_3, \
+ FRONTIER_MON_TENTACRUEL_3, \
+ FRONTIER_MON_STARMIE_3, \
+ FRONTIER_MON_LANTURN_4, \
+ FRONTIER_MON_WHISCASH_4, \
+ FRONTIER_MON_WAILORD_4, \
+ FRONTIER_MON_TENTACRUEL_4, \
+ FRONTIER_MON_STARMIE_4, \
+ FRONTIER_MON_STARMIE_5, \
+ FRONTIER_MON_STARMIE_6, \
+ FRONTIER_MON_STARMIE_7, \
+ FRONTIER_MON_STARMIE_8, \
+ -1
+
+#define FRONTIER_MONS_RUIN_MANIAC_4 \
+ FRONTIER_MON_FORRETRESS_1, \
+ FRONTIER_MON_SKARMORY_1, \
+ FRONTIER_MON_GOLEM_1, \
+ FRONTIER_MON_RHYDON_1, \
+ FRONTIER_MON_CRADILY_1, \
+ FRONTIER_MON_ARMALDO_1, \
+ FRONTIER_MON_SCIZOR_1, \
+ FRONTIER_MON_SHUCKLE_1, \
+ FRONTIER_MON_STEELIX_1, \
+ FRONTIER_MON_AERODACTYL_1, \
+ FRONTIER_MON_AGGRON_1, \
+ FRONTIER_MON_METAGROSS_1, \
+ FRONTIER_MON_FORRETRESS_2, \
+ FRONTIER_MON_SKARMORY_2, \
+ FRONTIER_MON_GOLEM_2, \
+ FRONTIER_MON_RHYDON_2, \
+ FRONTIER_MON_CRADILY_2, \
+ FRONTIER_MON_ARMALDO_2, \
+ FRONTIER_MON_SCIZOR_2, \
+ FRONTIER_MON_SHUCKLE_2, \
+ FRONTIER_MON_STEELIX_2, \
+ FRONTIER_MON_AERODACTYL_2, \
+ FRONTIER_MON_AGGRON_2, \
+ FRONTIER_MON_METAGROSS_2, \
+ FRONTIER_MON_FORRETRESS_3, \
+ FRONTIER_MON_SKARMORY_3, \
+ FRONTIER_MON_GOLEM_3, \
+ FRONTIER_MON_RHYDON_3, \
+ FRONTIER_MON_CRADILY_3, \
+ FRONTIER_MON_ARMALDO_3, \
+ FRONTIER_MON_SCIZOR_3, \
+ FRONTIER_MON_SHUCKLE_3, \
+ FRONTIER_MON_STEELIX_3, \
+ FRONTIER_MON_AERODACTYL_3, \
+ FRONTIER_MON_AGGRON_3, \
+ FRONTIER_MON_METAGROSS_3, \
+ FRONTIER_MON_FORRETRESS_4, \
+ FRONTIER_MON_SKARMORY_4, \
+ FRONTIER_MON_GOLEM_4, \
+ FRONTIER_MON_RHYDON_4, \
+ FRONTIER_MON_CRADILY_4, \
+ FRONTIER_MON_ARMALDO_4, \
+ FRONTIER_MON_SCIZOR_4, \
+ FRONTIER_MON_SHUCKLE_4, \
+ FRONTIER_MON_STEELIX_4, \
+ FRONTIER_MON_AERODACTYL_4, \
+ FRONTIER_MON_AGGRON_4, \
+ FRONTIER_MON_METAGROSS_4, \
+ FRONTIER_MON_REGIROCK_1, \
+ FRONTIER_MON_REGICE_1, \
+ FRONTIER_MON_REGISTEEL_1, \
+ FRONTIER_MON_REGIROCK_2, \
+ FRONTIER_MON_REGICE_2, \
+ FRONTIER_MON_REGISTEEL_2, \
+ FRONTIER_MON_REGIROCK_3, \
+ FRONTIER_MON_REGICE_3, \
+ FRONTIER_MON_REGISTEEL_3, \
+ FRONTIER_MON_REGIROCK_4, \
+ FRONTIER_MON_REGICE_4, \
+ FRONTIER_MON_REGISTEEL_4, \
+ FRONTIER_MON_METAGROSS_5, \
+ FRONTIER_MON_METAGROSS_6, \
+ FRONTIER_MON_METAGROSS_7, \
+ FRONTIER_MON_METAGROSS_8, \
+ FRONTIER_MON_REGIROCK_5, \
+ FRONTIER_MON_REGIROCK_6, \
+ FRONTIER_MON_REGICE_5, \
+ FRONTIER_MON_REGICE_6, \
+ FRONTIER_MON_REGISTEEL_5, \
+ FRONTIER_MON_REGISTEEL_6, \
+ -1
+
+#define FRONTIER_MONS_COLLECTOR_3 \
+ FRONTIER_MON_VENUSAUR_1, \
+ FRONTIER_MON_MEGANIUM_1, \
+ FRONTIER_MON_BLASTOISE_1, \
+ FRONTIER_MON_FERALIGATR_1, \
+ FRONTIER_MON_BLAZIKEN_1, \
+ FRONTIER_MON_SCEPTILE_1, \
+ FRONTIER_MON_CHARIZARD_1, \
+ FRONTIER_MON_TYPHLOSION_1, \
+ FRONTIER_MON_SWAMPERT_1, \
+ FRONTIER_MON_VENUSAUR_2, \
+ FRONTIER_MON_MEGANIUM_2, \
+ FRONTIER_MON_BLASTOISE_2, \
+ FRONTIER_MON_FERALIGATR_2, \
+ FRONTIER_MON_BLAZIKEN_2, \
+ FRONTIER_MON_SCEPTILE_2, \
+ FRONTIER_MON_CHARIZARD_2, \
+ FRONTIER_MON_TYPHLOSION_2, \
+ FRONTIER_MON_SWAMPERT_2, \
+ FRONTIER_MON_VENUSAUR_3, \
+ FRONTIER_MON_MEGANIUM_3, \
+ FRONTIER_MON_BLASTOISE_3, \
+ FRONTIER_MON_FERALIGATR_3, \
+ FRONTIER_MON_BLAZIKEN_3, \
+ FRONTIER_MON_SCEPTILE_3, \
+ FRONTIER_MON_CHARIZARD_3, \
+ FRONTIER_MON_TYPHLOSION_3, \
+ FRONTIER_MON_SWAMPERT_3, \
+ FRONTIER_MON_VENUSAUR_4, \
+ FRONTIER_MON_MEGANIUM_4, \
+ FRONTIER_MON_BLASTOISE_4, \
+ FRONTIER_MON_FERALIGATR_4, \
+ FRONTIER_MON_BLAZIKEN_4, \
+ FRONTIER_MON_SCEPTILE_4, \
+ FRONTIER_MON_CHARIZARD_4, \
+ FRONTIER_MON_TYPHLOSION_4, \
+ FRONTIER_MON_SWAMPERT_4, \
+ -1
+
+#define FRONTIER_MONS_GUITARIST_3A \
+ FRONTIER_MON_ABSOL_2, \
+ FRONTIER_MON_LANTURN_1, \
+ FRONTIER_MON_RAICHU_1, \
+ FRONTIER_MON_MANECTRIC_1, \
+ FRONTIER_MON_ELECTRODE_1, \
+ FRONTIER_MON_SHIFTRY_1, \
+ FRONTIER_MON_ELECTABUZZ_1, \
+ FRONTIER_MON_AMPHAROS_1, \
+ FRONTIER_MON_HOUNDOOM_1, \
+ FRONTIER_MON_JOLTEON_1, \
+ FRONTIER_MON_UMBREON_1, \
+ FRONTIER_MON_LANTURN_2, \
+ FRONTIER_MON_RAICHU_2, \
+ FRONTIER_MON_MANECTRIC_2, \
+ FRONTIER_MON_ELECTRODE_2, \
+ FRONTIER_MON_SHIFTRY_2, \
+ FRONTIER_MON_ELECTABUZZ_2, \
+ FRONTIER_MON_AMPHAROS_2, \
+ FRONTIER_MON_HOUNDOOM_2, \
+ FRONTIER_MON_JOLTEON_2, \
+ FRONTIER_MON_UMBREON_2, \
+ FRONTIER_MON_LANTURN_3, \
+ FRONTIER_MON_RAICHU_3, \
+ FRONTIER_MON_MANECTRIC_3, \
+ FRONTIER_MON_ELECTRODE_3, \
+ FRONTIER_MON_SHIFTRY_3, \
+ FRONTIER_MON_ELECTABUZZ_3, \
+ FRONTIER_MON_AMPHAROS_3, \
+ FRONTIER_MON_HOUNDOOM_3, \
+ FRONTIER_MON_JOLTEON_3, \
+ FRONTIER_MON_UMBREON_3, \
+ FRONTIER_MON_LANTURN_4, \
+ FRONTIER_MON_RAICHU_4, \
+ FRONTIER_MON_MANECTRIC_4, \
+ FRONTIER_MON_ELECTRODE_4, \
+ FRONTIER_MON_SHIFTRY_4, \
+ FRONTIER_MON_ELECTABUZZ_4, \
+ FRONTIER_MON_AMPHAROS_4, \
+ FRONTIER_MON_HOUNDOOM_4, \
+ FRONTIER_MON_JOLTEON_4, \
+ FRONTIER_MON_UMBREON_4, \
+ FRONTIER_MON_ARTICUNO_1, \
+ FRONTIER_MON_ZAPDOS_1, \
+ FRONTIER_MON_MOLTRES_1, \
+ FRONTIER_MON_ARTICUNO_2, \
+ FRONTIER_MON_ZAPDOS_2, \
+ FRONTIER_MON_MOLTRES_2, \
+ FRONTIER_MON_ARTICUNO_3, \
+ FRONTIER_MON_ZAPDOS_3, \
+ FRONTIER_MON_MOLTRES_3, \
+ FRONTIER_MON_ARTICUNO_4, \
+ FRONTIER_MON_ZAPDOS_4, \
+ FRONTIER_MON_MOLTRES_4, \
+ FRONTIER_MON_ARTICUNO_5, \
+ FRONTIER_MON_ARTICUNO_6, \
+ FRONTIER_MON_ZAPDOS_5, \
+ FRONTIER_MON_ZAPDOS_6, \
+ FRONTIER_MON_MOLTRES_5, \
+ FRONTIER_MON_MOLTRES_6, \
+ -1
+
+#define FRONTIER_MONS_GUITARIST_3B \
+ FRONTIER_MON_MISDREAVUS_1, \
+ FRONTIER_MON_GRANBULL_1, \
+ FRONTIER_MON_LANTURN_1, \
+ FRONTIER_MON_ALAKAZAM_1, \
+ FRONTIER_MON_ELECTABUZZ_1, \
+ FRONTIER_MON_AMPHAROS_1, \
+ FRONTIER_MON_STARMIE_1, \
+ FRONTIER_MON_JOLTEON_1, \
+ FRONTIER_MON_GYARADOS_1, \
+ FRONTIER_MON_MISDREAVUS_2, \
+ FRONTIER_MON_ALAKAZAM_2, \
+ FRONTIER_MON_SLOWKING_2, \
+ FRONTIER_MON_MILTANK_2, \
+ FRONTIER_MON_AMPHAROS_2, \
+ FRONTIER_MON_PORYGON2_2, \
+ FRONTIER_MON_AGGRON_2, \
+ FRONTIER_MON_MISDREAVUS_3, \
+ FRONTIER_MON_MANECTRIC_3, \
+ FRONTIER_MON_ELECTRODE_3, \
+ FRONTIER_MON_PORYGON2_3, \
+ FRONTIER_MON_JOLTEON_3, \
+ FRONTIER_MON_RAICHU_4, \
+ FRONTIER_MON_MANECTRIC_4, \
+ FRONTIER_MON_ELECTRODE_4, \
+ FRONTIER_MON_AMPHAROS_4, \
+ FRONTIER_MON_JOLTEON_4, \
+ FRONTIER_MON_REGICE_3, \
+ FRONTIER_MON_REGIROCK_4, \
+ FRONTIER_MON_REGICE_4, \
+ FRONTIER_MON_REGISTEEL_4, \
+ FRONTIER_MON_STARMIE_6, \
+ FRONTIER_MON_LATIAS_5, \
+ FRONTIER_MON_LATIAS_6, \
+ FRONTIER_MON_LATIOS_5, \
+ FRONTIER_MON_LATIOS_6, \
+ -1
+
+#define FRONTIER_MONS_BIRD_KEEPER_3 \
+ FRONTIER_MON_PIDGEOT_2, \
+ FRONTIER_MON_FEAROW_1, \
+ FRONTIER_MON_DODRIO_1, \
+ FRONTIER_MON_XATU_1, \
+ FRONTIER_MON_SKARMORY_1, \
+ FRONTIER_MON_ALTARIA_1, \
+ FRONTIER_MON_AERODACTYL_1, \
+ FRONTIER_MON_FLYGON_1, \
+ FRONTIER_MON_CHARIZARD_1, \
+ FRONTIER_MON_CROBAT_1, \
+ FRONTIER_MON_GYARADOS_1, \
+ FRONTIER_MON_SALAMENCE_1, \
+ FRONTIER_MON_FEAROW_2, \
+ FRONTIER_MON_DODRIO_2, \
+ FRONTIER_MON_SKARMORY_2, \
+ FRONTIER_MON_XATU_2, \
+ FRONTIER_MON_ALTARIA_2, \
+ FRONTIER_MON_AERODACTYL_2, \
+ FRONTIER_MON_FLYGON_2, \
+ FRONTIER_MON_CHARIZARD_2, \
+ FRONTIER_MON_CROBAT_2, \
+ FRONTIER_MON_GYARADOS_2, \
+ FRONTIER_MON_SALAMENCE_2, \
+ FRONTIER_MON_FEAROW_3, \
+ FRONTIER_MON_DODRIO_3, \
+ FRONTIER_MON_XATU_3, \
+ FRONTIER_MON_SKARMORY_3, \
+ FRONTIER_MON_ALTARIA_3, \
+ FRONTIER_MON_AERODACTYL_3, \
+ FRONTIER_MON_FLYGON_3, \
+ FRONTIER_MON_CHARIZARD_3, \
+ FRONTIER_MON_CROBAT_3, \
+ FRONTIER_MON_GYARADOS_3, \
+ FRONTIER_MON_SALAMENCE_3, \
+ FRONTIER_MON_FEAROW_4, \
+ FRONTIER_MON_DODRIO_4, \
+ FRONTIER_MON_XATU_4, \
+ FRONTIER_MON_SKARMORY_4, \
+ FRONTIER_MON_ALTARIA_4, \
+ FRONTIER_MON_AERODACTYL_4, \
+ FRONTIER_MON_FLYGON_4, \
+ FRONTIER_MON_CHARIZARD_4, \
+ FRONTIER_MON_CROBAT_4, \
+ FRONTIER_MON_GYARADOS_4, \
+ FRONTIER_MON_SALAMENCE_4, \
+ FRONTIER_MON_ARTICUNO_1, \
+ FRONTIER_MON_ZAPDOS_1, \
+ FRONTIER_MON_MOLTRES_1, \
+ FRONTIER_MON_ARTICUNO_2, \
+ FRONTIER_MON_ZAPDOS_2, \
+ FRONTIER_MON_MOLTRES_2, \
+ FRONTIER_MON_ARTICUNO_3, \
+ FRONTIER_MON_ZAPDOS_3, \
+ FRONTIER_MON_MOLTRES_3, \
+ FRONTIER_MON_ARTICUNO_4, \
+ FRONTIER_MON_ZAPDOS_4, \
+ FRONTIER_MON_MOLTRES_4, \
+ FRONTIER_MON_SALAMENCE_5, \
+ FRONTIER_MON_SALAMENCE_6, \
+ FRONTIER_MON_SALAMENCE_7, \
+ FRONTIER_MON_SALAMENCE_8, \
+ -1
+
+#define FRONTIER_MONS_SAILOR_3 \
+ FRONTIER_MON_MEDICHAM_1, \
+ FRONTIER_MON_QUAGSIRE_1, \
+ FRONTIER_MON_HARIYAMA_1, \
+ FRONTIER_MON_DEWGONG_1, \
+ FRONTIER_MON_LUDICOLO_1, \
+ FRONTIER_MON_SLOWBRO_1, \
+ FRONTIER_MON_SLOWKING_1, \
+ FRONTIER_MON_GOLDUCK_1, \
+ FRONTIER_MON_MACHAMP_1, \
+ FRONTIER_MON_VAPOREON_1, \
+ FRONTIER_MON_BLASTOISE_1, \
+ FRONTIER_MON_FERALIGATR_1, \
+ FRONTIER_MON_WALREIN_1, \
+ FRONTIER_MON_LAPRAS_1, \
+ FRONTIER_MON_SWAMPERT_1, \
+ FRONTIER_MON_GYARADOS_1, \
+ FRONTIER_MON_KINGDRA_1, \
+ FRONTIER_MON_MILOTIC_1, \
+ FRONTIER_MON_MEDICHAM_2, \
+ FRONTIER_MON_QUAGSIRE_2, \
+ FRONTIER_MON_HARIYAMA_2, \
+ FRONTIER_MON_DEWGONG_2, \
+ FRONTIER_MON_LUDICOLO_2, \
+ FRONTIER_MON_SLOWBRO_2, \
+ FRONTIER_MON_SLOWKING_2, \
+ FRONTIER_MON_GOLDUCK_2, \
+ FRONTIER_MON_MACHAMP_2, \
+ FRONTIER_MON_VAPOREON_2, \
+ FRONTIER_MON_BLASTOISE_2, \
+ FRONTIER_MON_FERALIGATR_2, \
+ FRONTIER_MON_WALREIN_2, \
+ FRONTIER_MON_LAPRAS_2, \
+ FRONTIER_MON_SWAMPERT_2, \
+ FRONTIER_MON_GYARADOS_2, \
+ FRONTIER_MON_KINGDRA_2, \
+ FRONTIER_MON_MILOTIC_2, \
+ FRONTIER_MON_MEDICHAM_3, \
+ FRONTIER_MON_QUAGSIRE_3, \
+ FRONTIER_MON_HARIYAMA_3, \
+ FRONTIER_MON_DEWGONG_3, \
+ FRONTIER_MON_LUDICOLO_3, \
+ FRONTIER_MON_SLOWBRO_3, \
+ FRONTIER_MON_SLOWKING_3, \
+ FRONTIER_MON_GOLDUCK_3, \
+ FRONTIER_MON_MACHAMP_3, \
+ FRONTIER_MON_VAPOREON_3, \
+ FRONTIER_MON_BLASTOISE_3, \
+ FRONTIER_MON_FERALIGATR_3, \
+ FRONTIER_MON_WALREIN_3, \
+ FRONTIER_MON_LAPRAS_3, \
+ FRONTIER_MON_SWAMPERT_3, \
+ FRONTIER_MON_GYARADOS_3, \
+ FRONTIER_MON_KINGDRA_3, \
+ FRONTIER_MON_MILOTIC_3, \
+ FRONTIER_MON_MEDICHAM_4, \
+ FRONTIER_MON_QUAGSIRE_4, \
+ FRONTIER_MON_HARIYAMA_4, \
+ FRONTIER_MON_DEWGONG_4, \
+ FRONTIER_MON_LUDICOLO_4, \
+ FRONTIER_MON_SLOWBRO_4, \
+ FRONTIER_MON_SLOWKING_4, \
+ FRONTIER_MON_GOLDUCK_4, \
+ FRONTIER_MON_MACHAMP_4, \
+ FRONTIER_MON_VAPOREON_4, \
+ FRONTIER_MON_BLASTOISE_4, \
+ FRONTIER_MON_FERALIGATR_4, \
+ FRONTIER_MON_WALREIN_4, \
+ FRONTIER_MON_LAPRAS_4, \
+ FRONTIER_MON_SWAMPERT_4, \
+ FRONTIER_MON_GYARADOS_4, \
+ FRONTIER_MON_KINGDRA_4, \
+ FRONTIER_MON_MILOTIC_4, \
+ FRONTIER_MON_MACHAMP_5, \
+ FRONTIER_MON_MACHAMP_6, \
+ FRONTIER_MON_MACHAMP_7, \
+ FRONTIER_MON_MACHAMP_8, \
+ FRONTIER_MON_LAPRAS_5, \
+ FRONTIER_MON_LAPRAS_6, \
+ FRONTIER_MON_LAPRAS_7, \
+ FRONTIER_MON_LAPRAS_8, \
+ -1
+
+#define FRONTIER_MONS_HIKER_3 \
+ FRONTIER_MON_DUGTRIO_1, \
+ FRONTIER_MON_MAROWAK_1, \
+ FRONTIER_MON_GOLEM_1, \
+ FRONTIER_MON_RHYDON_1, \
+ FRONTIER_MON_NIDOQUEEN_1, \
+ FRONTIER_MON_NIDOKING_1, \
+ FRONTIER_MON_CRADILY_1, \
+ FRONTIER_MON_ARMALDO_1, \
+ FRONTIER_MON_DONPHAN_1, \
+ FRONTIER_MON_CLAYDOL_1, \
+ FRONTIER_MON_SHUCKLE_1, \
+ FRONTIER_MON_STEELIX_1, \
+ FRONTIER_MON_AERODACTYL_1, \
+ FRONTIER_MON_FLYGON_1, \
+ FRONTIER_MON_AGGRON_1, \
+ FRONTIER_MON_METAGROSS_1, \
+ FRONTIER_MON_DUGTRIO_2, \
+ FRONTIER_MON_MAROWAK_2, \
+ FRONTIER_MON_GOLEM_2, \
+ FRONTIER_MON_RHYDON_2, \
+ FRONTIER_MON_NIDOQUEEN_2, \
+ FRONTIER_MON_NIDOKING_2, \
+ FRONTIER_MON_CRADILY_2, \
+ FRONTIER_MON_ARMALDO_2, \
+ FRONTIER_MON_DONPHAN_2, \
+ FRONTIER_MON_CLAYDOL_2, \
+ FRONTIER_MON_SHUCKLE_2, \
+ FRONTIER_MON_STEELIX_2, \
+ FRONTIER_MON_AERODACTYL_2, \
+ FRONTIER_MON_FLYGON_2, \
+ FRONTIER_MON_AGGRON_2, \
+ FRONTIER_MON_METAGROSS_2, \
+ FRONTIER_MON_DUGTRIO_3, \
+ FRONTIER_MON_MAROWAK_3, \
+ FRONTIER_MON_GOLEM_3, \
+ FRONTIER_MON_RHYDON_3, \
+ FRONTIER_MON_NIDOQUEEN_3, \
+ FRONTIER_MON_NIDOKING_3, \
+ FRONTIER_MON_CRADILY_3, \
+ FRONTIER_MON_ARMALDO_3, \
+ FRONTIER_MON_DONPHAN_3, \
+ FRONTIER_MON_CLAYDOL_3, \
+ FRONTIER_MON_SHUCKLE_3, \
+ FRONTIER_MON_STEELIX_3, \
+ FRONTIER_MON_AERODACTYL_3, \
+ FRONTIER_MON_FLYGON_3, \
+ FRONTIER_MON_AGGRON_3, \
+ FRONTIER_MON_METAGROSS_3, \
+ FRONTIER_MON_DUGTRIO_4, \
+ FRONTIER_MON_MAROWAK_4, \
+ FRONTIER_MON_GOLEM_4, \
+ FRONTIER_MON_RHYDON_4, \
+ FRONTIER_MON_NIDOQUEEN_4, \
+ FRONTIER_MON_NIDOKING_4, \
+ FRONTIER_MON_CRADILY_4, \
+ FRONTIER_MON_ARMALDO_4, \
+ FRONTIER_MON_DONPHAN_4, \
+ FRONTIER_MON_CLAYDOL_4, \
+ FRONTIER_MON_SHUCKLE_4, \
+ FRONTIER_MON_STEELIX_4, \
+ FRONTIER_MON_AERODACTYL_4, \
+ FRONTIER_MON_FLYGON_4, \
+ FRONTIER_MON_AGGRON_4, \
+ FRONTIER_MON_METAGROSS_4, \
+ FRONTIER_MON_METAGROSS_5, \
+ FRONTIER_MON_METAGROSS_6, \
+ FRONTIER_MON_METAGROSS_7, \
+ FRONTIER_MON_METAGROSS_8, \
+ FRONTIER_MON_TYRANITAR_1, \
+ FRONTIER_MON_TYRANITAR_2, \
+ FRONTIER_MON_TYRANITAR_3, \
+ FRONTIER_MON_TYRANITAR_4, \
+ FRONTIER_MON_TYRANITAR_5, \
+ FRONTIER_MON_TYRANITAR_6, \
+ FRONTIER_MON_TYRANITAR_7, \
+ FRONTIER_MON_TYRANITAR_8, \
+ FRONTIER_MON_TYRANITAR_9, \
+ FRONTIER_MON_TYRANITAR_10, \
+ -1
+
+#define FRONTIER_MONS_KINDLER_3 \
+ FRONTIER_MON_MISDREAVUS_1, \
+ FRONTIER_MON_DUSCLOPS_1, \
+ FRONTIER_MON_MAGMAR_1, \
+ FRONTIER_MON_RAPIDASH_1, \
+ FRONTIER_MON_GENGAR_1, \
+ FRONTIER_MON_HOUNDOOM_1, \
+ FRONTIER_MON_NINETALES_1, \
+ FRONTIER_MON_FLAREON_1, \
+ FRONTIER_MON_BLAZIKEN_1, \
+ FRONTIER_MON_CHARIZARD_1, \
+ FRONTIER_MON_TYPHLOSION_1, \
+ FRONTIER_MON_ARCANINE_1, \
+ FRONTIER_MON_MISDREAVUS_2, \
+ FRONTIER_MON_DUSCLOPS_2, \
+ FRONTIER_MON_MAGMAR_2, \
+ FRONTIER_MON_RAPIDASH_2, \
+ FRONTIER_MON_GENGAR_2, \
+ FRONTIER_MON_HOUNDOOM_2, \
+ FRONTIER_MON_NINETALES_2, \
+ FRONTIER_MON_FLAREON_2, \
+ FRONTIER_MON_BLAZIKEN_2, \
+ FRONTIER_MON_CHARIZARD_2, \
+ FRONTIER_MON_TYPHLOSION_2, \
+ FRONTIER_MON_ARCANINE_2, \
+ FRONTIER_MON_MISDREAVUS_3, \
+ FRONTIER_MON_DUSCLOPS_3, \
+ FRONTIER_MON_MAGMAR_3, \
+ FRONTIER_MON_RAPIDASH_3, \
+ FRONTIER_MON_GENGAR_3, \
+ FRONTIER_MON_HOUNDOOM_3, \
+ FRONTIER_MON_NINETALES_3, \
+ FRONTIER_MON_FLAREON_3, \
+ FRONTIER_MON_BLAZIKEN_3, \
+ FRONTIER_MON_CHARIZARD_3, \
+ FRONTIER_MON_TYPHLOSION_3, \
+ FRONTIER_MON_ARCANINE_3, \
+ FRONTIER_MON_MISDREAVUS_4, \
+ FRONTIER_MON_DUSCLOPS_4, \
+ FRONTIER_MON_MAGMAR_4, \
+ FRONTIER_MON_RAPIDASH_4, \
+ FRONTIER_MON_GENGAR_4, \
+ FRONTIER_MON_HOUNDOOM_4, \
+ FRONTIER_MON_NINETALES_4, \
+ FRONTIER_MON_FLAREON_4, \
+ FRONTIER_MON_BLAZIKEN_4, \
+ FRONTIER_MON_CHARIZARD_4, \
+ FRONTIER_MON_TYPHLOSION_4, \
+ FRONTIER_MON_ARCANINE_4, \
+ FRONTIER_MON_GENGAR_5, \
+ FRONTIER_MON_GENGAR_6, \
+ FRONTIER_MON_GENGAR_7, \
+ FRONTIER_MON_GENGAR_8, \
+ FRONTIER_MON_DRAGONITE_1, \
+ FRONTIER_MON_DRAGONITE_2, \
+ FRONTIER_MON_DRAGONITE_3, \
+ FRONTIER_MON_DRAGONITE_4, \
+ FRONTIER_MON_DRAGONITE_5, \
+ FRONTIER_MON_DRAGONITE_6, \
+ FRONTIER_MON_DRAGONITE_7, \
+ FRONTIER_MON_DRAGONITE_8, \
+ FRONTIER_MON_DRAGONITE_9, \
+ FRONTIER_MON_DRAGONITE_10, \
+ -1
+
+#define FRONTIER_MONS_PARASOL_LADY_3 \
+ FRONTIER_MON_GLALIE_1, \
+ FRONTIER_MON_LUDICOLO_1, \
+ FRONTIER_MON_SLOWBRO_1, \
+ FRONTIER_MON_AMPHAROS_1, \
+ FRONTIER_MON_EXEGGUTOR_1, \
+ FRONTIER_MON_VENUSAUR_1, \
+ FRONTIER_MON_MEGANIUM_1, \
+ FRONTIER_MON_BLASTOISE_1, \
+ FRONTIER_MON_FERALIGATR_1, \
+ FRONTIER_MON_BLAZIKEN_1, \
+ FRONTIER_MON_WALREIN_1, \
+ FRONTIER_MON_CHARIZARD_1, \
+ FRONTIER_MON_TYPHLOSION_1, \
+ FRONTIER_MON_MANECTRIC_2, \
+ FRONTIER_MON_ELECTRODE_2, \
+ FRONTIER_MON_EXPLOUD_2, \
+ FRONTIER_MON_ELECTABUZZ_2, \
+ FRONTIER_MON_NINETALES_2, \
+ FRONTIER_MON_PORYGON2_2, \
+ FRONTIER_MON_STARMIE_2, \
+ FRONTIER_MON_FLYGON_2, \
+ FRONTIER_MON_ARCANINE_2, \
+ FRONTIER_MON_LANTURN_3, \
+ FRONTIER_MON_RAICHU_3, \
+ FRONTIER_MON_SHIFTRY_3, \
+ FRONTIER_MON_LUDICOLO_3, \
+ FRONTIER_MON_CRADILY_3, \
+ FRONTIER_MON_RAPIDASH_3, \
+ FRONTIER_MON_CLAYDOL_3, \
+ FRONTIER_MON_GYARADOS_3, \
+ FRONTIER_MON_VILEPLUME_4, \
+ FRONTIER_MON_LUDICOLO_4, \
+ FRONTIER_MON_HOUNDOOM_4, \
+ FRONTIER_MON_VENUSAUR_4, \
+ FRONTIER_MON_FLAREON_4, \
+ -1
+
+// Only used by one Beauty
+#define FRONTIER_MONS_EEVEELUTIONS \
+ FRONTIER_MON_VAPOREON_1, \
+ FRONTIER_MON_JOLTEON_1, \
+ FRONTIER_MON_FLAREON_1, \
+ FRONTIER_MON_ESPEON_1, \
+ FRONTIER_MON_UMBREON_1, \
+ FRONTIER_MON_VAPOREON_2, \
+ FRONTIER_MON_JOLTEON_2, \
+ FRONTIER_MON_FLAREON_2, \
+ FRONTIER_MON_ESPEON_2, \
+ FRONTIER_MON_UMBREON_2, \
+ FRONTIER_MON_VAPOREON_3, \
+ FRONTIER_MON_JOLTEON_3, \
+ FRONTIER_MON_FLAREON_3, \
+ FRONTIER_MON_ESPEON_3, \
+ FRONTIER_MON_UMBREON_3, \
+ FRONTIER_MON_VAPOREON_4, \
+ FRONTIER_MON_JOLTEON_4, \
+ FRONTIER_MON_FLAREON_4, \
+ FRONTIER_MON_ESPEON_4, \
+ FRONTIER_MON_UMBREON_4, \
+ -1
+
+#define FRONTIER_MONS_BEAUTY_2 \
+ FRONTIER_MON_JYNX_1, \
+ FRONTIER_MON_LANTURN_1, \
+ FRONTIER_MON_SLOWKING_1, \
+ FRONTIER_MON_GENGAR_1, \
+ FRONTIER_MON_AMPHAROS_1, \
+ FRONTIER_MON_JOLTEON_1, \
+ FRONTIER_MON_LAPRAS_1, \
+ FRONTIER_MON_SNORLAX_1, \
+ FRONTIER_MON_KINGDRA_1, \
+ FRONTIER_MON_QUAGSIRE_2, \
+ FRONTIER_MON_MISDREAVUS_2, \
+ FRONTIER_MON_FEAROW_2, \
+ FRONTIER_MON_XATU_2, \
+ FRONTIER_MON_VICTREEBEL_2, \
+ FRONTIER_MON_KANGASKHAN_2, \
+ FRONTIER_MON_ELECTABUZZ_2, \
+ FRONTIER_MON_MILTANK_2, \
+ FRONTIER_MON_ALTARIA_2, \
+ FRONTIER_MON_RAPIDASH_2, \
+ FRONTIER_MON_HERACROSS_2, \
+ FRONTIER_MON_FLAREON_2, \
+ FRONTIER_MON_SCEPTILE_2, \
+ FRONTIER_MON_JYNX_3, \
+ FRONTIER_MON_BRELOOM_3, \
+ FRONTIER_MON_RAICHU_3, \
+ FRONTIER_MON_VILEPLUME_3, \
+ FRONTIER_MON_SLOWBRO_3, \
+ FRONTIER_MON_NINETALES_3, \
+ FRONTIER_MON_SHUCKLE_3, \
+ FRONTIER_MON_UMBREON_3, \
+ FRONTIER_MON_WALREIN_3, \
+ FRONTIER_MON_MILOTIC_3, \
+ FRONTIER_MON_ESPEON_4, \
+ FRONTIER_MON_URSARING_5, \
+ FRONTIER_MON_MACHAMP_7, \
+ FRONTIER_MON_GARDEVOIR_8, \
+ FRONTIER_MON_LAPRAS_8, \
+ FRONTIER_MON_SALAMENCE_8, \
+ FRONTIER_MON_LATIAS_6, \
+ -1
+
+#define FRONTIER_MONS_AROMA_LADY_3 \
+ FRONTIER_MON_WOBBUFFET_1, \
+ FRONTIER_MON_WOBBUFFET_2, \
+ FRONTIER_MON_SUNFLORA_2, \
+ FRONTIER_MON_JUMPLUFF_2, \
+ FRONTIER_MON_TROPIUS_2, \
+ FRONTIER_MON_CACTURNE_2, \
+ FRONTIER_MON_BELLOSSOM_2, \
+ FRONTIER_MON_JYNX_1, \
+ FRONTIER_MON_MR_MIME_1, \
+ FRONTIER_MON_BRELOOM_1, \
+ FRONTIER_MON_XATU_1, \
+ FRONTIER_MON_VILEPLUME_1, \
+ FRONTIER_MON_VICTREEBEL_1, \
+ FRONTIER_MON_SHIFTRY_1, \
+ FRONTIER_MON_LUDICOLO_1, \
+ FRONTIER_MON_HYPNO_1, \
+ FRONTIER_MON_ALAKAZAM_1, \
+ FRONTIER_MON_SLOWBRO_1, \
+ FRONTIER_MON_SLOWKING_1, \
+ FRONTIER_MON_CRADILY_1, \
+ FRONTIER_MON_GARDEVOIR_1, \
+ FRONTIER_MON_EXEGGUTOR_1, \
+ FRONTIER_MON_STARMIE_1, \
+ FRONTIER_MON_VENUSAUR_1, \
+ FRONTIER_MON_MEGANIUM_1, \
+ FRONTIER_MON_ESPEON_1, \
+ FRONTIER_MON_SCEPTILE_1, \
+ FRONTIER_MON_JYNX_2, \
+ FRONTIER_MON_MR_MIME_2, \
+ FRONTIER_MON_BRELOOM_2, \
+ FRONTIER_MON_XATU_2, \
+ FRONTIER_MON_VILEPLUME_2, \
+ FRONTIER_MON_VICTREEBEL_2, \
+ FRONTIER_MON_SHIFTRY_2, \
+ FRONTIER_MON_LUDICOLO_2, \
+ FRONTIER_MON_HYPNO_2, \
+ FRONTIER_MON_ALAKAZAM_2, \
+ FRONTIER_MON_SLOWBRO_2, \
+ FRONTIER_MON_SLOWKING_2, \
+ FRONTIER_MON_CRADILY_2, \
+ FRONTIER_MON_GARDEVOIR_2, \
+ FRONTIER_MON_EXEGGUTOR_2, \
+ FRONTIER_MON_STARMIE_2, \
+ FRONTIER_MON_VENUSAUR_2, \
+ FRONTIER_MON_MEGANIUM_2, \
+ FRONTIER_MON_ESPEON_2, \
+ FRONTIER_MON_SCEPTILE_2, \
+ FRONTIER_MON_JYNX_3, \
+ FRONTIER_MON_MR_MIME_3, \
+ FRONTIER_MON_BRELOOM_3, \
+ FRONTIER_MON_XATU_3, \
+ FRONTIER_MON_VILEPLUME_3, \
+ FRONTIER_MON_VICTREEBEL_3, \
+ FRONTIER_MON_SHIFTRY_3, \
+ FRONTIER_MON_LUDICOLO_3, \
+ FRONTIER_MON_HYPNO_3, \
+ FRONTIER_MON_ALAKAZAM_3, \
+ FRONTIER_MON_SLOWBRO_3, \
+ FRONTIER_MON_SLOWKING_3, \
+ FRONTIER_MON_CRADILY_3, \
+ FRONTIER_MON_GARDEVOIR_3, \
+ FRONTIER_MON_EXEGGUTOR_3, \
+ FRONTIER_MON_STARMIE_3, \
+ FRONTIER_MON_VENUSAUR_3, \
+ FRONTIER_MON_MEGANIUM_3, \
+ FRONTIER_MON_ESPEON_3, \
+ FRONTIER_MON_SCEPTILE_3, \
+ FRONTIER_MON_JYNX_4, \
+ FRONTIER_MON_MR_MIME_4, \
+ FRONTIER_MON_BRELOOM_4, \
+ FRONTIER_MON_XATU_4, \
+ FRONTIER_MON_VILEPLUME_4, \
+ FRONTIER_MON_VICTREEBEL_4, \
+ FRONTIER_MON_SHIFTRY_4, \
+ FRONTIER_MON_LUDICOLO_4, \
+ FRONTIER_MON_HYPNO_4, \
+ FRONTIER_MON_ALAKAZAM_4, \
+ FRONTIER_MON_SLOWBRO_4, \
+ FRONTIER_MON_SLOWKING_4, \
+ FRONTIER_MON_CRADILY_4, \
+ FRONTIER_MON_GARDEVOIR_4, \
+ FRONTIER_MON_EXEGGUTOR_4, \
+ FRONTIER_MON_STARMIE_4, \
+ FRONTIER_MON_VENUSAUR_4, \
+ FRONTIER_MON_MEGANIUM_4, \
+ FRONTIER_MON_ESPEON_4, \
+ FRONTIER_MON_SCEPTILE_4, \
+ FRONTIER_MON_GARDEVOIR_5, \
+ FRONTIER_MON_GARDEVOIR_6, \
+ FRONTIER_MON_GARDEVOIR_7, \
+ FRONTIER_MON_GARDEVOIR_8, \
+ FRONTIER_MON_STARMIE_5, \
+ FRONTIER_MON_STARMIE_6, \
+ FRONTIER_MON_STARMIE_7, \
+ FRONTIER_MON_STARMIE_8, \
+ -1
+
const u16 gBattleFrontierTrainerMons_Brady[] =
{
- 0,
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 10,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- -1
+ FRONTIER_MONS_YOUNGSTER_LASS_1
};
const u16 gBattleFrontierTrainerMons_Conner[] =
{
- 0,
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 10,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- -1
+ FRONTIER_MONS_YOUNGSTER_LASS_1
};
const u16 gBattleFrontierTrainerMons_Bradley[] =
{
- 0,
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 10,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- -1
+ FRONTIER_MONS_YOUNGSTER_LASS_1
};
const u16 gBattleFrontierTrainerMons_Cybil[] =
{
- 0,
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 10,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- -1
+ FRONTIER_MONS_YOUNGSTER_LASS_1
};
const u16 gBattleFrontierTrainerMons_Rodette[] =
{
- 0,
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 10,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- -1
+ FRONTIER_MONS_YOUNGSTER_LASS_1
};
const u16 gBattleFrontierTrainerMons_Peggy[] =
{
- 0,
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 10,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- -1
+ FRONTIER_MONS_YOUNGSTER_LASS_1
};
const u16 gBattleFrontierTrainerMons_Keith[] =
{
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- -1
+ FRONTIER_MONS_SCHOOL_KID_1
};
const u16 gBattleFrontierTrainerMons_Grayson[] =
{
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- -1
+ FRONTIER_MONS_SCHOOL_KID_1
};
const u16 gBattleFrontierTrainerMons_Glenn[] =
{
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- -1
+ FRONTIER_MONS_SCHOOL_KID_1
};
const u16 gBattleFrontierTrainerMons_Liliana[] =
{
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- -1
+ FRONTIER_MONS_SCHOOL_KID_1
};
const u16 gBattleFrontierTrainerMons_Elise[] =
{
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- -1
+ FRONTIER_MONS_SCHOOL_KID_1
};
const u16 gBattleFrontierTrainerMons_Zoey[] =
{
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- -1
+ FRONTIER_MONS_SCHOOL_KID_1
};
const u16 gBattleFrontierTrainerMons_Manuel[] =
{
- 5,
- 20,
- 21,
- 25,
- 27,
- 35,
- 46,
- 47,
- 48,
- 50,
- 53,
- 62,
- 63,
- 69,
- 75,
- 78,
- 79,
- 80,
- 84,
- 90,
- 92,
- 99,
- 100,
- 102,
- 106,
- 110,
- 112,
- 114,
- 119,
- 121,
- 124,
- 127,
- 146,
- 147,
- 154,
- 158,
- 160,
- -1
+ FRONTIER_MONS_RICH_BOY_LADY_1
};
const u16 gBattleFrontierTrainerMons_Russ[] =
{
- 5,
- 20,
- 21,
- 25,
- 27,
- 35,
- 46,
- 47,
- 48,
- 50,
- 53,
- 62,
- 63,
- 69,
- 75,
- 78,
- 79,
- 80,
- 84,
- 90,
- 92,
- 99,
- 100,
- 102,
- 106,
- 110,
- 112,
- 114,
- 119,
- 121,
- 124,
- 127,
- 146,
- 147,
- 154,
- 158,
- 160,
- -1
+ FRONTIER_MONS_RICH_BOY_LADY_1
};
const u16 gBattleFrontierTrainerMons_Dustin[] =
{
- 5,
- 20,
- 21,
- 25,
- 27,
- 35,
- 46,
- 47,
- 48,
- 50,
- 53,
- 62,
- 63,
- 69,
- 75,
- 78,
- 79,
- 80,
- 84,
- 90,
- 92,
- 99,
- 100,
- 102,
- 106,
- 110,
- 112,
- 114,
- 119,
- 121,
- 124,
- 127,
- 146,
- 147,
- 154,
- 158,
- 160,
- -1
+ FRONTIER_MONS_RICH_BOY_LADY_1
};
const u16 gBattleFrontierTrainerMons_Tina[] =
{
- 5,
- 20,
- 21,
- 25,
- 27,
- 35,
- 46,
- 47,
- 48,
- 50,
- 53,
- 62,
- 63,
- 69,
- 75,
- 78,
- 79,
- 80,
- 84,
- 90,
- 92,
- 99,
- 100,
- 102,
- 106,
- 110,
- 112,
- 114,
- 119,
- 121,
- 124,
- 127,
- 146,
- 147,
- 154,
- 158,
- 160,
- -1
+ FRONTIER_MONS_RICH_BOY_LADY_1
};
const u16 gBattleFrontierTrainerMons_Gillian[] =
{
- 5,
- 20,
- 21,
- 25,
- 27,
- 35,
- 46,
- 47,
- 48,
- 50,
- 53,
- 62,
- 63,
- 69,
- 75,
- 78,
- 79,
- 80,
- 84,
- 90,
- 92,
- 99,
- 100,
- 102,
- 106,
- 110,
- 112,
- 114,
- 119,
- 121,
- 124,
- 127,
- 146,
- 147,
- 154,
- 158,
- 160,
- -1
+ FRONTIER_MONS_RICH_BOY_LADY_1
};
const u16 gBattleFrontierTrainerMons_Zoe[] =
{
- 5,
- 20,
- 21,
- 25,
- 27,
- 35,
- 46,
- 47,
- 48,
- 50,
- 53,
- 62,
- 63,
- 69,
- 75,
- 78,
- 79,
- 80,
- 84,
- 90,
- 92,
- 99,
- 100,
- 102,
- 106,
- 110,
- 112,
- 114,
- 119,
- 121,
- 124,
- 127,
- 146,
- 147,
- 154,
- 158,
- 160,
- -1
+ FRONTIER_MONS_RICH_BOY_LADY_1
};
const u16 gBattleFrontierTrainerMons_Chen[] =
{
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- -1
+ FRONTIER_MONS_CAMPER_PICNICKER_1
};
const u16 gBattleFrontierTrainerMons_Al[] =
{
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- -1
+ FRONTIER_MONS_CAMPER_PICNICKER_1
};
const u16 gBattleFrontierTrainerMons_Mitch[] =
{
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- -1
+ FRONTIER_MONS_CAMPER_PICNICKER_1
};
const u16 gBattleFrontierTrainerMons_Anne[] =
{
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- -1
+ FRONTIER_MONS_CAMPER_PICNICKER_1
};
const u16 gBattleFrontierTrainerMons_Alize[] =
{
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- -1
+ FRONTIER_MONS_CAMPER_PICNICKER_1
};
const u16 gBattleFrontierTrainerMons_Lauren[] =
{
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- -1
+ FRONTIER_MONS_CAMPER_PICNICKER_1
};
const u16 gBattleFrontierTrainerMons_Kipp[] =
{
- 5,
- 6,
- 7,
- 14,
- 19,
- 28,
- 35,
- 42,
- 45,
- 48,
- 50,
- 55,
- 59,
- 60,
- 68,
- 73,
- 83,
- 84,
- 86,
- 87,
- 90,
- 96,
- 97,
- 98,
- 99,
- 103,
- 105,
- 106,
- 109,
- 112,
- 114,
- 121,
- -1
+ FRONTIER_MONS_TUBER_1
};
const u16 gBattleFrontierTrainerMons_Jason[] =
{
- 5,
- 6,
- 7,
- 14,
- 19,
- 28,
- 35,
- 42,
- 45,
- 48,
- 50,
- 55,
- 59,
- 60,
- 68,
- 73,
- 83,
- 84,
- 86,
- 87,
- 90,
- 96,
- 97,
- 98,
- 99,
- 103,
- 105,
- 106,
- 109,
- 112,
- 114,
- 121,
- -1
+ FRONTIER_MONS_TUBER_1
};
const u16 gBattleFrontierTrainerMons_John[] =
{
- 5,
- 6,
- 7,
- 14,
- 19,
- 28,
- 35,
- 42,
- 45,
- 48,
- 50,
- 55,
- 59,
- 60,
- 68,
- 73,
- 83,
- 84,
- 86,
- 87,
- 90,
- 96,
- 97,
- 98,
- 99,
- 103,
- 105,
- 106,
- 109,
- 112,
- 114,
- 121,
- -1
+ FRONTIER_MONS_TUBER_1
};
const u16 gBattleFrontierTrainerMons_Ann[] =
{
- 5,
- 6,
- 7,
- 14,
- 19,
- 28,
- 35,
- 42,
- 45,
- 48,
- 50,
- 55,
- 59,
- 60,
- 68,
- 73,
- 83,
- 84,
- 86,
- 87,
- 90,
- 96,
- 97,
- 98,
- 99,
- 103,
- 105,
- 106,
- 109,
- 112,
- 114,
- 121,
- -1
+ FRONTIER_MONS_TUBER_1
};
const u16 gBattleFrontierTrainerMons_Eileen[] =
{
- 5,
- 6,
- 7,
- 14,
- 19,
- 28,
- 35,
- 42,
- 45,
- 48,
- 50,
- 55,
- 59,
- 60,
- 68,
- 73,
- 83,
- 84,
- 86,
- 87,
- 90,
- 96,
- 97,
- 98,
- 99,
- 103,
- 105,
- 106,
- 109,
- 112,
- 114,
- 121,
- -1
+ FRONTIER_MONS_TUBER_1
};
const u16 gBattleFrontierTrainerMons_Carlie[] =
{
- 5,
- 6,
- 7,
- 14,
- 19,
- 28,
- 35,
- 42,
- 45,
- 48,
- 50,
- 55,
- 59,
- 60,
- 68,
- 73,
- 83,
- 84,
- 86,
- 87,
- 90,
- 96,
- 97,
- 98,
- 99,
- 103,
- 105,
- 106,
- 109,
- 112,
- 114,
- 121,
- -1
+ FRONTIER_MONS_TUBER_1
};
const u16 gBattleFrontierTrainerMons_Gordon[] =
{
- 1,
- 13,
- 15,
- 16,
- 17,
- 22,
- 23,
- 24,
- 26,
- 32,
- 34,
- 36,
- 43,
- 50,
- 51,
- 54,
- 56,
- 68,
- 72,
- 73,
- 81,
- 82,
- 83,
- 86,
- 87,
- 96,
- 97,
- 98,
- 99,
- 103,
- 105,
- 107,
- 109,
- 111,
- 113,
- 116,
- 117,
- 123,
- 124,
- 128,
- 131,
- 134,
- 138,
- 139,
- 142,
- 144,
- 145,
- 151,
- 152,
- 155,
- -1
+ FRONTIER_MONS_SWIMMER_M_1
};
const u16 gBattleFrontierTrainerMons_Ayden[] =
{
- 1,
- 13,
- 15,
- 16,
- 17,
- 22,
- 23,
- 24,
- 26,
- 32,
- 34,
- 36,
- 43,
- 50,
- 51,
- 54,
- 56,
- 68,
- 72,
- 73,
- 81,
- 82,
- 83,
- 86,
- 87,
- 96,
- 97,
- 98,
- 99,
- 103,
- 105,
- 107,
- 109,
- 111,
- 113,
- 116,
- 117,
- 123,
- 124,
- 128,
- 131,
- 134,
- 138,
- 139,
- 142,
- 144,
- 145,
- 151,
- 152,
- 155,
- -1
+ FRONTIER_MONS_SWIMMER_M_1
};
const u16 gBattleFrontierTrainerMons_Marco[] =
{
- 1,
- 13,
- 15,
- 16,
- 17,
- 22,
- 23,
- 24,
- 26,
- 32,
- 34,
- 36,
- 43,
- 50,
- 51,
- 54,
- 56,
- 68,
- 72,
- 73,
- 81,
- 82,
- 83,
- 86,
- 87,
- 96,
- 97,
- 98,
- 99,
- 103,
- 105,
- 107,
- 109,
- 111,
- 113,
- 116,
- 117,
- 123,
- 124,
- 128,
- 131,
- 134,
- 138,
- 139,
- 142,
- 144,
- 145,
- 151,
- 152,
- 155,
- -1
+ FRONTIER_MONS_SWIMMER_M_1
};
const u16 gBattleFrontierTrainerMons_Cierra[] =
{
- 1,
- 13,
- 16,
- 17,
- 23,
- 24,
- 26,
- 32,
- 34,
- 36,
- 43,
- 51,
- 54,
- 56,
- 68,
- 72,
- 73,
- 76,
- 83,
- 84,
- 86,
- 87,
- 96,
- 97,
- 98,
- 99,
- 103,
- 105,
- 107,
- 109,
- 111,
- 113,
- 116,
- 117,
- 118,
- 123,
- 124,
- 128,
- 131,
- 134,
- 138,
- 139,
- 142,
- 144,
- 145,
- 151,
- 155,
- -1
+ FRONTIER_MONS_SWIMMER_F_1
};
const u16 gBattleFrontierTrainerMons_Marcy[] =
{
- 1,
- 13,
- 16,
- 17,
- 23,
- 24,
- 26,
- 32,
- 34,
- 36,
- 43,
- 51,
- 54,
- 56,
- 68,
- 72,
- 73,
- 76,
- 83,
- 84,
- 86,
- 87,
- 96,
- 97,
- 98,
- 99,
- 103,
- 105,
- 107,
- 109,
- 111,
- 113,
- 116,
- 117,
- 118,
- 123,
- 124,
- 128,
- 131,
- 134,
- 138,
- 139,
- 142,
- 144,
- 145,
- 151,
- 155,
- -1
+ FRONTIER_MONS_SWIMMER_F_1
};
const u16 gBattleFrontierTrainerMons_Kathy[] =
{
- 1,
- 13,
- 16,
- 17,
- 23,
- 24,
- 26,
- 32,
- 34,
- 36,
- 43,
- 51,
- 54,
- 56,
- 68,
- 72,
- 73,
- 76,
- 83,
- 84,
- 86,
- 87,
- 96,
- 97,
- 98,
- 99,
- 103,
- 105,
- 107,
- 109,
- 111,
- 113,
- 116,
- 117,
- 118,
- 123,
- 124,
- 128,
- 131,
- 134,
- 138,
- 139,
- 142,
- 144,
- 145,
- 151,
- 155,
- -1
+ FRONTIER_MONS_SWIMMER_F_1
};
const u16 gBattleFrontierTrainerMons_Peyton[] =
{
- 84,
- 85,
- 87,
- 88,
- 89,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 105,
- 106,
- 107,
- 109,
- 112,
- 113,
- 117,
- 120,
- 121,
- 123,
- 129,
- 134,
- 142,
- 143,
- 145,
- 148,
- 149,
- 151,
- 152,
- 155,
- -1
+ FRONTIER_MONS_POKEFAN_M_1
};
const u16 gBattleFrontierTrainerMons_Julian[] =
{
- 84,
- 85,
- 87,
- 88,
- 89,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 105,
- 106,
- 107,
- 109,
- 112,
- 113,
- 117,
- 120,
- 121,
- 123,
- 129,
- 134,
- 142,
- 143,
- 145,
- 148,
- 149,
- 151,
- 152,
- 155,
- -1
+ FRONTIER_MONS_POKEFAN_M_1
};
const u16 gBattleFrontierTrainerMons_Quinn[] =
{
- 84,
- 85,
- 87,
- 88,
- 89,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 105,
- 106,
- 107,
- 109,
- 112,
- 113,
- 117,
- 120,
- 121,
- 123,
- 129,
- 134,
- 142,
- 143,
- 145,
- 148,
- 149,
- 151,
- 152,
- 155,
- -1
+ FRONTIER_MONS_POKEFAN_M_1
};
const u16 gBattleFrontierTrainerMons_Haylee[] =
{
- 1,
- 5,
- 6,
- 10,
- 13,
- 14,
- 16,
- 17,
- 18,
- 19,
- 20,
- 23,
- 24,
- 26,
- 28,
- 29,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 54,
- 56,
- 59,
- 61,
- 65,
- 66,
- 67,
- 68,
- 71,
- 72,
- 79,
- -1
+ FRONTIER_MONS_POKEFAN_F_1
};
const u16 gBattleFrontierTrainerMons_Amanda[] =
{
- 1,
- 5,
- 6,
- 10,
- 13,
- 14,
- 16,
- 17,
- 18,
- 19,
- 20,
- 23,
- 24,
- 26,
- 28,
- 29,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 54,
- 56,
- 59,
- 61,
- 65,
- 66,
- 67,
- 68,
- 71,
- 72,
- 79,
- -1
+ FRONTIER_MONS_POKEFAN_F_1
};
const u16 gBattleFrontierTrainerMons_Stacy[] =
{
- 1,
- 5,
- 6,
- 10,
- 13,
- 14,
- 16,
- 17,
- 18,
- 19,
- 20,
- 23,
- 24,
- 26,
- 28,
- 29,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 54,
- 56,
- 59,
- 61,
- 65,
- 66,
- 67,
- 68,
- 71,
- 72,
- 79,
- -1
+ FRONTIER_MONS_POKEFAN_F_1
};
+// The below 6 are the early Pkmn Breeder class trainers, which use groups from other general classes
const u16 gBattleFrontierTrainerMons_Rafael[] =
{
- 0,
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 10,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- -1
+ FRONTIER_MONS_YOUNGSTER_LASS_1
};
const u16 gBattleFrontierTrainerMons_Oliver[] =
{
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- -1
+ FRONTIER_MONS_SCHOOL_KID_1
};
const u16 gBattleFrontierTrainerMons_Payton[] =
{
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- -1
+ FRONTIER_MONS_CAMPER_PICNICKER_1
};
const u16 gBattleFrontierTrainerMons_Pamela[] =
{
- 0,
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 10,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- -1
+ FRONTIER_MONS_YOUNGSTER_LASS_1
};
const u16 gBattleFrontierTrainerMons_Eliza[] =
{
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- -1
+ FRONTIER_MONS_SCHOOL_KID_1
};
const u16 gBattleFrontierTrainerMons_Marisa[] =
{
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- -1
+ FRONTIER_MONS_CAMPER_PICNICKER_1
};
const u16 gBattleFrontierTrainerMons_Lewis[] =
{
- 2,
- 3,
- 4,
- 8,
- 9,
- 21,
- 27,
- 39,
- 40,
- 41,
- 42,
- 52,
- 57,
- 58,
- 80,
- 112,
- 132,
- 141,
- 153,
- 154,
- 157,
- 158,
- 159,
- 160,
- 161,
- -1
+ FRONTIER_MONS_BUG_CATCHER_1_EXTRA(METAPOD, KAKUNA)
};
const u16 gBattleFrontierTrainerMons_Yoshi[] =
{
- 2,
- 3,
- 4,
- 11,
- 12,
- 21,
- 27,
- 39,
- 40,
- 41,
- 42,
- 52,
- 57,
- 58,
- 80,
- 112,
- 132,
- 141,
- 153,
- 154,
- 157,
- 158,
- 159,
- 160,
- 161,
- -1
+ FRONTIER_MONS_BUG_CATCHER_1_EXTRA(SILCOON, CASCOON)
};
const u16 gBattleFrontierTrainerMons_Destin[] =
{
- 2,
- 3,
- 4,
- 21,
- 27,
- 39,
- 40,
- 41,
- 42,
- 52,
- 57,
- 58,
- 80,
- 112,
- 132,
- 141,
- 153,
- 154,
- 157,
- 158,
- 159,
- 160,
- 161,
- -1
+ FRONTIER_MONS_BUG_CATCHER_1
};
const u16 gBattleFrontierTrainerMons_Keon[] =
{
- 5,
- 21,
- 25,
- 27,
- 35,
- 39,
- 40,
- 41,
- 42,
- 46,
- 47,
- 48,
- 50,
- 52,
- 53,
- 57,
- 58,
- 62,
- 63,
- 69,
- 75,
- 78,
- 79,
- 80,
- 84,
- 90,
- 92,
- 99,
- 100,
- 102,
- 106,
- 110,
- 112,
- 114,
- 121,
- 124,
- 127,
- 132,
- 141,
- 146,
- 147,
- 153,
- 154,
- 157,
- 158,
- 159,
- 160,
- 161,
- -1
+ FRONTIER_MONS_NINJA_BOY_1
};
const u16 gBattleFrontierTrainerMons_Stuart[] =
{
- 5,
- 21,
- 25,
- 27,
- 35,
- 39,
- 40,
- 41,
- 42,
- 46,
- 47,
- 48,
- 50,
- 52,
- 53,
- 57,
- 58,
- 62,
- 63,
- 69,
- 75,
- 78,
- 79,
- 80,
- 84,
- 90,
- 92,
- 99,
- 100,
- 102,
- 106,
- 110,
- 112,
- 114,
- 121,
- 124,
- 127,
- 132,
- 141,
- 146,
- 147,
- 153,
- 154,
- 157,
- 158,
- 159,
- 160,
- 161,
- -1
+ FRONTIER_MONS_NINJA_BOY_1
};
const u16 gBattleFrontierTrainerMons_Nestor[] =
{
- 5,
- 21,
- 25,
- 27,
- 35,
- 39,
- 40,
- 41,
- 42,
- 46,
- 47,
- 48,
- 50,
- 52,
- 53,
- 57,
- 58,
- 62,
- 63,
- 69,
- 75,
- 78,
- 79,
- 80,
- 84,
- 90,
- 92,
- 99,
- 100,
- 102,
- 106,
- 110,
- 112,
- 114,
- 121,
- 124,
- 127,
- 132,
- 141,
- 146,
- 147,
- 153,
- 154,
- 157,
- 158,
- 159,
- 160,
- 161,
- -1
+ FRONTIER_MONS_NINJA_BOY_1
};
const u16 gBattleFrontierTrainerMons_Derrick[] =
{
- 21,
- 27,
- 29,
- 39,
- 40,
- 41,
- 42,
- 52,
- 57,
- 58,
- 61,
- 62,
- 63,
- 69,
- 80,
- 92,
- 102,
- 112,
- 125,
- 129,
- 132,
- 140,
- 141,
- 153,
- 154,
- 157,
- 158,
- 159,
- 160,
- 161,
- -1
+ FRONTIER_MONS_BUG_MANIAC_1
};
const u16 gBattleFrontierTrainerMons_Bryson[] =
{
- 21,
- 27,
- 29,
- 39,
- 40,
- 41,
- 42,
- 52,
- 57,
- 58,
- 61,
- 62,
- 63,
- 69,
- 80,
- 92,
- 102,
- 112,
- 125,
- 129,
- 132,
- 140,
- 141,
- 153,
- 154,
- 157,
- 158,
- 159,
- 160,
- 161,
- -1
+ FRONTIER_MONS_BUG_MANIAC_1
};
const u16 gBattleFrontierTrainerMons_Clayton[] =
{
- 21,
- 27,
- 29,
- 39,
- 40,
- 41,
- 42,
- 52,
- 57,
- 58,
- 61,
- 62,
- 63,
- 69,
- 80,
- 92,
- 102,
- 112,
- 125,
- 129,
- 132,
- 140,
- 141,
- 153,
- 154,
- 157,
- 158,
- 159,
- 160,
- 161,
- -1
+ FRONTIER_MONS_BUG_MANIAC_1
};
const u16 gBattleFrontierTrainerMons_Trenton[] =
{
- 6,
- 7,
- 55,
- 60,
- 68,
- 73,
- 83,
- 86,
- 87,
- 105,
- 111,
- 116,
- 123,
- 124,
- 128,
- 134,
- 138,
- 139,
- 151,
- -1
+ FRONTIER_MONS_FISHERMAN_1
};
const u16 gBattleFrontierTrainerMons_Jenson[] =
{
- 6,
- 7,
- 55,
- 60,
- 68,
- 73,
- 83,
- 86,
- 87,
- 105,
- 111,
- 116,
- 123,
- 124,
- 128,
- 134,
- 138,
- 139,
- 151,
- -1
+ FRONTIER_MONS_FISHERMAN_1
};
const u16 gBattleFrontierTrainerMons_Wesley[] =
{
- 6,
- 7,
- 55,
- 60,
- 68,
- 73,
- 83,
- 86,
- 87,
- 105,
- 111,
- 116,
- 123,
- 124,
- 128,
- 134,
- 138,
- 139,
- 151,
- -1
+ FRONTIER_MONS_FISHERMAN_1
};
const u16 gBattleFrontierTrainerMons_Anton[] =
{
- 31,
- 39,
- 58,
- 67,
- 70,
- 74,
- 75,
- 78,
- 85,
- 104,
- 108,
- 120,
- 122,
- 133,
- 138,
- 139,
- 140,
- 141,
- 150,
- 151,
- 152,
- 156,
- -1
+ FRONTIER_MONS_RUIN_MANIAC_1
};
const u16 gBattleFrontierTrainerMons_Lawson[] =
{
- 31,
- 39,
- 58,
- 67,
- 70,
- 74,
- 75,
- 78,
- 85,
- 104,
- 108,
- 120,
- 122,
- 133,
- 138,
- 139,
- 140,
- 141,
- 150,
- 151,
- 152,
- 156,
- -1
+ FRONTIER_MONS_RUIN_MANIAC_1
};
const u16 gBattleFrontierTrainerMons_Sammy[] =
{
- 31,
- 39,
- 58,
- 67,
- 70,
- 74,
- 75,
- 78,
- 85,
- 104,
- 108,
- 120,
- 122,
- 133,
- 138,
- 139,
- 140,
- 141,
- 150,
- 151,
- 152,
- 156,
- -1
+ FRONTIER_MONS_RUIN_MANIAC_1
};
+// The below 3 are the early Collector class trainers, which use groups from other general classes
const u16 gBattleFrontierTrainerMons_Arnie[] =
{
- 0,
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 10,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- -1
+ FRONTIER_MONS_YOUNGSTER_LASS_1
};
const u16 gBattleFrontierTrainerMons_Adrian[] =
{
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- -1
+ FRONTIER_MONS_SCHOOL_KID_1
};
const u16 gBattleFrontierTrainerMons_Tristan[] =
{
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- -1
+ FRONTIER_MONS_CAMPER_PICNICKER_1
};
const u16 gBattleFrontierTrainerMons_Juliana[] =
{
- 0,
- 14,
- 19,
- 28,
- 42,
- 58,
- 59,
- 67,
- 68,
- 85,
- 118,
- 120,
- 123,
- 155,
- 156,
- 193,
- -1
+ FRONTIER_MONS_PARASOL_LADY_1
};
const u16 gBattleFrontierTrainerMons_Rylee[] =
{
- 0,
- 14,
- 19,
- 28,
- 42,
- 58,
- 59,
- 67,
- 68,
- 85,
- 118,
- 120,
- 123,
- 155,
- 156,
- 193,
- -1
+ FRONTIER_MONS_PARASOL_LADY_1
};
const u16 gBattleFrontierTrainerMons_Chelsea[] =
{
- 0,
- 14,
- 19,
- 28,
- 42,
- 58,
- 59,
- 67,
- 68,
- 85,
- 118,
- 120,
- 123,
- 155,
- 156,
- 193,
- -1
+ FRONTIER_MONS_PARASOL_LADY_1
};
+// The below 3 are the early Beauty class trainers, which use groups from other general classes
const u16 gBattleFrontierTrainerMons_Danela[] =
{
- 0,
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 10,
- 13,
- 14,
- 15,
- 16,
- 17,
- 18,
- 19,
- 20,
- 21,
- 22,
- 23,
- 24,
- 25,
- 26,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 37,
- 38,
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
- 45,
- 46,
- 47,
- 48,
- 49,
- 50,
- 51,
- 52,
- 53,
- 54,
- 55,
- 56,
- 57,
- 58,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 65,
- -1
+ FRONTIER_MONS_YOUNGSTER_LASS_1
};
const u16 gBattleFrontierTrainerMons_Lizbeth[] =
{
- 66,
- 67,
- 68,
- 69,
- 70,
- 71,
- 72,
- 73,
- 74,
- 75,
- 76,
- 77,
- 78,
- 79,
- 80,
- 81,
- 82,
- 83,
- 84,
- 85,
- 86,
- 87,
- 88,
- 89,
- 90,
- 91,
- 92,
- 93,
- 94,
- 95,
- 96,
- 97,
- 98,
- 99,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- -1
+ FRONTIER_MONS_SCHOOL_KID_1
};
const u16 gBattleFrontierTrainerMons_Amelia[] =
{
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
- 120,
- 121,
- 122,
- 123,
- 124,
- 125,
- 127,
- 128,
- 129,
- 130,
- 131,
- 132,
- 133,
- 134,
- 135,
- 136,
- 137,
- 138,
- 139,
- 140,
- 141,
- 142,
- 143,
- 144,
- 145,
- 146,
- 147,
- 148,
- 149,
- 150,
- 151,
- 152,
- 153,
- 154,
- 155,
- 156,
- 157,
- 158,
- 159,
- 160,
- 161,
- -1
+ FRONTIER_MONS_CAMPER_PICNICKER_1
};
const u16 gBattleFrontierTrainerMons_Jillian[] =
{
- 0,
- 5,
- 18,
- 19,
- 29,
- 35,
- 48,
- 50,
- 52,
- 61,
- 69,
- 75,
- 78,
- 84,
- 90,
- 94,
- 99,
- 100,
- 101,
- 102,
- 106,
- 112,
- 114,
- 121,
- 125,
- 129,
- 130,
- 131,
- 140,
- -1
+ FRONTIER_MONS_AROMA_LADY_1
};
const u16 gBattleFrontierTrainerMons_Abbie[] =
{
- 0,
- 5,
- 18,
- 19,
- 29,
- 35,
- 48,
- 50,
- 52,
- 61,
- 69,
- 75,
- 78,
- 84,
- 90,
- 94,
- 99,
- 100,
- 101,
- 102,
- 106,
- 112,
- 114,
- 121,
- 125,
- 129,
- 130,
- 131,
- 140,
- -1
+ FRONTIER_MONS_AROMA_LADY_1
};
const u16 gBattleFrontierTrainerMons_Briana[] =
{
- 0,
- 5,
- 18,
- 19,
- 29,
- 35,
- 48,
- 50,
- 52,
- 61,
- 69,
- 75,
- 78,
- 84,
- 90,
- 94,
- 99,
- 100,
- 101,
- 102,
- 106,
- 112,
- 114,
- 121,
- 125,
- 129,
- 130,
- 131,
- 140,
- -1
+ FRONTIER_MONS_AROMA_LADY_1
};
const u16 gBattleFrontierTrainerMons_Antonio[] =
{
- 5,
- 10,
- 20,
- 35,
- 48,
- 49,
- 50,
- 62,
- 63,
- 64,
- 66,
- 71,
- 75,
- 77,
- 78,
- 84,
- 90,
- 92,
- 99,
- 106,
- 108,
- 112,
- 114,
- 115,
- 116,
- 119,
- 121,
- 122,
- 143,
- 148,
- 152,
- -1
+ FRONTIER_MONS_GUITARIST_1
};
const u16 gBattleFrontierTrainerMons_Jaden[] =
{
- 5,
- 10,
- 20,
- 35,
- 48,
- 49,
- 50,
- 62,
- 63,
- 64,
- 66,
- 71,
- 75,
- 77,
- 78,
- 84,
- 90,
- 92,
- 99,
- 106,
- 108,
- 112,
- 114,
- 115,
- 116,
- 119,
- 121,
- 122,
- 143,
- 148,
- 152,
- -1
+ FRONTIER_MONS_GUITARIST_1
};
const u16 gBattleFrontierTrainerMons_Dakota[] =
{
- 5,
- 10,
- 20,
- 35,
- 48,
- 49,
- 50,
- 62,
- 63,
- 64,
- 66,
- 71,
- 75,
- 77,
- 78,
- 84,
- 90,
- 92,
- 99,
- 106,
- 108,
- 112,
- 114,
- 115,
- 116,
- 119,
- 121,
- 122,
- 143,
- 148,
- 152,
- -1
+ FRONTIER_MONS_GUITARIST_1
};
const u16 gBattleFrontierTrainerMons_Brayden[] =
{
- 1,
- 13,
- 16,
- 17,
- 23,
- 24,
- 25,
- 26,
- 32,
- 33,
- 34,
- 36,
- 37,
- 38,
- 43,
- 44,
- 45,
- 51,
- 54,
- 56,
- 72,
- 91,
- 93,
- 95,
- 106,
- 107,
- 113,
- 117,
- 118,
- 135,
- 137,
- 142,
- 144,
- 145,
- -1
+ FRONTIER_MONS_BIRD_KEEPER_1
};
const u16 gBattleFrontierTrainerMons_Corson[] =
{
- 1,
- 13,
- 16,
- 17,
- 23,
- 24,
- 25,
- 26,
- 32,
- 33,
- 34,
- 36,
- 37,
- 38,
- 43,
- 44,
- 45,
- 51,
- 54,
- 56,
- 72,
- 91,
- 93,
- 95,
- 106,
- 107,
- 113,
- 117,
- 118,
- 135,
- 137,
- 142,
- 144,
- 145,
- -1
+ FRONTIER_MONS_BIRD_KEEPER_1
};
const u16 gBattleFrontierTrainerMons_Trevin[] =
{
- 1,
- 13,
- 16,
- 17,
- 23,
- 24,
- 25,
- 26,
- 32,
- 33,
- 34,
- 36,
- 37,
- 38,
- 43,
- 44,
- 45,
- 51,
- 54,
- 56,
- 72,
- 91,
- 93,
- 95,
- 106,
- 107,
- 113,
- 117,
- 118,
- 135,
- 137,
- 142,
- 144,
- 145,
- -1
+ FRONTIER_MONS_BIRD_KEEPER_1
};
const u16 gBattleFrontierTrainerMons_Patrick[] =
{
- 15,
- 22,
- 50,
- 67,
- 70,
- 71,
- 74,
- 77,
- 81,
- 82,
- 83,
- 86,
- 87,
- 96,
- 97,
- 98,
- 99,
- 103,
- 104,
- 109,
- 111,
- 120,
- 124,
- 128,
- 131,
- 133,
- 134,
- 138,
- 139,
- 151,
- 155,
- 156,
- -1
+ FRONTIER_MONS_SAILOR_1
};
const u16 gBattleFrontierTrainerMons_Kaden[] =
{
- 15,
- 22,
- 50,
- 67,
- 70,
- 71,
- 74,
- 77,
- 81,
- 82,
- 83,
- 86,
- 87,
- 96,
- 97,
- 98,
- 99,
- 103,
- 104,
- 109,
- 111,
- 120,
- 124,
- 128,
- 131,
- 133,
- 134,
- 138,
- 139,
- 151,
- 155,
- 156,
- -1
+ FRONTIER_MONS_SAILOR_1
};
const u16 gBattleFrontierTrainerMons_Maxwell[] =
{
- 15,
- 22,
- 50,
- 67,
- 70,
- 71,
- 74,
- 77,
- 81,
- 82,
- 83,
- 86,
- 87,
- 96,
- 97,
- 98,
- 99,
- 103,
- 104,
- 109,
- 111,
- 120,
- 124,
- 128,
- 131,
- 133,
- 134,
- 138,
- 139,
- 151,
- 155,
- 156,
- -1
+ FRONTIER_MONS_SAILOR_1
};
const u16 gBattleFrontierTrainerMons_Daryl[] =
{
- 15,
- 22,
- 31,
- 39,
- 50,
- 51,
- 58,
- 67,
- 70,
- 74,
- 75,
- 81,
- 82,
- 85,
- 104,
- 120,
- 122,
- 132,
- 133,
- 138,
- 139,
- 140,
- 141,
- 142,
- 144,
- 150,
- 156,
- -1
+ FRONTIER_MONS_HIKER_1
};
const u16 gBattleFrontierTrainerMons_Kenneth[] =
{
- 15,
- 22,
- 31,
- 39,
- 50,
- 51,
- 58,
- 67,
- 70,
- 74,
- 75,
- 81,
- 82,
- 85,
- 104,
- 120,
- 122,
- 132,
- 133,
- 138,
- 139,
- 140,
- 141,
- 142,
- 144,
- 150,
- 156,
- -1
+ FRONTIER_MONS_HIKER_1
};
const u16 gBattleFrontierTrainerMons_Rich[] =
{
- 15,
- 22,
- 31,
- 39,
- 50,
- 51,
- 58,
- 67,
- 70,
- 74,
- 75,
- 81,
- 82,
- 85,
- 104,
- 120,
- 122,
- 132,
- 133,
- 138,
- 139,
- 140,
- 141,
- 142,
- 144,
- 150,
- 156,
- -1
+ FRONTIER_MONS_HIKER_1
};
const u16 gBattleFrontierTrainerMons_Caden[] =
{
- 30,
- 62,
- 63,
- 65,
- 70,
- 74,
- 77,
- 78,
- 85,
- 88,
- 89,
- 95,
- 108,
- 119,
- 122,
- 133,
- 136,
- 149,
- 150,
- 152,
- 156,
- -1
+ FRONTIER_MONS_KINDLER_1
};
const u16 gBattleFrontierTrainerMons_Marlon[] =
{
- 30,
- 62,
- 63,
- 65,
- 70,
- 74,
- 77,
- 78,
- 85,
- 88,
- 89,
- 95,
- 108,
- 119,
- 122,
- 133,
- 136,
- 149,
- 150,
- 152,
- 156,
- -1
+ FRONTIER_MONS_KINDLER_1
};
const u16 gBattleFrontierTrainerMons_Nash[] =
{
- 30,
- 62,
- 63,
- 65,
- 70,
- 74,
- 77,
- 78,
- 85,
- 88,
- 89,
- 95,
- 108,
- 119,
- 122,
- 133,
- 136,
- 149,
- 150,
- 152,
- 156,
- -1
+ FRONTIER_MONS_KINDLER_1
};
const u16 gBattleFrontierTrainerMons_Robby[] =
{
- 1,
- 13,
- 15,
- 16,
- 17,
- 22,
- 23,
- 24,
- 26,
- 32,
- 33,
- 34,
- 36,
- 37,
- 38,
- 43,
- 44,
- 50,
- 51,
- 54,
- 56,
- 67,
- 70,
- 72,
- 74,
- 75,
- 81,
- 82,
- 85,
- 91,
- 93,
- 104,
- 107,
- 113,
- 117,
- 120,
- 132,
- 133,
- 135,
- 137,
- 142,
- 144,
- 145,
- 156,
- -1
+ FRONTIER_MONS_RUNNING_TRIATHLETE_1
};
const u16 gBattleFrontierTrainerMons_Reece[] =
{
- 1,
- 13,
- 15,
- 16,
- 17,
- 22,
- 23,
- 24,
- 26,
- 32,
- 33,
- 34,
- 36,
- 37,
- 38,
- 43,
- 44,
- 50,
- 51,
- 54,
- 56,
- 67,
- 70,
- 72,
- 74,
- 75,
- 81,
- 82,
- 85,
- 91,
- 93,
- 104,
- 107,
- 113,
- 117,
- 120,
- 132,
- 133,
- 135,
- 137,
- 142,
- 144,
- 145,
- 156,
- -1
+ FRONTIER_MONS_RUNNING_TRIATHLETE_1
};
const u16 gBattleFrontierTrainerMons_Kathryn[] =
{
- 1,
- 13,
- 15,
- 16,
- 17,
- 22,
- 23,
- 24,
- 26,
- 32,
- 33,
- 34,
- 36,
- 37,
- 38,
- 43,
- 44,
- 50,
- 51,
- 54,
- 56,
- 67,
- 70,
- 72,
- 74,
- 75,
- 81,
- 82,
- 85,
- 91,
- 93,
- 104,
- 107,
- 113,
- 117,
- 120,
- 132,
- 133,
- 135,
- 137,
- 142,
- 144,
- 145,
- 156,
- -1
+ FRONTIER_MONS_RUNNING_TRIATHLETE_1
};
const u16 gBattleFrontierTrainerMons_Ellen[] =
{
- 1,
- 13,
- 15,
- 16,
- 17,
- 22,
- 23,
- 24,
- 26,
- 32,
- 33,
- 34,
- 36,
- 37,
- 38,
- 43,
- 44,
- 50,
- 51,
- 54,
- 56,
- 67,
- 70,
- 72,
- 74,
- 75,
- 81,
- 82,
- 85,
- 91,
- 93,
- 104,
- 107,
- 113,
- 117,
- 120,
- 132,
- 133,
- 135,
- 137,
- 142,
- 144,
- 145,
- 156,
- -1
+ FRONTIER_MONS_RUNNING_TRIATHLETE_1
};
const u16 gBattleFrontierTrainerMons_Ramon[] =
{
- 15,
- 22,
- 50,
- 71,
- 72,
- 76,
- 77,
- 81,
- 82,
- 83,
- 84,
- 87,
- 96,
- 97,
- 98,
- 99,
- 103,
- 107,
- 109,
- 111,
- 113,
- 117,
- 118,
- 131,
- 134,
- 138,
- 139,
- 142,
- 144,
- 145,
- 151,
- 155,
- -1
+ FRONTIER_MONS_SWIMMING_TRIATHLETE_1
};
const u16 gBattleFrontierTrainerMons_Arthur[] =
{
- 15,
- 22,
- 50,
- 71,
- 72,
- 76,
- 77,
- 81,
- 82,
- 83,
- 84,
- 87,
- 96,
- 97,
- 98,
- 99,
- 103,
- 107,
- 109,
- 111,
- 113,
- 117,
- 118,
- 131,
- 134,
- 138,
- 139,
- 142,
- 144,
- 145,
- 151,
- 155,
- -1
+ FRONTIER_MONS_SWIMMING_TRIATHLETE_1
};
const u16 gBattleFrontierTrainerMons_Alondra[] =
{
- 15,
- 22,
- 50,
- 71,
- 72,
- 76,
- 77,
- 81,
- 82,
- 83,
- 84,
- 87,
- 96,
- 97,
- 98,
- 99,
- 103,
- 107,
- 109,
- 111,
- 113,
- 117,
- 118,
- 131,
- 134,
- 138,
- 139,
- 142,
- 144,
- 145,
- 151,
- 155,
- -1
+ FRONTIER_MONS_SWIMMING_TRIATHLETE_1
};
const u16 gBattleFrontierTrainerMons_Adriana[] =
{
- 15,
- 22,
- 50,
- 71,
- 72,
- 76,
- 77,
- 81,
- 82,
- 83,
- 84,
- 87,
- 96,
- 97,
- 98,
- 99,
- 103,
- 107,
- 109,
- 111,
- 113,
- 117,
- 118,
- 131,
- 134,
- 138,
- 139,
- 142,
- 144,
- 145,
- 151,
- 155,
- -1
+ FRONTIER_MONS_SWIMMING_TRIATHLETE_1
};
const u16 gBattleFrontierTrainerMons_Malik[] =
{
- 10,
- 15,
- 22,
- 49,
- 50,
- 64,
- 66,
- 71,
- 72,
- 77,
- 78,
- 81,
- 82,
- 91,
- 93,
- 107,
- 108,
- 113,
- 115,
- 117,
- 122,
- 135,
- 137,
- 142,
- 143,
- 144,
- 145,
- 148,
- 152,
- -1
+ FRONTIER_MONS_CYCLING_TRIATHLETE_1
};
const u16 gBattleFrontierTrainerMons_Jill[] =
{
- 10,
- 15,
- 22,
- 49,
- 50,
- 64,
- 66,
- 71,
- 72,
- 77,
- 78,
- 81,
- 82,
- 91,
- 93,
- 107,
- 108,
- 113,
- 115,
- 117,
- 122,
- 135,
- 137,
- 142,
- 143,
- 144,
- 145,
- 148,
- 152,
- -1
+ FRONTIER_MONS_CYCLING_TRIATHLETE_1
};
const u16 gBattleFrontierTrainerMons_Erik[] =
{
- 162,
- 164,
- 168,
- 178,
- 183,
- 184,
- 189,
- 197,
- 199,
- 200,
- 203,
- 204,
- 207,
- 210,
- 213,
- 214,
- 218,
- 220,
- 221,
- 224,
- 227,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 238,
- 240,
- 243,
- 245,
- 246,
- 250,
- 263,
- -1
+ FRONTIER_MONS_RUNNING_TRIATHLETE_2
};
const u16 gBattleFrontierTrainerMons_Yazmin[] =
{
- 162,
- 164,
- 168,
- 178,
- 183,
- 184,
- 189,
- 197,
- 199,
- 200,
- 203,
- 204,
- 207,
- 210,
- 213,
- 214,
- 218,
- 220,
- 221,
- 224,
- 227,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- 238,
- 240,
- 243,
- 245,
- 246,
- 250,
- 263,
- -1
+ FRONTIER_MONS_RUNNING_TRIATHLETE_2
};
const u16 gBattleFrontierTrainerMons_Jamal[] =
{
- 170,
- 176,
- 178,
- 182,
- 189,
- 190,
- 192,
- 196,
- 211,
- 212,
- 213,
- 219,
- 228,
- 230,
- 232,
- 233,
- 234,
- 236,
- 242,
- 245,
- 249,
- 253,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 265,
- 266,
- -1
+ FRONTIER_MONS_SWIMMING_TRIATHLETE_2
};
const u16 gBattleFrontierTrainerMons_Leslie[] =
{
- 170,
- 176,
- 178,
- 182,
- 189,
- 190,
- 192,
- 196,
- 211,
- 212,
- 213,
- 219,
- 228,
- 230,
- 232,
- 233,
- 234,
- 236,
- 242,
- 245,
- 249,
- 253,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 265,
- 266,
- -1
+ FRONTIER_MONS_SWIMMING_TRIATHLETE_2
};
const u16 gBattleFrontierTrainerMons_Dave[] =
{
- 162,
- 164,
- 168,
- 178,
- 183,
- 186,
- 187,
- 189,
- 197,
- 199,
- 200,
- 203,
- 204,
- 206,
- 207,
- 214,
- 215,
- 218,
- 220,
- 221,
- 224,
- 227,
- 232,
- 233,
- 234,
- 235,
- 236,
- 240,
- 244,
- 246,
- 250,
- -1
+ FRONTIER_MONS_CYCLING_TRIATHLETE_2
};
const u16 gBattleFrontierTrainerMons_Carlo[] =
{
- 162,
- 164,
- 168,
- 178,
- 183,
- 186,
- 187,
- 189,
- 197,
- 199,
- 200,
- 203,
- 204,
- 206,
- 207,
- 214,
- 215,
- 218,
- 220,
- 221,
- 224,
- 227,
- 232,
- 233,
- 234,
- 235,
- 236,
- 240,
- 244,
- 246,
- 250,
- -1
+ FRONTIER_MONS_CYCLING_TRIATHLETE_2
};
const u16 gBattleFrontierTrainerMons_Emilia[] =
{
- 162,
- 164,
- 168,
- 178,
- 183,
- 186,
- 187,
- 189,
- 197,
- 199,
- 200,
- 203,
- 204,
- 206,
- 207,
- 214,
- 215,
- 218,
- 220,
- 221,
- 224,
- 227,
- 232,
- 233,
- 234,
- 235,
- 236,
- 240,
- 244,
- 246,
- 250,
- -1
+ FRONTIER_MONS_CYCLING_TRIATHLETE_2
};
const u16 gBattleFrontierTrainerMons_Dalia[] =
{
- 162,
- 164,
- 168,
- 178,
- 183,
- 186,
- 187,
- 189,
- 197,
- 199,
- 200,
- 203,
- 204,
- 206,
- 207,
- 214,
- 215,
- 218,
- 220,
- 221,
- 224,
- 227,
- 232,
- 233,
- 234,
- 235,
- 236,
- 240,
- 244,
- 246,
- 250,
- -1
+ FRONTIER_MONS_CYCLING_TRIATHLETE_2
};
const u16 gBattleFrontierTrainerMons_Hitomi[] =
{
- 164,
- 166,
- 175,
- 178,
- 181,
- 189,
- 191,
- 193,
- 194,
- 195,
- 197,
- 199,
- 200,
- 202,
- 203,
- 205,
- 206,
- 207,
- 210,
- 215,
- 218,
- 220,
- 221,
- 222,
- 223,
- 225,
- 227,
- 230,
- 232,
- 233,
- 234,
- 235,
- 236,
- 240,
- 241,
- 246,
- 247,
- 252,
- 254,
- 262,
- -1
+ FRONTIER_MONS_BLACK_BELT_BATTLE_GIRL_1
};
const u16 gBattleFrontierTrainerMons_Ricardo[] =
{
- 164,
- 166,
- 175,
- 178,
- 181,
- 189,
- 191,
- 193,
- 194,
- 195,
- 197,
- 199,
- 200,
- 202,
- 203,
- 205,
- 206,
- 207,
- 210,
- 215,
- 218,
- 220,
- 221,
- 222,
- 223,
- 225,
- 227,
- 230,
- 232,
- 233,
- 234,
- 235,
- 236,
- 240,
- 241,
- 246,
- 247,
- 252,
- 254,
- 262,
- -1
+ FRONTIER_MONS_BLACK_BELT_BATTLE_GIRL_1
};
const u16 gBattleFrontierTrainerMons_Shizuka[] =
{
- 164,
- 166,
- 175,
- 178,
- 181,
- 189,
- 191,
- 193,
- 194,
- 195,
- 197,
- 199,
- 200,
- 202,
- 203,
- 205,
- 206,
- 207,
- 210,
- 215,
- 218,
- 220,
- 221,
- 222,
- 223,
- 225,
- 227,
- 230,
- 232,
- 233,
- 234,
- 235,
- 236,
- 240,
- 241,
- 246,
- 247,
- 252,
- 254,
- 262,
- -1
+ FRONTIER_MONS_BLACK_BELT_BATTLE_GIRL_1
};
const u16 gBattleFrontierTrainerMons_Joana[] =
{
- 164,
- 166,
- 175,
- 178,
- 181,
- 189,
- 191,
- 193,
- 194,
- 195,
- 197,
- 199,
- 200,
- 202,
- 203,
- 205,
- 206,
- 207,
- 210,
- 215,
- 218,
- 220,
- 221,
- 222,
- 223,
- 225,
- 227,
- 230,
- 232,
- 233,
- 234,
- 235,
- 236,
- 240,
- 241,
- 246,
- 247,
- 252,
- 254,
- 262,
- -1
+ FRONTIER_MONS_BLACK_BELT_BATTLE_GIRL_1
};
const u16 gBattleFrontierTrainerMons_Kelly[] =
{
- 164,
- 166,
- 175,
- 178,
- 181,
- 189,
- 191,
- 193,
- 194,
- 195,
- 197,
- 199,
- 200,
- 202,
- 203,
- 205,
- 206,
- 207,
- 210,
- 215,
- 218,
- 220,
- 221,
- 222,
- 223,
- 225,
- 227,
- 230,
- 232,
- 233,
- 234,
- 235,
- 236,
- 240,
- 241,
- 246,
- 247,
- 252,
- 254,
- 262,
- -1
+ FRONTIER_MONS_BLACK_BELT_BATTLE_GIRL_1
};
const u16 gBattleFrontierTrainerMons_Rayna[] =
{
- 164,
- 166,
- 175,
- 178,
- 181,
- 189,
- 191,
- 193,
- 194,
- 195,
- 197,
- 199,
- 200,
- 202,
- 203,
- 205,
- 206,
- 207,
- 210,
- 215,
- 218,
- 220,
- 221,
- 222,
- 223,
- 225,
- 227,
- 230,
- 232,
- 233,
- 234,
- 235,
- 236,
- 240,
- 241,
- 246,
- 247,
- 252,
- 254,
- 262,
- -1
+ FRONTIER_MONS_BLACK_BELT_BATTLE_GIRL_1
};
const u16 gBattleFrontierTrainerMons_Evan[] =
{
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- -1
+ FRONTIER_MONS_EXPERT_1A
};
const u16 gBattleFrontierTrainerMons_Jordan[] =
{
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- -1
+ FRONTIER_MONS_EXPERT_1B
};
const u16 gBattleFrontierTrainerMons_Joel[] =
{
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- -1
+ FRONTIER_MONS_EXPERT_1C
};
const u16 gBattleFrontierTrainerMons_Kristen[] =
{
- 162,
- 163,
- 164,
- 165,
- 166,
- 167,
- 168,
- 169,
- 170,
- 171,
- 172,
- 173,
- 174,
- 175,
- 176,
- 177,
- 178,
- 179,
- 180,
- 181,
- 182,
- 183,
- 184,
- 185,
- 186,
- 187,
- 188,
- 189,
- 190,
- 191,
- 192,
- 193,
- 194,
- 195,
- 196,
- 197,
- 198,
- 199,
- -1
+ FRONTIER_MONS_EXPERT_1A
};
const u16 gBattleFrontierTrainerMons_Selphy[] =
{
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 209,
- 210,
- 211,
- 212,
- 213,
- 214,
- 215,
- 216,
- 217,
- 218,
- 219,
- 220,
- 221,
- 222,
- 223,
- 224,
- 225,
- 226,
- 227,
- 228,
- 229,
- 230,
- 231,
- 232,
- 233,
- 234,
- 235,
- 236,
- -1
+ FRONTIER_MONS_EXPERT_1B
};
const u16 gBattleFrontierTrainerMons_Chloe[] =
{
- 237,
- 238,
- 239,
- 240,
- 241,
- 242,
- 243,
- 244,
- 245,
- 246,
- 247,
- 248,
- 249,
- 250,
- 251,
- 252,
- 253,
- 254,
- 255,
- 256,
- 257,
- 258,
- 259,
- 260,
- 261,
- 262,
- 263,
- 264,
- 265,
- 266,
- -1
+ FRONTIER_MONS_EXPERT_1C
};
const u16 gBattleFrontierTrainerMons_Norton[] =
{
- 267,
- 268,
- 273,
- 274,
- 276,
- 284,
- 289,
- 290,
- 291,
- 292,
- 307,
- 308,
- 311,
- 312,
- 314,
- 317,
- 325,
- 327,
- 328,
- 329,
- 331,
- 332,
- 340,
- 342,
- 347,
- 349,
- 351,
- 352,
- 354,
- 356,
- 359,
- 363,
- 370,
- -1
+ FRONTIER_MONS_PSYCHIC_1
};
const u16 gBattleFrontierTrainerMons_Lukas[] =
{
- 267,
- 268,
- 273,
- 274,
- 276,
- 284,
- 289,
- 290,
- 291,
- 292,
- 307,
- 308,
- 311,
- 312,
- 314,
- 317,
- 325,
- 327,
- 328,
- 329,
- 331,
- 332,
- 340,
- 342,
- 347,
- 349,
- 351,
- 352,
- 354,
- 356,
- 359,
- 363,
- 370,
- -1
+ FRONTIER_MONS_PSYCHIC_1
};
const u16 gBattleFrontierTrainerMons_Zach[] =
{
- 267,
- 268,
- 273,
- 274,
- 276,
- 284,
- 289,
- 290,
- 291,
- 292,
- 307,
- 308,
- 311,
- 312,
- 314,
- 317,
- 325,
- 327,
- 328,
- 329,
- 331,
- 332,
- 340,
- 342,
- 347,
- 349,
- 351,
- 352,
- 354,
- 356,
- 359,
- 363,
- 370,
- -1
+ FRONTIER_MONS_PSYCHIC_1
};
const u16 gBattleFrontierTrainerMons_Kaitlyn[] =
{
- 267,
- 268,
- 273,
- 274,
- 276,
- 284,
- 289,
- 290,
- 291,
- 292,
- 307,
- 308,
- 311,
- 312,
- 314,
- 317,
- 325,
- 327,
- 328,
- 329,
- 331,
- 332,
- 340,
- 342,
- 347,
- 349,
- 351,
- 352,
- 354,
- 356,
- 359,
- 363,
- 370,
- -1
+ FRONTIER_MONS_PSYCHIC_1
};
const u16 gBattleFrontierTrainerMons_Breanna[] =
{
- 267,
- 268,
- 273,
- 274,
- 276,
- 284,
- 289,
- 290,
- 291,
- 292,
- 307,
- 308,
- 311,
- 312,
- 314,
- 317,
- 325,
- 327,
- 328,
- 329,
- 331,
- 332,
- 340,
- 342,
- 347,
- 349,
- 351,
- 352,
- 354,
- 356,
- 359,
- 363,
- 370,
- -1
+ FRONTIER_MONS_PSYCHIC_1
};
const u16 gBattleFrontierTrainerMons_Kendra[] =
{
- 267,
- 268,
- 273,
- 274,
- 276,
- 284,
- 289,
- 290,
- 291,
- 292,
- 307,
- 308,
- 311,
- 312,
- 314,
- 317,
- 325,
- 327,
- 328,
- 329,
- 331,
- 332,
- 340,
- 342,
- 347,
- 349,
- 351,
- 352,
- 354,
- 356,
- 359,
- 363,
- 370,
- -1
+ FRONTIER_MONS_PSYCHIC_1
};
const u16 gBattleFrontierTrainerMons_Molly[] =
{
- 268,
- 270,
- 272,
- 274,
- 282,
- 284,
- 289,
- 290,
- 303,
- 307,
- 311,
- 314,
- 317,
- 322,
- 327,
- 328,
- 331,
- 336,
- 340,
- 342,
- 344,
- 347,
- 352,
- 353,
- 354,
- 356,
- 359,
- -1
+ FRONTIER_MONS_HEX_MANIAC_1
};
const u16 gBattleFrontierTrainerMons_Jazmin[] =
{
- 268,
- 270,
- 272,
- 274,
- 282,
- 284,
- 289,
- 290,
- 303,
- 307,
- 311,
- 314,
- 317,
- 322,
- 327,
- 328,
- 331,
- 336,
- 340,
- 342,
- 344,
- 347,
- 352,
- 353,
- 354,
- 356,
- 359,
- -1
+ FRONTIER_MONS_HEX_MANIAC_1
};
const u16 gBattleFrontierTrainerMons_Kelsey[] =
{
- 268,
- 270,
- 272,
- 274,
- 282,
- 284,
- 289,
- 290,
- 303,
- 307,
- 311,
- 314,
- 317,
- 322,
- 327,
- 328,
- 331,
- 336,
- 340,
- 342,
- 344,
- 347,
- 352,
- 353,
- 354,
- 356,
- 359,
- -1
+ FRONTIER_MONS_HEX_MANIAC_1
};
const u16 gBattleFrontierTrainerMons_Jalen[] =
{
- 269,
- 271,
- 275,
- 279,
- 280,
- 281,
- 283,
- 285,
- 286,
- 287,
- 293,
- 294,
- 295,
- 300,
- 302,
- 307,
- 310,
- 311,
- 320,
- 322,
- 326,
- 330,
- 332,
- 335,
- 344,
- 345,
- 346,
- 348,
- 350,
- 353,
- 357,
- -1
+ FRONTIER_MONS_POKEMANIAC_1
};
const u16 gBattleFrontierTrainerMons_Griffen[] =
{
- 269,
- 271,
- 275,
- 279,
- 280,
- 281,
- 283,
- 285,
- 286,
- 287,
- 293,
- 294,
- 295,
- 300,
- 302,
- 307,
- 310,
- 311,
- 320,
- 322,
- 326,
- 330,
- 332,
- 335,
- 344,
- 345,
- 346,
- 348,
- 350,
- 353,
- 357,
- -1
+ FRONTIER_MONS_POKEMANIAC_1
};
const u16 gBattleFrontierTrainerMons_Xander[] =
{
- 269,
- 271,
- 275,
- 279,
- 280,
- 281,
- 283,
- 285,
- 286,
- 287,
- 293,
- 294,
- 295,
- 300,
- 302,
- 307,
- 310,
- 311,
- 320,
- 322,
- 326,
- 330,
- 332,
- 335,
- 344,
- 345,
- 346,
- 348,
- 350,
- 353,
- 357,
- -1
+ FRONTIER_MONS_POKEMANIAC_1
};
const u16 gBattleFrontierTrainerMons_Marvin[] =
{
- 267,
- 268,
- 269,
- 270,
- 271,
- 272,
- 273,
- 274,
- 275,
- 276,
- 277,
- 278,
- 279,
- 280,
- 281,
- 282,
- 283,
- 284,
- 285,
- 286,
- 287,
- 288,
- 289,
- 290,
- 291,
- 292,
- 293,
- 294,
- 295,
- 296,
- 297,
- 298,
- 299,
- 300,
- 301,
- 302,
- 303,
- 304,
- -1
+ FRONTIER_MONS_GENTLEMAN_1A
};
const u16 gBattleFrontierTrainerMons_Brennan[] =
{
- 305,
- 306,
- 307,
- 308,
- 309,
- 310,
- 311,
- 312,
- 313,
- 314,
- 315,
- 316,
- 317,
- 318,
- 319,
- 320,
- 321,
- 322,
- 323,
- 324,
- 325,
- 326,
- 327,
- 328,
- 329,
- 330,
- 331,
- 332,
- 333,
- 334,
- 335,
- 336,
- 337,
- 338,
- 339,
- 340,
- 341,
- -1
+ FRONTIER_MONS_GENTLEMAN_1B
};
const u16 gBattleFrontierTrainerMons_Baley[] =
{
- 159,
- 160,
- 161,
- 172,
- 173,
- 177,
- 198,
- 226,
- 238,
- 263,
- 264,
- 277,
- 278,
- 282,
- 303,
- 331,
- 343,
- 368,
- 369,
- -1
+ FRONTIER_MONS_BUG_MANIAC_2
};
const u16 gBattleFrontierTrainerMons_Zackary[] =
{
- 271,
- 283,
- 294,
- 295,
- 298,
- 299,
- 300,
- 311,
- 315,
- 320,
- 327,
- 328,
- 330,
- 335,
- 337,
- 338,
- 339,
- 341,
- 346,
- 364,
- 365,
- 366,
- -1
+ FRONTIER_MONS_RUIN_MANIAC_2
};
const u16 gBattleFrontierTrainerMons_Gabriel[] =
{
- 342,
- 343,
- 344,
- 345,
- 346,
- 347,
- 348,
- 349,
- 350,
- 351,
- 352,
- 353,
- 354,
- 355,
- 356,
- 357,
- 358,
- 359,
- 360,
- 361,
- 362,
- 363,
- 364,
- 365,
- 366,
- 367,
- 368,
- 369,
- 370,
- 371,
- -1
+ FRONTIER_MONS_COLLECTOR_1
};
const u16 gBattleFrontierTrainerMons_Emily[] =
{
- 272,
- 301,
- 309,
- 330,
- 348,
- 349,
- 350,
- 359,
- 360,
- 362,
- 363,
- 365,
- -1
+ FRONTIER_MONS_PARASOL_LADY_2
};
const u16 gBattleFrontierTrainerMons_Jordyn[] =
{
- 267,
- 269,
- 270,
- 272,
- 273,
- 276,
- 279,
- 284,
- 288,
- 302,
- 304,
- 305,
- 308,
- 309,
- 312,
- 316,
- 319,
- 322,
- 323,
- 325,
- 326,
- 329,
- 331,
- 332,
- 336,
- 340,
- 344,
- 345,
- 351,
- 353,
- 355,
- -1
+ FRONTIER_MONS_BEAUTY_1
};
const u16 gBattleFrontierTrainerMons_Sofia[] =
{
- 270,
- 272,
- 274,
- 276,
- 279,
- 282,
- 285,
- 290,
- 293,
- 313,
- 314,
- 321,
- 334,
- 340,
- 348,
- 356,
- 359,
- 360,
- -1
+ FRONTIER_MONS_AROMA_LADY_2
};
const u16 gBattleFrontierTrainerMons_Braden[] =
{
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- -1
+ FRONTIER_MONS_COOLTRAINER_1A
};
const u16 gBattleFrontierTrainerMons_Kayden[] =
{
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- -1
+ FRONTIER_MONS_COOLTRAINER_1B
};
const u16 gBattleFrontierTrainerMons_Cooper[] =
{
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- -1
+ FRONTIER_MONS_COOLTRAINER_1C
};
const u16 gBattleFrontierTrainerMons_Julia[] =
{
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- -1
+ FRONTIER_MONS_COOLTRAINER_1A
};
const u16 gBattleFrontierTrainerMons_Amara[] =
{
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- -1
+ FRONTIER_MONS_COOLTRAINER_1B
};
const u16 gBattleFrontierTrainerMons_Lynn[] =
{
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- -1
+ FRONTIER_MONS_COOLTRAINER_1C
};
const u16 gBattleFrontierTrainerMons_Jovan[] =
{
- 238,
- 331,
- 343,
- 368,
- 369,
- 375,
- 376,
- 379,
- 382,
- 383,
- 389,
- 394,
- 395,
- 397,
- 398,
- 400,
- 406,
- 408,
- 411,
- 416,
- 417,
- 423,
- 424,
- 425,
- 432,
- 436,
- 438,
- 441,
- 445,
- 453,
- 460,
- 462,
- 467,
- -1
+ FRONTIER_MONS_PKMN_RANGER_1
};
const u16 gBattleFrontierTrainerMons_Dominic[] =
{
- 238,
- 331,
- 343,
- 368,
- 369,
- 375,
- 376,
- 379,
- 382,
- 383,
- 389,
- 394,
- 395,
- 397,
- 398,
- 400,
- 406,
- 408,
- 411,
- 416,
- 417,
- 423,
- 424,
- 425,
- 432,
- 436,
- 438,
- 441,
- 445,
- 453,
- 460,
- 462,
- 467,
- -1
+ FRONTIER_MONS_PKMN_RANGER_1
};
const u16 gBattleFrontierTrainerMons_Nikolas[] =
{
- 238,
- 331,
- 343,
- 368,
- 369,
- 375,
- 376,
- 379,
- 382,
- 383,
- 389,
- 394,
- 395,
- 397,
- 398,
- 400,
- 406,
- 408,
- 411,
- 416,
- 417,
- 423,
- 424,
- 425,
- 432,
- 436,
- 438,
- 441,
- 445,
- 453,
- 460,
- 462,
- 467,
- -1
+ FRONTIER_MONS_PKMN_RANGER_1
};
const u16 gBattleFrontierTrainerMons_Valeria[] =
{
- 238,
- 331,
- 343,
- 368,
- 369,
- 375,
- 376,
- 379,
- 382,
- 383,
- 389,
- 394,
- 395,
- 397,
- 398,
- 400,
- 406,
- 408,
- 411,
- 416,
- 417,
- 423,
- 424,
- 425,
- 432,
- 436,
- 438,
- 441,
- 445,
- 453,
- 460,
- 462,
- 467,
- -1
+ FRONTIER_MONS_PKMN_RANGER_1
};
const u16 gBattleFrontierTrainerMons_Delaney[] =
{
- 238,
- 331,
- 343,
- 368,
- 369,
- 375,
- 376,
- 379,
- 382,
- 383,
- 389,
- 394,
- 395,
- 397,
- 398,
- 400,
- 406,
- 408,
- 411,
- 416,
- 417,
- 423,
- 424,
- 425,
- 432,
- 436,
- 438,
- 441,
- 445,
- 453,
- 460,
- 462,
- 467,
- -1
+ FRONTIER_MONS_PKMN_RANGER_1
};
const u16 gBattleFrontierTrainerMons_Meghan[] =
{
- 238,
- 331,
- 343,
- 368,
- 369,
- 375,
- 376,
- 379,
- 382,
- 383,
- 389,
- 394,
- 395,
- 397,
- 398,
- 400,
- 406,
- 408,
- 411,
- 416,
- 417,
- 423,
- 424,
- 425,
- 432,
- 436,
- 438,
- 441,
- 445,
- 453,
- 460,
- 462,
- 467,
- -1
+ FRONTIER_MONS_PKMN_RANGER_1
};
const u16 gBattleFrontierTrainerMons_Roberto[] =
{
- 386,
- 403,
- 412,
- 413,
- 414,
- 433,
- 435,
- 440,
- 450,
- 453,
- 454,
- 456,
- 459,
- 461,
- 463,
- 464,
- 465,
- -1
+ FRONTIER_MONS_DRAGON_TAMER_1
};
const u16 gBattleFrontierTrainerMons_Damian[] =
{
- 386,
- 403,
- 412,
- 413,
- 414,
- 433,
- 435,
- 440,
- 450,
- 453,
- 454,
- 456,
- 459,
- 461,
- 463,
- 464,
- 465,
- -1
+ FRONTIER_MONS_DRAGON_TAMER_1
};
const u16 gBattleFrontierTrainerMons_Brody[] =
{
- 386,
- 403,
- 412,
- 413,
- 414,
- 433,
- 435,
- 440,
- 450,
- 453,
- 454,
- 456,
- 459,
- 461,
- 463,
- 464,
- 465,
- -1
+ FRONTIER_MONS_DRAGON_TAMER_1
};
const u16 gBattleFrontierTrainerMons_Graham[] =
{
- 386,
- 403,
- 412,
- 413,
- 414,
- 433,
- 435,
- 440,
- 450,
- 453,
- 454,
- 456,
- 459,
- 461,
- 463,
- 464,
- 465,
- -1
+ FRONTIER_MONS_DRAGON_TAMER_1
};
const u16 gBattleFrontierTrainerMons_Tylor[] =
{
- 374,
- 381,
- 382,
- 385,
- 388,
- 389,
- 391,
- 392,
- 394,
- 409,
- 411,
- 412,
- 419,
- 430,
- 432,
- 436,
- 440,
- 456,
- 460,
- 462,
- 463,
- 467,
- -1
+ FRONTIER_MONS_POKEFAN_2
};
const u16 gBattleFrontierTrainerMons_Jaren[] =
{
- 374,
- 381,
- 382,
- 385,
- 388,
- 389,
- 391,
- 392,
- 394,
- 409,
- 411,
- 412,
- 419,
- 430,
- 432,
- 436,
- 440,
- 456,
- 460,
- 462,
- 463,
- 467,
- -1
+ FRONTIER_MONS_POKEFAN_2
};
const u16 gBattleFrontierTrainerMons_Cordell[] =
{
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- -1
+ FRONTIER_MONS_PKMN_BREEDER_M_1
};
const u16 gBattleFrontierTrainerMons_Jazlyn[] =
{
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- -1
+ FRONTIER_MONS_PKMN_BREEDER_F_1
};
const u16 gBattleFrontierTrainerMons_Zachery[] =
{
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500,
- -1
+ FRONTIER_MONS_YOUNGSTER_LASS_2
};
const u16 gBattleFrontierTrainerMons_Johan[] =
{
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500,
- -1
+ FRONTIER_MONS_YOUNGSTER_LASS_2_NO_DUGTRIO
};
const u16 gBattleFrontierTrainerMons_Shea[] =
{
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500,
- -1
+ FRONTIER_MONS_YOUNGSTER_LASS_2
};
const u16 gBattleFrontierTrainerMons_Kaila[] =
{
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500,
- -1
+ FRONTIER_MONS_YOUNGSTER_LASS_2
};
const u16 gBattleFrontierTrainerMons_Isiah[] =
{
- 501,
- 502,
- 503,
- 504,
- 505,
- 506,
- 507,
- 508,
- 509,
- 510,
- 511,
- 512,
- 513,
- 514,
- 515,
- 516,
- 517,
- 518,
- 519,
- 520,
- 521,
- 522,
- 523,
- 524,
- 525,
- 526,
- 527,
- 528,
- 529,
- 530,
- 531,
- 532,
- 533,
- -1
+ FRONTIER_MONS_SCHOOL_KID_2
};
const u16 gBattleFrontierTrainerMons_Garrett[] =
{
- 501,
- 502,
- 503,
- 504,
- 505,
- 506,
- 507,
- 508,
- 509,
- 510,
- 511,
- 512,
- 513,
- 514,
- 515,
- 516,
- 517,
- 518,
- 519,
- 520,
- 521,
- 522,
- 523,
- 524,
- 525,
- 526,
- 527,
- 528,
- 529,
- 530,
- 531,
- 532,
- 533,
- -1
+ FRONTIER_MONS_SCHOOL_KID_2
};
const u16 gBattleFrontierTrainerMons_Haylie[] =
{
- 501,
- 502,
- 503,
- 504,
- 505,
- 506,
- 507,
- 508,
- 509,
- 510,
- 511,
- 512,
- 513,
- 514,
- 515,
- 516,
- 517,
- 518,
- 519,
- 520,
- 521,
- 522,
- 523,
- 524,
- 525,
- 526,
- 527,
- 528,
- 529,
- 530,
- 531,
- 532,
- 533,
- -1
+ FRONTIER_MONS_SCHOOL_KID_2
};
const u16 gBattleFrontierTrainerMons_Megan[] =
{
- 501,
- 502,
- 503,
- 504,
- 505,
- 506,
- 507,
- 508,
- 509,
- 510,
- 511,
- 512,
- 513,
- 514,
- 515,
- 516,
- 517,
- 518,
- 519,
- 520,
- 521,
- 522,
- 523,
- 524,
- 525,
- 526,
- 527,
- 528,
- 529,
- 530,
- 531,
- 532,
- 533,
- -1
+ FRONTIER_MONS_SCHOOL_KID_2
};
const u16 gBattleFrontierTrainerMons_Issac[] =
{
- 534,
- 535,
- 536,
- 537,
- 538,
- 539,
- 540,
- 541,
- 542,
- 543,
- 544,
- 545,
- 546,
- 547,
- 548,
- 549,
- 550,
- 551,
- 552,
- 553,
- 554,
- 555,
- 556,
- 557,
- 558,
- 559,
- 560,
- 561,
- 562,
- 563,
- -1
+ FRONTIER_MONS_RICH_BOY_LADY_2
};
const u16 gBattleFrontierTrainerMons_Quinton[] =
{
- 534,
- 535,
- 536,
- 537,
- 538,
- 539,
- 540,
- 541,
- 542,
- 543,
- 544,
- 545,
- 546,
- 547,
- 548,
- 549,
- 550,
- 551,
- 552,
- 553,
- 554,
- 555,
- 556,
- 557,
- 558,
- 559,
- 560,
- 561,
- 562,
- 563,
- -1
+ FRONTIER_MONS_RICH_BOY_LADY_2
};
const u16 gBattleFrontierTrainerMons_Salma[] =
{
- 534,
- 535,
- 536,
- 537,
- 538,
- 539,
- 540,
- 541,
- 542,
- 543,
- 544,
- 545,
- 546,
- 547,
- 548,
- 549,
- 550,
- 551,
- 552,
- 553,
- 554,
- 555,
- 556,
- 557,
- 558,
- 559,
- 560,
- 561,
- 562,
- 563,
- -1
+ FRONTIER_MONS_RICH_BOY_LADY_2
};
const u16 gBattleFrontierTrainerMons_Ansley[] =
{
- 534,
- 535,
- 536,
- 537,
- 538,
- 539,
- 540,
- 541,
- 542,
- 543,
- 544,
- 545,
- 546,
- 547,
- 548,
- 549,
- 550,
- 551,
- 552,
- 553,
- 554,
- 555,
- 556,
- 557,
- 558,
- 559,
- 560,
- 561,
- 562,
- 563,
- -1
+ FRONTIER_MONS_RICH_BOY_LADY_2
};
const u16 gBattleFrontierTrainerMons_Holden[] =
{
- 343,
- 368,
- 369,
- 383,
- 417,
- 423,
- 424,
- 432,
- 480,
- 481,
- 490,
- 491,
- 494,
- 496,
- 512,
- 513,
- 519,
- 520,
- 528,
- 534,
- 537,
- 541,
- 549,
- -1
+ FRONTIER_MONS_BUG_CATCHER_2
};
const u16 gBattleFrontierTrainerMons_Luca[] =
{
- 343,
- 368,
- 369,
- 383,
- 417,
- 423,
- 424,
- 432,
- 480,
- 481,
- 490,
- 491,
- 494,
- 496,
- 512,
- 513,
- 519,
- 520,
- 528,
- 534,
- 537,
- 541,
- 549,
- -1
+ FRONTIER_MONS_BUG_CATCHER_2
};
const u16 gBattleFrontierTrainerMons_Jamison[] =
{
- 282,
- 331,
- 343,
- 368,
- 369,
- 469,
- 472,
- 475,
- 476,
- 478,
- 481,
- 484,
- 490,
- 491,
- 497,
- 500,
- 501,
- 509,
- 510,
- 513,
- 516,
- 517,
- 519,
- 520,
- 524,
- 528,
- 530,
- 533,
- 534,
- 537,
- 542,
- 553,
- -1
+ FRONTIER_MONS_NINJA_BOY_2
};
const u16 gBattleFrontierTrainerMons_Gunnar[] =
{
- 282,
- 331,
- 343,
- 368,
- 369,
- 469,
- 472,
- 475,
- 476,
- 478,
- 481,
- 484,
- 490,
- 491,
- 497,
- 500,
- 501,
- 509,
- 510,
- 513,
- 516,
- 517,
- 519,
- 520,
- 524,
- 528,
- 530,
- 533,
- 534,
- 537,
- 542,
- 553,
- -1
+ FRONTIER_MONS_NINJA_BOY_2
};
const u16 gBattleFrontierTrainerMons_Craig[] =
{
- 471,
- 474,
- 475,
- 479,
- 483,
- 485,
- 488,
- 493,
- 495,
- 496,
- 502,
- 504,
- 505,
- 506,
- 507,
- 514,
- 521,
- 525,
- 530,
- 532,
- 535,
- 538,
- 544,
- 545,
- 548,
- 552,
- 554,
- 555,
- 556,
- 557,
- 558,
- 559,
- 563,
- -1
+ FRONTIER_MONS_TUBER_2
};
const u16 gBattleFrontierTrainerMons_Pierce[] =
{
- 471,
- 474,
- 475,
- 479,
- 483,
- 485,
- 488,
- 493,
- 495,
- 496,
- 502,
- 504,
- 505,
- 506,
- 507,
- 514,
- 521,
- 525,
- 530,
- 532,
- 535,
- 538,
- 544,
- 545,
- 548,
- 552,
- 554,
- 555,
- 556,
- 557,
- 558,
- 559,
- 563,
- -1
+ FRONTIER_MONS_TUBER_2
};
const u16 gBattleFrontierTrainerMons_Regina[] =
{
- 471,
- 474,
- 475,
- 479,
- 483,
- 485,
- 488,
- 493,
- 495,
- 496,
- 502,
- 504,
- 505,
- 506,
- 507,
- 514,
- 521,
- 525,
- 530,
- 532,
- 535,
- 538,
- 544,
- 545,
- 548,
- 552,
- 554,
- 555,
- 556,
- 557,
- 558,
- 559,
- 563,
- -1
+ FRONTIER_MONS_TUBER_2
};
const u16 gBattleFrontierTrainerMons_Alison[] =
{
- 471,
- 474,
- 475,
- 479,
- 483,
- 485,
- 488,
- 493,
- 495,
- 496,
- 502,
- 504,
- 505,
- 506,
- 507,
- 514,
- 521,
- 525,
- 530,
- 532,
- 535,
- 538,
- 544,
- 545,
- 548,
- 552,
- 554,
- 555,
- 556,
- 557,
- 558,
- 559,
- 563,
- -1
+ FRONTIER_MONS_TUBER_2
};
const u16 gBattleFrontierTrainerMons_Hank[] =
{
- 277,
- 278,
- 282,
- 303,
- 331,
- 343,
- 368,
- 369,
- 383,
- 417,
- 423,
- 424,
- 432,
- 481,
- 513,
- 519,
- 520,
- 528,
- 575,
- 609,
- 615,
- 616,
- 624,
- -1
+ FRONTIER_MONS_BUG_MANIAC_3
};
const u16 gBattleFrontierTrainerMons_Earl[] =
{
- 277,
- 278,
- 282,
- 303,
- 331,
- 343,
- 368,
- 369,
- 383,
- 417,
- 423,
- 424,
- 432,
- 481,
- 513,
- 519,
- 520,
- 528,
- 575,
- 609,
- 615,
- 616,
- 624,
- -1
+ FRONTIER_MONS_BUG_MANIAC_3
};
const u16 gBattleFrontierTrainerMons_Ramiro[] =
{
- 316,
- 333,
- 347,
- 350,
- 354,
- 358,
- 361,
- 362,
- 363,
- 364,
- 573,
- 576,
- 621,
- 626,
- 631,
- -1
+ FRONTIER_MONS_FISHERMAN_2
};
const u16 gBattleFrontierTrainerMons_Hunter[] =
{
- 316,
- 333,
- 347,
- 350,
- 354,
- 358,
- 361,
- 362,
- 363,
- 364,
- 573,
- 576,
- 621,
- 626,
- 631,
- -1
+ FRONTIER_MONS_FISHERMAN_2
};
const u16 gBattleFrontierTrainerMons_Aiden[] =
{
- 564,
- 575,
- 576,
- 578,
- 579,
- 580,
- 594,
- 595,
- 605,
- 606,
- 608,
- 609,
- 615,
- 619,
- 620,
- 624,
- 625,
- 627,
- 632,
- 642,
- 650,
- 658,
- -1
+ FRONTIER_MONS_RUIN_MANIAC_3
};
const u16 gBattleFrontierTrainerMons_Xavier[] =
{
- 564,
- 575,
- 576,
- 578,
- 579,
- 580,
- 594,
- 595,
- 605,
- 606,
- 608,
- 609,
- 615,
- 619,
- 620,
- 624,
- 625,
- 627,
- 632,
- 642,
- 650,
- 658,
- -1
+ FRONTIER_MONS_RUIN_MANIAC_3
};
const u16 gBattleFrontierTrainerMons_Clinton[] =
{
- 564,
- 565,
- 566,
- 567,
- 568,
- 569,
- 570,
- 571,
- 572,
- 573,
- 574,
- 575,
- 576,
- 577,
- 578,
- 579,
- 580,
- 581,
- 582,
- 583,
- 584,
- 585,
- 586,
- 587,
- 588,
- 589,
- 590,
- 591,
- 592,
- 593,
- 594,
- 595,
- 596,
- 597,
- 598,
- 599,
- 600,
- 601,
- 602,
- 603,
- 604,
- 605,
- 606,
- 607,
- 608,
- 609,
- 610,
- 611,
- -1
+ FRONTIER_MONS_COLLECTOR_2
};
const u16 gBattleFrontierTrainerMons_Jesse[] =
{
- 564,
- 565,
- 566,
- 567,
- 568,
- 569,
- 570,
- 571,
- 572,
- 573,
- 574,
- 575,
- 576,
- 577,
- 578,
- 579,
- 580,
- 581,
- 582,
- 583,
- 584,
- 585,
- 586,
- 587,
- 588,
- 589,
- 590,
- 591,
- 592,
- 593,
- 594,
- 595,
- 596,
- 597,
- 598,
- 599,
- 600,
- 601,
- 602,
- 603,
- 604,
- 605,
- 606,
- 607,
- 608,
- 609,
- 610,
- 611,
- -1
+ FRONTIER_MONS_COLLECTOR_2
};
const u16 gBattleFrontierTrainerMons_Eduardo[] =
{
- 268,
- 307,
- 317,
- 349,
- 352,
- 573,
- 583,
- 585,
- 588,
- 590,
- 599,
- 614,
- 618,
- 635,
- 639,
- -1
+ FRONTIER_MONS_GUITARIST_2
};
const u16 gBattleFrontierTrainerMons_Hal[] =
{
- 268,
- 307,
- 317,
- 349,
- 352,
- 573,
- 583,
- 585,
- 588,
- 590,
- 599,
- 614,
- 618,
- 635,
- 639,
- -1
+ FRONTIER_MONS_GUITARIST_2
};
const u16 gBattleFrontierTrainerMons_Gage[] =
{
- 289,
- 318,
- 319,
- 329,
- 355,
- 375,
- 379,
- 385,
- 386,
- 457,
- 473,
- 477,
- 482,
- 484,
- 553,
- 567,
- 571,
- 577,
- 578,
- 649,
- -1
+ FRONTIER_MONS_BIRD_KEEPER_2
};
const u16 gBattleFrontierTrainerMons_Arnold[] =
{
- 289,
- 318,
- 319,
- 329,
- 355,
- 375,
- 379,
- 385,
- 386,
- 457,
- 473,
- 477,
- 482,
- 484,
- 553,
- 567,
- 571,
- 577,
- 578,
- 649,
- -1
+ FRONTIER_MONS_BIRD_KEEPER_2
};
const u16 gBattleFrontierTrainerMons_Jarrett[] =
{
- 565,
- 573,
- 576,
- 580,
- 582,
- 584,
- 592,
- 601,
- 602,
- 610,
- 621,
- 623,
- 626,
- 631,
- 634,
- 640,
- 641,
- 644,
- 648,
- 650,
- 651,
- 653,
- 655,
- -1
+ FRONTIER_MONS_SAILOR_2
};
const u16 gBattleFrontierTrainerMons_Garett[] =
{
- 565,
- 573,
- 576,
- 580,
- 582,
- 584,
- 592,
- 601,
- 602,
- 610,
- 621,
- 623,
- 626,
- 631,
- 634,
- 640,
- 641,
- 644,
- 648,
- 650,
- 651,
- 653,
- 655,
- -1
+ FRONTIER_MONS_SAILOR_2
};
const u16 gBattleFrontierTrainerMons_Emanuel[] =
{
- 564,
- 565,
- 574,
- 579,
- 582,
- 594,
- 595,
- 605,
- 606,
- 608,
- 609,
- 616,
- 619,
- 620,
- 623,
- 624,
- 625,
- 627,
- 642,
- 643,
- -1
+ FRONTIER_MONS_HIKER_2
};
const u16 gBattleFrontierTrainerMons_Gustavo[] =
{
- 564,
- 565,
- 574,
- 579,
- 582,
- 594,
- 595,
- 605,
- 606,
- 608,
- 609,
- 616,
- 619,
- 620,
- 623,
- 624,
- 625,
- 627,
- 642,
- 643,
- -1
+ FRONTIER_MONS_HIKER_2
};
const u16 gBattleFrontierTrainerMons_Kameron[] =
{
- 568,
- 581,
- 589,
- 598,
- 600,
- 603,
- 607,
- 611,
- 617,
- 618,
- 622,
- 636,
- 643,
- 646,
- 647,
- 652,
- 654,
- 656,
- 659,
- -1
+ FRONTIER_MONS_KINDLER_2
};
const u16 gBattleFrontierTrainerMons_Alfredo[] =
{
- 568,
- 581,
- 589,
- 598,
- 600,
- 603,
- 607,
- 611,
- 617,
- 618,
- 622,
- 636,
- 643,
- 646,
- 647,
- 652,
- 654,
- 656,
- 659,
- -1
+ FRONTIER_MONS_KINDLER_2
};
const u16 gBattleFrontierTrainerMons_Ruben[] =
{
- 612,
- 613,
- 614,
- 615,
- 616,
- 617,
- 618,
- 619,
- 620,
- 621,
- 622,
- 623,
- 624,
- 625,
- 626,
- 627,
- 628,
- 629,
- 630,
- 631,
- 632,
- 633,
- 634,
- 635,
- 636,
- 637,
- 638,
- 639,
- 640,
- 641,
- 642,
- 643,
- 644,
- 645,
- 646,
- 647,
- 648,
- 649,
- 650,
- 651,
- 652,
- 653,
- 654,
- 655,
- 656,
- 657,
- 658,
- 659,
- -1
+ FRONTIER_MONS_GENTLEMAN_2
};
const u16 gBattleFrontierTrainerMons_Lamar[] =
{
- 612,
- 613,
- 614,
- 615,
- 616,
- 617,
- 618,
- 619,
- 620,
- 621,
- 622,
- 623,
- 624,
- 625,
- 626,
- 627,
- 628,
- 629,
- 630,
- 631,
- 632,
- 633,
- 634,
- 635,
- 636,
- 637,
- 638,
- 639,
- 640,
- 641,
- 642,
- 643,
- 644,
- 645,
- 646,
- 647,
- 648,
- 649,
- 650,
- 651,
- 652,
- 653,
- 654,
- 655,
- 656,
- 657,
- 658,
- 659,
- -1
+ FRONTIER_MONS_GENTLEMAN_2
};
const u16 gBattleFrontierTrainerMons_Jaxon[] =
{
- 660,
- 661,
- 662,
- 663,
- 664,
- 665,
- 666,
- 667,
- 668,
- 669,
- 670,
- 671,
- 672,
- 673,
- 674,
- 675,
- 676,
- 677,
- 678,
- 679,
- 680,
- 681,
- 682,
- 683,
- 684,
- 685,
- 686,
- 687,
- 688,
- 689,
- 690,
- 691,
- 692,
- -1
+ FRONTIER_MONS_YOUNGSTER_LASS_3
};
const u16 gBattleFrontierTrainerMons_Logan[] =
{
- 660,
- 661,
- 662,
- 663,
- 664,
- 665,
- 666,
- 667,
- 668,
- 669,
- 670,
- 671,
- 672,
- 673,
- 674,
- 675,
- 676,
- 677,
- 678,
- 679,
- 680,
- 681,
- 682,
- 683,
- 684,
- 685,
- 686,
- 687,
- 688,
- 689,
- 690,
- 691,
- 692,
- -1
+ FRONTIER_MONS_YOUNGSTER_LASS_3
};
const u16 gBattleFrontierTrainerMons_Emilee[] =
{
- 660,
- 661,
- 662,
- 663,
- 664,
- 665,
- 666,
- 667,
- 668,
- 669,
- 670,
- 671,
- 672,
- 673,
- 674,
- 675,
- 676,
- 677,
- 678,
- 679,
- 680,
- 681,
- 682,
- 683,
- 684,
- 685,
- 686,
- 687,
- 688,
- 689,
- 690,
- 691,
- 692,
- -1
+ FRONTIER_MONS_YOUNGSTER_LASS_3
};
const u16 gBattleFrontierTrainerMons_Josie[] =
{
- 660,
- 661,
- 662,
- 663,
- 664,
- 665,
- 666,
- 667,
- 668,
- 669,
- 670,
- 671,
- 672,
- 673,
- 674,
- 675,
- 676,
- 677,
- 678,
- 679,
- 680,
- 681,
- 682,
- 683,
- 684,
- 685,
- 686,
- 687,
- 688,
- 689,
- 690,
- 691,
- 692,
- -1
+ FRONTIER_MONS_YOUNGSTER_LASS_3
};
const u16 gBattleFrontierTrainerMons_Armando[] =
{
- 693,
- 694,
- 695,
- 696,
- 697,
- 698,
- 699,
- 700,
- 701,
- 702,
- 703,
- 704,
- 705,
- 706,
- 707,
- 708,
- 709,
- 710,
- 711,
- 712,
- 713,
- 714,
- 715,
- 716,
- 717,
- 718,
- 719,
- 720,
- 721,
- 722,
- 723,
- 724,
- 725,
- -1
+ FRONTIER_MONS_CAMPER_PICNICKER_2
};
const u16 gBattleFrontierTrainerMons_Skyler[] =
{
- 693,
- 694,
- 695,
- 696,
- 697,
- 698,
- 699,
- 700,
- 701,
- 702,
- 703,
- 704,
- 705,
- 706,
- 707,
- 708,
- 709,
- 710,
- 711,
- 712,
- 713,
- 714,
- 715,
- 716,
- 717,
- 718,
- 719,
- 720,
- 721,
- 722,
- 723,
- 724,
- 725,
- -1
+ FRONTIER_MONS_CAMPER_PICNICKER_2
};
const u16 gBattleFrontierTrainerMons_Ruth[] =
{
- 693,
- 694,
- 695,
- 696,
- 697,
- 698,
- 699,
- 700,
- 701,
- 702,
- 703,
- 704,
- 705,
- 706,
- 707,
- 708,
- 709,
- 710,
- 711,
- 712,
- 713,
- 714,
- 715,
- 716,
- 717,
- 718,
- 719,
- 720,
- 721,
- 722,
- 723,
- 724,
- 725,
- -1
+ FRONTIER_MONS_CAMPER_PICNICKER_2
};
const u16 gBattleFrontierTrainerMons_Melody[] =
{
- 693,
- 694,
- 695,
- 696,
- 697,
- 698,
- 699,
- 700,
- 701,
- 702,
- 703,
- 704,
- 705,
- 706,
- 707,
- 708,
- 709,
- 710,
- 711,
- 712,
- 713,
- 714,
- 715,
- 716,
- 717,
- 718,
- 719,
- 720,
- 721,
- 722,
- 723,
- 724,
- 725,
- -1
+ FRONTIER_MONS_CAMPER_PICNICKER_2
};
const u16 gBattleFrontierTrainerMons_Pedro[] =
{
- 347,
- 661,
- 664,
- 669,
- 672,
- 676,
- 677,
- 678,
- 680,
- 685,
- 688,
- 694,
- 696,
- 697,
- 698,
- 699,
- 706,
- 713,
- 717,
- 719,
- 722,
- 724,
- 727,
- 730,
- 736,
- 737,
- 740,
- 744,
- 746,
- 747,
- 748,
- 749,
- 750,
- 751,
- 755,
- -1
+ FRONTIER_MONS_SWIMMER_M_2
};
const u16 gBattleFrontierTrainerMons_Erick[] =
{
- 347,
- 661,
- 664,
- 669,
- 672,
- 676,
- 677,
- 678,
- 680,
- 685,
- 688,
- 694,
- 696,
- 697,
- 698,
- 699,
- 706,
- 713,
- 717,
- 719,
- 722,
- 724,
- 727,
- 730,
- 736,
- 737,
- 740,
- 744,
- 746,
- 747,
- 748,
- 749,
- 750,
- 751,
- 755,
- -1
+ FRONTIER_MONS_SWIMMER_M_2
};
const u16 gBattleFrontierTrainerMons_Elaine[] =
{
- 664,
- 665,
- 669,
- 672,
- 676,
- 677,
- 680,
- 685,
- 687,
- 688,
- 694,
- 696,
- 697,
- 698,
- 699,
- 706,
- 713,
- 717,
- 722,
- 724,
- 727,
- 730,
- 736,
- 737,
- 740,
- 744,
- 746,
- 747,
- 748,
- 749,
- 750,
- 751,
- 755,
- -1
+ FRONTIER_MONS_SWIMMER_F_2
};
const u16 gBattleFrontierTrainerMons_Joyce[] =
{
- 664,
- 665,
- 669,
- 672,
- 676,
- 677,
- 680,
- 685,
- 687,
- 688,
- 694,
- 696,
- 697,
- 698,
- 699,
- 706,
- 713,
- 717,
- 722,
- 724,
- 727,
- 730,
- 736,
- 737,
- 740,
- 744,
- 746,
- 747,
- 748,
- 749,
- 750,
- 751,
- 755,
- -1
+ FRONTIER_MONS_SWIMMER_F_2
};
const u16 gBattleFrontierTrainerMons_Todd[] =
{
- 267,
- 273,
- 305,
- 312,
- 325,
- 332,
- 352,
- 662,
- 665,
- 668,
- 669,
- 670,
- 672,
- 673,
- 676,
- 677,
- 679,
- 680,
- 682,
- 688,
- 697,
- 698,
- 699,
- 700,
- 707,
- 710,
- 718,
- 720,
- 724,
- 725,
- 728,
- 730,
- 731,
- 732,
- 734,
- 735,
- 744,
- 748,
- 750,
- 751,
- -1
+ FRONTIER_MONS_POKEFAN_3
};
const u16 gBattleFrontierTrainerMons_Gavin[] =
{
- 267,
- 273,
- 305,
- 312,
- 325,
- 332,
- 352,
- 662,
- 665,
- 668,
- 669,
- 670,
- 672,
- 673,
- 676,
- 677,
- 679,
- 680,
- 682,
- 688,
- 697,
- 698,
- 699,
- 700,
- 707,
- 710,
- 718,
- 720,
- 724,
- 725,
- 728,
- 730,
- 731,
- 732,
- 734,
- 735,
- 744,
- 748,
- 750,
- 751,
- -1
+ FRONTIER_MONS_POKEFAN_3
};
const u16 gBattleFrontierTrainerMons_Malory[] =
{
- 267,
- 273,
- 305,
- 312,
- 325,
- 332,
- 352,
- 662,
- 665,
- 668,
- 669,
- 670,
- 672,
- 673,
- 676,
- 677,
- 679,
- 680,
- 682,
- 688,
- 697,
- 698,
- 699,
- 700,
- 707,
- 710,
- 718,
- 720,
- 724,
- 725,
- 728,
- 730,
- 731,
- 732,
- 734,
- 735,
- 744,
- 748,
- 750,
- 751,
- -1
+ FRONTIER_MONS_POKEFAN_3
};
const u16 gBattleFrontierTrainerMons_Esther[] =
{
- 267,
- 273,
- 305,
- 312,
- 325,
- 332,
- 352,
- 662,
- 665,
- 668,
- 669,
- 670,
- 672,
- 673,
- 676,
- 677,
- 679,
- 680,
- 682,
- 688,
- 697,
- 698,
- 699,
- 700,
- 707,
- 710,
- 718,
- 720,
- 724,
- 725,
- 728,
- 730,
- 731,
- 732,
- 734,
- 735,
- 744,
- 748,
- 750,
- 751,
- -1
+ FRONTIER_MONS_POKEFAN_3
};
const u16 gBattleFrontierTrainerMons_Oscar[] =
{
- 726,
- 727,
- 728,
- 729,
- 730,
- 731,
- 732,
- 733,
- 734,
- 735,
- 736,
- 737,
- 738,
- 739,
- 740,
- 741,
- 742,
- 743,
- 744,
- 745,
- 746,
- 747,
- 748,
- 749,
- 750,
- 751,
- 752,
- 753,
- 754,
- 755,
- -1
+ FRONTIER_MONS_PKMN_BREEDER_2
};
const u16 gBattleFrontierTrainerMons_Wilson[] =
{
- 726,
- 727,
- 728,
- 729,
- 730,
- 731,
- 732,
- 733,
- 734,
- 735,
- 736,
- 737,
- 738,
- 739,
- 740,
- 741,
- 742,
- 743,
- 744,
- 745,
- 746,
- 747,
- 748,
- 749,
- 750,
- 751,
- 752,
- 753,
- 754,
- 755,
- -1
+ FRONTIER_MONS_PKMN_BREEDER_2
};
const u16 gBattleFrontierTrainerMons_Clare[] =
{
- 726,
- 727,
- 728,
- 729,
- 730,
- 731,
- 732,
- 733,
- 734,
- 735,
- 736,
- 737,
- 738,
- 739,
- 740,
- 741,
- 742,
- 743,
- 744,
- 745,
- 746,
- 747,
- 748,
- 749,
- 750,
- 751,
- 752,
- 753,
- 754,
- 755,
- -1
+ FRONTIER_MONS_PKMN_BREEDER_2
};
const u16 gBattleFrontierTrainerMons_Tess[] =
{
- 726,
- 727,
- 728,
- 729,
- 730,
- 731,
- 732,
- 733,
- 734,
- 735,
- 736,
- 737,
- 738,
- 739,
- 740,
- 741,
- 742,
- 743,
- 744,
- 745,
- 746,
- 747,
- 748,
- 749,
- 750,
- 751,
- 752,
- 753,
- 754,
- 755,
- -1
+ FRONTIER_MONS_PKMN_BREEDER_2
};
const u16 gBattleFrontierTrainerMons_Leon[] =
{
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 516,
- 517,
- 518,
- 519,
- 520,
- 521,
- 522,
- 523,
- 524,
- 525,
- 526,
- 527,
- 528,
- 529,
- 530,
- 531,
- 532,
- 533,
- 534,
- 535,
- 536,
- 537,
- 538,
- 539,
- 612,
- 613,
- 614,
- 615,
- 616,
- 617,
- 618,
- 619,
- 620,
- 621,
- 622,
- 623,
- 624,
- 625,
- 626,
- 627,
- 628,
- 629,
- 630,
- 631,
- 632,
- 633,
- 634,
- 635,
- 708,
- 709,
- 710,
- 711,
- 712,
- 713,
- 714,
- 715,
- 716,
- 717,
- 718,
- 719,
- 720,
- 721,
- 722,
- 723,
- 724,
- 725,
- 726,
- 727,
- 728,
- 729,
- 730,
- 731,
- -1
+ FRONTIER_MONS_COOLTRAINER_M_2A
};
const u16 gBattleFrontierTrainerMons_Alonzo[] =
{
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 540,
- 541,
- 542,
- 543,
- 544,
- 545,
- 546,
- 547,
- 548,
- 549,
- 550,
- 551,
- 552,
- 553,
- 554,
- 555,
- 556,
- 557,
- 558,
- 559,
- 560,
- 561,
- 562,
- 563,
- 636,
- 637,
- 638,
- 639,
- 640,
- 641,
- 642,
- 643,
- 644,
- 645,
- 646,
- 647,
- 648,
- 649,
- 650,
- 651,
- 652,
- 653,
- 654,
- 655,
- 656,
- 657,
- 658,
- 659,
- 732,
- 733,
- 734,
- 735,
- 736,
- 737,
- 738,
- 739,
- 740,
- 741,
- 742,
- 743,
- 744,
- 745,
- 746,
- 747,
- 748,
- 749,
- 750,
- 751,
- 752,
- 753,
- 754,
- 755,
- -1
+ FRONTIER_MONS_COOLTRAINER_M_2B
};
const u16 gBattleFrontierTrainerMons_Vince[] =
{
- 421,
- 425,
- 431,
- 437,
- 439,
- 456,
- 460,
- 465,
- 466,
- 517,
- 521,
- 527,
- 533,
- 535,
- 552,
- 556,
- 561,
- 562,
- 613,
- 617,
- 623,
- 629,
- 631,
- 648,
- 652,
- 657,
- 658,
- 709,
- 713,
- 719,
- 725,
- 727,
- 744,
- 748,
- 753,
- 754,
- 766,
- 777,
- 788,
- 799,
- 800,
- 801,
- 802,
- 803,
- 804,
- 805,
- 806,
- 807,
- 808,
- 809,
- 810,
- 811,
- 812,
- 813,
- 814,
- 815,
- 816,
- 817,
- 818,
- 819,
- 820,
- 821,
- 822,
- 823,
- 824,
- 825,
- 826,
- 827,
- 828,
- 829,
- 830,
- 831,
- 832,
- 833,
- 834,
- 835,
- 846,
- 847,
- 848,
- 849,
- 850,
- 851,
- 852,
- 853,
- 854,
- 855,
- 856,
- 857,
- 858,
- 859,
- 860,
- 861,
- 862,
- 863,
- 864,
- 865,
- 866,
- 867,
- 868,
- 869,
- -1
+ FRONTIER_MONS_COOLTRAINER_2C(LATIOS)
};
const u16 gBattleFrontierTrainerMons_Bryon[] =
{
- 756,
- 757,
- 758,
- 759,
- 760,
- 761,
- 762,
- 763,
- 764,
- 766,
- 767,
- 768,
- 769,
- 770,
- 771,
- 772,
- 773,
- 774,
- 775,
- 777,
- 778,
- 779,
- 780,
- 781,
- 782,
- 783,
- 784,
- 785,
- 786,
- 788,
- 789,
- 790,
- 791,
- 792,
- 793,
- 794,
- 795,
- 796,
- 797,
- 799,
- 836,
- 837,
- 838,
- 839,
- 840,
- 841,
- 846,
- 847,
- 848,
- 849,
- 850,
- 851,
- 852,
- 853,
- 854,
- 855,
- 856,
- 857,
- 858,
- 859,
- 860,
- 861,
- 862,
- 863,
- 864,
- 865,
- 866,
- 867,
- 868,
- 869,
- 870,
- 871,
- 872,
- 873,
- 874,
- 875,
- 876,
- 877,
- 878,
- 879,
- 880,
- 881,
- -1
+ FRONTIER_MONS_COOLTRAINER_2D(LATIOS)
};
const u16 gBattleFrontierTrainerMons_Ava[] =
{
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 564,
- 565,
- 566,
- 567,
- 568,
- 569,
- 570,
- 571,
- 572,
- 573,
- 574,
- 575,
- 576,
- 577,
- 578,
- 579,
- 580,
- 581,
- 582,
- 583,
- 584,
- 585,
- 586,
- 587,
- 660,
- 661,
- 662,
- 663,
- 664,
- 665,
- 666,
- 667,
- 668,
- 669,
- 670,
- 671,
- 672,
- 673,
- 674,
- 675,
- 676,
- 677,
- 678,
- 679,
- 680,
- 681,
- 682,
- 683,
- -1
+ FRONTIER_MONS_COOLTRAINER_F_2A
};
const u16 gBattleFrontierTrainerMons_Miriam[] =
{
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500,
- 501,
- 502,
- 503,
- 504,
- 505,
- 506,
- 507,
- 508,
- 509,
- 510,
- 511,
- 512,
- 513,
- 514,
- 515,
- 588,
- 589,
- 590,
- 591,
- 592,
- 593,
- 594,
- 595,
- 596,
- 597,
- 598,
- 599,
- 600,
- 601,
- 602,
- 603,
- 604,
- 605,
- 606,
- 607,
- 608,
- 609,
- 610,
- 611,
- 684,
- 685,
- 686,
- 687,
- 688,
- 689,
- 690,
- 691,
- 692,
- 693,
- 694,
- 695,
- 696,
- 697,
- 698,
- 699,
- 700,
- 701,
- 702,
- 703,
- 704,
- 705,
- 706,
- 707,
- -1
+ FRONTIER_MONS_COOLTRAINER_F_2B
};
const u16 gBattleFrontierTrainerMons_Carrie[] =
{
- 421,
- 425,
- 431,
- 437,
- 439,
- 456,
- 460,
- 465,
- 466,
- 517,
- 521,
- 527,
- 533,
- 535,
- 552,
- 556,
- 561,
- 562,
- 613,
- 617,
- 623,
- 629,
- 631,
- 648,
- 652,
- 657,
- 658,
- 709,
- 713,
- 719,
- 725,
- 727,
- 744,
- 748,
- 753,
- 754,
- 765,
- 776,
- 787,
- 798,
- 800,
- 801,
- 802,
- 803,
- 804,
- 805,
- 806,
- 807,
- 808,
- 809,
- 810,
- 811,
- 812,
- 813,
- 814,
- 815,
- 816,
- 817,
- 818,
- 819,
- 820,
- 821,
- 822,
- 823,
- 824,
- 825,
- 826,
- 827,
- 828,
- 829,
- 830,
- 831,
- 832,
- 833,
- 834,
- 835,
- 842,
- 843,
- 844,
- 845,
- 850,
- 851,
- 852,
- 853,
- 854,
- 855,
- 856,
- 857,
- 858,
- 859,
- 860,
- 861,
- 862,
- 863,
- 864,
- 865,
- 866,
- 867,
- 868,
- 869,
- -1
+ FRONTIER_MONS_COOLTRAINER_2C(LATIAS)
};
const u16 gBattleFrontierTrainerMons_Gillian2[] =
{
- 756,
- 757,
- 758,
- 759,
- 760,
- 761,
- 762,
- 763,
- 764,
- 765,
- 767,
- 768,
- 769,
- 770,
- 771,
- 772,
- 773,
- 774,
- 775,
- 776,
- 778,
- 779,
- 780,
- 781,
- 782,
- 783,
- 784,
- 785,
- 786,
- 787,
- 789,
- 790,
- 791,
- 792,
- 793,
- 794,
- 795,
- 796,
- 797,
- 798,
- 836,
- 837,
- 838,
- 839,
- 840,
- 841,
- 842,
- 843,
- 844,
- 845,
- 850,
- 851,
- 852,
- 853,
- 854,
- 855,
- 856,
- 857,
- 858,
- 859,
- 860,
- 861,
- 862,
- 863,
- 864,
- 865,
- 866,
- 867,
- 868,
- 869,
- 870,
- 871,
- 872,
- 873,
- 874,
- 875,
- 876,
- 877,
- 878,
- 879,
- 880,
- 881,
- -1
+ FRONTIER_MONS_COOLTRAINER_2D(LATIAS)
};
const u16 gBattleFrontierTrainerMons_Tyler[] =
{
- 660,
- 661,
- 662,
- 663,
- 664,
- 665,
- 666,
- 667,
- 668,
- 669,
- 670,
- 671,
- 672,
- 673,
- 674,
- 675,
- 676,
- 677,
- 678,
- 679,
- 680,
- 681,
- 682,
- 683,
- 684,
- 685,
- 686,
- 687,
- 688,
- 689,
- 690,
- 691,
- 692,
- 693,
- 694,
- 695,
- 696,
- 697,
- 698,
- 699,
- 700,
- 701,
- 702,
- 703,
- 704,
- 705,
- 706,
- 707,
- 708,
- 709,
- 710,
- 711,
- 712,
- 713,
- 714,
- 715,
- 716,
- 717,
- 718,
- 719,
- 720,
- 721,
- 722,
- 723,
- 724,
- 725,
- 726,
- 727,
- 728,
- 729,
- 730,
- 731,
- 732,
- 733,
- 734,
- 735,
- 736,
- 737,
- 738,
- 739,
- 740,
- 741,
- 742,
- 743,
- 744,
- 745,
- 746,
- 747,
- 748,
- 749,
- 750,
- 751,
- 752,
- 753,
- 754,
- 755,
- -1
+ FRONTIER_MONS_GENERAL_A
};
const u16 gBattleFrontierTrainerMons_Chaz[] =
{
- 564,
- 565,
- 566,
- 567,
- 568,
- 569,
- 570,
- 571,
- 572,
- 573,
- 574,
- 575,
- 576,
- 577,
- 578,
- 579,
- 580,
- 581,
- 582,
- 583,
- 584,
- 585,
- 586,
- 587,
- 588,
- 589,
- 590,
- 591,
- 592,
- 593,
- 594,
- 595,
- 596,
- 597,
- 598,
- 599,
- 600,
- 601,
- 602,
- 603,
- 604,
- 605,
- 606,
- 607,
- 608,
- 609,
- 610,
- 611,
- 612,
- 613,
- 614,
- 615,
- 616,
- 617,
- 618,
- 619,
- 620,
- 621,
- 622,
- 623,
- 624,
- 625,
- 626,
- 627,
- 628,
- 629,
- 630,
- 631,
- 632,
- 633,
- 634,
- 635,
- 636,
- 637,
- 638,
- 639,
- 640,
- 641,
- 642,
- 643,
- 644,
- 645,
- 646,
- 647,
- 648,
- 649,
- 650,
- 651,
- 652,
- 653,
- 654,
- 655,
- 656,
- 657,
- 658,
- 659,
- -1
+ FRONTIER_MONS_GENERAL_B
};
const u16 gBattleFrontierTrainerMons_Nelson[] =
{
- 756,
- 757,
- 758,
- 759,
- 760,
- 761,
- 762,
- 763,
- 764,
- 766,
- 767,
- 768,
- 769,
- 770,
- 771,
- 772,
- 773,
- 774,
- 775,
- 777,
- 778,
- 779,
- 780,
- 781,
- 782,
- 783,
- 784,
- 785,
- 786,
- 788,
- 789,
- 790,
- 791,
- 792,
- 793,
- 794,
- 795,
- 796,
- 797,
- 799,
- 836,
- 837,
- 838,
- 839,
- 840,
- 841,
- 846,
- 847,
- 848,
- 849,
- 850,
- 851,
- 852,
- 853,
- 854,
- 855,
- 856,
- 857,
- 858,
- 859,
- 860,
- 861,
- 862,
- 863,
- 864,
- 865,
- 866,
- 867,
- 868,
- 869,
- 870,
- 871,
- 872,
- 873,
- 874,
- 875,
- 876,
- 877,
- 878,
- 879,
- 880,
- 881,
- -1
+ FRONTIER_MONS_COOLTRAINER_2D(LATIOS)
};
const u16 gBattleFrontierTrainerMons_Shania[] =
{
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500,
- 501,
- 502,
- 503,
- 504,
- 505,
- 506,
- 507,
- 508,
- 509,
- 510,
- 511,
- 512,
- 513,
- 514,
- 515,
- 516,
- 517,
- 518,
- 519,
- 520,
- 521,
- 522,
- 523,
- 524,
- 525,
- 526,
- 527,
- 528,
- 529,
- 530,
- 531,
- 532,
- 533,
- 534,
- 535,
- 536,
- 537,
- 538,
- 539,
- 540,
- 541,
- 542,
- 543,
- 544,
- 545,
- 546,
- 547,
- 548,
- 549,
- 550,
- 551,
- 552,
- 553,
- 554,
- 555,
- 556,
- 557,
- 558,
- 559,
- 560,
- 561,
- 562,
- 563,
- -1
+ FRONTIER_MONS_GENERAL_C
};
const u16 gBattleFrontierTrainerMons_Stella[] =
{
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- -1
+ FRONTIER_MONS_GENERAL_D
};
const u16 gBattleFrontierTrainerMons_Dorine[] =
{
- 756,
- 757,
- 758,
- 759,
- 760,
- 761,
- 762,
- 763,
- 764,
- 765,
- 767,
- 768,
- 769,
- 770,
- 771,
- 772,
- 773,
- 774,
- 775,
- 776,
- 778,
- 779,
- 780,
- 781,
- 782,
- 783,
- 784,
- 785,
- 786,
- 787,
- 789,
- 790,
- 791,
- 792,
- 793,
- 794,
- 795,
- 796,
- 797,
- 798,
- 836,
- 837,
- 838,
- 839,
- 840,
- 841,
- 842,
- 843,
- 844,
- 845,
- 850,
- 851,
- 852,
- 853,
- 854,
- 855,
- 856,
- 857,
- 858,
- 859,
- 860,
- 861,
- 862,
- 863,
- 864,
- 865,
- 866,
- 867,
- 868,
- 869,
- 870,
- 871,
- 872,
- 873,
- 874,
- 875,
- 876,
- 877,
- 878,
- 879,
- 880,
- 881,
- -1
+ FRONTIER_MONS_COOLTRAINER_2D(LATIAS)
};
const u16 gBattleFrontierTrainerMons_Maddox[] =
{
- 403,
- 412,
- 413,
- 414,
- 433,
- 435,
- 440,
- 450,
- 454,
- 456,
- 459,
- 461,
- 463,
- 465,
- 499,
- 508,
- 509,
- 510,
- 529,
- 531,
- 536,
- 546,
- 550,
- 552,
- 555,
- 557,
- 559,
- 561,
- 595,
- 604,
- 605,
- 606,
- 625,
- 627,
- 632,
- 642,
- 646,
- 648,
- 651,
- 653,
- 655,
- 657,
- 691,
- 700,
- 701,
- 702,
- 721,
- 723,
- 728,
- 738,
- 742,
- 744,
- 747,
- 749,
- 751,
- 753,
- 765,
- 766,
- 776,
- 777,
- 787,
- 788,
- 798,
- 799,
- 828,
- 829,
- 830,
- 831,
- 842,
- 843,
- 844,
- 845,
- 846,
- 847,
- 848,
- 849,
- 850,
- 851,
- 852,
- 853,
- 854,
- 855,
- 856,
- 857,
- 858,
- 859,
- 860,
- 861,
- 862,
- 863,
- 864,
- 865,
- 866,
- 867,
- 868,
- 869,
- -1
+ FRONTIER_MONS_DRAGON_TAMER_2
};
const u16 gBattleFrontierTrainerMons_Davin[] =
{
- 403,
- 412,
- 413,
- 414,
- 433,
- 435,
- 440,
- 450,
- 454,
- 456,
- 459,
- 461,
- 463,
- 465,
- 499,
- 508,
- 509,
- 510,
- 529,
- 531,
- 536,
- 546,
- 550,
- 552,
- 555,
- 557,
- 559,
- 561,
- 595,
- 604,
- 605,
- 606,
- 625,
- 627,
- 632,
- 642,
- 646,
- 648,
- 651,
- 653,
- 655,
- 657,
- 691,
- 700,
- 701,
- 702,
- 721,
- 723,
- 728,
- 738,
- 742,
- 744,
- 747,
- 749,
- 751,
- 753,
- 765,
- 766,
- 776,
- 777,
- 787,
- 788,
- 798,
- 799,
- 828,
- 829,
- 830,
- 831,
- 842,
- 843,
- 844,
- 845,
- 846,
- 847,
- 848,
- 849,
- 850,
- 851,
- 852,
- 853,
- 854,
- 855,
- 856,
- 857,
- 858,
- 859,
- 860,
- 861,
- 862,
- 863,
- 864,
- 865,
- 866,
- 867,
- 868,
- 869,
- -1
+ FRONTIER_MONS_DRAGON_TAMER_2
};
const u16 gBattleFrontierTrainerMons_Trevon[] =
{
- 403,
- 412,
- 413,
- 414,
- 433,
- 435,
- 440,
- 450,
- 454,
- 456,
- 459,
- 461,
- 463,
- 465,
- 499,
- 508,
- 509,
- 510,
- 529,
- 531,
- 536,
- 546,
- 550,
- 552,
- 555,
- 557,
- 559,
- 561,
- 595,
- 604,
- 605,
- 606,
- 625,
- 627,
- 632,
- 642,
- 646,
- 648,
- 651,
- 653,
- 655,
- 657,
- 691,
- 700,
- 701,
- 702,
- 721,
- 723,
- 728,
- 738,
- 742,
- 744,
- 747,
- 749,
- 751,
- 753,
- 765,
- 766,
- 776,
- 777,
- 787,
- 788,
- 798,
- 799,
- 828,
- 829,
- 830,
- 831,
- 842,
- 843,
- 844,
- 845,
- 846,
- 847,
- 848,
- 849,
- 850,
- 851,
- 852,
- 853,
- 854,
- 855,
- 856,
- 857,
- 858,
- 859,
- 860,
- 861,
- 862,
- 863,
- 864,
- 865,
- 866,
- 867,
- 868,
- 869,
- -1
+ FRONTIER_MONS_DRAGON_TAMER_2
};
const u16 gBattleFrontierTrainerMons_Mateo[] =
{
- 373,
- 382,
- 390,
- 402,
- 403,
- 416,
- 417,
- 424,
- 431,
- 432,
- 435,
- 450,
- 451,
- 469,
- 480,
- 486,
- 498,
- 499,
- 512,
- 513,
- 520,
- 527,
- 528,
- 531,
- 546,
- 547,
- 565,
- 574,
- 582,
- 594,
- 595,
- 608,
- 609,
- 616,
- 623,
- 624,
- 627,
- 642,
- 643,
- 661,
- 670,
- 678,
- 690,
- 691,
- 704,
- 705,
- 712,
- 719,
- 720,
- 723,
- 738,
- 739,
- 808,
- 809,
- 810,
- 811,
- -1
+ FRONTIER_MONS_BLACK_BELT_2A
};
const u16 gBattleFrontierTrainerMons_Bret[] =
{
- 373,
- 382,
- 390,
- 415,
- 419,
- 424,
- 426,
- 430,
- 431,
- 444,
- 451,
- 454,
- 455,
- 464,
- 469,
- 480,
- 486,
- 511,
- 515,
- 520,
- 522,
- 526,
- 527,
- 540,
- 547,
- 550,
- 551,
- 560,
- 565,
- 574,
- 582,
- 607,
- 611,
- 616,
- 618,
- 622,
- 623,
- 636,
- 643,
- 646,
- 647,
- 656,
- 661,
- 670,
- 678,
- 703,
- 707,
- 712,
- 714,
- 718,
- 719,
- 732,
- 739,
- 742,
- 743,
- 752,
- 808,
- 809,
- 810,
- 811,
- -1
+ FRONTIER_MONS_BLACK_BELT_BATTLE_GIRL_2B
};
const u16 gBattleFrontierTrainerMons_Raul[] =
{
- 373,
- 382,
- 383,
- 386,
- 390,
- 423,
- 424,
- 431,
- 433,
- 450,
- 451,
- 466,
- 469,
- 480,
- 481,
- 482,
- 486,
- 519,
- 520,
- 527,
- 529,
- 546,
- 547,
- 562,
- 565,
- 574,
- 575,
- 578,
- 582,
- 615,
- 616,
- 623,
- 625,
- 642,
- 643,
- 658,
- 661,
- 670,
- 671,
- 674,
- 678,
- 711,
- 712,
- 719,
- 721,
- 738,
- 739,
- 754,
- 808,
- 809,
- 810,
- 811,
- 832,
- 833,
- 834,
- 835,
- -1
+ FRONTIER_MONS_BLACK_BELT_BATTLE_GIRL_2C
};
const u16 gBattleFrontierTrainerMons_Kay[] =
{
- 373,
- 382,
- 387,
- 390,
- 402,
- 403,
- 413,
- 414,
- 424,
- 427,
- 431,
- 433,
- 451,
- 469,
- 470,
- 480,
- 486,
- 498,
- 499,
- 509,
- 510,
- 520,
- 523,
- 527,
- 529,
- 547,
- 565,
- 574,
- 579,
- 582,
- 594,
- 595,
- 605,
- 606,
- 616,
- 619,
- 623,
- 625,
- 643,
- 661,
- 670,
- 675,
- 678,
- 690,
- 691,
- 701,
- 702,
- 712,
- 715,
- 719,
- 721,
- 739,
- 808,
- 809,
- 810,
- 811,
- -1
+ FRONTIER_MONS_BATTLE_GIRL_2A
};
const u16 gBattleFrontierTrainerMons_Elena[] =
{
- 373,
- 382,
- 390,
- 415,
- 419,
- 424,
- 426,
- 430,
- 431,
- 444,
- 451,
- 454,
- 455,
- 464,
- 469,
- 480,
- 486,
- 511,
- 515,
- 520,
- 522,
- 526,
- 527,
- 540,
- 547,
- 550,
- 551,
- 560,
- 565,
- 574,
- 582,
- 607,
- 611,
- 616,
- 618,
- 622,
- 623,
- 636,
- 643,
- 646,
- 647,
- 656,
- 661,
- 670,
- 678,
- 703,
- 707,
- 712,
- 714,
- 718,
- 719,
- 732,
- 739,
- 742,
- 743,
- 752,
- 808,
- 809,
- 810,
- 811,
- -1
+ FRONTIER_MONS_BLACK_BELT_BATTLE_GIRL_2B
};
const u16 gBattleFrontierTrainerMons_Alana[] =
{
- 373,
- 382,
- 383,
- 386,
- 390,
- 423,
- 424,
- 431,
- 433,
- 450,
- 451,
- 466,
- 469,
- 480,
- 481,
- 482,
- 486,
- 519,
- 520,
- 527,
- 529,
- 546,
- 547,
- 562,
- 565,
- 574,
- 575,
- 578,
- 582,
- 615,
- 616,
- 623,
- 625,
- 642,
- 643,
- 658,
- 661,
- 670,
- 671,
- 674,
- 678,
- 711,
- 712,
- 719,
- 721,
- 738,
- 739,
- 754,
- 808,
- 809,
- 810,
- 811,
- 832,
- 833,
- 834,
- 835,
- -1
+ FRONTIER_MONS_BLACK_BELT_BATTLE_GIRL_2C
};
const u16 gBattleFrontierTrainerMons_Alexas[] =
{
- 382,
- 387,
- 403,
- 423,
- 424,
- 425,
- 431,
- 433,
- 435,
- 450,
- 459,
- 461,
- 465,
- 466,
- 470,
- 480,
- 499,
- 519,
- 520,
- 521,
- 527,
- 529,
- 531,
- 546,
- 555,
- 557,
- 561,
- 562,
- 574,
- 579,
- 595,
- 615,
- 616,
- 617,
- 623,
- 625,
- 627,
- 642,
- 651,
- 653,
- 657,
- 658,
- 670,
- 675,
- 691,
- 711,
- 712,
- 713,
- 719,
- 721,
- 723,
- 738,
- 747,
- 749,
- 753,
- 754,
- 762,
- 763,
- 764,
- 773,
- 774,
- 775,
- 784,
- 785,
- 786,
- 795,
- 796,
- 797,
- 804,
- 805,
- 806,
- 807,
- 808,
- 809,
- 810,
- 811,
- 828,
- 829,
- 830,
- 831,
- 832,
- 833,
- 834,
- 835,
- 836,
- 837,
- 838,
- 839,
- 840,
- 841,
- 860,
- 861,
- 862,
- 863,
- 864,
- 865,
- 866,
- 867,
- 868,
- 869,
- -1
+ FRONTIER_MONS_EXPERT_2A(TYRANITAR)
};
const u16 gBattleFrontierTrainerMons_Weston[] =
{
- 374,
- 377,
- 404,
- 421,
- 422,
- 426,
- 437,
- 439,
- 446,
- 451,
- 453,
- 457,
- 458,
- 472,
- 475,
- 500,
- 517,
- 518,
- 522,
- 533,
- 535,
- 542,
- 547,
- 549,
- 553,
- 554,
- 566,
- 569,
- 596,
- 613,
- 614,
- 618,
- 629,
- 631,
- 638,
- 643,
- 645,
- 649,
- 650,
- 662,
- 665,
- 692,
- 709,
- 710,
- 714,
- 725,
- 727,
- 734,
- 739,
- 741,
- 745,
- 746,
- 762,
- 763,
- 764,
- 766,
- 773,
- 774,
- 775,
- 777,
- 784,
- 785,
- 786,
- 788,
- 795,
- 796,
- 797,
- 799,
- 800,
- 801,
- 802,
- 803,
- 812,
- 813,
- 814,
- 815,
- 816,
- 817,
- 818,
- 819,
- 836,
- 837,
- 838,
- 839,
- 840,
- 841,
- 846,
- 847,
- 848,
- 849,
- 860,
- 861,
- 862,
- 863,
- 864,
- 865,
- 866,
- 867,
- 868,
- 869,
- -1
+ FRONTIER_MONS_EXPERT_2B(LATIOS)
};
const u16 gBattleFrontierTrainerMons_Jasper[] =
{
- 378,
- 388,
- 400,
- 409,
- 410,
- 411,
- 416,
- 429,
- 432,
- 438,
- 447,
- 452,
- 456,
- 460,
- 462,
- 463,
- 471,
- 476,
- 496,
- 505,
- 506,
- 507,
- 512,
- 525,
- 528,
- 534,
- 543,
- 548,
- 552,
- 556,
- 558,
- 559,
- 570,
- 580,
- 592,
- 601,
- 602,
- 603,
- 608,
- 621,
- 624,
- 630,
- 639,
- 644,
- 648,
- 652,
- 654,
- 655,
- 666,
- 676,
- 688,
- 697,
- 698,
- 699,
- 704,
- 717,
- 720,
- 726,
- 735,
- 740,
- 744,
- 748,
- 750,
- 751,
- 762,
- 763,
- 764,
- 773,
- 774,
- 775,
- 784,
- 785,
- 786,
- 795,
- 796,
- 797,
- 820,
- 821,
- 822,
- 823,
- 824,
- 825,
- 826,
- 827,
- 836,
- 837,
- 838,
- 839,
- 840,
- 841,
- 860,
- 861,
- 862,
- 863,
- 864,
- 865,
- 866,
- 867,
- 868,
- 869,
- -1
+ FRONTIER_MONS_EXPERT_2C(TYRANITAR)
};
const u16 gBattleFrontierTrainerMons_Nadia[] =
{
- 382,
- 387,
- 403,
- 423,
- 424,
- 425,
- 431,
- 433,
- 435,
- 450,
- 459,
- 461,
- 465,
- 466,
- 470,
- 480,
- 499,
- 519,
- 520,
- 521,
- 527,
- 529,
- 531,
- 546,
- 555,
- 557,
- 561,
- 562,
- 574,
- 579,
- 595,
- 615,
- 616,
- 617,
- 623,
- 625,
- 627,
- 642,
- 651,
- 653,
- 657,
- 658,
- 670,
- 675,
- 691,
- 711,
- 712,
- 713,
- 719,
- 721,
- 723,
- 738,
- 747,
- 749,
- 753,
- 754,
- 762,
- 763,
- 764,
- 773,
- 774,
- 775,
- 784,
- 785,
- 786,
- 795,
- 796,
- 797,
- 804,
- 805,
- 806,
- 807,
- 808,
- 809,
- 810,
- 811,
- 828,
- 829,
- 830,
- 831,
- 832,
- 833,
- 834,
- 835,
- 836,
- 837,
- 838,
- 839,
- 840,
- 841,
- 850,
- 851,
- 852,
- 853,
- 854,
- 855,
- 856,
- 857,
- 858,
- 859,
- -1
+ FRONTIER_MONS_EXPERT_2A(DRAGONITE)
};
const u16 gBattleFrontierTrainerMons_Miranda[] =
{
- 374,
- 377,
- 404,
- 421,
- 422,
- 426,
- 437,
- 439,
- 446,
- 451,
- 453,
- 457,
- 458,
- 472,
- 475,
- 500,
- 517,
- 518,
- 522,
- 533,
- 535,
- 542,
- 547,
- 549,
- 553,
- 554,
- 566,
- 569,
- 596,
- 613,
- 614,
- 618,
- 629,
- 631,
- 638,
- 643,
- 645,
- 649,
- 650,
- 662,
- 665,
- 692,
- 709,
- 710,
- 714,
- 725,
- 727,
- 734,
- 739,
- 741,
- 745,
- 746,
- 762,
- 763,
- 764,
- 765,
- 773,
- 774,
- 775,
- 776,
- 784,
- 785,
- 786,
- 787,
- 795,
- 796,
- 797,
- 798,
- 800,
- 801,
- 802,
- 803,
- 812,
- 813,
- 814,
- 815,
- 816,
- 817,
- 818,
- 819,
- 836,
- 837,
- 838,
- 839,
- 840,
- 841,
- 842,
- 843,
- 844,
- 845,
- 860,
- 861,
- 862,
- 863,
- 864,
- 865,
- 866,
- 867,
- 868,
- 869,
- -1
+ FRONTIER_MONS_EXPERT_2B(LATIAS)
};
const u16 gBattleFrontierTrainerMons_Emma[] =
{
- 378,
- 388,
- 400,
- 409,
- 410,
- 411,
- 416,
- 429,
- 432,
- 438,
- 447,
- 452,
- 456,
- 460,
- 462,
- 463,
- 471,
- 476,
- 496,
- 505,
- 506,
- 507,
- 512,
- 525,
- 528,
- 534,
- 543,
- 548,
- 552,
- 556,
- 558,
- 559,
- 570,
- 580,
- 592,
- 601,
- 602,
- 603,
- 608,
- 621,
- 624,
- 630,
- 639,
- 644,
- 648,
- 652,
- 654,
- 655,
- 666,
- 676,
- 688,
- 697,
- 698,
- 699,
- 704,
- 717,
- 720,
- 726,
- 735,
- 740,
- 744,
- 748,
- 750,
- 751,
- 762,
- 763,
- 764,
- 773,
- 774,
- 775,
- 784,
- 785,
- 786,
- 795,
- 796,
- 797,
- 820,
- 821,
- 822,
- 823,
- 824,
- 825,
- 826,
- 827,
- 836,
- 837,
- 838,
- 839,
- 840,
- 841,
- 850,
- 851,
- 852,
- 853,
- 854,
- 855,
- 856,
- 857,
- 858,
- 859,
- -1
+ FRONTIER_MONS_EXPERT_2C(DRAGONITE)
};
const u16 gBattleFrontierTrainerMons_Rolando[] =
{
- 185,
- 290,
- 377,
- 380,
- 385,
- 401,
- 404,
- 409,
- 410,
- 428,
- 437,
- 438,
- 439,
- 446,
- 466,
- 475,
- 478,
- 484,
- 497,
- 500,
- 505,
- 506,
- 524,
- 533,
- 534,
- 535,
- 542,
- 562,
- 569,
- 572,
- 577,
- 593,
- 596,
- 601,
- 602,
- 620,
- 629,
- 630,
- 631,
- 638,
- 658,
- 665,
- 668,
- 673,
- 689,
- 692,
- 697,
- 698,
- 716,
- 725,
- 726,
- 727,
- 734,
- 754,
- 756,
- 757,
- 758,
- 766,
- 767,
- 768,
- 769,
- 777,
- 778,
- 779,
- 780,
- 788,
- 789,
- 790,
- 791,
- 799,
- 812,
- 813,
- 814,
- 815,
- 816,
- 817,
- 818,
- 819,
- 832,
- 833,
- 834,
- 835,
- 846,
- 847,
- 848,
- 849,
- 870,
- 871,
- 872,
- 873,
- 874,
- 875,
- -1
+ FRONTIER_MONS_PSYCHIC_2A(LATIOS)
};
const u16 gBattleFrontierTrainerMons_Stanly[] =
{
- 185,
- 290,
- 377,
- 380,
- 385,
- 401,
- 404,
- 409,
- 410,
- 428,
- 437,
- 438,
- 439,
- 446,
- 466,
- 475,
- 478,
- 484,
- 497,
- 500,
- 505,
- 506,
- 524,
- 533,
- 534,
- 535,
- 542,
- 562,
- 569,
- 572,
- 577,
- 593,
- 596,
- 601,
- 602,
- 620,
- 629,
- 630,
- 631,
- 638,
- 658,
- 665,
- 668,
- 673,
- 689,
- 692,
- 697,
- 698,
- 716,
- 725,
- 726,
- 727,
- 734,
- 754,
- 759,
- 760,
- 761,
- 766,
- 770,
- 771,
- 772,
- 777,
- 781,
- 782,
- 783,
- 788,
- 792,
- 793,
- 794,
- 799,
- 812,
- 813,
- 814,
- 815,
- 816,
- 817,
- 818,
- 819,
- 832,
- 833,
- 834,
- 835,
- 846,
- 847,
- 848,
- 849,
- 876,
- 877,
- 878,
- 879,
- 880,
- 881,
- -1
+ FRONTIER_MONS_PSYCHIC_2B(LATIOS)
};
const u16 gBattleFrontierTrainerMons_Dario[] =
{
- 185,
- 290,
- 377,
- 380,
- 385,
- 401,
- 404,
- 409,
- 410,
- 428,
- 437,
- 438,
- 439,
- 446,
- 466,
- 475,
- 478,
- 484,
- 497,
- 500,
- 505,
- 506,
- 524,
- 533,
- 534,
- 535,
- 542,
- 562,
- 569,
- 572,
- 577,
- 593,
- 596,
- 601,
- 602,
- 620,
- 629,
- 630,
- 631,
- 638,
- 658,
- 665,
- 668,
- 673,
- 689,
- 692,
- 697,
- 698,
- 716,
- 725,
- 726,
- 727,
- 734,
- 754,
- 762,
- 763,
- 764,
- 766,
- 773,
- 774,
- 775,
- 777,
- 784,
- 785,
- 786,
- 788,
- 795,
- 796,
- 797,
- 799,
- 812,
- 813,
- 814,
- 815,
- 816,
- 817,
- 818,
- 819,
- 832,
- 833,
- 834,
- 835,
- 836,
- 837,
- 838,
- 839,
- 840,
- 841,
- 846,
- 847,
- 848,
- 849,
- -1
+ FRONTIER_MONS_PSYCHIC_2C(LATIOS)
};
const u16 gBattleFrontierTrainerMons_Karlee[] =
{
- 185,
- 290,
- 377,
- 380,
- 385,
- 401,
- 404,
- 409,
- 410,
- 428,
- 437,
- 438,
- 439,
- 446,
- 466,
- 475,
- 478,
- 484,
- 497,
- 500,
- 505,
- 506,
- 524,
- 533,
- 534,
- 535,
- 542,
- 562,
- 569,
- 572,
- 577,
- 593,
- 596,
- 601,
- 602,
- 620,
- 629,
- 630,
- 631,
- 638,
- 658,
- 665,
- 668,
- 673,
- 689,
- 692,
- 697,
- 698,
- 716,
- 725,
- 726,
- 727,
- 734,
- 754,
- 756,
- 757,
- 758,
- 765,
- 767,
- 768,
- 769,
- 776,
- 778,
- 779,
- 780,
- 787,
- 789,
- 790,
- 791,
- 798,
- 812,
- 813,
- 814,
- 815,
- 816,
- 817,
- 818,
- 819,
- 832,
- 833,
- 834,
- 835,
- 842,
- 843,
- 844,
- 845,
- 870,
- 871,
- 872,
- 873,
- 874,
- 875,
- -1
+ FRONTIER_MONS_PSYCHIC_2A(LATIAS)
};
const u16 gBattleFrontierTrainerMons_Jaylin[] =
{
- 185,
- 290,
- 377,
- 380,
- 385,
- 401,
- 404,
- 409,
- 410,
- 428,
- 437,
- 438,
- 439,
- 446,
- 466,
- 475,
- 478,
- 484,
- 497,
- 500,
- 505,
- 506,
- 524,
- 533,
- 534,
- 535,
- 542,
- 562,
- 569,
- 572,
- 577,
- 593,
- 596,
- 601,
- 602,
- 620,
- 629,
- 630,
- 631,
- 638,
- 658,
- 665,
- 668,
- 673,
- 689,
- 692,
- 697,
- 698,
- 716,
- 725,
- 726,
- 727,
- 734,
- 754,
- 759,
- 760,
- 761,
- 765,
- 770,
- 771,
- 772,
- 776,
- 781,
- 782,
- 783,
- 787,
- 792,
- 793,
- 794,
- 798,
- 812,
- 813,
- 814,
- 815,
- 816,
- 817,
- 818,
- 819,
- 832,
- 833,
- 834,
- 835,
- 842,
- 843,
- 844,
- 845,
- 876,
- 877,
- 878,
- 879,
- 880,
- 881,
- -1
+ FRONTIER_MONS_PSYCHIC_2B(LATIAS)
};
const u16 gBattleFrontierTrainerMons_Ingrid[] =
{
- 185,
- 290,
- 377,
- 380,
- 385,
- 401,
- 404,
- 409,
- 410,
- 428,
- 437,
- 438,
- 439,
- 446,
- 466,
- 475,
- 478,
- 484,
- 497,
- 500,
- 505,
- 506,
- 524,
- 533,
- 534,
- 535,
- 542,
- 562,
- 569,
- 572,
- 577,
- 593,
- 596,
- 601,
- 602,
- 620,
- 629,
- 630,
- 631,
- 638,
- 658,
- 665,
- 668,
- 673,
- 689,
- 692,
- 697,
- 698,
- 716,
- 725,
- 726,
- 727,
- 734,
- 754,
- 762,
- 763,
- 764,
- 765,
- 773,
- 774,
- 775,
- 776,
- 784,
- 785,
- 786,
- 787,
- 795,
- 796,
- 797,
- 798,
- 812,
- 813,
- 814,
- 815,
- 816,
- 817,
- 818,
- 819,
- 832,
- 833,
- 834,
- 835,
- 836,
- 837,
- 838,
- 839,
- 840,
- 841,
- 842,
- 843,
- 844,
- 845,
- -1
+ FRONTIER_MONS_PSYCHIC_2C(LATIAS)
};
const u16 gBattleFrontierTrainerMons_Delilah[] =
{
- 347,
- 352,
- 374,
- 378,
- 398,
- 421,
- 426,
- 447,
- 472,
- 476,
- 494,
- 517,
- 522,
- 543,
- 566,
- 570,
- 590,
- 613,
- 618,
- 639,
- 662,
- 666,
- 686,
- 709,
- 714,
- 735,
- 800,
- 801,
- 802,
- 803,
- -1
+ FRONTIER_MONS_HEX_MANIAC_2A
};
const u16 gBattleFrontierTrainerMons_Carly[] =
{
- 344,
- 374,
- 378,
- 394,
- 395,
- 405,
- 413,
- 414,
- 420,
- 421,
- 434,
- 441,
- 457,
- 472,
- 476,
- 490,
- 491,
- 501,
- 509,
- 510,
- 516,
- 517,
- 530,
- 537,
- 553,
- 566,
- 570,
- 586,
- 587,
- 597,
- 605,
- 606,
- 612,
- 613,
- 626,
- 633,
- 649,
- 662,
- 666,
- 682,
- 683,
- 693,
- 701,
- 702,
- 708,
- 709,
- 722,
- 729,
- 745,
- 800,
- 801,
- 802,
- 803,
- -1
+ FRONTIER_MONS_HEX_MANIAC_2B
};
const u16 gBattleFrontierTrainerMons_Lexie[] =
{
- 344,
- 347,
- 352,
- 394,
- 395,
- 398,
- 405,
- 413,
- 414,
- 420,
- 421,
- 426,
- 434,
- 441,
- 447,
- 457,
- 490,
- 491,
- 494,
- 501,
- 509,
- 510,
- 516,
- 517,
- 522,
- 530,
- 537,
- 543,
- 553,
- 586,
- 587,
- 590,
- 597,
- 605,
- 606,
- 612,
- 613,
- 618,
- 626,
- 633,
- 639,
- 649,
- 682,
- 683,
- 686,
- 693,
- 701,
- 702,
- 708,
- 709,
- 714,
- 722,
- 729,
- 735,
- 745,
- 800,
- 801,
- 802,
- 803,
- -1
+ FRONTIER_MONS_HEX_MANIAC_2C
};
const u16 gBattleFrontierTrainerMons_Miller[] =
{
- 345,
- 376,
- 386,
- 387,
- 397,
- 399,
- 402,
- 403,
- 406,
- 408,
- 411,
- 413,
- 414,
- 425,
- 427,
- 429,
- 433,
- 435,
- 440,
- 441,
- 445,
- 448,
- 449,
- 450,
- 452,
- 454,
- 456,
- 458,
- 459,
- 460,
- 462,
- 465,
- 466,
- 467,
- 470,
- 474,
- 482,
- 493,
- 495,
- 498,
- 499,
- 502,
- 504,
- 507,
- 509,
- 510,
- 521,
- 523,
- 525,
- 529,
- 531,
- 536,
- 537,
- 541,
- 544,
- 545,
- 546,
- 548,
- 550,
- 552,
- 554,
- 555,
- 556,
- 558,
- 561,
- 562,
- 563,
- 850,
- 851,
- 852,
- 853,
- 854,
- 855,
- 856,
- 857,
- 858,
- 859,
- 860,
- 861,
- 862,
- 863,
- 864,
- 865,
- 866,
- 867,
- 868,
- 869,
- -1
+ FRONTIER_MONS_POKEMANIAC_2A
};
const u16 gBattleFrontierTrainerMons_Marv[] =
{
- 345,
- 568,
- 578,
- 579,
- 589,
- 591,
- 594,
- 595,
- 598,
- 600,
- 603,
- 605,
- 606,
- 617,
- 619,
- 621,
- 625,
- 627,
- 632,
- 633,
- 637,
- 640,
- 641,
- 642,
- 644,
- 646,
- 648,
- 650,
- 651,
- 652,
- 654,
- 657,
- 658,
- 659,
- 664,
- 674,
- 675,
- 685,
- 687,
- 690,
- 691,
- 694,
- 696,
- 699,
- 701,
- 702,
- 713,
- 715,
- 717,
- 721,
- 723,
- 728,
- 729,
- 733,
- 736,
- 737,
- 738,
- 740,
- 742,
- 744,
- 746,
- 747,
- 748,
- 750,
- 753,
- 754,
- 755,
- 850,
- 851,
- 852,
- 853,
- 854,
- 855,
- 856,
- 857,
- 858,
- 859,
- 860,
- 861,
- 862,
- 863,
- 864,
- 865,
- 866,
- 867,
- 868,
- 869,
- -1
+ FRONTIER_MONS_POKEMANIAC_2B
};
const u16 gBattleFrontierTrainerMons_Layton[] =
{
- 345,
- 425,
- 433,
- 435,
- 445,
- 450,
- 454,
- 456,
- 458,
- 459,
- 460,
- 465,
- 466,
- 521,
- 529,
- 531,
- 541,
- 546,
- 550,
- 552,
- 554,
- 555,
- 556,
- 561,
- 562,
- 617,
- 625,
- 627,
- 637,
- 642,
- 646,
- 648,
- 650,
- 651,
- 652,
- 657,
- 658,
- 713,
- 721,
- 723,
- 733,
- 738,
- 742,
- 744,
- 746,
- 747,
- 748,
- 753,
- 754,
- 804,
- 805,
- 806,
- 807,
- 820,
- 821,
- 822,
- 823,
- 824,
- 825,
- 826,
- 827,
- 828,
- 829,
- 830,
- 831,
- 832,
- 833,
- 834,
- 835,
- 850,
- 851,
- 852,
- 853,
- 854,
- 855,
- 856,
- 857,
- 858,
- 859,
- 860,
- 861,
- 862,
- 863,
- 864,
- 865,
- 866,
- 867,
- 868,
- 869,
- -1
+ FRONTIER_MONS_POKEMANIAC_2C
};
const u16 gBattleFrontierTrainerMons_Brooks[] =
{
- 660,
- 661,
- 662,
- 663,
- 664,
- 665,
- 666,
- 667,
- 668,
- 669,
- 670,
- 671,
- 672,
- 673,
- 674,
- 675,
- 676,
- 677,
- 678,
- 679,
- 680,
- 681,
- 682,
- 683,
- 684,
- 685,
- 686,
- 687,
- 688,
- 689,
- 690,
- 691,
- 692,
- 693,
- 694,
- 695,
- 696,
- 697,
- 698,
- 699,
- 700,
- 701,
- 702,
- 703,
- 704,
- 705,
- 706,
- 707,
- 708,
- 709,
- 710,
- 711,
- 712,
- 713,
- 714,
- 715,
- 716,
- 717,
- 718,
- 719,
- 720,
- 721,
- 722,
- 723,
- 724,
- 725,
- 726,
- 727,
- 728,
- 729,
- 730,
- 731,
- 732,
- 733,
- 734,
- 735,
- 736,
- 737,
- 738,
- 739,
- 740,
- 741,
- 742,
- 743,
- 744,
- 745,
- 746,
- 747,
- 748,
- 749,
- 750,
- 751,
- 752,
- 753,
- 754,
- 755,
- -1
+ FRONTIER_MONS_GENERAL_A
};
const u16 gBattleFrontierTrainerMons_Gregory[] =
{
- 421,
- 425,
- 431,
- 437,
- 439,
- 456,
- 460,
- 465,
- 466,
- 517,
- 521,
- 527,
- 533,
- 535,
- 552,
- 556,
- 561,
- 562,
- 613,
- 617,
- 623,
- 629,
- 631,
- 648,
- 652,
- 657,
- 658,
- 709,
- 713,
- 719,
- 725,
- 727,
- 744,
- 748,
- 753,
- 754,
- 765,
- 766,
- 776,
- 777,
- 787,
- 788,
- 798,
- 799,
- 800,
- 801,
- 802,
- 803,
- 804,
- 805,
- 806,
- 807,
- 808,
- 809,
- 810,
- 811,
- 812,
- 813,
- 814,
- 815,
- 816,
- 817,
- 818,
- 819,
- 820,
- 821,
- 822,
- 823,
- 824,
- 825,
- 826,
- 827,
- 828,
- 829,
- 830,
- 831,
- 832,
- 833,
- 834,
- 835,
- 850,
- 851,
- 852,
- 853,
- 854,
- 855,
- 856,
- 857,
- 858,
- 859,
- 860,
- 861,
- 862,
- 863,
- 864,
- 865,
- 866,
- 867,
- 868,
- 869,
- -1
+ FRONTIER_MONS_GENTLEMAN_3A
};
const u16 gBattleFrontierTrainerMons_Reese[] =
{
- 756,
- 757,
- 758,
- 759,
- 760,
- 761,
- 762,
- 763,
- 764,
- 765,
- 766,
- 767,
- 768,
- 769,
- 770,
- 771,
- 772,
- 773,
- 774,
- 775,
- 776,
- 777,
- 778,
- 779,
- 780,
- 781,
- 782,
- 783,
- 784,
- 785,
- 786,
- 787,
- 788,
- 789,
- 790,
- 791,
- 792,
- 793,
- 794,
- 795,
- 796,
- 797,
- 798,
- 799,
- 836,
- 837,
- 838,
- 839,
- 840,
- 841,
- 842,
- 843,
- 844,
- 845,
- 846,
- 847,
- 848,
- 849,
- 850,
- 851,
- 852,
- 853,
- 854,
- 855,
- 856,
- 857,
- 858,
- 859,
- 860,
- 861,
- 862,
- 863,
- 864,
- 865,
- 866,
- 867,
- 868,
- 869,
- 870,
- 871,
- 872,
- 873,
- 874,
- 875,
- 876,
- 877,
- 878,
- 879,
- 880,
- 881,
- -1
+ FRONTIER_MONS_GENTLEMAN_3B
};
const u16 gBattleFrontierTrainerMons_Mason[] =
{
- 660,
- 661,
- 662,
- 663,
- 664,
- 665,
- 666,
- 667,
- 668,
- 669,
- 670,
- 671,
- 672,
- 673,
- 674,
- 675,
- 676,
- 677,
- 678,
- 679,
- 680,
- 681,
- 682,
- 683,
- 684,
- 685,
- 686,
- 687,
- 688,
- 689,
- 690,
- 691,
- 692,
- 693,
- 694,
- 695,
- 696,
- 697,
- 698,
- 699,
- 700,
- 701,
- 702,
- 703,
- 704,
- 705,
- 706,
- 707,
- 708,
- 709,
- 710,
- 711,
- 712,
- 713,
- 714,
- 715,
- 716,
- 717,
- 718,
- 719,
- 720,
- 721,
- 722,
- 723,
- 724,
- 725,
- 726,
- 727,
- 728,
- 729,
- 730,
- 731,
- 732,
- 733,
- 734,
- 735,
- 736,
- 737,
- 738,
- 739,
- 740,
- 741,
- 742,
- 743,
- 744,
- 745,
- 746,
- 747,
- 748,
- 749,
- 750,
- 751,
- 752,
- 753,
- 754,
- 755,
- -1
+ FRONTIER_MONS_GENERAL_A
};
const u16 gBattleFrontierTrainerMons_Toby[] =
{
- 564,
- 565,
- 566,
- 567,
- 568,
- 569,
- 570,
- 571,
- 572,
- 573,
- 574,
- 575,
- 576,
- 577,
- 578,
- 579,
- 580,
- 581,
- 582,
- 583,
- 584,
- 585,
- 586,
- 587,
- 588,
- 589,
- 590,
- 591,
- 592,
- 593,
- 594,
- 595,
- 596,
- 597,
- 598,
- 599,
- 600,
- 601,
- 602,
- 603,
- 604,
- 605,
- 606,
- 607,
- 608,
- 609,
- 610,
- 611,
- 612,
- 613,
- 614,
- 615,
- 616,
- 617,
- 618,
- 619,
- 620,
- 621,
- 622,
- 623,
- 624,
- 625,
- 626,
- 627,
- 628,
- 629,
- 630,
- 631,
- 632,
- 633,
- 634,
- 635,
- 636,
- 637,
- 638,
- 639,
- 640,
- 641,
- 642,
- 643,
- 644,
- 645,
- 646,
- 647,
- 648,
- 649,
- 650,
- 651,
- 652,
- 653,
- 654,
- 655,
- 656,
- 657,
- 658,
- 659,
- -1
+ FRONTIER_MONS_GENERAL_B
};
const u16 gBattleFrontierTrainerMons_Dorothy[] =
{
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500,
- 501,
- 502,
- 503,
- 504,
- 505,
- 506,
- 507,
- 508,
- 509,
- 510,
- 511,
- 512,
- 513,
- 514,
- 515,
- 516,
- 517,
- 518,
- 519,
- 520,
- 521,
- 522,
- 523,
- 524,
- 525,
- 526,
- 527,
- 528,
- 529,
- 530,
- 531,
- 532,
- 533,
- 534,
- 535,
- 536,
- 537,
- 538,
- 539,
- 540,
- 541,
- 542,
- 543,
- 544,
- 545,
- 546,
- 547,
- 548,
- 549,
- 550,
- 551,
- 552,
- 553,
- 554,
- 555,
- 556,
- 557,
- 558,
- 559,
- 560,
- 561,
- 562,
- 563,
- -1
+ FRONTIER_MONS_GENERAL_C
};
const u16 gBattleFrontierTrainerMons_Piper[] =
{
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- -1
+ FRONTIER_MONS_GENERAL_D
};
const u16 gBattleFrontierTrainerMons_Finn[] =
{
- 317,
- 371,
- 373,
- 377,
- 390,
- 392,
- 399,
- 431,
- 452,
- 456,
- 469,
- 475,
- 486,
- 488,
- 495,
- 527,
- 548,
- 552,
- 565,
- 569,
- 573,
- 576,
- 580,
- 582,
- 584,
- 591,
- 592,
- 601,
- 602,
- 610,
- 621,
- 623,
- 626,
- 631,
- 634,
- 640,
- 641,
- 644,
- 648,
- 650,
- 651,
- 653,
- 655,
- 661,
- 665,
- 669,
- 672,
- 676,
- 678,
- 680,
- 687,
- 688,
- 697,
- 698,
- 706,
- 717,
- 719,
- 722,
- 727,
- 730,
- 736,
- 737,
- 740,
- 744,
- 746,
- 747,
- 749,
- 751,
- 808,
- 809,
- 810,
- 811,
- 816,
- 817,
- 818,
- 819,
- 820,
- 821,
- 822,
- 823,
- -1
+ FRONTIER_MONS_SWIMMING_TRIATHLETE_M_3
};
const u16 gBattleFrontierTrainerMons_Samir[] =
{
- 317,
- 371,
- 373,
- 377,
- 390,
- 392,
- 399,
- 431,
- 452,
- 456,
- 469,
- 475,
- 486,
- 488,
- 495,
- 527,
- 548,
- 552,
- 565,
- 569,
- 573,
- 576,
- 580,
- 582,
- 584,
- 591,
- 592,
- 601,
- 602,
- 610,
- 621,
- 623,
- 626,
- 631,
- 634,
- 640,
- 641,
- 644,
- 648,
- 650,
- 651,
- 653,
- 655,
- 661,
- 665,
- 669,
- 672,
- 676,
- 678,
- 680,
- 687,
- 688,
- 697,
- 698,
- 706,
- 717,
- 719,
- 722,
- 727,
- 730,
- 736,
- 737,
- 740,
- 744,
- 746,
- 747,
- 749,
- 751,
- 808,
- 809,
- 810,
- 811,
- 816,
- 817,
- 818,
- 819,
- 820,
- 821,
- 822,
- 823,
- -1
+ FRONTIER_MONS_SWIMMING_TRIATHLETE_M_3
};
const u16 gBattleFrontierTrainerMons_Fiona[] =
{
- 317,
- 371,
- 373,
- 377,
- 381,
- 384,
- 388,
- 390,
- 392,
- 399,
- 400,
- 409,
- 410,
- 418,
- 429,
- 431,
- 434,
- 439,
- 442,
- 448,
- 449,
- 452,
- 456,
- 458,
- 459,
- 461,
- 463,
- 469,
- 471,
- 475,
- 479,
- 483,
- 486,
- 488,
- 495,
- 496,
- 505,
- 506,
- 514,
- 525,
- 527,
- 530,
- 535,
- 538,
- 544,
- 545,
- 548,
- 552,
- 554,
- 555,
- 557,
- 559,
- 565,
- 569,
- 582,
- 584,
- 591,
- 623,
- 644,
- 648,
- 661,
- 665,
- 678,
- 680,
- 687,
- 719,
- 740,
- 744,
- 808,
- 809,
- 810,
- 811,
- 816,
- 817,
- 818,
- 819,
- 820,
- 821,
- 822,
- 823,
- -1
+ FRONTIER_MONS_SWIMMING_TRIATHLETE_F_3
};
const u16 gBattleFrontierTrainerMons_Gloria[] =
{
- 317,
- 371,
- 373,
- 377,
- 381,
- 384,
- 388,
- 390,
- 392,
- 399,
- 400,
- 409,
- 410,
- 418,
- 429,
- 431,
- 434,
- 439,
- 442,
- 448,
- 449,
- 452,
- 456,
- 458,
- 459,
- 461,
- 463,
- 469,
- 471,
- 475,
- 479,
- 483,
- 486,
- 488,
- 495,
- 496,
- 505,
- 506,
- 514,
- 525,
- 527,
- 530,
- 535,
- 538,
- 544,
- 545,
- 548,
- 552,
- 554,
- 555,
- 557,
- 559,
- 565,
- 569,
- 582,
- 584,
- 591,
- 623,
- 644,
- 648,
- 661,
- 665,
- 678,
- 680,
- 687,
- 719,
- 740,
- 744,
- 808,
- 809,
- 810,
- 811,
- 816,
- 817,
- 818,
- 819,
- 820,
- 821,
- 822,
- 823,
- -1
+ FRONTIER_MONS_SWIMMING_TRIATHLETE_F_3
};
const u16 gBattleFrontierTrainerMons_Nico[] =
{
- 660,
- 661,
- 662,
- 663,
- 664,
- 665,
- 666,
- 667,
- 668,
- 669,
- 670,
- 671,
- 672,
- 673,
- 674,
- 675,
- 676,
- 677,
- 678,
- 679,
- 680,
- 681,
- 682,
- 683,
- 684,
- 685,
- 686,
- 687,
- 688,
- 689,
- 690,
- 691,
- 692,
- 693,
- 694,
- 695,
- 696,
- 697,
- 698,
- 699,
- 700,
- 701,
- 702,
- 703,
- 704,
- 705,
- 706,
- 707,
- 708,
- 709,
- 710,
- 711,
- 712,
- 713,
- 714,
- 715,
- 716,
- 717,
- 718,
- 719,
- 720,
- 721,
- 722,
- 723,
- 724,
- 725,
- 726,
- 727,
- 728,
- 729,
- 730,
- 731,
- 732,
- 733,
- 734,
- 735,
- 736,
- 737,
- 738,
- 739,
- 740,
- 741,
- 742,
- 743,
- 744,
- 745,
- 746,
- 747,
- 748,
- 749,
- 750,
- 751,
- 752,
- 753,
- 754,
- 755,
- -1
+ FRONTIER_MONS_GENERAL_A
};
const u16 gBattleFrontierTrainerMons_Jeremy[] =
{
- 564,
- 565,
- 566,
- 567,
- 568,
- 569,
- 570,
- 571,
- 572,
- 573,
- 574,
- 575,
- 576,
- 577,
- 578,
- 579,
- 580,
- 581,
- 582,
- 583,
- 584,
- 585,
- 586,
- 587,
- 588,
- 589,
- 590,
- 591,
- 592,
- 593,
- 594,
- 595,
- 596,
- 597,
- 598,
- 599,
- 600,
- 601,
- 602,
- 603,
- 604,
- 605,
- 606,
- 607,
- 608,
- 609,
- 610,
- 611,
- 612,
- 613,
- 614,
- 615,
- 616,
- 617,
- 618,
- 619,
- 620,
- 621,
- 622,
- 623,
- 624,
- 625,
- 626,
- 627,
- 628,
- 629,
- 630,
- 631,
- 632,
- 633,
- 634,
- 635,
- 636,
- 637,
- 638,
- 639,
- 640,
- 641,
- 642,
- 643,
- 644,
- 645,
- 646,
- 647,
- 648,
- 649,
- 650,
- 651,
- 652,
- 653,
- 654,
- 655,
- 656,
- 657,
- 658,
- 659,
- -1
+ FRONTIER_MONS_GENERAL_B
};
const u16 gBattleFrontierTrainerMons_Caitlin[] =
{
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500,
- 501,
- 502,
- 503,
- 504,
- 505,
- 506,
- 507,
- 508,
- 509,
- 510,
- 511,
- 512,
- 513,
- 514,
- 515,
- 516,
- 517,
- 518,
- 519,
- 520,
- 521,
- 522,
- 523,
- 524,
- 525,
- 526,
- 527,
- 528,
- 529,
- 530,
- 531,
- 532,
- 533,
- 534,
- 535,
- 536,
- 537,
- 538,
- 539,
- 540,
- 541,
- 542,
- 543,
- 544,
- 545,
- 546,
- 547,
- 548,
- 549,
- 550,
- 551,
- 552,
- 553,
- 554,
- 555,
- 556,
- 557,
- 558,
- 559,
- 560,
- 561,
- 562,
- 563,
- -1
+ FRONTIER_MONS_GENERAL_C
};
const u16 gBattleFrontierTrainerMons_Reena[] =
{
- 372,
- 373,
- 374,
- 375,
- 376,
- 377,
- 378,
- 379,
- 380,
- 381,
- 382,
- 383,
- 384,
- 385,
- 386,
- 387,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394,
- 395,
- 396,
- 397,
- 398,
- 399,
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- -1
+ FRONTIER_MONS_GENERAL_D
};
const u16 gBattleFrontierTrainerMons_Avery[] =
{
- 21,
- 238,
- 282,
- 303,
- 331,
- 343,
- 368,
- 369,
- 383,
- 417,
- 423,
- 424,
- 432,
- 481,
- 513,
- 519,
- 520,
- 528,
- 575,
- 609,
- 615,
- 616,
- 624,
- 671,
- 705,
- 711,
- 712,
- 720,
- -1
+ FRONTIER_MONS_BUG_MANIAC_4
};
const u16 gBattleFrontierTrainerMons_Liam[] =
{
- 21,
- 238,
- 282,
- 303,
- 331,
- 343,
- 368,
- 369,
- 383,
- 417,
- 423,
- 424,
- 432,
- 481,
- 513,
- 519,
- 520,
- 528,
- 575,
- 609,
- 615,
- 616,
- 624,
- 671,
- 705,
- 711,
- 712,
- 720,
- -1
+ FRONTIER_MONS_BUG_MANIAC_4
};
const u16 gBattleFrontierTrainerMons_Theo[] =
{
- 333,
- 347,
- 350,
- 354,
- 358,
- 361,
- 362,
- 363,
- 364,
- 371,
- 381,
- 384,
- 429,
- 434,
- 439,
- 479,
- 483,
- 525,
- 530,
- 535,
- 573,
- 576,
- 621,
- 626,
- 631,
- 669,
- 672,
- 717,
- 722,
- 727,
- 816,
- 817,
- 818,
- 819,
- -1
+ FRONTIER_MONS_FISHERMAN_3
};
const u16 gBattleFrontierTrainerMons_Bailey[] =
{
- 333,
- 347,
- 350,
- 354,
- 358,
- 361,
- 362,
- 363,
- 364,
- 371,
- 381,
- 384,
- 429,
- 434,
- 439,
- 479,
- 483,
- 525,
- 530,
- 535,
- 573,
- 576,
- 621,
- 626,
- 631,
- 669,
- 672,
- 717,
- 722,
- 727,
- 816,
- 817,
- 818,
- 819,
- -1
+ FRONTIER_MONS_FISHERMAN_3
};
const u16 gBattleFrontierTrainerMons_Hugo[] =
{
- 383,
- 386,
- 402,
- 403,
- 416,
- 417,
- 423,
- 432,
- 433,
- 435,
- 450,
- 466,
- 481,
- 482,
- 498,
- 499,
- 512,
- 513,
- 519,
- 528,
- 529,
- 531,
- 546,
- 562,
- 575,
- 578,
- 594,
- 595,
- 608,
- 609,
- 615,
- 624,
- 625,
- 627,
- 642,
- 658,
- 671,
- 674,
- 690,
- 691,
- 704,
- 705,
- 711,
- 720,
- 721,
- 723,
- 738,
- 754,
- 762,
- 763,
- 764,
- 773,
- 774,
- 775,
- 784,
- 785,
- 786,
- 795,
- 796,
- 797,
- 832,
- 833,
- 834,
- 835,
- 836,
- 837,
- 838,
- 839,
- 840,
- 841,
- -1
+ FRONTIER_MONS_RUIN_MANIAC_4
};
const u16 gBattleFrontierTrainerMons_Bryce[] =
{
- 383,
- 386,
- 402,
- 403,
- 416,
- 417,
- 423,
- 432,
- 433,
- 435,
- 450,
- 466,
- 481,
- 482,
- 498,
- 499,
- 512,
- 513,
- 519,
- 528,
- 529,
- 531,
- 546,
- 562,
- 575,
- 578,
- 594,
- 595,
- 608,
- 609,
- 615,
- 624,
- 625,
- 627,
- 642,
- 658,
- 671,
- 674,
- 690,
- 691,
- 704,
- 705,
- 711,
- 720,
- 721,
- 723,
- 738,
- 754,
- 762,
- 763,
- 764,
- 773,
- 774,
- 775,
- 784,
- 785,
- 786,
- 795,
- 796,
- 797,
- 832,
- 833,
- 834,
- 835,
- 836,
- 837,
- 838,
- 839,
- 840,
- 841,
- -1
+ FRONTIER_MONS_RUIN_MANIAC_4
};
const u16 gBattleFrontierTrainerMons_Gideon[] =
{
- 441,
- 445,
- 448,
- 449,
- 451,
- 453,
- 454,
- 455,
- 458,
- 537,
- 541,
- 544,
- 545,
- 547,
- 549,
- 550,
- 551,
- 554,
- 633,
- 637,
- 640,
- 641,
- 643,
- 645,
- 646,
- 647,
- 650,
- 729,
- 733,
- 736,
- 737,
- 739,
- 741,
- 742,
- 743,
- 746,
- -1
+ FRONTIER_MONS_COLLECTOR_3
};
const u16 gBattleFrontierTrainerMons_Triston[] =
{
- 441,
- 445,
- 448,
- 449,
- 451,
- 453,
- 454,
- 455,
- 458,
- 537,
- 541,
- 544,
- 545,
- 547,
- 549,
- 550,
- 551,
- 554,
- 633,
- 637,
- 640,
- 641,
- 643,
- 645,
- 646,
- 647,
- 650,
- 729,
- 733,
- 736,
- 737,
- 739,
- 741,
- 742,
- 743,
- 746,
- -1
+ FRONTIER_MONS_COLLECTOR_3
};
const u16 gBattleFrontierTrainerMons_Charles[] =
{
- 352,
- 381,
- 391,
- 393,
- 396,
- 398,
- 407,
- 422,
- 426,
- 443,
- 447,
- 479,
- 487,
- 489,
- 492,
- 494,
- 503,
- 518,
- 522,
- 539,
- 543,
- 573,
- 583,
- 585,
- 588,
- 590,
- 599,
- 614,
- 618,
- 635,
- 639,
- 669,
- 679,
- 681,
- 684,
- 686,
- 695,
- 710,
- 714,
- 731,
- 735,
- 756,
- 757,
- 758,
- 767,
- 768,
- 769,
- 778,
- 779,
- 780,
- 789,
- 790,
- 791,
- 870,
- 871,
- 872,
- 873,
- 874,
- 875,
- -1
+ FRONTIER_MONS_GUITARIST_3A
};
const u16 gBattleFrontierTrainerMons_Raymond[] =
{
- 374,
- 376,
- 381,
- 404,
- 407,
- 422,
- 439,
- 443,
- 459,
- 472,
- 500,
- 506,
- 507,
- 518,
- 532,
- 546,
- 566,
- 585,
- 588,
- 628,
- 635,
- 679,
- 681,
- 684,
- 710,
- 731,
- 785,
- 795,
- 796,
- 797,
- 817,
- 842,
- 843,
- 846,
- 847,
- -1
+ FRONTIER_MONS_GUITARIST_3B
};
const u16 gBattleFrontierTrainerMons_Dirk[] =
{
- 355,
- 375,
- 379,
- 385,
- 386,
- 412,
- 435,
- 440,
- 454,
- 457,
- 459,
- 465,
- 473,
- 477,
- 482,
- 484,
- 508,
- 531,
- 536,
- 550,
- 553,
- 555,
- 561,
- 567,
- 571,
- 577,
- 578,
- 604,
- 627,
- 632,
- 646,
- 649,
- 651,
- 657,
- 663,
- 667,
- 673,
- 674,
- 700,
- 723,
- 728,
- 742,
- 745,
- 747,
- 753,
- 756,
- 757,
- 758,
- 767,
- 768,
- 769,
- 778,
- 779,
- 780,
- 789,
- 790,
- 791,
- 828,
- 829,
- 830,
- 831,
- -1
+ FRONTIER_MONS_BIRD_KEEPER_3
};
const u16 gBattleFrontierTrainerMons_Harold[] =
{
- 355,
- 375,
- 379,
- 385,
- 386,
- 412,
- 435,
- 440,
- 454,
- 457,
- 459,
- 465,
- 473,
- 477,
- 482,
- 484,
- 508,
- 531,
- 536,
- 550,
- 553,
- 555,
- 561,
- 567,
- 571,
- 577,
- 578,
- 604,
- 627,
- 632,
- 646,
- 649,
- 651,
- 657,
- 663,
- 667,
- 673,
- 674,
- 700,
- 723,
- 728,
- 742,
- 745,
- 747,
- 753,
- 756,
- 757,
- 758,
- 767,
- 768,
- 769,
- 778,
- 779,
- 780,
- 789,
- 790,
- 791,
- 828,
- 829,
- 830,
- 831,
- -1
+ FRONTIER_MONS_BIRD_KEEPER_3
};
const u16 gBattleFrontierTrainerMons_Omar[] =
{
- 373,
- 388,
- 390,
- 392,
- 400,
- 409,
- 410,
- 418,
- 431,
- 442,
- 448,
- 449,
- 452,
- 456,
- 458,
- 459,
- 461,
- 463,
- 469,
- 471,
- 486,
- 488,
- 496,
- 505,
- 506,
- 514,
- 527,
- 538,
- 544,
- 545,
- 548,
- 552,
- 554,
- 555,
- 557,
- 559,
- 565,
- 580,
- 582,
- 584,
- 592,
- 601,
- 602,
- 610,
- 623,
- 634,
- 640,
- 641,
- 644,
- 648,
- 650,
- 651,
- 653,
- 655,
- 661,
- 676,
- 678,
- 680,
- 688,
- 697,
- 698,
- 706,
- 719,
- 730,
- 736,
- 737,
- 740,
- 744,
- 746,
- 747,
- 749,
- 751,
- 808,
- 809,
- 810,
- 811,
- 820,
- 821,
- 822,
- 823,
- -1
+ FRONTIER_MONS_SAILOR_3
};
const u16 gBattleFrontierTrainerMons_Peter[] =
{
- 373,
- 388,
- 390,
- 392,
- 400,
- 409,
- 410,
- 418,
- 431,
- 442,
- 448,
- 449,
- 452,
- 456,
- 458,
- 459,
- 461,
- 463,
- 469,
- 471,
- 486,
- 488,
- 496,
- 505,
- 506,
- 514,
- 527,
- 538,
- 544,
- 545,
- 548,
- 552,
- 554,
- 555,
- 557,
- 559,
- 565,
- 580,
- 582,
- 584,
- 592,
- 601,
- 602,
- 610,
- 623,
- 634,
- 640,
- 641,
- 644,
- 648,
- 650,
- 651,
- 653,
- 655,
- 661,
- 676,
- 678,
- 680,
- 688,
- 697,
- 698,
- 706,
- 719,
- 730,
- 736,
- 737,
- 740,
- 744,
- 746,
- 747,
- 749,
- 751,
- 808,
- 809,
- 810,
- 811,
- 820,
- 821,
- 822,
- 823,
- -1
+ FRONTIER_MONS_SAILOR_3
};
const u16 gBattleFrontierTrainerMons_Dev[] =
{
- 372,
- 387,
- 402,
- 403,
- 413,
- 414,
- 416,
- 417,
- 427,
- 428,
- 432,
- 433,
- 435,
- 440,
- 450,
- 466,
- 468,
- 470,
- 498,
- 499,
- 509,
- 510,
- 512,
- 513,
- 523,
- 524,
- 528,
- 529,
- 531,
- 536,
- 546,
- 562,
- 564,
- 579,
- 594,
- 595,
- 605,
- 606,
- 608,
- 609,
- 619,
- 620,
- 624,
- 625,
- 627,
- 632,
- 642,
- 658,
- 660,
- 675,
- 690,
- 691,
- 701,
- 702,
- 704,
- 705,
- 715,
- 716,
- 720,
- 721,
- 723,
- 728,
- 738,
- 754,
- 832,
- 833,
- 834,
- 835,
- 860,
- 861,
- 862,
- 863,
- 864,
- 865,
- 866,
- 867,
- 868,
- 869,
- -1
+ FRONTIER_MONS_HIKER_3
};
const u16 gBattleFrontierTrainerMons_Corey[] =
{
- 372,
- 387,
- 402,
- 403,
- 413,
- 414,
- 416,
- 417,
- 427,
- 428,
- 432,
- 433,
- 435,
- 440,
- 450,
- 466,
- 468,
- 470,
- 498,
- 499,
- 509,
- 510,
- 512,
- 513,
- 523,
- 524,
- 528,
- 529,
- 531,
- 536,
- 546,
- 562,
- 564,
- 579,
- 594,
- 595,
- 605,
- 606,
- 608,
- 609,
- 619,
- 620,
- 624,
- 625,
- 627,
- 632,
- 642,
- 658,
- 660,
- 675,
- 690,
- 691,
- 701,
- 702,
- 704,
- 705,
- 715,
- 716,
- 720,
- 721,
- 723,
- 728,
- 738,
- 754,
- 832,
- 833,
- 834,
- 835,
- 860,
- 861,
- 862,
- 863,
- 864,
- 865,
- 866,
- 867,
- 868,
- 869,
- -1
+ FRONTIER_MONS_HIKER_3
};
const u16 gBattleFrontierTrainerMons_Andre[] =
{
- 374,
- 378,
- 415,
- 419,
- 421,
- 426,
- 430,
- 444,
- 451,
- 454,
- 455,
- 464,
- 472,
- 476,
- 511,
- 515,
- 517,
- 522,
- 526,
- 540,
- 547,
- 550,
- 551,
- 560,
- 566,
- 570,
- 607,
- 611,
- 613,
- 618,
- 622,
- 636,
- 643,
- 646,
- 647,
- 656,
- 662,
- 666,
- 703,
- 707,
- 709,
- 714,
- 718,
- 732,
- 739,
- 742,
- 743,
- 752,
- 800,
- 801,
- 802,
- 803,
- 850,
- 851,
- 852,
- 853,
- 854,
- 855,
- 856,
- 857,
- 858,
- 859,
- -1
+ FRONTIER_MONS_KINDLER_3
};
const u16 gBattleFrontierTrainerMons_Ferris[] =
{
- 374,
- 378,
- 415,
- 419,
- 421,
- 426,
- 430,
- 444,
- 451,
- 454,
- 455,
- 464,
- 472,
- 476,
- 511,
- 515,
- 517,
- 522,
- 526,
- 540,
- 547,
- 550,
- 551,
- 560,
- 566,
- 570,
- 607,
- 611,
- 613,
- 618,
- 622,
- 636,
- 643,
- 646,
- 647,
- 656,
- 662,
- 666,
- 703,
- 707,
- 709,
- 714,
- 718,
- 732,
- 739,
- 742,
- 743,
- 752,
- 800,
- 801,
- 802,
- 803,
- 850,
- 851,
- 852,
- 853,
- 854,
- 855,
- 856,
- 857,
- 858,
- 859,
- -1
+ FRONTIER_MONS_KINDLER_3
};
const u16 gBattleFrontierTrainerMons_Alivia[] =
{
- 399,
- 400,
- 409,
- 422,
- 438,
- 441,
- 445,
- 448,
- 449,
- 451,
- 452,
- 454,
- 455,
- 489,
- 492,
- 493,
- 503,
- 526,
- 532,
- 535,
- 536,
- 560,
- 573,
- 583,
- 590,
- 592,
- 608,
- 611,
- 620,
- 651,
- 682,
- 688,
- 714,
- 729,
- 732,
- -1
+ FRONTIER_MONS_PARASOL_LADY_3
};
const u16 gBattleFrontierTrainerMons_Paige[] =
{
- 399,
- 400,
- 409,
- 422,
- 438,
- 441,
- 445,
- 448,
- 449,
- 451,
- 452,
- 454,
- 455,
- 489,
- 492,
- 493,
- 503,
- 526,
- 532,
- 535,
- 536,
- 560,
- 573,
- 583,
- 590,
- 592,
- 608,
- 611,
- 620,
- 651,
- 682,
- 688,
- 714,
- 729,
- 732,
- -1
+ FRONTIER_MONS_PARASOL_LADY_3
};
const u16 gBattleFrontierTrainerMons_Anya[] =
{
- 442,
- 443,
- 444,
- 446,
- 447,
- 538,
- 539,
- 540,
- 542,
- 543,
- 634,
- 635,
- 636,
- 638,
- 639,
- 730,
- 731,
- 732,
- 734,
- 735,
- -1
+ FRONTIER_MONS_EEVEELUTIONS
};
const u16 gBattleFrontierTrainerMons_Dawn[] =
{
- 377,
- 381,
- 410,
- 421,
- 422,
- 443,
- 456,
- 460,
- 461,
- 471,
- 472,
- 473,
- 484,
- 491,
- 502,
- 503,
- 507,
- 508,
- 515,
- 520,
- 540,
- 549,
- 569,
- 574,
- 583,
- 586,
- 601,
- 622,
- 624,
- 639,
- 644,
- 655,
- 734,
- 804,
- 810,
- 815,
- 823,
- 831,
- 843,
- -1
+ FRONTIER_MONS_BEAUTY_2
};
const u16 gBattleFrontierTrainerMons_Abby[] =
{
- 185,
- 290,
- 313,
- 334,
- 348,
- 359,
- 360,
- 377,
- 380,
- 382,
- 385,
- 394,
- 395,
- 398,
- 400,
- 401,
- 404,
- 409,
- 410,
- 416,
- 437,
- 438,
- 439,
- 441,
- 445,
- 446,
- 453,
- 475,
- 478,
- 480,
- 484,
- 490,
- 491,
- 494,
- 496,
- 497,
- 500,
- 505,
- 506,
- 512,
- 533,
- 534,
- 535,
- 537,
- 541,
- 542,
- 549,
- 569,
- 572,
- 574,
- 577,
- 586,
- 587,
- 590,
- 592,
- 593,
- 596,
- 601,
- 602,
- 608,
- 629,
- 630,
- 631,
- 633,
- 637,
- 638,
- 645,
- 665,
- 668,
- 670,
- 673,
- 682,
- 683,
- 686,
- 688,
- 689,
- 692,
- 697,
- 698,
- 704,
- 725,
- 726,
- 727,
- 729,
- 733,
- 734,
- 741,
- 812,
- 813,
- 814,
- 815,
- 816,
- 817,
- 818,
- 819,
- -1
+ FRONTIER_MONS_AROMA_LADY_3
};
const u16 gBattleFrontierTrainerMons_Gretel[] =
{
- 185,
- 290,
- 313,
- 334,
- 348,
- 359,
- 360,
- 377,
- 380,
- 382,
- 385,
- 394,
- 395,
- 398,
- 400,
- 401,
- 404,
- 409,
- 410,
- 416,
- 437,
- 438,
- 439,
- 441,
- 445,
- 446,
- 453,
- 475,
- 478,
- 480,
- 484,
- 490,
- 491,
- 494,
- 496,
- 497,
- 500,
- 505,
- 506,
- 512,
- 533,
- 534,
- 535,
- 537,
- 541,
- 542,
- 549,
- 569,
- 572,
- 574,
- 577,
- 586,
- 587,
- 590,
- 592,
- 593,
- 596,
- 601,
- 602,
- 608,
- 629,
- 630,
- 631,
- 633,
- 637,
- 638,
- 645,
- 665,
- 668,
- 670,
- 673,
- 682,
- 683,
- 686,
- 688,
- 689,
- 692,
- 697,
- 698,
- 704,
- 725,
- 726,
- 727,
- 729,
- 733,
- 734,
- 741,
- 812,
- 813,
- 814,
- 815,
- 816,
- 817,
- 818,
- 819,
- -1
+ FRONTIER_MONS_AROMA_LADY_3
};
diff --git a/src/data/battle_frontier/battle_frontier_trainers.h b/src/data/battle_frontier/battle_frontier_trainers.h
index 7977852b2..bbd88d76f 100644
--- a/src/data/battle_frontier/battle_frontier_trainers.h
+++ b/src/data/battle_frontier/battle_frontier_trainers.h
@@ -1,2403 +1,2403 @@
-const struct BattleFrontierTrainer gBattleFrontierTrainers[] =
+const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COUNT] =
{
- [0] = {
+ [FRONTIER_TRAINER_BRADY] = {
.facilityClass = FACILITY_CLASS_YOUNGSTER,
.trainerName = _("BRADY"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_NEVER, EC_WORD_GOING, EC_WORD_TO, EC_WORD_LOSE, EC_WORD_EXCL},
.speechWin = {EC_WORD_I_AM, EC_WORD_STRONG, EC_WORD_AREN_T, EC_WORD_I, EC_WORD_QUES, 0xFFFF},
.speechLose = {EC_WORD_WHAT, EC_WORD_QUES, 0xFFFF, EC_WORD_BUT, EC_WORD_HOW, EC_WORD_QUES},
- .monSets = gBattleFrontierTrainerMons_Brady
+ .monSet = gBattleFrontierTrainerMons_Brady
},
- [1] = {
+ [FRONTIER_TRAINER_CONNER] = {
.facilityClass = FACILITY_CLASS_YOUNGSTER,
.trainerName = _("CONNER"),
.speechBefore = {EC_WORD_LOSING, EC_WORD_DOESN_T, EC_WORD_BUG, EC_WORD_ME, 0xFFFF, 0xFFFF},
.speechWin = {EC_WORD_A, EC_WORD_WIN, EC_WORD_IS, EC_WORD_JUST, EC_WORD_AWESOME, 0xFFFF},
.speechLose = {EC_WORD_DARN, EC_WORD_ELLIPSIS, EC_WORD_LOSING, EC_WORD_DOES, EC_WORD_BUG, EC_WORD_ME},
- .monSets = gBattleFrontierTrainerMons_Conner
+ .monSet = gBattleFrontierTrainerMons_Conner
},
- [2] = {
+ [FRONTIER_TRAINER_BRADLEY] = {
.facilityClass = FACILITY_CLASS_YOUNGSTER,
.trainerName = _("BRADLEY"),
.speechBefore = {EC_WORD_HEY_THERE, EC_WORD_EXCL, EC_WORD_YOU_RE, EC_WORD_MY, EC_WORD_OPPONENT, EC_WORD_TODAY},
.speechWin = {EC_WORD_HAHAHA, EC_WORD_EXCL, 0xFFFF, EC_WORD_SEE_YA, EC_WORD_LATER, EC_WORD_EXCL},
.speechLose = {EC_WORD_TOMORROW, EC_WORD_IS, EC_WORD_WHEN, EC_WORD_WE, EC_WORD_REALLY, EC_WORD_BATTLE},
- .monSets = gBattleFrontierTrainerMons_Bradley
+ .monSet = gBattleFrontierTrainerMons_Bradley
},
- [3] = {
+ [FRONTIER_TRAINER_CYBIL] = {
.facilityClass = FACILITY_CLASS_LASS,
.trainerName = _("CYBIL"),
.speechBefore = {EC_WORD_YOU_RE, EC_WORD_REALLY, EC_WORD_NOT_VERY, EC_WORD_SCARY, EC_WORD_AT, EC_WORD_ALL},
.speechWin = {EC_WORD_IT_S, EC_WORD_SAD, EC_WORD_TO, EC_WORD_SEE, EC_WORD_YOU, EC_MOVE2(STRUGGLE)},
.speechLose = {EC_WORD_THIS, EC_WORD_CAN_T, EC_WORD_BE, EC_WORD_HAPPENING, EC_WORD_TO_ME, EC_WORD_EXCL},
- .monSets = gBattleFrontierTrainerMons_Cybil
+ .monSet = gBattleFrontierTrainerMons_Cybil
},
- [4] = {
+ [FRONTIER_TRAINER_RODETTE] = {
.facilityClass = FACILITY_CLASS_LASS,
.trainerName = _("RODETTE"),
.speechBefore = {EC_WORD_OH, EC_WORD_THIS, EC_WORD_IS, EC_WORD_SO, EC_WORD_EXCITING, EC_WORD_EXCL},
.speechWin = {EC_WORD_IT_S, EC_WORD_INCREDIBLE, EC_WORD_HOW, EC_WORD_STRONG, EC_WORD_I_AM, EC_WORD_EXCL},
.speechLose = {EC_WORD_OH_DEAR, EC_WORD_ELLIPSIS, EC_WORD_I_AM, EC_WORD_JUST, EC_WORD_NO, EC_WORD_GOOD},
- .monSets = gBattleFrontierTrainerMons_Rodette
+ .monSet = gBattleFrontierTrainerMons_Rodette
},
- [5] = {
+ [FRONTIER_TRAINER_PEGGY] = {
.facilityClass = FACILITY_CLASS_LASS,
.trainerName = _("PEGGY"),
.speechBefore = {EC_WORD_GET, EC_WORD_READY, EC_WORD_TO, EC_WORD_BE, EC_WORD_DESTROYED, EC_WORD_EXCL},
.speechWin = {EC_WORD_HAHAHA, EC_WORD_EXCL_EXCL, 0xFFFF, EC_WORD_I_AM, EC_WORD_LOLLING, EC_WORD_EXCL},
.speechLose = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_SAD, EC_WORD_THANKS, EC_WORD_TO, EC_WORD_YOU},
- .monSets = gBattleFrontierTrainerMons_Peggy
+ .monSet = gBattleFrontierTrainerMons_Peggy
},
- [6] = {
+ [FRONTIER_TRAINER_KEITH] = {
.facilityClass = FACILITY_CLASS_SCHOOL_KID_M,
.trainerName = _("KEITH"),
.speechBefore = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_JUST, EC_WORD_STUDY, EC_WORD_YOU, EC_WORD_KNOW},
.speechWin = {EC_WORD_YOU, EC_WORD_DON_T, EC_WORD_STUDY, EC_WORD_ENOUGH, EC_WORD_ELLIPSIS, 0xFFFF},
.speechLose = {EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_STUDY, EC_WORD_MORE, EC_WORD_ELLIPSIS},
- .monSets = gBattleFrontierTrainerMons_Keith
+ .monSet = gBattleFrontierTrainerMons_Keith
},
- [7] = {
+ [FRONTIER_TRAINER_GRAYSON] = {
.facilityClass = FACILITY_CLASS_SCHOOL_KID_M,
.trainerName = _("GRAYSON"),
.speechBefore = {EC_WORD_A, EC_WORD_POKEMON, EC_WORD_BATTLE, EC_WORD_ISN_T, EC_WORD_CHILD_S_PLAY, EC_WORD_EXCL},
.speechWin = {EC_WORD_YOU_RE, EC_WORD_DONE, EC_WORD_AREN_T, EC_WORD_YOU, EC_WORD_QUES, 0xFFFF},
.speechLose = {EC_WORD_WE, EC_WORD_WERE, EC_WORD_LIKE, EC_WORD_TOYS, EC_WORD_TO, EC_WORD_YOU},
- .monSets = gBattleFrontierTrainerMons_Grayson
+ .monSet = gBattleFrontierTrainerMons_Grayson
},
- [8] = {
+ [FRONTIER_TRAINER_GLENN] = {
.facilityClass = FACILITY_CLASS_SCHOOL_KID_M,
.trainerName = _("GLENN"),
.speechBefore = {EC_WORD_I, EC_WORD_WOULD, EC_WORD_BE, EC_WORD_COOL, EC_WORD_IF_I_WIN, 0xFFFF},
.speechWin = {EC_WORD_COOL, EC_WORD_EXCL, 0xFFFF, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM},
.speechLose = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_GOING, EC_WORD_TO, EC_WORD_BE, EC_WORD_COOL},
- .monSets = gBattleFrontierTrainerMons_Glenn
+ .monSet = gBattleFrontierTrainerMons_Glenn
},
- [9] = {
+ [FRONTIER_TRAINER_LILIANA] = {
.facilityClass = FACILITY_CLASS_SCHOOL_KID_F,
.trainerName = _("LILIANA"),
.speechBefore = {EC_WORD_I, EC_WORD_WON_T, EC_WORD_GIVE_UP, EC_WORD_UNTIL, EC_WORD_I, EC_WORD_WIN},
.speechWin = {EC_WORD_THERE, EC_WORD_IS, EC_WORD_NO, EC_WORD_SURRENDER, EC_WORD_IN, EC_WORD_ME},
.speechLose = {EC_WORD_THAT_S, EC_WORD_IT, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_GIVE_UP, EC_WORD_ELLIPSIS},
- .monSets = gBattleFrontierTrainerMons_Liliana
+ .monSet = gBattleFrontierTrainerMons_Liliana
},
- [10] = {
+ [FRONTIER_TRAINER_ELISE] = {
.facilityClass = FACILITY_CLASS_SCHOOL_KID_F,
.trainerName = _("ELISE"),
.speechBefore = {EC_WORD_MY, EC_WORD_STRATEGY, EC_WORD_IS, EC_WORD_FROM, EC_WORD_MY, EC_WORD_FATHER},
.speechWin = {EC_WORD_I, EC_WORD_WIN, EC_WORD_EXCL, EC_WORD_FATHER, EC_WORD_I_VE, EC_WORD_WON},
.speechLose = {EC_WORD_FORGIVE, EC_WORD_ME, EC_WORD_FATHER, EC_WORD_FOR, EC_WORD_I_VE, EC_WORD_LOST},
- .monSets = gBattleFrontierTrainerMons_Elise
+ .monSet = gBattleFrontierTrainerMons_Elise
},
- [11] = {
+ [FRONTIER_TRAINER_ZOEY] = {
.facilityClass = FACILITY_CLASS_SCHOOL_KID_F,
.trainerName = _("ZOEY"),
.speechBefore = {EC_WORD_PLEASE, EC_WORD_BATTLE, EC_WORD_LIKE, EC_WORD_YOU, EC_WORD_MEAN, EC_WORD_IT},
.speechWin = {EC_WORD_THANK_YOU, EC_WORD_EXCL_EXCL, 0xFFFF, EC_WORD_THANK_YOU, EC_WORD_SO, EC_WORD_MUCH},
.speechLose = {EC_WORD_WERE, EC_WORD_YOU, EC_WORD_REALLY, EC_WORD_BEING, EC_WORD_SERIOUS, EC_WORD_QUES},
- .monSets = gBattleFrontierTrainerMons_Zoey
+ .monSet = gBattleFrontierTrainerMons_Zoey
},
- [12] = {
+ [FRONTIER_TRAINER_MANUEL] = {
.facilityClass = FACILITY_CLASS_RICH_BOY,
.trainerName = _("MANUEL"),
.speechBefore = {EC_WORD_ME, EC_WORD_LOSE, EC_WORD_QUES, EC_WORD_THAT_S, EC_WORD_PREPOSTEROUS, EC_WORD_EXCL},
.speechWin = {EC_WORD_NATURALLY, EC_WORD_I, EC_WORD_WIN, 0xFFFF, 0xFFFF, 0xFFFF},
.speechLose = {EC_WORD_WAAAH, EC_WORD_EXCL, 0xFFFF, EC_WORD_I, EC_WORD_LOST, EC_WORD_MOTHER},
- .monSets = gBattleFrontierTrainerMons_Manuel
+ .monSet = gBattleFrontierTrainerMons_Manuel
},
- [13] = {
+ [FRONTIER_TRAINER_RUSS] = {
.facilityClass = FACILITY_CLASS_RICH_BOY,
.trainerName = _("RUSS"),
.speechBefore = {EC_WORD_THEY, EC_WORD_ALL, EC_WORD_WANT, EC_WORD_MY, EC_WORD_FABULOUS, EC_WORD_POKEMON},
.speechWin = {EC_WORD_I, EC_WORD_WILL, EC_WORD_HAVE, EC_WORD_A, EC_WORD_POKEMON, EC_WORD_PARTY},
.speechLose = {EC_WORD_HOW, EC_WORD_COULD, EC_WORD_YOU, EC_WORD_DO, EC_WORD_THAT, EC_WORD_QUES},
- .monSets = gBattleFrontierTrainerMons_Russ
+ .monSet = gBattleFrontierTrainerMons_Russ
},
- [14] = {
+ [FRONTIER_TRAINER_DUSTIN] = {
.facilityClass = FACILITY_CLASS_RICH_BOY,
.trainerName = _("DUSTIN"),
.speechBefore = {EC_WORD_I, EC_WORD_REALLY, EC_WORD_LIKE, EC_WORD_COOL, EC_WORD_POKEMON, 0xFFFF},
.speechWin = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_MYSELF, EC_WORD_WHEN_I_WIN, EC_WORD_EXCL, 0xFFFF},
.speechLose = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_MYSELF, EC_WORD_IF_I_LOSE, EC_WORD_TOO, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Dustin
+ .monSet = gBattleFrontierTrainerMons_Dustin
},
- [15] = {
+ [FRONTIER_TRAINER_TINA] = {
.facilityClass = FACILITY_CLASS_LADY,
.trainerName = _("TINA"),
.speechBefore = {EC_WORD_IF_I_WIN, EC_WORD_YOU, EC_WORD_CAN, EC_WORD_HAVE, EC_WORD_A, EC_MOVE2(SWEET_KISS)},
.speechWin = {EC_WORD_HERE_IT_IS, EC_WORD_YOUR, EC_MOVE2(SWEET_KISS), EC_WORD_FROM, EC_WORD_MY, EC_POKEMON2(JYNX)},
.speechLose = {EC_WORD_YOU, EC_WORD_WANT, EC_WORD_A, EC_MOVE(SWIFT), EC_MOVE2(MEGA_KICK), EC_WORD_INSTEAD},
- .monSets = gBattleFrontierTrainerMons_Tina
+ .monSet = gBattleFrontierTrainerMons_Tina
},
- [16] = {
+ [FRONTIER_TRAINER_GILLIAN1] = {
.facilityClass = FACILITY_CLASS_LADY,
.trainerName = _("GILLIAN"),
.speechBefore = {EC_WORD_THE, EC_WORD_GOURMET, EC_WORD_THING, EC_WORD_IS, EC_WORD_SO, EC_WORD_YESTERDAY},
.speechWin = {EC_WORD_POKEMON, EC_WORD_NEVER, EC_WORD_GO, EC_WORD_OUT, EC_WORD_OF, EC_WORD_FASHION},
.speechLose = {EC_WORD_LOSING, EC_WORD_DOESN_T, EC_WORD_DISAPPOINT, EC_WORD_ME, 0xFFFF, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Gillian
+ .monSet = gBattleFrontierTrainerMons_Gillian
},
- [17] = {
+ [FRONTIER_TRAINER_ZOE] = {
.facilityClass = FACILITY_CLASS_LADY,
.trainerName = _("ZOE"),
.speechBefore = {EC_WORD_I, EC_WORD_HAVEN_T, EC_WORD_A, EC_WORD_WORRY, EC_WORD_AT, EC_WORD_ALL},
.speechWin = {EC_WORD_LIFE, EC_WORD_IS, EC_WORD_ALWAYS, EC_WORD_GOOD, EC_WORD_TO_ME, 0xFFFF},
.speechLose = {EC_WORD_I, EC_WORD_WORRY, EC_WORD_ABOUT, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_SKILL},
- .monSets = gBattleFrontierTrainerMons_Zoe
+ .monSet = gBattleFrontierTrainerMons_Zoe
},
- [18] = {
+ [FRONTIER_TRAINER_CHEN] = {
.facilityClass = FACILITY_CLASS_CAMPER,
.trainerName = _("CHEN"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_TOTALLY, EC_WORD_READY, EC_WORD_TO, EC_WORD_ROCK, EC_WORD_TODAY},
.speechWin = {EC_WORD_I_AM, EC_WORD_READY, EC_WORD_TO, EC_WORD_GO, EC_WORD_ON, EC_WORD_EXCL},
.speechLose = {EC_WORD_I_VE, EC_WORD_LOST, EC_WORD_MY, EC_MOVE(FOCUS_ENERGY), EC_WORD_AND, EC_WORD_TOUGHNESS},
- .monSets = gBattleFrontierTrainerMons_Chen
+ .monSet = gBattleFrontierTrainerMons_Chen
},
- [19] = {
+ [FRONTIER_TRAINER_AL] = {
.facilityClass = FACILITY_CLASS_CAMPER,
.trainerName = _("AL"),
.speechBefore = {EC_WORD_YOUR, EC_WORD_LOOK, EC_WORD_SAYS, EC_WORD_YOU_RE, EC_WORD_REALLY, EC_WORD_TOUGH},
.speechWin = {EC_WORD_IT_S, EC_WORD_ME, EC_WORD_WHO_IS, EC_WORD_REALLY, EC_WORD_TOUGH, 0xFFFF},
.speechLose = {EC_WORD_I_AM, EC_WORD_RIGHT, EC_WORD_EXCL, EC_WORD_YOU_RE, EC_WORD_REALLY, EC_WORD_TOUGH},
- .monSets = gBattleFrontierTrainerMons_Al
+ .monSet = gBattleFrontierTrainerMons_Al
},
- [20] = {
+ [FRONTIER_TRAINER_MITCH] = {
.facilityClass = FACILITY_CLASS_CAMPER,
.trainerName = _("MITCH"),
.speechBefore = {EC_WORD_MOTHER, EC_WORD_NATURE, EC_WORD_IS, EC_WORD_MY, EC_WORD_ALLY, EC_WORD_EXCL},
.speechWin = {EC_WORD_WAS, EC_WORD_THAT, EC_WORD_ENOUGH, EC_WORD_FOR, EC_WORD_YOU, EC_WORD_QUES},
.speechLose = {EC_WORD_MOTHER, EC_WORD_NATURE, EC_WORD_DIDN_T, EC_WORD_LET_ME_WIN, EC_WORD_QUES, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Mitch
+ .monSet = gBattleFrontierTrainerMons_Mitch
},
- [21] = {
+ [FRONTIER_TRAINER_ANNE] = {
.facilityClass = FACILITY_CLASS_PICNICKER,
.trainerName = _("ANNE"),
.speechBefore = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_WAIT, EC_WORD_LET_S, EC_WORD_BATTLE, EC_WORD_NOW},
.speechWin = {EC_WORD_MY, EC_WORD_HAPPINESS, EC_WORD_IS, EC_WORD_OVERWHELMING, EC_WORD_EXCL, 0xFFFF},
.speechLose = {EC_WORD_YOU_VE, EC_WORD_DESTROYED, EC_WORD_MY, EC_WORD_HAPPINESS, EC_WORD_ELLIPSIS, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Anne
+ .monSet = gBattleFrontierTrainerMons_Anne
},
- [22] = {
+ [FRONTIER_TRAINER_ALIZE] = {
.facilityClass = FACILITY_CLASS_PICNICKER,
.trainerName = _("ALIZE"),
.speechBefore = {EC_WORD_CUTE, EC_WORD_AND, EC_WORD_AWFULLY, EC_WORD_STRONG, EC_WORD_THAT_S, EC_WORD_ME},
.speechWin = {EC_WORD_YUP, EC_WORD_I_AM, EC_WORD_CUTE, EC_WORD_AND, EC_WORD_AWFULLY, EC_WORD_STRONG},
.speechLose = {EC_WORD_I_AM, EC_WORD_WEAK, EC_WORD_ELLIPSIS, EC_WORD_BUT, EC_WORD_I_AM, EC_WORD_CUTE},
- .monSets = gBattleFrontierTrainerMons_Alize
+ .monSet = gBattleFrontierTrainerMons_Alize
},
- [23] = {
+ [FRONTIER_TRAINER_LAUREN] = {
.facilityClass = FACILITY_CLASS_PICNICKER,
.trainerName = _("LAUREN"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_OLD, EC_WORD_BUT, EC_WORD_I_AM, EC_WORD_ALSO, EC_WORD_GOOD},
.speechWin = {EC_WORD_I, EC_WORD_SAID, EC_WORD_I_WAS, EC_WORD_OLD, EC_WORD_BUT, EC_WORD_GOOD},
.speechLose = {EC_WORD_WHAT, EC_WORD_A, EC_WORD_WEIRD, EC_WORD_DREAM, EC_WORD_THAT_WAS, EC_WORD_EXCL},
- .monSets = gBattleFrontierTrainerMons_Lauren
+ .monSet = gBattleFrontierTrainerMons_Lauren
},
- [24] = {
+ [FRONTIER_TRAINER_KIPP] = {
.facilityClass = FACILITY_CLASS_TUBER_M,
.trainerName = _("KIPP"),
.speechBefore = {EC_WORD_IF_I_WIN, EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_GO, EC_MOVE2(SURF)},
.speechWin = {EC_WORD_YEAH, EC_WORD_EXCL, EC_WORD_I_AM, EC_WORD_OFF, EC_WORD_TO, EC_MOVE2(SURF)},
.speechLose = {EC_WORD_OH, EC_WORD_NO, EC_WORD_EXCL, EC_WORD_A, EC_MOVE(WHIRLPOOL), EC_WORD_EXCL},
- .monSets = gBattleFrontierTrainerMons_Kipp
+ .monSet = gBattleFrontierTrainerMons_Kipp
},
- [25] = {
+ [FRONTIER_TRAINER_JASON] = {
.facilityClass = FACILITY_CLASS_TUBER_M,
.trainerName = _("JASON"),
.speechBefore = {EC_WORD_TEACH, EC_WORD_ME, EC_WORD_A, EC_WORD_GOOD, EC_WORD_STRATEGY, 0xFFFF},
.speechWin = {EC_WORD_THAT_WAS, EC_WORD_YOUR, EC_WORD_GOOD, EC_WORD_STRATEGY, EC_WORD_QUES_EXCL, 0xFFFF},
.speechLose = {EC_WORD_WOW, EC_WORD_THAT, EC_WORD_IS, EC_WORD_AN, EC_WORD_AWESOME, EC_WORD_STRATEGY},
- .monSets = gBattleFrontierTrainerMons_Jason
+ .monSet = gBattleFrontierTrainerMons_Jason
},
- [26] = {
+ [FRONTIER_TRAINER_JOHN] = {
.facilityClass = FACILITY_CLASS_TUBER_M,
.trainerName = _("JOHN"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_A, EC_WORD_PRETTY, EC_WORD_NEW, EC_WORD_TRAINER, 0xFFFF},
.speechWin = {EC_WORD_I_AM, EC_WORD_NEW, EC_WORD_BUT, EC_WORD_I, EC_WORD_WON, EC_WORD_EXCL},
.speechLose = {EC_WORD_I_AM, EC_WORD_NEW, EC_WORD_SO, EC_WORD_WHAT, EC_WORD_IF_I_LOSE, EC_WORD_QUES},
- .monSets = gBattleFrontierTrainerMons_John
+ .monSet = gBattleFrontierTrainerMons_John
},
- [27] = {
+ [FRONTIER_TRAINER_ANN] = {
.facilityClass = FACILITY_CLASS_TUBER_F,
.trainerName = _("ANN"),
.speechBefore = {EC_WORD_IT_S, EC_WORD_SO, EC_WORD_EXCITING, EC_WORD_IT, EC_WORD_REALLY, EC_WORD_IS},
.speechWin = {EC_WORD_I_AM, EC_WORD_SO, EC_WORD_HAPPY, EC_WORD_I, EC_WORD_CAN, EC_WORD_CRY},
.speechLose = {EC_WORD_I_AM, EC_WORD_SO, EC_WORD_SAD, EC_WORD_I, EC_WORD_WILL, EC_WORD_CRY},
- .monSets = gBattleFrontierTrainerMons_Ann
+ .monSet = gBattleFrontierTrainerMons_Ann
},
- [28] = {
+ [FRONTIER_TRAINER_EILEEN] = {
.facilityClass = FACILITY_CLASS_TUBER_F,
.trainerName = _("EILEEN"),
.speechBefore = {EC_WORD_LET_S, EC_WORD_PRETEND, EC_WORD_I_AM, EC_WORD_AN, EC_WORD_ADULT, EC_WORD_OK_QUES},
.speechWin = {EC_WORD_SO, EC_WORD_THIS, EC_WORD_IS, EC_WORD_AN, EC_WORD_ADULT, EC_WORD_FEELING},
.speechLose = {EC_WORD_AN, EC_WORD_ADULT, EC_WORD_CAN_T, EC_WORD_BEAT, EC_WORD_YOU, EC_WORD_QUES},
- .monSets = gBattleFrontierTrainerMons_Eileen
+ .monSet = gBattleFrontierTrainerMons_Eileen
},
- [29] = {
+ [FRONTIER_TRAINER_CARLIE] = {
.facilityClass = FACILITY_CLASS_TUBER_F,
.trainerName = _("CARLIE"),
.speechBefore = {EC_WORD_MY, EC_WORD_SUMMER, EC_WORD_VACATION, EC_WORD_IS, EC_WORD_FOR, EC_WORD_POKEMON},
.speechWin = {EC_WORD_MY, EC_WORD_SUMMER, EC_WORD_VACATION, EC_WORD_WILL, EC_WORD_BE, EC_WORD_AWESOME},
.speechLose = {EC_WORD_I, EC_WORD_CAN_T_WIN, EC_WORD_LIKE, EC_WORD_THIS, EC_WORD_ELLIPSIS, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Carlie
+ .monSet = gBattleFrontierTrainerMons_Carlie
},
- [30] = {
+ [FRONTIER_TRAINER_GORDON] = {
.facilityClass = FACILITY_CLASS_SWIMMER_M,
.trainerName = _("GORDON"),
.speechBefore = {EC_WORD_VICTORY, EC_WORD_WILL, EC_WORD_COME, EC_WORD_TO_ME, EC_WORD_EXCL, 0xFFFF},
.speechWin = {EC_WORD_OH_YEAH, EC_WORD_EXCL, 0xFFFF, EC_WORD_I, EC_WORD_REALLY, EC_WORD_WON},
.speechLose = {EC_WORD_NOTHING, EC_WORD_IS, EC_WORD_WORKING, EC_WORD_OUT, EC_WORD_FOR, EC_WORD_ME},
- .monSets = gBattleFrontierTrainerMons_Gordon
+ .monSet = gBattleFrontierTrainerMons_Gordon
},
- [31] = {
+ [FRONTIER_TRAINER_AYDEN] = {
.facilityClass = FACILITY_CLASS_SWIMMER_M,
.trainerName = _("AYDEN"),
.speechBefore = {EC_WORD_COME_ON, EC_WORD_I, EC_WORD_NEED, EC_WORD_A, EC_WORD_HOT, EC_WORD_BATTLE},
.speechWin = {EC_WORD_I, EC_WORD_NEED, EC_WORD_WATER, EC_WORD_TO, EC_WORD_COOL, EC_WORD_DOWN},
.speechLose = {EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_ME, EC_WORD_FEELING, EC_WORD_ICE, EC_WORD_COLD},
- .monSets = gBattleFrontierTrainerMons_Ayden
+ .monSet = gBattleFrontierTrainerMons_Ayden
},
- [32] = {
+ [FRONTIER_TRAINER_MARCO] = {
.facilityClass = FACILITY_CLASS_SWIMMER_M,
.trainerName = _("MARCO"),
.speechBefore = {EC_WORD_I, EC_MOVE2(SURF), EC_WORD_IN, EC_WORD_THE, EC_WORD_WINTER, EC_WORD_TOO},
.speechWin = {EC_WORD_I, EC_WORD_WILL, EC_WORD_GO, EC_MOVE2(SURF), EC_WORD_RIGHT, EC_WORD_NOW},
.speechLose = {EC_WORD_I, EC_WORD_WILL, EC_MOVE2(BEAT_UP), EC_WORD_MY, EC_MOVE2(SURF), EC_WORD_BOARD},
- .monSets = gBattleFrontierTrainerMons_Marco
+ .monSet = gBattleFrontierTrainerMons_Marco
},
- [33] = {
+ [FRONTIER_TRAINER_CIERRA] = {
.facilityClass = FACILITY_CLASS_SWIMMER_F,
.trainerName = _("CIERRA"),
.speechBefore = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_TO, EC_WORD_SYNCHRONIZE, EC_WORD_MY, EC_WORD_SWIFT_SWIM},
.speechWin = {EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_SYNCHRONIZE, EC_WORD_WITH, EC_WORD_ME, 0xFFFF},
.speechLose = {EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_SYNCHRONIZE, EC_WORD_BETTER, EC_WORD_ELLIPSIS},
- .monSets = gBattleFrontierTrainerMons_Cierra
+ .monSet = gBattleFrontierTrainerMons_Cierra
},
- [34] = {
+ [FRONTIER_TRAINER_MARCY] = {
.facilityClass = FACILITY_CLASS_SWIMMER_F,
.trainerName = _("MARCY"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_A, EC_WORD_KNOCKOUT, EC_WORD_YOU, EC_WORD_CAN_T_WIN, EC_WORD_EXCL},
.speechWin = {EC_WORD_AFTER, EC_WORD_ALL, EC_WORD_I_AM, EC_WORD_A, EC_WORD_KNOCKOUT, EC_WORD_EXCL},
.speechLose = {EC_WORD_THAT_S, EC_WORD_NOT, EC_WORD_THE, EC_WORD_KNOCKOUT, EC_WORD_I, EC_WORD_MEAN},
- .monSets = gBattleFrontierTrainerMons_Marcy
+ .monSet = gBattleFrontierTrainerMons_Marcy
},
- [35] = {
+ [FRONTIER_TRAINER_KATHY] = {
.facilityClass = FACILITY_CLASS_SWIMMER_F,
.trainerName = _("KATHY"),
.speechBefore = {EC_WORD_I_VE, EC_WORD_WON, EC_WORD_EVERY, EC_WORD_MATCH, EC_WORD_TODAY, EC_WORD_EXCL},
.speechWin = {EC_WORD_IT_S, EC_WORD_SO, EC_WORD_GREAT, EC_WORD_TO, EC_WORD_WIN, EC_WORD_EXCL},
.speechLose = {EC_WORD_HUH_QUES, EC_WORD_I, EC_WORD_SHOULD, EC_WORD_NOT, EC_WORD_HAVE, EC_WORD_LOST},
- .monSets = gBattleFrontierTrainerMons_Kathy
+ .monSet = gBattleFrontierTrainerMons_Kathy
},
- [36] = {
+ [FRONTIER_TRAINER_PEYTON] = {
.facilityClass = FACILITY_CLASS_POKEFAN_M,
.trainerName = _("PEYTON"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_NEVER, EC_WORD_DISAPPOINTED, EC_WORD_WITH, EC_WORD_MY, EC_WORD_POKEMON},
.speechWin = {EC_WORD_I_AM, EC_WORD_HAPPY, EC_WORD_IF, EC_WORD_WE, EC_WORD_WIN, EC_WORD_TOGETHER},
.speechLose = {EC_WORD_I, EC_WORD_ADORE, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_MORE, EC_WORD_IF_I_LOSE},
- .monSets = gBattleFrontierTrainerMons_Peyton
+ .monSet = gBattleFrontierTrainerMons_Peyton
},
- [37] = {
+ [FRONTIER_TRAINER_JULIAN] = {
.facilityClass = FACILITY_CLASS_POKEFAN_M,
.trainerName = _("JULIAN"),
.speechBefore = {EC_WORD_YOU, EC_WORD_ADORE, EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_RIGHT, EC_WORD_QUES},
.speechWin = {EC_WORD_YOU_RE, EC_WORD_TOTALLY, EC_WORD_OUT, EC_WORD_OF, EC_WORD_THE, EC_WORD_QUESTION},
.speechLose = {EC_WORD_YOU, EC_WORD_DO, EC_WORD_ADORE, EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_EXCL},
- .monSets = gBattleFrontierTrainerMons_Julian
+ .monSet = gBattleFrontierTrainerMons_Julian
},
- [38] = {
+ [FRONTIER_TRAINER_QUINN] = {
.facilityClass = FACILITY_CLASS_POKEFAN_M,
.trainerName = _("QUINN"),
.speechBefore = {EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_BUT, EC_WORD_A, EC_WORD_DREAM},
.speechWin = {EC_WORD_THIS, EC_WORD_IS, EC_WORD_A, EC_WORD_BEAUTIFUL, EC_WORD_DREAM, EC_WORD_EXCL},
.speechLose = {EC_WORD_THIS, EC_WORD_IS, EC_WORD_AN, EC_WORD_AWFUL, EC_MOVE(NIGHTMARE), EC_WORD_EXCL},
- .monSets = gBattleFrontierTrainerMons_Quinn
+ .monSet = gBattleFrontierTrainerMons_Quinn
},
- [39] = {
+ [FRONTIER_TRAINER_HAYLEE] = {
.facilityClass = FACILITY_CLASS_POKEFAN_F,
.trainerName = _("HAYLEE"),
.speechBefore = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_KNOW, EC_WORD_HOW, EC_WORD_I_AM, EC_WORD_FEELING},
.speechWin = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_OVERWHELMING, EC_WORD_JOY, EC_WORD_OVER, EC_WORD_THIS},
.speechLose = {EC_WORD_DESTROYED, EC_WORD_IS, EC_WORD_THE, EC_WORD_WAY, EC_WORD_I_AM, EC_WORD_FEELING},
- .monSets = gBattleFrontierTrainerMons_Haylee
+ .monSet = gBattleFrontierTrainerMons_Haylee
},
- [40] = {
+ [FRONTIER_TRAINER_AMANDA] = {
.facilityClass = FACILITY_CLASS_POKEFAN_F,
.trainerName = _("AMANDA"),
.speechBefore = {EC_WORD_I, EC_WORD_COME, EC_WORD_FROM, EC_WORD_A, EC_WORD_TRAINER, EC_WORD_FAMILY},
.speechWin = {EC_WORD_I, EC_WORD_WILL, EC_WORD_TREASURE, EC_WORD_THIS, EC_WORD_WIN, 0xFFFF},
.speechLose = {EC_WORD_I, EC_WORD_WANT, EC_WORD_TO, EC_WORD_GO_HOME, EC_WORD_RIGHT, EC_WORD_NOW},
- .monSets = gBattleFrontierTrainerMons_Amanda
+ .monSet = gBattleFrontierTrainerMons_Amanda
},
- [41] = {
+ [FRONTIER_TRAINER_STACY] = {
.facilityClass = FACILITY_CLASS_POKEFAN_F,
.trainerName = _("STACY"),
.speechBefore = {EC_WORD_ALL, EC_WORD_POKEMON, EC_WORD_HAVE, EC_WORD_THEIR, EC_WORD_OWN, EC_WORD_CUTE_CHARM},
.speechWin = {EC_WORD_YOU, EC_WORD_SEE, EC_WORD_WHAT, EC_WORD_I, EC_WORD_MEAN, EC_WORD_QUES},
.speechLose = {EC_WORD_SHOULD, EC_WORD_I, EC_WORD_NOT, EC_WORD_ADORE, EC_WORD_POKEMON, EC_WORD_QUES},
- .monSets = gBattleFrontierTrainerMons_Stacy
+ .monSet = gBattleFrontierTrainerMons_Stacy
},
- [42] = {
+ [FRONTIER_TRAINER_RAFAEL] = {
.facilityClass = FACILITY_CLASS_PKMN_BREEDER_M,
.trainerName = _("RAFAEL"),
.speechBefore = {EC_WORD_COME_ON, EC_WORD_EXCL, EC_WORD_LET_S, EC_WORD_SEE, EC_WORD_SOME, EC_WORD_SPIRIT},
.speechWin = {EC_WORD_THAT_S_IT_EXCL, EC_WORD_THAT_S, EC_WORD_THE, EC_WORD_SPIRIT, EC_WORD_EXCL, 0xFFFF},
.speechLose = {EC_WORD_WELL, EC_WORD_SO, EC_WORD_MUCH, EC_WORD_FOR, EC_WORD_OUR, EC_WORD_SPIRIT},
- .monSets = gBattleFrontierTrainerMons_Rafael
+ .monSet = gBattleFrontierTrainerMons_Rafael
},
- [43] = {
+ [FRONTIER_TRAINER_OLIVER] = {
.facilityClass = FACILITY_CLASS_PKMN_BREEDER_M,
.trainerName = _("OLIVER"),
.speechBefore = {EC_WORD_A, EC_WORD_GENIUS, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM, EC_WORD_EXCL},
.speechWin = {EC_WORD_THAT_S, EC_WORD_HOW, EC_WORD_A, EC_WORD_GENIUS, EC_WORD_WORKS, EC_WORD_EXCL},
.speechLose = {EC_WORD_YOU_RE, EC_WORD_MORE, EC_WORD_A, EC_WORD_GENIUS, EC_WORD_THAN, EC_WORD_I_AM},
- .monSets = gBattleFrontierTrainerMons_Oliver
+ .monSet = gBattleFrontierTrainerMons_Oliver
},
- [44] = {
+ [FRONTIER_TRAINER_PAYTON] = {
.facilityClass = FACILITY_CLASS_PKMN_BREEDER_M,
.trainerName = _("PAYTON"),
.speechBefore = {EC_WORD_I, EC_WORD_TRAIN, EC_WORD_FROM, EC_WORD_THE, EC_WORD_EGG, EC_WORD_UP},
.speechWin = {EC_WORD_WELL, EC_WORD_DONE, EC_WORD_EXCL, 0xFFFF, 0xFFFF, 0xFFFF},
.speechLose = {EC_WORD_THAT_WAS, EC_WORD_A, EC_MOVE2(SOFT_BOILED), EC_WORD_LOSS, EC_WORD_ELLIPSIS, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Payton
+ .monSet = gBattleFrontierTrainerMons_Payton
},
- [45] = {
+ [FRONTIER_TRAINER_PAMELA] = {
.facilityClass = FACILITY_CLASS_PKMN_BREEDER_F,
.trainerName = _("PAMELA"),
.speechBefore = {EC_WORD_ALL, EC_WORD_POKEMON, EC_WORD_ADORE, EC_WORD_A, EC_WORD_KIND, EC_WORD_TRAINER},
.speechWin = {EC_WORD_IT_S, EC_WORD_TOO, EC_WORD_BAD, EC_WORD_YOU, EC_WORD_LOST, 0xFFFF},
.speechLose = {EC_WORD_YOU_RE, EC_WORD_KIND, EC_WORD_AND, EC_WORD_YOU_RE, EC_WORD_ALSO, EC_WORD_STRONG},
- .monSets = gBattleFrontierTrainerMons_Pamela
+ .monSet = gBattleFrontierTrainerMons_Pamela
},
- [46] = {
+ [FRONTIER_TRAINER_ELIZA] = {
.facilityClass = FACILITY_CLASS_PKMN_BREEDER_F,
.trainerName = _("ELIZA"),
.speechBefore = {EC_WORD_I, EC_WORD_ADORE, EC_WORD_POKEMON, EC_WORD_LIKE, EC_WORD_MY, EC_WORD_CHILDREN},
.speechWin = {EC_WORD_I_AM, EC_WORD_SO, EC_WORD_HAPPY, EC_WORD_FOR, EC_WORD_MY, EC_WORD_POKEMON},
.speechLose = {EC_WORD_OH_DEAR, EC_WORD_I_AM, EC_WORD_SO, EC_WORD_SORRY, EC_WORD_ABOUT, EC_WORD_THIS},
- .monSets = gBattleFrontierTrainerMons_Eliza
+ .monSet = gBattleFrontierTrainerMons_Eliza
},
- [47] = {
+ [FRONTIER_TRAINER_MARISA] = {
.facilityClass = FACILITY_CLASS_PKMN_BREEDER_F,
.trainerName = _("MARISA"),
.speechBefore = {EC_WORD_I, EC_WORD_PROMISE, EC_WORD_TO, EC_WORD_BATTLE, EC_WORD_SERIOUSLY, 0xFFFF},
.speechWin = {EC_WORD_PROMISE, EC_WORD_ME, EC_WORD_YOU, EC_WORD_WILL, EC_WORD_DO, EC_WORD_BETTER},
.speechLose = {EC_WORD_PROMISE, EC_WORD_ME, EC_WORD_ANOTHER, EC_WORD_BATTLE, EC_WORD_PLEASE, EC_WORD_EXCL},
- .monSets = gBattleFrontierTrainerMons_Marisa
+ .monSet = gBattleFrontierTrainerMons_Marisa
},
- [48] = {
+ [FRONTIER_TRAINER_LEWIS] = {
.facilityClass = FACILITY_CLASS_BUG_CATCHER,
.trainerName = _("LEWIS"),
.speechBefore = {EC_WORD_A_LITTLE, EC_WORD_BUG, EC_WORD_IS, EC_WORD_SCARY, EC_WORD_QUES, EC_WORD_HAHAHA},
.speechWin = {EC_WORD_LOOK, EC_WORD_LOOK, EC_WORD_EXCL, EC_WORD_A, EC_WORD_SCARY, EC_WORD_BUG},
.speechLose = {EC_WORD_OH, EC_WORD_A, EC_WORD_BUG, EC_WORD_ISN_T, EC_WORD_SCARY, EC_WORD_ELLIPSIS},
- .monSets = gBattleFrontierTrainerMons_Lewis
+ .monSet = gBattleFrontierTrainerMons_Lewis
},
- [49] = {
+ [FRONTIER_TRAINER_YOSHI] = {
.facilityClass = FACILITY_CLASS_BUG_CATCHER,
.trainerName = _("YOSHI"),
.speechBefore = {EC_WORD_BUG, EC_WORD_POKEMON, EC_WORD_MAKE, EC_WORD_ME, EC_WORD_FEELING, EC_WORD_LOVEY_DOVEY},
.speechWin = {EC_WORD_BUG, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_THE, EC_WORD_BEST, EC_WORD_EXCL},
.speechLose = {EC_WORD_YOU_RE, EC_WORD_IGNORANT, EC_WORD_ABOUT, EC_WORD_BUG, EC_WORD_POKEMON, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Yoshi
+ .monSet = gBattleFrontierTrainerMons_Yoshi
},
- [50] = {
+ [FRONTIER_TRAINER_DESTIN] = {
.facilityClass = FACILITY_CLASS_BUG_CATCHER,
.trainerName = _("DESTIN"),
.speechBefore = {EC_WORD_IT_S, EC_WORD_WAY, EC_WORD_TOO, EC_WORD_HOT, EC_WORD_HERE, 0xFFFF},
.speechWin = {EC_WORD_I_AM, EC_WORD_ABOUT, EC_WORD_TO, EC_MOVE(OVERHEAT), 0xFFFF, 0xFFFF},
.speechLose = {EC_WORD_PLEASE, EC_WORD_I, EC_WORD_NEED, EC_WORD_SOME, EC_WORD_WATER, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Destin
+ .monSet = gBattleFrontierTrainerMons_Destin
},
- [51] = {
+ [FRONTIER_TRAINER_KEON] = {
.facilityClass = FACILITY_CLASS_NINJA_BOY,
.trainerName = _("KEON"),
.speechBefore = {EC_WORD_FORGIVE, EC_WORD_ME, EC_WORD_BUT, EC_WORD_HERE_I_COME, EC_WORD_EXCL, 0xFFFF},
.speechWin = {EC_WORD_FORGIVE, EC_WORD_ME, EC_WORD_FOR, EC_WORD_MY, EC_WORD_OVERWHELMING, EC_WORD_POWER},
.speechLose = {EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Keon
+ .monSet = gBattleFrontierTrainerMons_Keon
},
- [52] = {
+ [FRONTIER_TRAINER_STUART] = {
.facilityClass = FACILITY_CLASS_NINJA_BOY,
.trainerName = _("STUART"),
.speechBefore = {EC_WORD_I, EC_WORD_PROMISE, EC_WORD_YOU, EC_WORD_A, EC_WORD_HOT, EC_WORD_BATTLE},
.speechWin = {EC_WORD_THE, EC_WORD_MASTER, EC_WORD_OF, EC_WORD_COOL, EC_WORD_THAT_S, EC_WORD_ME},
.speechLose = {EC_WORD_I, EC_WORD_SEE, EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_SO, EC_WORD_COOL},
- .monSets = gBattleFrontierTrainerMons_Stuart
+ .monSet = gBattleFrontierTrainerMons_Stuart
},
- [53] = {
+ [FRONTIER_TRAINER_NESTOR] = {
.facilityClass = FACILITY_CLASS_NINJA_BOY,
.trainerName = _("NESTOR"),
.speechBefore = {EC_WORD_SHOW, EC_WORD_ME, EC_WORD_A, EC_WORD_REALLY, EC_WORD_SMOOTH, EC_WORD_MOVE},
.speechWin = {EC_WORD_THERE, EC_WORD_WAS, EC_WORD_NOTHING, EC_WORD_SMOOTH, EC_WORD_ABOUT, EC_WORD_THAT},
.speechLose = {EC_WORD_YOU, EC_WORD_REALLY, EC_WORD_ARE, EC_WORD_SMOOTH, EC_WORD_EXCL, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Nestor
+ .monSet = gBattleFrontierTrainerMons_Nestor
},
- [54] = {
+ [FRONTIER_TRAINER_DERRICK] = {
.facilityClass = FACILITY_CLASS_BUG_MANIAC,
.trainerName = _("DERRICK"),
.speechBefore = {EC_WORD_LET_S, EC_WORD_SEE, EC_WORD_YOU, EC_MOVE2(MEDITATE), EC_WORD_LIKE, EC_WORD_ME},
.speechWin = {EC_WORD_HOW, EC_WORD_I, EC_MOVE2(MEDITATE), EC_WORD_IS, EC_WORD_JUST, EC_WORD_BEAUTIFUL},
.speechLose = {EC_WORD_I, EC_WORD_WILL, EC_MOVE2(MEDITATE), EC_WORD_FOR, EC_WORD_A, EC_MOVE2(CALM_MIND)},
- .monSets = gBattleFrontierTrainerMons_Derrick
+ .monSet = gBattleFrontierTrainerMons_Derrick
},
- [55] = {
+ [FRONTIER_TRAINER_BRYSON] = {
.facilityClass = FACILITY_CLASS_BUG_MANIAC,
.trainerName = _("BRYSON"),
.speechBefore = {EC_MOVE2(POISON_POWDER), EC_WORD_IS, EC_WORD_IN, EC_WORD_OUR, EC_MOVE2(COTTON_SPORE), EC_WORD_MOVE},
.speechWin = {EC_WORD_HOW_DO, EC_WORD_YOU, EC_WORD_LIKE, EC_WORD_OUR, EC_MOVE2(POISON_POWDER), EC_WORD_QUES},
.speechLose = {EC_WORD_MY, EC_MOVE2(COTTON_SPORE), EC_WORD_WAS, EC_WORD_USELESS, 0xFFFF, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Bryson
+ .monSet = gBattleFrontierTrainerMons_Bryson
},
- [56] = {
+ [FRONTIER_TRAINER_CLAYTON] = {
.facilityClass = FACILITY_CLASS_BUG_MANIAC,
.trainerName = _("CLAYTON"),
.speechBefore = {EC_WORD_HUH_QUES, 0xFFFF, 0xFFFF, EC_WORD_WHERE, EC_WORD_IS_IT_QUES, 0xFFFF},
.speechWin = {EC_WORD_WHERE, EC_WORD_IS_IT_QUES, EC_WORD_I_VE, EC_WORD_LOST, EC_WORD_MY, EC_WORD_POKENAV},
.speechLose = {EC_WORD_WHERE, EC_WORD_IS_IT_QUES, EC_WORD_I_VE, EC_WORD_LOST, EC_WORD_MY, EC_WORD_SENSE},
- .monSets = gBattleFrontierTrainerMons_Clayton
+ .monSet = gBattleFrontierTrainerMons_Clayton
},
- [57] = {
+ [FRONTIER_TRAINER_TRENTON] = {
.facilityClass = FACILITY_CLASS_FISHERMAN,
.trainerName = _("TRENTON"),
.speechBefore = {EC_WORD_COME_OVER, EC_WORD_FOR, EC_WORD_SOME, EC_WORD_TASTY, EC_WORD_WATER, 0xFFFF},
.speechWin = {EC_WORD_MMM, EC_WORD_DO, EC_WORD_YOU, EC_WORD_WANT, EC_WORD_SOME, EC_WORD_QUES},
.speechLose = {EC_WORD_I, EC_WORD_GOT, EC_WORD_THIS, EC_WORD_TASTY, EC_WORD_WATER, EC_WORD_SHOPPING},
- .monSets = gBattleFrontierTrainerMons_Trenton
+ .monSet = gBattleFrontierTrainerMons_Trenton
},
- [58] = {
+ [FRONTIER_TRAINER_JENSON] = {
.facilityClass = FACILITY_CLASS_FISHERMAN,
.trainerName = _("JENSON"),
.speechBefore = {EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_WILL, EC_WORD_MAKE, EC_WORD_YOU, EC_WORD_DOWNCAST},
.speechWin = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_DON_T, EC_WORD_MAKE, EC_WORD_THE, EC_MOVE(CUT)},
.speechLose = {EC_WORD_I_AM, EC_WORD_THE, EC_WORD_TRAINER, EC_WORD_WHO_IS, EC_WORD_FEELING, EC_WORD_DOWNCAST},
- .monSets = gBattleFrontierTrainerMons_Jenson
+ .monSet = gBattleFrontierTrainerMons_Jenson
},
- [59] = {
+ [FRONTIER_TRAINER_WESLEY] = {
.facilityClass = FACILITY_CLASS_FISHERMAN,
.trainerName = _("WESLEY"),
.speechBefore = {EC_POKEMON2(MEW), EC_POKEMON2(MEW), EC_WORD_IS, EC_WORD_HOW, EC_WORD_I, EC_WORD_CRY},
.speechWin = {EC_WORD_YES, EC_WORD_I, EC_WORD_KNOW, EC_WORD_I_AM, EC_WORD_CUTE, EC_WORD_EXCL},
.speechLose = {EC_POKEMON2(MEW), EC_POKEMON2(MEW), EC_WORD_EXCL, EC_POKEMON2(MEW), EC_WORD_EXCL_EXCL, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Wesley
+ .monSet = gBattleFrontierTrainerMons_Wesley
},
- [60] = {
+ [FRONTIER_TRAINER_ANTON] = {
.facilityClass = FACILITY_CLASS_RUIN_MANIAC,
.trainerName = _("ANTON"),
.speechBefore = {EC_WORD_GET, EC_WORD_READY, EC_WORD_FOR, EC_WORD_ME, EC_WORD_TO, EC_MOVE(THRASH)},
.speechWin = {EC_WORD_WAHAHAHA, EC_WORD_EXCL, EC_WORD_SORRY, EC_WORD_ABOUT, EC_WORD_THAT, EC_WORD_EXCL},
.speechLose = {EC_WORD_IT_S, EC_WORD_A, EC_WORD_TOUGH, EC_WORD_LOSS, EC_WORD_TO, EC_MOVE2(SWALLOW)},
- .monSets = gBattleFrontierTrainerMons_Anton
+ .monSet = gBattleFrontierTrainerMons_Anton
},
- [61] = {
+ [FRONTIER_TRAINER_LAWSON] = {
.facilityClass = FACILITY_CLASS_RUIN_MANIAC,
.trainerName = _("LAWSON"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_YOUNG, EC_WORD_AT, EC_WORD_HEART, EC_WORD_EXCL, 0xFFFF},
.speechWin = {EC_WORD_NOT, EC_WORD_COOL, EC_WORD_EXCL, EC_WORD_NOT, EC_WORD_AT, EC_WORD_ALL},
.speechLose = {EC_WORD_I_AM, EC_WORD_OLD, EC_WORD_AND, EC_WORD_FEELING, EC_WORD_SHAKY, EC_WORD_ELLIPSIS},
- .monSets = gBattleFrontierTrainerMons_Lawson
+ .monSet = gBattleFrontierTrainerMons_Lawson
},
- [62] = {
+ [FRONTIER_TRAINER_SAMMY] = {
.facilityClass = FACILITY_CLASS_RUIN_MANIAC,
.trainerName = _("SAMMY"),
.speechBefore = {EC_WORD_MY, EC_WORD_PARTY, EC_WORD_IS, EC_WORD_READY, EC_WORD_TO, EC_WORD_ROCK},
.speechWin = {EC_WORD_MY, EC_WORD_PARTY, EC_WORD_IS, EC_WORD_JUST, EC_WORD_INCREDIBLE, EC_WORD_EXCL},
.speechLose = {EC_WORD_I, EC_WORD_CRY, EC_WORD_FOR, EC_WORD_MY, EC_WORD_PARTY, EC_WORD_ELLIPSIS},
- .monSets = gBattleFrontierTrainerMons_Sammy
+ .monSet = gBattleFrontierTrainerMons_Sammy
},
- [63] = {
+ [FRONTIER_TRAINER_ARNIE] = {
.facilityClass = FACILITY_CLASS_COLLECTOR,
.trainerName = _("ARNIE"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_NO_1, EC_WORD_I, EC_WORD_HAVE, EC_WORD_NO, EC_WORD_RIVAL},
.speechWin = {EC_WORD_YOU, EC_WORD_SEE, EC_WORD_QUES, EC_WORD_I, EC_WORD_CAN_T, EC_WORD_LOSE},
.speechLose = {EC_WORD_NO, EC_WORD_EXCL, EC_WORD_I, EC_WORD_WON_T, EC_WORD_ACCEPT, EC_WORD_THIS},
- .monSets = gBattleFrontierTrainerMons_Arnie
+ .monSet = gBattleFrontierTrainerMons_Arnie
},
- [64] = {
+ [FRONTIER_TRAINER_ADRIAN] = {
.facilityClass = FACILITY_CLASS_COLLECTOR,
.trainerName = _("ADRIAN"),
.speechBefore = {EC_WORD_YAHOO, EC_WORD_EXCL, 0xFFFF, EC_WORD_YAHOO, EC_WORD_EXCL_EXCL, 0xFFFF},
.speechWin = {EC_WORD_THANK_YOU, EC_WORD_EXCL, 0xFFFF, EC_WORD_THANK_YOU, EC_WORD_EXCL_EXCL, 0xFFFF},
.speechLose = {EC_WORD_GOOD_BYE, EC_WORD_EXCL, 0xFFFF, EC_WORD_GOOD_BYE, EC_WORD_EXCL_EXCL, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Adrian
+ .monSet = gBattleFrontierTrainerMons_Adrian
},
- [65] = {
+ [FRONTIER_TRAINER_TRISTAN] = {
.facilityClass = FACILITY_CLASS_COLLECTOR,
.trainerName = _("TRISTAN"),
.speechBefore = {EC_WORD_CONFUSED, EC_WORD_QUES, 0xFFFF, EC_WORD_I_AM, EC_WORD_A, EC_WORD_GENIUS},
.speechWin = {EC_WORD_SEE, EC_WORD_QUES, 0xFFFF, EC_WORD_I_AM, EC_WORD_A, EC_WORD_GENIUS},
.speechLose = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_A, EC_WORD_GENIUS, EC_WORD_IN, EC_WORD_BATTLE},
- .monSets = gBattleFrontierTrainerMons_Tristan
+ .monSet = gBattleFrontierTrainerMons_Tristan
},
- [66] = {
+ [FRONTIER_TRAINER_JULIANA] = {
.facilityClass = FACILITY_CLASS_PARASOL_LADY,
.trainerName = _("JULIANA"),
.speechBefore = {EC_WORD_I, EC_WORD_THINK, EC_WORD_I_AM, EC_WORD_SHOPPING, EC_WORD_TOO, EC_WORD_MUCH},
.speechWin = {EC_WORD_BUT, EC_WORD_I, EC_WORD_WANT, EC_WORD_A, EC_WORD_POKEMON, EC_WORD_PLUSH_DOLL},
.speechLose = {EC_WORD_I, EC_WORD_SO, EC_WORD_WANT, EC_WORD_ANOTHER, EC_WORD_POKEMON, EC_WORD_PLUSH_DOLL},
- .monSets = gBattleFrontierTrainerMons_Juliana
+ .monSet = gBattleFrontierTrainerMons_Juliana
},
- [67] = {
+ [FRONTIER_TRAINER_RYLEE] = {
.facilityClass = FACILITY_CLASS_PARASOL_LADY,
.trainerName = _("RYLEE"),
.speechBefore = {EC_WORD_SHOW, EC_WORD_ME, EC_WORD_THAT, EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_GUTS},
.speechWin = {EC_WORD_BYE_BYE, EC_WORD_EXCL, EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_NO, EC_WORD_GUTS},
.speechLose = {EC_WORD_THAT_WAS, EC_WORD_GUTSY, EC_WORD_ELLIPSIS, EC_WORD_YOU_RE, EC_WORD_QUITE, EC_WORD_SUPER},
- .monSets = gBattleFrontierTrainerMons_Rylee
+ .monSet = gBattleFrontierTrainerMons_Rylee
},
- [68] = {
+ [FRONTIER_TRAINER_CHELSEA] = {
.facilityClass = FACILITY_CLASS_PARASOL_LADY,
.trainerName = _("CHELSEA"),
.speechBefore = {EC_WORD_I, EC_WORD_SERIOUSLY, EC_WORD_MEAN, EC_WORD_TO, EC_WORD_WIN, EC_WORD_EXCL},
.speechWin = {EC_WORD_THAT_WAS, EC_WORD_MY, EC_WORD_WILL, EC_WORD_TO, EC_WORD_WIN, 0xFFFF},
.speechLose = {EC_WORD_YOU_RE, EC_WORD_FAR, EC_WORD_TOO_STRONG, EC_WORD_FOR, EC_WORD_ME, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Chelsea
+ .monSet = gBattleFrontierTrainerMons_Chelsea
},
- [69] = {
+ [FRONTIER_TRAINER_DANELA] = {
.facilityClass = FACILITY_CLASS_BEAUTY,
.trainerName = _("DANELA"),
.speechBefore = {EC_WORD_YOU, EC_WORD_MUST_BE, EC_WORD_MY, EC_WORD_OPPONENT, EC_WORD_NOW, EC_WORD_EXCL},
.speechWin = {EC_WORD_OH_DEAR, EC_WORD_TOO_WEAK, EC_WORD_EXCL, EC_WORD_DON_T, EC_WORD_GIVE_UP, EC_WORD_EXCL},
.speechLose = {EC_WORD_THAT_WAS, EC_WORD_GOOD, EC_WORD_AND, EC_WORD_THIS, EC_WORD_IS, EC_WORD_GOOD_BYE},
- .monSets = gBattleFrontierTrainerMons_Danela
+ .monSet = gBattleFrontierTrainerMons_Danela
},
- [70] = {
+ [FRONTIER_TRAINER_LIZBETH] = {
.facilityClass = FACILITY_CLASS_BEAUTY,
.trainerName = _("LIZBETH"),
.speechBefore = {EC_WORD_IF_I_LOSE, EC_WORD_YOU, EC_WORD_CAN, EC_WORD_HAVE, EC_WORD_A, EC_MOVE2(PRESENT)},
.speechWin = {EC_WORD_HERE_IT_IS, EC_WORD_A_LITTLE, EC_WORD_PRAISE, EC_WORD_AS, EC_WORD_YOUR, EC_MOVE2(PRESENT)},
.speechLose = {EC_WORD_YOUR, EC_MOVE2(PRESENT), EC_WORD_QUES_EXCL, EC_WORD_HERE_IT_IS, EC_WORD_A, EC_MOVE(DOUBLE_SLAP)},
- .monSets = gBattleFrontierTrainerMons_Lizbeth
+ .monSet = gBattleFrontierTrainerMons_Lizbeth
},
- [71] = {
+ [FRONTIER_TRAINER_AMELIA] = {
.facilityClass = FACILITY_CLASS_BEAUTY,
.trainerName = _("AMELIA"),
.speechBefore = {EC_WORD_I, EC_WORD_BELIEVE, EC_WORD_IN, EC_WORD_CUTE, EC_WORD_FASHION, EC_WORD_APPEAL},
.speechWin = {EC_WORD_YOUR, EC_WORD_FASHION, EC_WORD_SENSE, EC_WORD_IS, EC_WORD_A, EC_WORD_DISASTER},
.speechLose = {EC_WORD_THAT_WAS, EC_WORD_AWFUL, EC_WORD_EXCL, EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_HOME},
- .monSets = gBattleFrontierTrainerMons_Amelia
+ .monSet = gBattleFrontierTrainerMons_Amelia
},
- [72] = {
+ [FRONTIER_TRAINER_JILLIAN] = {
.facilityClass = FACILITY_CLASS_AROMA_LADY,
.trainerName = _("JILLIAN"),
.speechBefore = {EC_WORD_WHAT, EC_WORD_IS, EC_WORD_THAT, EC_WORD_I, EC_WORD_SMELL, EC_WORD_QUES},
.speechWin = {EC_WORD_IT_S, EC_WORD_THE, EC_MOVE(SWEET_SCENT), EC_WORD_OF, EC_WORD_TASTY, EC_WORD_WATER},
.speechLose = {EC_WORD_IT_S, EC_WORD_YOUR, EC_WORD_OFFENSIVE, EC_WORD_STENCH, EC_WORD_THAT_S, EC_WORD_WHAT},
- .monSets = gBattleFrontierTrainerMons_Jillian
+ .monSet = gBattleFrontierTrainerMons_Jillian
},
- [73] = {
+ [FRONTIER_TRAINER_ABBIE] = {
.facilityClass = FACILITY_CLASS_AROMA_LADY,
.trainerName = _("ABBIE"),
.speechBefore = {EC_WORD_YOU, EC_WORD_TRY, EC_WORD_MY, EC_WORD_SECRET, EC_MOVE(AROMATHERAPY), EC_WORD_OK_QUES},
.speechWin = {EC_WORD_MY, EC_MOVE(AROMATHERAPY), EC_WORD_IS, EC_WORD_TERRIBLE, EC_WORD_FOR, EC_WORD_YOU},
.speechLose = {EC_WORD_DIDN_T, EC_WORD_YOU, EC_WORD_SMELL, EC_WORD_A, EC_WORD_THING, EC_WORD_QUES_EXCL},
- .monSets = gBattleFrontierTrainerMons_Abbie
+ .monSet = gBattleFrontierTrainerMons_Abbie
},
- [74] = {
+ [FRONTIER_TRAINER_BRIANA] = {
.facilityClass = FACILITY_CLASS_AROMA_LADY,
.trainerName = _("BRIANA"),
.speechBefore = {EC_WORD_MY, EC_WORD_BOY, EC_WORD_FRIEND, EC_WORD_WORKS, EC_WORD_TOO, EC_WORD_MUCH},
.speechWin = {EC_WORD_I, EC_WORD_ONLY, EC_WORD_MISS, EC_WORD_HIM, EC_WORD_MORE, EC_WORD_ELLIPSIS},
.speechLose = {EC_WORD_I_AM, EC_WORD_SO, EC_WORD_LONESOME, EC_WORD_WITHOUT, EC_WORD_HIM, EC_WORD_ELLIPSIS},
- .monSets = gBattleFrontierTrainerMons_Briana
+ .monSet = gBattleFrontierTrainerMons_Briana
},
- [75] = {
+ [FRONTIER_TRAINER_ANTONIO] = {
.facilityClass = FACILITY_CLASS_GUITARIST,
.trainerName = _("ANTONIO"),
.speechBefore = {EC_WORD_I, EC_WORD_KNOW, EC_WORD_HOW, EC_WORD_TO, EC_WORD_GO, EC_WORD_GO},
.speechWin = {EC_WORD_BUT, EC_WORD_I, EC_WORD_DON_T, EC_WORD_LIKE, EC_WORD_TO, EC_WORD_DANCE},
.speechLose = {EC_WORD_GO, EC_WORD_GO, EC_WORD_ELLIPSIS, EC_WORD_JUST, EC_MOVE(FLAIL), EC_WORD_ABOUT},
- .monSets = gBattleFrontierTrainerMons_Antonio
+ .monSet = gBattleFrontierTrainerMons_Antonio
},
- [76] = {
+ [FRONTIER_TRAINER_JADEN] = {
.facilityClass = FACILITY_CLASS_GUITARIST,
.trainerName = _("JADEN"),
.speechBefore = {EC_WORD_HELLO, EC_WORD_I, EC_WORD_THINK, EC_WORD_I, EC_WORD_ADORE, EC_WORD_YOU},
.speechWin = {EC_WORD_YOU, EC_WORD_MAKE, EC_WORD_ME, EC_MOVE(THRASH), EC_WORD_IN, EC_MOVE2(FRUSTRATION)},
.speechLose = {EC_WORD_THIS_IS_IT_EXCL, 0xFFFF, 0xFFFF, EC_WORD_GOOD_BYE, EC_WORD_FOREVER, EC_WORD_EXCL},
- .monSets = gBattleFrontierTrainerMons_Jaden
+ .monSet = gBattleFrontierTrainerMons_Jaden
},
- [77] = {
+ [FRONTIER_TRAINER_DAKOTA] = {
.facilityClass = FACILITY_CLASS_GUITARIST,
.trainerName = _("DAKOTA"),
.speechBefore = {EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_TO, EC_WORD_DANCE, EC_WORD_WITH, EC_WORD_POWER},
.speechWin = {EC_WORD_GOT, EC_WORD_IT, EC_WORD_QUES, EC_WORD_DANCE, EC_WORD_WITH, EC_WORD_POWER},
.speechLose = {EC_WORD_OKAY, EC_WORD_YOU, EC_WORD_UNDERSTAND, EC_WORD_ALL_RIGHT, EC_WORD_EXCL, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Dakota
+ .monSet = gBattleFrontierTrainerMons_Dakota
},
- [78] = {
+ [FRONTIER_TRAINER_BRAYDEN] = {
.facilityClass = FACILITY_CLASS_BIRD_KEEPER,
.trainerName = _("BRAYDEN"),
.speechBefore = {EC_WORD_COLOR_CHANGE, EC_WORD_VERSION, EC_WORD_TOYS, EC_WORD_ARE, EC_WORD_USELESS, EC_WORD_EXCL},
.speechWin = {EC_WORD_I, EC_WORD_ONLY, EC_WORD_COLLECT, EC_WORD_NORMAL, EC_WORD_VERSION, EC_WORD_TOYS},
.speechLose = {EC_WORD_I, EC_MOVE2(ATTRACT), EC_WORD_COLOR_CHANGE, EC_WORD_VERSION, EC_WORD_TOYS, EC_WORD_ELLIPSIS},
- .monSets = gBattleFrontierTrainerMons_Brayden
+ .monSet = gBattleFrontierTrainerMons_Brayden
},
- [79] = {
+ [FRONTIER_TRAINER_CORSON] = {
.facilityClass = FACILITY_CLASS_BIRD_KEEPER,
.trainerName = _("CORSON"),
.speechBefore = {EC_WORD_I, EC_WORD_GET, EC_WORD_TO, EC_MOVE2(BEAT_UP), EC_WORD_ON, EC_WORD_YOU},
.speechWin = {EC_WORD_TOO, EC_WORD_EASY, EC_WORD_EXCL, EC_WORD_I_AM, EC_WORD_SO, EC_WORD_COOL},
.speechLose = {EC_WORD_WHY, EC_WORD_QUES_EXCL, 0xFFFF, EC_WORD_I, EC_MOVE2(CURSE), EC_WORD_YOU},
- .monSets = gBattleFrontierTrainerMons_Corson
+ .monSet = gBattleFrontierTrainerMons_Corson
},
- [80] = {
+ [FRONTIER_TRAINER_TREVIN] = {
.facilityClass = FACILITY_CLASS_BIRD_KEEPER,
.trainerName = _("TREVIN"),
.speechBefore = {EC_WORD_THERE, EC_WORD_IS, EC_WORD_NONE, EC_WORD_BETTER, EC_WORD_THAN, EC_WORD_ME},
.speechWin = {EC_WORD_YES_SIR_EXCL, 0xFFFF, 0xFFFF, EC_WORD_I_AM, EC_WORD_THE, EC_WORD_BEST},
.speechLose = {EC_WORD_SERIOUS, EC_WORD_QUES_EXCL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Trevin
+ .monSet = gBattleFrontierTrainerMons_Trevin
},
- [81] = {
+ [FRONTIER_TRAINER_PATRICK] = {
.facilityClass = FACILITY_CLASS_SAILOR,
.trainerName = _("PATRICK"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_PERFECT, EC_WORD_EXCL, EC_WORD_GIVE_UP, EC_WORD_NOW, 0xFFFF},
.speechWin = {EC_WORD_DON_T, EC_WORD_BE, EC_WORD_DISAPPOINTED, EC_WORD_I_AM, EC_WORD_PERFECT, 0xFFFF},
.speechLose = {EC_WORD_BUT, EC_WORD_HOW, EC_WORD_QUES, EC_WORD_I_AM, EC_WORD_PERFECT, EC_WORD_ELLIPSIS},
- .monSets = gBattleFrontierTrainerMons_Patrick
+ .monSet = gBattleFrontierTrainerMons_Patrick
},
- [82] = {
+ [FRONTIER_TRAINER_KADEN] = {
.facilityClass = FACILITY_CLASS_SAILOR,
.trainerName = _("KADEN"),
.speechBefore = {EC_WORD_WHAT, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_UP, EC_WORD_TO, EC_WORD_QUES},
.speechWin = {EC_WORD_YOU, EC_WORD_WERE, EC_WORD_A, EC_WORD_SURPRISE, EC_WORD_TO_ME, EC_WORD_EXCL},
.speechLose = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_KNOW, EC_WORD_WHO, EC_WORD_I_AM, EC_WORD_ELLIPSIS},
- .monSets = gBattleFrontierTrainerMons_Kaden
+ .monSet = gBattleFrontierTrainerMons_Kaden
},
- [83] = {
+ [FRONTIER_TRAINER_MAXWELL] = {
.facilityClass = FACILITY_CLASS_SAILOR,
.trainerName = _("MAXWELL"),
.speechBefore = {EC_WORD_HEY_THERE, EC_WORD_WHO_IS, EC_WORD_YOUR, EC_WORD_RIVAL, EC_WORD_QUES, 0xFFFF},
.speechWin = {EC_WORD_MY, EC_WORD_RIVAL, EC_WORD_IS, EC_WORD_MY, EC_WORD_GIRL, EC_WORD_FRIEND},
.speechLose = {EC_WORD_I_AM, EC_WORD_MAKING, EC_WORD_YOU, EC_WORD_MY, EC_WORD_RIVAL, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Maxwell
+ .monSet = gBattleFrontierTrainerMons_Maxwell
},
- [84] = {
+ [FRONTIER_TRAINER_DARYL] = {
.facilityClass = FACILITY_CLASS_HIKER,
.trainerName = _("DARYL"),
.speechBefore = {EC_WORD_I, EC_WORD_ONLY, EC_WORD_KNOW, EC_WORD_HOW, EC_WORD_TO, EC_MOVE(CHARGE)},
.speechWin = {EC_WORD_AM, EC_WORD_I, EC_WORD_OVERWHELMING, EC_WORD_OR, EC_WORD_WHAT, EC_WORD_QUES},
.speechLose = {EC_WORD_YOU_RE, EC_WORD_GOING, EC_WORD_TO, EC_WORD_A, EC_WORD_LEGEND, EC_WORD_EXCL},
- .monSets = gBattleFrontierTrainerMons_Daryl
+ .monSet = gBattleFrontierTrainerMons_Daryl
},
- [85] = {
+ [FRONTIER_TRAINER_KENNETH] = {
.facilityClass = FACILITY_CLASS_HIKER,
.trainerName = _("KENNETH"),
.speechBefore = {EC_WORD_YOU, EC_WORD_BETTER, EC_WORD_NOT, EC_MOVE2(SLACK_OFF), EC_WORD_WITH, EC_WORD_ME},
.speechWin = {EC_WORD_DID, EC_WORD_MY, EC_MOVE2(TAUNT), EC_WORD_INTIMIDATE, EC_WORD_YOU, EC_WORD_QUES},
.speechLose = {EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Kenneth
+ .monSet = gBattleFrontierTrainerMons_Kenneth
},
- [86] = {
+ [FRONTIER_TRAINER_RICH] = {
.facilityClass = FACILITY_CLASS_HIKER,
.trainerName = _("RICH"),
.speechBefore = {EC_WORD_YOUR, EC_MOVE(FACADE), EC_WORD_DOESN_T, EC_MOVE2(TRICK), EC_WORD_ME, 0xFFFF},
.speechWin = {EC_WORD_SERIOUSLY, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_REALLY, EC_WORD_OK_QUES, 0xFFFF},
.speechLose = {EC_WORD_THAT_WAS, EC_WORD_REALLY, EC_WORD_TOUGH, EC_WORD_ON, EC_WORD_ME, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Rich
+ .monSet = gBattleFrontierTrainerMons_Rich
},
- [87] = {
+ [FRONTIER_TRAINER_CADEN] = {
.facilityClass = FACILITY_CLASS_KINDLER,
.trainerName = _("CADEN"),
.speechBefore = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_BE, EC_WORD_DEFEATED, EC_WORD_EXCL, 0xFFFF},
.speechWin = {EC_WORD_FIRE, EC_WORD_EXCL, 0xFFFF, EC_WORD_FIRE, EC_WORD_EXCL_EXCL, 0xFFFF},
.speechLose = {EC_WORD_I_AM, EC_WORD_TIRED, EC_WORD_ELLIPSIS, EC_WORD_IT_S, EC_WORD_SO, EC_WORD_HOT},
- .monSets = gBattleFrontierTrainerMons_Caden
+ .monSet = gBattleFrontierTrainerMons_Caden
},
- [88] = {
+ [FRONTIER_TRAINER_MARLON] = {
.facilityClass = FACILITY_CLASS_KINDLER,
.trainerName = _("MARLON"),
.speechBefore = {EC_WORD_A, EC_WORD_POKEDEX, EC_WORD_IS, EC_WORD_A_LITTLE, EC_WORD_RADIO, EC_WORD_QUES},
.speechWin = {EC_WORD_A_LITTLE, EC_WORD_RADIO, EC_WORD_HUH_QUES, EC_WORD_THAT_S, EC_WORD_TOTALLY, EC_WORD_COOL},
.speechLose = {EC_WORD_IT_S, EC_WORD_NOT, EC_WORD_QUES, EC_WORD_IS, EC_WORD_POKENAV, EC_WORD_QUES},
- .monSets = gBattleFrontierTrainerMons_Marlon
+ .monSet = gBattleFrontierTrainerMons_Marlon
},
- [89] = {
+ [FRONTIER_TRAINER_NASH] = {
.facilityClass = FACILITY_CLASS_KINDLER,
.trainerName = _("NASH"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_ON, EC_WORD_FIRE, EC_WORD_BABY, EC_WORD_EXCL, 0xFFFF},
.speechWin = {EC_WORD_I, EC_WORD_LEFT, EC_WORD_YOU, EC_WORD_JUST, EC_WORD_AN, EC_MOVE2(EMBER)},
.speechLose = {EC_WORD_AIYEEH, EC_WORD_EXCL_EXCL, 0xFFFF, EC_WORD_NO, EC_WORD_WATER, EC_WORD_PLEASE},
- .monSets = gBattleFrontierTrainerMons_Nash
+ .monSet = gBattleFrontierTrainerMons_Nash
},
- [90] = {
+ [FRONTIER_TRAINER_ROBBY] = {
.facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M,
.trainerName = _("ROBBY"),
.speechBefore = {EC_WORD_HAHAHA, EC_WORD_EXCL, EC_WORD_HAPPY, EC_WORD_TO, EC_WORD_MEET_YOU, EC_WORD_EXCL},
.speechWin = {EC_WORD_I_AM, EC_WORD_THE, EC_WORD_LEADER, EC_WORD_WITH, EC_WORD_REFRESHING, EC_WORD_SERENE_GRACE},
.speechLose = {EC_WORD_I, EC_WORD_WILL, EC_MOVE(THRASH), EC_WORD_MY, EC_WORD_TOYS, EC_WORD_EXCL},
- .monSets = gBattleFrontierTrainerMons_Robby
+ .monSet = gBattleFrontierTrainerMons_Robby
},
- [91] = {
+ [FRONTIER_TRAINER_REECE] = {
.facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M,
.trainerName = _("REECE"),
.speechBefore = {EC_WORD_MY, EC_MOVE2(QUICK_ATTACK), EC_WORD_CAN, EC_WORD_BEAT, EC_WORD_A, EC_MOVE2(TELEPORT)},
.speechWin = {EC_WORD_LIKE, EC_WORD_I, EC_WORD_SAID, EC_WORD_I_AM, EC_WORD_DARN, EC_WORD_FAST},
.speechLose = {EC_WORD_I_WAS, EC_WORD_KIDDING, EC_WORD_ABOUT, EC_WORD_THAT, EC_MOVE2(TELEPORT), EC_WORD_THING},
- .monSets = gBattleFrontierTrainerMons_Reece
+ .monSet = gBattleFrontierTrainerMons_Reece
},
- [92] = {
+ [FRONTIER_TRAINER_KATHRYN] = {
.facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F,
.trainerName = _("KATHRYN"),
.speechBefore = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_TRAIN, EC_WORD_GOOD, EC_WORD_ENOUGH, EC_WORD_QUES},
.speechWin = {EC_WORD_DON_T, EC_MOVE2(TAUNT), EC_WORD_ME, EC_WORD_LIKE, EC_WORD_THAT, EC_WORD_OK_QUES},
.speechLose = {EC_WORD_WHY, EC_WORD_COULDN_T, EC_WORD_I, EC_WORD_WIN, EC_WORD_THIS, EC_WORD_QUES},
- .monSets = gBattleFrontierTrainerMons_Kathryn
+ .monSet = gBattleFrontierTrainerMons_Kathryn
},
- [93] = {
+ [FRONTIER_TRAINER_ELLEN] = {
.facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F,
.trainerName = _("ELLEN"),
.speechBefore = {EC_WORD_CRUSH, EC_WORD_YOU, EC_WORD_LIKE, EC_WORD_AN, EC_WORD_EGG, EC_WORD_EXCL},
.speechWin = {EC_WORD_THAT_WAS, EC_WORD_A, EC_WORD_TASTY, EC_WORD_VICTORY, EC_WORD_FOR, EC_WORD_ME},
.speechLose = {EC_WORD_TOO, EC_WORD_TOUGH, EC_WORD_TO, EC_WORD_CRUSH, EC_WORD_EXCL, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Ellen
+ .monSet = gBattleFrontierTrainerMons_Ellen
},
- [94] = {
+ [FRONTIER_TRAINER_RAMON] = {
.facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M,
.trainerName = _("RAMON"),
.speechBefore = {EC_WORD_OKAY, EC_WORD_EXCL, 0xFFFF, EC_WORD_THIS, EC_WORD_IS, EC_WORD_PERFECTION},
.speechWin = {EC_WORD_I_AM, EC_WORD_HAPPY, EC_WORD_THAT, EC_WORD_I, EC_WORD_WON, EC_WORD_EXCL},
.speechLose = {EC_WORD_IT_S, EC_WORD_A, EC_WORD_SECRET, EC_WORD_WHY, EC_WORD_I_AM, EC_WORD_HAPPY},
- .monSets = gBattleFrontierTrainerMons_Ramon
+ .monSet = gBattleFrontierTrainerMons_Ramon
},
- [95] = {
+ [FRONTIER_TRAINER_ARTHUR] = {
.facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M,
.trainerName = _("ARTHUR"),
.speechBefore = {EC_WORD_HERE_I_COME, EC_WORD_FEELING, EC_WORD_READY, EC_WORD_FOR, EC_WORD_IT, EC_WORD_ALL},
.speechWin = {EC_WORD_THAT_S_IT_EXCL, 0xFFFF, 0xFFFF, EC_WORD_THAT_WAS, EC_WORD_FABULOUS, EC_WORD_EXCL},
.speechLose = {EC_WORD_THAT_WAS, EC_WORD_NOT, EC_WORD_WHAT, EC_WORD_I, EC_WORD_NEED, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Arthur
+ .monSet = gBattleFrontierTrainerMons_Arthur
},
- [96] = {
+ [FRONTIER_TRAINER_ALONDRA] = {
.facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_F,
.trainerName = _("ALONDRA"),
.speechBefore = {EC_WORD_EVERY, EC_WORD_DAY, EC_WORD_IS, EC_WORD_A, EC_WORD_GREAT, EC_WORD_DAY},
.speechWin = {EC_WORD_MY, EC_MOVE2(DIVE), EC_WORD_WILL, EC_WORD_BE, EC_WORD_A, EC_WORD_LEGEND},
.speechLose = {EC_WORD_MY, EC_MOVE2(DIVE), EC_WORD_LEFT, EC_WORD_ME, EC_WORD_COLD, EC_WORD_ELLIPSIS},
- .monSets = gBattleFrontierTrainerMons_Alondra
+ .monSet = gBattleFrontierTrainerMons_Alondra
},
- [97] = {
+ [FRONTIER_TRAINER_ADRIANA] = {
.facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_F,
.trainerName = _("ADRIANA"),
.speechBefore = {EC_WORD_COME, EC_WORD_SEE, EC_WORD_AN, EC_WORD_INCREDIBLE, EC_WORD_SWIFT_SWIM, EC_WORD_EXCL},
.speechWin = {EC_WORD_I, EC_WORD_MAKE, EC_WORD_IT, EC_WORD_LOOK, EC_WORD_SO, EC_WORD_EASY},
.speechLose = {EC_WORD_I_AM, EC_WORD_FEELING, EC_MOVE2(BEAT_UP), EC_WORD_AND, EC_WORD_TIRED, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Adriana
+ .monSet = gBattleFrontierTrainerMons_Adriana
},
- [98] = {
+ [FRONTIER_TRAINER_MALIK] = {
.facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_M,
.trainerName = _("MALIK"),
.speechBefore = {EC_WORD_OH, EC_WORD_NOT, EC_WORD_ANOTHER, EC_WORD_BATTLE, EC_WORD_PLEASE, EC_WORD_ELLIPSIS},
.speechWin = {EC_WORD_I, EC_WORD_FINALLY, EC_WORD_WON, EC_WORD_ELLIPSIS, EC_WORD_I_AM, EC_WORD_TIRED},
.speechLose = {EC_WORD_I, EC_WORD_FINALLY, EC_WORD_LOST, EC_WORD_ELLIPSIS, EC_WORD_I_AM, EC_WORD_TIRED},
- .monSets = gBattleFrontierTrainerMons_Malik
+ .monSet = gBattleFrontierTrainerMons_Malik
},
- [99] = {
+ [FRONTIER_TRAINER_JILL] = {
.facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_F,
.trainerName = _("JILL"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_THE, EC_MOVE2(QUICK_ATTACK), EC_WORD_TRAINER, EC_WORD_EXCL, 0xFFFF},
.speechWin = {EC_WORD_THE, EC_MOVE2(QUICK_ATTACK), EC_WORD_TRAINER, EC_WORD_WINS, EC_WORD_EXCL, 0xFFFF},
.speechLose = {EC_WORD_THE, EC_MOVE2(QUICK_ATTACK), EC_WORD_TRAINER, EC_WORD_GIVES, EC_WORD_UP, EC_WORD_EXCL},
- .monSets = gBattleFrontierTrainerMons_Jill
+ .monSet = gBattleFrontierTrainerMons_Jill
},
- [100] = {
+ [FRONTIER_TRAINER_ERIK] = {
.facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M,
.trainerName = _("ERIK"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_THE, EC_WORD_SPEED_BOOST, EC_WORD_HERO, EC_WORD_EXCL, 0xFFFF},
.speechWin = {EC_WORD_THANK_YOU, EC_WORD_FROM, EC_WORD_THE, EC_WORD_SPEED_BOOST, EC_WORD_HERO, EC_WORD_EXCL},
.speechLose = {EC_WORD_WAAAH, EC_WORD_EXCL_EXCL, 0xFFFF, EC_WORD_NO, EC_WORD_NO, EC_WORD_EXCL_EXCL},
- .monSets = gBattleFrontierTrainerMons_Erik
+ .monSet = gBattleFrontierTrainerMons_Erik
},
- [101] = {
+ [FRONTIER_TRAINER_YAZMIN] = {
.facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F,
.trainerName = _("YAZMIN"),
.speechBefore = {EC_WORD_I, EC_WORD_WOULD, EC_WORD_RATHER, EC_WORD_RUN, EC_WORD_THAN, EC_WORD_BIKE},
.speechWin = {EC_WORD_YES, EC_WORD_I, EC_WORD_WOULD, EC_WORD_MUCH, EC_WORD_RATHER, EC_WORD_RUN},
.speechLose = {EC_WORD_BYE_BYE, EC_WORD_EXCL, EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_RUN_AWAY},
- .monSets = gBattleFrontierTrainerMons_Yazmin
+ .monSet = gBattleFrontierTrainerMons_Yazmin
},
- [102] = {
+ [FRONTIER_TRAINER_JAMAL] = {
.facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M,
.trainerName = _("JAMAL"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_BE, EC_WORD_A, EC_WORD_FATHER},
.speechWin = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_WAIT, EC_WORD_FOR, EC_WORD_MY, EC_WORD_BABY},
.speechLose = {EC_WORD_MY, EC_WORD_BABY, EC_WORD_WILL, EC_WORD_BE, EC_WORD_TOTALLY, EC_WORD_AWESOME},
- .monSets = gBattleFrontierTrainerMons_Jamal
+ .monSet = gBattleFrontierTrainerMons_Jamal
},
- [103] = {
+ [FRONTIER_TRAINER_LESLIE] = {
.facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_F,
.trainerName = _("LESLIE"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_BE, EC_WORD_A, EC_WORD_MOTHER},
.speechWin = {EC_WORD_A, EC_WORD_BABY, EC_WORD_WILL, EC_WORD_BE, EC_WORD_A_LITTLE, EC_WORD_CHALLENGE},
.speechLose = {EC_WORD_I_AM, EC_WORD_TOO, EC_WORD_HAPPY, EC_WORD_TO, EC_WORD_BE, EC_WORD_ANGRY},
- .monSets = gBattleFrontierTrainerMons_Leslie
+ .monSet = gBattleFrontierTrainerMons_Leslie
},
- [104] = {
+ [FRONTIER_TRAINER_DAVE] = {
.facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_M,
.trainerName = _("DAVE"),
.speechBefore = {EC_WORD_WHAT, EC_WORD_SHOULD, EC_WORD_I, EC_WORD_DO, EC_WORD_TODAY, EC_WORD_QUES},
.speechWin = {EC_WORD_I, EC_WORD_SHOULD, EC_WORD_ENJOY, EC_WORD_SOME, EC_WORD_SPORTS, EC_WORD_EXCL},
.speechLose = {EC_WORD_I, EC_WORD_WILL, EC_WORD_GO, EC_WORD_PLAY, EC_WORD_A, EC_WORD_GAME},
- .monSets = gBattleFrontierTrainerMons_Dave
+ .monSet = gBattleFrontierTrainerMons_Dave
},
- [105] = {
+ [FRONTIER_TRAINER_CARLO] = {
.facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_M,
.trainerName = _("CARLO"),
.speechBefore = {EC_WORD_HAH, EC_WORD_EXCL_EXCL, 0xFFFF, EC_WORD_YEAH, EC_WORD_EXCL_EXCL, 0xFFFF},
.speechWin = {EC_WORD_I, EC_WORD_DO, EC_WORD_THINGS, EC_WORD_AT, EC_MOVE(EXTREME_SPEED), EC_WORD_EXCL},
.speechLose = {EC_WORD_I, EC_WORD_LOST, EC_WORD_AT, EC_MOVE(EXTREME_SPEED), EC_WORD_ELLIPSIS, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Carlo
+ .monSet = gBattleFrontierTrainerMons_Carlo
},
- [106] = {
+ [FRONTIER_TRAINER_EMILIA] = {
.facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_F,
.trainerName = _("EMILIA"),
.speechBefore = {EC_WORD_ME, EC_WORD_WORRY, EC_WORD_QUES, EC_WORD_I, EC_WORD_HAVE, EC_WORD_NONE},
.speechWin = {EC_WORD_AHAHA, EC_WORD_SEE, EC_WORD_QUES, EC_WORD_THAT_WAS, EC_WORD_FANTASTIC, EC_WORD_EXCL},
.speechLose = {EC_WORD_AHAHA, EC_WORD_SEE, EC_WORD_QUES, EC_WORD_THAT_WAS, EC_WORD_ENTERTAINING, EC_WORD_EXCL},
- .monSets = gBattleFrontierTrainerMons_Emilia
+ .monSet = gBattleFrontierTrainerMons_Emilia
},
- [107] = {
+ [FRONTIER_TRAINER_DALIA] = {
.facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_F,
.trainerName = _("DALIA"),
.speechBefore = {EC_WORD_MY, EC_WORD_BIKE, EC_WORD_IS, EC_WORD_VERY, EC_WORD_EXPENSIVE, 0xFFFF},
.speechWin = {EC_WORD_DON_T, EC_WORD_COME, EC_WORD_NEAR, EC_WORD_MY, EC_WORD_BIKE, EC_WORD_EXCL},
.speechLose = {EC_WORD_MY, EC_WORD_BIKE, EC_WORD_IS, EC_WORD_MY, EC_WORD_BEST, EC_WORD_FRIEND},
- .monSets = gBattleFrontierTrainerMons_Dalia
+ .monSet = gBattleFrontierTrainerMons_Dalia
},
- [108] = {
+ [FRONTIER_TRAINER_HITOMI] = {
.facilityClass = FACILITY_CLASS_BLACK_BELT,
.trainerName = _("HITOMI"),
.speechBefore = {EC_WORD_YEAH, EC_WORD_EXCL_EXCL, 0xFFFF, EC_WORD_HAH, EC_WORD_EXCL_EXCL, 0xFFFF},
.speechWin = {EC_WORD_WHAT, EC_WORD_QUES_EXCL, 0xFFFF, EC_WORD_I, EC_WORD_WON, EC_WORD_QUES_EXCL},
.speechLose = {EC_WORD_AIYEEH, EC_WORD_EXCL_EXCL, 0xFFFF, EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_EXCL_EXCL},
- .monSets = gBattleFrontierTrainerMons_Hitomi
+ .monSet = gBattleFrontierTrainerMons_Hitomi
},
- [109] = {
+ [FRONTIER_TRAINER_RICARDO] = {
.facilityClass = FACILITY_CLASS_BLACK_BELT,
.trainerName = _("RICARDO"),
.speechBefore = {EC_WORD_COME_ON, EC_WORD_EXCL, EC_WORD_PLAY, EC_WORD_TIME, EC_WORD_IS, EC_WORD_OVER},
.speechWin = {EC_WORD_YOU_RE, EC_WORD_OUT, EC_WORD_OF, EC_WORD_HERE, EC_WORD_EXCL, 0xFFFF},
.speechLose = {EC_WORD_PLEASE, EC_WORD_DON_T, EC_WORD_HIT, EC_WORD_ME, EC_WORD_EXCL, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Ricardo
+ .monSet = gBattleFrontierTrainerMons_Ricardo
},
- [110] = {
+ [FRONTIER_TRAINER_SHIZUKA] = {
.facilityClass = FACILITY_CLASS_BLACK_BELT,
.trainerName = _("SHIZUKA"),
.speechBefore = {EC_WORD_SHOW, EC_WORD_ME, EC_WORD_THAT, EC_WORD_YOU_RE, EC_WORD_SERIOUS, EC_WORD_EXCL},
.speechWin = {EC_WORD_I, EC_WORD_WON_T, EC_WORD_FORGET, EC_WORD_ABOUT, EC_WORD_YOU, 0xFFFF},
.speechLose = {EC_WORD_YOU_RE, EC_WORD_PERFECT, EC_WORD_IN, EC_WORD_EVERY, EC_WORD_WAY, EC_WORD_EXCL},
- .monSets = gBattleFrontierTrainerMons_Shizuka
+ .monSet = gBattleFrontierTrainerMons_Shizuka
},
- [111] = {
+ [FRONTIER_TRAINER_JOANA] = {
.facilityClass = FACILITY_CLASS_BATTLE_GIRL,
.trainerName = _("JOANA"),
.speechBefore = {EC_WORD_YOU_RE, EC_WORD_GOING, EC_WORD_TO, EC_WORD_LOSE, EC_WORD_RIGHT, EC_WORD_AWAY},
.speechWin = {EC_WORD_I_AM, EC_WORD_THE, EC_WORD_WINNER, EC_WORD_HEAR, EC_WORD_ME, EC_MOVE2(ROAR)},
.speechLose = {EC_WORD_I, EC_WORD_REFUSE, EC_WORD_TO, EC_WORD_ACCEPT, EC_WORD_THAT, EC_MOVE(OUTRAGE)},
- .monSets = gBattleFrontierTrainerMons_Joana
+ .monSet = gBattleFrontierTrainerMons_Joana
},
- [112] = {
+ [FRONTIER_TRAINER_KELLY] = {
.facilityClass = FACILITY_CLASS_BATTLE_GIRL,
.trainerName = _("KELLY"),
.speechBefore = {EC_WORD_MY, EC_WORD_NIGHT, EC_WORD_SCHOOL, EC_WORD_IS, EC_WORD_REALLY, EC_WORD_SCARY},
.speechWin = {EC_WORD_A, EC_WORD_LADY, EC_WORD_GHOST, EC_WORD_APPEARS, EC_WORD_THERE, 0xFFFF},
.speechLose = {EC_WORD_THE, EC_WORD_HOME, EC_WORD_WORK, EC_WORD_IS, EC_WORD_AWFULLY, EC_WORD_SCARY},
- .monSets = gBattleFrontierTrainerMons_Kelly
+ .monSet = gBattleFrontierTrainerMons_Kelly
},
- [113] = {
+ [FRONTIER_TRAINER_RAYNA] = {
.facilityClass = FACILITY_CLASS_BATTLE_GIRL,
.trainerName = _("RAYNA"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_NO_1, EC_WORD_WHEN, EC_WORD_IT_S, EC_WORD_ABOUT, EC_WORD_POWER},
.speechWin = {EC_WORD_UNDERSTAND, EC_WORD_MY, EC_WORD_POWER, EC_WORD_NOW, EC_WORD_QUES, 0xFFFF},
.speechLose = {EC_WORD_TERRIBLE, EC_WORD_ELLIPSIS, 0xFFFF, EC_WORD_I_AM, EC_WORD_TERRIBLE, EC_WORD_ELLIPSIS},
- .monSets = gBattleFrontierTrainerMons_Rayna
+ .monSet = gBattleFrontierTrainerMons_Rayna
},
- [114] = {
+ [FRONTIER_TRAINER_EVAN] = {
.facilityClass = FACILITY_CLASS_EXPERT_M,
.trainerName = _("EVAN"),
.speechBefore = {EC_WORD_EVERY, EC_WORD_BATTLE, EC_WORD_HAS, EC_WORD_A, EC_WORD_SMELL, 0xFFFF},
.speechWin = {EC_WORD_OH, EC_WORD_EXCL, EC_WORD_THE, EC_MOVE(SWEET_SCENT), EC_WORD_OF, EC_WORD_VICTORY},
.speechLose = {EC_WORD_THE, EC_WORD_AWFUL, EC_WORD_STENCH, EC_WORD_OF, EC_WORD_A, EC_WORD_LOSS},
- .monSets = gBattleFrontierTrainerMons_Evan
+ .monSet = gBattleFrontierTrainerMons_Evan
},
- [115] = {
+ [FRONTIER_TRAINER_JORDAN] = {
.facilityClass = FACILITY_CLASS_EXPERT_M,
.trainerName = _("JORDAN"),
.speechBefore = {EC_WORD_GOOD, EC_WORD_EXCL, 0xFFFF, EC_WORD_COME_ON, EC_WORD_EXCL_EXCL, 0xFFFF},
.speechWin = {EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_BEAT, EC_WORD_ME, EC_WORD_EXCL, 0xFFFF},
.speechLose = {EC_WORD_WHAT, EC_WORD_QUES_EXCL, 0xFFFF, EC_WORD_BUT, EC_WORD_HOW, EC_WORD_QUES},
- .monSets = gBattleFrontierTrainerMons_Jordan
+ .monSet = gBattleFrontierTrainerMons_Jordan
},
- [116] = {
+ [FRONTIER_TRAINER_JOEL] = {
.facilityClass = FACILITY_CLASS_EXPERT_M,
.trainerName = _("JOEL"),
.speechBefore = {EC_WORD_FUFUFU, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
.speechWin = {EC_WORD_GIGGLE, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
.speechLose = {EC_WORD_HAHAHA, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Joel
+ .monSet = gBattleFrontierTrainerMons_Joel
},
- [117] = {
+ [FRONTIER_TRAINER_KRISTEN] = {
.facilityClass = FACILITY_CLASS_EXPERT_F,
.trainerName = _("KRISTEN"),
.speechBefore = {EC_WORD_HAHAHA, EC_WORD_ELLIPSIS, 0xFFFF, EC_WORD_A, EC_WORD_KID, EC_WORD_ELLIPSIS},
.speechWin = {EC_WORD_JUST, EC_WORD_A_LITTLE, EC_WORD_KID, EC_WORD_AFTER, EC_WORD_ALL, EC_WORD_EXCL},
.speechLose = {EC_WORD_A, EC_WORD_TOUGH, EC_WORD_KID, EC_WORD_HUH_QUES, EC_WORD_HUMPH, EC_WORD_EXCL},
- .monSets = gBattleFrontierTrainerMons_Kristen
+ .monSet = gBattleFrontierTrainerMons_Kristen
},
- [118] = {
+ [FRONTIER_TRAINER_SELPHY] = {
.facilityClass = FACILITY_CLASS_EXPERT_F,
.trainerName = _("SELPHY"),
.speechBefore = {EC_WORD_HUH_QUES, EC_WORD_WHAT, EC_WORD_IS_IT_QUES, 0xFFFF, 0xFFFF, 0xFFFF},
.speechWin = {EC_WORD_OH, EC_WORD_YES, EC_WORD_EXCL, EC_WORD_WHY, EC_WORD_NOT, EC_WORD_QUES},
.speechLose = {EC_WORD_OH, EC_WORD_NO, EC_WORD_EXCL, EC_WORD_WHY, EC_WORD_NOT, EC_WORD_QUES},
- .monSets = gBattleFrontierTrainerMons_Selphy
+ .monSet = gBattleFrontierTrainerMons_Selphy
},
- [119] = {
+ [FRONTIER_TRAINER_CHLOE] = {
.facilityClass = FACILITY_CLASS_EXPERT_F,
.trainerName = _("CHLOE"),
.speechBefore = {EC_WORD_COME, EC_WORD_WE, EC_WORD_WILL, EC_WORD_DO, EC_WORD_BATTLE, EC_WORD_NOW},
.speechWin = {EC_WORD_MORE, EC_WORD_EXCL, 0xFFFF, EC_WORD_ANOTHER, EC_WORD_BATTLE, EC_WORD_EXCL},
.speechLose = {EC_WORD_OH, EC_WORD_EXCL, 0xFFFF, EC_WORD_STRONG, EC_WORD_YOU, EC_WORD_ARE},
- .monSets = gBattleFrontierTrainerMons_Chloe
+ .monSet = gBattleFrontierTrainerMons_Chloe
},
- [120] = {
+ [FRONTIER_TRAINER_NORTON] = {
.facilityClass = FACILITY_CLASS_PSYCHIC_M,
.trainerName = _("NORTON"),
.speechBefore = {EC_WORD_I, EC_WORD_KNOW, EC_WORD_ONLY, EC_WORD_YOU, 0xFFFF, 0xFFFF},
.speechWin = {EC_WORD_EXCUSE_ME, EC_WORD_BUT, EC_WORD_YOU_RE, EC_WORD_A, EC_WORD_PUSHOVER, EC_WORD_EXCL},
.speechLose = {EC_WORD_YOU_RE, EC_WORD_SOME, EC_WORD_KIND, EC_WORD_OF, EC_WORD_AWESOME, EC_WORD_EXCL},
- .monSets = gBattleFrontierTrainerMons_Norton
+ .monSet = gBattleFrontierTrainerMons_Norton
},
- [121] = {
+ [FRONTIER_TRAINER_LUKAS] = {
.facilityClass = FACILITY_CLASS_PSYCHIC_M,
.trainerName = _("LUKAS"),
.speechBefore = {EC_WORD_MY, EC_WORD_JOKING, EC_WORD_IS, EC_WORD_PRETTY, EC_WORD_TERRIBLE, EC_WORD_ELLIPSIS},
.speechWin = {EC_WORD_YOUR, EC_WORD_ROCK_HEAD, EC_WORD_EXISTS, EC_WORD_TO, EC_WORD_SHINE, EC_WORD_EXCL},
.speechLose = {EC_WORD_YOUR, EC_WORD_ROCK_HEAD, EC_WORD_COME, EC_WORD_TO, EC_WORD_SHINE, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Lukas
+ .monSet = gBattleFrontierTrainerMons_Lukas
},
- [122] = {
+ [FRONTIER_TRAINER_ZACH] = {
.facilityClass = FACILITY_CLASS_PSYCHIC_M,
.trainerName = _("ZACH"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_AN, EC_WORD_EXCELLENT, EC_MOVE2(MIMIC), EC_WORD_OF, EC_WORD_POKEMON},
.speechWin = {EC_WORD_I_AM, EC_WORD_HAPPY, EC_WORD_LIKE, EC_WORD_A_LITTLE, EC_POKEMON2(TOGEPI), EC_WORD_EXCL},
.speechLose = {EC_WORD_I_AM, EC_WORD_ANGRY, EC_WORD_LIKE, EC_WORD_A, EC_POKEMON2(MANKEY), EC_WORD_EXCL},
- .monSets = gBattleFrontierTrainerMons_Zach
+ .monSet = gBattleFrontierTrainerMons_Zach
},
- [123] = {
+ [FRONTIER_TRAINER_KAITLYN] = {
.facilityClass = FACILITY_CLASS_PSYCHIC_F,
.trainerName = _("KAITLYN"),
.speechBefore = {EC_WORD_I, EC_WORD_CRUSH, EC_WORD_THINGS, EC_WORD_WITH, EC_WORD_PSYCHIC, EC_WORD_POWER},
.speechWin = {EC_WORD_MY, EC_WORD_VICTORY, EC_WORD_WILL, EC_WORD_MAKE, EC_WORD_THE, EC_WORD_NEWS},
.speechLose = {EC_WORD_NO, EC_WORD_NO, EC_WORD_ELLIPSIS, EC_WORD_THIS, EC_WORD_WON_T, EC_WORD_DO},
- .monSets = gBattleFrontierTrainerMons_Kaitlyn
+ .monSet = gBattleFrontierTrainerMons_Kaitlyn
},
- [124] = {
+ [FRONTIER_TRAINER_BREANNA] = {
.facilityClass = FACILITY_CLASS_PSYCHIC_F,
.trainerName = _("BREANNA"),
.speechBefore = {EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_WILL, EC_WORD_CRUSH, EC_WORD_YOU, EC_WORD_EXCL},
.speechWin = {EC_WORD_HAVE, EC_WORD_SOME, EC_WORD_MORE, EC_WORD_OF, EC_WORD_THIS, EC_WORD_EXCL},
.speechLose = {EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_GUTS, EC_WORD_AND, EC_WORD_SKILL, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Breanna
+ .monSet = gBattleFrontierTrainerMons_Breanna
},
- [125] = {
+ [FRONTIER_TRAINER_KENDRA] = {
.facilityClass = FACILITY_CLASS_PSYCHIC_F,
.trainerName = _("KENDRA"),
.speechBefore = {EC_WORD_IF, EC_WORD_YOU_RE, EC_WORD_SMART, EC_WORD_STOP, EC_WORD_RIGHT, EC_WORD_NOW},
.speechWin = {EC_WORD_I, EC_WORD_SAID, EC_WORD_THAT, EC_WORD_YOU, EC_WORD_SHOULD, EC_WORD_STOP},
.speechLose = {EC_WORD_WHY, EC_WORD_DIDN_T, EC_WORD_YOU, EC_WORD_STOP, EC_WORD_QUES, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Kendra
+ .monSet = gBattleFrontierTrainerMons_Kendra
},
- [126] = {
+ [FRONTIER_TRAINER_MOLLY] = {
.facilityClass = FACILITY_CLASS_HEX_MANIAC,
.trainerName = _("MOLLY"),
.speechBefore = {EC_WORD_WILL, EC_WORD_MY, EC_WORD_CUTE_CHARM, EC_MOVE2(ATTRACT), EC_WORD_YOU, EC_WORD_QUES},
.speechWin = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_MY, EC_WORD_TOYS, EC_WORD_NOW},
.speechLose = {EC_WORD_OH, EC_WORD_HOW, EC_WORD_COULD, EC_WORD_YOU, EC_WORD_QUES, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Molly
+ .monSet = gBattleFrontierTrainerMons_Molly
},
- [127] = {
+ [FRONTIER_TRAINER_JAZMIN] = {
.facilityClass = FACILITY_CLASS_HEX_MANIAC,
.trainerName = _("JAZMIN"),
.speechBefore = {EC_WORD_I, EC_WORD_FORECAST, EC_WORD_TERRIBLE, EC_WORD_THINGS, EC_WORD_FOR, EC_WORD_YOU},
.speechWin = {EC_WORD_THERE, EC_WORD_WASN_T, EC_WORD_MY, EC_WORD_FORECAST, EC_WORD_RIGHT, EC_WORD_QUES},
.speechLose = {EC_WORD_MY, EC_MOVE2(FORESIGHT), EC_WORD_DIDN_T, EC_WORD_SHOW, EC_WORD_ME, EC_WORD_THIS},
- .monSets = gBattleFrontierTrainerMons_Jazmin
+ .monSet = gBattleFrontierTrainerMons_Jazmin
},
- [128] = {
+ [FRONTIER_TRAINER_KELSEY] = {
.facilityClass = FACILITY_CLASS_HEX_MANIAC,
.trainerName = _("KELSEY"),
.speechBefore = {EC_WORD_I, EC_WORD_HAVEN_T, EC_WORD_SLEPT, EC_WORD_IN, EC_WORD_DAYS, EC_WORD_ELLIPSIS},
.speechWin = {EC_WORD_MY, EC_WORD_SLEEP, EC_WORD_WILL, EC_WORD_BE, EC_WORD_EXCELLENT, EC_WORD_NOW},
.speechLose = {EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_DESTROYED, EC_WORD_MY, EC_WORD_SLEEP, EC_WORD_ELLIPSIS},
- .monSets = gBattleFrontierTrainerMons_Kelsey
+ .monSet = gBattleFrontierTrainerMons_Kelsey
},
- [129] = {
+ [FRONTIER_TRAINER_JALEN] = {
.facilityClass = FACILITY_CLASS_POKEMANIAC,
.trainerName = _("JALEN"),
.speechBefore = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_ALLOW, EC_WORD_POKEMON, EC_WORD_TO, EC_MOVE(THRASH)},
.speechWin = {EC_WORD_HAHAHA, EC_WORD_EXCL, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_ANGRY, EC_WORD_QUES},
.speechLose = {EC_WORD_WHY, EC_WORD_IS, EC_WORD_THIS, EC_WORD_SO, EC_WORD_HARD, EC_WORD_QUES},
- .monSets = gBattleFrontierTrainerMons_Jalen
+ .monSet = gBattleFrontierTrainerMons_Jalen
},
- [130] = {
+ [FRONTIER_TRAINER_GRIFFEN] = {
.facilityClass = FACILITY_CLASS_POKEMANIAC,
.trainerName = _("GRIFFEN"),
.speechBefore = {EC_WORD_I, EC_MOVE2(SWALLOW), EC_MOVE2(SLUDGE), EC_WORD_TO, EC_MOVE2(TRANSFORM), EC_WORD_MYSELF},
.speechWin = {EC_WORD_I, EC_WORD_HAVE, EC_WORD_A, EC_MOVE(GROWTH), EC_WORD_OF, EC_MOVE2(ACID_ARMOR)},
.speechLose = {EC_WORD_I, EC_WORD_HAVE, EC_WORD_A, EC_MOVE(GROWTH), EC_WORD_OF, EC_WORD_SUCTION_CUPS},
- .monSets = gBattleFrontierTrainerMons_Griffen
+ .monSet = gBattleFrontierTrainerMons_Griffen
},
- [131] = {
+ [FRONTIER_TRAINER_XANDER] = {
.facilityClass = FACILITY_CLASS_POKEMANIAC,
.trainerName = _("XANDER"),
.speechBefore = {EC_WORD_I, EC_WORD_GOT, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_ON, EC_WORD_RENTAL},
.speechWin = {EC_WORD_IT_S, EC_WORD_INCREDIBLE, EC_WORD_MY, EC_WORD_RENTAL, EC_WORD_POKEMON, EC_WORD_WON},
.speechLose = {EC_WORD_RENTAL, EC_WORD_POKEMON, EC_WORD_AREN_T, EC_WORD_UP, EC_WORD_TO, EC_MOVE2(SCRATCH)},
- .monSets = gBattleFrontierTrainerMons_Xander
+ .monSet = gBattleFrontierTrainerMons_Xander
},
- [132] = {
+ [FRONTIER_TRAINER_MARVIN] = {
.facilityClass = FACILITY_CLASS_GENTLEMAN,
.trainerName = _("MARVIN"),
.speechBefore = {EC_WORD_YOU_RE, EC_WORD_UP, EC_WORD_TO, EC_WORD_THE, EC_WORD_CHALLENGE, EC_WORD_QUES},
.speechWin = {EC_WORD_I, EC_WORD_DIDN_T, EC_WORD_THINK, EC_WORD_YOU_RE, EC_WORD_GOOD, EC_WORD_ENOUGH},
.speechLose = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_PERFECT, EC_WORD_THANK_YOU, EC_WORD_SO, EC_WORD_MUCH},
- .monSets = gBattleFrontierTrainerMons_Marvin
+ .monSet = gBattleFrontierTrainerMons_Marvin
},
- [133] = {
+ [FRONTIER_TRAINER_BRENNAN] = {
.facilityClass = FACILITY_CLASS_GENTLEMAN,
.trainerName = _("BRENNAN"),
.speechBefore = {EC_WORD_I, EC_MOVE2(WISH), EC_WORD_TO, EC_WORD_SEE, EC_WORD_THE, EC_WORD_NEWS},
.speechWin = {EC_WORD_COMICS, EC_WORD_GET, EC_WORD_DAMP, EC_WORD_FROM, EC_WORD_DRIZZLE, EC_WORD_QUES},
.speechLose = {EC_WORD_THE, EC_WORD_TIGHT, EC_WORD_MONEY, EC_WORD_LIVING, EC_WORD_CHANNEL, EC_WORD_QUES_EXCL},
- .monSets = gBattleFrontierTrainerMons_Brennan
+ .monSet = gBattleFrontierTrainerMons_Brennan
},
- [134] = {
+ [FRONTIER_TRAINER_BALEY] = {
.facilityClass = FACILITY_CLASS_BUG_MANIAC,
.trainerName = _("BALEY"),
.speechBefore = {EC_MOVE(SCREECH), EC_WORD_IS, EC_WORD_LIKE, EC_WORD_MUSIC, EC_WORD_TO_ME, EC_WORD_EXCL},
.speechWin = {EC_WORD_MY, EC_MOVE(SCREECH), EC_WORD_STRATEGY, EC_WORD_IS, EC_WORD_THE, EC_WORD_BEST},
.speechLose = {EC_WORD_YOU_RE, EC_WORD_SOUNDPROOF, EC_WORD_QUES, 0xFFFF, 0xFFFF, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Baley
+ .monSet = gBattleFrontierTrainerMons_Baley
},
- [135] = {
+ [FRONTIER_TRAINER_ZACKARY] = {
.facilityClass = FACILITY_CLASS_RUIN_MANIAC,
.trainerName = _("ZACKARY"),
.speechBefore = {EC_WORD_CAN, EC_WORD_YOU, EC_MOVE(DIG), EC_WORD_IT, EC_WORD_YO, EC_WORD_QUES},
.speechWin = {EC_MOVE2(TAKE_DOWN), EC_WORD_TAKE, EC_WORD_A, EC_MOVE2(DIVE), EC_WORD_YO, EC_WORD_YO},
.speechLose = {EC_WORD_BREAK, EC_WORD_DOWN, EC_MOVE2(DIVE), EC_WORD_TIME, EC_WORD_FOR, EC_WORD_ME},
- .monSets = gBattleFrontierTrainerMons_Zackary
+ .monSet = gBattleFrontierTrainerMons_Zackary
},
- [136] = {
+ [FRONTIER_TRAINER_GABRIEL] = {
.facilityClass = FACILITY_CLASS_COLLECTOR,
.trainerName = _("GABRIEL"),
.speechBefore = {EC_MOVE2(POUND), EC_WORD_THE, EC_WORD_THICK_FAT, EC_WORD_ON, EC_WORD_MY, EC_MOVE2(BELLY_DRUM)},
.speechWin = {EC_MOVE2(POUND), EC_WORD_MY, EC_MOVE2(BELLY_DRUM), EC_MOVE2(POUND), EC_WORD_MY, EC_MOVE2(BELLY_DRUM)},
.speechLose = {EC_WORD_MY, EC_MOVE2(BELLY_DRUM), EC_WORD_WAS, EC_WORD_TOO_WEAK, EC_WORD_ELLIPSIS, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Gabriel
+ .monSet = gBattleFrontierTrainerMons_Gabriel
},
- [137] = {
+ [FRONTIER_TRAINER_EMILY] = {
.facilityClass = FACILITY_CLASS_PARASOL_LADY,
.trainerName = _("EMILY"),
.speechBefore = {EC_WORD_HOW, EC_WORD_ABOUT, EC_WORD_A_TINY_BIT, EC_WORD_OF, EC_MOVE(HYPNOSIS), EC_WORD_QUES},
.speechWin = {EC_WORD_MY, EC_MOVE(HYPNOSIS), EC_WORD_STRATEGY, EC_WORD_WORKS, EC_WORD_TO, EC_WORD_PERFECTION},
.speechLose = {EC_WORD_MY, EC_MOVE(HYPNOSIS), EC_WORD_STRATEGY, EC_WORD_WENT, EC_WORD_BADLY, EC_WORD_ELLIPSIS},
- .monSets = gBattleFrontierTrainerMons_Emily
+ .monSet = gBattleFrontierTrainerMons_Emily
},
- [138] = {
+ [FRONTIER_TRAINER_JORDYN] = {
.facilityClass = FACILITY_CLASS_BEAUTY,
.trainerName = _("JORDYN"),
.speechBefore = {EC_WORD_YOU, EC_WORD_DON_T, EC_WORD_KNOW, EC_WORD_MY, EC_WORD_SECRET, EC_WORD_ELLIPSIS},
.speechWin = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_AS, EC_WORD_I, EC_WORD_APPEAR, EC_WORD_ELLIPSIS},
.speechLose = {EC_WORD_BUT, EC_WORD_HOW, EC_WORD_DID, EC_WORD_YOU, EC_WORD_KNOW, EC_WORD_QUES},
- .monSets = gBattleFrontierTrainerMons_Jordyn
+ .monSet = gBattleFrontierTrainerMons_Jordyn
},
- [139] = {
+ [FRONTIER_TRAINER_SOFIA] = {
.facilityClass = FACILITY_CLASS_AROMA_LADY,
.trainerName = _("SOFIA"),
.speechBefore = {EC_POKEMON(LOUDRED), EC_WORD_PROBABLY, EC_WORD_HAS, EC_WORD_A, EC_MOVE(SWEET_SCENT), 0xFFFF},
.speechWin = {EC_WORD_THAT_S, EC_WORD_THE, EC_WORD_FEELING, EC_WORD_THAT, EC_WORD_I, EC_WORD_GET},
.speechLose = {EC_WORD_I, EC_WORD_WORK, EC_WORD_AT, EC_WORD_THE, EC_WORD_DEPT_STORE, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Sofia
+ .monSet = gBattleFrontierTrainerMons_Sofia
},
- [140] = {
+ [FRONTIER_TRAINER_BRADEN] = {
.facilityClass = FACILITY_CLASS_COOLTRAINER_M,
.trainerName = _("BRADEN"),
.speechBefore = {EC_WORD_I_CHOOSE_YOU, EC_WORD_EXCL, 0xFFFF, EC_WORD_THIS_IS_IT_EXCL, 0xFFFF, 0xFFFF},
.speechWin = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_PRETTY, EC_WORD_AWESOME, EC_WORD_ABOUT, EC_WORD_MYSELF},
.speechLose = {EC_WORD_ALL_RIGHT, EC_WORD_EXCL, 0xFFFF, EC_WORD_I, EC_WORD_SURRENDER, EC_WORD_EXCL},
- .monSets = gBattleFrontierTrainerMons_Braden
+ .monSet = gBattleFrontierTrainerMons_Braden
},
- [141] = {
+ [FRONTIER_TRAINER_KAYDEN] = {
.facilityClass = FACILITY_CLASS_COOLTRAINER_M,
.trainerName = _("KAYDEN"),
.speechBefore = {EC_WORD_THEY, EC_WORD_OVERDO, EC_WORD_THAT, EC_WORD_GOURMET, EC_WORD_THING, EC_WORD_ELLIPSIS},
.speechWin = {EC_WORD_THAT, EC_WORD_GOURMET, EC_WORD_THING, EC_WORD_ISN_T, EC_WORD_FOR, EC_WORD_ME},
.speechLose = {EC_WORD_HEY, EC_WORD_THIS, EC_WORD_IS, EC_WORD_PRETTY, EC_WORD_TASTY, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Kayden
+ .monSet = gBattleFrontierTrainerMons_Kayden
},
- [142] = {
+ [FRONTIER_TRAINER_COOPER] = {
.facilityClass = FACILITY_CLASS_COOLTRAINER_M,
.trainerName = _("COOPER"),
.speechBefore = {EC_WORD_THIS, EC_WORD_SHOULD, EC_WORD_ABSOLUTELY, EC_WORD_BE, EC_WORD_A, EC_WORD_PUSHOVER},
.speechWin = {EC_WORD_THAT_WAS, EC_WORD_TOO, EC_WORD_EXCITING, EC_WORD_FOR, EC_WORD_ME, EC_WORD_ELLIPSIS},
.speechLose = {EC_WORD_PLEASE, EC_WORD_EXCL, 0xFFFF, EC_WORD_SORRY, EC_WORD_I_AM, EC_WORD_SORRY},
- .monSets = gBattleFrontierTrainerMons_Cooper
+ .monSet = gBattleFrontierTrainerMons_Cooper
},
- [143] = {
+ [FRONTIER_TRAINER_JULIA] = {
.facilityClass = FACILITY_CLASS_COOLTRAINER_F,
.trainerName = _("JULIA"),
.speechBefore = {EC_WORD_SPIRIT, EC_WORD_ALONE, EC_WORD_WON_T, EC_WORD_MAKE, EC_WORD_YOU, EC_WORD_WIN},
.speechWin = {EC_WORD_YOU, EC_WORD_SHOULD, EC_WORD_ACCEPT, EC_WORD_THIS, EC_WORD_WITH, EC_WORD_SERENE_GRACE},
.speechLose = {EC_WORD_FOR_NOW, EC_WORD_GOOD_BYE, EC_WORD_BUT, EC_WORD_IT_S, EC_WORD_NOT, EC_WORD_OVER},
- .monSets = gBattleFrontierTrainerMons_Julia
+ .monSet = gBattleFrontierTrainerMons_Julia
},
- [144] = {
+ [FRONTIER_TRAINER_AMARA] = {
.facilityClass = FACILITY_CLASS_COOLTRAINER_F,
.trainerName = _("AMARA"),
.speechBefore = {EC_WORD_WROOOAAR_EXCL, EC_WORD_EXCL_EXCL, EC_WORD_I_AM, EC_WORD_SO, EC_WORD_READY, EC_WORD_EXCL_EXCL},
.speechWin = {EC_WORD_I, EC_WORD_LOSE, EC_WORD_MYSELF, EC_WORD_IF, EC_WORD_IT_S, EC_WORD_EXCITING},
.speechLose = {EC_WORD_THAT_S, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_TO, EC_MOVE2(TACKLE), EC_WORD_EXCL},
- .monSets = gBattleFrontierTrainerMons_Amara
+ .monSet = gBattleFrontierTrainerMons_Amara
},
- [145] = {
+ [FRONTIER_TRAINER_LYNN] = {
.facilityClass = FACILITY_CLASS_COOLTRAINER_F,
.trainerName = _("LYNN"),
.speechBefore = {EC_WORD_YOUR, EC_WORD_SECRET, EC_WORD_CAN_T, EC_WORD_BE, EC_WORD_HIDDEN, EC_WORD_FOREVER},
.speechWin = {EC_WORD_I, EC_WORD_KNOW, EC_WORD_YOUR, EC_WORD_SECRET, EC_WORD_NOW, EC_WORD_EXCL},
.speechLose = {EC_WORD_YOU, EC_WORD_CAN_T, EC_MOVE(SAFEGUARD), EC_WORD_YOUR, EC_WORD_OWN, EC_WORD_SECRET},
- .monSets = gBattleFrontierTrainerMons_Lynn
+ .monSet = gBattleFrontierTrainerMons_Lynn
},
- [146] = {
+ [FRONTIER_TRAINER_JOVAN] = {
.facilityClass = FACILITY_CLASS_PKMN_RANGER_M,
.trainerName = _("JOVAN"),
.speechBefore = {EC_WORD_YOUR, EC_WORD_BATTLE, EC_WORD_SENSE, EC_WORD_IS, EC_WORD_SADLY, EC_WORD_LACKING},
.speechWin = {EC_WORD_MY, EC_WORD_BATTLE, EC_WORD_SENSE, EC_WORD_IS, EC_WORD_COOL, EC_WORD_ISN_T_IT_QUES},
.speechLose = {EC_WORD_I_WAS, EC_WORD_MINUS, EC_WORD_MY, EC_WORD_NORMAL, EC_WORD_POWER, EC_WORD_TODAY},
- .monSets = gBattleFrontierTrainerMons_Jovan
+ .monSet = gBattleFrontierTrainerMons_Jovan
},
- [147] = {
+ [FRONTIER_TRAINER_DOMINIC] = {
.facilityClass = FACILITY_CLASS_PKMN_RANGER_M,
.trainerName = _("DOMINIC"),
.speechBefore = {EC_WORD_I, EC_WORD_HAVE, EC_WORD_THIS, EC_WORD_EXCELLENT, EC_WORD_CAMERA, 0xFFFF},
.speechWin = {EC_WORD_MY, EC_WORD_CAMERA, EC_WORD_WAS, EC_WORD_AWFULLY, EC_WORD_EXPENSIVE, 0xFFFF},
.speechLose = {EC_WORD_MY, EC_WORD_CAMERA, EC_WORD_DOESN_T, EC_WORD_MISS, EC_WORD_A, EC_WORD_THING},
- .monSets = gBattleFrontierTrainerMons_Dominic
+ .monSet = gBattleFrontierTrainerMons_Dominic
},
- [148] = {
+ [FRONTIER_TRAINER_NIKOLAS] = {
.facilityClass = FACILITY_CLASS_PKMN_RANGER_M,
.trainerName = _("NIKOLAS"),
.speechBefore = {EC_WORD_I, EC_MOVE2(MIMIC), EC_WORD_POKEMON, EC_WORD_AFTER, EC_WORD_EVERY, EC_WORD_BATTLE},
.speechWin = {EC_WORD_IF_I_WIN, EC_WORD_I, EC_WORD_PRETEND, EC_WORD_I_AM, EC_WORD_A, EC_POKEMON2(TAUROS)},
.speechLose = {EC_WORD_IF_I_LOSE, EC_WORD_I, EC_WORD_PRETEND, EC_WORD_I_AM, EC_WORD_A, EC_POKEMON2(MILTANK)},
- .monSets = gBattleFrontierTrainerMons_Nikolas
+ .monSet = gBattleFrontierTrainerMons_Nikolas
},
- [149] = {
+ [FRONTIER_TRAINER_VALERIA] = {
.facilityClass = FACILITY_CLASS_PKMN_RANGER_F,
.trainerName = _("VALERIA"),
.speechBefore = {EC_WORD_I, EC_MOVE2(WISH), EC_WORD_YOU, EC_WORD_WOULD, EC_WORD_NOT, EC_MOVE2(GLARE)},
.speechWin = {EC_WORD_YOU_RE, EC_WORD_MEAN, EC_WORD_EXCL, EC_WORD_I, EC_WORD_MEAN, EC_WORD_REALLY},
.speechLose = {EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_A, EC_WORD_REALLY, EC_MOVE(SCARY_FACE), EC_WORD_EXCL},
- .monSets = gBattleFrontierTrainerMons_Valeria
+ .monSet = gBattleFrontierTrainerMons_Valeria
},
- [150] = {
+ [FRONTIER_TRAINER_DELANEY] = {
.facilityClass = FACILITY_CLASS_PKMN_RANGER_F,
.trainerName = _("DELANEY"),
.speechBefore = {EC_WORD_SCHOOL, EC_WORD_IS, EC_WORD_OVER, EC_WORD_TIME, EC_WORD_TO, EC_WORD_PLAY},
.speechWin = {EC_WORD_MY, EC_WORD_BOY, EC_WORD_FRIEND, EC_WORD_IS, EC_WORD_FROM, EC_WORD_SCHOOL},
.speechLose = {EC_WORD_I, EC_WORD_HAVE, EC_WORD_TO, EC_WORD_WORK, EC_WORD_NEXT, EC_WORD_WEEK},
- .monSets = gBattleFrontierTrainerMons_Delaney
+ .monSet = gBattleFrontierTrainerMons_Delaney
},
- [151] = {
+ [FRONTIER_TRAINER_MEGHAN] = {
.facilityClass = FACILITY_CLASS_PKMN_RANGER_F,
.trainerName = _("MEGHAN"),
.speechBefore = {EC_WORD_SCHOOL, EC_WORD_IS, EC_WORD_OUT, EC_WORD_TIME, EC_WORD_TO, EC_WORD_PLAY},
.speechWin = {EC_WORD_MY, EC_WORD_BOY, EC_WORD_FRIEND, EC_WORD_LIKES, EC_WORD_COMICS, 0xFFFF},
.speechLose = {EC_WORD_IT_S, EC_WORD_BACK, EC_WORD_TO, EC_WORD_SCHOOL, EC_WORD_SOON, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Meghan
+ .monSet = gBattleFrontierTrainerMons_Meghan
},
- [152] = {
+ [FRONTIER_TRAINER_ROBERTO] = {
.facilityClass = FACILITY_CLASS_DRAGON_TAMER,
.trainerName = _("ROBERTO"),
.speechBefore = {EC_WORD_DRAGON, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_INVINCIBLE, EC_WORD_EXCL, 0xFFFF},
.speechWin = {EC_WORD_YOU, EC_WORD_WEREN_T, EC_WORD_BAD, EC_WORD_I_WAS, EC_WORD_JUST, EC_WORD_BETTER},
.speechLose = {EC_WORD_AREN_T, EC_WORD_YOU, EC_WORD_SATISFIED, EC_WORD_YET, EC_WORD_QUES, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Roberto
+ .monSet = gBattleFrontierTrainerMons_Roberto
},
- [153] = {
+ [FRONTIER_TRAINER_DAMIAN] = {
.facilityClass = FACILITY_CLASS_DRAGON_TAMER,
.trainerName = _("DAMIAN"),
.speechBefore = {EC_WORD_MY, EC_WORD_PURE_POWER, EC_WORD_IS, EC_WORD_MACHINE, EC_WORD_LIKE, EC_WORD_EXCL},
.speechWin = {EC_WORD_MY, EC_MOVE2(MACH_PUNCH), EC_WORD_WILL, EC_WORD_MAKE, EC_WORD_A, EC_MOVE(BRICK_BREAK)},
.speechLose = {EC_WORD_ARRGH, EC_WORD_EXCL, 0xFFFF, EC_WORD_NO, EC_WORD_EXCL_EXCL, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Damian
+ .monSet = gBattleFrontierTrainerMons_Damian
},
- [154] = {
+ [FRONTIER_TRAINER_BRODY] = {
.facilityClass = FACILITY_CLASS_DRAGON_TAMER,
.trainerName = _("BRODY"),
.speechBefore = {EC_WORD_MY, EC_WORD_FASHION, EC_WORD_SENSE, EC_WORD_SEEMS, EC_POKEMON(ODDISH), EC_WORD_QUES},
.speechWin = {EC_WORD_IT_S, EC_WORD_MY, EC_WORD_FAMILY, EC_WORD_STAY_AT_HOME, EC_WORD_LOOK, EC_WORD_EXCL},
.speechLose = {EC_WORD_I, EC_WORD_QUESTION, EC_WORD_YOUR, EC_WORD_FASHION, EC_WORD_SENSE, EC_WORD_SERIOUSLY},
- .monSets = gBattleFrontierTrainerMons_Brody
+ .monSet = gBattleFrontierTrainerMons_Brody
},
- [155] = {
+ [FRONTIER_TRAINER_GRAHAM] = {
.facilityClass = FACILITY_CLASS_DRAGON_TAMER,
.trainerName = _("GRAHAM"),
.speechBefore = {EC_WORD_YEAH, EC_WORD_EXCL, 0xFFFF, EC_WORD_YEAH_YEAH, EC_WORD_EXCL_EXCL, 0xFFFF},
.speechWin = {EC_WORD_WAHAHAHA, EC_WORD_WAHAHAHA, EC_WORD_EXCL, EC_WORD_WAHAHAHA, EC_WORD_WAHAHAHA, EC_WORD_EXCL_EXCL},
.speechLose = {EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_ELLIPSIS, EC_WORD_IT_S, EC_WORD_MY, EC_WORD_BAD},
- .monSets = gBattleFrontierTrainerMons_Graham
+ .monSet = gBattleFrontierTrainerMons_Graham
},
- [156] = {
+ [FRONTIER_TRAINER_TYLOR] = {
.facilityClass = FACILITY_CLASS_POKEFAN_M,
.trainerName = _("TYLOR"),
.speechBefore = {EC_WORD_ARE, EC_WORD_YOU, EC_WORD_FEELING, EC_WORD_MY, EC_MOVE2(HEAT_WAVE), EC_WORD_QUES},
.speechWin = {EC_WORD_YES, EC_WORD_I_AM, EC_WORD_ON, EC_WORD_FIRE, EC_WORD_EXCL, 0xFFFF},
.speechLose = {EC_WORD_BUT, EC_WORD_I_WAS, EC_WORD_ON, EC_WORD_FIRE, EC_WORD_FOR, EC_WORD_YOU},
- .monSets = gBattleFrontierTrainerMons_Tylor
+ .monSet = gBattleFrontierTrainerMons_Tylor
},
- [157] = {
+ [FRONTIER_TRAINER_JAREN] = {
.facilityClass = FACILITY_CLASS_POKEFAN_F,
.trainerName = _("JAREN"),
.speechBefore = {EC_WORD_FIGHTING, EC_WORD_SPIRIT, EC_WORD_QUES, EC_WORD_ME, EC_WORD_QUES, 0xFFFF},
.speechWin = {EC_WORD_I, EC_WORD_WANT, EC_WORD_MORE, EC_WORD_CUTE, EC_WORD_POKEMON, 0xFFFF},
.speechLose = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_LOOK, EC_WORD_QUITE, EC_WORD_CUTE, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Jaren
+ .monSet = gBattleFrontierTrainerMons_Jaren
},
- [158] = {
+ [FRONTIER_TRAINER_CORDELL] = {
.facilityClass = FACILITY_CLASS_PKMN_BREEDER_M,
.trainerName = _("CORDELL"),
.speechBefore = {EC_WORD_A, EC_WORD_BATTLE, EC_WORD_IS, EC_WORD_DECIDED, EC_WORD_ON, EC_WORD_SPIRIT},
.speechWin = {EC_WORD_CAN_T, EC_WORD_YOU, EC_WORD_ACCEPT, EC_WORD_THAT, EC_WORD_QUES, 0xFFFF},
.speechLose = {EC_WORD_I, EC_WORD_WILL, EC_WORD_BE, EC_WORD_ON, EC_WORD_MY, EC_WORD_WAY},
- .monSets = gBattleFrontierTrainerMons_Cordell
+ .monSet = gBattleFrontierTrainerMons_Cordell
},
- [159] = {
+ [FRONTIER_TRAINER_JAZLYN] = {
.facilityClass = FACILITY_CLASS_PKMN_BREEDER_F,
.trainerName = _("JAZLYN"),
.speechBefore = {EC_WORD_IS, EC_WORD_YOUR, EC_WORD_POKEDEX, EC_WORD_REALLY, EC_WORD_AWESOME, EC_WORD_QUES},
.speechWin = {EC_WORD_OH_YEAH, EC_WORD_WOW, EC_WORD_YOUR, EC_WORD_POKEDEX, EC_WORD_IS, EC_WORD_SUPER},
.speechLose = {EC_WORD_AN, EC_WORD_AVANT_GARDE, EC_WORD_POKEDEX, EC_WORD_WOULD, EC_WORD_BE, EC_WORD_AWESOME},
- .monSets = gBattleFrontierTrainerMons_Jazlyn
+ .monSet = gBattleFrontierTrainerMons_Jazlyn
},
- [160] = {
+ [FRONTIER_TRAINER_ZACHERY] = {
.facilityClass = FACILITY_CLASS_YOUNGSTER,
.trainerName = _("ZACHERY"),
.speechBefore = {EC_WORD_I, EC_WORD_HAVE, EC_WORD_MY, EC_WORD_OWN, EC_WORD_PLACE, EC_WORD_YEEHAW_EXCL},
.speechWin = {EC_WORD_IT_S, EC_WORD_AN, EC_WORD_EXCITING, EC_WORD_TIME, EC_WORD_FOR, EC_WORD_ME},
.speechLose = {EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_FLATTEN, EC_WORD_MY, EC_WORD_HAPPINESS, EC_WORD_EXCL},
- .monSets = gBattleFrontierTrainerMons_Zachery
+ .monSet = gBattleFrontierTrainerMons_Zachery
},
- [161] = {
+ [FRONTIER_TRAINER_JOHAN] = {
.facilityClass = FACILITY_CLASS_YOUNGSTER,
.trainerName = _("JOHAN"),
.speechBefore = {EC_WORD_WINTER, EC_WORD_WILL, EC_WORD_SOON, EC_WORD_BE, EC_WORD_HERE, 0xFFFF},
.speechWin = {EC_WORD_MY, EC_WORD_ALLOWANCE, EC_WORD_COULD, EC_WORD_USE, EC_WORD_A, EC_MOVE2(HELPING_HAND)},
.speechLose = {EC_WORD_I, EC_WORD_ALWAYS, EC_WORD_USE, EC_WORD_MY, EC_WORD_ALLOWANCE, EC_WORD_UP},
- .monSets = gBattleFrontierTrainerMons_Johan
+ .monSet = gBattleFrontierTrainerMons_Johan
},
- [162] = {
+ [FRONTIER_TRAINER_SHEA] = {
.facilityClass = FACILITY_CLASS_LASS,
.trainerName = _("SHEA"),
.speechBefore = {EC_WORD_DO, EC_WORD_YOU, EC_WORD_BATTLE, EC_WORD_WITH, EC_WORD_BEAUTY, EC_WORD_QUES},
.speechWin = {EC_WORD_YOU, EC_WORD_BATTLE, EC_WORD_IN, EC_WORD_AN, EC_WORD_UGLY, EC_WORD_WAY},
.speechLose = {EC_WORD_WHAT, EC_WORD_IS, EC_WORD_BEAUTY, EC_WORD_TO, EC_WORD_YOU, EC_WORD_QUES},
- .monSets = gBattleFrontierTrainerMons_Shea
+ .monSet = gBattleFrontierTrainerMons_Shea
},
- [163] = {
+ [FRONTIER_TRAINER_KAILA] = {
.facilityClass = FACILITY_CLASS_LASS,
.trainerName = _("KAILA"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_THIRSTY, EC_WORD_RIGHT, EC_WORD_NOW, EC_WORD_ELLIPSIS},
.speechWin = {EC_WORD_I, EC_WORD_COULD, EC_WORD_USE, EC_WORD_A, EC_WORD_COLD, EC_WORD_DRINK},
.speechLose = {EC_WORD_THAT, EC_WORD_LOSS, EC_WORD_IS, EC_WORD_HARD, EC_WORD_TO, EC_MOVE2(SWALLOW)},
- .monSets = gBattleFrontierTrainerMons_Kaila
+ .monSet = gBattleFrontierTrainerMons_Kaila
},
- [164] = {
+ [FRONTIER_TRAINER_ISIAH] = {
.facilityClass = FACILITY_CLASS_SCHOOL_KID_M,
.trainerName = _("ISIAH"),
.speechBefore = {EC_WORD_I, EC_WORD_PRETEND, EC_WORD_TO, EC_WORD_STUDY, EC_WORD_A_LOT, 0xFFFF},
.speechWin = {EC_WORD_I, EC_MOVE2(TRICK), EC_WORD_MOTHER, EC_WORD_FOR, EC_WORD_MY, EC_WORD_ALLOWANCE},
.speechLose = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_WANT, EC_WORD_TO, EC_WORD_STUDY, EC_WORD_MORE},
- .monSets = gBattleFrontierTrainerMons_Isiah
+ .monSet = gBattleFrontierTrainerMons_Isiah
},
- [165] = {
+ [FRONTIER_TRAINER_GARRETT] = {
.facilityClass = FACILITY_CLASS_SCHOOL_KID_M,
.trainerName = _("GARRETT"),
.speechBefore = {EC_WORD_I, EC_WORD_ENJOY, EC_WORD_COMICS, EC_WORD_AND, EC_WORD_THIS, EC_WORD_GAME},
.speechWin = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_THIS, EC_WORD_MUSIC, EC_WORD_IDOL, EC_WORD_TOO},
.speechLose = {EC_WORD_BUT, EC_WORD_I, EC_WORD_HAVE, EC_WORD_TO, EC_WORD_STUDY, EC_WORD_MORE},
- .monSets = gBattleFrontierTrainerMons_Garrett
+ .monSet = gBattleFrontierTrainerMons_Garrett
},
- [166] = {
+ [FRONTIER_TRAINER_HAYLIE] = {
.facilityClass = FACILITY_CLASS_SCHOOL_KID_F,
.trainerName = _("HAYLIE"),
.speechBefore = {EC_WORD_I, EC_WORD_WORRY, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_TO, EC_WORD_SLEEP},
.speechWin = {EC_WORD_A, EC_WORD_WIN, EC_WORD_GIVES, EC_WORD_ME, EC_WORD_A, EC_MOVE2(CALM_MIND)},
.speechLose = {EC_WORD_MY, EC_WORD_INSOMNIA, EC_WORD_WILL, EC_WORD_GET, EC_WORD_BAD, EC_WORD_ELLIPSIS},
- .monSets = gBattleFrontierTrainerMons_Haylie
+ .monSet = gBattleFrontierTrainerMons_Haylie
},
- [167] = {
+ [FRONTIER_TRAINER_MEGAN] = {
.facilityClass = FACILITY_CLASS_SCHOOL_KID_F,
.trainerName = _("MEGAN"),
.speechBefore = {EC_WORD_I, EC_WORD_BELIEVE, EC_WORD_IN, EC_WORD_AN, EC_MOVE(AROMATHERAPY), EC_WORD_BATH},
.speechWin = {EC_WORD_I, EC_WORD_WANT, EC_WORD_A, EC_WORD_HEALTHY, EC_WORD_CLEAR_BODY, 0xFFFF},
.speechLose = {EC_WORD_IF, EC_WORD_ONLY, EC_MOVE(AROMATHERAPY), EC_WORD_WERE, EC_WORD_LESS, EC_WORD_EXPENSIVE},
- .monSets = gBattleFrontierTrainerMons_Megan
+ .monSet = gBattleFrontierTrainerMons_Megan
},
- [168] = {
+ [FRONTIER_TRAINER_ISSAC] = {
.facilityClass = FACILITY_CLASS_RICH_BOY,
.trainerName = _("ISSAC"),
.speechBefore = {EC_WORD_MY, EC_WORD_HOBBY, EC_WORD_QUES, 0xFFFF, 0xFFFF, 0xFFFF},
.speechWin = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_ANY, EC_WORD_KIND, EC_WORD_OF, EC_MOVE2(WATER_SPORT)},
.speechLose = {EC_WORD_I, EC_WORD_DISLIKE, EC_WORD_ANY, EC_WORD_KIND, EC_WORD_OF, EC_MOVE2(MUD_SPORT)},
- .monSets = gBattleFrontierTrainerMons_Issac
+ .monSet = gBattleFrontierTrainerMons_Issac
},
- [169] = {
+ [FRONTIER_TRAINER_QUINTON] = {
.facilityClass = FACILITY_CLASS_RICH_BOY,
.trainerName = _("QUINTON"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_SAD, EC_WORD_CAUSE, EC_WORD_I_AM, EC_WORD_TOO_WEAK, 0xFFFF},
.speechWin = {EC_WORD_YOU, EC_WORD_AREN_T, EC_WORD_TOO_STRONG, EC_WORD_FOR, EC_WORD_ME, 0xFFFF},
.speechLose = {EC_WORD_HEY, EC_WORD_WHAT, EC_WORD_DID, EC_WORD_I, EC_WORD_DO, EC_WORD_QUES},
- .monSets = gBattleFrontierTrainerMons_Quinton
+ .monSet = gBattleFrontierTrainerMons_Quinton
},
- [170] = {
+ [FRONTIER_TRAINER_SALMA] = {
.facilityClass = FACILITY_CLASS_LADY,
.trainerName = _("SALMA"),
.speechBefore = {EC_WORD_YOU_VE, EC_WORD_GOT, EC_WORD_YOUR, EC_WORD_HUSTLE, EC_WORD_ON, EC_WORD_EXCL},
.speechWin = {EC_WORD_I, EC_WORD_WIN, EC_WORD_YOU, EC_WORD_HUSTLE, EC_WORD_ON, EC_WORD_OUT},
.speechLose = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_GET, EC_WORD_HOW, EC_WORD_I, EC_WORD_LOST},
- .monSets = gBattleFrontierTrainerMons_Salma
+ .monSet = gBattleFrontierTrainerMons_Salma
},
- [171] = {
+ [FRONTIER_TRAINER_ANSLEY] = {
.facilityClass = FACILITY_CLASS_LADY,
.trainerName = _("ANSLEY"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_BORED, EC_WORD_ELLIPSIS, EC_WORD_DANCE, EC_WORD_FOR, EC_WORD_ME},
.speechWin = {EC_WORD_YOU_VE, EC_WORD_BORED, EC_WORD_ME, EC_WORD_SOME, EC_WORD_MORE, 0xFFFF},
.speechLose = {EC_WORD_TAKE, EC_WORD_YOUR, EC_MOVE2(FRUSTRATION), EC_WORD_SOME, EC_WORD_OTHER, EC_WORD_PLACE},
- .monSets = gBattleFrontierTrainerMons_Ansley
+ .monSet = gBattleFrontierTrainerMons_Ansley
},
- [172] = {
+ [FRONTIER_TRAINER_HOLDEN] = {
.facilityClass = FACILITY_CLASS_BUG_CATCHER,
.trainerName = _("HOLDEN"),
.speechBefore = {EC_WORD_LET_S, EC_WORD_COMMEMORATE, EC_WORD_MY, EC_WORD_COOLNESS, EC_WORD_IN, EC_WORD_BATTLE},
.speechWin = {EC_WORD_YOU_RE, EC_WORD_TOO_WEAK, EC_WORD_FOR, EC_WORD_ANY, EC_WORD_PRAISE, 0xFFFF},
.speechLose = {EC_WORD_YOUR, EC_WORD_BATTLE, EC_WORD_SENSE, EC_WORD_IS, EC_WORD_AMUSING, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Holden
+ .monSet = gBattleFrontierTrainerMons_Holden
},
- [173] = {
+ [FRONTIER_TRAINER_LUCA] = {
.facilityClass = FACILITY_CLASS_BUG_CATCHER,
.trainerName = _("LUCA"),
.speechBefore = {EC_WORD_WE, EC_WORD_WILL, EC_WORD_HAVE, EC_WORD_A, EC_WORD_COOL, EC_WORD_BATTLE},
.speechWin = {EC_WORD_I, EC_WORD_WON, EC_WORD_IN, EC_WORD_A, EC_WORD_COOL, EC_WORD_WAY},
.speechLose = {EC_WORD_HELLO, EC_WORD_QUES, EC_WORD_I_AM, EC_WORD_JUST, EC_WORD_A, EC_WORD_KID},
- .monSets = gBattleFrontierTrainerMons_Luca
+ .monSet = gBattleFrontierTrainerMons_Luca
},
- [174] = {
+ [FRONTIER_TRAINER_JAMISON] = {
.facilityClass = FACILITY_CLASS_NINJA_BOY,
.trainerName = _("JAMISON"),
.speechBefore = {EC_WORD_MY, EC_MOVE2(SECRET_POWER), EC_WORD_IS, EC_WORD_OVERWHELMING, EC_WORD_TO, EC_WORD_POKEMON},
.speechWin = {EC_WORD_DID, EC_WORD_YOU, EC_WORD_SEE, EC_WORD_THAT, EC_WORD_QUES, 0xFFFF},
.speechLose = {EC_WORD_I, EC_WORD_WILL, EC_WORD_USE, EC_MOVE(SMOKESCREEN), EC_WORD_TO, EC_WORD_ESCAPE},
- .monSets = gBattleFrontierTrainerMons_Jamison
+ .monSet = gBattleFrontierTrainerMons_Jamison
},
- [175] = {
+ [FRONTIER_TRAINER_GUNNAR] = {
.facilityClass = FACILITY_CLASS_NINJA_BOY,
.trainerName = _("GUNNAR"),
.speechBefore = {EC_WORD_I, EC_MOVE(CUT), EC_WORD_DOWN, EC_WORD_EVERY, EC_WORD_OPPONENT, 0xFFFF},
.speechWin = {EC_WORD_DON_T, EC_MOVE(GRUDGE), EC_WORD_ME, EC_WORD_FOR, EC_WORD_YOUR, EC_WORD_LOSS},
.speechLose = {EC_WORD_PLEASE, EC_WORD_LOSE, EC_WORD_THAT, EC_MOVE(SCARY_FACE), EC_WORD_OF, EC_WORD_YOURS},
- .monSets = gBattleFrontierTrainerMons_Gunnar
+ .monSet = gBattleFrontierTrainerMons_Gunnar
},
- [176] = {
+ [FRONTIER_TRAINER_CRAIG] = {
.facilityClass = FACILITY_CLASS_TUBER_M,
.trainerName = _("CRAIG"),
.speechBefore = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_WAIT, EC_WORD_FOR, EC_WORD_MY, EC_WORD_TRAIN},
.speechWin = {EC_WORD_MY, EC_WORD_TRAIN, EC_WORD_ISN_T, EC_WORD_HERE, EC_WORD_YET, EC_WORD_ELLIPSIS},
.speechLose = {EC_WORD_HERE_IT_IS, EC_WORD_MY, EC_WORD_TRAIN, EC_WORD_SEE_YA, EC_WORD_EXCL, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Craig
+ .monSet = gBattleFrontierTrainerMons_Craig
},
- [177] = {
+ [FRONTIER_TRAINER_PIERCE] = {
.facilityClass = FACILITY_CLASS_TUBER_M,
.trainerName = _("PIERCE"),
.speechBefore = {EC_WORD_THERE, EC_WORD_WAS, EC_WORD_A, EC_MOVE2(HEAT_WAVE), EC_WORD_LAST, EC_WORD_WEEK},
.speechWin = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_TAKE, EC_WORD_A, EC_MOVE2(HEAT_WAVE), 0xFFFF},
.speechLose = {EC_WORD_DIDN_T, EC_WORD_IT, EC_MOVE(HAIL), EC_WORD_TOO, EC_WORD_QUES, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Pierce
+ .monSet = gBattleFrontierTrainerMons_Pierce
},
- [178] = {
+ [FRONTIER_TRAINER_REGINA] = {
.facilityClass = FACILITY_CLASS_TUBER_F,
.trainerName = _("REGINA"),
.speechBefore = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_TO, EC_WORD_PLAY, EC_WORD_IN, EC_WORD_WATER},
.speechWin = {EC_WORD_I, EC_WORD_REFUSE, EC_WORD_TO, EC_WORD_COME, EC_WORD_OUT, 0xFFFF},
.speechLose = {EC_WORD_YOU_RE, EC_WORD_NOT, EC_WORD_MUCH, EC_WORD_GOOD, EC_WORD_IN, EC_WORD_WATER},
- .monSets = gBattleFrontierTrainerMons_Regina
+ .monSet = gBattleFrontierTrainerMons_Regina
},
- [179] = {
+ [FRONTIER_TRAINER_ALISON] = {
.facilityClass = FACILITY_CLASS_TUBER_F,
.trainerName = _("ALISON"),
.speechBefore = {EC_WORD_THIS, EC_WORD_KINDERGARTEN, EC_WORD_MAGAZINE, EC_WORD_IS, EC_WORD_TOO, EC_WORD_MUCH},
.speechWin = {EC_WORD_HOW, EC_WORD_TO, EC_WORD_BUG, EC_WORD_YOUR, EC_WORD_TEACHER, EC_WORD_QUES},
.speechLose = {EC_WORD_ENJOY, EC_WORD_A, EC_WORD_TASTY, EC_WORD_SCHOOL, EC_WORD_DIET, EC_WORD_QUES},
- .monSets = gBattleFrontierTrainerMons_Alison
+ .monSet = gBattleFrontierTrainerMons_Alison
},
- [180] = {
+ [FRONTIER_TRAINER_HANK] = {
.facilityClass = FACILITY_CLASS_BUG_MANIAC,
.trainerName = _("HANK"),
.speechBefore = {EC_WORD_THERE, EC_WORD_IS, EC_WORD_A, EC_WORD_BUG, EC_WORD_EVENT, EC_WORD_SOON},
.speechWin = {EC_WORD_IT_S, EC_WORD_A, EC_WORD_BUG, EC_WORD_FASHION, EC_WORD_SHOW, EC_WORD_EXCL},
.speechLose = {EC_WORD_DON_T, EC_WORD_YOU, EC_WORD_LIKE, EC_WORD_BUG, EC_WORD_POKEMON, EC_WORD_QUES},
- .monSets = gBattleFrontierTrainerMons_Hank
+ .monSet = gBattleFrontierTrainerMons_Hank
},
- [181] = {
+ [FRONTIER_TRAINER_EARL] = {
.facilityClass = FACILITY_CLASS_BUG_MANIAC,
.trainerName = _("EARL"),
.speechBefore = {EC_WORD_THE, EC_WORD_INVINCIBLE, EC_WORD_BUG, EC_WORD_TRAINER, EC_WORD_IS, EC_WORD_HERE},
.speechWin = {EC_WORD_THE, EC_WORD_INVINCIBLE, EC_WORD_BUG, EC_WORD_TRAINER, EC_WORD_AM, EC_WORD_I},
.speechLose = {EC_WORD_SEE, EC_WORD_HOW, EC_WORD_FAST, EC_WORD_I, EC_WORD_RUN_AWAY, EC_WORD_EXCL},
- .monSets = gBattleFrontierTrainerMons_Earl
+ .monSet = gBattleFrontierTrainerMons_Earl
},
- [182] = {
+ [FRONTIER_TRAINER_RAMIRO] = {
.facilityClass = FACILITY_CLASS_FISHERMAN,
.trainerName = _("RAMIRO"),
.speechBefore = {EC_WORD_I, EC_WORD_WENT, EC_WORD_TO, EC_WORD_A, EC_WORD_FISHING, EC_WORD_SCHOOL},
.speechWin = {EC_WORD_SERIOUSLY, EC_WORD_I_AM, EC_WORD_IN, EC_WORD_THE, EC_WORD_FISHING, EC_WORD_HALL_OF_FAME},
.speechLose = {EC_WORD_I, EC_WORD_WANT, EC_WORD_TO, EC_WORD_GO, EC_WORD_BACK, EC_WORD_ELLIPSIS},
- .monSets = gBattleFrontierTrainerMons_Ramiro
+ .monSet = gBattleFrontierTrainerMons_Ramiro
},
- [183] = {
+ [FRONTIER_TRAINER_HUNTER] = {
.facilityClass = FACILITY_CLASS_FISHERMAN,
.trainerName = _("HUNTER"),
.speechBefore = {EC_WORD_SHOW, EC_WORD_ME, EC_WORD_A, EC_WORD_TOTALLY, EC_WORD_COOL, EC_MOVE(CROSS_CHOP)},
.speechWin = {EC_WORD_YOU_RE, EC_WORD_TOO_WEAK, EC_WORD_TO, EC_WORD_DO, EC_WORD_A, EC_MOVE(CROSS_CHOP)},
.speechLose = {EC_WORD_WAS, EC_WORD_IT, EC_WORD_A, EC_WORD_MISTAKE, EC_WORD_QUES, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Hunter
+ .monSet = gBattleFrontierTrainerMons_Hunter
},
- [184] = {
+ [FRONTIER_TRAINER_AIDEN] = {
.facilityClass = FACILITY_CLASS_RUIN_MANIAC,
.trainerName = _("AIDEN"),
.speechBefore = {EC_WORD_MY, EC_WORD_WORK, EC_WORD_IS, EC_WORD_MAKING, EC_WORD_ME, EC_WORD_HEALTHY},
.speechWin = {EC_WORD_YOU, EC_WORD_SEE, EC_WORD_QUES, EC_WORD_I_AM, EC_WORD_HEALTHY, EC_WORD_EXCL},
.speechLose = {EC_WORD_YOU_RE, EC_WORD_MORE, EC_WORD_HEALTHY, EC_WORD_THAN, EC_WORD_I_AM, EC_WORD_ELLIPSIS},
- .monSets = gBattleFrontierTrainerMons_Aiden
+ .monSet = gBattleFrontierTrainerMons_Aiden
},
- [185] = {
+ [FRONTIER_TRAINER_XAVIER] = {
.facilityClass = FACILITY_CLASS_RUIN_MANIAC,
.trainerName = _("XAVIER"),
.speechBefore = {EC_WORD_HEY_THERE, EC_WORD_EXCL, 0xFFFF, EC_WORD_LOOK, EC_WORD_LOOK, EC_WORD_EXCL_EXCL},
.speechWin = {EC_WORD_GOOD_BYE, EC_WORD_AND, EC_WORD_THANK_YOU, EC_WORD_THAT_WAS, EC_WORD_FUNNY, 0xFFFF},
.speechLose = {EC_WORD_WOWEE, EC_WORD_EXCL, 0xFFFF, EC_WORD_NO, EC_WORD_NO, EC_WORD_EXCL_EXCL},
- .monSets = gBattleFrontierTrainerMons_Xavier
+ .monSet = gBattleFrontierTrainerMons_Xavier
},
- [186] = {
+ [FRONTIER_TRAINER_CLINTON] = {
.facilityClass = FACILITY_CLASS_COLLECTOR,
.trainerName = _("CLINTON"),
.speechBefore = {EC_WORD_WANT, EC_WORD_TO, EC_WORD_SEE, EC_WORD_MY, EC_MOVE(HYPNOSIS), EC_WORD_QUES},
.speechWin = {EC_WORD_YOUR, EC_MOVE2(FURY_SWIPES), EC_WORD_YOUR, EC_MOVE(STRENGTH), EC_WORD_YOUNG, EC_WORD_TRAINER},
.speechLose = {EC_WORD_TCH, EC_WORD_ELLIPSIS, 0xFFFF, EC_WORD_I_AM, EC_WORD_TOO_WEAK, EC_WORD_ELLIPSIS},
- .monSets = gBattleFrontierTrainerMons_Clinton
+ .monSet = gBattleFrontierTrainerMons_Clinton
},
- [187] = {
+ [FRONTIER_TRAINER_JESSE] = {
.facilityClass = FACILITY_CLASS_COLLECTOR,
.trainerName = _("JESSE"),
.speechBefore = {EC_WORD_THIS, EC_WORD_BATTLE, EC_WORD_IS, EC_WORD_FOR, EC_WORD_MY, EC_WORD_MOTHER},
.speechWin = {EC_WORD_MOTHER, EC_WORD_WILL, EC_WORD_BE, EC_WORD_HAPPY, EC_WORD_FOR, EC_WORD_ME},
.speechLose = {EC_WORD_I, EC_WORD_WANT, EC_WORD_MY, EC_WORD_MOTHER, EC_WORD_EXCL, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Jesse
+ .monSet = gBattleFrontierTrainerMons_Jesse
},
- [188] = {
+ [FRONTIER_TRAINER_EDUARDO] = {
.facilityClass = FACILITY_CLASS_GUITARIST,
.trainerName = _("EDUARDO"),
.speechBefore = {EC_WORD_OUR, EC_WORD_MUSIC, EC_WORD_WILL, EC_WORD_PLAY, EC_WORD_ALL, EC_WORD_NIGHT},
.speechWin = {EC_WORD_NIGHTTIME, EC_WORD_IS, EC_WORD_WHEN, EC_WORD_I, EC_WORD_PLAY, EC_WORD_BEST},
.speechLose = {EC_WORD_LET_S, EC_WORD_PARTY, EC_WORD_UNTIL, EC_WORD_THE, EC_MOVE(MORNING_SUN), EC_WORD_EXCL},
- .monSets = gBattleFrontierTrainerMons_Eduardo
+ .monSet = gBattleFrontierTrainerMons_Eduardo
},
- [189] = {
+ [FRONTIER_TRAINER_HAL] = {
.facilityClass = FACILITY_CLASS_GUITARIST,
.trainerName = _("HAL"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_TRENDY, EC_WORD_AREN_T, EC_WORD_I, EC_WORD_QUES, 0xFFFF},
.speechWin = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_HIP_AND, EC_WORD_HAPPENING, EC_WORD_OH_YEAH, EC_WORD_EXCL},
.speechLose = {EC_WORD_I_AM, EC_WORD_ALWAYS, EC_WORD_TRENDY, EC_WORD_THANK_YOU, EC_WORD_VERY, EC_WORD_MUCH},
- .monSets = gBattleFrontierTrainerMons_Hal
+ .monSet = gBattleFrontierTrainerMons_Hal
},
- [190] = {
+ [FRONTIER_TRAINER_GAGE] = {
.facilityClass = FACILITY_CLASS_BIRD_KEEPER,
.trainerName = _("GAGE"),
.speechBefore = {EC_WORD_HERE_IT_IS, EC_WORD_A, EC_WORD_FLYING, EC_WORD_TYPE, EC_WORD_HIDDEN, EC_WORD_MOVE},
.speechWin = {EC_WORD_IT_S, EC_WORD_A, EC_WORD_FLYING, EC_WORD_TYPE, EC_WORD_VICTORY, EC_WORD_EXCL},
.speechLose = {EC_WORD_IF_I_LOSE, EC_WORD_I, EC_WORD_JUST, EC_MOVE(FLY), EC_WORD_AWAY, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Gage
+ .monSet = gBattleFrontierTrainerMons_Gage
},
- [191] = {
+ [FRONTIER_TRAINER_ARNOLD] = {
.facilityClass = FACILITY_CLASS_BIRD_KEEPER,
.trainerName = _("ARNOLD"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_WEIRD, EC_WORD_FROM, EC_WORD_A, EC_WORD_DREAM},
.speechWin = {EC_WORD_YOUR, EC_MOVE(SCARY_FACE), EC_WORD_WAS, EC_WORD_IN, EC_WORD_MY, EC_WORD_DREAM},
.speechLose = {EC_WORD_MY, EC_WORD_INCREDIBLE, EC_WORD_DREAM, EC_WORD_WAS, EC_WORD_SO, EC_WORD_WEIRD},
- .monSets = gBattleFrontierTrainerMons_Arnold
+ .monSet = gBattleFrontierTrainerMons_Arnold
},
- [192] = {
+ [FRONTIER_TRAINER_JARRETT] = {
.facilityClass = FACILITY_CLASS_SAILOR,
.trainerName = _("JARRETT"),
.speechBefore = {EC_WORD_COME_ON, EC_WORD_LET_S, EC_WORD_DANCE, EC_WORD_LIKE, EC_WORD_IT_S, EC_WORD_YESTERDAY},
.speechWin = {EC_WORD_YOU, EC_WORD_LIKE, EC_WORD_HOW, EC_WORD_I, EC_WORD_DANCE, EC_WORD_QUES},
.speechLose = {EC_WORD_YOU, EC_WORD_DON_T, EC_WORD_APPRECIATE, EC_WORD_HOW, EC_WORD_I, EC_WORD_DANCE},
- .monSets = gBattleFrontierTrainerMons_Jarrett
+ .monSet = gBattleFrontierTrainerMons_Jarrett
},
- [193] = {
+ [FRONTIER_TRAINER_GARETT] = {
.facilityClass = FACILITY_CLASS_SAILOR,
.trainerName = _("GARETT"),
.speechBefore = {EC_WORD_MY, EC_WORD_GIRL, EC_WORD_GIVES, EC_WORD_ME, EC_WORD_A_LITTLE, EC_MOVE2(SWEET_KISS)},
.speechWin = {EC_WORD_MY, EC_WORD_GIRL, EC_WORD_FRIEND, EC_WORD_IS, EC_WORD_MY, EC_WORD_TREASURE},
.speechLose = {EC_WORD_A, EC_WORD_TREASURE, EC_WORD_ISN_T, EC_WORD_ALWAYS, EC_WORD_ABOUT, EC_WORD_MONEY},
- .monSets = gBattleFrontierTrainerMons_Garett
+ .monSet = gBattleFrontierTrainerMons_Garett
},
- [194] = {
+ [FRONTIER_TRAINER_EMANUEL] = {
.facilityClass = FACILITY_CLASS_HIKER,
.trainerName = _("EMANUEL"),
.speechBefore = {EC_WORD_SMARTNESS, EC_WORD_ALONE, EC_WORD_WON_T, EC_WORD_MAKE, EC_WORD_YOU, EC_WORD_WIN},
.speechWin = {EC_WORD_I_AM, EC_WORD_NOT_VERY, EC_WORD_SMART, EC_WORD_BUT, EC_WORD_I, EC_WORD_WON},
.speechLose = {EC_WORD_HOW, EC_WORD_DID, EC_WORD_YOU, EC_MOVE2(FAKE_OUT), EC_WORD_ME, EC_WORD_QUES},
- .monSets = gBattleFrontierTrainerMons_Emanuel
+ .monSet = gBattleFrontierTrainerMons_Emanuel
},
- [195] = {
+ [FRONTIER_TRAINER_GUSTAVO] = {
.facilityClass = FACILITY_CLASS_HIKER,
.trainerName = _("GUSTAVO"),
.speechBefore = {EC_MOVE(CHARGE), EC_WORD_EXCL, 0xFFFF, EC_MOVE(CHARGE), EC_WORD_EXCL_EXCL, 0xFFFF},
.speechWin = {EC_WORD_SURRENDER, EC_WORD_QUES, 0xFFFF, EC_WORD_SO, EC_WORD_SOON, EC_WORD_QUES},
.speechLose = {EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_MAKE, EC_WORD_ME, EC_WORD_SURRENDER, EC_WORD_YET},
- .monSets = gBattleFrontierTrainerMons_Gustavo
+ .monSet = gBattleFrontierTrainerMons_Gustavo
},
- [196] = {
+ [FRONTIER_TRAINER_KAMERON] = {
.facilityClass = FACILITY_CLASS_KINDLER,
.trainerName = _("KAMERON"),
.speechBefore = {EC_WORD_TAKE_THAT, EC_WORD_EXCL, EC_WORD_IT_S, EC_WORD_MY, EC_WORD_FIERY, EC_MOVE2(TRICK)},
.speechWin = {EC_WORD_DID, EC_WORD_MY, EC_WORD_FIERY, EC_MOVE2(TRICK), EC_MOVE(ASTONISH), EC_WORD_QUES},
.speechLose = {EC_WORD_YOU, EC_WORD_DIDN_T, EC_WORD_FALL, EC_WORD_FOR, EC_WORD_MY, EC_MOVE2(TRICK)},
- .monSets = gBattleFrontierTrainerMons_Kameron
+ .monSet = gBattleFrontierTrainerMons_Kameron
},
- [197] = {
+ [FRONTIER_TRAINER_ALFREDO] = {
.facilityClass = FACILITY_CLASS_KINDLER,
.trainerName = _("ALFREDO"),
.speechBefore = {EC_WORD_A, EC_WORD_FIERY, EC_WORD_GOURMET, EC_WORD_AM, EC_WORD_I, EC_WORD_EXCL},
.speechWin = {EC_WORD_IT_S, EC_WORD_A, EC_WORD_TASTY, EC_WORD_GOURMET, EC_WORD_VICTORY, EC_WORD_EXCL},
.speechLose = {EC_WORD_WHAT, EC_WORD_A, EC_WORD_DISASTER, EC_WORD_THAT_WAS, EC_WORD_EXCL, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Alfredo
+ .monSet = gBattleFrontierTrainerMons_Alfredo
},
- [198] = {
+ [FRONTIER_TRAINER_RUBEN] = {
.facilityClass = FACILITY_CLASS_GENTLEMAN,
.trainerName = _("RUBEN"),
.speechBefore = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_WAIT, EC_WORD_TO, EC_WORD_GET, EC_WORD_GOING},
.speechWin = {EC_WORD_GET, EC_WORD_GOING, EC_WORD_EXCL, EC_WORD_THIS, EC_WORD_IS, EC_WORD_GOOD_BYE},
.speechLose = {EC_WORD_I_VE, EC_WORD_GOT, EC_WORD_TO, EC_WORD_GET, EC_WORD_GOING, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Ruben
+ .monSet = gBattleFrontierTrainerMons_Ruben
},
- [199] = {
+ [FRONTIER_TRAINER_LAMAR] = {
.facilityClass = FACILITY_CLASS_GENTLEMAN,
.trainerName = _("LAMAR"),
.speechBefore = {EC_WORD_A, EC_MOVE2(PRESENT), EC_WORD_FOR, EC_WORD_ME, EC_WORD_QUES, 0xFFFF},
.speechWin = {EC_WORD_MMM, EC_WORD_THIS, EC_WORD_IS, EC_WORD_QUITE, EC_WORD_TASTY, EC_WORD_ELLIPSIS},
.speechLose = {EC_WORD_OH, EC_WORD_IT_S, EC_WORD_A, EC_WORD_GAME, EC_WORD_IS_IT_QUES, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Lamar
+ .monSet = gBattleFrontierTrainerMons_Lamar
},
- [200] = {
+ [FRONTIER_TRAINER_JAXON] = {
.facilityClass = FACILITY_CLASS_YOUNGSTER,
.trainerName = _("JAXON"),
.speechBefore = {EC_WORD_A, EC_WORD_SHELL_ARMOR, EC_WORD_IS, EC_WORD_WHAT, EC_WORD_I, EC_WORD_WANT},
.speechWin = {EC_WORD_MY, EC_WORD_FATHER, EC_WORD_AND, EC_WORD_MOTHER, EC_WORD_WON_T, EC_WORD_ACCEPT},
.speechLose = {EC_WORD_PLEASE, EC_WORD_I, EC_WORD_NEED, EC_WORD_A, EC_WORD_SHELL_ARMOR, EC_WORD_EXCL},
- .monSets = gBattleFrontierTrainerMons_Jaxon
+ .monSet = gBattleFrontierTrainerMons_Jaxon
},
- [201] = {
+ [FRONTIER_TRAINER_LOGAN] = {
.facilityClass = FACILITY_CLASS_YOUNGSTER,
.trainerName = _("LOGAN"),
.speechBefore = {EC_WORD_IF_I_LOSE, EC_WORD_I, EC_WORD_WILL, EC_WORD_STUDY, EC_WORD_FOR, EC_WORD_SCHOOL},
.speechWin = {EC_WORD_ME, EC_WORD_STUDY, EC_WORD_QUES, EC_WORD_NOT_VERY, EC_WORD_LIKELY_TO, EC_WORD_SEE},
.speechLose = {EC_WORD_NO, EC_WORD_THANKS, EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_SLEEP},
- .monSets = gBattleFrontierTrainerMons_Logan
+ .monSet = gBattleFrontierTrainerMons_Logan
},
- [202] = {
+ [FRONTIER_TRAINER_EMILEE] = {
.facilityClass = FACILITY_CLASS_LASS,
.trainerName = _("EMILEE"),
.speechBefore = {EC_WORD_IS, EC_WORD_THIS, EC_WORD_KIND, EC_WORD_OF, EC_WORD_BATTLE, EC_WORD_OK_QUES},
.speechWin = {EC_WORD_LET_S, EC_WORD_GO, EC_WORD_FOR, EC_WORD_AN, EC_MOVE(ICY_WIND), EC_MOVE2(SURF)},
.speechLose = {EC_WORD_HOW, EC_WORD_ABOUT, EC_WORD_A, EC_MOVE(ROCK_SLIDE), EC_WORD_SHOW, EC_WORD_QUES},
- .monSets = gBattleFrontierTrainerMons_Emilee
+ .monSet = gBattleFrontierTrainerMons_Emilee
},
- [203] = {
+ [FRONTIER_TRAINER_JOSIE] = {
.facilityClass = FACILITY_CLASS_LASS,
.trainerName = _("JOSIE"),
.speechBefore = {EC_WORD_A, EC_WORD_POKEMON, EC_WORD_FASHION, EC_WORD_CONTEST, EC_WORD_IS, EC_WORD_PRETTY},
.speechWin = {EC_WORD_I, EC_WORD_REALLY, EC_WORD_LIKE, EC_WORD_MODE, EC_WORD_FASHION, EC_WORD_THINGS},
.speechLose = {EC_WORD_YOU_RE, EC_WORD_TOTALLY, EC_WORD_LACKING, EC_WORD_IN, EC_WORD_FASHION, EC_WORD_SENSE},
- .monSets = gBattleFrontierTrainerMons_Josie
+ .monSet = gBattleFrontierTrainerMons_Josie
},
- [204] = {
+ [FRONTIER_TRAINER_ARMANDO] = {
.facilityClass = FACILITY_CLASS_CAMPER,
.trainerName = _("ARMANDO"),
.speechBefore = {EC_WORD_I, EC_WORD_NEED, EC_WORD_MORE, EC_WORD_GRASS, EC_WORD_TYPE, EC_WORD_POKEMON},
.speechWin = {EC_WORD_TRADE, EC_WORD_ME, EC_WORD_A, EC_WORD_GRASS, EC_WORD_POKEMON, EC_WORD_PLEASE},
.speechLose = {EC_WORD_THERE, EC_WORD_AREN_T, EC_WORD_ENOUGH, EC_WORD_GRASS, EC_WORD_TYPE, EC_WORD_POKEMON},
- .monSets = gBattleFrontierTrainerMons_Armando
+ .monSet = gBattleFrontierTrainerMons_Armando
},
- [205] = {
+ [FRONTIER_TRAINER_SKYLER] = {
.facilityClass = FACILITY_CLASS_CAMPER,
.trainerName = _("SKYLER"),
.speechBefore = {EC_MOVE2(INGRAIN), EC_WORD_IS, EC_WORD_MY, EC_WORD_CHOICE, EC_WORD_BATTLE, EC_WORD_MOVE},
.speechWin = {EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_MOVE, EC_WORD_ME, EC_WORD_NOW, EC_WORD_EXCL},
.speechLose = {EC_WORD_YOU, EC_MOVE(CUT), EC_WORD_ME, EC_WORD_DOWN, EC_WORD_ELLIPSIS, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Skyler
+ .monSet = gBattleFrontierTrainerMons_Skyler
},
- [206] = {
+ [FRONTIER_TRAINER_RUTH] = {
.facilityClass = FACILITY_CLASS_PICNICKER,
.trainerName = _("RUTH"),
.speechBefore = {EC_WORD_I, EC_WORD_WANT, EC_WORD_TO, EC_WORD_ENJOY, EC_WORD_THIS, EC_WORD_BATTLE},
.speechWin = {EC_WORD_THAT_WAS, EC_WORD_MUCH, EC_WORD_TOO, EC_WORD_EASY, EC_WORD_EXCL, 0xFFFF},
.speechLose = {EC_WORD_PLEASE, EC_WORD_STOP, EC_WORD_I, EC_WORD_DON_T, EC_WORD_ENJOY, EC_WORD_THIS},
- .monSets = gBattleFrontierTrainerMons_Ruth
+ .monSet = gBattleFrontierTrainerMons_Ruth
},
- [207] = {
+ [FRONTIER_TRAINER_MELODY] = {
.facilityClass = FACILITY_CLASS_PICNICKER,
.trainerName = _("MELODY"),
.speechBefore = {EC_WORD_I, EC_MOVE2(WISH), EC_WORD_SUNDAY, EC_WORD_IS, EC_WORD_A, EC_MOVE2(SUNNY_DAY)},
.speechWin = {EC_WORD_SUNDAY, EC_WORD_SEEMS, EC_WORD_FOREVER, EC_WORD_TO, EC_WORD_COME, EC_WORD_ELLIPSIS},
.speechLose = {EC_WORD_THE, EC_WORD_FORECAST, EC_WORD_SAYS, EC_WORD_IT, EC_WORD_WILL, EC_MOVE(HAIL)},
- .monSets = gBattleFrontierTrainerMons_Melody
+ .monSet = gBattleFrontierTrainerMons_Melody
},
- [208] = {
+ [FRONTIER_TRAINER_PEDRO] = {
.facilityClass = FACILITY_CLASS_SWIMMER_M,
.trainerName = _("PEDRO"),
.speechBefore = {EC_WORD_A, EC_WORD_SWIFT_SWIM, EC_WORD_WILL, EC_WORD_DO, EC_WORD_YOU, EC_WORD_GOOD},
.speechWin = {EC_WORD_THAT_S, EC_WORD_HOW, EC_WORD_I, EC_WORD_SINK, EC_WORD_AN, EC_WORD_OPPONENT},
.speechLose = {EC_WORD_UH_OH, EC_WORD_EXCL, 0xFFFF, EC_WORD_A, EC_MOVE(WHIRLPOOL), EC_WORD_EXCL},
- .monSets = gBattleFrontierTrainerMons_Pedro
+ .monSet = gBattleFrontierTrainerMons_Pedro
},
- [209] = {
+ [FRONTIER_TRAINER_ERICK] = {
.facilityClass = FACILITY_CLASS_SWIMMER_M,
.trainerName = _("ERICK"),
.speechBefore = {EC_WORD_I, EC_WORD_WILL, EC_MOVE2(TACKLE), EC_WORD_YOU, EC_WORD_DOWN, EC_WORD_EXCL},
.speechWin = {EC_WORD_DON_T, EC_WORD_YOU, EC_WORD_RUN_AWAY, EC_WORD_YOU, EC_WORD_LOSER, EC_WORD_EXCL},
.speechLose = {EC_WORD_I, EC_WORD_DIDN_T, EC_WORD_THINK, EC_WORD_YOU, EC_WORD_WOULD, EC_MOVE(COUNTER)},
- .monSets = gBattleFrontierTrainerMons_Erick
+ .monSet = gBattleFrontierTrainerMons_Erick
},
- [210] = {
+ [FRONTIER_TRAINER_ELAINE] = {
.facilityClass = FACILITY_CLASS_SWIMMER_F,
.trainerName = _("ELAINE"),
.speechBefore = {EC_WORD_MY, EC_WORD_HEROINE, EC_WORD_ADVENTURE, EC_WORD_ISN_T, EC_WORD_GOING, EC_WORD_WELL},
.speechWin = {EC_WORD_THANK_YOU, EC_WORD_EXCL, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I, EC_WORD_NEED},
.speechLose = {EC_WORD_I, EC_WORD_KNOW, EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_A, EC_WORD_HEROINE},
- .monSets = gBattleFrontierTrainerMons_Elaine
+ .monSet = gBattleFrontierTrainerMons_Elaine
},
- [211] = {
+ [FRONTIER_TRAINER_JOYCE] = {
.facilityClass = FACILITY_CLASS_SWIMMER_F,
.trainerName = _("JOYCE"),
.speechBefore = {EC_WORD_YOU, EC_WORD_MAKE, EC_WORD_ME, EC_WORD_GO, EC_WORD_AHAHA, EC_WORD_EXCL},
.speechWin = {EC_WORD_LALALA, EC_WORD_NO, EC_WORD_LOSING, EC_WORD_FOR, EC_WORD_ME, EC_WORD_EXCL},
.speechLose = {EC_WORD_LALALA, EC_WORD_ELLIPSIS, 0xFFFF, EC_WORD_HUH_QUES, 0xFFFF, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Joyce
+ .monSet = gBattleFrontierTrainerMons_Joyce
},
- [212] = {
+ [FRONTIER_TRAINER_TODD] = {
.facilityClass = FACILITY_CLASS_POKEFAN_M,
.trainerName = _("TODD"),
.speechBefore = {EC_WORD_YOU_RE, EC_WORD_A, EC_WORD_LIGHTNINGROD, EC_WORD_FOR, EC_WORD_MY, EC_WORD_POWER},
.speechWin = {EC_WORD_THAT_S, EC_WORD_ALL, EC_WORD_YOU, EC_WORD_COULD, EC_MOVE(ABSORB), EC_WORD_QUES},
.speechLose = {EC_WORD_YOU, EC_MOVE2(REFLECT), EC_WORD_MY, EC_WORD_POWER, EC_WORD_BACK, EC_WORD_QUES},
- .monSets = gBattleFrontierTrainerMons_Todd
+ .monSet = gBattleFrontierTrainerMons_Todd
},
- [213] = {
+ [FRONTIER_TRAINER_GAVIN] = {
.facilityClass = FACILITY_CLASS_POKEFAN_M,
.trainerName = _("GAVIN"),
.speechBefore = {EC_WORD_I, EC_WORD_WILL, EC_MOVE(BIDE), EC_WORD_MY, EC_WORD_TIME, 0xFFFF},
.speechWin = {EC_WORD_IT_S, EC_WORD_OVER, EC_WORD_SO, EC_WORD_SOON, EC_WORD_QUES, 0xFFFF},
.speechLose = {EC_WORD_MY, EC_WORD_MISTAKE, EC_WORD_WAS, EC_WORD_TOO, EC_WORD_EXPENSIVE, EC_WORD_ELLIPSIS},
- .monSets = gBattleFrontierTrainerMons_Gavin
+ .monSet = gBattleFrontierTrainerMons_Gavin
},
- [214] = {
+ [FRONTIER_TRAINER_MALORY] = {
.facilityClass = FACILITY_CLASS_POKEFAN_F,
.trainerName = _("MALORY"),
.speechBefore = {EC_WORD_PROMISE, EC_WORD_TO, EC_WORD_SHOW, EC_WORD_ME, EC_WORD_CUTE, EC_WORD_POKEMON},
.speechWin = {EC_WORD_GIGGLE, EC_WORD_ELLIPSIS, 0xFFFF, EC_WORD_THANK_YOU, EC_WORD_SO, EC_WORD_MUCH},
.speechLose = {EC_WORD_TCH, EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_AREN_T, EC_WORD_VERY, EC_WORD_NICE},
- .monSets = gBattleFrontierTrainerMons_Malory
+ .monSet = gBattleFrontierTrainerMons_Malory
},
- [215] = {
+ [FRONTIER_TRAINER_ESTHER] = {
.facilityClass = FACILITY_CLASS_POKEFAN_F,
.trainerName = _("ESTHER"),
.speechBefore = {EC_WORD_I, EC_WORD_WANT, EC_WORD_A, EC_WORD_NICE, EC_MOVE2(PRESENT), EC_WORD_ELLIPSIS},
.speechWin = {EC_WORD_PLEASE, EC_WORD_GET, EC_WORD_ME, EC_WORD_A, EC_WORD_POKEMON, EC_WORD_GAME},
.speechLose = {EC_WORD_MESSAGE, EC_WORD_CARDS, EC_WORD_MAKE, EC_WORD_A, EC_WORD_WEAK, EC_MOVE2(PRESENT)},
- .monSets = gBattleFrontierTrainerMons_Esther
+ .monSet = gBattleFrontierTrainerMons_Esther
},
- [216] = {
+ [FRONTIER_TRAINER_OSCAR] = {
.facilityClass = FACILITY_CLASS_PKMN_BREEDER_M,
.trainerName = _("OSCAR"),
.speechBefore = {EC_WORD_LET_S, EC_WORD_SEE, EC_WORD_YOUR, EC_WORD_POWER, EC_WORD_IN, EC_WORD_FULL},
.speechWin = {EC_WORD_THAT_WAS, EC_WORD_NOT, EC_WORD_YOUR, EC_WORD_FULL, EC_WORD_POWER, EC_WORD_EXCL},
.speechLose = {EC_WORD_NOT, EC_WORD_FUNNY, EC_WORD_ELLIPSIS, EC_WORD_YOU_RE, EC_WORD_TOO_STRONG, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Oscar
+ .monSet = gBattleFrontierTrainerMons_Oscar
},
- [217] = {
+ [FRONTIER_TRAINER_WILSON] = {
.facilityClass = FACILITY_CLASS_PKMN_BREEDER_M,
.trainerName = _("WILSON"),
.speechBefore = {EC_WORD_WORK, EC_WORD_IS, EC_WORD_MAKING, EC_WORD_ME, EC_WORD_AN, EC_WORD_EARLY_BIRD},
.speechWin = {EC_WORD_ALL, EC_WORD_WORK, EC_WORD_AND, EC_WORD_NO, EC_WORD_PLAY, EC_WORD_ELLIPSIS},
.speechLose = {EC_MOVE(ENDURE), EC_WORD_IS, EC_WORD_ALL, EC_WORD_I, EC_WORD_CAN, EC_WORD_DO},
- .monSets = gBattleFrontierTrainerMons_Wilson
+ .monSet = gBattleFrontierTrainerMons_Wilson
},
- [218] = {
+ [FRONTIER_TRAINER_CLARE] = {
.facilityClass = FACILITY_CLASS_PKMN_BREEDER_F,
.trainerName = _("CLARE"),
.speechBefore = {EC_WORD_YAY, EC_WORD_EXCL, EC_WORD_A, EC_WORD_TOUGH, EC_WORD_TRAINER, EC_WORD_EXCL},
.speechWin = {EC_WORD_AWW, EC_WORD_EXCL, EC_WORD_A, EC_WORD_WIMPY, EC_WORD_TRAINER, EC_WORD_EXCL},
.speechLose = {EC_WORD_COOL, EC_WORD_EXCL, EC_WORD_A, EC_WORD_GENIUS, EC_WORD_TRAINER, EC_WORD_EXCL},
- .monSets = gBattleFrontierTrainerMons_Clare
+ .monSet = gBattleFrontierTrainerMons_Clare
},
- [219] = {
+ [FRONTIER_TRAINER_TESS] = {
.facilityClass = FACILITY_CLASS_PKMN_BREEDER_F,
.trainerName = _("TESS"),
.speechBefore = {EC_WORD_WANT, EC_WORD_SOME, EC_POKEMON(GULPIN), EC_WORD_DESIGN, EC_WORD_SWEETS, EC_WORD_QUES},
.speechWin = {EC_WORD_THEY_RE, EC_WORD_A, EC_WORD_SECRET, EC_WORD_POKEMON, EC_WORD_GOURMET, EC_WORD_ITEM},
.speechLose = {EC_WORD_THEY_RE, EC_WORD_TASTY, EC_WORD_EXCL, EC_WORD_REFRESHING, EC_WORD_TOO, EC_WORD_EXCL},
- .monSets = gBattleFrontierTrainerMons_Tess
+ .monSet = gBattleFrontierTrainerMons_Tess
},
- [220] = {
+ [FRONTIER_TRAINER_LEON] = {
.facilityClass = FACILITY_CLASS_COOLTRAINER_M,
.trainerName = _("LEON"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_BETTER, EC_WORD_THAN, EC_WORD_ANY, EC_WORD_OTHER, EC_WORD_TRAINER},
.speechWin = {EC_WORD_I, EC_WORD_DID, EC_WORD_IT, EC_MOVE2(JUMP_KICK), EC_WORD_FOR, EC_WORD_JOY},
.speechLose = {EC_WORD_BACK, EC_WORD_HOME, EC_WORD_I, EC_WORD_WILL, EC_WORD_GO, EC_WORD_ELLIPSIS},
- .monSets = gBattleFrontierTrainerMons_Leon
+ .monSet = gBattleFrontierTrainerMons_Leon
},
- [221] = {
+ [FRONTIER_TRAINER_ALONZO] = {
.facilityClass = FACILITY_CLASS_COOLTRAINER_M,
.trainerName = _("ALONZO"),
.speechBefore = {EC_WORD_I_VE, EC_WORD_NOT, EC_WORD_LOST, EC_WORD_ONCE, EC_WORD_YET, EC_WORD_EXCL},
.speechWin = {EC_WORD_YOUR, EC_WORD_SAD, EC_WORD_LOOK, EC_WORD_BECOMES, EC_WORD_YOU, 0xFFFF},
.speechLose = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_BELIEVE, EC_WORD_THIS, EC_WORD_ELLIPSIS, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Alonzo
+ .monSet = gBattleFrontierTrainerMons_Alonzo
},
- [222] = {
+ [FRONTIER_TRAINER_VINCE] = {
.facilityClass = FACILITY_CLASS_COOLTRAINER_M,
.trainerName = _("VINCE"),
.speechBefore = {EC_WORD_THE, EC_WORD_TOP, EC_WORD_TRAINER, EC_WORD_THAT_S, EC_WORD_ME, EC_WORD_EXCL},
.speechWin = {EC_WORD_THE, EC_WORD_TOP, EC_WORD_RANK, EC_WORD_BELONGS_TO, EC_WORD_ME, EC_WORD_EXCL},
.speechLose = {EC_WORD_I, EC_WORD_WILL, EC_WORD_APPEAL, EC_WORD_THIS, EC_MOVE(OUTRAGE), EC_WORD_EXCL},
- .monSets = gBattleFrontierTrainerMons_Vince
+ .monSet = gBattleFrontierTrainerMons_Vince
},
- [223] = {
+ [FRONTIER_TRAINER_BRYON] = {
.facilityClass = FACILITY_CLASS_COOLTRAINER_M,
.trainerName = _("BRYON"),
.speechBefore = {EC_WORD_MY, EC_MOVE2(BARRAGE), EC_WORD_WILL, EC_MOVE2(SLAM), EC_WORD_YOU, EC_WORD_EXCL},
.speechWin = {EC_WORD_YOU, EC_WORD_DIDN_T, EC_WORD_COUNT_ON, EC_WORD_ANY, EC_WORD_LESS, EC_WORD_QUES},
.speechLose = {EC_WORD_I, EC_WORD_JUST, EC_WORD_DON_T, EC_WORD_GET, EC_WORD_IT, EC_WORD_ELLIPSIS},
- .monSets = gBattleFrontierTrainerMons_Bryon
+ .monSet = gBattleFrontierTrainerMons_Bryon
},
- [224] = {
+ [FRONTIER_TRAINER_AVA] = {
.facilityClass = FACILITY_CLASS_COOLTRAINER_F,
.trainerName = _("AVA"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_A, EC_WORD_TREASURE, EC_WORD_OF, EC_WORD_THIS, EC_WORD_WORLD},
.speechWin = {EC_WORD_MY, EC_WORD_WORLD, EC_WORD_IS, EC_WORD_FULL, EC_WORD_OF, EC_WORD_WONDER},
.speechLose = {EC_WORD_WHY, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_SO, EC_WORD_TERRIBLE, EC_WORD_QUES},
- .monSets = gBattleFrontierTrainerMons_Ava
+ .monSet = gBattleFrontierTrainerMons_Ava
},
- [225] = {
+ [FRONTIER_TRAINER_MIRIAM] = {
.facilityClass = FACILITY_CLASS_COOLTRAINER_F,
.trainerName = _("MIRIAM"),
.speechBefore = {EC_WORD_OH, EC_WORD_A, EC_WORD_TRAINER, EC_WORD_WITH, EC_WORD_A, EC_MOVE(SCARY_FACE)},
.speechWin = {EC_WORD_AHAHA, EC_WORD_YOU, EC_WORD_ONLY, EC_WORD_LOOK, EC_WORD_SCARY, EC_WORD_EXCL},
.speechLose = {EC_WORD_AIYEEH, EC_WORD_EXCL, EC_WORD_YOU, EC_WORD_REALLY, EC_WORD_ARE, EC_WORD_SCARY},
- .monSets = gBattleFrontierTrainerMons_Miriam
+ .monSet = gBattleFrontierTrainerMons_Miriam
},
- [226] = {
+ [FRONTIER_TRAINER_CARRIE] = {
.facilityClass = FACILITY_CLASS_COOLTRAINER_F,
.trainerName = _("CARRIE"),
.speechBefore = {EC_WORD_I, EC_WORD_WILL, EC_WORD_SHOW, EC_WORD_YOU, EC_WORD_GUTSY, EC_WORD_EXCL},
.speechWin = {EC_WORD_IT_S, EC_WORD_ALL, EC_WORD_ABOUT, EC_WORD_GUTS, EC_WORD_EXCL, 0xFFFF},
.speechLose = {EC_WORD_OH, EC_WORD_NO, EC_WORD_ELLIPSIS, EC_MOVE(SELF_DESTRUCT), EC_WORD_MODE, EC_WORD_EXCL},
- .monSets = gBattleFrontierTrainerMons_Carrie
+ .monSet = gBattleFrontierTrainerMons_Carrie
},
- [227] = {
+ [FRONTIER_TRAINER_GILLIAN2] = {
.facilityClass = FACILITY_CLASS_COOLTRAINER_F,
.trainerName = _("GILLIAN"),
.speechBefore = {EC_WORD_I, EC_WORD_SEEK, EC_WORD_A, EC_WORD_TRULY, EC_WORD_GREAT, EC_WORD_BATTLE},
.speechWin = {EC_WORD_I, EC_WORD_NEED, EC_WORD_A_LOT, EC_WORD_BETTER, EC_WORD_BATTLE, EC_WORD_ELLIPSIS},
.speechLose = {EC_WORD_THAT_WAS, EC_WORD_A_LITTLE, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_TO, EC_WORD_TAKE},
- .monSets = gBattleFrontierTrainerMons_Gillian2
+ .monSet = gBattleFrontierTrainerMons_Gillian2
},
- [228] = {
+ [FRONTIER_TRAINER_TYLER] = {
.facilityClass = FACILITY_CLASS_PKMN_RANGER_M,
.trainerName = _("TYLER"),
.speechBefore = {EC_WORD_YO, EC_WORD_EXCL, 0xFFFF, EC_WORD_LET_S, EC_WORD_GO, EC_WORD_EXCL_EXCL},
.speechWin = {EC_WORD_YO, EC_WORD_EXCL, 0xFFFF, EC_WORD_I, EC_WORD_WON, EC_WORD_YO},
.speechLose = {EC_WORD_YO, EC_WORD_EXCL, 0xFFFF, EC_WORD_I, EC_WORD_LOST, EC_WORD_YO},
- .monSets = gBattleFrontierTrainerMons_Tyler
+ .monSet = gBattleFrontierTrainerMons_Tyler
},
- [229] = {
+ [FRONTIER_TRAINER_CHAZ] = {
.facilityClass = FACILITY_CLASS_PKMN_RANGER_M,
.trainerName = _("CHAZ"),
.speechBefore = {EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_HAVE, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_POWER},
.speechWin = {EC_WORD_THEY, EC_WORD_HAVE, EC_WORD_MORE, EC_WORD_POWER, EC_WORD_NOW, EC_WORD_EXCL},
.speechLose = {EC_WORD_YEAH, EC_MOVE2(TAKE_DOWN), EC_WORD_THEIR, EC_WORD_POWER, EC_WORD_A_TINY_BIT, EC_WORD_PLEASE},
- .monSets = gBattleFrontierTrainerMons_Chaz
+ .monSet = gBattleFrontierTrainerMons_Chaz
},
- [230] = {
+ [FRONTIER_TRAINER_NELSON] = {
.facilityClass = FACILITY_CLASS_PKMN_RANGER_M,
.trainerName = _("NELSON"),
.speechBefore = {EC_WORD_WELL_THEN, EC_WORD_WILL, EC_WORD_THIS, EC_WORD_POKEMON, EC_WORD_WORK, EC_WORD_QUES},
.speechWin = {EC_WORD_I, EC_WORD_SEE, EC_WORD_THAT, EC_WORD_IT, EC_WORD_WAS, EC_WORD_TOO_STRONG},
.speechLose = {EC_WORD_IT, EC_WORD_DIDN_T, EC_WORD_MATCH_UP, EC_WORD_WELL, EC_WORD_I, EC_WORD_THINK},
- .monSets = gBattleFrontierTrainerMons_Nelson
+ .monSet = gBattleFrontierTrainerMons_Nelson
},
- [231] = {
+ [FRONTIER_TRAINER_SHANIA] = {
.facilityClass = FACILITY_CLASS_PKMN_RANGER_F,
.trainerName = _("SHANIA"),
.speechBefore = {EC_WORD_ALL, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_ABSOLUTELY, EC_WORD_ADORE, EC_WORD_ME},
.speechWin = {EC_WORD_HAPPINESS, EC_WORD_IS, EC_WORD_A, EC_WORD_POKEMON, EC_WORD_WITH, EC_WORD_CUTE_CHARM},
.speechLose = {EC_WORD_YOU_RE, EC_WORD_SO, EC_WORD_MEAN, EC_WORD_TO, EC_WORD_CUTE, EC_WORD_POKEMON},
- .monSets = gBattleFrontierTrainerMons_Shania
+ .monSet = gBattleFrontierTrainerMons_Shania
},
- [232] = {
+ [FRONTIER_TRAINER_STELLA] = {
.facilityClass = FACILITY_CLASS_PKMN_RANGER_F,
.trainerName = _("STELLA"),
.speechBefore = {EC_WORD_I, EC_WORD_WANT, EC_WORD_TO, EC_WORD_SEE, EC_WORD_YOUR, EC_WORD_POKEMON},
.speechWin = {EC_WORD_WELL, EC_WORD_AREN_T, EC_WORD_THEY, EC_WORD_BORING, EC_WORD_QUES, EC_WORD_AHAHA},
.speechLose = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_SOMETHING, EC_WORD_ELSE, EC_WORD_ALL_RIGHT},
- .monSets = gBattleFrontierTrainerMons_Stella
+ .monSet = gBattleFrontierTrainerMons_Stella
},
- [233] = {
+ [FRONTIER_TRAINER_DORINE] = {
.facilityClass = FACILITY_CLASS_PKMN_RANGER_F,
.trainerName = _("DORINE"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_YOUNG, EC_WORD_AND, EC_WORD_STRONG, EC_WORD_EXCL, 0xFFFF},
.speechWin = {EC_WORD_SEE, EC_WORD_QUES, EC_WORD_AREN_T, EC_WORD_I, EC_WORD_GOOD, EC_WORD_QUES},
.speechLose = {EC_WORD_THIS, EC_WORD_ISN_T, EC_WORD_WORKING, EC_WORD_OUT, EC_WORD_AT, EC_WORD_ALL},
- .monSets = gBattleFrontierTrainerMons_Dorine
+ .monSet = gBattleFrontierTrainerMons_Dorine
},
- [234] = {
+ [FRONTIER_TRAINER_MADDOX] = {
.facilityClass = FACILITY_CLASS_DRAGON_TAMER,
.trainerName = _("MADDOX"),
.speechBefore = {EC_WORD_DRAGON, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_MY, EC_WORD_NO_1, EC_WORD_CHOICE},
.speechWin = {EC_WORD_IT_S, EC_WORD_NO, EC_WORD_SECRET, EC_WORD_DRAGON, EC_WORD_POKEMON, EC_WORD_WIN},
.speechLose = {EC_WORD_DRAGON, EC_WORD_POKEMON, EC_WORD_SHOULD, EC_WORD_NOT, EC_WORD_LOSE, EC_WORD_EXCL},
- .monSets = gBattleFrontierTrainerMons_Maddox
+ .monSet = gBattleFrontierTrainerMons_Maddox
},
- [235] = {
+ [FRONTIER_TRAINER_DAVIN] = {
.facilityClass = FACILITY_CLASS_DRAGON_TAMER,
.trainerName = _("DAVIN"),
.speechBefore = {EC_WORD_LET_S, EC_WORD_HEAR, EC_WORD_YOU, EC_MOVE2(ROAR), EC_WORD_EXCL, 0xFFFF},
.speechWin = {EC_WORD_WROOOAAR_EXCL, 0xFFFF, 0xFFFF, EC_WORD_VICTORY, EC_WORD_EXCL_EXCL, 0xFFFF},
.speechLose = {EC_WORD_WROOOAAR_EXCL, 0xFFFF, 0xFFFF, EC_WORD_WHY, EC_WORD_QUES_EXCL, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Davin
+ .monSet = gBattleFrontierTrainerMons_Davin
},
- [236] = {
+ [FRONTIER_TRAINER_TREVON] = {
.facilityClass = FACILITY_CLASS_DRAGON_TAMER,
.trainerName = _("TREVON"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_LIVING, EC_WORD_ONLY, EC_WORD_WITH, EC_WORD_DRAGON, EC_WORD_POKEMON},
.speechWin = {EC_WORD_THE, EC_WORD_WAY, EC_WORD_I_AM, EC_WORD_LIVING, EC_WORD_IS, EC_WORD_PERFECT},
.speechLose = {EC_WORD_YOU_VE, EC_WORD_DESTROYED, EC_WORD_THE, EC_WORD_WAY, EC_WORD_I_AM, EC_WORD_LIVING},
- .monSets = gBattleFrontierTrainerMons_Trevon
+ .monSet = gBattleFrontierTrainerMons_Trevon
},
- [237] = {
+ [FRONTIER_TRAINER_MATEO] = {
.facilityClass = FACILITY_CLASS_BLACK_BELT,
.trainerName = _("MATEO"),
.speechBefore = {EC_WORD_THIS, EC_WORD_SHOULD, EC_WORD_BE, EC_WORD_OVER, EC_WORD_SOON, EC_WORD_ENOUGH},
.speechWin = {EC_WORD_WELL, EC_WORD_THAT, EC_WORD_DIDN_T, EC_WORD_TAKE, EC_WORD_VERY, EC_WORD_MUCH},
.speechLose = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_LOSE, EC_WORD_SO, EC_WORD_SOON, EC_WORD_EXCL},
- .monSets = gBattleFrontierTrainerMons_Mateo
+ .monSet = gBattleFrontierTrainerMons_Mateo
},
- [238] = {
+ [FRONTIER_TRAINER_BRET] = {
.facilityClass = FACILITY_CLASS_BLACK_BELT,
.trainerName = _("BRET"),
.speechBefore = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_ROCK_SOLID, EC_WORD_POKEMON, EC_WORD_THE, EC_WORD_BEST},
.speechWin = {EC_WORD_TOUGHNESS, EC_WORD_IS, EC_WORD_THE, EC_WORD_WAY, EC_WORD_TO, EC_WORD_GO},
.speechLose = {EC_WORD_I, EC_WORD_ALSO, EC_WORD_HAVE, EC_WORD_A, EC_WORD_PLUSH_DOLL, EC_WORD_COLLECTION},
- .monSets = gBattleFrontierTrainerMons_Bret
+ .monSet = gBattleFrontierTrainerMons_Bret
},
- [239] = {
+ [FRONTIER_TRAINER_RAUL] = {
.facilityClass = FACILITY_CLASS_BLACK_BELT,
.trainerName = _("RAUL"),
.speechBefore = {EC_WORD_I, EC_WORD_REJECT, EC_WORD_EVERY, EC_WORD_WEAK, EC_WORD_TRAINER, 0xFFFF},
.speechWin = {EC_WORD_HUMPH, EC_WORD_EXCL, EC_WORD_ANOTHER, EC_WORD_WEAK, EC_WORD_TRAINER, EC_WORD_ELLIPSIS},
.speechLose = {EC_WORD_THERE, EC_WORD_IS, EC_WORD_NOTHING, EC_WORD_WEAK, EC_WORD_ABOUT, EC_WORD_YOU},
- .monSets = gBattleFrontierTrainerMons_Raul
+ .monSet = gBattleFrontierTrainerMons_Raul
},
- [240] = {
+ [FRONTIER_TRAINER_KAY] = {
.facilityClass = FACILITY_CLASS_BATTLE_GIRL,
.trainerName = _("KAY"),
.speechBefore = {EC_WORD_AND, EC_WORD_YET, EC_WORD_ANOTHER, EC_WORD_BATTLE, EC_WORD_QUES, 0xFFFF},
.speechWin = {EC_WORD_I, EC_WORD_WON, EC_WORD_BUT, EC_WORD_I_AM, EC_WORD_TIRED, EC_WORD_ELLIPSIS},
.speechLose = {EC_WORD_GOOD, EC_WORD_IT_S, EC_WORD_OVER, EC_WORD_AT, EC_WORD_LAST, EC_WORD_ELLIPSIS},
- .monSets = gBattleFrontierTrainerMons_Kay
+ .monSet = gBattleFrontierTrainerMons_Kay
},
- [241] = {
+ [FRONTIER_TRAINER_ELENA] = {
.facilityClass = FACILITY_CLASS_BATTLE_GIRL,
.trainerName = _("ELENA"),
.speechBefore = {EC_WORD_A, EC_WORD_BATTLE, EC_WORD_GIRL, EC_WORD_THAT_S, EC_WORD_ME, EC_WORD_EXCL},
.speechWin = {EC_WORD_ISN_T, EC_WORD_A, EC_WORD_BATTLE, EC_WORD_GIRL, EC_WORD_AWESOME, EC_WORD_QUES},
.speechLose = {EC_WORD_YOU, EC_WORD_DISLIKE, EC_WORD_A, EC_WORD_BATTLE, EC_WORD_GIRL, EC_WORD_QUES},
- .monSets = gBattleFrontierTrainerMons_Elena
+ .monSet = gBattleFrontierTrainerMons_Elena
},
- [242] = {
+ [FRONTIER_TRAINER_ALANA] = {
.facilityClass = FACILITY_CLASS_BATTLE_GIRL,
.trainerName = _("ALANA"),
.speechBefore = {EC_WORD_EAT, EC_WORD_MY, EC_WORD_INVINCIBLE, EC_WORD_ATTACK, EC_WORD_YOU, EC_WORD_EXCL},
.speechWin = {EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_MUCH, EC_WORD_TO, EC_WORD_LEARN, 0xFFFF},
.speechLose = {EC_WORD_SO, EC_WORD_MUCH, EC_WORD_FOR, EC_WORD_MY, EC_WORD_INVINCIBLE, EC_WORD_ATTACK},
- .monSets = gBattleFrontierTrainerMons_Alana
+ .monSet = gBattleFrontierTrainerMons_Alana
},
- [243] = {
+ [FRONTIER_TRAINER_ALEXAS] = {
.facilityClass = FACILITY_CLASS_EXPERT_M,
.trainerName = _("ALEXAS"),
.speechBefore = {EC_WORD_GOOD, EC_WORD_TO, EC_WORD_MEET_YOU, EC_WORD_YOUNG, EC_WORD_TRAINER, EC_WORD_EXCL},
.speechWin = {EC_WORD_WAHAHAHA, EC_WORD_EXCL, 0xFFFF, EC_WORD_GIVE, EC_WORD_IT, EC_WORD_UP},
.speechLose = {EC_WORD_YOU, EC_WORD_ARE, EC_WORD_A, EC_WORD_STRONG, EC_WORD_TRAINER, EC_WORD_KID},
- .monSets = gBattleFrontierTrainerMons_Alexas
+ .monSet = gBattleFrontierTrainerMons_Alexas
},
- [244] = {
+ [FRONTIER_TRAINER_WESTON] = {
.facilityClass = FACILITY_CLASS_EXPERT_M,
.trainerName = _("WESTON"),
.speechBefore = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_PLAY, EC_WORD_DOWN, EC_WORD_ALL_RIGHT, EC_WORD_QUES},
.speechWin = {EC_WORD_YOU_RE, EC_WORD_FAR, EC_WORD_TOO, EC_WORD_EASY, EC_WORD_TO, EC_WORD_ATTACK},
.speechLose = {EC_WORD_WELL, EC_WORD_WELL, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_SURRENDER, EC_WORD_ELLIPSIS},
- .monSets = gBattleFrontierTrainerMons_Weston
+ .monSet = gBattleFrontierTrainerMons_Weston
},
- [245] = {
+ [FRONTIER_TRAINER_JASPER] = {
.facilityClass = FACILITY_CLASS_EXPERT_M,
.trainerName = _("JASPER"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_OLD, EC_WORD_I_AM, EC_WORD_SKILLED, EC_WORD_EXCL},
.speechWin = {EC_WORD_SKILLED, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM, EC_WORD_EXCL, 0xFFFF},
.speechLose = {EC_WORD_I_AM, EC_WORD_SHOCKED, EC_WORD_EXCL, EC_WORD_DOWN, EC_WORD_I, EC_WORD_GO},
- .monSets = gBattleFrontierTrainerMons_Jasper
+ .monSet = gBattleFrontierTrainerMons_Jasper
},
- [246] = {
+ [FRONTIER_TRAINER_NADIA] = {
.facilityClass = FACILITY_CLASS_EXPERT_F,
.trainerName = _("NADIA"),
.speechBefore = {EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_BEAT, EC_WORD_ME, EC_WORD_DOWN, EC_WORD_EXCL},
.speechWin = {EC_WORD_HAH, EC_WORD_EXCL, 0xFFFF, EC_WORD_I, EC_WORD_BEAT, EC_WORD_YOU},
.speechLose = {EC_WORD_I_AM, EC_MOVE2(BEAT_UP), EC_WORD_AND, EC_WORD_DOWNCAST, EC_WORD_ELLIPSIS, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Nadia
+ .monSet = gBattleFrontierTrainerMons_Nadia
},
- [247] = {
+ [FRONTIER_TRAINER_MIRANDA] = {
.facilityClass = FACILITY_CLASS_EXPERT_F,
.trainerName = _("MIRANDA"),
.speechBefore = {EC_WORD_WELL, EC_WORD_WELL, 0xFFFF, EC_WORD_LET_S, EC_WORD_START, 0xFFFF},
.speechWin = {EC_WORD_WHAT, EC_WORD_QUES, EC_WORD_DONE, EC_WORD_SO, EC_WORD_SOON, EC_WORD_QUES},
.speechLose = {EC_WORD_WELL, EC_WORD_I, EC_WORD_SEE, EC_WORD_THAT, EC_WORD_I_AM, EC_WORD_TOO_WEAK},
- .monSets = gBattleFrontierTrainerMons_Miranda
+ .monSet = gBattleFrontierTrainerMons_Miranda
},
- [248] = {
+ [FRONTIER_TRAINER_EMMA] = {
.facilityClass = FACILITY_CLASS_EXPERT_F,
.trainerName = _("EMMA"),
.speechBefore = {EC_WORD_I_VE, EC_WORD_BEEN, EC_WORD_HEARING, EC_WORD_ABOUT, EC_WORD_YOU, 0xFFFF},
.speechWin = {EC_WORD_I, EC_WORD_THINK, EC_WORD_I_VE, EC_WORD_MISHEARD, EC_WORD_THINGS, 0xFFFF},
.speechLose = {EC_WORD_WHAT, EC_WORD_I_VE, EC_WORD_BEEN, EC_WORD_HEARING, EC_WORD_IS, EC_WORD_RIGHT},
- .monSets = gBattleFrontierTrainerMons_Emma
+ .monSet = gBattleFrontierTrainerMons_Emma
},
- [249] = {
+ [FRONTIER_TRAINER_ROLANDO] = {
.facilityClass = FACILITY_CLASS_PSYCHIC_M,
.trainerName = _("ROLANDO"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_A, EC_WORD_SUPER, EC_WORD_POKEMON, EC_WORD_HERO, EC_WORD_EXCL},
.speechWin = {EC_WORD_WAS, EC_WORD_THAT, EC_WORD_ENOUGH, EC_WORD_FOR, EC_WORD_YOU, EC_WORD_QUES},
.speechLose = {EC_WORD_YOU, EC_WORD_SHOULD, EC_WORD_NOT, EC_WORD_BEAT, EC_WORD_A, EC_WORD_HERO},
- .monSets = gBattleFrontierTrainerMons_Rolando
+ .monSet = gBattleFrontierTrainerMons_Rolando
},
- [250] = {
+ [FRONTIER_TRAINER_STANLY] = {
.facilityClass = FACILITY_CLASS_PSYCHIC_M,
.trainerName = _("STANLY"),
.speechBefore = {EC_WORD_THIS, EC_WORD_SHOULD, EC_WORD_BE, EC_WORD_AN, EC_WORD_EASY, EC_WORD_MATCH},
.speechWin = {EC_WORD_IT, EC_WORD_REALLY, EC_WORD_WAS, EC_WORD_EASY, 0xFFFF, 0xFFFF},
.speechLose = {EC_WORD_ARE, EC_WORD_YOU, EC_WORD_HAPPY, EC_WORD_NOW, EC_WORD_QUES, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Stanly
+ .monSet = gBattleFrontierTrainerMons_Stanly
},
- [251] = {
+ [FRONTIER_TRAINER_DARIO] = {
.facilityClass = FACILITY_CLASS_PSYCHIC_M,
.trainerName = _("DARIO"),
.speechBefore = {EC_WORD_MY, EC_MOVE2(FORESIGHT), EC_WORD_SAYS, EC_WORD_I, EC_WORD_WILL, EC_WORD_WIN},
.speechWin = {EC_WORD_MY, EC_MOVE2(FORESIGHT), EC_WORD_HAS, EC_WORD_BEEN, EC_WORD_PERFECT, 0xFFFF},
.speechLose = {EC_WORD_I, EC_WORD_DIDN_T, EC_WORD_SEE, EC_WORD_THIS, EC_MOVE(REVERSAL), EC_WORD_ELLIPSIS},
- .monSets = gBattleFrontierTrainerMons_Dario
+ .monSet = gBattleFrontierTrainerMons_Dario
},
- [252] = {
+ [FRONTIER_TRAINER_KARLEE] = {
.facilityClass = FACILITY_CLASS_PSYCHIC_F,
.trainerName = _("KARLEE"),
.speechBefore = {EC_WORD_SOMETHING, EC_WORD_GOOD, EC_WORD_WILL, EC_WORD_COME, EC_WORD_OF, EC_WORD_THIS},
.speechWin = {EC_WORD_YOU, EC_WORD_SEE, EC_WORD_QUES, EC_WORD_FANTASTIC, EC_WORD_EXCL, 0xFFFF},
.speechLose = {EC_WORD_THAT, EC_WORD_SOMETHING, EC_WORD_GOOD, EC_WORD_WENT, EC_WORD_TO, EC_WORD_YOU},
- .monSets = gBattleFrontierTrainerMons_Karlee
+ .monSet = gBattleFrontierTrainerMons_Karlee
},
- [253] = {
+ [FRONTIER_TRAINER_JAYLIN] = {
.facilityClass = FACILITY_CLASS_PSYCHIC_F,
.trainerName = _("JAYLIN"),
.speechBefore = {EC_WORD_EVERY, EC_WORD_TRAINER, EC_WORD_HAS, EC_WORD_BEEN, EC_WORD_TOO_WEAK, EC_WORD_ELLIPSIS},
.speechWin = {EC_WORD_IT_S, EC_WORD_MAKING, EC_WORD_ME, EC_MOVE(YAWN), EC_WORD_THAT, EC_WORD_BATTLE},
.speechLose = {EC_WORD_I, EC_WORD_SLEPT, EC_WORD_AND, EC_WORD_SO, EC_WORD_I, EC_WORD_LOST},
- .monSets = gBattleFrontierTrainerMons_Jaylin
+ .monSet = gBattleFrontierTrainerMons_Jaylin
},
- [254] = {
+ [FRONTIER_TRAINER_INGRID] = {
.facilityClass = FACILITY_CLASS_PSYCHIC_F,
.trainerName = _("INGRID"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_A, EC_WORD_VERY, EC_WORD_MEAN, EC_WORD_TRAINER},
.speechWin = {EC_WORD_WASN_T, EC_WORD_THAT, EC_WORD_A, EC_WORD_GOOD, EC_WORD_MATCH, EC_WORD_QUES},
.speechLose = {EC_WORD_I, EC_WORD_LOST, EC_WORD_CAUSE, EC_WORD_YOU_RE, EC_WORD_MEAN, EC_WORD_ELLIPSIS},
- .monSets = gBattleFrontierTrainerMons_Ingrid
+ .monSet = gBattleFrontierTrainerMons_Ingrid
},
- [255] = {
+ [FRONTIER_TRAINER_DELILAH] = {
.facilityClass = FACILITY_CLASS_HEX_MANIAC,
.trainerName = _("DELILAH"),
.speechBefore = {EC_WORD_DON_T, EC_MOVE(GRUDGE), EC_WORD_ME, EC_WORD_IF_I_WIN, EC_WORD_OK_QUES, 0xFFFF},
.speechWin = {EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_TO, EC_WORD_SEE, EC_WORD_YOU, EC_WORD_ANGRY},
.speechLose = {EC_WORD_I, EC_WORD_HAVE, EC_WORD_A, EC_MOVE(GRUDGE), EC_WORD_WITH, EC_WORD_YOU},
- .monSets = gBattleFrontierTrainerMons_Delilah
+ .monSet = gBattleFrontierTrainerMons_Delilah
},
- [256] = {
+ [FRONTIER_TRAINER_CARLY] = {
.facilityClass = FACILITY_CLASS_HEX_MANIAC,
.trainerName = _("CARLY"),
.speechBefore = {EC_WORD_I, EC_WORD_WILL, EC_WORD_SCATTER, EC_WORD_SOME, EC_MOVE2(POISON_POWDER), EC_WORD_ABOUT},
.speechWin = {EC_WORD_IT_S, EC_WORD_SCARY, EC_WORD_HOW, EC_WORD_MY, EC_WORD_STRATEGY, EC_WORD_WORKS},
.speechLose = {EC_WORD_I, EC_WORD_DISLIKE, EC_WORD_YOU, EC_WORD_AND, EC_WORD_YOUR, EC_WORD_POKEMON},
- .monSets = gBattleFrontierTrainerMons_Carly
+ .monSet = gBattleFrontierTrainerMons_Carly
},
- [257] = {
+ [FRONTIER_TRAINER_LEXIE] = {
.facilityClass = FACILITY_CLASS_HEX_MANIAC,
.trainerName = _("LEXIE"),
.speechBefore = {EC_WORD_WANT, EC_WORD_TO, EC_WORD_SEE, EC_WORD_SCARY, EC_WORD_POKEMON, EC_WORD_QUES},
.speechWin = {EC_WORD_WASN_T, EC_WORD_THAT, EC_WORD_SCARY, EC_WORD_EH_QUES, 0xFFFF, 0xFFFF},
.speechLose = {EC_WORD_YOU_RE, EC_WORD_MORE, EC_WORD_SCARY, EC_WORD_THAN, EC_WORD_MY, EC_WORD_POKEMON},
- .monSets = gBattleFrontierTrainerMons_Lexie
+ .monSet = gBattleFrontierTrainerMons_Lexie
},
- [258] = {
+ [FRONTIER_TRAINER_MILLER] = {
.facilityClass = FACILITY_CLASS_POKEMANIAC,
.trainerName = _("MILLER"),
.speechBefore = {EC_WORD_HELLO, EC_WORD_QUES, 0xFFFF, EC_WORD_HELLO, EC_WORD_QUES_EXCL, 0xFFFF},
.speechWin = {EC_WORD_HELLO, EC_WORD_MOTHER, EC_WORD_EXCL, EC_WORD_I, EC_WORD_WON, EC_WORD_EXCL},
.speechLose = {EC_WORD_MY, EC_WORD_PHONE, EC_WORD_ISN_T, EC_WORD_WORKING, EC_WORD_ELLIPSIS, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Miller
+ .monSet = gBattleFrontierTrainerMons_Miller
},
- [259] = {
+ [FRONTIER_TRAINER_MARV] = {
.facilityClass = FACILITY_CLASS_POKEMANIAC,
.trainerName = _("MARV"),
.speechBefore = {EC_WORD_YOU, EC_WORD_CAN, EC_WORD_LOSE, EC_WORD_YOUR, EC_MOVE(SWAGGER), EC_WORD_NOW},
.speechWin = {EC_WORD_THERE, EC_WORD_IS, EC_WORD_NO, EC_MOVE(SWAGGER), EC_WORD_LEFT, EC_WORD_EH_QUES},
.speechLose = {EC_WORD_GO, EC_WORD_ON, EC_MOVE(SWAGGER), EC_WORD_ALL, EC_WORD_YOU, EC_WORD_WANT},
- .monSets = gBattleFrontierTrainerMons_Marv
+ .monSet = gBattleFrontierTrainerMons_Marv
},
- [260] = {
+ [FRONTIER_TRAINER_LAYTON] = {
.facilityClass = FACILITY_CLASS_POKEMANIAC,
.trainerName = _("LAYTON"),
.speechBefore = {EC_WORD_I, EC_WORD_KNOW, EC_WORD_I_AM, EC_WORD_TOTALLY, EC_WORD_COOL, EC_WORD_EXCL},
.speechWin = {EC_WORD_YOU, EC_WORD_CAN, EC_WORD_LOOK, EC_WORD_UP, EC_WORD_TO, EC_WORD_ME},
.speechLose = {EC_WORD_YOU_RE, EC_WORD_COOL, EC_WORD_EXCL, EC_WORD_NO, EC_WORD_REALLY, EC_WORD_EXCL},
- .monSets = gBattleFrontierTrainerMons_Layton
+ .monSet = gBattleFrontierTrainerMons_Layton
},
- [261] = {
+ [FRONTIER_TRAINER_BROOKS] = {
.facilityClass = FACILITY_CLASS_GENTLEMAN,
.trainerName = _("BROOKS"),
.speechBefore = {EC_WORD_THIS, EC_WORD_IS, EC_WORD_A, EC_WORD_HIGH, EC_WORD_LEVEL, EC_WORD_BATTLE},
.speechWin = {EC_WORD_THAT_WAS, EC_WORD_HIGH, EC_WORD_LEVEL, EC_WORD_AND, EC_WORD_EXCITING, EC_WORD_TOO},
.speechLose = {EC_WORD_YOU_RE, EC_WORD_TOO, EC_WORD_HIGH, EC_WORD_IN, EC_WORD_LEVEL, EC_WORD_ELLIPSIS},
- .monSets = gBattleFrontierTrainerMons_Brooks
+ .monSet = gBattleFrontierTrainerMons_Brooks
},
- [262] = {
+ [FRONTIER_TRAINER_GREGORY] = {
.facilityClass = FACILITY_CLASS_GENTLEMAN,
.trainerName = _("GREGORY"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_THAT, EC_WORD_OLD, EC_WORD_YET, 0xFFFF},
.speechWin = {EC_WORD_WHO, EC_WORD_SAYS, EC_WORD_I_AM, EC_WORD_TOO, EC_WORD_OLD, EC_WORD_QUES},
.speechLose = {EC_WORD_PLEASE, EC_WORD_I_AM, EC_WORD_REALLY, EC_WORD_NOT, EC_WORD_THAT, EC_WORD_OLD},
- .monSets = gBattleFrontierTrainerMons_Gregory
+ .monSet = gBattleFrontierTrainerMons_Gregory
},
- [263] = {
+ [FRONTIER_TRAINER_REESE] = {
.facilityClass = FACILITY_CLASS_GENTLEMAN,
.trainerName = _("REESE"),
.speechBefore = {EC_WORD_I_VE, EC_WORD_A, EC_WORD_COUPLE, EC_WORD_THINGS, 0xFFFF, 0xFFFF},
.speechWin = {EC_WORD_DON_T, EC_WORD_DIET, EC_WORD_PLAY, EC_WORD_SPORTS, EC_WORD_INSTEAD, 0xFFFF},
.speechLose = {EC_WORD_INSTEAD, EC_WORD_OF, EC_WORD_TELEVISION, EC_WORD_GET, EC_WORD_A, EC_WORD_BOOK},
- .monSets = gBattleFrontierTrainerMons_Reese
+ .monSet = gBattleFrontierTrainerMons_Reese
},
- [264] = {
+ [FRONTIER_TRAINER_MASON] = {
.facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M,
.trainerName = _("MASON"),
.speechBefore = {EC_WORD_PLEASE, EC_WORD_DON_T, EC_WORD_MAKE, EC_WORD_THIS, EC_WORD_SCARY, 0xFFFF},
.speechWin = {EC_WORD_THANK_YOU, EC_WORD_ELLIPSIS, 0xFFFF, EC_WORD_I_AM, EC_WORD_HAPPY, EC_WORD_NOW},
.speechLose = {EC_WORD_I_AM, EC_WORD_DISAPPOINTED, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Mason
+ .monSet = gBattleFrontierTrainerMons_Mason
},
- [265] = {
+ [FRONTIER_TRAINER_TOBY] = {
.facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M,
.trainerName = _("TOBY"),
.speechBefore = {EC_WORD_LISTEN, EC_WORD_UP, 0xFFFF, EC_WORD_I, EC_WORD_ALWAYS, EC_WORD_WIN},
.speechWin = {EC_WORD_I_AM, EC_WORD_A, EC_WORD_GENIUS, EC_WORD_OR, EC_WORD_WHAT, EC_WORD_QUES},
.speechLose = {EC_WORD_I, EC_WORD_CAN, EC_WORD_BEAT, EC_WORD_YOU, EC_WORD_AT, EC_WORD_SMARTNESS},
- .monSets = gBattleFrontierTrainerMons_Toby
+ .monSet = gBattleFrontierTrainerMons_Toby
},
- [266] = {
+ [FRONTIER_TRAINER_DOROTHY] = {
.facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F,
.trainerName = _("DOROTHY"),
.speechBefore = {EC_WORD_THE, EC_WORD_SPORTS, EC_WORD_WORLD, EC_WORD_SHOULD, EC_WORD_ACCEPT, EC_WORD_POKEMON},
.speechWin = {EC_WORD_THANK_YOU, EC_WORD_EXCL, EC_WORD_THAT, EC_WORD_WIN, EC_WORD_WAS, EC_WORD_REFRESHING},
.speechLose = {EC_WORD_THANK_YOU, EC_WORD_EXCL, EC_WORD_THAT, EC_WORD_LOSS, EC_WORD_WAS, EC_WORD_REFRESHING},
- .monSets = gBattleFrontierTrainerMons_Dorothy
+ .monSet = gBattleFrontierTrainerMons_Dorothy
},
- [267] = {
+ [FRONTIER_TRAINER_PIPER] = {
.facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F,
.trainerName = _("PIPER"),
.speechBefore = {EC_WORD_COME_ON, EC_WORD_YOU, EC_WORD_NEED, EC_WORD_A, EC_WORD_SPEED_BOOST, EC_WORD_QUES},
.speechWin = {EC_WORD_YOU, EC_WORD_NEED, EC_WORD_TO, EC_WORD_SHOW, EC_WORD_MORE, EC_WORD_GUTS},
.speechLose = {EC_WORD_OH, EC_WORD_YOU, EC_WORD_EXCL, 0xFFFF, 0xFFFF, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Piper
+ .monSet = gBattleFrontierTrainerMons_Piper
},
- [268] = {
+ [FRONTIER_TRAINER_FINN] = {
.facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M,
.trainerName = _("FINN"),
.speechBefore = {EC_WORD_NOT, EC_WORD_ANOTHER, EC_WORD_TRAINER, EC_WORD_BATTLE, EC_WORD_ELLIPSIS, 0xFFFF},
.speechWin = {EC_WORD_WON_T, EC_WORD_THIS, EC_WORD_EVER, EC_WORD_END, EC_WORD_QUES, 0xFFFF},
.speechLose = {EC_WORD_I, EC_WORD_FINALLY, EC_WORD_GET, EC_WORD_TO, EC_MOVE2(REST), EC_WORD_A_LITTLE},
- .monSets = gBattleFrontierTrainerMons_Finn
+ .monSet = gBattleFrontierTrainerMons_Finn
},
- [269] = {
+ [FRONTIER_TRAINER_SAMIR] = {
.facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M,
.trainerName = _("SAMIR"),
.speechBefore = {EC_WORD_I, EC_MOVE2(DIVE), EC_WORD_BELOW, EC_WORD_THE, EC_MOVE2(SURF), EC_WORD_EXCL},
.speechWin = {EC_WORD_YAHOO, EC_WORD_TAKE, EC_WORD_A, EC_MOVE2(DIVE), EC_WORD_YOU, EC_WORD_EXCL},
.speechLose = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_SINK, EC_WORD_ELLIPSIS, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Samir
+ .monSet = gBattleFrontierTrainerMons_Samir
},
- [270] = {
+ [FRONTIER_TRAINER_FIONA] = {
.facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_F,
.trainerName = _("FIONA"),
.speechBefore = {EC_WORD_DID, EC_WORD_YOU, EC_WORD_LIMBER, EC_WORD_UP, EC_WORD_BEFORE, EC_WORD_QUES},
.speechWin = {EC_WORD_YOU, EC_WORD_NEED, EC_WORD_TO, EC_WORD_BE, EC_WORD_MORE, EC_WORD_READY},
.speechLose = {EC_WORD_BEING, EC_WORD_LIMBER, EC_WORD_DIDN_T, EC_WORD_WORK, EC_WORD_FOR, EC_WORD_ME},
- .monSets = gBattleFrontierTrainerMons_Fiona
+ .monSet = gBattleFrontierTrainerMons_Fiona
},
- [271] = {
+ [FRONTIER_TRAINER_GLORIA] = {
.facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_F,
.trainerName = _("GLORIA"),
.speechBefore = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_TO, EC_WORD_ATTACK, EC_WORD_WITH, EC_WORD_SUCTION_CUPS},
.speechWin = {EC_WORD_GIGGLE, EC_WORD_ELLIPSIS, EC_WORD_IT_S, EC_WORD_OVER, EC_WORD_FOR, EC_WORD_YOU},
.speechLose = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_GET, EC_WORD_HOW, EC_WORD_SUCTION_CUPS, EC_WORD_WORK},
- .monSets = gBattleFrontierTrainerMons_Gloria
+ .monSet = gBattleFrontierTrainerMons_Gloria
},
- [272] = {
+ [FRONTIER_TRAINER_NICO] = {
.facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_M,
.trainerName = _("NICO"),
.speechBefore = {EC_WORD_LIKE, EC_WORD_A, EC_MOVE(SONIC_BOOM), EC_WORD_I_VE_ARRIVED, 0xFFFF, 0xFFFF},
.speechWin = {EC_WORD_SORRY, EC_WORD_TO, EC_WORD_MAKE, EC_WORD_YOU, EC_WORD_SO, EC_WORD_DOWNCAST},
.speechLose = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_WITH, EC_WORD_A, EC_MOVE2(SUPERSONIC), EC_WORD_SPEED_BOOST},
- .monSets = gBattleFrontierTrainerMons_Nico
+ .monSet = gBattleFrontierTrainerMons_Nico
},
- [273] = {
+ [FRONTIER_TRAINER_JEREMY] = {
.facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_M,
.trainerName = _("JEREMY"),
.speechBefore = {EC_WORD_A, EC_WORD_POKEMON, EC_WORD_MASTER, EC_WORD_THAT_S, EC_WORD_MY, EC_WORD_DREAM},
.speechWin = {EC_WORD_MY, EC_WORD_DREAM, EC_WORD_ISN_T, EC_WORD_FAR, EC_WORD_OFF, EC_WORD_EXCL},
.speechLose = {EC_WORD_WHAT, EC_WORD_I, EC_WORD_DREAM, EC_WORD_ISN_T, EC_WORD_HAPPENING, EC_WORD_ELLIPSIS},
- .monSets = gBattleFrontierTrainerMons_Jeremy
+ .monSet = gBattleFrontierTrainerMons_Jeremy
},
- [274] = {
+ [FRONTIER_TRAINER_CAITLIN] = {
.facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_F,
.trainerName = _("CAITLIN"),
.speechBefore = {EC_WORD_DON_T, EC_WORD_YOU, EC_WORD_THINK, EC_WORD_I_AM, EC_WORD_CUTE, EC_WORD_QUES},
.speechWin = {EC_WORD_THERE, EC_WORD_IS, EC_WORD_MORE, EC_WORD_TO_ME, EC_WORD_THAN, EC_WORD_CUTENESS},
.speechLose = {EC_WORD_MY, EC_WORD_CUTE_CHARM, EC_WORD_DOESN_T, EC_MOVE2(ATTRACT), EC_WORD_YOU, EC_WORD_QUES},
- .monSets = gBattleFrontierTrainerMons_Caitlin
+ .monSet = gBattleFrontierTrainerMons_Caitlin
},
- [275] = {
+ [FRONTIER_TRAINER_REENA] = {
.facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_F,
.trainerName = _("REENA"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_ALWAYS, EC_WORD_HAPPY, EC_WORD_HAPPY, EC_WORD_HAPPY, EC_WORD_EXCL},
.speechWin = {EC_WORD_OH, EC_WORD_YAY, EC_WORD_EXCL, EC_WORD_YAHOO, EC_WORD_FOR, EC_WORD_ME},
.speechLose = {EC_WORD_YAHOO, EC_WORD_EXCL, EC_WORD_I_AM, EC_WORD_HAPPY, EC_WORD_FOR, EC_WORD_YOU},
- .monSets = gBattleFrontierTrainerMons_Reena
+ .monSet = gBattleFrontierTrainerMons_Reena
},
- [276] = {
+ [FRONTIER_TRAINER_AVERY] = {
.facilityClass = FACILITY_CLASS_BUG_MANIAC,
.trainerName = _("AVERY"),
.speechBefore = {EC_WORD_I_VE, EC_WORD_GOT, EC_WORD_A_LOT, EC_WORD_OF, EC_WORD_BUG, EC_WORD_POKEMON},
.speechWin = {EC_WORD_MY, EC_WORD_BUG, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_ALL, EC_WORD_UNBELIEVABLE},
.speechLose = {EC_WORD_MY, EC_WORD_BUG, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_ALL, EC_WORD_UPSIDE_DOWN},
- .monSets = gBattleFrontierTrainerMons_Avery
+ .monSet = gBattleFrontierTrainerMons_Avery
},
- [277] = {
+ [FRONTIER_TRAINER_LIAM] = {
.facilityClass = FACILITY_CLASS_BUG_MANIAC,
.trainerName = _("LIAM"),
.speechBefore = {EC_WORD_WE, EC_WORD_REALLY, EC_WORD_DISLIKE, EC_WORD_FIRE, EC_WORD_AND, EC_WORD_FLYING},
.speechWin = {EC_WORD_BUG, EC_WORD_POKEMON, EC_WORD_AREN_T, EC_WORD_BAD, EC_WORD_HEY_QUES, 0xFFFF},
.speechLose = {EC_WORD_YOU, EC_WORD_KNOW, EC_WORD_WHAT, EC_WORD_WE, EC_WORD_DISLIKE, EC_WORD_HEY_QUES},
- .monSets = gBattleFrontierTrainerMons_Liam
+ .monSet = gBattleFrontierTrainerMons_Liam
},
- [278] = {
+ [FRONTIER_TRAINER_THEO] = {
.facilityClass = FACILITY_CLASS_FISHERMAN,
.trainerName = _("THEO"),
.speechBefore = {EC_WORD_FISHING, EC_WORD_IS, EC_WORD_MY, EC_WORD_CHOICE, EC_WORD_IN, EC_WORD_LIFE},
.speechWin = {EC_WORD_WATER, EC_WORD_POKEMON, EC_MOVE2(ATTRACT), EC_WORD_ME, EC_WORD_WITHOUT, EC_WORD_END},
.speechLose = {EC_WORD_DON_T, EC_WORD_COUNT_ON, EC_WORD_THAT, EC_WORD_HAPPENING, EC_WORD_ANOTHER, EC_WORD_TIME},
- .monSets = gBattleFrontierTrainerMons_Theo
+ .monSet = gBattleFrontierTrainerMons_Theo
},
- [279] = {
+ [FRONTIER_TRAINER_BAILEY] = {
.facilityClass = FACILITY_CLASS_FISHERMAN,
.trainerName = _("BAILEY"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_AN, EC_WORD_ADULT, EC_WORD_I, EC_WORD_BATTLE, EC_WORD_EASY},
.speechWin = {EC_WORD_I_AM, EC_WORD_AN, EC_WORD_ADULT, EC_WORD_I, EC_MOVE2(SWALLOW), EC_WORD_JOY},
.speechLose = {EC_WORD_I_AM, EC_WORD_AN, EC_WORD_ADULT, EC_WORD_I, EC_MOVE2(SWALLOW), EC_MOVE2(FRUSTRATION)},
- .monSets = gBattleFrontierTrainerMons_Bailey
+ .monSet = gBattleFrontierTrainerMons_Bailey
},
- [280] = {
+ [FRONTIER_TRAINER_HUGO] = {
.facilityClass = FACILITY_CLASS_RUIN_MANIAC,
.trainerName = _("HUGO"),
.speechBefore = {EC_WORD_I, EC_WORD_TRY, EC_WORD_THE, EC_WORD_BEST, EC_WORD_I, EC_WORD_CAN},
.speechWin = {EC_WORD_I, EC_WORD_CAN_WIN, EC_WORD_IF, EC_WORD_I, EC_WORD_TRY, EC_WORD_ENOUGH},
.speechLose = {EC_WORD_I, EC_WORD_DID, EC_WORD_TRY, EC_WORD_DIDN_T, EC_WORD_I, EC_WORD_QUES},
- .monSets = gBattleFrontierTrainerMons_Hugo
+ .monSet = gBattleFrontierTrainerMons_Hugo
},
- [281] = {
+ [FRONTIER_TRAINER_BRYCE] = {
.facilityClass = FACILITY_CLASS_RUIN_MANIAC,
.trainerName = _("BRYCE"),
.speechBefore = {EC_WORD_I_WAS, EC_WORD_ON, EC_WORD_VACATION, EC_WORD_UNTIL, EC_WORD_ONLY, EC_WORD_YESTERDAY},
.speechWin = {EC_WORD_I, EC_WORD_HAVEN_T, EC_WORD_LOST, EC_WORD_MY, EC_WORD_SKILL, EC_WORD_YET},
.speechLose = {EC_WORD_THAT_S, EC_WORD_IT, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_NEED, EC_WORD_SLEEP},
- .monSets = gBattleFrontierTrainerMons_Bryce
+ .monSet = gBattleFrontierTrainerMons_Bryce
},
- [282] = {
+ [FRONTIER_TRAINER_GIDEON] = {
.facilityClass = FACILITY_CLASS_COLLECTOR,
.trainerName = _("GIDEON"),
.speechBefore = {EC_WORD_WHAT_S_UP_QUES, EC_WORD_YOU, EC_WORD_THINK, EC_WORD_I_AM, EC_WORD_SCARY, EC_WORD_QUES},
.speechWin = {EC_WORD_I_AM, EC_WORD_COOL, EC_WORD_BUT, EC_WORD_NOT, EC_WORD_SCARY, EC_WORD_EXCL},
.speechLose = {EC_WORD_LOOK, EC_WORD_AT, EC_WORD_MY, EC_WORD_FABULOUS, EC_WORD_FASHION, EC_WORD_SENSE},
- .monSets = gBattleFrontierTrainerMons_Gideon
+ .monSet = gBattleFrontierTrainerMons_Gideon
},
- [283] = {
+ [FRONTIER_TRAINER_TRISTON] = {
.facilityClass = FACILITY_CLASS_COLLECTOR,
.trainerName = _("TRISTON"),
.speechBefore = {EC_WORD_I, EC_WORD_WOULD, EC_WORD_RATHER, EC_WORD_LOOK, EC_WORD_AT, EC_WORD_POKEMON},
.speechWin = {EC_WORD_HUH_QUES, EC_WORD_YOU, EC_WORD_MEAN, EC_WORD_I, EC_WORD_WON, EC_WORD_QUES_EXCL},
.speechLose = {EC_WORD_SEE, EC_WORD_QUES, 0xFFFF, EC_WORD_I, EC_WORD_ALWAYS, EC_WORD_LOSE},
- .monSets = gBattleFrontierTrainerMons_Triston
+ .monSet = gBattleFrontierTrainerMons_Triston
},
- [284] = {
+ [FRONTIER_TRAINER_CHARLES] = {
.facilityClass = FACILITY_CLASS_GUITARIST,
.trainerName = _("CHARLES"),
.speechBefore = {EC_WORD_IT_S, EC_WORD_HOPELESS, EC_WORD_TO, EC_MOVE2(STRUGGLE), EC_WORD_WITH, EC_WORD_ME},
.speechWin = {EC_MOVE(SUBMISSION), EC_WORD_WAS, EC_WORD_YOUR, EC_WORD_ONLY, EC_WORD_CHOICE, 0xFFFF},
.speechLose = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_DOWN, EC_WORD_DOWN, EC_WORD_DOWN, EC_WORD_EXCL},
- .monSets = gBattleFrontierTrainerMons_Charles
+ .monSet = gBattleFrontierTrainerMons_Charles
},
- [285] = {
+ [FRONTIER_TRAINER_RAYMOND] = {
.facilityClass = FACILITY_CLASS_GUITARIST,
.trainerName = _("RAYMOND"),
.speechBefore = {EC_WORD_WANT, EC_WORD_TO, EC_WORD_HEAR, EC_WORD_MY, EC_WORD_SONG, EC_WORD_QUES},
.speechWin = {EC_WORD_SATISFIED, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM, EC_WORD_EXCL, 0xFFFF},
.speechLose = {EC_WORD_SATISFIED, EC_WORD_IS, EC_WORD_WHAT, EC_WORD_I, EC_WORD_CAN_T, EC_WORD_BE},
- .monSets = gBattleFrontierTrainerMons_Raymond
+ .monSet = gBattleFrontierTrainerMons_Raymond
},
- [286] = {
+ [FRONTIER_TRAINER_DIRK] = {
.facilityClass = FACILITY_CLASS_BIRD_KEEPER,
.trainerName = _("DIRK"),
.speechBefore = {EC_WORD_FLYING, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_ABOVE, EC_WORD_THE, EC_MOVE2(REST)},
.speechWin = {EC_WORD_YOU, EC_WORD_CAN_T_WIN, EC_WORD_EXCL, EC_WORD_FLYING, EC_WORD_POKEMON, EC_WORD_RULE},
.speechLose = {EC_WORD_AREN_T, EC_WORD_THERE, EC_WORD_MORE, EC_WORD_FLYING, EC_WORD_POKEMON, EC_WORD_QUES},
- .monSets = gBattleFrontierTrainerMons_Dirk
+ .monSet = gBattleFrontierTrainerMons_Dirk
},
- [287] = {
+ [FRONTIER_TRAINER_HAROLD] = {
.facilityClass = FACILITY_CLASS_BIRD_KEEPER,
.trainerName = _("HAROLD"),
.speechBefore = {EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_APPEAL, EC_WORD_TO, EC_WORD_YOU, EC_WORD_QUES},
.speechWin = {EC_WORD_YOU, EC_WORD_DO, EC_WORD_LIKE, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_QUES},
.speechLose = {EC_WORD_SO, EC_WORD_YOU, EC_WORD_DISLIKE, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_QUES},
- .monSets = gBattleFrontierTrainerMons_Harold
+ .monSet = gBattleFrontierTrainerMons_Harold
},
- [288] = {
+ [FRONTIER_TRAINER_OMAR] = {
.facilityClass = FACILITY_CLASS_SAILOR,
.trainerName = _("OMAR"),
.speechBefore = {EC_WORD_LET_ME_WIN, EC_WORD_IN, EC_MOVE(RETURN), EC_WORD_FOR, EC_WORD_A, EC_MOVE2(PRESENT)},
.speechWin = {EC_WORD_HERE, EC_WORD_YOU, EC_WORD_ARE, EC_WORD_SOME, EC_MOVE2(TOXIC), EC_WORD_SWEETS},
.speechLose = {EC_WORD_YOUR, EC_MOVE2(PRESENT), EC_WORD_QUES, EC_WORD_WHAT, EC_WORD_FOR, EC_WORD_QUES_EXCL},
- .monSets = gBattleFrontierTrainerMons_Omar
+ .monSet = gBattleFrontierTrainerMons_Omar
},
- [289] = {
+ [FRONTIER_TRAINER_PETER] = {
.facilityClass = FACILITY_CLASS_SAILOR,
.trainerName = _("PETER"),
.speechBefore = {EC_WORD_I, EC_WORD_BRAG, EC_WORD_ABOUT, EC_WORD_MY, EC_WORD_HAPPINESS, EC_WORD_OK_QUES},
.speechWin = {EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_TO, EC_WORD_LISTEN, EC_WORD_TO_ME, EC_WORD_BRAG},
.speechLose = {EC_WORD_I_AM, EC_WORD_DISAPPOINTED, EC_WORD_YOU, EC_WORD_WON_T, EC_WORD_LISTEN, EC_WORD_TO_ME},
- .monSets = gBattleFrontierTrainerMons_Peter
+ .monSet = gBattleFrontierTrainerMons_Peter
},
- [290] = {
+ [FRONTIER_TRAINER_DEV] = {
.facilityClass = FACILITY_CLASS_HIKER,
.trainerName = _("DEV"),
.speechBefore = {EC_WORD_COME_ON, EC_WORD_LET_S, EC_WORD_GET, EC_WORD_A, EC_WORD_MOVE, EC_WORD_ON},
.speechWin = {EC_WORD_I, EC_WORD_GET, EC_WORD_TO, EC_WORD_NAP, EC_WORD_AFTER, EC_WORD_THAT},
.speechLose = {EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_NAP, EC_WORD_AFTER, EC_WORD_THAT},
- .monSets = gBattleFrontierTrainerMons_Dev
+ .monSet = gBattleFrontierTrainerMons_Dev
},
- [291] = {
+ [FRONTIER_TRAINER_COREY] = {
.facilityClass = FACILITY_CLASS_HIKER,
.trainerName = _("COREY"),
.speechBefore = {EC_WORD_LET_S, EC_WORD_TEACH, EC_WORD_YOU, EC_WORD_HOW, EC_WORD_TOUGH, EC_WORD_I_AM},
.speechWin = {EC_WORD_LOOK, EC_WORD_AT, EC_WORD_ME, EC_WORD_MAKE, EC_WORD_A, EC_MOVE(BRICK_BREAK)},
.speechLose = {EC_WORD_MY, EC_MOVE2(FRUSTRATION), EC_WORD_IS, EC_WORD_CLOSE, EC_WORD_TO, EC_MOVE2(ERUPTION)},
- .monSets = gBattleFrontierTrainerMons_Corey
+ .monSet = gBattleFrontierTrainerMons_Corey
},
- [292] = {
+ [FRONTIER_TRAINER_ANDRE] = {
.facilityClass = FACILITY_CLASS_KINDLER,
.trainerName = _("ANDRE"),
.speechBefore = {EC_WORD_NOW, EC_WORD_THIS, EC_WORD_IS, EC_WORD_A, EC_WORD_PERFECT, EC_WORD_FLAME_BODY},
.speechWin = {EC_WORD_LOOK, EC_WORD_AT, EC_WORD_MY, EC_WORD_FIERY, EC_WORD_DANCE, EC_WORD_EXCL},
.speechLose = {EC_WORD_YOU, EC_WORD_WANT, EC_WORD_AN, EC_MOVE2(EXPLOSION), EC_WORD_HERE, EC_WORD_QUES},
- .monSets = gBattleFrontierTrainerMons_Andre
+ .monSet = gBattleFrontierTrainerMons_Andre
},
- [293] = {
+ [FRONTIER_TRAINER_FERRIS] = {
.facilityClass = FACILITY_CLASS_KINDLER,
.trainerName = _("FERRIS"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_NO_1, EC_WORD_IN, EC_WORD_THE, EC_WORD_OLD, EC_WORD_CLASS},
.speechWin = {EC_WORD_NO_1, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM, EC_WORD_EXCL, 0xFFFF},
.speechLose = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_NO_1, EC_WORD_ANY, EC_WORD_MORE, EC_WORD_ELLIPSIS},
- .monSets = gBattleFrontierTrainerMons_Ferris
+ .monSet = gBattleFrontierTrainerMons_Ferris
},
- [294] = {
+ [FRONTIER_TRAINER_ALIVIA] = {
.facilityClass = FACILITY_CLASS_PARASOL_LADY,
.trainerName = _("ALIVIA"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_GIDDY, EC_WORD_SO, EC_WORD_SHOULD, EC_WORD_YOU},
.speechWin = {EC_WORD_IT, EC_WORD_WAS, EC_WORD_ALL, EC_WORD_TOGETHER, EC_WORD_TOO, EC_WORD_EASY},
.speechLose = {EC_WORD_I, EC_WORD_WILL, EC_WORD_GIDDY, EC_WORD_UP, EC_WORD_AND, EC_WORD_AWAY},
- .monSets = gBattleFrontierTrainerMons_Alivia
+ .monSet = gBattleFrontierTrainerMons_Alivia
},
- [295] = {
+ [FRONTIER_TRAINER_PAIGE] = {
.facilityClass = FACILITY_CLASS_PARASOL_LADY,
.trainerName = _("PAIGE"),
.speechBefore = {EC_WORD_LET_S, EC_WORD_ENJOY, EC_WORD_OUR, EC_WORD_BATTLE, EC_WORD_TOGETHER, 0xFFFF},
.speechWin = {EC_WORD_THAT_S_IT_EXCL, 0xFFFF, 0xFFFF, EC_WORD_THANK_YOU, EC_WORD_VERY, EC_WORD_MUCH},
.speechLose = {EC_WORD_THAT_S_IT_EXCL, 0xFFFF, 0xFFFF, EC_WORD_DO, EC_WORD_GO, EC_WORD_ON},
- .monSets = gBattleFrontierTrainerMons_Paige
+ .monSet = gBattleFrontierTrainerMons_Paige
},
- [296] = {
+ [FRONTIER_TRAINER_ANYA] = {
.facilityClass = FACILITY_CLASS_BEAUTY,
.trainerName = _("ANYA"),
.speechBefore = {EC_WORD_I, EC_WORD_DISLIKE, EC_WORD_OH, EC_WORD_SO, EC_WORD_PRETTY, EC_WORD_FASHION},
.speechWin = {EC_WORD_FASHION, EC_WORD_SHOULD, EC_WORD_MATCH, EC_WORD_THE, EC_WORD_PERSON, 0xFFFF},
.speechLose = {EC_WORD_PRETTY, EC_WORD_COULD, EC_WORD_BE, EC_WORD_GOOD, 0xFFFF, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Anya
+ .monSet = gBattleFrontierTrainerMons_Anya
},
- [297] = {
+ [FRONTIER_TRAINER_DAWN] = {
.facilityClass = FACILITY_CLASS_BEAUTY,
.trainerName = _("DAWN"),
.speechBefore = {EC_WORD_I, EC_WORD_GO, EC_WORD_ALL, EC_WORD_OUT, EC_WORD_EXCL, 0xFFFF},
.speechWin = {EC_WORD_DON_T, EC_WORD_BE, EC_WORD_A, EC_WORD_BABY, EC_WORD_EXCL, 0xFFFF},
.speechLose = {EC_WORD_YOU, EC_WORD_WON, EC_WORD_EXCL, EC_WORD_MOVE, EC_WORD_ON, EC_WORD_EXCL},
- .monSets = gBattleFrontierTrainerMons_Dawn
+ .monSet = gBattleFrontierTrainerMons_Dawn
},
- [298] = {
+ [FRONTIER_TRAINER_ABBY] = {
.facilityClass = FACILITY_CLASS_AROMA_LADY,
.trainerName = _("ABBY"),
.speechBefore = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_A, EC_WORD_TRAINER, EC_WORD_THAT_S, EC_WORD_REFRESHING},
.speechWin = {EC_WORD_VICTORY, EC_WORD_HAS, EC_WORD_A, EC_MOVE(SWEET_SCENT), EC_WORD_EXCL, 0xFFFF},
.speechLose = {EC_WORD_WHAT, EC_WORD_AN, EC_WORD_AWFUL, EC_WORD_STENCH, EC_WORD_EXCL, 0xFFFF},
- .monSets = gBattleFrontierTrainerMons_Abby
+ .monSet = gBattleFrontierTrainerMons_Abby
},
- [299] = {
+ [FRONTIER_TRAINER_GRETEL] = {
.facilityClass = FACILITY_CLASS_AROMA_LADY,
.trainerName = _("GRETEL"),
.speechBefore = {EC_WORD_I, EC_WORD_CAUSE, EC_MOVE(OUTRAGE), EC_WORD_AS, EC_WORD_A, EC_WORD_TRAINER},
.speechWin = {EC_WORD_IT_S, EC_WORD_ONLY, EC_WORD_NATURAL, EC_WORD_SEE_YA, EC_WORD_BYE_BYE, EC_WORD_EXCL},
.speechLose = {EC_WORD_IT_S, EC_WORD_HARD, EC_WORD_TO, EC_WORD_BELIEVE, EC_WORD_BUT, EC_WORD_CONGRATS},
- .monSets = gBattleFrontierTrainerMons_Gretel
+ .monSet = gBattleFrontierTrainerMons_Gretel
}
};
diff --git a/src/data/battle_frontier/battle_tent.h b/src/data/battle_frontier/battle_tent.h
index 946ca0187..bf89c5bc3 100644
--- a/src/data/battle_frontier/battle_tent.h
+++ b/src/data/battle_frontier/battle_tent.h
@@ -1,1242 +1,1242 @@
// Slateport Battle Tent.
const u16 gSlateportBattleTentTrainerMons_Jolie[] =
{
- 9,
- 10,
- 13,
- 27,
- 35,
- 37,
- 42,
- 44,
- 45,
- 46,
- 63,
+ SLATEPORT_TENT_MON_CACNEA_1,
+ SLATEPORT_TENT_MON_LOMBRE_1,
+ SLATEPORT_TENT_MON_NUZLEAF,
+ SLATEPORT_TENT_MON_CACNEA_2,
+ SLATEPORT_TENT_MON_MAKUHITA,
+ SLATEPORT_TENT_MON_BARBOACH,
+ SLATEPORT_TENT_MON_SOLROCK,
+ SLATEPORT_TENT_MON_KECLEON_2,
+ SLATEPORT_TENT_MON_SHROOMISH_1,
+ SLATEPORT_TENT_MON_SHROOMISH_2,
+ SLATEPORT_TENT_MON_BRELOOM,
-1
};
const u16 gSlateportBattleTentTrainerMons_Malachi[] =
{
- 9,
- 16,
- 17,
- 27,
- 36,
- 39,
- 42,
- 45,
- 48,
- 49,
- 53,
+ SLATEPORT_TENT_MON_CACNEA_1,
+ SLATEPORT_TENT_MON_GRAVELER,
+ SLATEPORT_TENT_MON_BALTOY,
+ SLATEPORT_TENT_MON_CACNEA_2,
+ SLATEPORT_TENT_MON_NUMEL_1,
+ SLATEPORT_TENT_MON_VIGOROTH,
+ SLATEPORT_TENT_MON_SOLROCK,
+ SLATEPORT_TENT_MON_SHROOMISH_1,
+ SLATEPORT_TENT_MON_NUMEL_2,
+ SLATEPORT_TENT_MON_TRAPINCH_2,
+ SLATEPORT_TENT_MON_SKITTY,
-1
};
const u16 gSlateportBattleTentTrainerMons_Kelsie[] =
{
- 4,
- 5,
- 6,
- 11,
- 28,
- 34,
- 35,
- 37,
- 43,
- 51,
- 53,
+ SLATEPORT_TENT_MON_WAILMER_1,
+ SLATEPORT_TENT_MON_WAILMER_2,
+ SLATEPORT_TENT_MON_MARILL_1,
+ SLATEPORT_TENT_MON_LOTAD,
+ SLATEPORT_TENT_MON_TAILLOW,
+ SLATEPORT_TENT_MON_WHISMUR,
+ SLATEPORT_TENT_MON_MAKUHITA,
+ SLATEPORT_TENT_MON_BARBOACH,
+ SLATEPORT_TENT_MON_KECLEON_1,
+ SLATEPORT_TENT_MON_WINGULL_2,
+ SLATEPORT_TENT_MON_SKITTY,
-1
};
const u16 gSlateportBattleTentTrainerMons_Davon[] =
{
- 4,
- 5,
- 6,
- 12,
- 26,
- 36,
- 37,
- 38,
- 40,
- 44,
- 46,
- 50,
+ SLATEPORT_TENT_MON_WAILMER_1,
+ SLATEPORT_TENT_MON_WAILMER_2,
+ SLATEPORT_TENT_MON_MARILL_1,
+ SLATEPORT_TENT_MON_SEEDOT,
+ SLATEPORT_TENT_MON_TRAPINCH_1,
+ SLATEPORT_TENT_MON_NUMEL_1,
+ SLATEPORT_TENT_MON_BARBOACH,
+ SLATEPORT_TENT_MON_TENTACOOL,
+ SLATEPORT_TENT_MON_MAGIKARP,
+ SLATEPORT_TENT_MON_KECLEON_2,
+ SLATEPORT_TENT_MON_SHROOMISH_2,
+ SLATEPORT_TENT_MON_PELIPPER_2,
-1
};
const u16 gSlateportBattleTentTrainerMons_Glenda[] =
{
- 0,
- 1,
- 17,
- 18,
- 19,
- 22,
- 23,
- 33,
- 42,
- 61,
- 64,
- 65,
- 66,
+ SLATEPORT_TENT_MON_ZIGZAGOON_1,
+ SLATEPORT_TENT_MON_ZIGZAGOON_2,
+ SLATEPORT_TENT_MON_BALTOY,
+ SLATEPORT_TENT_MON_MIGHTYENA_1,
+ SLATEPORT_TENT_MON_MIGHTYENA_2,
+ SLATEPORT_TENT_MON_ELECTRIKE_1,
+ SLATEPORT_TENT_MON_VOLTORB,
+ SLATEPORT_TENT_MON_MAGNEMITE,
+ SLATEPORT_TENT_MON_SOLROCK,
+ SLATEPORT_TENT_MON_KADABRA,
+ SLATEPORT_TENT_MON_PLUSLE_1,
+ SLATEPORT_TENT_MON_PLUSLE_2,
+ SLATEPORT_TENT_MON_ELECTRIKE_2,
-1
};
const u16 gSlateportBattleTentTrainerMons_Helena[] =
{
- 18,
- 19,
- 21,
- 38,
- 39,
- 41,
- 42,
- 52,
- 54,
- 58,
- 63,
+ SLATEPORT_TENT_MON_MIGHTYENA_1,
+ SLATEPORT_TENT_MON_MIGHTYENA_2,
+ SLATEPORT_TENT_MON_GOLDEEN,
+ SLATEPORT_TENT_MON_TENTACOOL,
+ SLATEPORT_TENT_MON_VIGOROTH,
+ SLATEPORT_TENT_MON_SEVIPER_1,
+ SLATEPORT_TENT_MON_SOLROCK,
+ SLATEPORT_TENT_MON_MARILL_2,
+ SLATEPORT_TENT_MON_SEVIPER_2,
+ SLATEPORT_TENT_MON_SWALOT,
+ SLATEPORT_TENT_MON_BRELOOM,
-1
};
const u16 gSlateportBattleTentTrainerMons_Rodolfo[] =
{
- 0,
- 1,
- 4,
- 5,
- 7,
- 8,
- 18,
- 20,
- 21,
- 37,
- 38,
- 40,
- 62,
+ SLATEPORT_TENT_MON_ZIGZAGOON_1,
+ SLATEPORT_TENT_MON_ZIGZAGOON_2,
+ SLATEPORT_TENT_MON_WAILMER_1,
+ SLATEPORT_TENT_MON_WAILMER_2,
+ SLATEPORT_TENT_MON_WINGULL_1,
+ SLATEPORT_TENT_MON_PELIPPER_1,
+ SLATEPORT_TENT_MON_MIGHTYENA_1,
+ SLATEPORT_TENT_MON_LINOONE,
+ SLATEPORT_TENT_MON_GOLDEEN,
+ SLATEPORT_TENT_MON_BARBOACH,
+ SLATEPORT_TENT_MON_TENTACOOL,
+ SLATEPORT_TENT_MON_MAGIKARP,
+ SLATEPORT_TENT_MON_KIRLIA,
-1
};
const u16 gSlateportBattleTentTrainerMons_Davion[] =
{
- 17,
- 23,
- 24,
- 25,
- 31,
- 32,
- 33,
- 34,
- 39,
- 43,
- 44,
- 49,
- 57,
- 69,
+ SLATEPORT_TENT_MON_BALTOY,
+ SLATEPORT_TENT_MON_VOLTORB,
+ SLATEPORT_TENT_MON_ARON_1,
+ SLATEPORT_TENT_MON_ARON_2,
+ SLATEPORT_TENT_MON_LOUDRED,
+ SLATEPORT_TENT_MON_SPINDA,
+ SLATEPORT_TENT_MON_MAGNEMITE,
+ SLATEPORT_TENT_MON_WHISMUR,
+ SLATEPORT_TENT_MON_VIGOROTH,
+ SLATEPORT_TENT_MON_KECLEON_1,
+ SLATEPORT_TENT_MON_KECLEON_2,
+ SLATEPORT_TENT_MON_TRAPINCH_2,
+ SLATEPORT_TENT_MON_SANDSHREW,
+ SLATEPORT_TENT_MON_MACHOKE,
-1
};
const u16 gSlateportBattleTentTrainerMons_Kendall[] =
{
- 4,
- 7,
- 8,
- 9,
- 11,
- 12,
- 13,
- 27,
- 38,
- 40,
- 45,
- 46,
- 47,
- 63,
+ SLATEPORT_TENT_MON_WAILMER_1,
+ SLATEPORT_TENT_MON_WINGULL_1,
+ SLATEPORT_TENT_MON_PELIPPER_1,
+ SLATEPORT_TENT_MON_CACNEA_1,
+ SLATEPORT_TENT_MON_LOTAD,
+ SLATEPORT_TENT_MON_SEEDOT,
+ SLATEPORT_TENT_MON_NUZLEAF,
+ SLATEPORT_TENT_MON_CACNEA_2,
+ SLATEPORT_TENT_MON_TENTACOOL,
+ SLATEPORT_TENT_MON_MAGIKARP,
+ SLATEPORT_TENT_MON_SHROOMISH_1,
+ SLATEPORT_TENT_MON_SHROOMISH_2,
+ SLATEPORT_TENT_MON_LOMBRE_2,
+ SLATEPORT_TENT_MON_BRELOOM,
-1
};
const u16 gSlateportBattleTentTrainerMons_Colten[] =
{
- 0,
- 2,
- 12,
- 22,
- 28,
- 30,
- 35,
- 38,
- 43,
- 44,
- 56,
- 57,
+ SLATEPORT_TENT_MON_ZIGZAGOON_1,
+ SLATEPORT_TENT_MON_BEAUTIFLY,
+ SLATEPORT_TENT_MON_SEEDOT,
+ SLATEPORT_TENT_MON_ELECTRIKE_1,
+ SLATEPORT_TENT_MON_TAILLOW,
+ SLATEPORT_TENT_MON_GOLBAT_1,
+ SLATEPORT_TENT_MON_MAKUHITA,
+ SLATEPORT_TENT_MON_TENTACOOL,
+ SLATEPORT_TENT_MON_KECLEON_1,
+ SLATEPORT_TENT_MON_KECLEON_2,
+ SLATEPORT_TENT_MON_RALTS,
+ SLATEPORT_TENT_MON_SANDSHREW,
-1
};
const u16 gSlateportBattleTentTrainerMons_Irvin[] =
{
- 0,
- 1,
- 2,
- 3,
- 14,
- 15,
- 24,
- 25,
- 32,
- 34,
- 39,
- 59,
- 60,
+ SLATEPORT_TENT_MON_ZIGZAGOON_1,
+ SLATEPORT_TENT_MON_ZIGZAGOON_2,
+ SLATEPORT_TENT_MON_BEAUTIFLY,
+ SLATEPORT_TENT_MON_DUSTOX,
+ SLATEPORT_TENT_MON_NINJASK_1,
+ SLATEPORT_TENT_MON_NINJASK_2,
+ SLATEPORT_TENT_MON_ARON_1,
+ SLATEPORT_TENT_MON_ARON_2,
+ SLATEPORT_TENT_MON_SPINDA,
+ SLATEPORT_TENT_MON_WHISMUR,
+ SLATEPORT_TENT_MON_VIGOROTH,
+ SLATEPORT_TENT_MON_VOLBEAT,
+ SLATEPORT_TENT_MON_ILLUMISE,
-1
};
const u16 gSlateportBattleTentTrainerMons_Shaun[] =
{
- 17,
- 18,
- 19,
- 22,
- 29,
- 36,
- 42,
- 48,
- 61,
- 62,
- 66,
- 68,
- 69,
+ SLATEPORT_TENT_MON_BALTOY,
+ SLATEPORT_TENT_MON_MIGHTYENA_1,
+ SLATEPORT_TENT_MON_MIGHTYENA_2,
+ SLATEPORT_TENT_MON_ELECTRIKE_1,
+ SLATEPORT_TENT_MON_SWELLOW,
+ SLATEPORT_TENT_MON_NUMEL_1,
+ SLATEPORT_TENT_MON_SOLROCK,
+ SLATEPORT_TENT_MON_NUMEL_2,
+ SLATEPORT_TENT_MON_KADABRA,
+ SLATEPORT_TENT_MON_KIRLIA,
+ SLATEPORT_TENT_MON_ELECTRIKE_2,
+ SLATEPORT_TENT_MON_MACHOP,
+ SLATEPORT_TENT_MON_MACHOKE,
-1
};
const u16 gSlateportBattleTentTrainerMons_Kyler[] =
{
- 22,
- 23,
- 28,
- 29,
- 31,
- 32,
- 34,
- 39,
- 55,
- 64,
- 65,
- 67,
+ SLATEPORT_TENT_MON_ELECTRIKE_1,
+ SLATEPORT_TENT_MON_VOLTORB,
+ SLATEPORT_TENT_MON_TAILLOW,
+ SLATEPORT_TENT_MON_SWELLOW,
+ SLATEPORT_TENT_MON_LOUDRED,
+ SLATEPORT_TENT_MON_SPINDA,
+ SLATEPORT_TENT_MON_WHISMUR,
+ SLATEPORT_TENT_MON_VIGOROTH,
+ SLATEPORT_TENT_MON_GOLBAT_2,
+ SLATEPORT_TENT_MON_PLUSLE_1,
+ SLATEPORT_TENT_MON_PLUSLE_2,
+ SLATEPORT_TENT_MON_SWABLU,
-1
};
const u16 gSlateportBattleTentTrainerMons_Maggie[] =
{
- 10,
- 13,
- 17,
- 27,
- 45,
- 46,
- 53,
- 56,
- 61,
- 62,
- 63,
+ SLATEPORT_TENT_MON_LOMBRE_1,
+ SLATEPORT_TENT_MON_NUZLEAF,
+ SLATEPORT_TENT_MON_BALTOY,
+ SLATEPORT_TENT_MON_CACNEA_2,
+ SLATEPORT_TENT_MON_SHROOMISH_1,
+ SLATEPORT_TENT_MON_SHROOMISH_2,
+ SLATEPORT_TENT_MON_SKITTY,
+ SLATEPORT_TENT_MON_RALTS,
+ SLATEPORT_TENT_MON_KADABRA,
+ SLATEPORT_TENT_MON_KIRLIA,
+ SLATEPORT_TENT_MON_BRELOOM,
-1
};
const u16 gSlateportBattleTentTrainerMons_Stephon[] =
{
- 8,
- 10,
- 16,
- 23,
- 29,
- 43,
- 44,
- 60,
- 62,
- 63,
- 68,
+ SLATEPORT_TENT_MON_PELIPPER_1,
+ SLATEPORT_TENT_MON_LOMBRE_1,
+ SLATEPORT_TENT_MON_GRAVELER,
+ SLATEPORT_TENT_MON_VOLTORB,
+ SLATEPORT_TENT_MON_SWELLOW,
+ SLATEPORT_TENT_MON_KECLEON_1,
+ SLATEPORT_TENT_MON_KECLEON_2,
+ SLATEPORT_TENT_MON_ILLUMISE,
+ SLATEPORT_TENT_MON_KIRLIA,
+ SLATEPORT_TENT_MON_BRELOOM,
+ SLATEPORT_TENT_MON_MACHOP,
-1
};
const u16 gSlateportBattleTentTrainerMons_Rebecca[] =
{
- 8,
- 13,
- 21,
- 29,
- 33,
- 41,
- 48,
- 54,
- 59,
- 61,
- 68,
+ SLATEPORT_TENT_MON_PELIPPER_1,
+ SLATEPORT_TENT_MON_NUZLEAF,
+ SLATEPORT_TENT_MON_GOLDEEN,
+ SLATEPORT_TENT_MON_SWELLOW,
+ SLATEPORT_TENT_MON_MAGNEMITE,
+ SLATEPORT_TENT_MON_SEVIPER_1,
+ SLATEPORT_TENT_MON_NUMEL_2,
+ SLATEPORT_TENT_MON_SEVIPER_2,
+ SLATEPORT_TENT_MON_VOLBEAT,
+ SLATEPORT_TENT_MON_KADABRA,
+ SLATEPORT_TENT_MON_MACHOP,
-1
};
const u16 gSlateportBattleTentTrainerMons_Reggie[] =
{
- 6,
- 7,
- 17,
- 23,
- 24,
- 26,
- 32,
- 36,
- 52,
- 53,
- 57,
- 65,
+ SLATEPORT_TENT_MON_MARILL_1,
+ SLATEPORT_TENT_MON_WINGULL_1,
+ SLATEPORT_TENT_MON_BALTOY,
+ SLATEPORT_TENT_MON_VOLTORB,
+ SLATEPORT_TENT_MON_ARON_1,
+ SLATEPORT_TENT_MON_TRAPINCH_1,
+ SLATEPORT_TENT_MON_SPINDA,
+ SLATEPORT_TENT_MON_NUMEL_1,
+ SLATEPORT_TENT_MON_MARILL_2,
+ SLATEPORT_TENT_MON_SKITTY,
+ SLATEPORT_TENT_MON_SANDSHREW,
+ SLATEPORT_TENT_MON_PLUSLE_2,
-1
};
const u16 gSlateportBattleTentTrainerMons_Janae[] =
{
- 0,
- 1,
- 27,
- 28,
- 32,
- 34,
- 36,
- 37,
- 52,
- 53,
- 57,
- 65,
+ SLATEPORT_TENT_MON_ZIGZAGOON_1,
+ SLATEPORT_TENT_MON_ZIGZAGOON_2,
+ SLATEPORT_TENT_MON_CACNEA_2,
+ SLATEPORT_TENT_MON_TAILLOW,
+ SLATEPORT_TENT_MON_SPINDA,
+ SLATEPORT_TENT_MON_WHISMUR,
+ SLATEPORT_TENT_MON_NUMEL_1,
+ SLATEPORT_TENT_MON_BARBOACH,
+ SLATEPORT_TENT_MON_MARILL_2,
+ SLATEPORT_TENT_MON_SKITTY,
+ SLATEPORT_TENT_MON_SANDSHREW,
+ SLATEPORT_TENT_MON_PLUSLE_2,
-1
};
const u16 gSlateportBattleTentTrainerMons_Caiden[] =
{
- 10,
- 14,
- 15,
- 16,
- 20,
- 21,
- 25,
- 30,
- 35,
- 47,
- 48,
- 50,
- 69,
+ SLATEPORT_TENT_MON_LOMBRE_1,
+ SLATEPORT_TENT_MON_NINJASK_1,
+ SLATEPORT_TENT_MON_NINJASK_2,
+ SLATEPORT_TENT_MON_GRAVELER,
+ SLATEPORT_TENT_MON_LINOONE,
+ SLATEPORT_TENT_MON_GOLDEEN,
+ SLATEPORT_TENT_MON_ARON_2,
+ SLATEPORT_TENT_MON_GOLBAT_1,
+ SLATEPORT_TENT_MON_MAKUHITA,
+ SLATEPORT_TENT_MON_LOMBRE_2,
+ SLATEPORT_TENT_MON_NUMEL_2,
+ SLATEPORT_TENT_MON_PELIPPER_2,
+ SLATEPORT_TENT_MON_MACHOKE,
-1
};
const u16 gSlateportBattleTentTrainerMons_Kirsten[] =
{
- 10,
- 16,
- 18,
- 19,
- 20,
- 21,
- 25,
- 30,
- 35,
- 39,
- 41,
- 48,
- 69,
+ SLATEPORT_TENT_MON_LOMBRE_1,
+ SLATEPORT_TENT_MON_GRAVELER,
+ SLATEPORT_TENT_MON_MIGHTYENA_1,
+ SLATEPORT_TENT_MON_MIGHTYENA_2,
+ SLATEPORT_TENT_MON_LINOONE,
+ SLATEPORT_TENT_MON_GOLDEEN,
+ SLATEPORT_TENT_MON_ARON_2,
+ SLATEPORT_TENT_MON_GOLBAT_1,
+ SLATEPORT_TENT_MON_MAKUHITA,
+ SLATEPORT_TENT_MON_VIGOROTH,
+ SLATEPORT_TENT_MON_SEVIPER_1,
+ SLATEPORT_TENT_MON_NUMEL_2,
+ SLATEPORT_TENT_MON_MACHOKE,
-1
};
const u16 gSlateportBattleTentTrainerMons_Kurtis[] =
{
- 0,
- 1,
- 36,
- 37,
- 40,
- 46,
- 49,
- 51,
- 64,
- 67,
- 68,
+ SLATEPORT_TENT_MON_ZIGZAGOON_1,
+ SLATEPORT_TENT_MON_ZIGZAGOON_2,
+ SLATEPORT_TENT_MON_NUMEL_1,
+ SLATEPORT_TENT_MON_BARBOACH,
+ SLATEPORT_TENT_MON_MAGIKARP,
+ SLATEPORT_TENT_MON_SHROOMISH_2,
+ SLATEPORT_TENT_MON_TRAPINCH_2,
+ SLATEPORT_TENT_MON_WINGULL_2,
+ SLATEPORT_TENT_MON_PLUSLE_1,
+ SLATEPORT_TENT_MON_SWABLU,
+ SLATEPORT_TENT_MON_MACHOP,
-1
};
const u16 gSlateportBattleTentTrainerMons_Stefan[] =
{
- 4,
- 5,
- 21,
- 33,
- 37,
- 38,
- 40,
- 51,
- 52,
- 64,
- 65,
+ SLATEPORT_TENT_MON_WAILMER_1,
+ SLATEPORT_TENT_MON_WAILMER_2,
+ SLATEPORT_TENT_MON_GOLDEEN,
+ SLATEPORT_TENT_MON_MAGNEMITE,
+ SLATEPORT_TENT_MON_BARBOACH,
+ SLATEPORT_TENT_MON_TENTACOOL,
+ SLATEPORT_TENT_MON_MAGIKARP,
+ SLATEPORT_TENT_MON_WINGULL_2,
+ SLATEPORT_TENT_MON_MARILL_2,
+ SLATEPORT_TENT_MON_PLUSLE_1,
+ SLATEPORT_TENT_MON_PLUSLE_2,
-1
};
const u16 gSlateportBattleTentTrainerMons_Avery[] =
{
- 2,
- 3,
- 7,
- 8,
- 22,
- 23,
- 28,
- 29,
- 30,
- 51,
- 67,
+ SLATEPORT_TENT_MON_BEAUTIFLY,
+ SLATEPORT_TENT_MON_DUSTOX,
+ SLATEPORT_TENT_MON_WINGULL_1,
+ SLATEPORT_TENT_MON_PELIPPER_1,
+ SLATEPORT_TENT_MON_ELECTRIKE_1,
+ SLATEPORT_TENT_MON_VOLTORB,
+ SLATEPORT_TENT_MON_TAILLOW,
+ SLATEPORT_TENT_MON_SWELLOW,
+ SLATEPORT_TENT_MON_GOLBAT_1,
+ SLATEPORT_TENT_MON_WINGULL_2,
+ SLATEPORT_TENT_MON_SWABLU,
-1
};
const u16 gSlateportBattleTentTrainerMons_Dwane[] =
{
- 14,
- 15,
- 30,
- 43,
- 44,
- 45,
- 46,
- 55,
- 58,
- 59,
- 63,
+ SLATEPORT_TENT_MON_NINJASK_1,
+ SLATEPORT_TENT_MON_NINJASK_2,
+ SLATEPORT_TENT_MON_GOLBAT_1,
+ SLATEPORT_TENT_MON_KECLEON_1,
+ SLATEPORT_TENT_MON_KECLEON_2,
+ SLATEPORT_TENT_MON_SHROOMISH_1,
+ SLATEPORT_TENT_MON_SHROOMISH_2,
+ SLATEPORT_TENT_MON_GOLBAT_2,
+ SLATEPORT_TENT_MON_SWALOT,
+ SLATEPORT_TENT_MON_VOLBEAT,
+ SLATEPORT_TENT_MON_BRELOOM,
-1
};
const u16 gSlateportBattleTentTrainerMons_Mckenna[] =
{
- 27,
- 29,
- 30,
- 32,
- 36,
- 48,
- 51,
- 52,
- 53,
- 57,
- 67,
+ SLATEPORT_TENT_MON_CACNEA_2,
+ SLATEPORT_TENT_MON_SWELLOW,
+ SLATEPORT_TENT_MON_GOLBAT_1,
+ SLATEPORT_TENT_MON_SPINDA,
+ SLATEPORT_TENT_MON_NUMEL_1,
+ SLATEPORT_TENT_MON_NUMEL_2,
+ SLATEPORT_TENT_MON_WINGULL_2,
+ SLATEPORT_TENT_MON_MARILL_2,
+ SLATEPORT_TENT_MON_SKITTY,
+ SLATEPORT_TENT_MON_SANDSHREW,
+ SLATEPORT_TENT_MON_SWABLU,
-1
};
const u16 gSlateportBattleTentTrainerMons_Camryn[] =
{
- 5,
- 6,
- 7,
- 8,
- 10,
- 16,
- 17,
- 20,
- 21,
- 37,
- 43,
- 44,
+ SLATEPORT_TENT_MON_WAILMER_2,
+ SLATEPORT_TENT_MON_MARILL_1,
+ SLATEPORT_TENT_MON_WINGULL_1,
+ SLATEPORT_TENT_MON_PELIPPER_1,
+ SLATEPORT_TENT_MON_LOMBRE_1,
+ SLATEPORT_TENT_MON_GRAVELER,
+ SLATEPORT_TENT_MON_BALTOY,
+ SLATEPORT_TENT_MON_LINOONE,
+ SLATEPORT_TENT_MON_GOLDEEN,
+ SLATEPORT_TENT_MON_BARBOACH,
+ SLATEPORT_TENT_MON_KECLEON_1,
+ SLATEPORT_TENT_MON_KECLEON_2,
-1
};
const u16 gSlateportBattleTentTrainerMons_Natasha[] =
{
- 1,
- 3,
- 4,
- 5,
- 9,
- 11,
- 12,
- 20,
- 21,
- 22,
- 51,
+ SLATEPORT_TENT_MON_ZIGZAGOON_2,
+ SLATEPORT_TENT_MON_DUSTOX,
+ SLATEPORT_TENT_MON_WAILMER_1,
+ SLATEPORT_TENT_MON_WAILMER_2,
+ SLATEPORT_TENT_MON_CACNEA_1,
+ SLATEPORT_TENT_MON_LOTAD,
+ SLATEPORT_TENT_MON_SEEDOT,
+ SLATEPORT_TENT_MON_LINOONE,
+ SLATEPORT_TENT_MON_GOLDEEN,
+ SLATEPORT_TENT_MON_ELECTRIKE_1,
+ SLATEPORT_TENT_MON_WINGULL_2,
-1
};
const u16 gSlateportBattleTentTrainerMons_Austyn[] =
{
- 25,
- 31,
- 35,
- 37,
- 38,
- 39,
- 50,
- 51,
- 52,
- 58,
- 68,
- 69,
+ SLATEPORT_TENT_MON_ARON_2,
+ SLATEPORT_TENT_MON_LOUDRED,
+ SLATEPORT_TENT_MON_MAKUHITA,
+ SLATEPORT_TENT_MON_BARBOACH,
+ SLATEPORT_TENT_MON_TENTACOOL,
+ SLATEPORT_TENT_MON_VIGOROTH,
+ SLATEPORT_TENT_MON_PELIPPER_2,
+ SLATEPORT_TENT_MON_WINGULL_2,
+ SLATEPORT_TENT_MON_MARILL_2,
+ SLATEPORT_TENT_MON_SWALOT,
+ SLATEPORT_TENT_MON_MACHOP,
+ SLATEPORT_TENT_MON_MACHOKE,
-1
};
const u16 gSlateportBattleTentTrainerMons_Donovan[] =
{
- 10,
- 16,
- 17,
- 24,
- 25,
- 43,
- 44,
- 47,
- 49,
- 53,
- 59,
- 60,
- 64,
- 65,
+ SLATEPORT_TENT_MON_LOMBRE_1,
+ SLATEPORT_TENT_MON_GRAVELER,
+ SLATEPORT_TENT_MON_BALTOY,
+ SLATEPORT_TENT_MON_ARON_1,
+ SLATEPORT_TENT_MON_ARON_2,
+ SLATEPORT_TENT_MON_KECLEON_1,
+ SLATEPORT_TENT_MON_KECLEON_2,
+ SLATEPORT_TENT_MON_LOMBRE_2,
+ SLATEPORT_TENT_MON_TRAPINCH_2,
+ SLATEPORT_TENT_MON_SKITTY,
+ SLATEPORT_TENT_MON_VOLBEAT,
+ SLATEPORT_TENT_MON_ILLUMISE,
+ SLATEPORT_TENT_MON_PLUSLE_1,
+ SLATEPORT_TENT_MON_PLUSLE_2,
-1
};
const u16 gSlateportBattleTentTrainerMons_Tamia[] =
{
- 2,
- 6,
- 9,
- 13,
- 17,
- 19,
- 20,
- 24,
- 27,
- 29,
- 30,
+ SLATEPORT_TENT_MON_BEAUTIFLY,
+ SLATEPORT_TENT_MON_MARILL_1,
+ SLATEPORT_TENT_MON_CACNEA_1,
+ SLATEPORT_TENT_MON_NUZLEAF,
+ SLATEPORT_TENT_MON_BALTOY,
+ SLATEPORT_TENT_MON_MIGHTYENA_2,
+ SLATEPORT_TENT_MON_LINOONE,
+ SLATEPORT_TENT_MON_ARON_1,
+ SLATEPORT_TENT_MON_CACNEA_2,
+ SLATEPORT_TENT_MON_SWELLOW,
+ SLATEPORT_TENT_MON_GOLBAT_1,
-1
};
-const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] =
+const struct BattleFrontierTrainer gSlateportBattleTentTrainers[NUM_BATTLE_TENT_TRAINERS] =
{
- [0] = {
+ [SLATEPORT_TENT_TRAINER_JOLIE] = {
.facilityClass = FACILITY_CLASS_AROMA_LADY,
.trainerName = _("JOLIE"),
.speechBefore = {EC_WORD_WHAT, EC_WORD_WILL, EC_WORD_I, EC_WORD_BE, EC_WORD_TOMORROW, EC_WORD_QUES},
.speechWin = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_LIKE, EC_WORD_IT_S, EC_WORD_FRIDAY, EC_WORD_EXCL},
.speechLose = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_LIKE, EC_WORD_IT_S, EC_WORD_MONDAY, EC_WORD_ELLIPSIS},
- .monSets = gSlateportBattleTentTrainerMons_Jolie
+ .monSet = gSlateportBattleTentTrainerMons_Jolie
},
- [1] = {
+ [SLATEPORT_TENT_TRAINER_MALACHI] = {
.facilityClass = FACILITY_CLASS_RUIN_MANIAC,
.trainerName = _("MALACHI"),
.speechBefore = {EC_WORD_BAD, EC_WORD_NEWS, EC_WORD_EXCL, EC_WORD_IT_S, EC_WORD_A, EC_MOVE(SAND_TOMB)},
.speechWin = {EC_WORD_YEEHAW_EXCL, -1, -1, EC_WORD_I_VE, EC_WORD_DONE, EC_WORD_IT},
.speechLose = {EC_WORD_I_VE, EC_WORD_LOST, EC_WORD_IN, EC_WORD_THIS, EC_MOVE(SAND_TOMB), EC_WORD_ELLIPSIS},
- .monSets = gSlateportBattleTentTrainerMons_Malachi
+ .monSet = gSlateportBattleTentTrainerMons_Malachi
},
- [2] = {
+ [SLATEPORT_TENT_TRAINER_KELSIE] = {
.facilityClass = FACILITY_CLASS_TUBER_F,
.trainerName = _("KELSIE"),
.speechBefore = {EC_WORD_GO, EC_WORD_EXCL_EXCL, EC_WORD_MY, EC_WORD_BATH, EC_WORD_POKEMON, EC_WORD_EXCL_EXCL},
.speechWin = {EC_WORD_YAHOO, EC_WORD_EXCL_EXCL, EC_WORD_MY, EC_WORD_BATH, EC_WORD_POKEMON, EC_WORD_EXCL_EXCL},
.speechLose = {EC_WORD_GWAH, EC_WORD_EXCL_EXCL, EC_WORD_MY, EC_WORD_BATH, EC_WORD_POKEMON, EC_WORD_EXCL_EXCL},
- .monSets = gSlateportBattleTentTrainerMons_Kelsie
+ .monSet = gSlateportBattleTentTrainerMons_Kelsie
},
- [3] = {
+ [SLATEPORT_TENT_TRAINER_DAVON] = {
.facilityClass = FACILITY_CLASS_TUBER_M,
.trainerName = _("DAVON"),
.speechBefore = {EC_WORD_YEAH_YEAH, EC_WORD_EXCL_EXCL, -1, EC_WORD_GREAT, EC_MOVE(WHIRLPOOL), EC_WORD_ISN_T_IT_QUES},
.speechWin = {EC_WORD_THAT_WAS, EC_WORD_LIKE, EC_WORD_A, EC_MOVE(WHIRLPOOL), EC_WORD_YEAH_YEAH, EC_WORD_EXCL_EXCL},
.speechLose = {EC_WORD_DON_T, EC_WORD_GET, EC_MOVE2(BEAT_UP), EC_WORD_IN, EC_WORD_THAT, EC_MOVE(WHIRLPOOL)},
- .monSets = gSlateportBattleTentTrainerMons_Davon
+ .monSet = gSlateportBattleTentTrainerMons_Davon
},
- [4] = {
+ [SLATEPORT_TENT_TRAINER_GLENDA] = {
.facilityClass = FACILITY_CLASS_LADY,
.trainerName = _("GLENDA"),
.speechBefore = {EC_WORD_CONVERSATION, EC_WORD_CAN, EC_WORD_WAIT, EC_WORD_UNTIL, EC_WORD_I, EC_WORD_WIN},
.speechWin = {EC_WORD_FABULOUS, EC_WORD_EXCL, EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_ROCK},
.speechLose = {EC_WORD_NO, EC_WORD_EXCL, -1, EC_WORD_I, EC_WORD_WASN_T, EC_WORD_SERIOUS},
- .monSets = gSlateportBattleTentTrainerMons_Glenda
+ .monSet = gSlateportBattleTentTrainerMons_Glenda
},
- [5] = {
+ [SLATEPORT_TENT_TRAINER_HELENA] = {
.facilityClass = FACILITY_CLASS_BEAUTY,
.trainerName = _("HELENA"),
.speechBefore = {EC_WORD_DOES, EC_WORD_MY, EC_WORD_BEAUTY, EC_WORD_INTIMIDATE, EC_WORD_YOU, EC_WORD_QUES},
.speechWin = {EC_WORD_I_AM, EC_WORD_SO, EC_WORD_SORRY, EC_WORD_BUT, EC_WORD_YOU_RE, EC_WORD_BORING},
.speechLose = {EC_WORD_I, EC_WORD_DO, EC_WORD_SO, EC_WORD_ENJOY, EC_WORD_THIS, EC_WORD_EXCL},
- .monSets = gSlateportBattleTentTrainerMons_Helena
+ .monSet = gSlateportBattleTentTrainerMons_Helena
},
- [6] = {
+ [SLATEPORT_TENT_TRAINER_RODOLFO] = {
.facilityClass = FACILITY_CLASS_RICH_BOY,
.trainerName = _("RODOLFO"),
.speechBefore = {EC_WORD_GO, EC_WORD_GET, EC_WORD_A, EC_POKEMON(WHISCASH), EC_WORD_FOR, EC_WORD_ME},
.speechWin = {EC_WORD_AWW, EC_WORD_YOU, EC_WORD_DON_T, EC_WORD_HAVE, EC_WORD_A, EC_POKEMON(WHISCASH)},
.speechLose = {EC_WORD_PLEASE, EC_WORD_I, EC_WORD_NEED, EC_WORD_A, EC_POKEMON(WHISCASH), EC_WORD_BADLY},
- .monSets = gSlateportBattleTentTrainerMons_Rodolfo
+ .monSet = gSlateportBattleTentTrainerMons_Rodolfo
},
- [7] = {
+ [SLATEPORT_TENT_TRAINER_DAVION] = {
.facilityClass = FACILITY_CLASS_POKEMANIAC,
.trainerName = _("DAVION"),
.speechBefore = {EC_WORD_GRAAAH, EC_WORD_GRAAAH, EC_WORD_EXCL_EXCL, EC_WORD_GRAAAH, EC_WORD_GRAAAH, EC_WORD_EXCL_EXCL},
.speechWin = {EC_MOVE2(ROAR), EC_WORD_EXCL, -1, EC_MOVE2(ROAR), EC_WORD_EXCL_EXCL, -1},
.speechLose = {EC_WORD_URGH, EC_WORD_WAAAH, EC_WORD_EXCL_EXCL, -1, -1, -1},
- .monSets = gSlateportBattleTentTrainerMons_Davion
+ .monSet = gSlateportBattleTentTrainerMons_Davion
},
- [8] = {
+ [SLATEPORT_TENT_TRAINER_KENDALL] = {
.facilityClass = FACILITY_CLASS_SWIMMER_M,
.trainerName = _("KENDALL"),
.speechBefore = {EC_WORD_A_LITTLE, EC_MOVE2(PETAL_DANCE), EC_WORD_TO, EC_WORD_PLEASE, EC_WORD_YOU, EC_WORD_EXCL},
.speechWin = {EC_WORD_I, EC_WORD_DO, EC_WORD_THIS, EC_WORD_ONLY, EC_WORD_FOR, EC_WORD_WORK},
.speechLose = {EC_WORD_HOW, EC_WORD_COULD, EC_WORD_YOU, EC_MOVE2(POUND), EC_WORD_ME, EC_WORD_QUES},
- .monSets = gSlateportBattleTentTrainerMons_Kendall
+ .monSet = gSlateportBattleTentTrainerMons_Kendall
},
- [9] = {
+ [SLATEPORT_TENT_TRAINER_COLTEN] = {
.facilityClass = FACILITY_CLASS_CAMPER,
.trainerName = _("COLTEN"),
.speechBefore = {EC_WORD_I, EC_WORD_WANT, EC_WORD_TO, EC_WORD_GO, EC_WORD_RUN, EC_WORD_AROUND},
.speechWin = {EC_WORD_YAY, EC_WORD_EXCL, EC_WORD_WANT, EC_WORD_TO, EC_WORD_RUN, EC_WORD_QUES},
.speechLose = {EC_WORD_A, EC_WORD_SWIFT_SWIM, EC_WORD_WOULD, EC_WORD_BE, EC_WORD_GOOD, EC_WORD_TOO},
- .monSets = gSlateportBattleTentTrainerMons_Colten
+ .monSet = gSlateportBattleTentTrainerMons_Colten
},
- [10] = {
+ [SLATEPORT_TENT_TRAINER_IRVIN] = {
.facilityClass = FACILITY_CLASS_BUG_MANIAC,
.trainerName = _("IRVIN"),
.speechBefore = {EC_WORD_HAVE, EC_WORD_A, EC_WORD_LOOK, EC_WORD_AT, EC_WORD_MY, EC_MOVE(CONFUSE_RAY)},
.speechWin = {EC_WORD_YAHOO, EC_WORD_MY, EC_MOVE(CONFUSE_RAY), EC_WORD_IS, EC_WORD_THE, EC_WORD_BEST},
.speechLose = {EC_WORD_GWAH, EC_WORD_EXCL_EXCL, -1, EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_EXCL},
- .monSets = gSlateportBattleTentTrainerMons_Irvin
+ .monSet = gSlateportBattleTentTrainerMons_Irvin
},
- [11] = {
+ [SLATEPORT_TENT_TRAINER_SHAUN] = {
.facilityClass = FACILITY_CLASS_GENTLEMAN,
.trainerName = _("SHAUN"),
.speechBefore = {EC_WORD_LISTEN, EC_WORD_ELLIPSIS, EC_WORD_YOU, EC_WORD_AREN_T, EC_WORD_VERY, EC_WORD_GOOD},
.speechWin = {EC_WORD_YOU, EC_WORD_SEE, EC_WORD_QUES, EC_WORD_I, EC_WORD_WAS, EC_WORD_RIGHT},
.speechLose = {EC_WORD_YES, EC_WORD_YES, EC_WORD_ELLIPSIS, EC_WORD_YOU_RE, EC_WORD_QUITE, EC_WORD_SOMETHING},
- .monSets = gSlateportBattleTentTrainerMons_Shaun
+ .monSet = gSlateportBattleTentTrainerMons_Shaun
},
- [12] = {
+ [SLATEPORT_TENT_TRAINER_KYLER] = {
.facilityClass = FACILITY_CLASS_GUITARIST,
.trainerName = _("KYLER"),
.speechBefore = {EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_QUES},
.speechWin = {EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_YAY},
.speechLose = {EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_WOW},
- .monSets = gSlateportBattleTentTrainerMons_Kyler
+ .monSet = gSlateportBattleTentTrainerMons_Kyler
},
- [13] = {
+ [SLATEPORT_TENT_TRAINER_MAGGIE] = {
.facilityClass = FACILITY_CLASS_SCHOOL_KID_F,
.trainerName = _("MAGGIE"),
.speechBefore = {EC_POKEMON(VULPIX), EC_POKEMON(XATU), EC_POKEMON2(UMBREON), EC_WORD_ELLIPSIS, EC_WORD_UM, EC_WORD_ELLIPSIS},
.speechWin = {EC_POKEMON(NOSEPASS), EC_WORD_ELLIPSIS, EC_WORD_UM, EC_POKEMON(SEVIPER), EC_WORD_EXCL, -1},
.speechLose = {EC_POKEMON(NOSEPASS), EC_WORD_ELLIPSIS, EC_WORD_UM, EC_POKEMON2(SNORLAX), EC_WORD_ELLIPSIS, EC_WORD_UH_OH},
- .monSets = gSlateportBattleTentTrainerMons_Maggie
+ .monSet = gSlateportBattleTentTrainerMons_Maggie
},
- [14] = {
+ [SLATEPORT_TENT_TRAINER_STEPHON] = {
.facilityClass = FACILITY_CLASS_COOLTRAINER_M,
.trainerName = _("STEPHON"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_ENJOY, EC_WORD_AN, EC_WORD_EGG},
.speechWin = {EC_WORD_I, EC_WORD_WILL, EC_WORD_ENJOY, EC_WORD_THIS, EC_WORD_TASTY, EC_WORD_VICTORY},
.speechLose = {EC_WORD_AWFUL, EC_WORD_EXCL_EXCL, -1, EC_WORD_JUST, EC_WORD_AWFUL, EC_WORD_EXCL_EXCL},
- .monSets = gSlateportBattleTentTrainerMons_Stephon
+ .monSet = gSlateportBattleTentTrainerMons_Stephon
},
- [15] = {
+ [SLATEPORT_TENT_TRAINER_REBECCA] = {
.facilityClass = FACILITY_CLASS_COOLTRAINER_F,
.trainerName = _("REBECCA"),
.speechBefore = {EC_WORD_THAT, EC_WORD_EGG, EC_WORD_HAS, EC_WORD_A, EC_WORD_TASTY, EC_WORD_SHINE},
.speechWin = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_EXCL, EC_WORD_SMELL, EC_WORD_THAT, EC_WORD_STENCH},
.speechLose = {EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_MAKE, EC_WORD_ME, EC_WORD_STOP, EC_WORD_ELLIPSIS},
- .monSets = gSlateportBattleTentTrainerMons_Rebecca
+ .monSet = gSlateportBattleTentTrainerMons_Rebecca
},
- [16] = {
+ [SLATEPORT_TENT_TRAINER_REGGIE] = {
.facilityClass = FACILITY_CLASS_POKEFAN_M,
.trainerName = _("REGGIE"),
.speechBefore = {EC_WORD_POKEMON, EC_WORD_COME, EC_WORD_BEFORE, EC_WORD_MONEY, EC_WORD_OR, EC_WORD_FAMILY},
.speechWin = {EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_IS, EC_WORD_MAKING, EC_WORD_ME, EC_WORD_STRONG},
.speechLose = {EC_WORD_THAT_S, EC_WORD_WHY, EC_WORD_I_AM, EC_WORD_SO, EC_WORD_THICK, EC_WORD_ELLIPSIS},
- .monSets = gSlateportBattleTentTrainerMons_Reggie
+ .monSet = gSlateportBattleTentTrainerMons_Reggie
},
- [17] = {
+ [SLATEPORT_TENT_TRAINER_JANAE] = {
.facilityClass = FACILITY_CLASS_POKEFAN_F,
.trainerName = _("JANAE"),
.speechBefore = {EC_WORD_I, EC_WORD_JUST, EC_WORD_ADORE, EC_WORD_YOUR, EC_WORD_TOUGH, EC_WORD_LOOK},
.speechWin = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_HOW, EC_WORD_YOU, EC_MOVE2(STRUGGLE), -1},
.speechLose = {EC_WORD_YOU_RE, EC_WORD_A, EC_WORD_MEAN, EC_WORD_AND, EC_WORD_AWFUL, EC_WORD_TRAINER},
- .monSets = gSlateportBattleTentTrainerMons_Janae
+ .monSet = gSlateportBattleTentTrainerMons_Janae
},
- [18] = {
+ [SLATEPORT_TENT_TRAINER_CAIDEN] = {
.facilityClass = FACILITY_CLASS_EXPERT_M,
.trainerName = _("CAIDEN"),
.speechBefore = {EC_WORD_MY, EC_MOVE2(CURSE), EC_WORD_WILL, EC_WORD_BREAK, EC_WORD_YOUR, EC_WORD_SPIRIT},
.speechWin = {EC_MOVE2(CURSE), EC_WORD_QUES, EC_WORD_IT_S, EC_WORD_A, EC_WORD_LIE, EC_WORD_ELLIPSIS},
.speechLose = {EC_WORD_MY, EC_MOVE2(CURSE), EC_WORD_WILL, EC_WORD_LAST, EC_WORD_FOREVER, -1},
- .monSets = gSlateportBattleTentTrainerMons_Caiden
+ .monSet = gSlateportBattleTentTrainerMons_Caiden
},
- [19] = {
+ [SLATEPORT_TENT_TRAINER_KIRSTEN] = {
.facilityClass = FACILITY_CLASS_EXPERT_F,
.trainerName = _("KIRSTEN"),
.speechBefore = {EC_WORD_HUH_QUES, EC_WORD_A, EC_WORD_BATTLE, EC_WORD_YOU, EC_WORD_SAID, EC_WORD_QUES},
.speechWin = {EC_WORD_HUH_QUES, EC_WORD_STRONG, EC_WORD_BUT, EC_WORD_NOT, EC_WORD_STRONG, EC_WORD_ENOUGH},
.speechLose = {EC_WORD_HUH_QUES, EC_WORD_I, EC_WORD_SURRENDER, EC_WORD_TO, EC_WORD_YOUR, EC_MOVE(STRENGTH)},
- .monSets = gSlateportBattleTentTrainerMons_Kirsten
+ .monSet = gSlateportBattleTentTrainerMons_Kirsten
},
- [20] = {
+ [SLATEPORT_TENT_TRAINER_KURTIS] = {
.facilityClass = FACILITY_CLASS_YOUNGSTER,
.trainerName = _("KURTIS"),
.speechBefore = {EC_WORD_SORRY, EC_WORD_YOU_RE, EC_WORD_GOING, EC_WORD_TO, EC_WORD_GET, EC_MOVE2(BEAT_UP)},
.speechWin = {EC_WORD_I, EC_WORD_SAID, EC_WORD_WE, EC_WORD_WOULD, EC_MOVE2(POUND), EC_WORD_YOU},
.speechLose = {EC_WORD_HOW, EC_WORD_DID, EC_WORD_I, EC_WORD_GET, EC_MOVE2(BEAT_UP), EC_WORD_QUES},
- .monSets = gSlateportBattleTentTrainerMons_Kurtis
+ .monSet = gSlateportBattleTentTrainerMons_Kurtis
},
- [21] = {
+ [SLATEPORT_TENT_TRAINER_STEFAN] = {
.facilityClass = FACILITY_CLASS_FISHERMAN,
.trainerName = _("STEFAN"),
.speechBefore = {EC_WORD_I, EC_WORD_ONLY, EC_WORD_WANT, EC_WORD_CUTE, EC_WORD_POKEMON, -1},
.speechWin = {EC_WORD_WHAT, EC_WORD_IS, EC_WORD_IT, EC_WORD_TO, EC_WORD_YOU, EC_WORD_QUES},
.speechLose = {EC_WORD_YOU_RE, EC_WORD_KIND, EC_WORD_OF, EC_WORD_AWESOME, EC_WORD_ELLIPSIS, -1},
- .monSets = gSlateportBattleTentTrainerMons_Stefan
+ .monSet = gSlateportBattleTentTrainerMons_Stefan
},
- [22] = {
+ [SLATEPORT_TENT_TRAINER_AVERY] = {
.facilityClass = FACILITY_CLASS_BIRD_KEEPER,
.trainerName = _("AVERY"),
.speechBefore = {EC_WORD_TOYS, EC_WORD_EXCL, EC_WORD_I, EC_WORD_NEED, EC_WORD_MORE, EC_WORD_TOYS},
.speechWin = {EC_WORD_I, EC_WORD_NEED, EC_WORD_SOME, EC_WORD_EASY, EC_WORD_MONEY, EC_WORD_FAST},
.speechLose = {EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_WORK, EC_WORD_FOR, EC_WORD_MONEY},
- .monSets = gSlateportBattleTentTrainerMons_Avery
+ .monSet = gSlateportBattleTentTrainerMons_Avery
},
- [23] = {
+ [SLATEPORT_TENT_TRAINER_DWANE] = {
.facilityClass = FACILITY_CLASS_NINJA_BOY,
.trainerName = _("DWANE"),
.speechBefore = {EC_WORD_MMM, EC_WORD_TASTY, EC_WORD_ELLIPSIS, EC_WORD_WONDER, EC_WORD_WHAT, EC_WORD_QUES},
.speechWin = {EC_WORD_MMM, EC_WORD_MMM, EC_WORD_ELLIPSIS, EC_WORD_YOU, EC_WORD_DON_T, EC_WORD_KNOW},
.speechLose = {EC_WORD_MMM, EC_WORD_MMM, EC_WORD_ELLIPSIS, EC_WORD_OH_YEAH, EC_WORD_THIS_IS_IT_EXCL, -1},
- .monSets = gSlateportBattleTentTrainerMons_Dwane
+ .monSet = gSlateportBattleTentTrainerMons_Dwane
},
- [24] = {
+ [SLATEPORT_TENT_TRAINER_MCKENNA] = {
.facilityClass = FACILITY_CLASS_PARASOL_LADY,
.trainerName = _("MCKENNA"),
.speechBefore = {EC_WORD_I, EC_WORD_DISLIKE, EC_WORD_SMALL, EC_WORD_TALK, EC_WORD_LET_S, EC_WORD_GO},
.speechWin = {EC_WORD_YUP, EC_WORD_THAT_S, EC_WORD_THAT, -1, -1, -1},
.speechLose = {EC_WORD_KTHX_BYE, -1, -1, -1, -1, -1},
- .monSets = gSlateportBattleTentTrainerMons_Mckenna
+ .monSet = gSlateportBattleTentTrainerMons_Mckenna
},
- [25] = {
+ [SLATEPORT_TENT_TRAINER_CAMRYN] = {
.facilityClass = FACILITY_CLASS_SWIMMER_F,
.trainerName = _("CAMRYN"),
.speechBefore = {EC_WORD_MR, EC_WORD_JUDGE, EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_OUR, EC_WORD_TRUST},
.speechWin = {EC_WORD_YES_SIR_EXCL, EC_WORD_WE_RE, EC_WORD_NO_1, EC_WORD_IN, EC_WORD_THIS, EC_WORD_CONTEST},
.speechLose = {EC_WORD_I, EC_WORD_WON_T, EC_WORD_GIVE_UP, EC_WORD_MY, EC_WORD_IDOL, EC_WORD_DREAM},
- .monSets = gSlateportBattleTentTrainerMons_Camryn
+ .monSet = gSlateportBattleTentTrainerMons_Camryn
},
- [26] = {
+ [SLATEPORT_TENT_TRAINER_NATASHA] = {
.facilityClass = FACILITY_CLASS_PICNICKER,
.trainerName = _("NATASHA"),
.speechBefore = {EC_WORD_COME_OVER, EC_WORD_TO, EC_WORD_MY, EC_WORD_PLACE, EC_WORD_OK_QUES, -1},
.speechWin = {EC_WORD_COME_ON, EC_WORD_OVER, EC_WORD_IT, EC_WORD_WILL, EC_WORD_BE, EC_WORD_GREAT},
.speechLose = {EC_WORD_AWW, EC_WORD_WON_T, EC_WORD_YOU, EC_WORD_COME_OVER, EC_WORD_QUES, -1},
- .monSets = gSlateportBattleTentTrainerMons_Natasha
+ .monSet = gSlateportBattleTentTrainerMons_Natasha
},
- [27] = {
+ [SLATEPORT_TENT_TRAINER_AUSTYN] = {
.facilityClass = FACILITY_CLASS_SAILOR,
.trainerName = _("AUSTYN"),
.speechBefore = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_CARE, EC_WORD_HOW, EC_WORD_WE, EC_WORD_MATCH_UP},
.speechWin = {EC_WORD_HAH, EC_WORD_BACK, EC_WORD_TO, EC_WORD_SCHOOL, EC_WORD_FOR, EC_WORD_YOU},
.speechLose = {EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_STUDY, EC_WORD_MY, EC_WORD_LESSONS},
- .monSets = gSlateportBattleTentTrainerMons_Austyn
+ .monSet = gSlateportBattleTentTrainerMons_Austyn
},
- [28] = {
+ [SLATEPORT_TENT_TRAINER_DONOVAN] = {
.facilityClass = FACILITY_CLASS_COLLECTOR,
.trainerName = _("DONOVAN"),
.speechBefore = {EC_WORD_OH, EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_SLIMY, EC_WORD_ALL, EC_WORD_OVER},
.speechWin = {EC_WORD_YOU_RE, EC_WORD_GOING, EC_WORD_DOWN, EC_WORD_THE, EC_MOVE2(MEGA_DRAIN), EC_WORD_HAHAHA},
.speechLose = {EC_WORD_I_AM, EC_WORD_NATURALLY, EC_WORD_SLIMY, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM},
- .monSets = gSlateportBattleTentTrainerMons_Donovan
+ .monSet = gSlateportBattleTentTrainerMons_Donovan
},
- [29] = {
+ [SLATEPORT_TENT_TRAINER_TAMIA] = {
.facilityClass = FACILITY_CLASS_LASS,
.trainerName = _("TAMIA"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_ANGRY, EC_WORD_WITH, EC_WORD_MY, EC_WORD_FATHER, EC_WORD_ELLIPSIS},
.speechWin = {EC_WORD_I, EC_WORD_REALLY, EC_WORD_DISLIKE, EC_WORD_MY, EC_WORD_FATHER, EC_WORD_EXCL},
.speechLose = {EC_WORD_I, EC_WORD_JUST, EC_WORD_SO, EC_WORD_ADORE, EC_WORD_MY, EC_WORD_FATHER},
- .monSets = gSlateportBattleTentTrainerMons_Tamia
+ .monSet = gSlateportBattleTentTrainerMons_Tamia
}
};
-const struct FacilityMon gSlateportBattleTentMons[] =
+const struct FacilityMon gSlateportBattleTentMons[NUM_SLATEPORT_TENT_MONS] =
{
- [0] = {
+ [SLATEPORT_TENT_MON_ZIGZAGOON_1] = {
.species = SPECIES_ZIGZAGOON,
.moves = {MOVE_TACKLE, MOVE_CHARM, MOVE_ODOR_SLEUTH, MOVE_PIN_MISSILE},
.itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_JOLLY
},
- [1] = {
+ [SLATEPORT_TENT_MON_ZIGZAGOON_2] = {
.species = SPECIES_ZIGZAGOON,
.moves = {MOVE_DIG, MOVE_MUD_SPORT, MOVE_TAIL_WHIP, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_JOLLY
},
- [2] = {
+ [SLATEPORT_TENT_MON_BEAUTIFLY] = {
.species = SPECIES_BEAUTIFLY,
.moves = {MOVE_STUN_SPORE, MOVE_MEGA_DRAIN, MOVE_GUST, MOVE_HARDEN},
.itemTableId = BATTLE_FRONTIER_ITEM_NONE,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [3] = {
+ [SLATEPORT_TENT_MON_DUSTOX] = {
.species = SPECIES_DUSTOX,
.moves = {MOVE_POISON_STING, MOVE_MOONLIGHT, MOVE_PROTECT, MOVE_GUST},
.itemTableId = BATTLE_FRONTIER_ITEM_ORAN_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [4] = {
+ [SLATEPORT_TENT_MON_WAILMER_1] = {
.species = SPECIES_WAILMER,
.moves = {MOVE_ROLLOUT, MOVE_CURSE, MOVE_GROWL, MOVE_WHIRLPOOL},
.itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [5] = {
+ [SLATEPORT_TENT_MON_WAILMER_2] = {
.species = SPECIES_WAILMER,
.moves = {MOVE_ROLLOUT, MOVE_GROWL, MOVE_WHIRLPOOL, MOVE_WATER_PULSE},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [6] = {
+ [SLATEPORT_TENT_MON_MARILL_1] = {
.species = SPECIES_MARILL,
.moves = {MOVE_ROLLOUT, MOVE_DEFENSE_CURL, MOVE_TAIL_WHIP, MOVE_BUBBLE_BEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_IMPISH
},
- [7] = {
+ [SLATEPORT_TENT_MON_WINGULL_1] = {
.species = SPECIES_WINGULL,
.moves = {MOVE_SUPERSONIC, MOVE_GROWL, MOVE_WING_ATTACK, MOVE_STEEL_WING},
.itemTableId = BATTLE_FRONTIER_ITEM_METAL_COAT,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_NAIVE
},
- [8] = {
+ [SLATEPORT_TENT_MON_PELIPPER_1] = {
.species = SPECIES_PELIPPER,
.moves = {MOVE_TWISTER, MOVE_WATER_SPORT, MOVE_GROWL, MOVE_WING_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_DRAGON_FANG,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
.nature = NATURE_MODEST
},
- [9] = {
+ [SLATEPORT_TENT_MON_CACNEA_1] = {
.species = SPECIES_CACNEA,
.moves = {MOVE_SANDSTORM, MOVE_LEER, MOVE_LEECH_SEED, MOVE_PIN_MISSILE},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SPEED,
.nature = NATURE_JOLLY
},
- [10] = {
+ [SLATEPORT_TENT_MON_LOMBRE_1] = {
.species = SPECIES_LOMBRE,
.moves = {MOVE_ASTONISH, MOVE_WATER_GUN, MOVE_FAKE_OUT, MOVE_ABSORB},
.itemTableId = BATTLE_FRONTIER_ITEM_MIRACLE_SEED,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [11] = {
+ [SLATEPORT_TENT_MON_LOTAD] = {
.species = SPECIES_LOTAD,
.moves = {MOVE_SYNTHESIS, MOVE_NATURE_POWER, MOVE_RAIN_DANCE, MOVE_MEGA_DRAIN},
.itemTableId = BATTLE_FRONTIER_ITEM_MYSTIC_WATER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_DOCILE
},
- [12] = {
+ [SLATEPORT_TENT_MON_SEEDOT] = {
.species = SPECIES_SEEDOT,
.moves = {MOVE_SUNNY_DAY, MOVE_SYNTHESIS, MOVE_LEECH_SEED, MOVE_BIDE},
.itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_TIMID
},
- [13] = {
+ [SLATEPORT_TENT_MON_NUZLEAF] = {
.species = SPECIES_NUZLEAF,
.moves = {MOVE_FAKE_OUT, MOVE_NATURE_POWER, MOVE_HARDEN, MOVE_ATTRACT},
.itemTableId = BATTLE_FRONTIER_ITEM_NONE,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_LONELY
},
- [14] = {
+ [SLATEPORT_TENT_MON_NINJASK_1] = {
.species = SPECIES_NINJASK,
.moves = {MOVE_FURY_CUTTER, MOVE_SCREECH, MOVE_SWORDS_DANCE, MOVE_DOUBLE_TEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_NONE,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [15] = {
+ [SLATEPORT_TENT_MON_NINJASK_2] = {
.species = SPECIES_NINJASK,
.moves = {MOVE_FURY_CUTTER, MOVE_DOUBLE_TEAM, MOVE_SCREECH, MOVE_SAND_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_SILVER_POWDER,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_NAUGHTY
},
- [16] = {
+ [SLATEPORT_TENT_MON_GRAVELER] = {
.species = SPECIES_GRAVELER,
.moves = {MOVE_MUD_SPORT, MOVE_BLOCK, MOVE_ROCK_TOMB, MOVE_MAGNITUDE},
.itemTableId = BATTLE_FRONTIER_ITEM_NONE,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_BRAVE
},
- [17] = {
+ [SLATEPORT_TENT_MON_BALTOY] = {
.species = SPECIES_BALTOY,
.moves = {MOVE_SELF_DESTRUCT, MOVE_ANCIENT_POWER, MOVE_PSYBEAM, MOVE_REFLECT},
.itemTableId = BATTLE_FRONTIER_ITEM_NONE,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_NAIVE
},
- [18] = {
+ [SLATEPORT_TENT_MON_MIGHTYENA_1] = {
.species = SPECIES_MIGHTYENA,
.moves = {MOVE_BITE, MOVE_ROAR, MOVE_SWAGGER, MOVE_TACKLE},
.itemTableId = BATTLE_FRONTIER_ITEM_BLACK_GLASSES,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_CALM
},
- [19] = {
+ [SLATEPORT_TENT_MON_MIGHTYENA_2] = {
.species = SPECIES_MIGHTYENA,
.moves = {MOVE_ODOR_SLEUTH, MOVE_HOWL, MOVE_SAND_ATTACK, MOVE_POISON_FANG},
.itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_LONELY
},
- [20] = {
+ [SLATEPORT_TENT_MON_LINOONE] = {
.species = SPECIES_LINOONE,
.moves = {MOVE_HEADBUTT, MOVE_TICKLE, MOVE_TAIL_WHIP, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_MENTAL_HERB,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_JOLLY
},
- [21] = {
+ [SLATEPORT_TENT_MON_GOLDEEN] = {
.species = SPECIES_GOLDEEN,
.moves = {MOVE_WATER_SPORT, MOVE_HORN_ATTACK, MOVE_WATERFALL, MOVE_SUPERSONIC},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
.nature = NATURE_CALM
},
- [22] = {
+ [SLATEPORT_TENT_MON_ELECTRIKE_1] = {
.species = SPECIES_ELECTRIKE,
.moves = {MOVE_BITE, MOVE_SPARK, MOVE_ROAR, MOVE_FLASH},
.itemTableId = BATTLE_FRONTIER_ITEM_MAGNET,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_MODEST
},
- [23] = {
+ [SLATEPORT_TENT_MON_VOLTORB] = {
.species = SPECIES_VOLTORB,
.moves = {MOVE_SPARK, MOVE_ROLLOUT, MOVE_CHARGE, MOVE_SCREECH},
.itemTableId = BATTLE_FRONTIER_ITEM_NONE,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK,
.nature = NATURE_MILD
},
- [24] = {
+ [SLATEPORT_TENT_MON_ARON_1] = {
.species = SPECIES_ARON,
.moves = {MOVE_DIG, MOVE_METAL_CLAW, MOVE_IRON_DEFENSE, MOVE_ENDEAVOR},
.itemTableId = BATTLE_FRONTIER_ITEM_NONE,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_NAUGHTY
},
- [25] = {
+ [SLATEPORT_TENT_MON_ARON_2] = {
.species = SPECIES_ARON,
.moves = {MOVE_MUD_SLAP, MOVE_IRON_TAIL, MOVE_HARDEN, MOVE_ROAR},
.itemTableId = BATTLE_FRONTIER_ITEM_LEPPA_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [26] = {
+ [SLATEPORT_TENT_MON_TRAPINCH_1] = {
.species = SPECIES_TRAPINCH,
.moves = {MOVE_BODY_SLAM, MOVE_FOCUS_ENERGY, MOVE_SAND_TOMB, MOVE_SAND_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_NONE,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_BRAVE
},
- [27] = {
+ [SLATEPORT_TENT_MON_CACNEA_2] = {
.species = SPECIES_CACNEA,
.moves = {MOVE_INGRAIN, MOVE_SANDSTORM, MOVE_POISON_STING, MOVE_DESTINY_BOND},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_TIMID
},
- [28] = {
+ [SLATEPORT_TENT_MON_TAILLOW] = {
.species = SPECIES_TAILLOW,
.moves = {MOVE_GROWL, MOVE_AERIAL_ACE, MOVE_AGILITY, MOVE_ENDEAVOR},
.itemTableId = BATTLE_FRONTIER_ITEM_SHARP_BEAK,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [29] = {
+ [SLATEPORT_TENT_MON_SWELLOW] = {
.species = SPECIES_SWELLOW,
.moves = {MOVE_SUPERSONIC, MOVE_GROWL, MOVE_FOCUS_ENERGY, MOVE_PECK},
.itemTableId = BATTLE_FRONTIER_ITEM_NONE,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_IMPISH
},
- [30] = {
+ [SLATEPORT_TENT_MON_GOLBAT_1] = {
.species = SPECIES_GOLBAT,
.moves = {MOVE_ASTONISH, MOVE_GUST, MOVE_MEAN_LOOK, MOVE_CONFUSE_RAY},
.itemTableId = BATTLE_FRONTIER_ITEM_SPELL_TAG,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
.nature = NATURE_TIMID
},
- [31] = {
+ [SLATEPORT_TENT_MON_LOUDRED] = {
.species = SPECIES_LOUDRED,
.moves = {MOVE_ASTONISH, MOVE_SCREECH, MOVE_UPROAR, MOVE_SUPERSONIC},
.itemTableId = BATTLE_FRONTIER_ITEM_NONE,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [32] = {
+ [SLATEPORT_TENT_MON_SPINDA] = {
.species = SPECIES_SPINDA,
.moves = {MOVE_DIZZY_PUNCH, MOVE_FAINT_ATTACK, MOVE_HYPNOSIS, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [33] = {
+ [SLATEPORT_TENT_MON_MAGNEMITE] = {
.species = SPECIES_MAGNEMITE,
.moves = {MOVE_METAL_SOUND, MOVE_SUPERSONIC, MOVE_THUNDER_WAVE, MOVE_SPARK},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_SERIOUS
},
- [34] = {
+ [SLATEPORT_TENT_MON_WHISMUR] = {
.species = SPECIES_WHISMUR,
.moves = {MOVE_REST, MOVE_SLEEP_TALK, MOVE_HOWL, MOVE_BODY_SLAM},
.itemTableId = BATTLE_FRONTIER_ITEM_SILK_SCARF,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [35] = {
+ [SLATEPORT_TENT_MON_MAKUHITA] = {
.species = SPECIES_MAKUHITA,
.moves = {MOVE_SAND_ATTACK, MOVE_KNOCK_OFF, MOVE_ARM_THRUST, MOVE_BELLY_DRUM},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [36] = {
+ [SLATEPORT_TENT_MON_NUMEL_1] = {
.species = SPECIES_NUMEL,
.moves = {MOVE_EMBER, MOVE_TAKE_DOWN, MOVE_GROWL, MOVE_FOCUS_ENERGY},
.itemTableId = BATTLE_FRONTIER_ITEM_NONE,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_MODEST
},
- [37] = {
+ [SLATEPORT_TENT_MON_BARBOACH] = {
.species = SPECIES_BARBOACH,
.moves = {MOVE_MAGNITUDE, MOVE_MUD_SPORT, MOVE_WATER_SPORT, MOVE_WATER_GUN},
.itemTableId = BATTLE_FRONTIER_ITEM_SEA_INCENSE,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_JOLLY
},
- [38] = {
+ [SLATEPORT_TENT_MON_TENTACOOL] = {
.species = SPECIES_TENTACOOL,
.moves = {MOVE_SCREECH, MOVE_BUBBLE_BEAM, MOVE_ACID, MOVE_BARRIER},
.itemTableId = BATTLE_FRONTIER_ITEM_POISON_BARB,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [39] = {
+ [SLATEPORT_TENT_MON_VIGOROTH] = {
.species = SPECIES_VIGOROTH,
.moves = {MOVE_FOCUS_ENERGY, MOVE_FURY_SWIPES, MOVE_ENDURE, MOVE_YAWN},
.itemTableId = BATTLE_FRONTIER_ITEM_AGUAV_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [40] = {
+ [SLATEPORT_TENT_MON_MAGIKARP] = {
.species = SPECIES_MAGIKARP,
.moves = {MOVE_TACKLE, MOVE_FLAIL, MOVE_SPLASH, MOVE_NONE},
.itemTableId = BATTLE_FRONTIER_ITEM_DRAGON_SCALE,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [41] = {
+ [SLATEPORT_TENT_MON_SEVIPER_1] = {
.species = SPECIES_SEVIPER,
.moves = {MOVE_LICK, MOVE_POISON_FANG, MOVE_GLARE, MOVE_WRAP},
.itemTableId = BATTLE_FRONTIER_ITEM_NONE,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [42] = {
+ [SLATEPORT_TENT_MON_SOLROCK] = {
.species = SPECIES_SOLROCK,
.moves = {MOVE_ROCK_THROW, MOVE_HARDEN, MOVE_PSYWAVE, MOVE_TACKLE},
.itemTableId = BATTLE_FRONTIER_ITEM_HARD_STONE,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [43] = {
+ [SLATEPORT_TENT_MON_KECLEON_1] = {
.species = SPECIES_KECLEON,
.moves = {MOVE_PSYBEAM, MOVE_SUBSTITUTE, MOVE_THIEF, MOVE_TAIL_WHIP},
.itemTableId = BATTLE_FRONTIER_ITEM_NONE,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [44] = {
+ [SLATEPORT_TENT_MON_KECLEON_2] = {
.species = SPECIES_KECLEON,
.moves = {MOVE_FAINT_ATTACK, MOVE_ASTONISH, MOVE_LICK, MOVE_SCREECH},
.itemTableId = BATTLE_FRONTIER_ITEM_IAPAPA_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_CALM
},
- [45] = {
+ [SLATEPORT_TENT_MON_SHROOMISH_1] = {
.species = SPECIES_SHROOMISH,
.moves = {MOVE_STUN_SPORE, MOVE_TACKLE, MOVE_LEECH_SEED, MOVE_MEGA_DRAIN},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [46] = {
+ [SLATEPORT_TENT_MON_SHROOMISH_2] = {
.species = SPECIES_SHROOMISH,
.moves = {MOVE_ABSORB, MOVE_STUN_SPORE, MOVE_SPORE, MOVE_LEECH_SEED},
.itemTableId = BATTLE_FRONTIER_ITEM_FIGY_BERRY,
.evSpread = F_EV_SPREAD_ATTACK,
.nature = NATURE_BRAVE
},
- [47] = {
+ [SLATEPORT_TENT_MON_LOMBRE_2] = {
.species = SPECIES_LOMBRE,
.moves = {MOVE_NATURE_POWER, MOVE_ASTONISH, MOVE_GROWL, MOVE_ABSORB},
.itemTableId = BATTLE_FRONTIER_ITEM_NONE,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_LONELY
},
- [48] = {
+ [SLATEPORT_TENT_MON_NUMEL_2] = {
.species = SPECIES_NUMEL,
.moves = {MOVE_EMBER, MOVE_GROWL, MOVE_EARTHQUAKE, MOVE_SUNNY_DAY},
.itemTableId = BATTLE_FRONTIER_ITEM_CHARCOAL,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
.nature = NATURE_MODEST
},
- [49] = {
+ [SLATEPORT_TENT_MON_TRAPINCH_2] = {
.species = SPECIES_TRAPINCH,
.moves = {MOVE_FAINT_ATTACK, MOVE_DIG, MOVE_BITE, MOVE_QUICK_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_ASPEAR_BERRY,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_BRAVE
},
- [50] = {
+ [SLATEPORT_TENT_MON_PELIPPER_2] = {
.species = SPECIES_PELIPPER,
.moves = {MOVE_WING_ATTACK, MOVE_SUPERSONIC, MOVE_MIST, MOVE_AGILITY},
.itemTableId = BATTLE_FRONTIER_ITEM_WIKI_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [51] = {
+ [SLATEPORT_TENT_MON_WINGULL_2] = {
.species = SPECIES_WINGULL,
.moves = {MOVE_WATER_GUN, MOVE_SUPERSONIC, MOVE_GROWL, MOVE_ICY_WIND},
.itemTableId = BATTLE_FRONTIER_ITEM_NEVER_MELT_ICE,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [52] = {
+ [SLATEPORT_TENT_MON_MARILL_2] = {
.species = SPECIES_MARILL,
.moves = {MOVE_DOUBLE_EDGE, MOVE_RAIN_DANCE, MOVE_TAIL_WHIP, MOVE_WATER_GUN},
.itemTableId = BATTLE_FRONTIER_ITEM_GANLON_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [53] = {
+ [SLATEPORT_TENT_MON_SKITTY] = {
.species = SPECIES_SKITTY,
.moves = {MOVE_ASSIST, MOVE_ATTRACT, MOVE_SING, MOVE_CHARM},
.itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_CAREFUL
},
- [54] = {
+ [SLATEPORT_TENT_MON_SEVIPER_2] = {
.species = SPECIES_SEVIPER,
.moves = {MOVE_SWAGGER, MOVE_WRAP, MOVE_POISON_TAIL, MOVE_HAZE},
.itemTableId = BATTLE_FRONTIER_ITEM_NONE,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE,
.nature = NATURE_BRAVE
},
- [55] = {
+ [SLATEPORT_TENT_MON_GOLBAT_2] = {
.species = SPECIES_GOLBAT,
.moves = {MOVE_BITE, MOVE_TORMENT, MOVE_SCREECH, MOVE_POISON_FANG},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_HARDY
},
- [56] = {
+ [SLATEPORT_TENT_MON_RALTS] = {
.species = SPECIES_RALTS,
.moves = {MOVE_HYPNOSIS, MOVE_IMPRISON, MOVE_PSYCHIC, MOVE_DREAM_EATER},
.itemTableId = BATTLE_FRONTIER_ITEM_MAGO_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_TIMID
},
- [57] = {
+ [SLATEPORT_TENT_MON_SANDSHREW] = {
.species = SPECIES_SANDSHREW,
.moves = {MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_SAND_TOMB, MOVE_DEFENSE_CURL},
.itemTableId = BATTLE_FRONTIER_ITEM_SOFT_SAND,
.evSpread = 0,
.nature = NATURE_HARDY
},
- [58] = {
+ [SLATEPORT_TENT_MON_SWALOT] = {
.species = SPECIES_SWALOT,
.moves = {MOVE_YAWN, MOVE_SLUDGE, MOVE_ENCORE, MOVE_POUND},
.itemTableId = BATTLE_FRONTIER_ITEM_NONE,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_IMPISH
},
- [59] = {
+ [SLATEPORT_TENT_MON_VOLBEAT] = {
.species = SPECIES_VOLBEAT,
.moves = {MOVE_TACKLE, MOVE_CONFUSE_RAY, MOVE_QUICK_ATTACK, MOVE_DOUBLE_TEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_NONE,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [60] = {
+ [SLATEPORT_TENT_MON_ILLUMISE] = {
.species = SPECIES_ILLUMISE,
.moves = {MOVE_CHARM, MOVE_TACKLE, MOVE_ENCORE, MOVE_MOONLIGHT},
.itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [61] = {
+ [SLATEPORT_TENT_MON_KADABRA] = {
.species = SPECIES_KADABRA,
.moves = {MOVE_DISABLE, MOVE_CONFUSION, MOVE_REFLECT, MOVE_RECOVER},
.itemTableId = BATTLE_FRONTIER_ITEM_NONE,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_QUIRKY
},
- [62] = {
+ [SLATEPORT_TENT_MON_KIRLIA] = {
.species = SPECIES_KIRLIA,
.moves = {MOVE_CALM_MIND, MOVE_CONFUSION, MOVE_DOUBLE_TEAM, MOVE_GROWL},
.itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_CAREFUL
},
- [63] = {
+ [SLATEPORT_TENT_MON_BRELOOM] = {
.species = SPECIES_BRELOOM,
.moves = {MOVE_ABSORB, MOVE_TACKLE, MOVE_STUN_SPORE, MOVE_MEGA_DRAIN},
.itemTableId = BATTLE_FRONTIER_ITEM_NONE,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_NAIVE
},
- [64] = {
+ [SLATEPORT_TENT_MON_PLUSLE_1] = {
.species = SPECIES_PLUSLE,
.moves = {MOVE_SPARK, MOVE_ENCORE, MOVE_THUNDER_WAVE, MOVE_GROWL},
.itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_LONELY
},
- [65] = {
+ [SLATEPORT_TENT_MON_PLUSLE_2] = {
.species = SPECIES_PLUSLE,
.moves = {MOVE_SPARK, MOVE_FAKE_TEARS, MOVE_SUBSTITUTE, MOVE_QUICK_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_PECHA_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MILD
},
- [66] = {
+ [SLATEPORT_TENT_MON_ELECTRIKE_2] = {
.species = SPECIES_ELECTRIKE,
.moves = {MOVE_SPARK, MOVE_CHARGE, MOVE_ROAR, MOVE_THUNDER_WAVE},
.itemTableId = BATTLE_FRONTIER_ITEM_APICOT_BERRY,
.evSpread = F_EV_SPREAD_SPEED,
.nature = NATURE_TIMID
},
- [67] = {
+ [SLATEPORT_TENT_MON_SWABLU] = {
.species = SPECIES_SWABLU,
.moves = {MOVE_SING, MOVE_PECK, MOVE_STEEL_WING, MOVE_SAFEGUARD},
.itemTableId = BATTLE_FRONTIER_ITEM_NONE,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_JOLLY
},
- [68] = {
+ [SLATEPORT_TENT_MON_MACHOP] = {
.species = SPECIES_MACHOP,
.moves = {MOVE_FOCUS_ENERGY, MOVE_VITAL_THROW, MOVE_SEISMIC_TOSS, MOVE_FORESIGHT},
.itemTableId = BATTLE_FRONTIER_ITEM_BLACK_BELT,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [69] = {
+ [SLATEPORT_TENT_MON_MACHOKE] = {
.species = SPECIES_MACHOKE,
.moves = {MOVE_FOCUS_ENERGY, MOVE_LEER, MOVE_KARATE_CHOP, MOVE_FORESIGHT},
.itemTableId = BATTLE_FRONTIER_ITEM_NONE,
@@ -1248,873 +1248,873 @@ const struct FacilityMon gSlateportBattleTentMons[] =
// Verdanturf Battle Tent.
const u16 gVerdanturfBattleTentTrainerMons_Brenna[] =
{
- 4,
- 11,
- 13,
- 18,
- 26,
+ VERDANTURF_TENT_MON_SHROOMISH,
+ VERDANTURF_TENT_MON_SWALOT,
+ VERDANTURF_TENT_MON_BALTOY,
+ VERDANTURF_TENT_MON_LOTAD,
+ VERDANTURF_TENT_MON_NUZLEAF,
-1
};
const u16 gVerdanturfBattleTentTrainerMons_Dilan[] =
{
- 30,
- 37,
- 13,
- 29,
- 42,
+ VERDANTURF_TENT_MON_GRAVELER,
+ VERDANTURF_TENT_MON_TRAPINCH,
+ VERDANTURF_TENT_MON_BALTOY,
+ VERDANTURF_TENT_MON_SOLROCK,
+ VERDANTURF_TENT_MON_MACHOKE,
-1
};
const u16 gVerdanturfBattleTentTrainerMons_Eliana[] =
{
- 6,
- 7,
- 17,
- 18,
- 40,
+ VERDANTURF_TENT_MON_MAGIKARP,
+ VERDANTURF_TENT_MON_BARBOACH,
+ VERDANTURF_TENT_MON_GOLDEEN_1,
+ VERDANTURF_TENT_MON_LOTAD,
+ VERDANTURF_TENT_MON_WAILMER,
-1
};
const u16 gVerdanturfBattleTentTrainerMons_Markus[] =
{
- 6,
- 7,
- 18,
- 24,
- 38,
+ VERDANTURF_TENT_MON_MAGIKARP,
+ VERDANTURF_TENT_MON_BARBOACH,
+ VERDANTURF_TENT_MON_LOTAD,
+ VERDANTURF_TENT_MON_GOLDEEN_2,
+ VERDANTURF_TENT_MON_TENTACOOL,
-1
};
const u16 gVerdanturfBattleTentTrainerMons_Caitlyn[] =
{
- 0,
- 12,
- 25,
- 28,
- 22,
- 44,
+ VERDANTURF_TENT_MON_POOCHYENA,
+ VERDANTURF_TENT_MON_KECLEON,
+ VERDANTURF_TENT_MON_ELECTRIKE,
+ VERDANTURF_TENT_MON_MIGHTYENA,
+ VERDANTURF_TENT_MON_SKARMORY,
+ VERDANTURF_TENT_MON_CACNEA,
-1
};
const u16 gVerdanturfBattleTentTrainerMons_Desiree[] =
{
- 8,
- 12,
- 21,
- 22,
- 31,
+ VERDANTURF_TENT_MON_WINGULL,
+ VERDANTURF_TENT_MON_KECLEON,
+ VERDANTURF_TENT_MON_SEVIPER,
+ VERDANTURF_TENT_MON_SKARMORY,
+ VERDANTURF_TENT_MON_KADABRA,
-1
};
const u16 gVerdanturfBattleTentTrainerMons_Ronald[] =
{
- 1,
- 20,
- 23,
- 25,
- 32,
+ VERDANTURF_TENT_MON_ZIGZAGOON,
+ VERDANTURF_TENT_MON_LINOONE,
+ VERDANTURF_TENT_MON_SWELLOW,
+ VERDANTURF_TENT_MON_ELECTRIKE,
+ VERDANTURF_TENT_MON_VOLTORB,
-1
};
const u16 gVerdanturfBattleTentTrainerMons_Ashten[] =
{
- 9,
- 12,
- 27,
- 37,
- 43,
+ VERDANTURF_TENT_MON_ARON_1,
+ VERDANTURF_TENT_MON_KECLEON,
+ VERDANTURF_TENT_MON_ARON_2,
+ VERDANTURF_TENT_MON_TRAPINCH,
+ VERDANTURF_TENT_MON_WHISMUR,
-1
};
const u16 gVerdanturfBattleTentTrainerMons_Gerard[] =
{
- 36,
- 7,
- 34,
- 6,
- 40,
+ VERDANTURF_TENT_MON_MARILL,
+ VERDANTURF_TENT_MON_BARBOACH,
+ VERDANTURF_TENT_MON_PELIPPER,
+ VERDANTURF_TENT_MON_MAGIKARP,
+ VERDANTURF_TENT_MON_WAILMER,
-1
};
const u16 gVerdanturfBattleTentTrainerMons_Bradly[] =
{
- 26,
- 3,
- 0,
- 2,
- 17,
+ VERDANTURF_TENT_MON_NUZLEAF,
+ VERDANTURF_TENT_MON_TAILLOW,
+ VERDANTURF_TENT_MON_POOCHYENA,
+ VERDANTURF_TENT_MON_DUSTOX,
+ VERDANTURF_TENT_MON_GOLDEEN_1,
-1
};
const u16 gVerdanturfBattleTentTrainerMons_Dennis[] =
{
- 14,
- 37,
- 2,
- 38,
- 27,
+ VERDANTURF_TENT_MON_NINJASK,
+ VERDANTURF_TENT_MON_TRAPINCH,
+ VERDANTURF_TENT_MON_DUSTOX,
+ VERDANTURF_TENT_MON_TENTACOOL,
+ VERDANTURF_TENT_MON_ARON_2,
-1
};
const u16 gVerdanturfBattleTentTrainerMons_Prestin[] =
{
- 31,
- 28,
- 22,
- 25,
- 44,
- 43,
- 41,
+ VERDANTURF_TENT_MON_KADABRA,
+ VERDANTURF_TENT_MON_MIGHTYENA,
+ VERDANTURF_TENT_MON_SKARMORY,
+ VERDANTURF_TENT_MON_ELECTRIKE,
+ VERDANTURF_TENT_MON_CACNEA,
+ VERDANTURF_TENT_MON_WHISMUR,
+ VERDANTURF_TENT_MON_ILLUMISE,
-1
};
const u16 gVerdanturfBattleTentTrainerMons_Ernesto[] =
{
- 33,
- 32,
- 25,
- 35,
- 34,
+ VERDANTURF_TENT_MON_MAGNEMITE,
+ VERDANTURF_TENT_MON_VOLTORB,
+ VERDANTURF_TENT_MON_ELECTRIKE,
+ VERDANTURF_TENT_MON_LOUDRED,
+ VERDANTURF_TENT_MON_PELIPPER,
-1
};
const u16 gVerdanturfBattleTentTrainerMons_Nala[] =
{
- 1,
- 4,
- 8,
- 11,
- 17,
- 40,
- 34,
+ VERDANTURF_TENT_MON_ZIGZAGOON,
+ VERDANTURF_TENT_MON_SHROOMISH,
+ VERDANTURF_TENT_MON_WINGULL,
+ VERDANTURF_TENT_MON_SWALOT,
+ VERDANTURF_TENT_MON_GOLDEEN_1,
+ VERDANTURF_TENT_MON_WAILMER,
+ VERDANTURF_TENT_MON_PELIPPER,
-1
};
const u16 gVerdanturfBattleTentTrainerMons_Darnell[] =
{
- 0,
- 29,
- 35,
- 37,
- 39,
- 43,
+ VERDANTURF_TENT_MON_POOCHYENA,
+ VERDANTURF_TENT_MON_SOLROCK,
+ VERDANTURF_TENT_MON_LOUDRED,
+ VERDANTURF_TENT_MON_TRAPINCH,
+ VERDANTURF_TENT_MON_VIGOROTH,
+ VERDANTURF_TENT_MON_WHISMUR,
-1
};
const u16 gVerdanturfBattleTentTrainerMons_Ashlyn[] =
{
- 29,
- 36,
- 32,
- 30,
- 17,
- 6,
- 44,
+ VERDANTURF_TENT_MON_SOLROCK,
+ VERDANTURF_TENT_MON_MARILL,
+ VERDANTURF_TENT_MON_VOLTORB,
+ VERDANTURF_TENT_MON_GRAVELER,
+ VERDANTURF_TENT_MON_GOLDEEN_1,
+ VERDANTURF_TENT_MON_MAGIKARP,
+ VERDANTURF_TENT_MON_CACNEA,
-1
};
const u16 gVerdanturfBattleTentTrainerMons_Addison[] =
{
- 0,
- 1,
- 16,
- 31,
- 6,
+ VERDANTURF_TENT_MON_POOCHYENA,
+ VERDANTURF_TENT_MON_ZIGZAGOON,
+ VERDANTURF_TENT_MON_SWABLU,
+ VERDANTURF_TENT_MON_KADABRA,
+ VERDANTURF_TENT_MON_MAGIKARP,
-1
};
const u16 gVerdanturfBattleTentTrainerMons_Justine[] =
{
- 0,
- 1,
- 16,
- 36,
- 18,
+ VERDANTURF_TENT_MON_POOCHYENA,
+ VERDANTURF_TENT_MON_ZIGZAGOON,
+ VERDANTURF_TENT_MON_SWABLU,
+ VERDANTURF_TENT_MON_MARILL,
+ VERDANTURF_TENT_MON_LOTAD,
-1
};
const u16 gVerdanturfBattleTentTrainerMons_Tyson[] =
{
- 5,
- 15,
- 22,
- 30,
- 16,
- 39,
- 43,
+ VERDANTURF_TENT_MON_MACHOP,
+ VERDANTURF_TENT_MON_MAKUHITA,
+ VERDANTURF_TENT_MON_SKARMORY,
+ VERDANTURF_TENT_MON_GRAVELER,
+ VERDANTURF_TENT_MON_SWABLU,
+ VERDANTURF_TENT_MON_VIGOROTH,
+ VERDANTURF_TENT_MON_WHISMUR,
-1
};
const u16 gVerdanturfBattleTentTrainerMons_Laila[] =
{
- 5,
- 15,
- 19,
- 24,
- 41,
- 43,
+ VERDANTURF_TENT_MON_MACHOP,
+ VERDANTURF_TENT_MON_MAKUHITA,
+ VERDANTURF_TENT_MON_NUMEL_2,
+ VERDANTURF_TENT_MON_GOLDEEN_2,
+ VERDANTURF_TENT_MON_ILLUMISE,
+ VERDANTURF_TENT_MON_WHISMUR,
-1
};
const u16 gVerdanturfBattleTentTrainerMons_Waren[] =
{
- 0,
- 9,
- 10,
- 11,
- 23,
+ VERDANTURF_TENT_MON_POOCHYENA,
+ VERDANTURF_TENT_MON_ARON_1,
+ VERDANTURF_TENT_MON_NUMEL_1,
+ VERDANTURF_TENT_MON_SWALOT,
+ VERDANTURF_TENT_MON_SWELLOW,
-1
};
const u16 gVerdanturfBattleTentTrainerMons_Tobias[] =
{
- 6,
- 7,
- 24,
- 38,
- 40,
+ VERDANTURF_TENT_MON_MAGIKARP,
+ VERDANTURF_TENT_MON_BARBOACH,
+ VERDANTURF_TENT_MON_GOLDEEN_2,
+ VERDANTURF_TENT_MON_TENTACOOL,
+ VERDANTURF_TENT_MON_WAILMER,
-1
};
const u16 gVerdanturfBattleTentTrainerMons_Josiah[] =
{
- 8,
- 16,
- 23,
- 34,
- 3,
+ VERDANTURF_TENT_MON_WINGULL,
+ VERDANTURF_TENT_MON_SWABLU,
+ VERDANTURF_TENT_MON_SWELLOW,
+ VERDANTURF_TENT_MON_PELIPPER,
+ VERDANTURF_TENT_MON_TAILLOW,
-1
};
const u16 gVerdanturfBattleTentTrainerMons_Dion[] =
{
- 14,
- 2,
- 11,
- 39,
- 21,
- 38,
+ VERDANTURF_TENT_MON_NINJASK,
+ VERDANTURF_TENT_MON_DUSTOX,
+ VERDANTURF_TENT_MON_SWALOT,
+ VERDANTURF_TENT_MON_VIGOROTH,
+ VERDANTURF_TENT_MON_SEVIPER,
+ VERDANTURF_TENT_MON_TENTACOOL,
-1
};
const u16 gVerdanturfBattleTentTrainerMons_Kenzie[] =
{
- 18,
- 10,
- 16,
- 26,
- 25,
- 27,
+ VERDANTURF_TENT_MON_LOTAD,
+ VERDANTURF_TENT_MON_NUMEL_1,
+ VERDANTURF_TENT_MON_SWABLU,
+ VERDANTURF_TENT_MON_NUZLEAF,
+ VERDANTURF_TENT_MON_ELECTRIKE,
+ VERDANTURF_TENT_MON_ARON_2,
-1
};
const u16 gVerdanturfBattleTentTrainerMons_Lillian[] =
{
- 24,
- 34,
- 36,
- 38,
- 5,
+ VERDANTURF_TENT_MON_GOLDEEN_2,
+ VERDANTURF_TENT_MON_PELIPPER,
+ VERDANTURF_TENT_MON_MARILL,
+ VERDANTURF_TENT_MON_TENTACOOL,
+ VERDANTURF_TENT_MON_MACHOP,
-1
};
const u16 gVerdanturfBattleTentTrainerMons_Lesley[] =
{
- 26,
- 0,
- 18,
- 13,
- 25,
+ VERDANTURF_TENT_MON_NUZLEAF,
+ VERDANTURF_TENT_MON_POOCHYENA,
+ VERDANTURF_TENT_MON_LOTAD,
+ VERDANTURF_TENT_MON_BALTOY,
+ VERDANTURF_TENT_MON_ELECTRIKE,
-1
};
const u16 gVerdanturfBattleTentTrainerMons_Marquis[] =
{
- 24,
- 34,
- 5,
- 15,
- 7,
- 42,
+ VERDANTURF_TENT_MON_GOLDEEN_2,
+ VERDANTURF_TENT_MON_PELIPPER,
+ VERDANTURF_TENT_MON_MACHOP,
+ VERDANTURF_TENT_MON_MAKUHITA,
+ VERDANTURF_TENT_MON_BARBOACH,
+ VERDANTURF_TENT_MON_MACHOKE,
-1
};
const u16 gVerdanturfBattleTentTrainerMons_Freddy[] =
{
- 18,
- 21,
- 26,
- 29,
- 41,
+ VERDANTURF_TENT_MON_LOTAD,
+ VERDANTURF_TENT_MON_SEVIPER,
+ VERDANTURF_TENT_MON_NUZLEAF,
+ VERDANTURF_TENT_MON_SOLROCK,
+ VERDANTURF_TENT_MON_ILLUMISE,
-1
};
const u16 gVerdanturfBattleTentTrainerMons_Cecilia[] =
{
- 23,
- 26,
- 27,
- 28,
- 31,
+ VERDANTURF_TENT_MON_SWELLOW,
+ VERDANTURF_TENT_MON_NUZLEAF,
+ VERDANTURF_TENT_MON_ARON_2,
+ VERDANTURF_TENT_MON_MIGHTYENA,
+ VERDANTURF_TENT_MON_KADABRA,
-1
};
-const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] =
+const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[NUM_BATTLE_TENT_TRAINERS] =
{
- [0] = {
+ [VERDANTURF_TENT_TRAINER_BRENNA] = {
.facilityClass = FACILITY_CLASS_AROMA_LADY,
.trainerName = _("BRENNA"),
.speechBefore = {EC_WORD_NO, EC_WORD_DAYS, EC_WORD_GO, EC_WORD_WITHOUT, EC_WORD_MY, EC_MOVE(FAKE_TEARS)},
.speechWin = {EC_WORD_OH, EC_WORD_THAT_WAS, EC_WORD_SO, EC_WORD_REFRESHING, EC_WORD_EXCL, -1},
.speechLose = {EC_WORD_ALL, EC_WORD_I, EC_WORD_EVER, EC_WORD_GET, EC_WORD_IS, EC_MOVE(TORMENT)},
- .monSets = gVerdanturfBattleTentTrainerMons_Brenna
+ .monSet = gVerdanturfBattleTentTrainerMons_Brenna
},
- [1] = {
+ [VERDANTURF_TENT_TRAINER_DILAN] = {
.facilityClass = FACILITY_CLASS_RUIN_MANIAC,
.trainerName = _("DILAN"),
.speechBefore = {EC_WORD_YOU, EC_WORD_DON_T, EC_WORD_KNOW, EC_WORD_HOW, EC_WORD_BORED, EC_WORD_I_AM},
.speechWin = {EC_WORD_LOSING, EC_WORD_ISN_T, EC_WORD_EXCITING, EC_WORD_AT, EC_WORD_ALL, EC_WORD_ELLIPSIS},
.speechLose = {EC_WORD_EXCITING, EC_WORD_EXCL_EXCL, EC_WORD_BYE_BYE, EC_WORD_TO, EC_WORD_BEING, EC_WORD_BORED},
- .monSets = gVerdanturfBattleTentTrainerMons_Dilan
+ .monSet = gVerdanturfBattleTentTrainerMons_Dilan
},
- [2] = {
+ [VERDANTURF_TENT_TRAINER_ELIANA] = {
.facilityClass = FACILITY_CLASS_TUBER_F,
.trainerName = _("ELIANA"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_ON, EC_WORD_A, EC_WORD_VACATION, EC_WORD_SOON},
.speechWin = {EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_GET, EC_WORD_SOME, EC_WORD_MONEY},
.speechLose = {EC_WORD_NO, EC_WORD_SLEEP, EC_WORD_UNTIL, EC_WORD_I, EC_WORD_GET, EC_WORD_HOME},
- .monSets = gVerdanturfBattleTentTrainerMons_Eliana
+ .monSet = gVerdanturfBattleTentTrainerMons_Eliana
},
- [3] = {
+ [VERDANTURF_TENT_TRAINER_MARKUS] = {
.facilityClass = FACILITY_CLASS_TUBER_M,
.trainerName = _("MARKUS"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_SMART, EC_WORD_EXCL, EC_WORD_IF_I_LOSE, EC_WORD_I, EC_MOVE(SELF_DESTRUCT)},
.speechWin = {EC_WORD_IT_S, EC_WORD_A, EC_WORD_NON_STOP, EC_MOVE2(EXPLOSION), EC_WORD_OF, EC_WORD_JOY},
.speechLose = {EC_WORD_I_VE, EC_WORD_LOST, EC_WORD_ELLIPSIS, EC_WORD_TIME, EC_WORD_TO, EC_MOVE(SELF_DESTRUCT)},
- .monSets = gVerdanturfBattleTentTrainerMons_Markus
+ .monSet = gVerdanturfBattleTentTrainerMons_Markus
},
- [4] = {
+ [VERDANTURF_TENT_TRAINER_CAITLYN] = {
.facilityClass = FACILITY_CLASS_LADY,
.trainerName = _("CAITLYN"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_BORED, EC_WORD_OF, EC_WORD_BEING, EC_WORD_AN, EC_WORD_IDOL},
.speechWin = {EC_WORD_A, EC_WORD_BATTLE, EC_WORD_IS, EC_WORD_BEST, EC_WORD_FOR, EC_WORD_HAPPINESS},
.speechLose = {EC_WORD_LOSING, EC_WORD_DOESN_T, EC_WORD_BUG, EC_WORD_ME, EC_WORD_AT, EC_WORD_ALL},
- .monSets = gVerdanturfBattleTentTrainerMons_Caitlyn
+ .monSet = gVerdanturfBattleTentTrainerMons_Caitlyn
},
- [5] = {
+ [VERDANTURF_TENT_TRAINER_DESIREE] = {
.facilityClass = FACILITY_CLASS_BEAUTY,
.trainerName = _("DESIREE"),
.speechBefore = {EC_WORD_DOESN_T, EC_WORD_MY, EC_WORD_BEAUTY, EC_MOVE(ASTONISH), EC_WORD_YOU, EC_WORD_QUES},
.speechWin = {EC_WORD_DID, EC_WORD_I, EC_WORD_INTIMIDATE, EC_WORD_YOU, EC_WORD_QUES, -1},
.speechLose = {EC_WORD_MY, EC_WORD_BEAUTY, EC_WORD_DID, EC_WORD_NOTHING, EC_WORD_FOR, EC_WORD_YOU},
- .monSets = gVerdanturfBattleTentTrainerMons_Desiree
+ .monSet = gVerdanturfBattleTentTrainerMons_Desiree
},
- [6] = {
+ [VERDANTURF_TENT_TRAINER_RONALD] = {
.facilityClass = FACILITY_CLASS_RICH_BOY,
.trainerName = _("RONALD"),
.speechBefore = {EC_WORD_COME_ON, EC_WORD_I, EC_WORD_WILL, EC_WORD_BATTLE, EC_WORD_SERIOUSLY, -1},
.speechWin = {EC_WORD_GIVE_UP, EC_WORD_QUES, -1, EC_WORD_THAT_S, EC_WORD_REALLY, EC_WORD_WEAK},
.speechLose = {EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_DO, EC_WORD_A, EC_MOVE2(BATON_PASS)},
- .monSets = gVerdanturfBattleTentTrainerMons_Ronald
+ .monSet = gVerdanturfBattleTentTrainerMons_Ronald
},
- [7] = {
+ [VERDANTURF_TENT_TRAINER_ASHTEN] = {
.facilityClass = FACILITY_CLASS_POKEMANIAC,
.trainerName = _("ASHTEN"),
.speechBefore = {EC_WORD_OH_YEAH, EC_WORD_ANOTHER, EC_WORD_EXCITING, EC_WORD_BATTLE, EC_WORD_EXCL, -1},
.speechWin = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_WIMPY, EC_WORD_AND, EC_WORD_BORING},
.speechLose = {EC_WORD_THAT_WAS, EC_WORD_AN, EC_WORD_EXCITING, EC_WORD_LOSS, EC_WORD_WOW, EC_WORD_EXCL},
- .monSets = gVerdanturfBattleTentTrainerMons_Ashten
+ .monSet = gVerdanturfBattleTentTrainerMons_Ashten
},
- [8] = {
+ [VERDANTURF_TENT_TRAINER_GERARD] = {
.facilityClass = FACILITY_CLASS_SWIMMER_M,
.trainerName = _("GERARD"),
.speechBefore = {EC_WORD_LOOK, EC_WORD_AT, EC_WORD_MY, EC_WORD_SUPER, EC_MOVE2(TEETER_DANCE), EC_WORD_EXCL},
.speechWin = {EC_WORD_THAT_WAS, EC_WORD_HARD, EC_WORD_ELLIPSIS, EC_WORD_AM, EC_WORD_I, EC_WORD_OK_QUES},
.speechLose = {EC_WORD_I, EC_WORD_WON_T, EC_WORD_FORGIVE, EC_WORD_YOU, EC_WORD_FOR, EC_WORD_THAT},
- .monSets = gVerdanturfBattleTentTrainerMons_Gerard
+ .monSet = gVerdanturfBattleTentTrainerMons_Gerard
},
- [9] = {
+ [VERDANTURF_TENT_TRAINER_BRADLY] = {
.facilityClass = FACILITY_CLASS_CAMPER,
.trainerName = _("BRADLY"),
.speechBefore = {EC_WORD_IT_S, EC_WORD_LONESOME, EC_WORD_BUT, EC_WORD_I, EC_WORD_VACATION, EC_WORD_ALONE},
.speechWin = {EC_WORD_I, EC_WORD_WILL, EC_MOVE(WITHDRAW), EC_WORD_INSIDE, EC_WORD_MY, EC_WORD_SHELL_ARMOR},
.speechLose = {EC_WORD_OH, EC_WORD_ELLIPSIS, -1, EC_WORD_ALONE, EC_WORD_AS, EC_WORD_ALWAYS},
- .monSets = gVerdanturfBattleTentTrainerMons_Bradly
+ .monSet = gVerdanturfBattleTentTrainerMons_Bradly
},
- [10] = {
+ [VERDANTURF_TENT_TRAINER_DENNIS] = {
.facilityClass = FACILITY_CLASS_BUG_MANIAC,
.trainerName = _("DENNIS"),
.speechBefore = {EC_WORD_ARE, EC_WORD_YOU, EC_WORD_REALLY, EC_WORD_STRONG, EC_WORD_QUES, -1},
.speechWin = {EC_WORD_WAHAHAHA, EC_WORD_EXCL, -1, EC_WORD_WAHAHAHA, EC_WORD_EXCL_EXCL, -1},
.speechLose = {EC_WORD_NICE, EC_WORD_GOING, EC_WORD_EXCL, EC_WORD_I, EC_WORD_WAS, EC_WORD_CHILD_S_PLAY},
- .monSets = gVerdanturfBattleTentTrainerMons_Dennis
+ .monSet = gVerdanturfBattleTentTrainerMons_Dennis
},
- [11] = {
+ [VERDANTURF_TENT_TRAINER_PRESTIN] = {
.facilityClass = FACILITY_CLASS_GENTLEMAN,
.trainerName = _("PRESTIN"),
.speechBefore = {EC_WORD_THIS, EC_WORD_IS, EC_WORD_A, EC_MOVE(NIGHTMARE), EC_WORD_FOR, EC_WORD_YOU},
.speechWin = {EC_WORD_FORGIVE, EC_WORD_ME, EC_WORD_ELLIPSIS, EC_WORD_IT_S, EC_WORD_A, EC_WORD_DREAM},
.speechLose = {EC_WORD_I, EC_WORD_WANT, EC_WORD_TO, EC_WORD_WAKE_UP, EC_WORD_FROM, EC_WORD_THIS},
- .monSets = gVerdanturfBattleTentTrainerMons_Prestin
+ .monSet = gVerdanturfBattleTentTrainerMons_Prestin
},
- [12] = {
+ [VERDANTURF_TENT_TRAINER_ERNESTO] = {
.facilityClass = FACILITY_CLASS_GUITARIST,
.trainerName = _("ERNESTO"),
.speechBefore = {EC_WORD_THIS, EC_WORD_PARTY, EC_WORD_GOES, EC_WORD_ON, EC_WORD_FOREVER, EC_WORD_EXCL},
.speechWin = {EC_WORD_THE, EC_WORD_MUSIC, EC_WORD_PLAYS, EC_WORD_ON, EC_WORD_WITHOUT, EC_WORD_END},
.speechLose = {EC_WORD_NO, EC_WORD_EXCL, EC_WORD_THE, EC_WORD_MUSIC, EC_WORD_CAN_T, EC_WORD_STOP},
- .monSets = gVerdanturfBattleTentTrainerMons_Ernesto
+ .monSet = gVerdanturfBattleTentTrainerMons_Ernesto
},
- [13] = {
+ [VERDANTURF_TENT_TRAINER_NALA] = {
.facilityClass = FACILITY_CLASS_SCHOOL_KID_F,
.trainerName = _("NALA"),
.speechBefore = {EC_WORD_I, EC_WORD_WANT, EC_WORD_THE, EC_WORD_WORLD, EC_WORD_MOVIE, EC_WORD_COLLECTION},
.speechWin = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_LIKE, EC_WORD_RADIO, EC_WORD_VERY, EC_WORD_MUCH},
.speechLose = {EC_WORD_I, EC_WORD_REFUSE, EC_WORD_TO, EC_WORD_BELIEVE, EC_WORD_THIS, EC_WORD_EXCL},
- .monSets = gVerdanturfBattleTentTrainerMons_Nala
+ .monSet = gVerdanturfBattleTentTrainerMons_Nala
},
- [14] = {
+ [VERDANTURF_TENT_TRAINER_DARNELL] = {
.facilityClass = FACILITY_CLASS_COOLTRAINER_M,
.trainerName = _("DARNELL"),
.speechBefore = {EC_WORD_I, EC_WORD_WILL, EC_WORD_GO_EASY, EC_WORD_ON, EC_WORD_YOU, -1},
.speechWin = {EC_WORD_YOUR, EC_MOVE2(FRUSTRATION), EC_WORD_SHOULD, EC_WORD_BE, EC_WORD_HIDDEN, EC_WORD_AWAY},
.speechLose = {EC_WORD_YOU_RE, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_TO, EC_WORD_TAKE, EC_WORD_ELLIPSIS},
- .monSets = gVerdanturfBattleTentTrainerMons_Darnell
+ .monSet = gVerdanturfBattleTentTrainerMons_Darnell
},
- [15] = {
+ [VERDANTURF_TENT_TRAINER_ASHLYN] = {
.facilityClass = FACILITY_CLASS_COOLTRAINER_F,
.trainerName = _("ASHLYN"),
.speechBefore = {EC_WORD_I, EC_WORD_LOOK, EC_WORD_TOUGH, EC_WORD_DO, EC_WORD_I, EC_WORD_QUES},
.speechWin = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_OVER, EC_WORD_YOUR, EC_MOVE2(TAUNT), EC_WORD_YET},
.speechLose = {EC_WORD_YOU_RE, EC_WORD_MEAN, EC_WORD_EXCL_EXCL, -1, -1, -1},
- .monSets = gVerdanturfBattleTentTrainerMons_Ashlyn
+ .monSet = gVerdanturfBattleTentTrainerMons_Ashlyn
},
- [16] = {
+ [VERDANTURF_TENT_TRAINER_ADDISON] = {
.facilityClass = FACILITY_CLASS_POKEFAN_M,
.trainerName = _("ADDISON"),
.speechBefore = {EC_WORD_YES, EC_WORD_EXCL, -1, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_EXCL},
.speechWin = {EC_WORD_WELL, EC_WORD_WASN_T, EC_WORD_THAT, EC_WORD_EASY, EC_WORD_QUES, -1},
.speechLose = {EC_WORD_WAAAH, EC_WORD_EXCL, -1, EC_WORD_BUT, EC_WORD_WHY, EC_WORD_QUES},
- .monSets = gVerdanturfBattleTentTrainerMons_Addison
+ .monSet = gVerdanturfBattleTentTrainerMons_Addison
},
- [17] = {
+ [VERDANTURF_TENT_TRAINER_JUSTINE] = {
.facilityClass = FACILITY_CLASS_POKEFAN_F,
.trainerName = _("JUSTINE"),
.speechBefore = {EC_WORD_YES, EC_WORD_EXCL, -1, EC_WORD_COME_ON, EC_WORD_I_AM, EC_WORD_READY},
.speechWin = {EC_WORD_YOU_RE, EC_WORD_JUST, EC_WORD_NOT, EC_WORD_GOOD, EC_WORD_ENOUGH, EC_WORD_EXCL},
.speechLose = {EC_WORD_WOWEE, EC_WORD_EXCL_EXCL, -1, -1, -1, -1},
- .monSets = gVerdanturfBattleTentTrainerMons_Justine
+ .monSet = gVerdanturfBattleTentTrainerMons_Justine
},
- [18] = {
+ [VERDANTURF_TENT_TRAINER_TYSON] = {
.facilityClass = FACILITY_CLASS_EXPERT_M,
.trainerName = _("TYSON"),
.speechBefore = {EC_WORD_YOU_RE, EC_WORD_GOING, EC_WORD_TO, EC_WORD_PRESSURE, EC_WORD_ME, EC_WORD_QUES},
.speechWin = {EC_WORD_WHAT, EC_WORD_QUES, EC_WORD_YOU_RE, EC_WORD_MUCH, EC_WORD_TOO_WEAK, EC_WORD_EXCL},
.speechLose = {EC_WORD_THIS, EC_WORD_DOESN_T, EC_WORD_MAKE, EC_WORD_ME, EC_WORD_HAPPY, EC_WORD_EXCL},
- .monSets = gVerdanturfBattleTentTrainerMons_Tyson
+ .monSet = gVerdanturfBattleTentTrainerMons_Tyson
},
- [19] = {
+ [VERDANTURF_TENT_TRAINER_LAILA] = {
.facilityClass = FACILITY_CLASS_EXPERT_F,
.trainerName = _("LAILA"),
.speechBefore = {EC_WORD_A, EC_MOVE2(STRUGGLE), EC_WORD_ISN_T, EC_WORD_VERY, EC_WORD_COOL, -1},
.speechWin = {EC_WORD_NOPE, EC_WORD_NOT_VERY, EC_WORD_COOL, EC_WORD_AT, EC_WORD_ALL, EC_WORD_EXCL},
.speechLose = {EC_WORD_YOU_RE, EC_WORD_NOT, EC_WORD_COOL, EC_WORD_BUT, EC_WORD_YOU, EC_WORD_WON},
- .monSets = gVerdanturfBattleTentTrainerMons_Laila
+ .monSet = gVerdanturfBattleTentTrainerMons_Laila
},
- [20] = {
+ [VERDANTURF_TENT_TRAINER_WAREN] = {
.facilityClass = FACILITY_CLASS_YOUNGSTER,
.trainerName = _("WAREN"),
.speechBefore = {EC_WORD_DANGER, EC_WORD_EXCL, -1, EC_WORD_I, EC_WORD_SENSE, EC_WORD_DANGER},
.speechWin = {EC_WORD_DID, EC_WORD_YOU, EC_WORD_BELIEVE, EC_WORD_MY, EC_WORD_LIE, EC_WORD_QUES_EXCL},
.speechLose = {EC_WORD_I, EC_WORD_REALLY, EC_WORD_DID, EC_WORD_SENSE, EC_WORD_DANGER, EC_WORD_ELLIPSIS},
- .monSets = gVerdanturfBattleTentTrainerMons_Waren
+ .monSet = gVerdanturfBattleTentTrainerMons_Waren
},
- [21] = {
+ [VERDANTURF_TENT_TRAINER_TOBIAS] = {
.facilityClass = FACILITY_CLASS_FISHERMAN,
.trainerName = _("TOBIAS"),
.speechBefore = {EC_MOVE2(BARRIER), EC_WORD_EXCL_EXCL, -1, EC_WORD_NOW, EC_WORD_COME_ON, EC_WORD_EXCL},
.speechWin = {EC_WORD_HUH_QUES, EC_WORD_YOU, EC_WORD_MEAN, EC_WORD_I, EC_WORD_WON, EC_WORD_QUES},
.speechLose = {EC_WORD_I, EC_WORD_SHOULD, EC_WORD_KNOW, EC_WORD_THAT, EC_WORD_IT_S, EC_WORD_HOPELESS},
- .monSets = gVerdanturfBattleTentTrainerMons_Tobias
+ .monSet = gVerdanturfBattleTentTrainerMons_Tobias
},
- [22] = {
+ [VERDANTURF_TENT_TRAINER_JOSIAH] = {
.facilityClass = FACILITY_CLASS_BIRD_KEEPER,
.trainerName = _("JOSIAH"),
.speechBefore = {EC_WORD_I, EC_WORD_PROMISE, EC_WORD_TO, EC_MOVE(FLY), EC_WORD_IF_I_LOSE, -1},
.speechWin = {EC_WORD_TOO_WEAK, EC_WORD_ELLIPSIS, -1, EC_WORD_YOU, EC_MOVE(FLY), EC_WORD_INSTEAD},
.speechLose = {EC_WORD_I, EC_WORD_PROMISE, EC_WORD_TO, EC_MOVE(FLY), EC_WORD_SOMETIME, EC_WORD_SOON},
- .monSets = gVerdanturfBattleTentTrainerMons_Josiah
+ .monSet = gVerdanturfBattleTentTrainerMons_Josiah
},
- [23] = {
+ [VERDANTURF_TENT_TRAINER_DION] = {
.facilityClass = FACILITY_CLASS_NINJA_BOY,
.trainerName = _("DION"),
.speechBefore = {EC_WORD_IT_S, EC_WORD_TRENDY, EC_WORD_UM, EC_WORD_BATTLE, EC_WORD_SOMETHING, -1},
.speechWin = {EC_WORD_WAS, EC_WORD_IT, EC_WORD_ELLIPSIS, EC_WORD_BATTLE, EC_WORD_DATE, EC_WORD_QUES},
.speechLose = {EC_WORD_WAS, EC_WORD_IT, EC_WORD_ELLIPSIS, EC_WORD_BATTLE, EC_WORD_GOURMET, EC_WORD_QUES},
- .monSets = gVerdanturfBattleTentTrainerMons_Dion
+ .monSet = gVerdanturfBattleTentTrainerMons_Dion
},
- [24] = {
+ [VERDANTURF_TENT_TRAINER_KENZIE] = {
.facilityClass = FACILITY_CLASS_PARASOL_LADY,
.trainerName = _("KENZIE"),
.speechBefore = {EC_WORD_THE, EC_MOVE(MORNING_SUN), EC_WORD_GIVES, EC_WORD_ME, EC_MOVE(STRENGTH), -1},
.speechWin = {EC_WORD_BUT, EC_WORD_I, EC_WORD_LIKE, EC_MOVE2(MOONLIGHT), EC_WORD_TOO, -1},
.speechLose = {EC_WORD_YOU_RE, EC_WORD_LIKE, EC_WORD_A, EC_WORD_TERRIBLE, EC_MOVE(SANDSTORM), EC_WORD_ELLIPSIS},
- .monSets = gVerdanturfBattleTentTrainerMons_Kenzie
+ .monSet = gVerdanturfBattleTentTrainerMons_Kenzie
},
- [25] = {
+ [VERDANTURF_TENT_TRAINER_LILLIAN] = {
.facilityClass = FACILITY_CLASS_SWIMMER_F,
.trainerName = _("LILLIAN"),
.speechBefore = {EC_WORD_I, EC_WORD_DO, EC_WORD_THINGS, EC_WORD_AT, EC_WORD_MY, EC_WORD_OWN_TEMPO},
.speechWin = {EC_WORD_I, EC_WORD_WON, EC_WORD_QUES, EC_WORD_WHAT, EC_WORD_A, EC_WORD_SURPRISE},
.speechLose = {EC_WORD_AWW, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_NEED, EC_WORD_A, EC_WORD_NAP},
- .monSets = gVerdanturfBattleTentTrainerMons_Lillian
+ .monSet = gVerdanturfBattleTentTrainerMons_Lillian
},
- [26] = {
+ [VERDANTURF_TENT_TRAINER_LESLEY] = {
.facilityClass = FACILITY_CLASS_PICNICKER,
.trainerName = _("LESLEY"),
.speechBefore = {EC_WORD_YOU, EC_WORD_SHOULD, EC_WORD_NOT, EC_WORD_BE, EC_WORD_LOLLING, EC_WORD_ABOUT},
.speechWin = {EC_WORD_YOU, EC_WORD_SHOULD, EC_WORD_GET, EC_WORD_UP, EC_WORD_EARLIER, -1},
.speechLose = {EC_WORD_THIS, EC_WORD_SHOULD, EC_WORD_NOT, EC_WORD_BE, EC_WORD_HAPPENING, EC_WORD_EXCL},
- .monSets = gVerdanturfBattleTentTrainerMons_Lesley
+ .monSet = gVerdanturfBattleTentTrainerMons_Lesley
},
- [27] = {
+ [VERDANTURF_TENT_TRAINER_MARQUIS] = {
.facilityClass = FACILITY_CLASS_SAILOR,
.trainerName = _("MARQUIS"),
.speechBefore = {EC_WORD_NONE, EC_WORD_OF, EC_WORD_THIS, EC_WORD_IS, EC_WORD_MAKING, EC_WORD_SENSE},
.speechWin = {EC_WORD_SEE, EC_WORD_QUES, EC_WORD_THIS, EC_WORD_JUST, EC_WORD_ISN_T, EC_WORD_NORMAL},
.speechLose = {EC_WORD_SHOULD, EC_WORD_I, EC_WORD_CAUSE, EC_WORD_AN, EC_MOVE(UPROAR), EC_WORD_QUES},
- .monSets = gVerdanturfBattleTentTrainerMons_Marquis
+ .monSet = gVerdanturfBattleTentTrainerMons_Marquis
},
- [28] = {
+ [VERDANTURF_TENT_TRAINER_FREDDY] = {
.facilityClass = FACILITY_CLASS_COLLECTOR,
.trainerName = _("FREDDY"),
.speechBefore = {EC_WORD_I, EC_WORD_ADORE, EC_WORD_THIS, EC_WORD_CUTE, EC_WORD_TELEVISION, EC_WORD_IDOL},
.speechWin = {EC_WORD_YOU_RE, EC_WORD_SO, EC_WORD_FUNNY, EC_WORD_WHEN, EC_WORD_YOU_RE, EC_WORD_ANGRY},
.speechLose = {EC_WORD_LATE, EC_WORD_NIGHT, EC_WORD_TELEVISION, EC_WORD_IS, EC_WORD_MY, EC_WORD_LIFE},
- .monSets = gVerdanturfBattleTentTrainerMons_Freddy
+ .monSet = gVerdanturfBattleTentTrainerMons_Freddy
},
- [29] = {
+ [VERDANTURF_TENT_TRAINER_CECILIA] = {
.facilityClass = FACILITY_CLASS_LASS,
.trainerName = _("CECILIA"),
.speechBefore = {EC_WORD_MY, EC_WORD_FABULOUS, EC_WORD_CUTENESS, EC_WORD_IS, EC_WORD_IN, EC_WORD_FASHION},
.speechWin = {EC_WORD_YOU_RE, EC_WORD_NO, EC_WORD_MATCH, EC_WORD_FOR, EC_WORD_MY, EC_WORD_CUTE_CHARM},
.speechLose = {EC_WORD_DON_T, EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_FASHION, EC_WORD_SENSE, EC_WORD_QUES},
- .monSets = gVerdanturfBattleTentTrainerMons_Cecilia
+ .monSet = gVerdanturfBattleTentTrainerMons_Cecilia
}
};
-const struct FacilityMon gVerdanturfBattleTentMons[] =
+const struct FacilityMon gVerdanturfBattleTentMons[NUM_VERDANTURF_TENT_MONS] =
{
- [0] = {
+ [VERDANTURF_TENT_MON_POOCHYENA] = {
.species = SPECIES_POOCHYENA,
.moves = {MOVE_ROAR, MOVE_THIEF, MOVE_BITE, MOVE_HOWL},
.itemTableId = BATTLE_FRONTIER_ITEM_BLACK_GLASSES,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_NAUGHTY
},
- [1] = {
+ [VERDANTURF_TENT_MON_ZIGZAGOON] = {
.species = SPECIES_ZIGZAGOON,
.moves = {MOVE_COVET, MOVE_GROWL, MOVE_PIN_MISSILE, MOVE_MUD_SPORT},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [2] = {
+ [VERDANTURF_TENT_MON_DUSTOX] = {
.species = SPECIES_DUSTOX,
.moves = {MOVE_CONFUSION, MOVE_MOONLIGHT, MOVE_PROTECT, MOVE_FLASH},
.itemTableId = BATTLE_FRONTIER_ITEM_SILVER_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
.nature = NATURE_MODEST
},
- [3] = {
+ [VERDANTURF_TENT_MON_TAILLOW] = {
.species = SPECIES_TAILLOW,
.moves = {MOVE_AGILITY, MOVE_DOUBLE_TEAM, MOVE_WING_ATTACK, MOVE_GROWL},
.itemTableId = BATTLE_FRONTIER_ITEM_ORAN_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [4] = {
+ [VERDANTURF_TENT_MON_SHROOMISH] = {
.species = SPECIES_SHROOMISH,
.moves = {MOVE_HEADBUTT, MOVE_STUN_SPORE, MOVE_LEECH_SEED, MOVE_FLASH},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_RASH
},
- [5] = {
+ [VERDANTURF_TENT_MON_MACHOP] = {
.species = SPECIES_MACHOP,
.moves = {MOVE_LOW_KICK, MOVE_LEER, MOVE_FOCUS_ENERGY, MOVE_ENCORE},
.itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_LONELY
},
- [6] = {
+ [VERDANTURF_TENT_MON_MAGIKARP] = {
.species = SPECIES_MAGIKARP,
.moves = {MOVE_SPLASH, MOVE_FLAIL, MOVE_TACKLE, MOVE_NONE},
.itemTableId = BATTLE_FRONTIER_ITEM_SILK_SCARF,
.evSpread = F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [7] = {
+ [VERDANTURF_TENT_MON_BARBOACH] = {
.species = SPECIES_BARBOACH,
.moves = {MOVE_MUD_SLAP, MOVE_WATER_GUN, MOVE_RAIN_DANCE, MOVE_SPARK},
.itemTableId = BATTLE_FRONTIER_ITEM_ASPEAR_BERRY,
.evSpread = F_EV_SPREAD_SPEED,
.nature = NATURE_HASTY
},
- [8] = {
+ [VERDANTURF_TENT_MON_WINGULL] = {
.species = SPECIES_WINGULL,
.moves = {MOVE_ATTRACT, MOVE_TWISTER, MOVE_WING_ATTACK, MOVE_SUPERSONIC},
.itemTableId = BATTLE_FRONTIER_ITEM_DRAGON_FANG,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_IMPISH
},
- [9] = {
+ [VERDANTURF_TENT_MON_ARON_1] = {
.species = SPECIES_ARON,
.moves = {MOVE_ENDEAVOR, MOVE_METAL_CLAW, MOVE_TACKLE, MOVE_ATTRACT},
.itemTableId = BATTLE_FRONTIER_ITEM_PECHA_BERRY,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_HARDY
},
- [10] = {
+ [VERDANTURF_TENT_MON_NUMEL_1] = {
.species = SPECIES_NUMEL,
.moves = {MOVE_EMBER, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_GROWL},
.itemTableId = BATTLE_FRONTIER_ITEM_CHARCOAL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_SASSY
},
- [11] = {
+ [VERDANTURF_TENT_MON_SWALOT] = {
.species = SPECIES_SWALOT,
.moves = {MOVE_YAWN, MOVE_SLUDGE, MOVE_ACID_ARMOR, MOVE_AMNESIA},
.itemTableId = BATTLE_FRONTIER_ITEM_POISON_BARB,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_BOLD
},
- [12] = {
+ [VERDANTURF_TENT_MON_KECLEON] = {
.species = SPECIES_KECLEON,
.moves = {MOVE_SUBSTITUTE, MOVE_FAINT_ATTACK, MOVE_DOUBLE_TEAM, MOVE_BIND},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_QUIET
},
- [13] = {
+ [VERDANTURF_TENT_MON_BALTOY] = {
.species = SPECIES_BALTOY,
.moves = {MOVE_SANDSTORM, MOVE_FLASH, MOVE_SELF_DESTRUCT, MOVE_HARDEN},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_NAUGHTY
},
- [14] = {
+ [VERDANTURF_TENT_MON_NINJASK] = {
.species = SPECIES_NINJASK,
.moves = {MOVE_DIG, MOVE_SCREECH, MOVE_SWORDS_DANCE, MOVE_LEECH_LIFE},
.itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_SASSY
},
- [15] = {
+ [VERDANTURF_TENT_MON_MAKUHITA] = {
.species = SPECIES_MAKUHITA,
.moves = {MOVE_BULK_UP, MOVE_ARM_THRUST, MOVE_SMELLING_SALT, MOVE_SAND_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_NAUGHTY
},
- [16] = {
+ [VERDANTURF_TENT_MON_SWABLU] = {
.species = SPECIES_SWABLU,
.moves = {MOVE_REFRESH, MOVE_SAFEGUARD, MOVE_ATTRACT, MOVE_MIRROR_MOVE},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MILD
},
- [17] = {
+ [VERDANTURF_TENT_MON_GOLDEEN_1] = {
.species = SPECIES_GOLDEEN,
.moves = {MOVE_WATERFALL, MOVE_MUD_SPORT, MOVE_SUPERSONIC, MOVE_DOUBLE_TEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_MYSTIC_WATER,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_GENTLE
},
- [18] = {
+ [VERDANTURF_TENT_MON_LOTAD] = {
.species = SPECIES_LOTAD,
.moves = {MOVE_GROWL, MOVE_WATER_GUN, MOVE_MEGA_DRAIN, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_IAPAPA_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [19] = {
+ [VERDANTURF_TENT_MON_NUMEL_2] = {
.species = SPECIES_NUMEL,
.moves = {MOVE_MAGNITUDE, MOVE_EMBER, MOVE_GROWL, MOVE_DEFENSE_CURL},
.itemTableId = BATTLE_FRONTIER_ITEM_CHARCOAL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_RELAXED
},
- [20] = {
+ [VERDANTURF_TENT_MON_LINOONE] = {
.species = SPECIES_LINOONE,
.moves = {MOVE_HEADBUTT, MOVE_TICKLE, MOVE_PROTECT, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_IMPISH
},
- [21] = {
+ [VERDANTURF_TENT_MON_SEVIPER] = {
.species = SPECIES_SEVIPER,
.moves = {MOVE_WRAP, MOVE_GLARE, MOVE_POISON_FANG, MOVE_SWAGGER},
.itemTableId = BATTLE_FRONTIER_ITEM_ASPEAR_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_LONELY
},
- [22] = {
+ [VERDANTURF_TENT_MON_SKARMORY] = {
.species = SPECIES_SKARMORY,
.moves = {MOVE_AIR_CUTTER, MOVE_SANDSTORM, MOVE_LEER, MOVE_AGILITY},
.itemTableId = BATTLE_FRONTIER_ITEM_MACHO_BRACE,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_BASHFUL
},
- [23] = {
+ [VERDANTURF_TENT_MON_SWELLOW] = {
.species = SPECIES_SWELLOW,
.moves = {MOVE_AGILITY, MOVE_WING_ATTACK, MOVE_DOUBLE_TEAM, MOVE_SUPERSONIC},
.itemTableId = BATTLE_FRONTIER_ITEM_SHARP_BEAK,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_NAUGHTY
},
- [24] = {
+ [VERDANTURF_TENT_MON_GOLDEEN_2] = {
.species = SPECIES_GOLDEEN,
.moves = {MOVE_PECK, MOVE_SUPERSONIC, MOVE_PSYBEAM, MOVE_RAIN_DANCE},
.itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_GENTLE
},
- [25] = {
+ [VERDANTURF_TENT_MON_ELECTRIKE] = {
.species = SPECIES_ELECTRIKE,
.moves = {MOVE_SHOCK_WAVE, MOVE_TACKLE, MOVE_CHARGE, MOVE_THUNDER_WAVE},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_MILD
},
- [26] = {
+ [VERDANTURF_TENT_MON_NUZLEAF] = {
.species = SPECIES_NUZLEAF,
.moves = {MOVE_SUNNY_DAY, MOVE_TORMENT, MOVE_FAKE_OUT, MOVE_THIEF},
.itemTableId = BATTLE_FRONTIER_ITEM_BLACK_GLASSES,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_BOLD
},
- [27] = {
+ [VERDANTURF_TENT_MON_ARON_2] = {
.species = SPECIES_ARON,
.moves = {MOVE_TAKE_DOWN, MOVE_METAL_CLAW, MOVE_IRON_DEFENSE, MOVE_ATTRACT},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [28] = {
+ [VERDANTURF_TENT_MON_MIGHTYENA] = {
.species = SPECIES_MIGHTYENA,
.moves = {MOVE_HOWL, MOVE_TAKE_DOWN, MOVE_ODOR_SLEUTH, MOVE_SAND_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [29] = {
+ [VERDANTURF_TENT_MON_SOLROCK] = {
.species = SPECIES_SOLROCK,
.moves = {MOVE_HARDEN, MOVE_FIRE_SPIN, MOVE_MIMIC, MOVE_PSYWAVE},
.itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [30] = {
+ [VERDANTURF_TENT_MON_GRAVELER] = {
.species = SPECIES_GRAVELER,
.moves = {MOVE_ROLLOUT, MOVE_ROCK_SMASH, MOVE_SANDSTORM, MOVE_BLOCK},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_IMPISH
},
- [31] = {
+ [VERDANTURF_TENT_MON_KADABRA] = {
.species = SPECIES_KADABRA,
.moves = {MOVE_ENCORE, MOVE_PSYBEAM, MOVE_DISABLE, MOVE_KINESIS},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP,
.nature = NATURE_QUIET
},
- [32] = {
+ [VERDANTURF_TENT_MON_VOLTORB] = {
.species = SPECIES_VOLTORB,
.moves = {MOVE_PROTECT, MOVE_SELF_DESTRUCT, MOVE_SPARK, MOVE_SCREECH},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_BASHFUL
},
- [33] = {
+ [VERDANTURF_TENT_MON_MAGNEMITE] = {
.species = SPECIES_MAGNEMITE,
.moves = {MOVE_METAL_SOUND, MOVE_SUPERSONIC, MOVE_THUNDER_WAVE, MOVE_SHOCK_WAVE},
.itemTableId = BATTLE_FRONTIER_ITEM_MAGNET,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_SERIOUS
},
- [34] = {
+ [VERDANTURF_TENT_MON_PELIPPER] = {
.species = SPECIES_PELIPPER,
.moves = {MOVE_WING_ATTACK, MOVE_MIST, MOVE_AGILITY, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_FIGY_BERRY,
.evSpread = 0,
.nature = NATURE_BRAVE
},
- [35] = {
+ [VERDANTURF_TENT_MON_LOUDRED] = {
.species = SPECIES_LOUDRED,
.moves = {MOVE_HOWL, MOVE_UPROAR, MOVE_REST, MOVE_SCREECH},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_CALM
},
- [36] = {
+ [VERDANTURF_TENT_MON_MARILL] = {
.species = SPECIES_MARILL,
.moves = {MOVE_ROLLOUT, MOVE_DEFENSE_CURL, MOVE_TAIL_WHIP, MOVE_BUBBLE_BEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_JOLLY
},
- [37] = {
+ [VERDANTURF_TENT_MON_TRAPINCH] = {
.species = SPECIES_TRAPINCH,
.moves = {MOVE_DIG, MOVE_ROCK_TOMB, MOVE_SANDSTORM, MOVE_FAINT_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_NONE,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_NAUGHTY
},
- [38] = {
+ [VERDANTURF_TENT_MON_TENTACOOL] = {
.species = SPECIES_TENTACOOL,
.moves = {MOVE_SCREECH, MOVE_CONFUSE_RAY, MOVE_WRAP, MOVE_ATTRACT},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [39] = {
+ [VERDANTURF_TENT_MON_VIGOROTH] = {
.species = SPECIES_VIGOROTH,
.moves = {MOVE_ENCORE, MOVE_SLACK_OFF, MOVE_YAWN, MOVE_SECRET_POWER},
.itemTableId = BATTLE_FRONTIER_ITEM_MENTAL_HERB,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIRKY
},
- [40] = {
+ [VERDANTURF_TENT_MON_WAILMER] = {
.species = SPECIES_WAILMER,
.moves = {MOVE_WATER_PULSE, MOVE_ROLLOUT, MOVE_CURSE, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB,
.evSpread = F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},
- [41] = {
+ [VERDANTURF_TENT_MON_ILLUMISE] = {
.species = SPECIES_ILLUMISE,
.moves = {MOVE_TACKLE, MOVE_SWEET_SCENT, MOVE_WISH, MOVE_ENCORE},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [42] = {
+ [VERDANTURF_TENT_MON_MACHOKE] = {
.species = SPECIES_MACHOKE,
.moves = {MOVE_LEER, MOVE_KARATE_CHOP, MOVE_BULK_UP, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_CALM
},
- [43] = {
+ [VERDANTURF_TENT_MON_WHISMUR] = {
.species = SPECIES_WHISMUR,
.moves = {MOVE_SECRET_POWER, MOVE_SUPERSONIC, MOVE_STOMP, MOVE_ROAR},
.itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_QUIRKY
},
- [44] = {
+ [VERDANTURF_TENT_MON_CACNEA] = {
.species = SPECIES_CACNEA,
.moves = {MOVE_INGRAIN, MOVE_LEECH_SEED, MOVE_NEEDLE_ARM, MOVE_GROWTH},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
@@ -2126,876 +2126,876 @@ const struct FacilityMon gVerdanturfBattleTentMons[] =
// Fallarbor Battle Tent.
const u16 gFallarborBattleTentTrainerMons_Amber[] =
{
- 39,
- 40,
- 41,
- 42,
- 43,
- 44,
+ FALLARBOR_TENT_MON_SWALOT,
+ FALLARBOR_TENT_MON_SHROOMISH,
+ FALLARBOR_TENT_MON_KIRLIA,
+ FALLARBOR_TENT_MON_LOMBRE,
+ FALLARBOR_TENT_MON_NUZLEAF,
+ FALLARBOR_TENT_MON_CACNEA,
-1
};
const u16 gFallarborBattleTentTrainerMons_Javier[] =
{
- 6,
- 35,
- 36,
- 37,
- 38,
- 44,
+ FALLARBOR_TENT_MON_SOLROCK,
+ FALLARBOR_TENT_MON_TRAPINCH,
+ FALLARBOR_TENT_MON_BALTOY,
+ FALLARBOR_TENT_MON_GRAVELER,
+ FALLARBOR_TENT_MON_SANDSHREW,
+ FALLARBOR_TENT_MON_CACNEA,
-1
};
const u16 gFallarborBattleTentTrainerMons_Natalie[] =
{
- 5,
- 29,
- 30,
- 32,
- 34,
+ FALLARBOR_TENT_MON_MAGIKARP,
+ FALLARBOR_TENT_MON_PELIPPER,
+ FALLARBOR_TENT_MON_BARBOACH,
+ FALLARBOR_TENT_MON_MARILL,
+ FALLARBOR_TENT_MON_GOLDEEN_2,
-1
};
const u16 gFallarborBattleTentTrainerMons_Treve[] =
{
- 28,
- 29,
- 30,
- 32,
- 33,
+ FALLARBOR_TENT_MON_WINGULL,
+ FALLARBOR_TENT_MON_PELIPPER,
+ FALLARBOR_TENT_MON_BARBOACH,
+ FALLARBOR_TENT_MON_MARILL,
+ FALLARBOR_TENT_MON_GOLDEEN_1,
-1
};
const u16 gFallarborBattleTentTrainerMons_Arianna[] =
{
- 18,
- 23,
- 24,
- 27,
- 44,
+ FALLARBOR_TENT_MON_ELECTRIKE,
+ FALLARBOR_TENT_MON_LINOONE_2,
+ FALLARBOR_TENT_MON_MIGHTYENA,
+ FALLARBOR_TENT_MON_GOLBAT,
+ FALLARBOR_TENT_MON_CACNEA,
-1
};
const u16 gFallarborBattleTentTrainerMons_Jadyn[] =
{
- 0,
- 22,
- 24,
- 27,
- 32,
- 39,
+ FALLARBOR_TENT_MON_NUMEL,
+ FALLARBOR_TENT_MON_LOUDRED,
+ FALLARBOR_TENT_MON_MIGHTYENA,
+ FALLARBOR_TENT_MON_GOLBAT,
+ FALLARBOR_TENT_MON_MARILL,
+ FALLARBOR_TENT_MON_SWALOT,
-1
};
const u16 gFallarborBattleTentTrainerMons_Gerardo[] =
{
- 6,
- 18,
- 23,
- 24,
- 29,
+ FALLARBOR_TENT_MON_SOLROCK,
+ FALLARBOR_TENT_MON_ELECTRIKE,
+ FALLARBOR_TENT_MON_LINOONE_2,
+ FALLARBOR_TENT_MON_MIGHTYENA,
+ FALLARBOR_TENT_MON_PELIPPER,
-1
};
const u16 gFallarborBattleTentTrainerMons_Jonn[] =
{
- 16,
- 17,
- 21,
- 22,
- 37,
+ FALLARBOR_TENT_MON_ARON_1,
+ FALLARBOR_TENT_MON_ARON_2,
+ FALLARBOR_TENT_MON_WHISMUR,
+ FALLARBOR_TENT_MON_LOUDRED,
+ FALLARBOR_TENT_MON_GRAVELER,
-1
};
const u16 gFallarborBattleTentTrainerMons_Esteban[] =
{
- 5,
- 28,
- 30,
- 33,
- 42,
+ FALLARBOR_TENT_MON_MAGIKARP,
+ FALLARBOR_TENT_MON_WINGULL,
+ FALLARBOR_TENT_MON_BARBOACH,
+ FALLARBOR_TENT_MON_GOLDEEN_1,
+ FALLARBOR_TENT_MON_LOMBRE,
-1
};
const u16 gFallarborBattleTentTrainerMons_Jameson[] =
{
- 1,
- 2,
- 3,
- 5,
- 9,
+ FALLARBOR_TENT_MON_LINOONE_1,
+ FALLARBOR_TENT_MON_PLUSLE,
+ FALLARBOR_TENT_MON_POOCHYENA,
+ FALLARBOR_TENT_MON_MAGIKARP,
+ FALLARBOR_TENT_MON_NINCADA,
-1
};
const u16 gFallarborBattleTentTrainerMons_Alanzo[] =
{
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
+ FALLARBOR_TENT_MON_NINCADA,
+ FALLARBOR_TENT_MON_BEAUTIFLY,
+ FALLARBOR_TENT_MON_DUSTOX,
+ FALLARBOR_TENT_MON_ILLUMISE,
+ FALLARBOR_TENT_MON_VOLBEAT,
+ FALLARBOR_TENT_MON_NINJASK_1,
+ FALLARBOR_TENT_MON_NINJASK_2,
-1
};
const u16 gFallarborBattleTentTrainerMons_Howard[] =
{
- 18,
- 23,
- 31,
- 38,
- 43,
+ FALLARBOR_TENT_MON_ELECTRIKE,
+ FALLARBOR_TENT_MON_LINOONE_2,
+ FALLARBOR_TENT_MON_WAILMER,
+ FALLARBOR_TENT_MON_SANDSHREW,
+ FALLARBOR_TENT_MON_NUZLEAF,
-1
};
const u16 gFallarborBattleTentTrainerMons_Conrad[] =
{
- 18,
- 19,
- 20,
- 21,
- 22,
+ FALLARBOR_TENT_MON_ELECTRIKE,
+ FALLARBOR_TENT_MON_MAGNEMITE,
+ FALLARBOR_TENT_MON_VOLTORB,
+ FALLARBOR_TENT_MON_WHISMUR,
+ FALLARBOR_TENT_MON_LOUDRED,
-1
};
const u16 gFallarborBattleTentTrainerMons_Makenna[] =
{
- 4,
- 21,
- 25,
- 36,
- 40,
+ FALLARBOR_TENT_MON_KECLEON,
+ FALLARBOR_TENT_MON_WHISMUR,
+ FALLARBOR_TENT_MON_SWABLU,
+ FALLARBOR_TENT_MON_BALTOY,
+ FALLARBOR_TENT_MON_SHROOMISH,
-1
};
const u16 gFallarborBattleTentTrainerMons_Brayan[] =
{
- 0,
- 4,
- 6,
- 12,
- 19,
- 23,
- 28,
+ FALLARBOR_TENT_MON_NUMEL,
+ FALLARBOR_TENT_MON_KECLEON,
+ FALLARBOR_TENT_MON_SOLROCK,
+ FALLARBOR_TENT_MON_ILLUMISE,
+ FALLARBOR_TENT_MON_MAGNEMITE,
+ FALLARBOR_TENT_MON_LINOONE_2,
+ FALLARBOR_TENT_MON_WINGULL,
-1
};
const u16 gFallarborBattleTentTrainerMons_Mariana[] =
{
- 0,
- 4,
- 13,
- 19,
- 28,
- 30,
- 37,
+ FALLARBOR_TENT_MON_NUMEL,
+ FALLARBOR_TENT_MON_KECLEON,
+ FALLARBOR_TENT_MON_VOLBEAT,
+ FALLARBOR_TENT_MON_MAGNEMITE,
+ FALLARBOR_TENT_MON_WINGULL,
+ FALLARBOR_TENT_MON_BARBOACH,
+ FALLARBOR_TENT_MON_GRAVELER,
-1
};
const u16 gFallarborBattleTentTrainerMons_Sheldon[] =
{
- 2,
- 3,
- 21,
- 31,
- 39,
+ FALLARBOR_TENT_MON_PLUSLE,
+ FALLARBOR_TENT_MON_POOCHYENA,
+ FALLARBOR_TENT_MON_WHISMUR,
+ FALLARBOR_TENT_MON_WAILMER,
+ FALLARBOR_TENT_MON_SWALOT,
-1
};
const u16 gFallarborBattleTentTrainerMons_Gianna[] =
{
- 1,
- 2,
- 30,
- 32,
- 41,
+ FALLARBOR_TENT_MON_LINOONE_1,
+ FALLARBOR_TENT_MON_PLUSLE,
+ FALLARBOR_TENT_MON_BARBOACH,
+ FALLARBOR_TENT_MON_MARILL,
+ FALLARBOR_TENT_MON_KIRLIA,
-1
};
const u16 gFallarborBattleTentTrainerMons_Yahir[] =
{
- 4,
- 8,
- 15,
- 17,
- 22,
- 24,
+ FALLARBOR_TENT_MON_KECLEON,
+ FALLARBOR_TENT_MON_MACHOKE,
+ FALLARBOR_TENT_MON_NINJASK_2,
+ FALLARBOR_TENT_MON_ARON_2,
+ FALLARBOR_TENT_MON_LOUDRED,
+ FALLARBOR_TENT_MON_MIGHTYENA,
-1
};
const u16 gFallarborBattleTentTrainerMons_Britney[] =
{
- 4,
- 7,
- 14,
- 20,
- 23,
- 43,
+ FALLARBOR_TENT_MON_KECLEON,
+ FALLARBOR_TENT_MON_MAKUHITA,
+ FALLARBOR_TENT_MON_NINJASK_1,
+ FALLARBOR_TENT_MON_VOLTORB,
+ FALLARBOR_TENT_MON_LINOONE_2,
+ FALLARBOR_TENT_MON_NUZLEAF,
-1
};
const u16 gFallarborBattleTentTrainerMons_Hecter[] =
{
- 0,
- 1,
- 2,
- 5,
- 9,
- 35,
+ FALLARBOR_TENT_MON_NUMEL,
+ FALLARBOR_TENT_MON_LINOONE_1,
+ FALLARBOR_TENT_MON_PLUSLE,
+ FALLARBOR_TENT_MON_MAGIKARP,
+ FALLARBOR_TENT_MON_NINCADA,
+ FALLARBOR_TENT_MON_TRAPINCH,
-1
};
const u16 gFallarborBattleTentTrainerMons_Tannor[] =
{
- 5,
- 30,
- 31,
- 33,
- 34,
+ FALLARBOR_TENT_MON_MAGIKARP,
+ FALLARBOR_TENT_MON_BARBOACH,
+ FALLARBOR_TENT_MON_WAILMER,
+ FALLARBOR_TENT_MON_GOLDEEN_1,
+ FALLARBOR_TENT_MON_GOLDEEN_2,
-1
};
const u16 gFallarborBattleTentTrainerMons_Benji[] =
{
- 25,
- 26,
- 27,
- 28,
- 29,
+ FALLARBOR_TENT_MON_SWABLU,
+ FALLARBOR_TENT_MON_SKARMORY,
+ FALLARBOR_TENT_MON_GOLBAT,
+ FALLARBOR_TENT_MON_WINGULL,
+ FALLARBOR_TENT_MON_PELIPPER,
-1
};
const u16 gFallarborBattleTentTrainerMons_Rory[] =
{
- 9,
- 11,
- 14,
- 15,
- 27,
- 39,
+ FALLARBOR_TENT_MON_NINCADA,
+ FALLARBOR_TENT_MON_DUSTOX,
+ FALLARBOR_TENT_MON_NINJASK_1,
+ FALLARBOR_TENT_MON_NINJASK_2,
+ FALLARBOR_TENT_MON_GOLBAT,
+ FALLARBOR_TENT_MON_SWALOT,
-1
};
const u16 gFallarborBattleTentTrainerMons_Eleanor[] =
{
- 23,
- 28,
- 31,
- 36,
- 38,
- 42,
- 44,
+ FALLARBOR_TENT_MON_LINOONE_2,
+ FALLARBOR_TENT_MON_WINGULL,
+ FALLARBOR_TENT_MON_WAILMER,
+ FALLARBOR_TENT_MON_BALTOY,
+ FALLARBOR_TENT_MON_SANDSHREW,
+ FALLARBOR_TENT_MON_LOMBRE,
+ FALLARBOR_TENT_MON_CACNEA,
-1
};
const u16 gFallarborBattleTentTrainerMons_Evelyn[] =
{
- 29,
- 31,
- 32,
- 33,
- 34,
+ FALLARBOR_TENT_MON_PELIPPER,
+ FALLARBOR_TENT_MON_WAILMER,
+ FALLARBOR_TENT_MON_MARILL,
+ FALLARBOR_TENT_MON_GOLDEEN_1,
+ FALLARBOR_TENT_MON_GOLDEEN_2,
-1
};
const u16 gFallarborBattleTentTrainerMons_Arielle[] =
{
- 1,
- 3,
- 38,
- 39,
- 41,
+ FALLARBOR_TENT_MON_LINOONE_1,
+ FALLARBOR_TENT_MON_POOCHYENA,
+ FALLARBOR_TENT_MON_SANDSHREW,
+ FALLARBOR_TENT_MON_SWALOT,
+ FALLARBOR_TENT_MON_KIRLIA,
-1
};
const u16 gFallarborBattleTentTrainerMons_Connar[] =
{
- 7,
- 8,
- 28,
- 29,
- 31,
- 32,
+ FALLARBOR_TENT_MON_MAKUHITA,
+ FALLARBOR_TENT_MON_MACHOKE,
+ FALLARBOR_TENT_MON_WINGULL,
+ FALLARBOR_TENT_MON_PELIPPER,
+ FALLARBOR_TENT_MON_WAILMER,
+ FALLARBOR_TENT_MON_MARILL,
-1
};
const u16 gFallarborBattleTentTrainerMons_Maurice[] =
{
- 4,
- 5,
- 6,
- 12,
- 13,
+ FALLARBOR_TENT_MON_KECLEON,
+ FALLARBOR_TENT_MON_MAGIKARP,
+ FALLARBOR_TENT_MON_SOLROCK,
+ FALLARBOR_TENT_MON_ILLUMISE,
+ FALLARBOR_TENT_MON_VOLBEAT,
-1
};
const u16 gFallarborBattleTentTrainerMons_Kianna[] =
{
- 22,
- 24,
- 26,
- 27,
- 34,
- 37,
+ FALLARBOR_TENT_MON_LOUDRED,
+ FALLARBOR_TENT_MON_MIGHTYENA,
+ FALLARBOR_TENT_MON_SKARMORY,
+ FALLARBOR_TENT_MON_GOLBAT,
+ FALLARBOR_TENT_MON_GOLDEEN_2,
+ FALLARBOR_TENT_MON_GRAVELER,
-1
};
-const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] =
+const struct BattleFrontierTrainer gFallarborBattleTentTrainers[NUM_BATTLE_TENT_TRAINERS] =
{
- [0] = {
+ [FALLARBOR_TENT_TRAINER_AMBER] = {
.facilityClass = FACILITY_CLASS_AROMA_LADY,
.trainerName = _("AMBER"),
.speechBefore = {EC_WORD_I, EC_WORD_HAVE, EC_WORD_TO, EC_WORD_DIET, EC_WORD_EVERY, EC_WORD_DAY},
.speechWin = {EC_WORD_A, EC_MOVE(NIGHTMARE), EC_WORD_OF, EC_WORD_SWEETS, EC_WORD_SHOCKED, EC_WORD_ME},
.speechLose = {EC_WORD_IF, EC_WORD_YOU, EC_WORD_GIVE_UP, EC_WORD_YOU, EC_WORD_WILL, EC_WORD_LOSE},
- .monSets = gFallarborBattleTentTrainerMons_Amber
+ .monSet = gFallarborBattleTentTrainerMons_Amber
},
- [1] = {
+ [FALLARBOR_TENT_TRAINER_JAVIER] = {
.facilityClass = FACILITY_CLASS_RUIN_MANIAC,
.trainerName = _("JAVIER"),
.speechBefore = {EC_WORD_I, EC_WORD_NEVER, EC_WORD_EVER, EC_WORD_HAVE, EC_WORD_ENOUGH, EC_WORD_MONEY},
.speechWin = {EC_WORD_I, EC_WORD_WON, EC_WORD_BUT, EC_WORD_I, EC_WORD_NEED, EC_WORD_MONEY},
.speechLose = {EC_WORD_I, EC_WORD_NEED, EC_WORD_MONEY, EC_WORD_FOR, EC_WORD_A, EC_WORD_BIKE},
- .monSets = gFallarborBattleTentTrainerMons_Javier
+ .monSet = gFallarborBattleTentTrainerMons_Javier
},
- [2] = {
+ [FALLARBOR_TENT_TRAINER_NATALIA] = {
.facilityClass = FACILITY_CLASS_TUBER_F,
.trainerName = _("NATALIE"),
.speechBefore = {EC_WORD_THE, EC_WORD_WAY, EC_WORD_I, EC_WORD_BATTLE, EC_WORD_IS, EC_WORD_WEIRD},
.speechWin = {EC_WORD_YOU_RE, EC_WORD_MUCH, EC_WORD_TOO_WEAK, EC_WORD_FOR, EC_WORD_THIS, EC_WORD_PLACE},
.speechLose = {EC_WORD_GIVE_ME, EC_WORD_AN, EC_WORD_EASY, EC_WORD_MATCH, EC_WORD_NEXT, EC_WORD_TIME},
- .monSets = gFallarborBattleTentTrainerMons_Natalie
+ .monSet = gFallarborBattleTentTrainerMons_Natalie
},
- [3] = {
+ [FALLARBOR_TENT_TRAINER_TREVE] = {
.facilityClass = FACILITY_CLASS_TUBER_M,
.trainerName = _("TREVE"),
.speechBefore = {EC_WORD_LOOK, EC_WORD_AT, EC_WORD_MY, EC_MOVE2(METRONOME), EC_WORD_AND, EC_WORD_SLEEP},
.speechWin = {EC_WORD_YEAH, EC_WORD_EXCL, EC_MOVE(HYPNOSIS), EC_WORD_IS, EC_WORD_TOTALLY, EC_WORD_GREAT},
.speechLose = {EC_WORD_MY, EC_MOVE(HYPNOSIS), EC_WORD_DIDN_T, EC_WORD_WORK, EC_WORD_ELLIPSIS, -1},
- .monSets = gFallarborBattleTentTrainerMons_Treve
+ .monSet = gFallarborBattleTentTrainerMons_Treve
},
- [4] = {
+ [FALLARBOR_TENT_TRAINER_ARIANNA] = {
.facilityClass = FACILITY_CLASS_LADY,
.trainerName = _("ARIANNA"),
.speechBefore = {EC_WORD_IF_I_WIN, EC_WORD_GIVE_ME, EC_WORD_POKEMON, EC_WORD_FOR, EC_WORD_MY, EC_WORD_COLLECTION},
.speechWin = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_TOO_WEAK, EC_WORD_TO, EC_WORD_COLLECT},
.speechLose = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_SOMETHING, EC_WORD_ELSE, EC_WORD_ELLIPSIS},
- .monSets = gFallarborBattleTentTrainerMons_Arianna
+ .monSet = gFallarborBattleTentTrainerMons_Arianna
},
- [5] = {
+ [FALLARBOR_TENT_TRAINER_JADYN] = {
.facilityClass = FACILITY_CLASS_BEAUTY,
.trainerName = _("JADYN"),
.speechBefore = {EC_WORD_MY, EC_WORD_NAME, EC_WORD_IS, EC_WORD_REALLY, EC_WORD_A, EC_WORD_MYSTERY},
.speechWin = {EC_WORD_MY, EC_WORD_NAME, EC_WORD_GOES, EC_WORD_ON, EC_WORD_A, EC_WORD_MYSTERY},
.speechLose = {EC_WORD_MY, EC_WORD_NAME, EC_WORD_QUES, EC_WORD_I_AM, EC_WORD_YOUR, EC_WORD_MOTHER},
- .monSets = gFallarborBattleTentTrainerMons_Jadyn
+ .monSet = gFallarborBattleTentTrainerMons_Jadyn
},
- [6] = {
+ [FALLARBOR_TENT_TRAINER_GERARDO] = {
.facilityClass = FACILITY_CLASS_RICH_BOY,
.trainerName = _("GERARDO"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_THE, EC_WORD_BEST, EC_WORD_HERO, EC_WORD_EVER, EC_WORD_EXCL},
.speechWin = {EC_WORD_SEE, EC_WORD_WHAT, EC_WORD_I, EC_WORD_MEAN, EC_WORD_QUES, -1},
.speechLose = {EC_WORD_HUH_QUES, EC_WORD_YOU, EC_WORD_WERE, EC_WORD_RIGHT, EC_WORD_QUES, -1},
- .monSets = gFallarborBattleTentTrainerMons_Gerardo
+ .monSet = gFallarborBattleTentTrainerMons_Gerardo
},
- [7] = {
+ [FALLARBOR_TENT_TRAINER_JONN] = {
.facilityClass = FACILITY_CLASS_POKEMANIAC,
.trainerName = _("JONN"),
.speechBefore = {EC_WORD_THE, EC_WORD_WORLD, EC_MOVE2(SUPERPOWER), EC_MOVE2(STOMP), EC_WORD_CONTEST, EC_WORD_EXCL_EXCL},
.speechWin = {EC_WORD_I_AM, EC_WORD_NO_1, EC_WORD_EXCL_EXCL, EC_WORD_HEAR, EC_WORD_ME, EC_MOVE2(ROAR)},
.speechLose = {EC_WORD_I, EC_WORD_GIVE_UP, EC_WORD_EXCL, EC_WORD_YOU_RE, EC_WORD_NO_1, EC_WORD_EXCL},
- .monSets = gFallarborBattleTentTrainerMons_Jonn
+ .monSet = gFallarborBattleTentTrainerMons_Jonn
},
- [8] = {
+ [FALLARBOR_TENT_TRAINER_ESTEBAN] = {
.facilityClass = FACILITY_CLASS_SWIMMER_M,
.trainerName = _("ESTEBAN"),
.speechBefore = {EC_WORD_YOU_RE, EC_WORD_A, EC_WORD_GOOD, EC_WORD_TRAINER, EC_WORD_QUES, EC_WORD_UNBELIEVABLE},
.speechWin = {EC_WORD_YOU_RE, EC_WORD_SOME, EC_WORD_PUSHOVER, EC_WORD_OF, EC_WORD_A, EC_WORD_TRAINER},
.speechLose = {EC_WORD_YOU_RE, EC_WORD_MUCH, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_FOR, EC_WORD_ME},
- .monSets = gFallarborBattleTentTrainerMons_Esteban
+ .monSet = gFallarborBattleTentTrainerMons_Esteban
},
- [9] = {
+ [FALLARBOR_TENT_TRAINER_JAMESON] = {
.facilityClass = FACILITY_CLASS_CAMPER,
.trainerName = _("JAMESON"),
.speechBefore = {EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_SILKY, EC_WORD_SMOOTH, EC_WORD_EXCL},
.speechWin = {EC_WORD_MY, EC_WORD_SILKY, EC_WORD_SMOOTH, EC_WORD_POKEMON, EC_WORD_RULE, EC_WORD_EXCL},
.speechLose = {EC_WORD_MY, EC_WORD_POKEMON, EC_MOVE2(STRUGGLE), EC_WORD_IN, EC_WORD_YOUR, EC_WORD_STICKY_HOLD},
- .monSets = gFallarborBattleTentTrainerMons_Jameson
+ .monSet = gFallarborBattleTentTrainerMons_Jameson
},
- [10] = {
+ [FALLARBOR_TENT_TRAINER_ALANZO] = {
.facilityClass = FACILITY_CLASS_BUG_MANIAC,
.trainerName = _("ALANZO"),
.speechBefore = {EC_MOVE2(FORESIGHT), EC_WORD_IS, EC_WORD_A, EC_WORD_POWER, EC_WORD_I, EC_WORD_HAVE},
.speechWin = {EC_WORD_YOU_RE, EC_WORD_OBLIVIOUS, EC_WORD_ABOUT, EC_MOVE2(FORESIGHT), EC_WORD_EXCL, -1},
.speechLose = {EC_WORD_MY, EC_MOVE2(FORESIGHT), EC_WORD_IS, EC_WORD_ALWAYS, EC_WORD_RIGHT, EC_WORD_EXCL},
- .monSets = gFallarborBattleTentTrainerMons_Alanzo
+ .monSet = gFallarborBattleTentTrainerMons_Alanzo
},
- [11] = {
+ [FALLARBOR_TENT_TRAINER_HOWARD] = {
.facilityClass = FACILITY_CLASS_GENTLEMAN,
.trainerName = _("HOWARD"),
.speechBefore = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_CAN_T, EC_WORD_BEAT, EC_WORD_ME, -1},
.speechWin = {EC_WORD_YOU, EC_WORD_COULDN_T, EC_WORD_WIN, EC_WORD_COULD, EC_WORD_YOU, EC_WORD_QUES},
.speechLose = {EC_WORD_YOU, EC_WORD_WOULD, EC_WORD_GO, EC_WORD_ALL, EC_WORD_OUT, EC_WORD_ELLIPSIS},
- .monSets = gFallarborBattleTentTrainerMons_Howard
+ .monSet = gFallarborBattleTentTrainerMons_Howard
},
- [12] = {
+ [FALLARBOR_TENT_TRAINER_CONRAD] = {
.facilityClass = FACILITY_CLASS_GUITARIST,
.trainerName = _("CONRAD"),
.speechBefore = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_PRETTY, EC_WORD_WILD, EC_WORD_EXCL},
.speechWin = {EC_WORD_WHOAH, EC_WORD_EXCL_EXCL, -1, EC_WORD_LET_S, EC_WORD_DANCE, EC_WORD_EXCL},
.speechLose = {EC_WORD_MY, EC_WORD_MUSIC, EC_WORD_WILL, EC_WORD_PLAY, EC_WORD_ON, EC_WORD_ELLIPSIS},
- .monSets = gFallarborBattleTentTrainerMons_Conrad
+ .monSet = gFallarborBattleTentTrainerMons_Conrad
},
- [13] = {
+ [FALLARBOR_TENT_TRAINER_MAKENNA] = {
.facilityClass = FACILITY_CLASS_SCHOOL_KID_F,
.trainerName = _("MAKENNA"),
.speechBefore = {EC_WORD_SHOW, EC_WORD_ME, EC_WORD_THAT, EC_WORD_YOU, EC_WORD_MEAN, EC_WORD_IT},
.speechWin = {EC_WORD_THAT_S, EC_WORD_WHY, EC_WORD_I, EC_WORD_STUDY, EC_WORD_EVERY, EC_WORD_DAY},
.speechLose = {EC_WORD_AWW, EC_WORD_I, EC_WORD_STUDY, EC_WORD_EVERY, EC_WORD_DAY, EC_WORD_TOO},
- .monSets = gFallarborBattleTentTrainerMons_Makenna
+ .monSet = gFallarborBattleTentTrainerMons_Makenna
},
- [14] = {
+ [FALLARBOR_TENT_TRAINER_BRAYAN] = {
.facilityClass = FACILITY_CLASS_COOLTRAINER_M,
.trainerName = _("BRAYAN"),
.speechBefore = {EC_WORD_CAN, EC_WORD_YOU, EC_WORD_SEE, EC_WORD_MY, EC_WORD_POWER, EC_WORD_QUES},
.speechWin = {EC_WORD_HOW, EC_WORD_BORING, EC_WORD_ELLIPSIS, EC_WORD_THIS, EC_WORD_IS, EC_WORD_GOOD_BYE},
.speechLose = {EC_WORD_AM, EC_WORD_I, EC_WORD_THE, EC_WORD_WEAK, EC_WORD_TRAINER, EC_WORD_QUES},
- .monSets = gFallarborBattleTentTrainerMons_Brayan
+ .monSet = gFallarborBattleTentTrainerMons_Brayan
},
- [15] = {
+ [FALLARBOR_TENT_TRAINER_MARIANA] = {
.facilityClass = FACILITY_CLASS_COOLTRAINER_F,
.trainerName = _("MARIANA"),
.speechBefore = {EC_WORD_A, EC_WORD_LIE, EC_WORD_CAN, EC_WORD_BE, EC_WORD_KIND, EC_WORD_ELLIPSIS},
.speechWin = {EC_WORD_THIS, EC_WORD_IS, EC_WORD_LIKE, EC_WORD_THE, EC_WORD_SUNDAY, EC_WORD_COMICS},
.speechLose = {EC_WORD_THIS, EC_WORD_IS, EC_WORD_LIKE, EC_WORD_FROM, EC_WORD_A, EC_WORD_MOVIE},
- .monSets = gFallarborBattleTentTrainerMons_Mariana
+ .monSet = gFallarborBattleTentTrainerMons_Mariana
},
- [16] = {
+ [FALLARBOR_TENT_TRAINER_SHELDON] = {
.facilityClass = FACILITY_CLASS_POKEFAN_M,
.trainerName = _("SHELDON"),
.speechBefore = {EC_WORD_A, EC_WORD_POKEMON, EC_WORD_TEACHER, EC_WORD_GETS, EC_WORD_NO, EC_MOVE2(REST)},
.speechWin = {EC_WORD_MY, EC_WORD_SMARTNESS, EC_WORD_GETS, EC_WORD_ME, EC_WORD_EASY, EC_WORD_WINS},
.speechLose = {EC_WORD_I, EC_WORD_HAVE, EC_WORD_TO, EC_WORD_GO, EC_WORD_WORK, EC_WORD_BYE_BYE},
- .monSets = gFallarborBattleTentTrainerMons_Sheldon
+ .monSet = gFallarborBattleTentTrainerMons_Sheldon
},
- [17] = {
+ [FALLARBOR_TENT_TRAINER_GIANNA] = {
.facilityClass = FACILITY_CLASS_POKEFAN_F,
.trainerName = _("GIANNA"),
.speechBefore = {EC_WORD_AHAHA, EC_WORD_YES, EC_WORD_EXCL, EC_WORD_LOVEY_DOVEY, EC_WORD_POKEMON, EC_WORD_WORLD},
.speechWin = {EC_WORD_MY, EC_WORD_SHINE, EC_WORD_IS, EC_WORD_MAKING, EC_WORD_THINGS, EC_WORD_BETTER},
.speechLose = {EC_WORD_DO, EC_WORD_YOU, EC_WORD_DISLIKE, EC_WORD_POKEMON, EC_WORD_QUES, -1},
- .monSets = gFallarborBattleTentTrainerMons_Gianna
+ .monSet = gFallarborBattleTentTrainerMons_Gianna
},
- [18] = {
+ [FALLARBOR_TENT_TRAINER_YAHIR] = {
.facilityClass = FACILITY_CLASS_EXPERT_M,
.trainerName = _("YAHIR"),
.speechBefore = {EC_WORD_YOU, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_COME_ON, EC_WORD_EXCL},
.speechWin = {EC_WORD_YOU, EC_WORD_NEED, EC_WORD_TO, EC_WORD_TRAIN, EC_WORD_A_LOT, EC_WORD_MORE},
.speechLose = {EC_WORD_NOT, EC_WORD_ENOUGH, EC_WORD_ELLIPSIS, EC_WORD_JUST, EC_WORD_NOT, EC_WORD_ENOUGH},
- .monSets = gFallarborBattleTentTrainerMons_Yahir
+ .monSet = gFallarborBattleTentTrainerMons_Yahir
},
- [19] = {
+ [FALLARBOR_TENT_TRAINER_BRITNEY] = {
.facilityClass = FACILITY_CLASS_EXPERT_F,
.trainerName = _("BRITNEY"),
.speechBefore = {EC_WORD_IT, EC_WORD_SEEMS, EC_WORD_THAT, EC_WORD_YOU_RE, EC_WORD_QUITE, EC_WORD_GOOD},
.speechWin = {EC_WORD_YOU_RE, EC_WORD_A, EC_WORD_LUKEWARM, EC_WORD_TALENT, EC_WORD_AT, EC_WORD_BEST},
.speechLose = {EC_WORD_YOU_RE, EC_WORD_A, EC_WORD_COOL, EC_WORD_HERO, EC_WORD_AT, EC_WORD_THIS},
- .monSets = gFallarborBattleTentTrainerMons_Britney
+ .monSet = gFallarborBattleTentTrainerMons_Britney
},
- [20] = {
+ [FALLARBOR_TENT_TRAINER_HECTER] = {
.facilityClass = FACILITY_CLASS_YOUNGSTER,
.trainerName = _("HECTER"),
.speechBefore = {EC_WORD_MY, EC_MOVE2(HIDDEN_POWER), EC_WORD_IS, EC_WORD_EXCITING, EC_WORD_ME, EC_WORD_EXCL},
.speechWin = {EC_WORD_YEEHAW_EXCL, EC_WORD_LET_S, EC_WORD_HAVE, EC_WORD_A, EC_MOVE2(HIDDEN_POWER), EC_WORD_PARTY},
.speechLose = {EC_WORD_WAAAH, EC_WORD_EXCL, EC_WORD_DON_T, EC_WORD_YOU, EC_MOVE2(MIMIC), EC_WORD_ME},
- .monSets = gFallarborBattleTentTrainerMons_Hecter
+ .monSet = gFallarborBattleTentTrainerMons_Hecter
},
- [21] = {
+ [FALLARBOR_TENT_TRAINER_TANNOR] = {
.facilityClass = FACILITY_CLASS_FISHERMAN,
.trainerName = _("TANNOR"),
.speechBefore = {EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_GOT, EC_WORD_TO, EC_WORD_BE, EC_WORD_JOKING},
.speechWin = {EC_WORD_YOU_RE, EC_WORD_THE, EC_WORD_BEST, EC_WORD_AT, EC_WORD_BEING, EC_WORD_FUNNY},
.speechLose = {EC_WORD_YOU, EC_WORD_WEREN_T, EC_WORD_BEING, EC_WORD_FUNNY, EC_WORD_AT, EC_WORD_ALL},
- .monSets = gFallarborBattleTentTrainerMons_Tannor
+ .monSet = gFallarborBattleTentTrainerMons_Tannor
},
- [22] = {
+ [FALLARBOR_TENT_TRAINER_BENJI] = {
.facilityClass = FACILITY_CLASS_BIRD_KEEPER,
.trainerName = _("BENJI"),
.speechBefore = {EC_WORD_YOU, EC_WORD_DON_T, EC_WORD_THINK, EC_WORD_VERY, EC_WORD_FAST, EC_WORD_HUH_QUES},
.speechWin = {EC_WORD_SORRY, EC_WORD_EXCL, EC_WORD_I, EC_WORD_DIDN_T, EC_WORD_MEAN, EC_WORD_YOU},
.speechLose = {EC_WORD_YOU, EC_WORD_LEFT, EC_WORD_ME, EC_WORD_FEELING, EC_WORD_SAD, EC_WORD_ELLIPSIS},
- .monSets = gFallarborBattleTentTrainerMons_Benji
+ .monSet = gFallarborBattleTentTrainerMons_Benji
},
- [23] = {
+ [FALLARBOR_TENT_TRAINER_RORY] = {
.facilityClass = FACILITY_CLASS_NINJA_BOY,
.trainerName = _("RORY"),
.speechBefore = {EC_WORD_DON_T, EC_WORD_CAUSE, EC_WORD_AN, EC_MOVE(UPROAR), EC_WORD_YOU, EC_WORD_EXCL},
.speechWin = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_NEED, EC_WORD_AN, EC_MOVE(UPROAR), EC_WORD_EXCL},
.speechLose = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_CAUSE, EC_WORD_AN, EC_MOVE(UPROAR)},
- .monSets = gFallarborBattleTentTrainerMons_Rory
+ .monSet = gFallarborBattleTentTrainerMons_Rory
},
- [24] = {
+ [FALLARBOR_TENT_TRAINER_ELEANOR] = {
.facilityClass = FACILITY_CLASS_PARASOL_LADY,
.trainerName = _("ELEANOR"),
.speechBefore = {EC_WORD_I, EC_WORD_REALLY, EC_WORD_WANT, EC_WORD_TO, EC_WORD_PARTY, -1},
.speechWin = {EC_WORD_A, EC_WORD_TRENDY, EC_WORD_PARTY, EC_WORD_WOULD, EC_WORD_BE, EC_WORD_REFRESHING},
.speechLose = {EC_WORD_DON_T, EC_WORD_YOU, EC_WORD_LIKE, EC_WORD_TO, EC_WORD_PARTY, EC_WORD_QUES},
- .monSets = gFallarborBattleTentTrainerMons_Eleanor
+ .monSet = gFallarborBattleTentTrainerMons_Eleanor
},
- [25] = {
+ [FALLARBOR_TENT_TRAINER_EVELYN] = {
.facilityClass = FACILITY_CLASS_SWIMMER_F,
.trainerName = _("EVELYN"),
.speechBefore = {EC_WORD_MY, EC_WORD_PC, EC_WORD_IS, EC_WORD_MY, EC_WORD_SECRET_BASE, EC_WORD_EXCL},
.speechWin = {EC_WORD_IT_S, EC_WORD_ALL, EC_WORD_SECRET, EC_WORD_ON, EC_WORD_MY, EC_WORD_PC},
.speechLose = {EC_WORD_NO, EC_WORD_EXCL, -1, EC_WORD_I, EC_WORD_REJECT, EC_WORD_THIS},
- .monSets = gFallarborBattleTentTrainerMons_Evelyn
+ .monSet = gFallarborBattleTentTrainerMons_Evelyn
},
- [26] = {
+ [FALLARBOR_TENT_TRAINER_ARIELLE] = {
.facilityClass = FACILITY_CLASS_PICNICKER,
.trainerName = _("ARIELLE"),
.speechBefore = {EC_WORD_IT_S, EC_WORD_NOT_VERY, EC_WORD_PRETTY, EC_WORD_BUT, EC_WORD_I, EC_WORD_TRY},
.speechWin = {EC_WORD_WE_RE, EC_WORD_NOT_VERY, EC_WORD_PRETTY, EC_WORD_BUT, EC_WORD_WE_RE, EC_WORD_GREAT},
.speechLose = {EC_WORD_THAT_WAS, EC_WORD_PRETTY, EC_WORD_MEAN, EC_WORD_OF, EC_WORD_YOU, EC_WORD_EXCL},
- .monSets = gFallarborBattleTentTrainerMons_Arielle
+ .monSet = gFallarborBattleTentTrainerMons_Arielle
},
- [27] = {
+ [FALLARBOR_TENT_TRAINER_CONNAR] = {
.facilityClass = FACILITY_CLASS_SAILOR,
.trainerName = _("CONNAR"),
.speechBefore = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_STRONG, EC_WORD_ENOUGH, EC_WORD_FOR, EC_WORD_THIS},
.speechWin = {EC_WORD_DO, EC_WORD_YOU, EC_WORD_THINK, EC_WORD_YOU_RE, EC_WORD_OK_QUES, -1},
.speechLose = {EC_WORD_GOOD_BYE, EC_WORD_AND, EC_WORD_THANK_YOU, -1, -1, -1},
- .monSets = gFallarborBattleTentTrainerMons_Connar
+ .monSet = gFallarborBattleTentTrainerMons_Connar
},
- [28] = {
+ [FALLARBOR_TENT_TRAINER_MAURICE] = {
.facilityClass = FACILITY_CLASS_COLLECTOR,
.trainerName = _("MAURICE"),
.speechBefore = {EC_WORD_THERE, EC_WORD_IS, EC_WORD_NO, EC_WORD_RADIO, EC_WORD_OR, EC_WORD_TELEVISION},
.speechWin = {EC_WORD_BUT, EC_WORD_THERE, EC_WORD_IS, EC_WORD_A_LOT, EC_WORD_OF, EC_WORD_POKEMON},
.speechLose = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_ENJOY, EC_WORD_MYSELF, EC_WORD_WITHOUT, EC_WORD_MONEY},
- .monSets = gFallarborBattleTentTrainerMons_Maurice
+ .monSet = gFallarborBattleTentTrainerMons_Maurice
},
- [29] = {
+ [FALLARBOR_TENT_TRAINER_KIANNA] = {
.facilityClass = FACILITY_CLASS_LASS,
.trainerName = _("KIANNA"),
.speechBefore = {EC_WORD_I, EC_WORD_WANT, EC_WORD_TO, EC_WORD_GO, EC_WORD_DEPT_STORE, EC_WORD_SHOPPING},
.speechWin = {EC_WORD_I, EC_WORD_DISLIKE, EC_WORD_SHOPPING, EC_WORD_ALONE, -1, -1},
.speechLose = {EC_WORD_WANT, EC_WORD_TO, EC_WORD_GO, EC_WORD_SHOPPING, EC_WORD_TOGETHER, EC_WORD_QUES},
- .monSets = gFallarborBattleTentTrainerMons_Kianna
+ .monSet = gFallarborBattleTentTrainerMons_Kianna
}
};
-const struct FacilityMon gFallarborBattleTentMons[] =
+const struct FacilityMon gFallarborBattleTentMons[NUM_FALLARBOR_TENT_MONS] =
{
- [0] = {
+ [FALLARBOR_TENT_MON_NUMEL] = {
.species = SPECIES_NUMEL,
.moves = {MOVE_GROWL, MOVE_FLAMETHROWER, MOVE_TACKLE, MOVE_SUNNY_DAY},
.itemTableId = BATTLE_FRONTIER_ITEM_CHARCOAL,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIET
},
- [1] = {
+ [FALLARBOR_TENT_MON_LINOONE_1] = {
.species = SPECIES_LINOONE,
.moves = {MOVE_ODOR_SLEUTH, MOVE_COVET, MOVE_ROCK_SMASH, MOVE_CHARM},
.itemTableId = BATTLE_FRONTIER_ITEM_SILK_SCARF,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE,
.nature = NATURE_SASSY
},
- [2] = {
+ [FALLARBOR_TENT_MON_PLUSLE] = {
.species = SPECIES_PLUSLE,
.moves = {MOVE_SPARK, MOVE_GROWL, MOVE_QUICK_ATTACK, MOVE_FAKE_TEARS},
.itemTableId = BATTLE_FRONTIER_ITEM_MENTAL_HERB,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [3] = {
+ [FALLARBOR_TENT_MON_POOCHYENA] = {
.species = SPECIES_POOCHYENA,
.moves = {MOVE_YAWN, MOVE_ODOR_SLEUTH, MOVE_HOWL, MOVE_FRUSTRATION},
.itemTableId = BATTLE_FRONTIER_ITEM_LEPPA_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_NAUGHTY
},
- [4] = {
+ [FALLARBOR_TENT_MON_KECLEON] = {
.species = SPECIES_KECLEON,
.moves = {MOVE_LICK, MOVE_SLASH, MOVE_FAINT_ATTACK, MOVE_PSYBEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_WIKI_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_MODEST
},
- [5] = {
+ [FALLARBOR_TENT_MON_MAGIKARP] = {
.species = SPECIES_MAGIKARP,
.moves = {MOVE_SPLASH, MOVE_TACKLE, MOVE_FLAIL, MOVE_NONE},
.itemTableId = BATTLE_FRONTIER_ITEM_DRAGON_SCALE,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [6] = {
+ [FALLARBOR_TENT_MON_SOLROCK] = {
.species = SPECIES_SOLROCK,
.moves = {MOVE_ROCK_THROW, MOVE_FLASH, MOVE_SANDSTORM, MOVE_PSYWAVE},
.itemTableId = BATTLE_FRONTIER_ITEM_HARD_STONE,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_SASSY
},
- [7] = {
+ [FALLARBOR_TENT_MON_MAKUHITA] = {
.species = SPECIES_MAKUHITA,
.moves = {MOVE_DETECT, MOVE_ARM_THRUST, MOVE_FAKE_OUT, MOVE_SMELLING_SALT},
.itemTableId = BATTLE_FRONTIER_ITEM_BLACK_BELT,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [8] = {
+ [FALLARBOR_TENT_MON_MACHOKE] = {
.species = SPECIES_MACHOKE,
.moves = {MOVE_COUNTER, MOVE_REVENGE, MOVE_BULK_UP, MOVE_FOCUS_ENERGY},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_NAIVE
},
- [9] = {
+ [FALLARBOR_TENT_MON_NINCADA] = {
.species = SPECIES_NINCADA,
.moves = {MOVE_FURY_SWIPES, MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_DIG},
.itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_SERIOUS
},
- [10] = {
+ [FALLARBOR_TENT_MON_BEAUTIFLY] = {
.species = SPECIES_BEAUTIFLY,
.moves = {MOVE_FLASH, MOVE_MORNING_SUN, MOVE_HARDEN, MOVE_MEGA_DRAIN},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIRKY
},
- [11] = {
+ [FALLARBOR_TENT_MON_DUSTOX] = {
.species = SPECIES_DUSTOX,
.moves = {MOVE_MOONLIGHT, MOVE_HARDEN, MOVE_POISON_STING, MOVE_PSYBEAM},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE,
.nature = NATURE_DOCILE
},
- [12] = {
+ [FALLARBOR_TENT_MON_ILLUMISE] = {
.species = SPECIES_ILLUMISE,
.moves = {MOVE_METRONOME, MOVE_FLATTER, MOVE_WISH, MOVE_ATTRACT},
.itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY,
.evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [13] = {
+ [FALLARBOR_TENT_MON_VOLBEAT] = {
.species = SPECIES_VOLBEAT,
.moves = {MOVE_TACKLE, MOVE_MOONLIGHT, MOVE_SIGNAL_BEAM, MOVE_TAIL_GLOW},
.itemTableId = BATTLE_FRONTIER_ITEM_LEPPA_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [14] = {
+ [FALLARBOR_TENT_MON_NINJASK_1] = {
.species = SPECIES_NINJASK,
.moves = {MOVE_DOUBLE_TEAM, MOVE_PROTECT, MOVE_DIG, MOVE_SAND_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_TIMID
},
- [15] = {
+ [FALLARBOR_TENT_MON_NINJASK_2] = {
.species = SPECIES_NINJASK,
.moves = {MOVE_SWORDS_DANCE, MOVE_CUT, MOVE_FURY_CUTTER, MOVE_LEECH_LIFE},
.itemTableId = BATTLE_FRONTIER_ITEM_SILVER_POWDER,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [16] = {
+ [FALLARBOR_TENT_MON_ARON_1] = {
.species = SPECIES_ARON,
.moves = {MOVE_METAL_CLAW, MOVE_PROTECT, MOVE_SHOCK_WAVE, MOVE_METAL_SOUND},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_LONELY
},
- [17] = {
+ [FALLARBOR_TENT_MON_ARON_2] = {
.species = SPECIES_ARON,
.moves = {MOVE_SECRET_POWER, MOVE_METAL_CLAW, MOVE_IRON_DEFENSE, MOVE_MUD_SLAP},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_GENTLE
},
- [18] = {
+ [FALLARBOR_TENT_MON_ELECTRIKE] = {
.species = SPECIES_ELECTRIKE,
.moves = {MOVE_CRUNCH, MOVE_THUNDER_WAVE, MOVE_HOWL, MOVE_QUICK_ATTACK},
.itemTableId = BATTLE_FRONTIER_ITEM_SEA_INCENSE,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_HASTY
},
- [19] = {
+ [FALLARBOR_TENT_MON_MAGNEMITE] = {
.species = SPECIES_MAGNEMITE,
.moves = {MOVE_THUNDER_WAVE, MOVE_SUPERSONIC, MOVE_ENDURE, MOVE_SPARK},
.itemTableId = BATTLE_FRONTIER_ITEM_MAGNET,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_QUIET
},
- [20] = {
+ [FALLARBOR_TENT_MON_VOLTORB] = {
.species = SPECIES_VOLTORB,
.moves = {MOVE_CHARGE, MOVE_SPARK, MOVE_SCREECH, MOVE_SONIC_BOOM},
.itemTableId = BATTLE_FRONTIER_ITEM_ASPEAR_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [21] = {
+ [FALLARBOR_TENT_MON_WHISMUR] = {
.species = SPECIES_WHISMUR,
.moves = {MOVE_REST, MOVE_SLEEP_TALK, MOVE_HYPER_VOICE, MOVE_ATTRACT},
.itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [22] = {
+ [FALLARBOR_TENT_MON_LOUDRED] = {
.species = SPECIES_LOUDRED,
.moves = {MOVE_STOMP, MOVE_REST, MOVE_SCREECH, MOVE_UPROAR},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [23] = {
+ [FALLARBOR_TENT_MON_LINOONE_2] = {
.species = SPECIES_LINOONE,
.moves = {MOVE_FURY_SWIPES, MOVE_SAND_ATTACK, MOVE_SHOCK_WAVE, MOVE_GROWL},
.itemTableId = BATTLE_FRONTIER_ITEM_MAGNET,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [24] = {
+ [FALLARBOR_TENT_MON_MIGHTYENA] = {
.species = SPECIES_MIGHTYENA,
.moves = {MOVE_SAND_ATTACK, MOVE_HOWL, MOVE_SWAGGER, MOVE_SECRET_POWER},
.itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_JOLLY
},
- [25] = {
+ [FALLARBOR_TENT_MON_SWABLU] = {
.species = SPECIES_SWABLU,
.moves = {MOVE_TAKE_DOWN, MOVE_SING, MOVE_GROWL, MOVE_SAFEGUARD},
.itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_QUIRKY
},
- [26] = {
+ [FALLARBOR_TENT_MON_SKARMORY] = {
.species = SPECIES_SKARMORY,
.moves = {MOVE_AGILITY, MOVE_STEEL_WING, MOVE_SAND_ATTACK, MOVE_TORMENT},
.itemTableId = BATTLE_FRONTIER_ITEM_METAL_COAT,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_BOLD
},
- [27] = {
+ [FALLARBOR_TENT_MON_GOLBAT] = {
.species = SPECIES_GOLBAT,
.moves = {MOVE_CONFUSE_RAY, MOVE_BITE, MOVE_DOUBLE_TEAM, MOVE_SUBSTITUTE},
.itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_BOLD
},
- [28] = {
+ [FALLARBOR_TENT_MON_WINGULL] = {
.species = SPECIES_WINGULL,
.moves = {MOVE_WING_ATTACK, MOVE_HAIL, MOVE_DOUBLE_TEAM, MOVE_SUPERSONIC},
.itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED,
.nature = NATURE_MODEST
},
- [29] = {
+ [FALLARBOR_TENT_MON_PELIPPER] = {
.species = SPECIES_PELIPPER,
.moves = {MOVE_TWISTER, MOVE_ICY_WIND, MOVE_DOUBLE_TEAM, MOVE_WATER_GUN},
.itemTableId = BATTLE_FRONTIER_ITEM_DRAGON_FANG,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [30] = {
+ [FALLARBOR_TENT_MON_BARBOACH] = {
.species = SPECIES_BARBOACH,
.moves = {MOVE_SPARK, MOVE_WATER_GUN, MOVE_EARTHQUAKE, MOVE_WATER_SPORT},
.itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_MODEST
},
- [31] = {
+ [FALLARBOR_TENT_MON_WAILMER] = {
.species = SPECIES_WAILMER,
.moves = {MOVE_WATER_PULSE, MOVE_RAIN_DANCE, MOVE_SPLASH, MOVE_CURSE},
.itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_QUIET
},
- [32] = {
+ [FALLARBOR_TENT_MON_MARILL] = {
.species = SPECIES_MARILL,
.moves = {MOVE_DEFENSE_CURL, MOVE_ROLLOUT, MOVE_BUBBLE_BEAM, MOVE_ATTRACT},
.itemTableId = BATTLE_FRONTIER_ITEM_HARD_STONE,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [33] = {
+ [FALLARBOR_TENT_MON_GOLDEEN_1] = {
.species = SPECIES_GOLDEEN,
.moves = {MOVE_WATERFALL, MOVE_RAIN_DANCE, MOVE_FLAIL, MOVE_PROTECT},
.itemTableId = BATTLE_FRONTIER_ITEM_GANLON_BERRY,
.evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK,
.nature = NATURE_HASTY
},
- [34] = {
+ [FALLARBOR_TENT_MON_GOLDEEN_2] = {
.species = SPECIES_GOLDEEN,
.moves = {MOVE_SLEEP_TALK, MOVE_HORN_DRILL, MOVE_REST, MOVE_SUPERSONIC},
.itemTableId = BATTLE_FRONTIER_ITEM_MENTAL_HERB,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_CAREFUL
},
- [35] = {
+ [FALLARBOR_TENT_MON_TRAPINCH] = {
.species = SPECIES_TRAPINCH,
.moves = {MOVE_RETURN, MOVE_SAND_ATTACK, MOVE_ATTRACT, MOVE_STRENGTH},
.itemTableId = BATTLE_FRONTIER_ITEM_MAGO_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [36] = {
+ [FALLARBOR_TENT_MON_BALTOY] = {
.species = SPECIES_BALTOY,
.moves = {MOVE_SELF_DESTRUCT, MOVE_SANDSTORM, MOVE_RAPID_SPIN, MOVE_MIMIC},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_JOLLY
},
- [37] = {
+ [FALLARBOR_TENT_MON_GRAVELER] = {
.species = SPECIES_GRAVELER,
.moves = {MOVE_ROCK_BLAST, MOVE_DEFENSE_CURL, MOVE_MAGNITUDE, MOVE_MUD_SPORT},
.itemTableId = BATTLE_FRONTIER_ITEM_HARD_STONE,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_ADAMANT
},
- [38] = {
+ [FALLARBOR_TENT_MON_SANDSHREW] = {
.species = SPECIES_SANDSHREW,
.moves = {MOVE_SAND_TOMB, MOVE_SANDSTORM, MOVE_DOUBLE_TEAM, MOVE_FOCUS_PUNCH},
.itemTableId = BATTLE_FRONTIER_ITEM_SOFT_SAND,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_JOLLY
},
- [39] = {
+ [FALLARBOR_TENT_MON_SWALOT] = {
.species = SPECIES_SWALOT,
.moves = {MOVE_YAWN, MOVE_ENCORE, MOVE_BULLET_SEED, MOVE_SLUDGE},
.itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS,
.evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP,
.nature = NATURE_BRAVE
},
- [40] = {
+ [FALLARBOR_TENT_MON_SHROOMISH] = {
.species = SPECIES_SHROOMISH,
.moves = {MOVE_HEADBUTT, MOVE_SPORE, MOVE_SWAGGER, MOVE_LEECH_SEED},
.itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_IMPISH
},
- [41] = {
+ [FALLARBOR_TENT_MON_KIRLIA] = {
.species = SPECIES_KIRLIA,
.moves = {MOVE_HYPNOSIS, MOVE_GROWL, MOVE_ATTRACT, MOVE_DREAM_EATER},
.itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [42] = {
+ [FALLARBOR_TENT_MON_LOMBRE] = {
.species = SPECIES_LOMBRE,
.moves = {MOVE_NATURE_POWER, MOVE_WATER_GUN, MOVE_RAIN_DANCE, MOVE_FLASH},
.itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_BASHFUL
},
- [43] = {
+ [FALLARBOR_TENT_MON_NUZLEAF] = {
.species = SPECIES_NUZLEAF,
.moves = {MOVE_NATURE_POWER, MOVE_TORMENT, MOVE_SWAGGER, MOVE_REST},
.itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY,
.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,
.nature = NATURE_ADAMANT
},
- [44] = {
+ [FALLARBOR_TENT_MON_CACNEA] = {
.species = SPECIES_CACNEA,
.moves = {MOVE_SANDSTORM, MOVE_NEEDLE_ARM, MOVE_TEETER_DANCE, MOVE_LEECH_SEED},
.itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER,
diff --git a/src/decoration.c b/src/decoration.c
index da7e169cb..e141e43b3 100644
--- a/src/decoration.c
+++ b/src/decoration.c
@@ -2154,7 +2154,8 @@ void sub_8129708(void)
}
}
-void sub_81297AC(void)
+// Unused
+void GetEventObjectLocalIdByFlag(void)
{
u8 i;
diff --git a/src/dewford_trend.c b/src/dewford_trend.c
index 57a97d8f3..9c5e69d99 100644
--- a/src/dewford_trend.c
+++ b/src/dewford_trend.c
@@ -25,12 +25,12 @@ void InitDewfordTrend(void)
for (i = 0; i < 5; i++)
{
- gSaveBlock1Ptr->easyChatPairs[i].words[0] = sub_811EE38(EC_GROUP_CONDITIONS);
+ gSaveBlock1Ptr->easyChatPairs[i].words[0] = GetRandomEasyChatWordFromGroup(EC_GROUP_CONDITIONS);
if (Random() & 1)
- gSaveBlock1Ptr->easyChatPairs[i].words[1] = sub_811EE38(EC_GROUP_LIFESTYLE);
+ gSaveBlock1Ptr->easyChatPairs[i].words[1] = GetRandomEasyChatWordFromGroup(EC_GROUP_LIFESTYLE);
else
- gSaveBlock1Ptr->easyChatPairs[i].words[1] = sub_811EE38(EC_GROUP_HOBBIES);
+ gSaveBlock1Ptr->easyChatPairs[i].words[1] = GetRandomEasyChatWordFromGroup(EC_GROUP_HOBBIES);
gSaveBlock1Ptr->easyChatPairs[i].unk1_6 = Random() & 1;
sub_8122B28(&(gSaveBlock1Ptr->easyChatPairs[i]));
diff --git a/src/easy_chat.c b/src/easy_chat.c
index 3aa709732..05e366420 100644
--- a/src/easy_chat.c
+++ b/src/easy_chat.c
@@ -222,7 +222,7 @@ static void sub_811E1A4(s8, s8);
static void sub_811E2DC(struct Sprite *);
static void sub_811E34C(u8, u8);
static bool8 EasyChatIsNationalPokedexEnabled(void);
-static u16 sub_811F108(void);
+static u16 GetRandomUnlockedEasyChatPokemon(void);
static void sub_811F2D4(void);
static void sub_811F46C(void);
static u8 *CopyEasyChatWordPadded(u8 *, u16, u16);
@@ -5039,24 +5039,24 @@ static u16 GetEasyChatWordStringLength(u16 easyChatWord)
}
}
-bool8 sub_811EDC4(const u16 *easyChatWords, u8 arg1, u8 arg2, u16 arg3)
+static bool8 CanPhraseFitInXRowsYCols(const u16 *easyChatWords, u8 numRows, u8 numColumns, u16 maxLength)
{
u8 i, j;
- for (i = 0; i < arg2; i++)
+ for (i = 0; i < numColumns; i++)
{
- u16 totalLength = arg1 - 1;
- for (j = 0; j < arg1; j++)
+ u16 totalLength = numRows - 1;
+ for (j = 0; j < numRows; j++)
totalLength += GetEasyChatWordStringLength(*(easyChatWords++));
- if (totalLength > arg3)
+ if (totalLength > maxLength)
return TRUE;
}
return FALSE;
}
-u16 sub_811EE38(u16 groupId)
+u16 GetRandomEasyChatWordFromGroup(u16 groupId)
{
u16 index = Random() % gEasyChatGroups[groupId].numWords;
if (groupId == EC_GROUP_POKEMON
@@ -5070,18 +5070,18 @@ u16 sub_811EE38(u16 groupId)
return EC_WORD(groupId, index);
}
-u16 sub_811EE90(u16 groupId)
+u16 GetRandomEasyChatWordFromUnlockedGroup(u16 groupId)
{
if (!IsEasyChatGroupUnlocked(groupId))
return 0xFFFF;
if (groupId == EC_GROUP_POKEMON)
- return sub_811F108();
+ return GetRandomUnlockedEasyChatPokemon();
- return sub_811EE38(groupId);
+ return GetRandomEasyChatWordFromGroup(groupId);
}
-void sub_811EECC(void)
+void ShowEasyChatProfile(void)
{
u16 *easyChatWords;
int columns, rows;
@@ -5094,7 +5094,7 @@ void sub_811EECC(void)
break;
case 1:
easyChatWords = gSaveBlock1Ptr->easyChatBattleStart;
- if (sub_811EDC4(gSaveBlock1Ptr->easyChatBattleStart, 3, 2, 18))
+ if (CanPhraseFitInXRowsYCols(gSaveBlock1Ptr->easyChatBattleStart, 3, 2, 18))
{
columns = 2;
rows = 3;
@@ -5123,10 +5123,11 @@ void sub_811EECC(void)
ShowFieldAutoScrollMessage(gStringVar4);
}
-void sub_811EF6C(void)
+// The phrase that a man in Dewford Hall suggests has a "deep link" to the current trendy phrase
+void BufferDeepLinkPhrase(void)
{
int groupId = Random() & 1 ? EC_GROUP_HOBBIES : EC_GROUP_LIFESTYLE;
- u16 easyChatWord = sub_811EE90(groupId);
+ u16 easyChatWord = GetRandomEasyChatWordFromUnlockedGroup(groupId);
CopyEasyChatWord(gStringVar2, easyChatWord);
}
@@ -5217,7 +5218,7 @@ static bool8 EasyChatIsNationalPokedexEnabled(void)
return IsNationalPokedexEnabled();
}
-static u16 sub_811F108(void)
+static u16 GetRandomUnlockedEasyChatPokemon(void)
{
u16 i;
u16 numWords;
diff --git a/src/ereader_helpers.c b/src/ereader_helpers.c
index 2419c2806..bdfbebf6b 100755
--- a/src/ereader_helpers.c
+++ b/src/ereader_helpers.c
@@ -473,7 +473,7 @@ static bool32 TryWriteTrainerHill_r(struct EReaderTrainerHillSet *ttdata, struct
}
buffer2->checksum = CalcByteArraySum((u8 *)buffer2->floors, 4 * sizeof(struct TrHillFloor));
- if (TryWriteSpecialSaveSection(SECTOR_ID_TRAINER_HILL, (u8 *)buffer2) != 1)
+ if (TryWriteSpecialSaveSection(SECTOR_ID_TRAINER_HILL, (u8 *)buffer2) != SAVE_STATUS_OK)
return FALSE;
return TRUE;
@@ -487,13 +487,13 @@ bool32 TryWriteTrainerHill(struct EReaderTrainerHillSet *arg0)
return result;
}
-static bool32 TryReadTrainerHill_r(struct EReaderTrainerHillSet *arg0, u8 *arg1)
+static bool32 TryReadTrainerHill_r(struct EReaderTrainerHillSet *dst, u8 *buffer)
{
- if (TryReadSpecialSaveSection(SECTOR_ID_TRAINER_HILL, arg1) != 1)
+ if (TryReadSpecialSaveSection(SECTOR_ID_TRAINER_HILL, buffer) != SAVE_STATUS_OK)
return FALSE;
- memcpy(arg0, arg1, sizeof(struct EReaderTrainerHillSet));
- if (!TrainerHill_VerifyChecksum(arg0))
+ memcpy(dst, buffer, sizeof(struct EReaderTrainerHillSet));
+ if (!TrainerHill_VerifyChecksum(dst))
return FALSE;
return TRUE;
diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c
index 6d60c30b3..e41b5a69a 100644
--- a/src/field_control_avatar.c
+++ b/src/field_control_avatar.c
@@ -423,23 +423,23 @@ static const u8 *GetInteractedMetatileScript(struct MapPosition *position, u8 me
return SecretBase_EventScript_ShieldOrToyTV;
if (MetatileBehavior_IsMB_C6(metatileBehavior) == TRUE)
{
- SetSecretBaseSecretsTvFlags_MiscFurnature();
+ CheckInteractedWithFriendsFurnitureBottom();
return NULL;
}
if (MetatileBehavior_HoldsLargeDecoration(metatileBehavior) == TRUE)
{
- SetSecretBaseSecretsTvFlags_LargeDecorationSpot();
+ CheckInteractedWithFriendsFurnitureMiddle();
return NULL;
}
if (MetatileBehavior_HoldsSmallDecoration(metatileBehavior) == TRUE)
{
- SetSecretBaseSecretsTvFlags_SmallDecorationSpot();
+ CheckInteractedWithFriendsFurnitureTop();
return NULL;
}
}
else if (MetatileBehavior_IsSecretBasePoster(metatileBehavior) == TRUE)
{
- SetSecretBaseSecretsTvFlags_Poster();
+ CheckInteractedWithFriendsPosterDecor();
return NULL;
}
diff --git a/src/field_specials.c b/src/field_specials.c
index 3101f0b2a..8699bce78 100644
--- a/src/field_specials.c
+++ b/src/field_specials.c
@@ -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);
}
diff --git a/src/fldeff_misc.c b/src/fldeff_misc.c
index ab20713d2..95c7123b3 100644
--- a/src/fldeff_misc.c
+++ b/src/fldeff_misc.c
@@ -20,9 +20,11 @@
#include "string_util.h"
#include "constants/field_effects.h"
#include "constants/metatile_behaviors.h"
+#include "constants/metatile_labels.h"
#include "constants/songs.h"
+#include "constants/tv.h"
#include "constants/vars.h"
-#include "constants/metatile_labels.h"
+
EWRAM_DATA struct MapPosition gPlayerFacingPosition = {0};
@@ -801,16 +803,16 @@ static void Task_SecretBasePCTurnOn(u8 taskId)
{
case 4:
case 12:
- MapGridSetMetatileIdAt(data[0], data[1], 0x224);
+ MapGridSetMetatileIdAt(data[0], data[1], METATILE_SecretBase_PC_On);
CurrentMapDrawMetatileAt(data[0], data[1]);
break;
case 8:
case 16:
- MapGridSetMetatileIdAt(data[0], data[1], 0x220);
+ MapGridSetMetatileIdAt(data[0], data[1], METATILE_SecretBase_PC);
CurrentMapDrawMetatileAt(data[0], data[1]);
break;
case 20:
- MapGridSetMetatileIdAt(data[0], data[1], 0x224);
+ MapGridSetMetatileIdAt(data[0], data[1], METATILE_SecretBase_PC_On);
CurrentMapDrawMetatileAt(data[0], data[1]);
FieldEffectActiveListRemove(FLDEFF_PCTURN_ON);
EnableBothScriptContexts();
@@ -829,9 +831,9 @@ void DoSecretBasePCTurnOffEffect(void)
PlaySE(SE_PC_OFF);
if (!VarGet(VAR_CURRENT_SECRET_BASE))
- MapGridSetMetatileIdAt(x, y, 0x220 | METATILE_COLLISION_MASK);
+ MapGridSetMetatileIdAt(x, y, METATILE_SecretBase_PC | METATILE_COLLISION_MASK);
else
- MapGridSetMetatileIdAt(x, y, 0x221 | METATILE_COLLISION_MASK);
+ MapGridSetMetatileIdAt(x, y, METATILE_SecretBase_RegisterPC | METATILE_COLLISION_MASK);
CurrentMapDrawMetatileAt(x, y);
}
@@ -875,16 +877,16 @@ static void DoBalloonSoundEffect(s16 metatileId)
{
switch (metatileId)
{
- case 824:
+ case METATILE_SecretBase_RedBalloon:
PlaySE(SE_FUUSEN1);
break;
- case 828:
+ case METATILE_SecretBase_BlueBalloon:
PlaySE(SE_FUUSEN2);
break;
- case 832:
+ case METATILE_SecretBase_YellowBalloon:
PlaySE(SE_FUUSEN3);
break;
- case 552:
+ case METATILE_SecretBase_MudBall:
PlaySE(SE_TOY_DANGO);
break;
}
@@ -903,8 +905,8 @@ bool8 FldEff_NopA700(void)
static void DoSecretBaseBreakableDoorEffect(s16 x, s16 y)
{
PlaySE(SE_TOY_KABE);
- MapGridSetMetatileIdAt(x, y, 0x276);
- MapGridSetMetatileIdAt(x, y - 1, 0x26E);
+ MapGridSetMetatileIdAt(x, y, METATILE_SecretBase_BreakableDoor_BottomOpen);
+ MapGridSetMetatileIdAt(x, y - 1, METATILE_SecretBase_BreakableDoor_TopOpen);
CurrentMapDrawMetatileAt(x, y);
CurrentMapDrawMetatileAt(x, y - 1);
}
@@ -946,28 +948,28 @@ static void Task_SecretBaseMusicNoteMatSound(u8 taskId)
{
switch (gTasks[taskId].tMetatileID)
{
- case 632:
+ case METATILE_SecretBase_NoteMat_C:
PlaySE(SE_TOY_C);
break;
- case 633:
+ case METATILE_SecretBase_NoteMat_D:
PlaySE(SE_TOY_D);
break;
- case 634:
+ case METATILE_SecretBase_NoteMat_E:
PlaySE(SE_TOY_E);
break;
- case 635:
+ case METATILE_SecretBase_NoteMat_F:
PlaySE(SE_TOY_F);
break;
- case 636:
+ case METATILE_SecretBase_NoteMat_G:
PlaySE(SE_TOY_G);
break;
- case 637:
+ case METATILE_SecretBase_NoteMat_A:
PlaySE(SE_TOY_A);
break;
- case 638:
+ case METATILE_SecretBase_NoteMat_B:
PlaySE(SE_TOY_B);
break;
- case 691:
+ case METATILE_SecretBase_NoteMat_C_Sharp:
PlaySE(SE_TOY_C1);
break;
}
@@ -1071,12 +1073,12 @@ static void SpriteCB_SandPillar_0(struct Sprite *sprite)
{
PlaySE(SE_W088);
- if (MapGridGetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1) == 646)
- MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1, 3586);
+ if (MapGridGetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1) == METATILE_SecretBase_SandOrnament_TopWall)
+ MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1, METATILE_SecretBase_Wall_TopMid | METATILE_COLLISION_MASK);
else
- MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1, 644);
+ MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1, METATILE_SecretBase_SandOrnament_BrokenTop);
- MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6], 522);
+ MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6], METATILE_SecretBase_Ground);
CurrentMapDrawMetatileAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1);
CurrentMapDrawMetatileAt(gFieldEffectArguments[5], gFieldEffectArguments[6]);
@@ -1092,7 +1094,7 @@ static void SpriteCB_SandPillar_1(struct Sprite *sprite)
}
else
{
- MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6], 3724);
+ MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6], METATILE_SecretBase_SandOrnament_BrokenBase | METATILE_COLLISION_MASK);
CurrentMapDrawMetatileAt(gFieldEffectArguments[5], gFieldEffectArguments[6]);
sprite->data[0] = 0;
sprite->callback = SpriteCB_SandPillar_2;
@@ -1105,7 +1107,7 @@ static void SpriteCB_SandPillar_2(struct Sprite *sprite)
EnableBothScriptContexts();
}
-void GetShieldToyTVDecorationInfo(void)
+void InteractWithShieldOrTVDecoration(void)
{
s16 x, y;
s32 metatileId;
@@ -1116,7 +1118,7 @@ void GetShieldToyTVDecorationInfo(void)
switch (metatileId)
{
- case 822:
+ case METATILE_SecretBase_GoldShield_Base1:
ConvertIntToDecimalStringN(gStringVar1, 100, STR_CONV_MODE_LEFT_ALIGN, 3);
StringCopy(gStringVar2, gText_Gold);
@@ -1125,9 +1127,9 @@ void GetShieldToyTVDecorationInfo(void)
if (!VarGet(VAR_CURRENT_SECRET_BASE))
return;
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x10);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_GOLD_SHIELD);
break;
- case 734:
+ case METATILE_SecretBase_SilverShield_Base1:
ConvertIntToDecimalStringN(gStringVar1, 50, STR_CONV_MODE_LEFT_ALIGN, 2);
StringCopy(gStringVar2, gText_Silver);
@@ -1136,31 +1138,31 @@ void GetShieldToyTVDecorationInfo(void)
if (!VarGet(VAR_CURRENT_SECRET_BASE))
return;
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x20);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_SILVER_SHIELD);
break;
- case 756:
+ case METATILE_SecretBase_TV:
gSpecialVar_Result = 1;
if (!VarGet(VAR_CURRENT_SECRET_BASE))
return;
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x80);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_TV);
break;
- case 757:
+ case METATILE_SecretBase_RoundTV:
gSpecialVar_Result = 2;
if (!VarGet(VAR_CURRENT_SECRET_BASE))
return;
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x80);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_TV);
break;
- case 758:
+ case METATILE_SecretBase_CuteTV:
gSpecialVar_Result = 3;
if (!VarGet(VAR_CURRENT_SECRET_BASE))
return;
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x80);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_TV);
break;
}
}
@@ -1172,16 +1174,16 @@ bool8 sub_80FADE4(u16 metatileId, u8 arg1)
if (!arg1)
{
- if (metatileId == 0x285 || metatileId == 0x286)
+ if (metatileId == METATILE_SecretBase_SandOrnament_Top || metatileId == METATILE_SecretBase_SandOrnament_TopWall)
return TRUE;
- if (metatileId == 0x237)
+ if (metatileId == METATILE_SecretBase_BreakableDoor_TopClosed)
return TRUE;
}
else
{
- if (metatileId == 0x28d)
+ if (metatileId == METATILE_SecretBase_SandOrnament_Base1)
return TRUE;
- if (metatileId == 0x23F)
+ if (metatileId == METATILE_SecretBase_BreakableDoor_BottomClosed)
return TRUE;
}
diff --git a/src/frontier_util.c b/src/frontier_util.c
index c77a2a838..f46c60391 100644
--- a/src/frontier_util.c
+++ b/src/frontier_util.c
@@ -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 SetFrontierBrainObjEventGfx_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\
diff --git a/src/graphics.c b/src/graphics.c
index 82765e913..eeeba56c9 100644
--- a/src/graphics.c
+++ b/src/graphics.c
@@ -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");
diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c
index 95cbc11ef..065d25582 100644
--- a/src/hall_of_fame.c
+++ b/src/hall_of_fame.c
@@ -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
@@ -467,7 +467,7 @@ static void Task_Hof_InitTeamSaveData(u8 taskId)
}
else
{
- if (Save_LoadGameData(3) != TRUE)
+ if (Save_LoadGameData(SAVE_HALL_OF_FAME) != SAVE_STATUS_OK)
memset(gDecompressionBuffer, 0, 0x2000);
}
@@ -498,7 +498,7 @@ static void Task_Hof_InitTeamSaveData(u8 taskId)
static void Task_Hof_TrySaveData(u8 taskId)
{
gGameContinueCallback = CB2_DoHallOfFameScreenDontSaveData;
- if (TrySavingData(SAVE_HALL_OF_FAME) == 0xFF && gDamagedSaveSectors != 0)
+ if (TrySavingData(SAVE_HALL_OF_FAME) == SAVE_STATUS_ERROR && gDamagedSaveSectors != 0)
{
UnsetBgTilemapBuffer(1);
UnsetBgTilemapBuffer(3);
@@ -836,7 +836,7 @@ void CB2_DoHallOfFamePC(void)
static void Task_HofPC_CopySaveData(u8 taskId)
{
sub_81980F0(0, 0x1E, 0, 0xC, 0x226);
- if (Save_LoadGameData(3) != 1)
+ if (Save_LoadGameData(SAVE_HALL_OF_FAME) != SAVE_STATUS_OK)
{
gTasks[taskId].func = Task_HofPC_PrintDataIsCorrupted;
}
@@ -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;
diff --git a/src/intro.c b/src/intro.c
index 539b07a75..7c2303dcc 100644
--- a/src/intro.c
+++ b/src/intro.c
@@ -1070,7 +1070,7 @@ void CB2_InitCopyrightScreenAfterBootup(void)
ResetMenuAndMonGlobals();
Save_ResetSaveCounters();
Save_LoadGameData(SAVE_NORMAL);
- if (gSaveFileStatus == 0 || gSaveFileStatus == 2)
+ if (gSaveFileStatus == SAVE_STATUS_EMPTY || gSaveFileStatus == SAVE_STATUS_CORRUPT)
Sav2_ClearSetDefault();
SetPokemonCryStereo(gSaveBlock2Ptr->optionsSound);
InitHeap(gHeap, HEAP_SIZE);
diff --git a/src/item.c b/src/item.c
index 7b8b37c06..61069ca73 100644
--- a/src/item.c
+++ b/src/item.c
@@ -14,6 +14,7 @@
#include "battle_pyramid_bag.h"
#include "constants/items.h"
#include "constants/hold_effects.h"
+#include "constants/tv.h"
extern u16 gUnknown_0203CF30[];
@@ -542,7 +543,7 @@ bool8 RemoveBagItem(u16 itemId, u16 count)
if (CurMapIsSecretBase() == TRUE)
{
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x200);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_BAG);
VarSet(VAR_SECRET_BASE_LAST_ITEM_USED, itemId);
}
diff --git a/src/link.c b/src/link.c
index d6ed9f5f3..939a4afc8 100644
--- a/src/link.c
+++ b/src/link.c
@@ -1349,7 +1349,7 @@ bool8 sub_800AA60(void)
{
if (gLinkPlayers[i].trainerId == gSavedLinkPlayers[i].trainerId)
{
- if (gLinkType == LINKTYPE_0x2288)
+ if (gLinkType == LINKTYPE_BATTLE_TOWER)
{
if (gLinkType == gLinkPlayers[i].linkType)
{
@@ -1902,7 +1902,8 @@ bool32 sub_800B504(void)
return FALSE;
}
-u8 sub_800B518(void)
+// Unused
+u8 GetWirelessCommType(void)
{
return gWirelessCommType;
}
diff --git a/src/mail.c b/src/mail.c
index be2b1dc95..f6f96b012 100644
--- a/src/mail.c
+++ b/src/mail.c
@@ -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();
diff --git a/src/main_menu.c b/src/main_menu.c
index 01d9dfe4b..7c4e82c76 100644
--- a/src/main_menu.c
+++ b/src/main_menu.c
@@ -643,30 +643,30 @@ static void Task_MainMenuCheckSaveFile(u8 taskId)
tWirelessAdapterConnected = TRUE;
switch (gSaveFileStatus)
{
- case 1:
+ case SAVE_STATUS_OK:
tMenuType = HAS_SAVED_GAME;
if (IsMysteryGiftEnabled())
tMenuType++;
gTasks[taskId].func = Task_MainMenuCheckBattery;
break;
- case 2:
+ case SAVE_STATUS_CORRUPT:
CreateMainMenuErrorWindow(gText_SaveFileErased);
tMenuType = HAS_NO_SAVED_GAME;
gTasks[taskId].func = Task_WaitForSaveFileErrorWindow;
break;
- case 0xFF:
+ case SAVE_STATUS_ERROR:
CreateMainMenuErrorWindow(gText_SaveFileCorrupted);
gTasks[taskId].func = Task_WaitForSaveFileErrorWindow;
tMenuType = HAS_SAVED_GAME;
if (IsMysteryGiftEnabled() == TRUE)
tMenuType++;
break;
- case 0:
+ case SAVE_STATUS_EMPTY:
default:
tMenuType = HAS_NO_SAVED_GAME;
gTasks[taskId].func = Task_MainMenuCheckBattery;
break;
- case 4:
+ case SAVE_STATUS_NO_FLASH:
CreateMainMenuErrorWindow(gJPText_No1MSubCircuit);
gTasks[taskId].tMenuType = HAS_NO_SAVED_GAME;
gTasks[taskId].func = Task_WaitForSaveFileErrorWindow;
diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c
index 8fea7c098..dc5a0b335 100644
--- a/src/mauville_old_man.c
+++ b/src/mauville_old_man.c
@@ -360,7 +360,7 @@ static void InitGiddyTaleList(void)
break;
if (r1 == 6)
r1 = 0;
- giddy->randomWords[i] = sub_811EE90(arr[r1][0]);
+ giddy->randomWords[i] = GetRandomEasyChatWordFromUnlockedGroup(arr[r1][0]);
}
}
}
diff --git a/src/mevent_801BAAC.c b/src/mevent_801BAAC.c
index bc32cda30..8596b43cd 100644
--- a/src/mevent_801BAAC.c
+++ b/src/mevent_801BAAC.c
@@ -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);
diff --git a/src/mevent_news.c b/src/mevent_news.c
index 192bb0fc7..9e78cf406 100644
--- a/src/mevent_news.c
+++ b/src/mevent_news.c
@@ -53,6 +53,7 @@ void sub_801DBDC(void)
}
}
+// Unused
u16 sub_801DC20(void)
{
u16 *r6 = &gSpecialVar_Result;
diff --git a/src/new_game.c b/src/new_game.c
index b24114f77..464da6414 100644
--- a/src/new_game.c
+++ b/src/new_game.c
@@ -150,7 +150,7 @@ void ResetMenuAndMonGlobals(void)
void NewGameInitData(void)
{
- if (gSaveFileStatus == 0 || gSaveFileStatus == 2)
+ if (gSaveFileStatus == SAVE_STATUS_EMPTY || gSaveFileStatus == SAVE_STATUS_CORRUPT)
RtcReset();
gDifferentSaveFile = 1;
diff --git a/src/overworld.c b/src/overworld.c
index fdccc3521..81b8efa1b 100644
--- a/src/overworld.c
+++ b/src/overworld.c
@@ -863,7 +863,7 @@ static void mli0_load_map(u32 a1)
isOutdoors = IsMapTypeOutdoors(gMapHeader.mapType);
isIndoors = IsMapTypeIndoors(gMapHeader.mapType);
- sub_80EB218();
+ CheckLeftFriendsSecretBase();
TrySetMapSaveWarpStatus();
ClearTempFieldEventData();
ResetCyclingRoadChallengeData();
@@ -1714,7 +1714,7 @@ void CB2_ContinueSavedGame(void)
FieldClearVBlankHBlankCallbacks();
StopMapMusic();
ResetSafariZoneFlag_();
- if (gSaveFileStatus == 0xFF)
+ if (gSaveFileStatus == SAVE_STATUS_ERROR)
ResetWinStreaks();
LoadSaveblockMapHeader();
diff --git a/src/pokemon.c b/src/pokemon.c
index 15427e6ea..5a4e6df08 100644
--- a/src/pokemon.c
+++ b/src/pokemon.c
@@ -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);
}
}
diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c
index 2c11ca293..7d8c65d7c 100644
--- a/src/pokemon_icon.c
+++ b/src/pokemon_icon.c
@@ -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);
}
diff --git a/src/recorded_battle.c b/src/recorded_battle.c
index 1533fd5ad..5a0579f70 100644
--- a/src/recorded_battle.c
+++ b/src/recorded_battle.c
@@ -323,7 +323,7 @@ static bool32 RecordedBattleToSave(struct RecordedBattleSave *battleSave, struct
saveSection->checksum = CalcByteArraySum((void*)(saveSection), sizeof(*saveSection) - 4);
- if (TryWriteSpecialSaveSection(SECTOR_ID_RECORDED_BATTLE, (void*)(saveSection)) != 1)
+ if (TryWriteSpecialSaveSection(SECTOR_ID_RECORDED_BATTLE, (void*)(saveSection)) != SAVE_STATUS_OK)
return FALSE;
else
return TRUE;
@@ -492,7 +492,7 @@ bool32 MoveRecordedBattleToSaveData(void)
static bool32 TryCopyRecordedBattleSaveData(struct RecordedBattleSave *dst, struct SaveSection *saveBuffer)
{
- if (TryReadSpecialSaveSection(SECTOR_ID_RECORDED_BATTLE, (void*)(saveBuffer)) != 1)
+ if (TryReadSpecialSaveSection(SECTOR_ID_RECORDED_BATTLE, (void*)(saveBuffer)) != SAVE_STATUS_OK)
return FALSE;
memcpy(dst, saveBuffer, sizeof(struct RecordedBattleSave));
diff --git a/src/reset_rtc_screen.c b/src/reset_rtc_screen.c
index 8c4843ab5..efad640e3 100644
--- a/src/reset_rtc_screen.c
+++ b/src/reset_rtc_screen.c
@@ -559,7 +559,7 @@ static void Task_ResetRtcScreen(u8 taskId)
case 1:
if (!gPaletteFade.active)
{
- if (gSaveFileStatus == 0 || gSaveFileStatus == 2)
+ if (gSaveFileStatus == SAVE_STATUS_EMPTY || gSaveFileStatus == SAVE_STATUS_CORRUPT)
{
ShowMessage(gText_NoSaveFileCantSetTime);
data[0] = 5;
@@ -608,7 +608,7 @@ static void Task_ResetRtcScreen(u8 taskId)
}
break;
case 4:
- if (TrySavingData(SAVE_NORMAL) == 1)
+ if (TrySavingData(SAVE_NORMAL) == SAVE_STATUS_OK)
{
ShowMessage(gText_SaveCompleted);
PlaySE(SE_PINPON);
diff --git a/src/reset_save_heap.c b/src/reset_save_heap.c
index 5a54a2177..577a48b0d 100644
--- a/src/reset_save_heap.c
+++ b/src/reset_save_heap.c
@@ -21,8 +21,8 @@ void sub_81700F8(void)
SetSaveBlocksPointers(sub_815355C());
ResetMenuAndMonGlobals();
Save_ResetSaveCounters();
- Save_LoadGameData(0);
- if (gSaveFileStatus == 0 || gSaveFileStatus == 2)
+ Save_LoadGameData(SAVE_NORMAL);
+ if (gSaveFileStatus == SAVE_STATUS_EMPTY || gSaveFileStatus == SAVE_STATUS_CORRUPT)
Sav2_ClearSetDefault();
SetPokemonCryStereo(gSaveBlock2Ptr->optionsSound);
InitHeap(gHeap, HEAP_SIZE);
diff --git a/src/save.c b/src/save.c
index e1f5a6fff..c19aff4d8 100644
--- a/src/save.c
+++ b/src/save.c
@@ -14,7 +14,7 @@
#include "constants/game_stat.h"
static u16 CalculateChecksum(void *data, u16 size);
-static u8 DoReadFlashWholeSection(u8 sector, struct SaveSection *section);
+static bool8 DoReadFlashWholeSection(u8 sector, struct SaveSection *section);
static u8 GetSaveValidStatus(const struct SaveSectionLocation *location);
static u8 sub_8152E10(u16 a1, const struct SaveSectionLocation *location);
static u8 ClearSaveData_2(u16 a1, const struct SaveSectionLocation *location);
@@ -53,7 +53,7 @@ static u8 HandleWriteSector(u16 a1, const struct SaveSectionLocation *location);
min(sizeof(structure) - chunkNum * SECTOR_DATA_SIZE, SECTOR_DATA_SIZE) \
} \
-const struct SaveSectionOffsets gSaveSectionOffsets[] =
+static const struct SaveSectionOffsets sSaveSectionOffsets[] =
{
SAVEBLOCK_CHUNK(gSaveblock2, 0),
@@ -84,9 +84,9 @@ u16 gUnknown_03006208;
u16 gSaveUnusedVar;
u16 gSaveFileStatus;
void (*gGameContinueCallback)(void);
-struct SaveSectionLocation gRamSaveSectionLocations[0xE];
+struct SaveSectionLocation gRamSaveSectionLocations[SECTOR_SAVE_SLOT_LENGTH];
u16 gSaveUnusedVar2;
-u16 gUnknown_03006294;
+u16 gSaveAttemptStatus;
EWRAM_DATA struct SaveSection gSaveDataBuffer = {0};
EWRAM_DATA static u8 sUnusedVar = 0;
@@ -130,16 +130,16 @@ static bool32 SetDamagedSectorBits(u8 op, u8 bit)
return retVal;
}
-static u8 save_write_to_flash(u16 a1, const struct SaveSectionLocation *location)
+static u8 SaveWriteToFlash(u16 a1, const struct SaveSectionLocation *location)
{
- u32 retVal;
+ u32 status;
u16 i;
gFastSaveSection = &gSaveDataBuffer;
if (a1 != 0xFFFF) // for link
{
- retVal = HandleWriteSector(a1, location);
+ status = HandleWriteSector(a1, location);
}
else
{
@@ -148,41 +148,41 @@ static u8 save_write_to_flash(u16 a1, const struct SaveSectionLocation *location
gLastWrittenSector++;
gLastWrittenSector = gLastWrittenSector % SECTOR_SAVE_SLOT_LENGTH; // array count save sector locations
gSaveCounter++;
- retVal = 1;
+ status = SAVE_STATUS_OK;
for (i = 0; i < SECTOR_SAVE_SLOT_LENGTH; i++)
HandleWriteSector(i, location);
if (gDamagedSaveSectors != 0) // skip the damaged sector.
{
- retVal = 0xFF;
+ status = SAVE_STATUS_ERROR;
gLastWrittenSector = gLastKnownGoodSector;
gSaveCounter = gLastSaveCounter;
}
}
- return retVal;
+ return status;
}
-static u8 HandleWriteSector(u16 a1, const struct SaveSectionLocation *location)
+static u8 HandleWriteSector(u16 sectorId, const struct SaveSectionLocation *location)
{
u16 i;
u16 sector;
u8 *data;
u16 size;
- sector = a1 + gLastWrittenSector;
+ sector = sectorId + gLastWrittenSector;
sector %= SECTOR_SAVE_SLOT_LENGTH;
sector += SECTOR_SAVE_SLOT_LENGTH * (gSaveCounter % 2);
- data = location[a1].data;
- size = location[a1].size;
+ data = location[sectorId].data;
+ size = location[sectorId].size;
// clear save section.
for (i = 0; i < sizeof(struct SaveSection); i++)
((char *)gFastSaveSection)[i] = 0;
- gFastSaveSection->id = a1;
+ gFastSaveSection->id = sectorId;
gFastSaveSection->security = UNKNOWN_CHECK_VALUE;
gFastSaveSection->counter = gSaveCounter;
@@ -215,12 +215,12 @@ static u8 TryWriteSector(u8 sector, u8 *data)
if (ProgramFlashSectorAndVerify(sector, data) != 0) // is damaged?
{
SetDamagedSectorBits(ENABLE, sector); // set damaged sector bits.
- return 0xFF;
+ return SAVE_STATUS_ERROR;
}
else
{
SetDamagedSectorBits(DISABLE, sector); // unset damaged sector bits. it's safe now.
- return 1;
+ return SAVE_STATUS_OK;
}
}
@@ -247,46 +247,46 @@ static u32 RestoreSaveBackupVars(const struct SaveSectionLocation *location) //
return 0;
}
-static u8 sub_81529D4(u16 a1, const struct SaveSectionLocation *location)
+static u8 sub_81529D4(u16 sectorId, const struct SaveSectionLocation *location)
{
- u8 retVal;
+ u8 status;
- if (gUnknown_03006208 < a1 - 1)
+ if (gUnknown_03006208 < sectorId - 1)
{
- retVal = 1;
+ status = SAVE_STATUS_OK;
HandleWriteSector(gUnknown_03006208, location);
gUnknown_03006208++;
if (gDamagedSaveSectors)
{
- retVal = 0xFF;
+ status = SAVE_STATUS_ERROR;
gLastWrittenSector = gLastKnownGoodSector;
gSaveCounter = gLastSaveCounter;
}
}
else
{
- retVal = 0xFF;
+ status = SAVE_STATUS_ERROR;
}
- return retVal;
+ return status;
}
-static u8 sub_8152A34(u16 a1, const struct SaveSectionLocation *location)
+static u8 sub_8152A34(u16 sectorId, const struct SaveSectionLocation *location)
{
- u8 retVal = 1;
+ u8 status = SAVE_STATUS_OK;
- ClearSaveData_2(a1 - 1, location);
+ ClearSaveData_2(sectorId - 1, location);
if (gDamagedSaveSectors)
{
- retVal = 0xFF;
+ status = SAVE_STATUS_ERROR;
gLastWrittenSector = gLastKnownGoodSector;
gSaveCounter = gLastSaveCounter;
}
- return retVal;
+ return status;
}
-static u8 ClearSaveData_2(u16 a1, const struct SaveSectionLocation *location)
+static u8 ClearSaveData_2(u16 sectorId, const struct SaveSectionLocation *location)
{
u16 i;
u16 sector;
@@ -294,18 +294,18 @@ static u8 ClearSaveData_2(u16 a1, const struct SaveSectionLocation *location)
u16 size;
u8 status;
- sector = a1 + gLastWrittenSector;
+ sector = sectorId + gLastWrittenSector;
sector %= SECTOR_SAVE_SLOT_LENGTH;
sector += SECTOR_SAVE_SLOT_LENGTH * (gSaveCounter % 2);
- data = location[a1].data;
- size = location[a1].size;
+ data = location[sectorId].data;
+ size = location[sectorId].size;
// clear temp save section.
for (i = 0; i < sizeof(struct SaveSection); i++)
((char *)gFastSaveSection)[i] = 0;
- gFastSaveSection->id = a1;
+ gFastSaveSection->id = sectorId;
gFastSaveSection->security = UNKNOWN_CHECK_VALUE;
gFastSaveSection->counter = gSaveCounter;
@@ -318,53 +318,53 @@ static u8 ClearSaveData_2(u16 a1, const struct SaveSectionLocation *location)
EraseFlashSector(sector);
- status = 1;
+ status = SAVE_STATUS_OK;
for (i = 0; i < sizeof(struct UnkSaveSection); i++)
{
if (ProgramFlashByte(sector, i, ((u8 *)gFastSaveSection)[i]))
{
- status = 0xFF;
+ status = SAVE_STATUS_ERROR;
break;
}
}
- if (status == 0xFF)
+ if (status == SAVE_STATUS_ERROR)
{
SetDamagedSectorBits(ENABLE, sector);
- return 0xFF;
+ return SAVE_STATUS_ERROR;
}
else
{
- status = 1;
+ status = SAVE_STATUS_OK;
for (i = 0; i < 7; i++)
{
if (ProgramFlashByte(sector, 0xFF9 + i, ((u8 *)gFastSaveSection)[0xFF9 + i]))
{
- status = 0xFF;
+ status = SAVE_STATUS_ERROR;
break;
}
}
- if (status == 0xFF)
+ if (status == SAVE_STATUS_ERROR)
{
SetDamagedSectorBits(ENABLE, sector);
- return 0xFF;
+ return SAVE_STATUS_ERROR;
}
else
{
SetDamagedSectorBits(DISABLE, sector);
- return 1;
+ return SAVE_STATUS_OK;
}
}
}
-static u8 sav12_xor_get(u16 a1, const struct SaveSectionLocation *location)
+static u8 sav12_xor_get(u16 sectorId, const struct SaveSectionLocation *location)
{
u16 sector;
- sector = a1 + gLastWrittenSector; // no sub 1?
+ sector = sectorId + gLastWrittenSector; // no sub 1?
sector %= SECTOR_SAVE_SLOT_LENGTH;
sector += SECTOR_SAVE_SLOT_LENGTH * (gSaveCounter % 2);
@@ -374,20 +374,20 @@ static u8 sav12_xor_get(u16 a1, const struct SaveSectionLocation *location)
SetDamagedSectorBits(ENABLE, sector);
gLastWrittenSector = gLastKnownGoodSector;
gSaveCounter = gLastSaveCounter;
- return 0xFF;
+ return SAVE_STATUS_ERROR;
}
else
{
SetDamagedSectorBits(DISABLE, sector);
- return 1;
+ return SAVE_STATUS_OK;
}
}
-static u8 sub_8152CAC(u16 a1, const struct SaveSectionLocation *location)
+static u8 sub_8152CAC(u16 sectorId, const struct SaveSectionLocation *location)
{
u16 sector;
- sector = a1 + gLastWrittenSector - 1;
+ sector = sectorId + gLastWrittenSector - 1;
sector %= SECTOR_SAVE_SLOT_LENGTH;
sector += SECTOR_SAVE_SLOT_LENGTH * (gSaveCounter % 2);
@@ -397,20 +397,20 @@ static u8 sub_8152CAC(u16 a1, const struct SaveSectionLocation *location)
SetDamagedSectorBits(ENABLE, sector);
gLastWrittenSector = gLastKnownGoodSector;
gSaveCounter = gLastSaveCounter;
- return 0xFF;
+ return SAVE_STATUS_ERROR;
}
else
{
SetDamagedSectorBits(DISABLE, sector);
- return 1;
+ return SAVE_STATUS_OK;
}
}
-static u8 sub_8152D44(u16 a1, const struct SaveSectionLocation *location)
+static u8 sub_8152D44(u16 sectorId, const struct SaveSectionLocation *location)
{
u16 sector;
- sector = a1 + gLastWrittenSector - 1; // no sub 1?
+ sector = sectorId + gLastWrittenSector - 1; // no sub 1?
sector %= SECTOR_SAVE_SLOT_LENGTH;
sector += SECTOR_SAVE_SLOT_LENGTH * (gSaveCounter % 2);
@@ -420,30 +420,30 @@ static u8 sub_8152D44(u16 a1, const struct SaveSectionLocation *location)
SetDamagedSectorBits(ENABLE, sector);
gLastWrittenSector = gLastKnownGoodSector;
gSaveCounter = gLastSaveCounter;
- return 0xFF;
+ return SAVE_STATUS_ERROR;
}
else
{
SetDamagedSectorBits(DISABLE, sector);
- return 1;
+ return SAVE_STATUS_OK;
}
}
static u8 sub_8152DD0(u16 a1, const struct SaveSectionLocation *location)
{
- u8 retVal;
+ u8 status;
gFastSaveSection = &gSaveDataBuffer;
if (a1 != 0xFFFF)
{
- retVal = 0xFF;
+ status = SAVE_STATUS_ERROR;
}
else
{
- retVal = GetSaveValidStatus(location);
+ status = GetSaveValidStatus(location);
sub_8152E10(0xFFFF, location);
}
- return retVal;
+ return status;
}
static u8 sub_8152E10(u16 a1, const struct SaveSectionLocation *location)
@@ -469,7 +469,7 @@ static u8 sub_8152E10(u16 a1, const struct SaveSectionLocation *location)
}
}
- return 1;
+ return SAVE_STATUS_OK;
}
static u8 GetSaveValidStatus(const struct SaveSectionLocation *location)
@@ -502,13 +502,13 @@ static u8 GetSaveValidStatus(const struct SaveSectionLocation *location)
if (securityPassed)
{
if (slotCheckField == 0x3FFF)
- saveSlot1Status = 1;
+ saveSlot1Status = SAVE_STATUS_OK;
else
- saveSlot1Status = 255;
+ saveSlot1Status = SAVE_STATUS_ERROR;
}
else
{
- saveSlot1Status = 0;
+ saveSlot1Status = SAVE_STATUS_EMPTY;
}
slotCheckField = 0;
@@ -533,16 +533,16 @@ static u8 GetSaveValidStatus(const struct SaveSectionLocation *location)
if (securityPassed)
{
if (slotCheckField == 0x3FFF)
- saveSlot2Status = 1;
+ saveSlot2Status = SAVE_STATUS_OK;
else
- saveSlot2Status = 255;
+ saveSlot2Status = SAVE_STATUS_ERROR;
}
else
{
- saveSlot2Status = 0;
+ saveSlot2Status = SAVE_STATUS_EMPTY;
}
- if (saveSlot1Status == 1 && saveSlot2Status == 1)
+ if (saveSlot1Status == SAVE_STATUS_OK && saveSlot2Status == SAVE_STATUS_OK)
{
if ((saveSlot1Counter == -1 && saveSlot2Counter == 0) || (saveSlot1Counter == 0 && saveSlot2Counter == -1))
{
@@ -558,42 +558,42 @@ static u8 GetSaveValidStatus(const struct SaveSectionLocation *location)
else
gSaveCounter = saveSlot1Counter;
}
- return 1;
+ return SAVE_STATUS_OK;
}
- if (saveSlot1Status == 1)
+ if (saveSlot1Status == SAVE_STATUS_OK)
{
gSaveCounter = saveSlot1Counter;
- if (saveSlot2Status == 255)
- return 255;
- return 1;
+ if (saveSlot2Status == SAVE_STATUS_ERROR)
+ return SAVE_STATUS_ERROR;
+ return SAVE_STATUS_OK;
}
- if (saveSlot2Status == 1)
+ if (saveSlot2Status == SAVE_STATUS_OK)
{
gSaveCounter = saveSlot2Counter;
- if (saveSlot1Status == 255)
- return 255;
- return 1;
+ if (saveSlot1Status == SAVE_STATUS_ERROR)
+ return SAVE_STATUS_ERROR;
+ return SAVE_STATUS_OK;
}
- if (saveSlot1Status == 0 && saveSlot2Status == 0)
+ if (saveSlot1Status == SAVE_STATUS_EMPTY && saveSlot2Status == SAVE_STATUS_EMPTY)
{
gSaveCounter = 0;
gLastWrittenSector = 0;
- return 0;
+ return SAVE_STATUS_EMPTY;
}
gSaveCounter = 0;
gLastWrittenSector = 0;
- return 2;
+ return SAVE_STATUS_CORRUPT;
}
-static u8 sub_81530DC(u8 a1, u8 *data, u16 size)
+static u8 sub_81530DC(u8 sectorId, u8 *data, u16 size)
{
u16 i;
struct SaveSection *section = &gSaveDataBuffer;
- DoReadFlashWholeSection(a1, section);
+ DoReadFlashWholeSection(sectorId, section);
if (section->security == UNKNOWN_CHECK_VALUE)
{
u16 checksum = CalculateChecksum(section->data, size);
@@ -601,23 +601,24 @@ static u8 sub_81530DC(u8 a1, u8 *data, u16 size)
{
for (i = 0; i < size; i++)
data[i] = section->data[i];
- return 1;
+ return SAVE_STATUS_OK;
}
else
{
- return 2;
+ return SAVE_STATUS_CORRUPT;
}
}
else
{
- return 0;
+ return SAVE_STATUS_EMPTY;
}
}
-static u8 DoReadFlashWholeSection(u8 sector, struct SaveSection *section)
+// Return value always ignored
+static bool8 DoReadFlashWholeSection(u8 sector, struct SaveSection *section)
{
ReadFlash(sector, 0, section->data, sizeof(struct SaveSection));
- return 1;
+ return TRUE;
}
static u16 CalculateChecksum(void *data, u16 size)
@@ -638,19 +639,19 @@ static void UpdateSaveAddresses(void)
{
int i = 0;
- gRamSaveSectionLocations[i].data = (void*)(gSaveBlock2Ptr) + gSaveSectionOffsets[i].toAdd;
- gRamSaveSectionLocations[i].size = gSaveSectionOffsets[i].size;
+ gRamSaveSectionLocations[i].data = (void*)(gSaveBlock2Ptr) + sSaveSectionOffsets[i].toAdd;
+ gRamSaveSectionLocations[i].size = sSaveSectionOffsets[i].size;
- for (i = 1; i < 5; i++)
+ for (i = SECTOR_ID_SAVEBLOCK1_START; i <= SECTOR_ID_SAVEBLOCK1_END; i++)
{
- gRamSaveSectionLocations[i].data = (void*)(gSaveBlock1Ptr) + gSaveSectionOffsets[i].toAdd;
- gRamSaveSectionLocations[i].size = gSaveSectionOffsets[i].size;
+ gRamSaveSectionLocations[i].data = (void*)(gSaveBlock1Ptr) + sSaveSectionOffsets[i].toAdd;
+ gRamSaveSectionLocations[i].size = sSaveSectionOffsets[i].size;
}
- for (i = 5; i < 14; i++)
+ for (i = SECTOR_ID_PKMN_STORAGE_START; i <= SECTOR_ID_PKMN_STORAGE_END; i++)
{
- gRamSaveSectionLocations[i].data = (void*)(gPokemonStoragePtr) + gSaveSectionOffsets[i].toAdd;
- gRamSaveSectionLocations[i].size = gSaveSectionOffsets[i].size;
+ gRamSaveSectionLocations[i].data = (void*)(gPokemonStoragePtr) + sSaveSectionOffsets[i].toAdd;
+ gRamSaveSectionLocations[i].size = sSaveSectionOffsets[i].size;
i++;i--; // needed to match
}
@@ -673,36 +674,36 @@ u8 HandleSavingData(u8 saveType)
if (GetGameStat(GAME_STAT_ENTERED_HOF) < 999)
IncrementGameStat(GAME_STAT_ENTERED_HOF);
SaveSerializedGame();
- save_write_to_flash(0xFFFF, gRamSaveSectionLocations);
+ SaveWriteToFlash(0xFFFF, gRamSaveSectionLocations);
tempAddr = gDecompressionBuffer;
- HandleWriteSectorNBytes(SECTOR_ID_HOF_1, tempAddr, 0xF80);
- HandleWriteSectorNBytes(SECTOR_ID_HOF_2, tempAddr + 0xF80, 0xF80);
+ HandleWriteSectorNBytes(SECTOR_ID_HOF_1, tempAddr, SECTOR_DATA_SIZE);
+ HandleWriteSectorNBytes(SECTOR_ID_HOF_2, tempAddr + SECTOR_DATA_SIZE, SECTOR_DATA_SIZE);
break;
case SAVE_NORMAL: // normal save. also called by overwriting your own save.
default:
SaveSerializedGame();
- save_write_to_flash(0xFFFF, gRamSaveSectionLocations);
+ SaveWriteToFlash(0xFFFF, gRamSaveSectionLocations);
break;
case SAVE_LINK: // Link and Battle Frontier
case SAVE_LINK2: // Unused
SaveSerializedGame();
- for(i = 0; i < 5; i++)
+ for(i = SECTOR_ID_SAVEBLOCK2; i <= SECTOR_ID_SAVEBLOCK1_END; i++)
ClearSaveData_2(i, gRamSaveSectionLocations);
- for(i = 0; i < 5; i++)
+ for(i = SECTOR_ID_SAVEBLOCK2; i <= SECTOR_ID_SAVEBLOCK1_END; i++)
sav12_xor_get(i, gRamSaveSectionLocations);
break;
// Support for Ereader was removed in Emerald.
/*
case EREADER_SAVE: // used in mossdeep "game corner" before/after battling old man e-reader trainer
SaveSerializedGame();
- save_write_to_flash(0, gRamSaveSectionLocations);
+ SaveWriteToFlash(0, gRamSaveSectionLocations);
break;
*/
case SAVE_OVERWRITE_DIFFERENT_FILE:
for (i = SECTOR_ID_HOF_1; i < SECTORS_COUNT; i++)
EraseFlashSector(i); // erase HOF.
SaveSerializedGame();
- save_write_to_flash(0xFFFF, gRamSaveSectionLocations);
+ SaveWriteToFlash(0xFFFF, gRamSaveSectionLocations);
break;
}
gTrainerHillVBlankCounter = backupVar;
@@ -713,25 +714,25 @@ u8 TrySavingData(u8 saveType)
{
if (gFlashMemoryPresent != TRUE)
{
- gUnknown_03006294 = 0xFF;
- return 0xFF;
+ gSaveAttemptStatus = SAVE_STATUS_ERROR;
+ return SAVE_STATUS_ERROR;
}
HandleSavingData(saveType);
if (!gDamagedSaveSectors)
{
- gUnknown_03006294 = 1;
- return 1;
+ gSaveAttemptStatus = SAVE_STATUS_OK;
+ return SAVE_STATUS_OK;
}
else
{
DoSaveFailedScreen(saveType);
- gUnknown_03006294 = 0xFF;
- return 0xFF;
+ gSaveAttemptStatus = SAVE_STATUS_ERROR;
+ return SAVE_STATUS_ERROR;
}
}
-bool8 sub_8153380(void) // trade.s save
+bool8 sub_8153380(void) // trade.c
{
if (gFlashMemoryPresent != TRUE)
return TRUE;
@@ -741,92 +742,92 @@ bool8 sub_8153380(void) // trade.s save
return FALSE;
}
-bool8 sub_81533AC(void) // trade.s save
+bool8 sub_81533AC(void) // trade.c
{
- u8 retVal = sub_81529D4(SECTOR_SAVE_SLOT_LENGTH, gRamSaveSectionLocations);
+ u8 status = sub_81529D4(SECTOR_SAVE_SLOT_LENGTH, gRamSaveSectionLocations);
if (gDamagedSaveSectors)
- DoSaveFailedScreen(0);
- if (retVal == 0xFF)
+ DoSaveFailedScreen(SAVE_NORMAL);
+ if (status == SAVE_STATUS_ERROR)
return TRUE;
else
return FALSE;
}
-u8 sub_81533E0(void) // trade.s save
+bool8 sub_81533E0(void) // trade.c
{
sub_8152A34(SECTOR_SAVE_SLOT_LENGTH, gRamSaveSectionLocations);
if (gDamagedSaveSectors)
- DoSaveFailedScreen(0);
- return 0;
+ DoSaveFailedScreen(SAVE_NORMAL);
+ return FALSE;
}
-u8 sub_8153408(void) // trade.s save
+bool8 sub_8153408(void) // trade.c
{
sub_8152CAC(SECTOR_SAVE_SLOT_LENGTH, gRamSaveSectionLocations);
if (gDamagedSaveSectors)
- DoSaveFailedScreen(0);
- return 0;
+ DoSaveFailedScreen(SAVE_NORMAL);
+ return FALSE;
}
u8 FullSaveGame(void)
{
if (gFlashMemoryPresent != TRUE)
- return 1;
+ return TRUE;
UpdateSaveAddresses();
SaveSerializedGame();
RestoreSaveBackupVars(gRamSaveSectionLocations);
sub_8152A34(gUnknown_03006208 + 1, gRamSaveSectionLocations);
- return 0;
+ return FALSE;
}
bool8 CheckSaveFile(void)
{
u8 retVal = FALSE;
- u16 val = ++gUnknown_03006208;
- if (val <= 4)
+ u16 sectorId = ++gUnknown_03006208;
+ if (sectorId <= SECTOR_ID_SAVEBLOCK1_END)
{
sub_8152A34(gUnknown_03006208 + 1, gRamSaveSectionLocations);
- sub_8152D44(val, gRamSaveSectionLocations);
+ sub_8152D44(sectorId, gRamSaveSectionLocations);
}
else
{
- sub_8152D44(val, gRamSaveSectionLocations);
+ sub_8152D44(sectorId, gRamSaveSectionLocations);
retVal = TRUE;
}
if (gDamagedSaveSectors)
- DoSaveFailedScreen(1);
+ DoSaveFailedScreen(SAVE_LINK);
return retVal;
}
-u8 Save_LoadGameData(u8 a1)
+u8 Save_LoadGameData(u8 saveType)
{
- u8 result;
+ u8 status;
if (gFlashMemoryPresent != TRUE)
{
- gSaveFileStatus = 4;
- return 0xFF;
+ gSaveFileStatus = SAVE_STATUS_NO_FLASH;
+ return SAVE_STATUS_ERROR;
}
UpdateSaveAddresses();
- switch (a1)
+ switch (saveType)
{
- case 0:
+ case SAVE_NORMAL:
default:
- result = sub_8152DD0(0xFFFF, gRamSaveSectionLocations);
+ status = sub_8152DD0(0xFFFF, gRamSaveSectionLocations);
LoadSerializedGame();
- gSaveFileStatus = result;
+ gSaveFileStatus = status;
gGameContinueCallback = 0;
break;
- case 3:
- result = sub_81530DC(0x1C, gDecompressionBuffer, 0xF80);
- if(result == 1)
- result = sub_81530DC(0x1D, gDecompressionBuffer + 0xF80, 0xF80);
+ case SAVE_HALL_OF_FAME:
+ status = sub_81530DC(SECTOR_ID_HOF_1, gDecompressionBuffer, SECTOR_DATA_SIZE);
+ if (status == SAVE_STATUS_OK)
+ status = sub_81530DC(SECTOR_ID_HOF_2, gDecompressionBuffer + SECTOR_DATA_SIZE, SECTOR_DATA_SIZE);
break;
}
- return result;
+ return status;
}
u16 sub_815355C(void)
@@ -836,7 +837,7 @@ u16 sub_815355C(void)
savSection = gFastSaveSection = &gSaveDataBuffer;
if (gFlashMemoryPresent != TRUE)
- return 0;
+ return SAVE_STATUS_EMPTY;
UpdateSaveAddresses();
GetSaveValidStatus(gRamSaveSectionLocations);
v3 = SECTOR_SAVE_SLOT_LENGTH * (gSaveCounter % 2);
@@ -849,7 +850,7 @@ u16 sub_815355C(void)
savSection->data[12] +
savSection->data[13];
}
- return 0;
+ return SAVE_STATUS_EMPTY;
}
u32 TryReadSpecialSaveSection(u8 sector, u8* dst)
@@ -859,17 +860,17 @@ u32 TryReadSpecialSaveSection(u8 sector, u8* dst)
u8* savData;
if (sector != SECTOR_ID_TRAINER_HILL && sector != SECTOR_ID_RECORDED_BATTLE)
- return 0xFF;
+ return SAVE_STATUS_ERROR;
ReadFlash(sector, 0, (u8 *)&gSaveDataBuffer, sizeof(struct SaveSection));
if (*(u32*)(&gSaveDataBuffer.data[0]) != SPECIAL_SECTION_SENTINEL)
- return 0xFF;
+ return SAVE_STATUS_ERROR;
// copies whole save section except u32 counter
i = 0;
size = 0xFFB;
savData = &gSaveDataBuffer.data[4];
for (; i <= size; i++)
dst[i] = savData[i];
- return 1;
+ return SAVE_STATUS_OK;
}
u32 TryWriteSpecialSaveSection(u8 sector, u8* src)
@@ -880,7 +881,7 @@ u32 TryWriteSpecialSaveSection(u8 sector, u8* src)
void* savDataBuffer;
if (sector != SECTOR_ID_TRAINER_HILL && sector != SECTOR_ID_RECORDED_BATTLE)
- return 0xFF;
+ return SAVE_STATUS_ERROR;
savDataBuffer = &gSaveDataBuffer;
*(u32*)(savDataBuffer) = SPECIAL_SECTION_SENTINEL;
@@ -892,8 +893,8 @@ u32 TryWriteSpecialSaveSection(u8 sector, u8* src)
for (; i <= size; i++)
savData[i] = src[i];
if (ProgramFlashSectorAndVerify(sector, savDataBuffer) != 0)
- return 0xFF;
- return 1;
+ return SAVE_STATUS_ERROR;
+ return SAVE_STATUS_OK;
}
void sub_8153688(u8 taskId)
diff --git a/src/script_pokemon_util_80F87D8.c b/src/script_pokemon_util_80F87D8.c
index 00605d858..243125448 100755
--- a/src/script_pokemon_util_80F87D8.c
+++ b/src/script_pokemon_util_80F87D8.c
@@ -52,6 +52,7 @@ void SetContestTrainerGfxIds(void)
gSaveBlock1Ptr->vars[VAR_OBJ_GFX_ID_2 - VARS_START] = gContestMons[2].trainerGfxId;
}
+// Unused
void sub_80F8814(void)
{
u16 var1;
@@ -82,7 +83,8 @@ void BufferContestTrainerAndMonNames(void)
BufferContestantMonSpecies();
}
-void sub_80F8864(void)
+// Unused
+void DoesContestCategoryHaveWinner(void)
{
int contestWinner;
switch (gSpecialVar_ContestCategory)
@@ -105,10 +107,10 @@ void sub_80F8864(void)
break;
}
- if (!gSaveBlock1Ptr->contestWinners[contestWinner].species)
- gSpecialVar_0x8004 = 0;
+ if (gSaveBlock1Ptr->contestWinners[contestWinner].species == SPECIES_NONE)
+ gSpecialVar_0x8004 = FALSE;
else
- gSpecialVar_0x8004 = 1;
+ gSpecialVar_0x8004 = TRUE;
}
void SaveMuseumContestPainting(void)
@@ -144,9 +146,10 @@ u8 CountPlayerContestPaintings(void)
return count;
}
+// Unused
void sub_80F8970(void)
{
- s16 sp[4];
+ s16 conditions[CONTESTANT_COUNT];
int i, j;
s16 condition;
s8 var0;
@@ -154,28 +157,27 @@ void sub_80F8970(void)
u8 r8;
u8 r7;
- for (i = 0; i < 4; i++)
- sp[i] = gContestMonConditions[i];
+ for (i = 0; i < CONTESTANT_COUNT; i++)
+ conditions[i] = gContestMonConditions[i];
- for (i = 0; i < 3; i++)
+ for (i = 0; i < CONTESTANT_COUNT - 1; i++)
{
- for (j = 3; j > i; j--)
+ for (j = CONTESTANT_COUNT - 1; j > i; j--)
{
- if (sp[j - 1] < sp[j])
+ if (conditions[j - 1] < conditions[j])
{
- int temp = sp[j];
- sp[j] = sp[j - 1];
- sp[j - 1] = temp;
+ int temp;
+ SWAP(conditions[j], conditions[j - 1], temp)
}
}
}
- condition = sp[gSpecialVar_0x8006];
+ condition = conditions[gSpecialVar_0x8006];
var0 = 0;
r8 = 0;
- for (i = 0; i < 4; i++)
+ for (i = 0; i < CONTESTANT_COUNT; i++)
{
- if (sp[i] == condition)
+ if (conditions[i] == condition)
{
var0++;
if (i == gSpecialVar_0x8006)
@@ -183,15 +185,15 @@ void sub_80F8970(void)
}
}
- for (i = 0; i < 4; i++)
+ for (i = 0; i < CONTESTANT_COUNT; i++)
{
- if (sp[i] == condition)
+ if (conditions[i] == condition)
break;
}
r7 = i;
var2 = r8;
- for (i = 0; i < 4; i++)
+ for (i = 0; i < CONTESTANT_COUNT; i++)
{
if (condition == gContestMonConditions[i])
{
@@ -704,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();
diff --git a/src/secret_base.c b/src/secret_base.c
index 8f954c6e8..31fd901e0 100644
--- a/src/secret_base.c
+++ b/src/secret_base.c
@@ -41,11 +41,13 @@
#include "constants/maps.h"
#include "constants/map_types.h"
#include "constants/metatile_behaviors.h"
+#include "constants/metatile_labels.h"
#include "constants/moves.h"
#include "constants/secret_bases.h"
#include "constants/songs.h"
#include "constants/species.h"
#include "constants/trainers.h"
+#include "constants/tv.h"
struct SecretBaseRegistryMenu
{
@@ -88,13 +90,13 @@ static u8 GetSecretBaseOwnerType(u8 secretBaseId);
static const struct SecretBaseEntranceMetatiles sSecretBaseEntranceMetatiles[] =
{
- {.closedMetatileId = 0x0026, .openMetatileId = 0x0036},
- {.closedMetatileId = 0x0027, .openMetatileId = 0x0037},
- {.closedMetatileId = 0x01a0, .openMetatileId = 0x01a1},
- {.closedMetatileId = 0x01a8, .openMetatileId = 0x01a9},
- {.closedMetatileId = 0x01b0, .openMetatileId = 0x01b1},
- {.closedMetatileId = 0x0208, .openMetatileId = 0x0210},
- {.closedMetatileId = 0x0271, .openMetatileId = 0x0278},
+ {.closedMetatileId = METATILE_General_SecretBase_TreeLeft, .openMetatileId = METATILE_General_SecretBase_VineLeft},
+ {.closedMetatileId = METATILE_General_SecretBase_TreeRight, .openMetatileId = METATILE_General_SecretBase_VineRight},
+ {.closedMetatileId = METATILE_General_RedCaveIndent, .openMetatileId = METATILE_General_RedCaveOpen},
+ {.closedMetatileId = METATILE_General_YellowCaveIndent, .openMetatileId = METATILE_General_YellowCaveOpen},
+ {.closedMetatileId = METATILE_General_BlueCaveIndent, .openMetatileId = METATILE_General_BlueCaveOpen},
+ {.closedMetatileId = METATILE_Fallarbor_BrownCaveIndent, .openMetatileId = METATILE_Fallarbor_BrownCaveOpen},
+ {.closedMetatileId = METATILE_Fortree_SecretBase_Shrub, .openMetatileId = METATILE_Fortree_SecretBase_ShrubOpen},
};
// mapNum, warpId, x, y
@@ -452,10 +454,10 @@ static void EnterNewlyCreatedSecretBase_StartFadeIn(void)
ScriptContext2_Enable();
HideMapNamePopUpWindow();
- FindMetatileIdMapCoords(&x, &y, 0x220);
+ FindMetatileIdMapCoords(&x, &y, METATILE_SecretBase_PC);
x += 7;
y += 7;
- MapGridSetMetatileIdAt(x, y, 0x220 | METATILE_COLLISION_MASK);
+ MapGridSetMetatileIdAt(x, y, METATILE_SecretBase_PC | METATILE_COLLISION_MASK);
CurrentMapDrawMetatileAt(x, y);
FadeInFromBlack();
CreateTask(EnterNewlyCreatedSecretBase_WaitFadeIn, 0);
@@ -506,7 +508,7 @@ void InitSecretBaseAppearance(bool8 hidePC)
secretBaseId = VarGet(VAR_CURRENT_SECRET_BASE);
decorations = gSaveBlock1Ptr->secretBases[secretBaseId].decorations;
decorPos = gSaveBlock1Ptr->secretBases[secretBaseId].decorationPositions;
- for (x = 0; x < 16; x++)
+ for (x = 0; x < DECOR_MAX_SECRET_BASE; x++)
{
if (decorations[x] > 0 && decorations[x] <= NUM_DECORATIONS && gDecorations[decorations[x]].permission != DECORPERM_SPRITE)
ShowDecorationOnMap((decorPos[x] >> 4) + 7, (decorPos[x] & 0xF) + 7, decorations[x]);
@@ -515,14 +517,14 @@ void InitSecretBaseAppearance(bool8 hidePC)
if (secretBaseId != 0)
{
// Another player's secret base. Change PC type to the "Register" PC.
- FindMetatileIdMapCoords(&x, &y, 0x220);
- MapGridSetMetatileIdAt(x + 7, y + 7, 0x221 | METATILE_COLLISION_MASK);
+ FindMetatileIdMapCoords(&x, &y, METATILE_SecretBase_PC);
+ MapGridSetMetatileIdAt(x + 7, y + 7, METATILE_SecretBase_RegisterPC | METATILE_COLLISION_MASK);
}
else if (hidePC == TRUE && VarGet(VAR_SECRET_BASE_INITIALIZED) == 1)
{
// Change PC to regular ground tile.
- FindMetatileIdMapCoords(&x, &y, 0x220);
- MapGridSetMetatileIdAt(x + 7, y + 7, 0x20a | METATILE_COLLISION_MASK);
+ FindMetatileIdMapCoords(&x, &y, METATILE_SecretBase_PC);
+ MapGridSetMetatileIdAt(x + 7, y + 7, METATILE_SecretBase_Ground | METATILE_COLLISION_MASK);
}
}
}
@@ -1174,48 +1176,60 @@ void SecretBasePerStepCallback(u8 taskId)
VarSet(VAR_SECRET_BASE_STEP_COUNTER, VarGet(VAR_SECRET_BASE_STEP_COUNTER) + 1);
behavior = MapGridGetMetatileBehaviorAt(x, y);
tileId = MapGridGetMetatileIdAt(x, y);
- if (tileId == 0x234 || tileId == 0x23C)
+ if (tileId == METATILE_SecretBase_Board_Top || tileId == METATILE_SecretBase_Board_Bottom)
{
if (sInFriendSecretBase == TRUE)
{
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x20);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_SOLID_BOARD);
}
}
- else if (tileId == 0x2b8 || tileId == 0x2b9 || tileId == 0x2ba || tileId == 0x2c0 || tileId == 0x2c1 || tileId == 0x2c2 || tileId == 0x2c8 || tileId == 0x2c9 || tileId == 0x2ca)
+ else if (tileId == METATILE_SecretBase_SmallChair
+ || tileId == METATILE_SecretBase_PokemonChair
+ || tileId == METATILE_SecretBase_HeavyChair
+ || tileId == METATILE_SecretBase_PrettyChair
+ || tileId == METATILE_SecretBase_ComfortChair
+ || tileId == METATILE_SecretBase_RaggedChair
+ || tileId == METATILE_SecretBase_BrickChair
+ || tileId == METATILE_SecretBase_CampChair
+ || tileId == METATILE_SecretBase_HardChair)
{
if (sInFriendSecretBase == TRUE)
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x01);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_CHAIR);
}
- else if (tileId == 0x239 || tileId == 0x241 || tileId == 0x251 || tileId == 0x259)
+ else if (tileId == METATILE_SecretBase_RedTent_DoorTop
+ || tileId == METATILE_SecretBase_RedTent_Door
+ || tileId == METATILE_SecretBase_BlueTent_DoorTop
+ || tileId == METATILE_SecretBase_BlueTent_Door)
{
if (sInFriendSecretBase == TRUE)
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x04);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_TENT);
}
- else if ((behavior == 0x34 && tileId == 0x26d) || (behavior == 0x35 && MapGridGetMetatileIdAt(x, y) == 0x26a))
+ else if ((behavior == MB_IMPASSABLE_NORTHEAST && tileId == METATILE_SecretBase_Stand_RightCorner)
+ || (behavior == MB_IMPASSABLE_NORTHWEST && MapGridGetMetatileIdAt(x, y) == METATILE_SecretBase_Stand_LeftCorner))
{
if (sInFriendSecretBase == TRUE)
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x200);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_STAND);
}
- else if (behavior == 0xc1 && tileId == 0x23d)
+ else if (behavior == MB_IMPASSABLE_WEST_AND_EAST && tileId == METATILE_SecretBase_Slide_Stairs)
{
if (sInFriendSecretBase == TRUE)
{
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) ^ 0x1000);
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x2000);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) ^ SECRET_BASE_USED_SLIDE);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_DECLINED_SLIDE);
}
}
- else if (behavior == 0x47 && tileId == 0x23e)
+ else if (behavior == MB_SLIDE_SOUTH && tileId == METATILE_SecretBase_Slide)
{
if (sInFriendSecretBase == TRUE)
{
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x1000);
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) ^ 0x2000);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_SLIDE);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) ^ SECRET_BASE_DECLINED_SLIDE);
}
}
else if (MetatileBehavior_IsSecretBaseGlitterMat(behavior) == TRUE)
{
if (sInFriendSecretBase == TRUE)
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x80);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_GLITTER_MAT);
}
else if (MetatileBehavior_IsSecretBaseBalloon(behavior) == TRUE)
{
@@ -1224,13 +1238,13 @@ void SecretBasePerStepCallback(u8 taskId)
{
switch ((int)MapGridGetMetatileIdAt(x, y))
{
- case 0x338:
- case 0x33c:
- case 0x340:
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x02);
+ case METATILE_SecretBase_RedBalloon:
+ case METATILE_SecretBase_BlueBalloon:
+ case METATILE_SecretBase_YellowBalloon:
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_BALLOON);
break;
- case 0x228:
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x100);
+ case METATILE_SecretBase_MudBall:
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_MUD_BALL);
break;
}
}
@@ -1238,23 +1252,23 @@ void SecretBasePerStepCallback(u8 taskId)
else if (MetatileBehavior_IsSecretBaseBreakableDoor(behavior) == TRUE)
{
if (sInFriendSecretBase == TRUE)
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x400);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_BREAKABLE_DOOR);
ShatterSecretBaseBreakableDoor(x, y);
}
else if (MetatileBehavior_IsSecretBaseSoundMat(behavior) == TRUE){
if (sInFriendSecretBase == TRUE)
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x8000);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_NOTE_MAT);
}
else if (MetatileBehavior_IsSecretBaseJumpMat(behavior) == TRUE)
{
if (sInFriendSecretBase == TRUE)
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x4000);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_JUMP_MAT);
}
else if (MetatileBehavior_IsSecretBaseSpinMat(behavior) == TRUE)
{
if (sInFriendSecretBase == TRUE)
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x02);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_SPIN_MAT);
}
}
break;
@@ -1417,9 +1431,8 @@ static void SortSecretBasesByRegistryStatus(void)
{
if ((secretBases[i].registryStatus == 0 && secretBases[j].registryStatus == 1) || (secretBases[i].registryStatus == 2 && secretBases[j].registryStatus != 2))
{
- struct SecretBase temp = secretBases[i];
- secretBases[i] = secretBases[j];
- secretBases[j] = temp;
+ struct SecretBase temp;
+ SWAP(secretBases[i], secretBases[j], temp)
}
}
}
@@ -1461,48 +1474,57 @@ bool8 SecretBaseBelongsToPlayer(struct SecretBase *secretBase)
return TRUE;
}
+#define DELETED_BASE_A (1 << 0)
+#define DELETED_BASE_B (1 << 1)
+#define DELETED_BASE_C (1 << 2)
+
void DeleteFirstOldBaseFromPlayerInRecordMixingFriendsRecords(struct SecretBase *basesA, struct SecretBase *basesB, struct SecretBase *basesC)
{
u8 i;
- u8 sbFlags = 0x0;
+ u8 sbFlags = 0;
for (i = 0; i < SECRET_BASES_COUNT; i++)
{
- if (!(sbFlags & 0x1)) // 001
+ if (!(sbFlags & DELETED_BASE_A))
{
if (SecretBaseBelongsToPlayer(&basesA[i]) == TRUE)
{
ClearSecretBase(&basesA[i]);
- sbFlags |= 1;
+ sbFlags |= DELETED_BASE_A;
}
}
- if (!(sbFlags & 0x2)) // 010
+ if (!(sbFlags & DELETED_BASE_B))
{
if (SecretBaseBelongsToPlayer(&basesB[i]) == TRUE)
{
ClearSecretBase(&basesB[i]);
- sbFlags |= 2;
+ sbFlags |= DELETED_BASE_B;
}
}
- if (!(sbFlags & 0x4)) // 100
+ if (!(sbFlags & DELETED_BASE_C))
{
if (SecretBaseBelongsToPlayer(&basesC[i]) == TRUE)
{
ClearSecretBase(&basesC[i]);
- sbFlags |= 4;
+ sbFlags |= DELETED_BASE_C;
}
}
- if (sbFlags == 0x7) // 111
+ if (sbFlags == (DELETED_BASE_A | DELETED_BASE_B | DELETED_BASE_C))
{
break;
}
}
}
-bool8 sub_80EAD14(struct SecretBase *secretBase, struct SecretBase *secretBases, u8 c)
+#undef DELETED_BASE_A
+#undef DELETED_BASE_B
+#undef DELETED_BASE_C
+
+// returns TRUE if secretBase was deleted, FALSE otherwise
+static bool8 ClearDuplicateOwnedSecretBases(struct SecretBase *secretBase, struct SecretBase *secretBases, u8 c)
{
u8 i;
@@ -1546,11 +1568,11 @@ void sub_80EAD94(struct SecretBase *basesA, struct SecretBase *basesB, struct Se
{
basesA[i].sbr_field_1_0 = 1;
}
- if (!sub_80EAD14(&basesA[i], basesB, i))
+ if (!ClearDuplicateOwnedSecretBases(&basesA[i], basesB, i))
{
- if (!sub_80EAD14(&basesA[i], basesC, i))
+ if (!ClearDuplicateOwnedSecretBases(&basesA[i], basesC, i))
{
- sub_80EAD14(&basesA[i], basesD, i);
+ ClearDuplicateOwnedSecretBases(&basesA[i], basesD, i);
}
}
}
@@ -1560,9 +1582,9 @@ void sub_80EAD94(struct SecretBase *basesA, struct SecretBase *basesB, struct Se
if (basesB[i].secretBaseId)
{
basesB[i].battledOwnerToday = 0;
- if (!sub_80EAD14(&basesB[i], basesC, i))
+ if (!ClearDuplicateOwnedSecretBases(&basesB[i], basesC, i))
{
- sub_80EAD14(&basesB[i], basesD, i);
+ ClearDuplicateOwnedSecretBases(&basesB[i], basesD, i);
}
}
}
@@ -1571,7 +1593,7 @@ void sub_80EAD94(struct SecretBase *basesA, struct SecretBase *basesB, struct Se
if (basesC[i].secretBaseId)
{
basesC[i].battledOwnerToday = 0;
- sub_80EAD14(&basesC[i], basesD, i);
+ ClearDuplicateOwnedSecretBases(&basesC[i], basesD, i);
}
if (basesD[i].secretBaseId)
{
@@ -1617,6 +1639,17 @@ void sub_80EAEF4(struct SecretBaseRecordMixer *mixers)
sub_80EABA4(&mixers[2], 0);
}
+#define INIT_SECRET_BASE_RECORD_MIXER(linkId1, linkId2, linkId3) \
+ mixers[0].secretBases = secretBases + linkId1 * recordSize; \
+ mixers[0].version = gLinkPlayers[linkId1].version & 0xFF; \
+ mixers[0].language = gLinkPlayers[linkId1].language; \
+ mixers[1].secretBases = secretBases + linkId2 * recordSize; \
+ mixers[1].version = gLinkPlayers[linkId2].version & 0xFF; \
+ mixers[1].language = gLinkPlayers[linkId2].language; \
+ mixers[2].secretBases = secretBases + linkId3 * recordSize; \
+ mixers[2].version = gLinkPlayers[linkId3].version & 0xFF; \
+ mixers[2].language = gLinkPlayers[linkId3].language;
+
void ReceiveSecretBasesData(void *secretBases, size_t recordSize, u8 linkIdx)
{
struct SecretBaseRecordMixer mixers[3];
@@ -1638,48 +1671,16 @@ void ReceiveSecretBasesData(void *secretBases, size_t recordSize, u8 linkIdx)
switch (linkIdx)
{
case 0:
- mixers[0].secretBases = secretBases + 1 * recordSize;
- mixers[0].version = gLinkPlayers[1].version & 0xFF;
- mixers[0].language = gLinkPlayers[1].language;
- mixers[1].secretBases = secretBases + 2 * recordSize;
- mixers[1].version = gLinkPlayers[2].version & 0xFF;
- mixers[1].language = gLinkPlayers[2].language;
- mixers[2].secretBases = secretBases + 3 * recordSize;
- mixers[2].version = gLinkPlayers[3].version & 0xFF;
- mixers[2].language = gLinkPlayers[3].language;
+ INIT_SECRET_BASE_RECORD_MIXER(1, 2, 3)
break;
case 1:
- mixers[0].secretBases = secretBases + 2 * recordSize;
- mixers[0].version = gLinkPlayers[2].version & 0xFF;
- mixers[0].language = gLinkPlayers[2].language;
- mixers[1].secretBases = secretBases + 3 * recordSize;
- mixers[1].version = gLinkPlayers[3].version & 0xFF;
- mixers[1].language = gLinkPlayers[3].language;
- mixers[2].secretBases = secretBases + 0 * recordSize;
- mixers[2].version = gLinkPlayers[0].version & 0xFF;
- mixers[2].language = gLinkPlayers[0].language;
+ INIT_SECRET_BASE_RECORD_MIXER(2, 3, 0)
break;
case 2:
- mixers[0].secretBases = secretBases + 3 * recordSize;
- mixers[0].version = gLinkPlayers[3].version & 0xFF;
- mixers[0].language = gLinkPlayers[3].language;
- mixers[1].secretBases = secretBases + 0 * recordSize;
- mixers[1].version = gLinkPlayers[0].version & 0xFF;
- mixers[1].language = gLinkPlayers[0].language;
- mixers[2].secretBases = secretBases + 1 * recordSize;
- mixers[2].version = gLinkPlayers[1].version & 0xFF;
- mixers[2].language = gLinkPlayers[1].language;
+ INIT_SECRET_BASE_RECORD_MIXER(3, 0, 1)
break;
case 3:
- mixers[0].secretBases = secretBases + 0 * recordSize;
- mixers[0].version = gLinkPlayers[0].version & 0xFF;
- mixers[0].language = gLinkPlayers[0].language;
- mixers[1].secretBases = secretBases + 1 * recordSize;
- mixers[1].version = gLinkPlayers[1].version & 0xFF;
- mixers[1].language = gLinkPlayers[1].language;
- mixers[2].secretBases = secretBases + 2 * recordSize;
- mixers[2].version = gLinkPlayers[2].version & 0xFF;
- mixers[2].language = gLinkPlayers[2].language;
+ INIT_SECRET_BASE_RECORD_MIXER(0, 1, 2)
break;
}
@@ -1734,13 +1735,13 @@ void InitSecretBaseVars(void)
sInFriendSecretBase = FALSE;
}
-void sub_80EB218(void)
+void CheckLeftFriendsSecretBase(void)
{
if (VarGet(VAR_SECRET_BASE_IS_NOT_LOCAL) && sInFriendSecretBase == TRUE && !CurMapIsSecretBase())
{
VarSet(VAR_SECRET_BASE_IS_NOT_LOCAL, FALSE);
sInFriendSecretBase = FALSE;
- sub_80EEA70();
+ TryPutSecretBaseSecretsOnAir();
VarSet(VAR_SECRET_BASE_STEP_COUNTER, 0);
VarSet(VAR_SECRET_BASE_LAST_ITEM_USED, 0);
VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, 0);
@@ -1749,252 +1750,245 @@ void sub_80EB218(void)
}
}
-void sub_80EB290(void)
+void CheckInteractedWithFriendsDollDecor(void)
{
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x800);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_DOLL);
}
-void sub_80EB2C8(void)
+void CheckInteractedWithFriendsCushionDecor(void)
{
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x400);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_CUSHION);
}
-void sub_80EB300(void)
+void DeclinedSecretBaseBattle(void)
{
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
{
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) & ~0x3800);
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) & ~0x001);
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x2000);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) & ~(SECRET_BASE_BATTLED_WON | SECRET_BASE_BATTLED_LOST | SECRET_BASE_DECLINED_BATTLE));
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) & ~(SECRET_BASE_BATTLED_DRAW));
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_DECLINED_BATTLE);
}
}
-void sub_80EB368(void)
+void WonSecretBaseBattle(void)
{
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
{
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) & ~0x3800);
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) & ~0x001);
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x800);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) & ~(SECRET_BASE_BATTLED_WON | SECRET_BASE_BATTLED_LOST | SECRET_BASE_DECLINED_BATTLE));
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) & ~(SECRET_BASE_BATTLED_DRAW));
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_BATTLED_WON);
}
}
-void sub_80EB3D0(void)
+void LostSecretBaseBattle(void)
{
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
{
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) & ~0x3800);
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) & ~0x001);
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x1000);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) & ~(SECRET_BASE_BATTLED_WON | SECRET_BASE_BATTLED_LOST | SECRET_BASE_DECLINED_BATTLE));
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) & ~(SECRET_BASE_BATTLED_DRAW));
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_BATTLED_LOST);
}
}
-void sub_80EB438(void)
+void DrewSecretBaseBattle(void)
{
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
{
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) & ~0x3800);
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) & ~0x001);
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x001);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) & ~(SECRET_BASE_BATTLED_WON | SECRET_BASE_BATTLED_LOST | SECRET_BASE_DECLINED_BATTLE));
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) & ~(SECRET_BASE_BATTLED_DRAW));
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_BATTLED_DRAW);
}
}
-void SetSecretBaseSecretsTvFlags_Poster(void)
+void CheckInteractedWithFriendsPosterDecor(void)
{
s16 x, y;
GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
switch (MapGridGetMetatileIdAt(x, y))
{
- case 0x31C:
- case 0x31D:
- case 0x31E:
- case 0x31F:
- case 0x324:
- case 0x325:
- case 0x326:
- case 0x327:
- case 0x32C:
- case 0x32D:
- case 0x330:
- case 0x331:
- case 0x332:
- case 0x333:
- case 0x334:
+ case METATILE_SecretBase_PikaPoster_Left:
+ case METATILE_SecretBase_PikaPoster_Right:
+ case METATILE_SecretBase_LongPoster_Left:
+ case METATILE_SecretBase_LongPoster_Right:
+ case METATILE_SecretBase_SeaPoster_Left:
+ case METATILE_SecretBase_SeaPoster_Right:
+ case METATILE_SecretBase_SkyPoster_Left:
+ case METATILE_SecretBase_SkyPoster_Right:
+ case METATILE_SecretBase_KissPoster_Left:
+ case METATILE_SecretBase_KissPoster_Right:
+ case METATILE_SecretBase_BallPoster:
+ case METATILE_SecretBase_GreenPoster:
+ case METATILE_SecretBase_RedPoster:
+ case METATILE_SecretBase_BluePoster:
+ case METATILE_SecretBase_CutePoster:
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x4000);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_POSTER);
break;
}
}
-void SetSecretBaseSecretsTvFlags_MiscFurnature(void)
+void CheckInteractedWithFriendsFurnitureBottom(void)
{
s16 x, y;
GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
switch (MapGridGetMetatileIdAt(x, y))
{
- case 0x28a:
- case 0x28b:
- // Bird Statue
+ case METATILE_SecretBase_GlassOrnament_Base1:
+ case METATILE_SecretBase_GlassOrnament_Base2:
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x40);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_GLASS_ORNAMENT);
break;
- case 0x2d8:
- case 0x2d9:
- case 0x2da:
- case 0x2db:
- case 0x2dc:
- case 0x2dd:
- case 0x2e8:
- case 0x2e9:
- case 0x2ea:
- case 0x2eb:
- case 0x2ec:
- case 0x2ed:
- case 0x2ee:
- case 0x2ef:
- case 0x2f8:
- case 0x2f9:
- case 0x2fa:
- case 0x2fb:
- // Plants
+ case METATILE_SecretBase_RedPlant_Base1:
+ case METATILE_SecretBase_RedPlant_Base2:
+ case METATILE_SecretBase_TropicalPlant_Base1:
+ case METATILE_SecretBase_TropicalPlant_Base2:
+ case METATILE_SecretBase_PrettyFlower_Base1:
+ case METATILE_SecretBase_PrettyFlower_Base2:
+ case METATILE_SecretBase_ColorfulFlowers_BaseLeft1:
+ case METATILE_SecretBase_ColorfulFlowers_BaseRight1:
+ case METATILE_SecretBase_ColorfulFlowers_BaseLeft2:
+ case METATILE_SecretBase_ColorfulFlowers_BaseRight2:
+ case METATILE_SecretBase_BigPlant_BaseLeft1:
+ case METATILE_SecretBase_BigPlant_BaseRight1:
+ case METATILE_SecretBase_BigPlant_BaseLeft2:
+ case METATILE_SecretBase_BigPlant_BaseRight2:
+ case METATILE_SecretBase_GorgeousPlant_BaseLeft1:
+ case METATILE_SecretBase_GorgeousPlant_BaseRight1:
+ case METATILE_SecretBase_GorgeousPlant_BaseLeft2:
+ case METATILE_SecretBase_GorgeousPlant_BaseRight2:
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
- VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x8);
+ VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_PLANT);
break;
- case 0x22c:
- case 0x233:
- // Fence
+ case METATILE_SecretBase_Fence_Horizontal:
+ case METATILE_SecretBase_Fence_Vertical:
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x40);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_FENCE);
break;
- case 0x288:
- case 0x289:
- // Tire
+ case METATILE_SecretBase_Tire_BottomLeft:
+ case METATILE_SecretBase_Tire_BottomRight:
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x100);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_TIRE);
break;
- case 0x22d:
- case 0x22e:
- case 0x22f:
- // Bricks
+ case METATILE_SecretBase_RedBrick_Bottom:
+ case METATILE_SecretBase_YellowBrick_Bottom:
+ case METATILE_SecretBase_BlueBrick_Bottom:
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x10);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_BRICK);
break;
- case 0x287:
- case 0x28f:
- case 0x298:
- case 0x299:
- case 0x29a:
- case 0x29b:
- case 0x29c:
- case 0x29d:
- case 0x29e:
- case 0x29f:
- case 0x2ab:
- case 0x2b0:
- case 0x2b1:
- case 0x2b2:
- case 0x2b4:
- case 0x2b5:
- case 0x2b6:
- case 0x2b7:
- case 0x2cb:
- case 0x2cc:
- case 0x2cd:
- case 0x2ce:
- case 0x2cf:
- // Tables
+ case METATILE_SecretBase_SmallDesk:
+ case METATILE_SecretBase_PokemonDesk:
+ case METATILE_SecretBase_HeavyDesk_BottomLeft:
+ case METATILE_SecretBase_HeavyDesk_BottomMid:
+ case METATILE_SecretBase_HeavyDesk_BottomRight:
+ case METATILE_SecretBase_RaggedDesk_BottomLeft:
+ case METATILE_SecretBase_RaggedDesk_BottomMid:
+ case METATILE_SecretBase_RaggedDesk_BottomRight:
+ case METATILE_SecretBase_ComfortDesk_BottomLeft:
+ case METATILE_SecretBase_ComfortDesk_BottomMid:
+ case METATILE_SecretBase_ComfortDesk_BottomRight:
+ case METATILE_SecretBase_BrickDesk_BottomLeft:
+ case METATILE_SecretBase_BrickDesk_BottomMid:
+ case METATILE_SecretBase_BrickDesk_BottomRight:
+ case METATILE_SecretBase_CampDesk_BottomLeft:
+ case METATILE_SecretBase_CampDesk_BottomMid:
+ case METATILE_SecretBase_CampDesk_BottomRight:
+ case METATILE_SecretBase_HardDesk_BottomLeft:
+ case METATILE_SecretBase_HardDesk_BottomMid:
+ case METATILE_SecretBase_HardDesk_BottomRight:
+ case METATILE_SecretBase_PrettyDesk_BottomLeft:
+ case METATILE_SecretBase_PrettyDesk_BottomMid:
+ case METATILE_SecretBase_PrettyDesk_BottomRight:
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x8);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_DESK);
break;
}
}
-void SetSecretBaseSecretsTvFlags_LargeDecorationSpot(void)
+void CheckInteractedWithFriendsFurnitureMiddle(void)
{
s16 x, y;
GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
switch (MapGridGetMetatileIdAt(x, y))
{
- case 0x291:
- case 0x294:
- case 0x297:
- case 0x2a1:
- case 0x2a5:
- case 0x2a9:
- case 0x2ad:
- case 0x2bb:
- case 0x2be:
- case 0x2c3:
- case 0x2c6:
+ case METATILE_SecretBase_HeavyDesk_TopMid:
+ case METATILE_SecretBase_RaggedDesk_TopMid:
+ case METATILE_SecretBase_ComfortDesk_TopMid:
+ case METATILE_SecretBase_BrickDesk_TopMid:
+ case METATILE_SecretBase_BrickDesk_Center:
+ case METATILE_SecretBase_CampDesk_TopMid:
+ case METATILE_SecretBase_CampDesk_Center:
+ case METATILE_SecretBase_HardDesk_TopMid:
+ case METATILE_SecretBase_HardDesk_Center:
+ case METATILE_SecretBase_PrettyDesk_TopMid:
+ case METATILE_SecretBase_PrettyDesk_Center:
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x8);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_DESK);
break;
}
}
-void SetSecretBaseSecretsTvFlags_SmallDecorationSpot(void)
+void CheckInteractedWithFriendsFurnitureTop(void)
{
s16 x, y;
GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
switch (MapGridGetMetatileIdAt(x, y))
{
- case 0x290:
- case 0x292:
- case 0x293:
- case 0x295:
- case 0x296:
- case 0x2a0:
- case 0x2a2:
- case 0x2a3:
- case 0x2a4:
- case 0x2a6:
- case 0x2a7:
- case 0x2a8:
- case 0x2aa:
- case 0x2ac:
- case 0x2ae:
- case 0x2af:
- case 0x2bc:
- case 0x2bd:
- case 0x2bf:
- case 0x2c4:
- case 0x2c5:
- case 0x2c7:
+ case METATILE_SecretBase_HeavyDesk_TopLeft:
+ case METATILE_SecretBase_HeavyDesk_TopRight:
+ case METATILE_SecretBase_RaggedDesk_TopLeft:
+ case METATILE_SecretBase_RaggedDesk_TopRight:
+ case METATILE_SecretBase_ComfortDesk_TopLeft:
+ case METATILE_SecretBase_ComfortDesk_TopRight:
+ case METATILE_SecretBase_BrickDesk_TopLeft:
+ case METATILE_SecretBase_BrickDesk_TopRight:
+ case METATILE_SecretBase_BrickDesk_MidLeft:
+ case METATILE_SecretBase_BrickDesk_MidRight:
+ case METATILE_SecretBase_CampDesk_TopLeft:
+ case METATILE_SecretBase_CampDesk_TopRight:
+ case METATILE_SecretBase_CampDesk_MidLeft:
+ case METATILE_SecretBase_CampDesk_MidRight:
+ case METATILE_SecretBase_HardDesk_TopLeft:
+ case METATILE_SecretBase_HardDesk_TopRight:
+ case METATILE_SecretBase_HardDesk_MidLeft:
+ case METATILE_SecretBase_HardDesk_MidRight:
+ case METATILE_SecretBase_PrettyDesk_TopLeft:
+ case METATILE_SecretBase_PrettyDesk_TopRight:
+ case METATILE_SecretBase_PrettyDesk_MidLeft:
+ case METATILE_SecretBase_PrettyDesk_MidRight:
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x8);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_DESK);
break;
- case 0x280:
- case 0x281:
+ case METATILE_SecretBase_Tire_TopLeft:
+ case METATILE_SecretBase_Tire_TopRight:
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x100);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_TIRE);
break;
- case 0x225:
- case 0x226:
- case 0x227:
+ case METATILE_SecretBase_RedBrick_Top:
+ case METATILE_SecretBase_YellowBrick_Top:
+ case METATILE_SecretBase_BlueBrick_Top:
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x10);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_BRICK);
break;
}
}
-void SetSecretBaseSecretsTvFlags_SandOrnament(void)
+void CheckInteractedWithFriendsSandOrnament(void)
{
s16 x, y;
GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
switch ((int)MapGridGetMetatileIdAt(x, y))
{
- case 0x28d:
- case 0x28e:
- // Sand Ornament
+ case METATILE_SecretBase_SandOrnament_Base1:
+ case METATILE_SecretBase_SandOrnament_Base2:
if (VarGet(VAR_CURRENT_SECRET_BASE) != 0)
- VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x4);
+ VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_SAND_ORNAMENT);
break;
}
}
diff --git a/src/start_menu.c b/src/start_menu.c
index 8aacd8065..f6cad8aec 100644
--- a/src/start_menu.c
+++ b/src/start_menu.c
@@ -966,8 +966,8 @@ static u8 SaveConfirmInputCallback(void)
case 0: // Yes
switch (gSaveFileStatus)
{
- case 0:
- case 2:
+ case SAVE_STATUS_EMPTY:
+ case SAVE_STATUS_CORRUPT:
if (gDifferentSaveFile == FALSE)
{
sSaveDialogCallback = SaveFileExistsCallback;
@@ -1059,14 +1059,10 @@ static u8 SaveDoSaveCallback(void)
saveStatus = TrySavingData(SAVE_NORMAL);
}
- if (saveStatus == 1) // Save succeded
- {
+ if (saveStatus == SAVE_STATUS_OK)
ShowSaveMessage(gText_PlayerSavedGame, SaveSuccessCallback);
- }
- else // Save error
- {
+ else
ShowSaveMessage(gText_SaveError, SaveErrorCallback);
- }
SaveStartTimer();
return SAVE_IN_PROGRESS;
diff --git a/src/trade.c b/src/trade.c
index af60d64c9..a9a0b9b2a 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -217,7 +217,7 @@ static void sub_807E55C(struct Sprite *sprite);
static void sub_807E5D8(struct Sprite *sprite);
static void sub_807E64C(struct Sprite *sprite);
static void sub_807E6AC(struct Sprite *sprite);
-static void BuffeInGameTradeMonName(void);
+static void BufferInGameTradeMonName(void);
static void SetInGameTradeMail(struct MailStruct *mail, const struct InGameTrade *trade);
static void CB2_UpdateLinkTrade(void);
static void CB2_TryFinishTrade(void);
@@ -3761,7 +3761,7 @@ static bool8 AnimateTradeSequenceCable(void)
FREE_AND_SET_NULL(sTradeData);
}
SetMainCallback2(CB2_ReturnToField);
- BuffeInGameTradeMonName();
+ BufferInGameTradeMonName();
}
break;
}
@@ -4276,7 +4276,7 @@ static bool8 AnimateTradeSequenceWireless(void)
FREE_AND_SET_NULL(sTradeData);
}
SetMainCallback2(CB2_ReturnToField);
- BuffeInGameTradeMonName();
+ BufferInGameTradeMonName();
}
break;
}
@@ -4418,7 +4418,7 @@ u16 GetInGameTradeSpeciesInfo(void)
return inGameTrade->requestedSpecies;
}
-static void BuffeInGameTradeMonName(void)
+static void BufferInGameTradeMonName(void)
{
u8 nickname[32];
const struct InGameTrade *inGameTrade = &sIngameTrades[gSpecialVar_0x8004];
diff --git a/src/tv.c b/src/tv.c
index 5cec4f12b..04cd6f70a 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -637,50 +637,51 @@ static const u8 *const sTVWhatsNo1InHoennTodayTextGroup[] = {
gTVWhatsNo1InHoennTodayText08
};
-static const u8 *const sTVSecretBaseSecretsTextGroup[] = {
- gTVSecretBaseSecretsText00,
- gTVSecretBaseSecretsText01,
- gTVSecretBaseSecretsText02,
- gTVSecretBaseSecretsText03,
- gTVSecretBaseSecretsText04,
- gTVSecretBaseSecretsText05,
- gTVSecretBaseSecretsText06,
- gTVSecretBaseSecretsText07,
- gTVSecretBaseSecretsText08,
- gTVSecretBaseSecretsText09,
- gTVSecretBaseSecretsText10,
- gTVSecretBaseSecretsText11,
- gTVSecretBaseSecretsText12,
- gTVSecretBaseSecretsText13,
- gTVSecretBaseSecretsText14,
- gTVSecretBaseSecretsText15,
- gTVSecretBaseSecretsText16,
- gTVSecretBaseSecretsText17,
- gTVSecretBaseSecretsText18,
- gTVSecretBaseSecretsText19,
- gTVSecretBaseSecretsText20,
- gTVSecretBaseSecretsText21,
- gTVSecretBaseSecretsText22,
- gTVSecretBaseSecretsText23,
- gTVSecretBaseSecretsText24,
- gTVSecretBaseSecretsText25,
- gTVSecretBaseSecretsText26,
- gTVSecretBaseSecretsText27,
- gTVSecretBaseSecretsText28,
- gTVSecretBaseSecretsText29,
- gTVSecretBaseSecretsText30,
- gTVSecretBaseSecretsText31,
- gTVSecretBaseSecretsText32,
- gTVSecretBaseSecretsText33,
- gTVSecretBaseSecretsText34,
- gTVSecretBaseSecretsText35,
- gTVSecretBaseSecretsText36,
- gTVSecretBaseSecretsText37,
- gTVSecretBaseSecretsText38,
- gTVSecretBaseSecretsText39,
- gTVSecretBaseSecretsText40,
- gTVSecretBaseSecretsText41,
- gTVSecretBaseSecretsText42
+static const u8 *const sTVSecretBaseSecretsTextGroup[SBSECRETS_NUM_STATES] =
+{
+ [SBSECRETS_STATE_INTRO] = TVSecretBaseSecrets_Text_Intro,
+ [SBSECRETS_STATE_DO_NEXT1] = TVSecretBaseSecrets_Text_WhatWillPlayerDoNext1,
+ [SBSECRETS_STATE_DO_NEXT2] = TVSecretBaseSecrets_Text_WhatWillPlayerDoNext2,
+ [SBSECRETS_STATE_TOOK_X_STEPS] = TVSecretBaseSecrets_Text_TookXStepsBeforeLeaving,
+ [SBSECRETS_STATE_BASE_INTEREST_LOW] = TVSecretBaseSecrets_Text_BaseFailedToInterestPlayer,
+ [SBSECRETS_STATE_BASE_INTEREST_MED] = TVSecretBaseSecrets_Text_PlayerEnjoyedBase,
+ [SBSECRETS_STATE_BASE_INTEREST_HIGH] = TVSecretBaseSecrets_Text_PlayerHugeFanOfBase,
+ [SBSECRETS_STATE_OUTRO] = TVSecretBaseSecrets_Text_Outro,
+ [SBSECRETS_STATE_NOTHING_USED1] = TVSecretBaseSecrets_Text_StoppedMoving1,
+ [SBSECRETS_STATE_NOTHING_USED2] = TVSecretBaseSecrets_Text_StoppedMoving2,
+ [SBSECRETS_STATE_USED_CHAIR] = TVSecretBaseSecrets_Text_UsedChair,
+ [SBSECRETS_STATE_USED_BALLOON] = TVSecretBaseSecrets_Text_UsedBalloon,
+ [SBSECRETS_STATE_USED_TENT] = TVSecretBaseSecrets_Text_UsedTent,
+ [SBSECRETS_STATE_USED_PLANT] = TVSecretBaseSecrets_Text_UsedPlant,
+ [SBSECRETS_STATE_USED_GOLD_SHIELD] = TVSecretBaseSecrets_Text_UsedGoldShield,
+ [SBSECRETS_STATE_USED_SILVER_SHIELD] = TVSecretBaseSecrets_Text_UsedSilverShield,
+ [SBSECRETS_STATE_USED_GLASS_ORNAMENT] = TVSecretBaseSecrets_Text_UsedGlassOrnament,
+ [SBSECRETS_STATE_USED_TV] = TVSecretBaseSecrets_Text_UsedTV,
+ [SBSECRETS_STATE_USED_MUD_BALL] = TVSecretBaseSecrets_Text_UsedMudBall,
+ [SBSECRETS_STATE_USED_BAG] = TVSecretBaseSecrets_Text_UsedBag,
+ [SBSECRETS_STATE_USED_CUSHION] = TVSecretBaseSecrets_Text_UsedCushion,
+ [SBSECRETS_STATE_HIT_CUSHION] = TVSecretBaseSecrets_Text_HitCushion,
+ [SBSECRETS_STATE_HUGGED_CUSHION] = TVSecretBaseSecrets_Text_HuggedCushion,
+ [SBSECRETS_STATE_BATTLED_WON] = TVSecretBaseSecrets_Text_BattledWon,
+ [SBSECRETS_STATE_BATTLED_LOST] = TVSecretBaseSecrets_Text_BattledLost,
+ [SBSECRETS_STATE_DECLINED_BATTLE] = TVSecretBaseSecrets_Text_DeclinedBattle,
+ [SBSECRETS_STATE_USED_POSTER] = TVSecretBaseSecrets_Text_UsedPoster,
+ [SBSECRETS_STATE_USED_NOTE_MAT] = TVSecretBaseSecrets_Text_UsedNoteMat,
+ [SBSECRETS_STATE_BATTLED_DRAW] = TVSecretBaseSecrets_Text_BattledDraw,
+ [SBSECRETS_STATE_USED_SPIN_MAT] = TVSecretBaseSecrets_Text_UsedSpinMat,
+ [SBSECRETS_STATE_USED_SAND_ORNAMENT] = TVSecretBaseSecrets_Text_UsedSandOrnament,
+ [SBSECRETS_STATE_USED_DESK] = TVSecretBaseSecrets_Text_UsedDesk,
+ [SBSECRETS_STATE_USED_BRICK] = TVSecretBaseSecrets_Text_UsedBrick,
+ [SBSECRETS_STATE_USED_SOLID_BOARD] = TVSecretBaseSecrets_Text_UsedSolidBoard,
+ [SBSECRETS_STATE_USED_FENCE] = TVSecretBaseSecrets_Text_UsedFence,
+ [SBSECRETS_STATE_USED_GLITTER_MAT] = TVSecretBaseSecrets_Text_UsedGlitterMat,
+ [SBSECRETS_STATE_USED_TIRE] = TVSecretBaseSecrets_Text_UsedTire,
+ [SBSECRETS_STATE_USED_STAND] = TVSecretBaseSecrets_Text_UsedStand,
+ [SBSECRETS_STATE_USED_BREAKABLE_DOOR] = TVSecretBaseSecrets_Text_BrokeDoor,
+ [SBSECRETS_STATE_USED_DOLL] = TVSecretBaseSecrets_Text_UsedDoll,
+ [SBSECRETS_STATE_USED_SLIDE] = TVSecretBaseSecrets_Text_UsedSlide,
+ [SBSECRETS_STATE_DECLINED_SLIDE] = TVSecretBaseSecrets_Text_UsedSlideButDidntGoDown,
+ [SBSECRETS_STATE_USED_JUMP_MAT] = TVSecretBaseSecrets_Text_UsedJumpMat
};
static const u8 *const sTVSafariFanClubTextGroup[] = {
@@ -709,39 +710,42 @@ static const u8 *const sTVInSearchOfTrainersTextGroup[] = {
gTVInSearchOfTrainersText08
};
-const u8 sTVSecretBaseSecretsStateLookup[] = {
- 0x0a,
- 0x0b,
- 0x0c,
- 0x0d,
- 0x0e,
- 0x0f,
- 0x10,
- 0x11,
- 0x12,
- 0x13,
- 0x14,
- 0x17,
- 0x18,
- 0x19,
- 0x1a,
- 0x1b,
- 0x1c,
- 0x1d,
- 0x1e,
- 0x1f,
- 0x20,
- 0x21,
- 0x22,
- 0x23,
- 0x24,
- 0x25,
- 0x26,
- 0x27,
- 0x28,
- 0x29,
- 0x2a,
- 0x2b
+// Secret Base Secrets TV Show states for actions that can be taken in a secret base
+// The flags that determine whether or not the action was taken are commented
+const u8 sTVSecretBaseSecretsActions[NUM_SECRET_BASE_FLAGS] =
+{
+ SBSECRETS_STATE_USED_CHAIR, // SECRET_BASE_USED_CHAIR
+ SBSECRETS_STATE_USED_BALLOON, // SECRET_BASE_USED_BALLOON
+ SBSECRETS_STATE_USED_TENT, // SECRET_BASE_USED_TENT
+ SBSECRETS_STATE_USED_PLANT, // SECRET_BASE_USED_PLANT
+ SBSECRETS_STATE_USED_GOLD_SHIELD, // SECRET_BASE_USED_GOLD_SHIELD
+ SBSECRETS_STATE_USED_SILVER_SHIELD, // SECRET_BASE_USED_SILVER_SHIELD
+ SBSECRETS_STATE_USED_GLASS_ORNAMENT, // SECRET_BASE_USED_GLASS_ORNAMENT
+ SBSECRETS_STATE_USED_TV, // SECRET_BASE_USED_TV
+ SBSECRETS_STATE_USED_MUD_BALL, // SECRET_BASE_USED_MUD_BALL
+ SBSECRETS_STATE_USED_BAG, // SECRET_BASE_USED_BAG
+ SBSECRETS_STATE_USED_CUSHION, // SECRET_BASE_USED_CUSHION
+ SBSECRETS_STATE_BATTLED_WON, // SECRET_BASE_BATTLED_WON
+ SBSECRETS_STATE_BATTLED_LOST, // SECRET_BASE_BATTLED_LOST
+ SBSECRETS_STATE_DECLINED_BATTLE, // SECRET_BASE_DECLINED_BATTLE
+ SBSECRETS_STATE_USED_POSTER, // SECRET_BASE_USED_POSTER
+ SBSECRETS_STATE_USED_NOTE_MAT, // SECRET_BASE_USED_NOTE_MAT
+ SBSECRETS_STATE_BATTLED_DRAW, // SECRET_BASE_BATTLED_DRAW
+ SBSECRETS_STATE_USED_SPIN_MAT, // SECRET_BASE_USED_SPIN_MAT
+ SBSECRETS_STATE_USED_SAND_ORNAMENT, // SECRET_BASE_USED_SAND_ORNAMENT
+ SBSECRETS_STATE_USED_DESK, // SECRET_BASE_USED_DESK
+ SBSECRETS_STATE_USED_BRICK, // SECRET_BASE_USED_BRICK
+ SBSECRETS_STATE_USED_SOLID_BOARD, // SECRET_BASE_USED_SOLID_BOARD
+ SBSECRETS_STATE_USED_FENCE, // SECRET_BASE_USED_FENCE
+ SBSECRETS_STATE_USED_GLITTER_MAT, // SECRET_BASE_USED_GLITTER_MAT
+ SBSECRETS_STATE_USED_TIRE, // SECRET_BASE_USED_TIRE
+ SBSECRETS_STATE_USED_STAND, // SECRET_BASE_USED_STAND
+ SBSECRETS_STATE_USED_BREAKABLE_DOOR, // SECRET_BASE_USED_BREAKABLE_DOOR
+ SBSECRETS_STATE_USED_DOLL, // SECRET_BASE_USED_DOLL
+ SBSECRETS_STATE_USED_SLIDE, // SECRET_BASE_USED_SLIDE
+ SBSECRETS_STATE_DECLINED_SLIDE, // SECRET_BASE_DECLINED_SLIDE
+ SBSECRETS_STATE_USED_JUMP_MAT, // SECRET_BASE_USED_JUMP_MAT
+ SBSECRETS_NUM_STATES // SECRET_BASE_UNUSED_FLAG. Odd that this is included, if it were used it would overflow sTVSecretBaseSecretsTextGroup
};
// .text
@@ -2544,7 +2548,7 @@ void TryPutFrontierTVShowOnAir(u16 winStreak, u8 facilityAndMode)
}
}
-void sub_80EEA70(void)
+void TryPutSecretBaseSecretsOnAir(void)
{
TVShow *show;
u8 strbuf[32];
@@ -3591,7 +3595,7 @@ void GetMomOrDadStringForTVMessage(void)
}
}
-void sub_80F01B8(void)
+void HideBattleTowerReporter(void)
{
VarSet(VAR_BRAVO_TRAINER_BATTLE_TOWER_ON, 0);
RemoveObjectEventByLocalIdAndMap(5, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
@@ -7340,35 +7344,32 @@ static void DoTVShowWhatsNo1InHoennToday(void)
ShowFieldMessage(sTVWhatsNo1InHoennTodayTextGroup[state]);
}
-u8 TVShowGetFlagCount(TVShow *show)
+u8 SecretBaseSecrets_GetNumActionsTaken(TVShow *show)
{
u8 i;
- u8 tot;
+ u8 flagsSet;
- for (i = 0, tot = 0; i < 32; i ++)
+ for (i = 0, flagsSet = 0; i < NUM_SECRET_BASE_FLAGS; i ++)
{
if ((show->secretBaseSecrets.flags >> i) & 1)
- {
- tot ++;
- }
+ flagsSet++;
}
- return tot;
+ return flagsSet;
}
-static u8 SecretBaseSecrets_GetStateForFlagNumber(TVShow *show, u8 a1)
+static u8 SecretBaseSecrets_GetStateByFlagNumber(TVShow *show, u8 flagId)
{
u8 i;
- u8 tot;
+ u8 flagsSet;
- for (i = 0, tot = 0; i < 32; i ++)
+ for (i = 0, flagsSet = 0; i < NUM_SECRET_BASE_FLAGS; i ++)
{
if ((show->secretBaseSecrets.flags >> i) & 1)
{
- if (tot == a1)
- {
- return sTVSecretBaseSecretsStateLookup[i];
- }
- tot ++;
+ if (flagsSet == flagId)
+ return sTVSecretBaseSecretsActions[i];
+
+ flagsSet++;
}
}
return 0;
@@ -7378,7 +7379,7 @@ static void DoTVShowSecretBaseSecrets(void)
{
TVShow *show;
u8 state;
- u8 bitCount;
+ u8 numActions;
u16 i;
show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004];
@@ -7386,226 +7387,128 @@ static void DoTVShowSecretBaseSecrets(void)
state = sTVShowState;
switch (state)
{
- case 0:
+ case SBSECRETS_STATE_INTRO:
TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage);
TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language);
- bitCount = TVShowGetFlagCount(show);
- if (bitCount == 0)
+ numActions = SecretBaseSecrets_GetNumActionsTaken(show);
+ if (numActions == 0)
{
- sTVShowState = 8;
+ sTVShowState = SBSECRETS_STATE_NOTHING_USED1;
}
else
{
- show->secretBaseSecrets.savedState = 1;
- sTVSecretBaseSecretsRandomValues[0] = Random() % bitCount;
- sTVShowState = SecretBaseSecrets_GetStateForFlagNumber(show, sTVSecretBaseSecretsRandomValues[0]);
+ show->secretBaseSecrets.savedState = SBSECRETS_STATE_DO_NEXT1;
+ sTVSecretBaseSecretsRandomValues[0] = Random() % numActions;
+ sTVShowState = SecretBaseSecrets_GetStateByFlagNumber(show, sTVSecretBaseSecretsRandomValues[0]);
}
break;
- case 1:
+ case SBSECRETS_STATE_DO_NEXT1:
TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language);
- bitCount = TVShowGetFlagCount(show);
- switch (bitCount)
+ numActions = SecretBaseSecrets_GetNumActionsTaken(show);
+ switch (numActions)
{
case 1:
- sTVShowState = 9;
+ sTVShowState = SBSECRETS_STATE_NOTHING_USED2;
break;
case 2:
- show->secretBaseSecrets.savedState = 2;
+ show->secretBaseSecrets.savedState = SBSECRETS_STATE_DO_NEXT2;
if (sTVSecretBaseSecretsRandomValues[0] == 0)
{
- sTVShowState = SecretBaseSecrets_GetStateForFlagNumber(show, 1);
+ sTVShowState = SecretBaseSecrets_GetStateByFlagNumber(show, 1);
}
else
{
- sTVShowState = SecretBaseSecrets_GetStateForFlagNumber(show, 0);
+ sTVShowState = SecretBaseSecrets_GetStateByFlagNumber(show, 0);
}
break;
default:
for (i = 0; i < 0xFFFF; i ++)
{
- sTVSecretBaseSecretsRandomValues[1] = Random() % bitCount;
+ sTVSecretBaseSecretsRandomValues[1] = Random() % numActions;
if (sTVSecretBaseSecretsRandomValues[1] != sTVSecretBaseSecretsRandomValues[0])
{
break;
}
}
- show->secretBaseSecrets.savedState = 2;
- sTVShowState = SecretBaseSecrets_GetStateForFlagNumber(show, sTVSecretBaseSecretsRandomValues[1]);
+ show->secretBaseSecrets.savedState = SBSECRETS_STATE_DO_NEXT2;
+ sTVShowState = SecretBaseSecrets_GetStateByFlagNumber(show, sTVSecretBaseSecretsRandomValues[1]);
break;
}
break;
- case 2:
+ case SBSECRETS_STATE_DO_NEXT2:
TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language);
- bitCount = TVShowGetFlagCount(show);
- if (bitCount == 2)
+ numActions = SecretBaseSecrets_GetNumActionsTaken(show);
+ if (numActions == 2)
{
- sTVShowState = 9;
+ sTVShowState = SBSECRETS_STATE_NOTHING_USED2;
}
else
{
for (i = 0; i < 0xFFFF; i ++)
{
- sTVSecretBaseSecretsRandomValues[2] = Random() % bitCount;
+ sTVSecretBaseSecretsRandomValues[2] = Random() % numActions;
if (sTVSecretBaseSecretsRandomValues[2] != sTVSecretBaseSecretsRandomValues[0] && sTVSecretBaseSecretsRandomValues[2] != sTVSecretBaseSecretsRandomValues[1])
{
break;
}
}
- show->secretBaseSecrets.savedState = 3;
- sTVShowState = SecretBaseSecrets_GetStateForFlagNumber(show, sTVSecretBaseSecretsRandomValues[2]);
+ show->secretBaseSecrets.savedState = SBSECRETS_STATE_TOOK_X_STEPS;
+ sTVShowState = SecretBaseSecrets_GetStateByFlagNumber(show, sTVSecretBaseSecretsRandomValues[2]);
}
break;
- case 3:
+ case SBSECRETS_STATE_TOOK_X_STEPS:
TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage);
TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language);
TV_PrintIntToStringVar(2, show->secretBaseSecrets.stepsInBase);
if (show->secretBaseSecrets.stepsInBase <= 30)
{
- sTVShowState = 4;
+ sTVShowState = SBSECRETS_STATE_BASE_INTEREST_LOW;
}
else if (show->secretBaseSecrets.stepsInBase <= 100)
{
- sTVShowState = 5;
+ sTVShowState = SBSECRETS_STATE_BASE_INTEREST_MED;
}
else
{
- sTVShowState = 6;
+ sTVShowState = SBSECRETS_STATE_BASE_INTEREST_HIGH;
}
break;
- case 4:
- TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage);
- TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language);
- sTVShowState = 7;
- break;
- case 5:
- TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage);
- TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language);
- sTVShowState = 7;
- break;
- case 6:
+ case SBSECRETS_STATE_BASE_INTEREST_LOW ... SBSECRETS_STATE_BASE_INTEREST_HIGH:
TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage);
TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language);
- sTVShowState = 7;
+ sTVShowState = SBSECRETS_STATE_OUTRO;
break;
- case 7:
+ case SBSECRETS_STATE_OUTRO:
TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage);
TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language);
TVShowDone();
break;
- case 8:
- sTVShowState = 3;
- break;
- case 9:
- sTVShowState = 3;
+ // All below states are descriptions of what the player interacted with while in the secret base
+ case SBSECRETS_STATE_NOTHING_USED1:
+ sTVShowState = SBSECRETS_STATE_TOOK_X_STEPS;
break;
- case 10:
- sTVShowState = show->secretBaseSecrets.savedState;
+ case SBSECRETS_STATE_NOTHING_USED2:
+ sTVShowState = SBSECRETS_STATE_TOOK_X_STEPS;
break;
- case 11:
+ case SBSECRETS_STATE_USED_CHAIR ... SBSECRETS_STATE_USED_MUD_BALL:
sTVShowState = show->secretBaseSecrets.savedState;
break;
- case 12:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 13:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 14:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 15:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 16:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 17:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 18:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 19:
+ case SBSECRETS_STATE_USED_BAG:
StringCopy(gStringVar2, ItemId_GetName(show->secretBaseSecrets.item));
sTVShowState = show->secretBaseSecrets.savedState;
break;
- case 20:
+ case SBSECRETS_STATE_USED_CUSHION:
+ // Randomly decide based on trainer ID if the player hugged or hit the cushion
if (show->common.trainerIdLo & 1)
{
- sTVShowState = 22;
+ sTVShowState = SBSECRETS_STATE_HUGGED_CUSHION;
}
else
{
- sTVShowState = 21;
+ sTVShowState = SBSECRETS_STATE_HIT_CUSHION;
}
break;
- case 21:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 22:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 23:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 24:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 25:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 26:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 27:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 28:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 29:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 30:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 31:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 32:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 33:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 34:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 35:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 36:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 37:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 38:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 39:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 40:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 41:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 42:
- sTVShowState = show->secretBaseSecrets.savedState;
- break;
- case 43:
+ case SBSECRETS_STATE_HIT_CUSHION ... SBSECRETS_NUM_STATES:
sTVShowState = show->secretBaseSecrets.savedState;
break;
}